-
Notifications
You must be signed in to change notification settings - Fork 0
3. Content Organization
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.
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 ofstd::*
inC++
. -
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
.