Build & Release Book PDF has never succeeded on this repository. The last eight runs — six failures and a cancelled tag build back to 2026-05-28 — all die at the same line:
! LaTeX Error: Command \chead already defined.
##[error]Process completed with exit code 43.
Last failing master run: 2026-09-01. The job fires only on docs/book/**, so it has not run since, and any PR that touches the book will go red on this.
Cause
.github/workflows/book-build.yml is byte-identical to eBoot's pre-fix copy (diff is empty against eBoot e152d8e), and eBoot#135 diagnosed it there:
- The pandoc step injects
\usepackage{fancyhdr} + \fancyhead/\fancyfoot through header-includes. Eisvogel builds its headers with KOMA's scrlayer-scrpage, which defines \chead; $header-includes$ sits before the template's own header block, so fancyhdr defines \chead first and the template's \newcommand fails. Both arrived in the same April commit, so the job has never been green with any Eisvogel/pandoc pair.
-V "author=… & …" passes a -V value verbatim into LaTeX, where & is an alignment tab.
- Eisvogel 2.4.0 predates pandoc 3.6; the 3.x line is required, and 3.5.x needs
sourcesans.sty which the runner's texlive-fonts-extra does not ship, so 3.4.0 is the last usable release.
tar xzf … || true hides a bad tarball until the cp after it fails on a missing file.
- The workflow is not in its own
paths: filter, so a PR that changes only the workflow cannot get the run that would prove it.
Fix
Port eBoot#135 (green twice at abf0522, eBoot-guide.pdf 48 pages — the first success in that job's history). Same five changes, one file.
Build & Release Book PDFhas never succeeded on this repository. The last eight runs — six failures and a cancelled tag build back to 2026-05-28 — all die at the same line:Last failing
masterrun: 2026-09-01. The job fires only ondocs/book/**, so it has not run since, and any PR that touches the book will go red on this.Cause
.github/workflows/book-build.ymlis byte-identical to eBoot's pre-fix copy (diffis empty against eBoote152d8e), and eBoot#135 diagnosed it there:\usepackage{fancyhdr}+\fancyhead/\fancyfootthroughheader-includes. Eisvogel builds its headers with KOMA'sscrlayer-scrpage, which defines\chead;$header-includes$sits before the template's own header block, sofancyhdrdefines\cheadfirst and the template's\newcommandfails. Both arrived in the same April commit, so the job has never been green with any Eisvogel/pandoc pair.-V "author=… & …"passes a-Vvalue verbatim into LaTeX, where&is an alignment tab.sourcesans.stywhich the runner'stexlive-fonts-extradoes not ship, so 3.4.0 is the last usable release.tar xzf … || truehides a bad tarball until thecpafter it fails on a missing file.paths:filter, so a PR that changes only the workflow cannot get the run that would prove it.Fix
Port eBoot#135 (green twice at
abf0522,eBoot-guide.pdf 48 pages— the first success in that job's history). Same five changes, one file.