diff --git a/README.md b/README.md index ec780e6..4b8a7a2 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ * multiple configurable document targets: slides, handout, notes, examples * dynamic targets for building PDF images from PlantUML, SVG, R * builds separate working preview and final published PDFs with lecture numbers (the latter include the lecture number in the file name) +* uses XeLaTeX via `latexmk` This repository serves as both the canonical source for the Gradle files and as an example of how to set things up. @@ -13,19 +14,68 @@ 1. Create a top level `lectures` directory. 1. If you’re using Git, copy `.gitignore` into `lectures`. -2. Create a sub-directory for each lecture, e.g., `01_lecture`, `02_lecture`, …. **The prefix numbering is important.** -3. Copy `build.gradle.kts` and `settings.gradle.kts` into `lectures`. -4. Create an empty `settings.gradle.kts` in `01_lecture`, `02_lecture`, etc. -5. Copy `lecture.gradle.kts` into `01_lecture`, `02_lecture`, etc. -6. Edit each `lecture.gradle.kts` to configure targets and images. +1. Create a sub-directory for each lecture, e.g., `01_foo`, `02_bar`, …. **The prefix numbering is important.** Gradle uses it to figure out the lecture number. +1. Copy `build.gradle.kts` and `settings.gradle.kts` into `lectures`. +1. Create an empty `settings.gradle.kts` in `01_foo`, `02_bar`, etc. +1. Copy `lecture.gradle.kts` into `01_foo`, `02_bar`, etc. +1. Edit each `lecture.gradle.kts` to configure targets and images. +1. Add the various content files as outlined below. -## Standard lecture directory tree +### Typical lecture directory tree + +The way Nigel does things 😁. ```sh lectures - lecture1 - images - pdfs - lecture2 - ... + 01_foo/ + build.gradle.kts -> ../build.gradle.kts + doc_init.tex + images/ + ... + lecture.gradle.kts + lecture_content.tex + lecture_handout.tex + lecture_slides.tex + lecturedates.tex -> ../lecturedates.tex + paper_init.tex -> ../paper_init.tex + pdfs/ + lecture_01_handout.pdf + lecture_01_slides.pdf + settings.gradle.kts + 02_bar/ + ... + 03_baz etc... + .gitignore + build.gradle.kts + lecturedates.tex + paper_init_tex + settings.gradle.kts ``` + +## Typical gradle tasks + +As applicable depending on which document targets are enabled. This list is not comprehensive, see `gradle tasks --all` for a complete list. + +### Build tasks + +* **docs** - Build all documents. [preview] +* **examples** - Build examples document. [preview] +* **examples.numbered** - Build numbered version of examples document. +* **handout** - Build handout document. [preview] +* **handout.numbered** - Build numbered version of handout document. +* **images** - Generate images. +* **notes** - Build notes document. [preview] +* **notes.numbered** - Build numbered version of notes document. +* **numbered** - Create numbered versions of all documents. +* **slides** - Build slides document. [preview] +* **slides.numbered** - Build numbered version of slides document. + +A dynamic task is created for each generated image, e.g.: + +* **images.image1.pdf** - Generate image1.pdf from image1.svg. + +### Housekeeping tasks + +* **debug** - Print debugging information. +* **clean** - Clean up intermediate files. +* **deepClean** - Remove all files not in Git. [`git clean -fXd`]