# 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`.

