Initial commit

This commit is contained in:
NIT_Report
2025-05-07 23:20:20 +09:00
commit 3ff7ace93a
50 changed files with 2198 additions and 0 deletions

22
docs/CONTENTS.md Normal file
View File

@@ -0,0 +1,22 @@
# Project Contents
```
/ <Project ROOT>
|
|-assets/ <Project Assets>
| |-fonts/ <Project Fonts>
|-class/ <Report Classes>
|-docs/ <Template Documentations>
|-markdown/ <Markdown Sections>
|-nix/ <Project Nix Files>
|-packages/ <Custom LaTeX Packages>
|-script/ <Helper Scripts>
|-section/ <Project Sections>
|-Makefile <Project Makefile>
|-README.md <Project README>
|-document.yaml <Project Config>
|-flake.lock <Template Dependencies Lock file>
|-flake.nix <Template Nix Flake>
|-init.bash <Project Initializer>
|-references.bib <Project Bibliography>
```

21
docs/README.md Normal file
View File

@@ -0,0 +1,21 @@
# Quick Start
After installing Nix to your machine and enableing flakes, run following command:
```bash
nix develop
```
You can use wrapped vim(`vim-nit-latex`) to edit TeX files which includes vim-eskk plugins for flawless Japanese writting and some vim abbriviations.
This template uses YAML configuration file(`document.yaml`) to generate `main.tex`. (See [YAML_CONFIG.md](./YAML_CONFIG.md))
After configuration, generate `main.tex` with this command:
```bash
make generate
```
This will run `script/generate-main.lua`.
To compile into PDF, you can just run `make`.

153
docs/YAML_CONFIG.md Normal file
View File

@@ -0,0 +1,153 @@
# YAML Scheme for `document.yaml`
## `doc_class`
* Type: string, restricted
* Values: `nitreport || nitonepage`
* Description: Document class to use.
## `title`
* Type: string
* Description: Title of the paper.
## `author`
* Type: hash
* Description: Hash value containing name, student ID, and seating number.
### `author.name`
* Type: hash element, string
* Description: Name of author.
### `author.student_id`
* Type: hash element, string
* Description: Student ID of author.
### `author.seating_number`
* Type: hash element, string
* Description: Seating number of author.
## `date`
* Type: hash
* Description: Hash value containing date of creation. Displayed in "YMD" format.
### `date.year`
* Type: hash element, string
* Description: Year of creation.
### `date.month`
* Type: hash element, string
* Description: Month of creation.
### `date.day`
* Type: hash element, string
* Description: Day of creation.
## `turnin`
* Type: hash
* Description: Hash value containing date of turn-in. Displayed in "YMD" format.
### `turnin.year`
* Type: hash element, string
* Description: Year of turn-in.
### `turnin.month`
* Type: hash element, string
* Description: Month of turn-in.
### `turnin.day`
* Type: hash element, string
* Description: Day of turn-in.
## `school_name`
* Type: string
* Description: Name of belonging school.
## `department`
* Type: string
* Description: Name of belonging department.
## `subject`
* Type: string
* Description: Name of subject.
## `professor`
* Type: string
* Description: Name of conducting professor(s).
## `paper_config`
* Type: hash
* Description: Configurations for paper.
### `paper_config.include_cover_page`
* Type: hash element, boolean
* Description: Whether include cover page.
### `paper_config.include_table_of_contents`
* Type: hash element, boolean
* Description: Whether include table of contents.
### `paper_config.use_bib`
* Type: hash element, boolean
* Description: Whether using BibLaTeX.
### `paper_config.use_additional_packages`
* Type: hash element, boolean
* Description: Whether using additinal packages defined in `packages`. See `packages` for more information.
### `paper_config.show_compiled_time`
* Type: hash element, boolean
* Description: Whether show compiled time displayed in Unix time.
## `packages`
* Type: list of hash
* Description: List of additional packages with options
### `packages[].name`
* Type: hash element, string
* Description: Name of package
### `packages[].options`
* Type: hash element, string
* Description: Package options. Excluding brackets. Can be empty string.
## `sections`
* Type: list of hash
* Description: List of path to `.tex` files.
### `sections[].path`
* Type: hash element, string
* Description: Path to `.tex` file.
### `sections[].newpg`
* Type: hash element, boolean
* Description: Whether adding `\newpage` after `\input`.