Commit Graph

20 Commits

Author SHA1 Message Date
shahondin1624
b8a0cd7aa3 Sort TOC entries alphabetically including aliases
Add a Python sort step in the Makefile that sorts .songtoc by
the actual title text, stripping \textit{} wrappers so aliases
sort into their correct alphabetical position alongside main
titles.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.4.0-latex
2026-04-02 21:28:17 +02:00
shahondin1624
2d4e1554c7 Fix TOC: restore page breaks and remove blank page
- Change \\* back to \\ in songtocrow to allow longtable page breaks
- Restore continuation header on subsequent TOC pages
- Use \cleardoublepage before TOC to eliminate blank page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 20:59:59 +02:00
shahondin1624
63fe1effdb Fix TOC: embed title in longtable to prevent blank first page
Move "Inhaltsverzeichnis" title into the longtable as a
multicolumn first row so it stays with the table content.
Remove duplicate header on continuation pages. Reduce header
rotation to 60 degrees with scriptsize font.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 20:32:47 +02:00
shahondin1624
bb2f829e2f Remove trailing hline after last TOC entry
Replace \hline with \\* in songtocrow to avoid an empty partial
row appearing after the last song in the table of contents.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:24:18 +02:00
shahondin1624
07aa76c3f6 Add Goethe filler page and clean up image artifacts
- Insert Goethe poem illustration (img-000.jpg) as filler page
  between TOC and first song (matching reference layout)
- Remove 10 alpha mask/tiny artifact images

The remaining ~65 unused images are mostly on song pages where
CL number matching failed — they need manual assignment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:10:36 +02:00
shahondin1624
0e8660cd41 Extract and insert 97 images from reference PDF into songs
Extract images from the CL6 PDF using pdfimages, map them to songs
via page-to-CL number matching, and insert \songimage commands.
Add insert-images.py script for repeatable extraction.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 19:03:07 +02:00
shahondin1624
c202f1a792 Convert 47 song anecdotes from comments to note properties
The import script stored anecdotes/historical context as LaTeX
comments. Convert them to the note song property so they render
at the bottom of each song page (matching the reference style).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:17:28 +02:00
shahondin1624
e771264244 Add song aliases to TOC and fix page numbering
- 82 songs get alias entries (alternate titles/opening lines) shown
  in italic in the TOC, pointing to the same page as the main title
- Front matter (title, foreword, TOC) has no page numbers
- Song pages start at page 1
- Aliases extracted from reference PDF (CL6) TOC by title matching

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 18:08:20 +02:00
shahondin1624
44ea072716 Remove paragraph indentation and Carmina Leonis from song footer
- Set \parindent to 0pt for clean left-aligned text
- Remove current book column from song page footer (keep only
  reference books: BuLiBu, CL gr., SwA, Barde, LiBock)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:23:22 +02:00
shahondin1624
21c369da36 Fix Makefile to auto-stabilize TOC with up to 5 passes
The .songtoc file needs multiple passes to stabilize: pass 1
writes song data, pass 2 reads it into the TOC (changing page
count), pass 3+ stabilizes page references. The Makefile now
loops until the log shows no more "Rerun" warnings or max 5
passes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:11:30 +02:00
shahondin1624
7b99778f67 Fix chord alignment: snap to word boundaries
Improve merge_chord_lyric() to snap chord positions to the start
of the word they fall within, instead of splitting words mid-way.
Fixes artifacts like "Liebespaar \chord{C}e" → "\chord{C}Liebespaare".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:36:06 +02:00
shahondin1624
d875fd225b Rename to Carmina Leonis and add original foreword text
- Rename "Liederbuch" to "Carmina Leonis" in TOC header, song
  footer, and title page
- Replace placeholder foreword with original CL6 introductory text
- Update title page to "Carmina Leonis, 7. Auflage, 2026"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 16:10:02 +02:00
shahondin1624
44d2fb9b5e Update TOC and footer to use imported reference books
Replace MO/PfLB columns with the actual reference books from the
Carmina Leonis import: BuLiBu, CL (gr.), SwA, Barde, LiBock.
Add third LaTeX pass to Makefile for TOC stabilization.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:55:55 +02:00
shahondin1624
93f451eef9 Import 294 songs from Carmina Leonis PDF
Add import-songs.py script that extracts songs from the PDF text
and generates .tex files with leadsheets format. Adds song
properties for all reference books (BuLiBu, BuLiBuII, CL, SwA,
Barde, LiBock). Generates all-songs.tex with alphabetical inputs.

Note: Chord alignment is approximate from PDF extraction and
may need manual review for some songs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.3.0-latex
2026-04-02 15:40:59 +02:00
shahondin1624
ab00b710b1 Fix rowcolors bleeding into chord tabulars
Reset \rowcolors after the TOC longtable to prevent alternating
gray backgrounds from affecting leadsheets' chord placement
tabulars, which was clipping/overlaying song lyrics.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:03:27 +02:00
shahondin1624
5a63067b93 Add foreword page and image placement commands
- Introductory page with quote, horizontal rule, and foreword text
- \fillerpage{path} for full-page centered filler images
- \songimage{path} for inline images within song pages
- \fullpageimage{path} for borderless full-page images
- Added graphicx and csquotes packages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.2.0-latex
2026-04-02 10:54:21 +02:00
shahondin1624
cae0c52b67 Fix TOC page references and song page footer
- Move \label outside dedup guard so it survives the real pass
  (measurement pass labels are discarded inside vbox)
- Song page footer now shows MO/PfLB/Liederbuch table matching TOC
- Fix TEXINPUTS to include output/ for .songtoc file access

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 10:23:04 +02:00
shahondin1624
692be693e9 Add matrix TOC with cross-reference columns
Replace the default LaTeX TOC with a table matching the Carmina
Leonis style: song titles with columns for reference books (MO,
PfLB) and the current songbook page number. Uses expl3 iow to
write song data to a .songtoc file during compilation and reads
it back on the second pass. Alternating row colors via rowcolors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 10:06:05 +02:00
shahondin1624
4024d0e421 Rewrite songbook as pure LaTeX project (Carmina Leonis style)
Replace the Kotlin/Gradle multi-module pipeline with a pure LaTeX
songbook using the leadsheets package and LuaLaTeX. Style matches
the Carmina Leonis (CL6) scout songbook: Fraktur titles, chords
above lyrics, metadata at page bottom, reference book footer.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.1.0-latex
2026-04-01 08:23:57 +02:00
shahondin1624
e386501b57 Initial implementation of songbook toolset
Kotlin/JVM multi-module project for generating a scout songbook PDF
from ChordPro-format text files. Includes ChordPro parser, layout engine
with greedy spread packing for double-page songs, OpenPDF renderer,
CLI (Clikt), Compose Desktop GUI, and 5 sample songs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 08:35:42 +01:00