Skip to content

3. Content Organization

nguyenvukhang edited this page Oct 21, 2024 · 1 revision

Content hierarchy

The goal of navigability demands for a careful choice in content organization. Here's the hierarchy:

  • A Preset is named a list of Chapters.
  • A Chapter is a named list of Sections.
  • A Section is an unnamed list of Subsections.
  • A Subsection corresponds (one-to-one) to a single .tex file, and is a named collection of Marks.
  • A Mark is a Theorem/Lemma/Remark/etc.

Presets allow writers to choose specific subsets of the book to compile, so they can enjoy faster real-time preview builds.

Sections are left unnamed because it's impractical to think of 3 layers of names (Chapter, Section, Subsection) while the book is still constantly evolving and always subject to change. The role of the Section is thus reduced to just grouping similar Subsections together.

File organization

Considering just the *.tex files in the project, here's the folder structure:

├── defs/
│  ├── linear_algebra/
│  │  ├── vector_spaces.tex
│  │  └── ...
│  ├── real_analysis/
│  └── ...
├── core/
└── lib/

The *.tex files (each corresponds to one Subsection) are stored specifically at <CATEGORY>/<TOPIC>/<SUBSECTION>.tex In other words, every *.tex file is nested exactly 2 directories from root. The Chapter name is then set as <CATEGORY>/<TOPIC>. The categories so far are:

  • defs Definitions.
  • core Core stuff. One level up from definitions. Think along the lines of std::* in C++.
  • lib Library stuff. Things that people might start to find useful in daily life, but still rigorous and general.

Putting this all together, take for example defs/linear_algebra/vector_spaces.tex. It contains the content of the Subsection vector_spaces, within the Chapter defs/linear_algebra. Since it's in defs/, it will contain definitions, specifically those related to the topic linear_algebra.

 

< Prev          Next >
Clone this wiki locally