S08: Teilgebiet 01 Iterationen B5 (Trainings als Tabelle) und B6 (Bullet-Einzuege verkleinert) abgeschlossen. B5: Trainings-Bullet-Liste in cv.md durch Pandoc-Multiline-Tabelle ersetzt analog Ausbildung. B6: build/post-process-docx.py um dritte Modifikation erweitert die direkt die numbering.xml manipuliert weil Pandoc die Werte aus reference.docx ignoriert. Bullet-Einzuege auf E1 0,25/0,35 cm und E2 0,80/0,40 cm gesetzt. Word-Konvention dokumentiert: Einzug-links zeigt (left - hanging). teilgebiete/01-lebenslauf.md und agent-prompt.md fuer S09 fortgeschrieben.

This commit is contained in:
tlg
2026-04-26 21:50:28 +02:00
parent 6429ca5f84
commit 3e672dc8c9
10 changed files with 471 additions and 386 deletions

View File

@@ -198,6 +198,24 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
**Warum kein Heading-Stil-Border:** Words `right`-Indent gilt sowohl für Text als auch für Border. Eine Border *schmaler als der Heading-Text* ist über den Stil selbst nicht abbildbar, weil Indent den Text mitkürzt. Lösung: separater Trenn-Absatz nach dem Heading. Die Underline-Alternative (Linie genau in Heading-Text-Breite) wurde verworfen, weil sie wie ein unterstrichener Text wirkt und nicht wie ein Trenner.
## Iteration B5 (S08) — Trainings als Tabelle
**Anforderung:** Die Trainings-Sektion war als Bullet-Liste im Format `- Datum — Beschreibung` formatiert. Auf Wunsch von Thomas analog zur Ausbildungs-Sektion als Multiline-Tabelle umgestaltet, damit beide Sektionen visuell konsistent sind.
**Umsetzung:** Trainings-Bullet-Liste in `source/cv.md` durch eine Pandoc-Multiline-Tabelle mit Strich-Verhältnis 10:70 ersetzt (gleiches Format wie Ausbildung). Datum in Spalte 1, Inhalt in Spalte 2. Inhalte normal (nicht fett), nach kurzem Feedback-Zyklus mit Thomas. Mai-2000-Eintrag braucht 4 Padding-Leerzeichen statt 3, weil „Mai 2000" 8 Zeichen lang ist (alle anderen 9). Sandbox-Verifikation: 1 → 2 Tabellen im DOCX, 1 → 2 longtables im LaTeX. Visuell durch Thomas bestätigt.
## Iteration B6 (S08) — Bullet-Einzüge verkleinern
**Anforderung:** Pandoc-Default-Bullet-Einzüge waren großzügig — Thomas wollte das kompakter, um Platzverschwendung zu reduzieren. Konkrete Wunschwerte: E1 Einzug 0,25 cm + Sondereinzug 0,35 cm; E2 Einzug 0,80 cm + Sondereinzug 0,40 cm.
**Umsetzung-Pfad:** Pandoc generiert die `numbering.xml` selbst und IGNORIERT die Werte aus der `reference.docx`. Daher kann das nicht über `build-reference-docx.py` geregelt werden, sondern muss im Post-Processing nach dem Pandoc-Build stattfinden. `build/post-process-docx.py` um eine dritte Modifikation erweitert: Funktion `process_numbering_xml` parst die `numbering.xml` aus dem DOCX, iteriert alle `<w:abstractNum>` und ersetzt für jedes `<w:lvl>` (ilvl 08) die `<w:ind>`-Werte aus einer Konstanten-Tabelle `BULLET_INDENTS`.
**Word-Konvention (wichtig — kostete eine Iteration):** Word zeigt im Absatz-Dialog „Einzug links" als `(left - hanging)` (= Bullet-Position) und „Sondereinzug Hängend" als `hanging`. Daher rechnen wir: `left = (gewünschter Einzug + gewünschter Hanging-Indent)` in dxa. Bei E1 mit 0,25 + 0,35 cm ergibt sich also `left = 340 dxa`, `hanging = 198 dxa`. Erster Versuch hatte `left = 142 dxa` gesetzt — Word zeigte dadurch Einzug `-0,1 cm`, weil das Mental-Modell die Word-Logik vertauscht hatte. Korrigiert in zweiter Iteration.
**Sandbox-Verifikation:** 2 abstractNum-Einträge in `numbering.xml` (Pandoc nutzt 990 für „plain" und 991 für „bullet" Listen), 18 lvls insgesamt modifiziert. Auf Thomas' System visuell bestätigt: Word zeigt jetzt für E1 Einzug 0,25 cm + Sondereinzug 0,35 cm, für E2 Einzug 0,80 cm + Sondereinzug 0,40 cm. Kein Bullet klebt am Text.
**Hinweis (S08):** Pandoc verwendet im DOCX-Output `o` als E2-Bullet-Marker (nicht `` wie im PDF-LaTeX-Pfad). Das ist kein Problem — beide Marker passen mit dem Sondereinzug 0,4 cm.
## Nächste Schritte
1. **Iteration C — Foto-Einbindung:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern (z.B. oben rechts neben Name, ca. 3 cm).
@@ -213,7 +231,7 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
- `artefakte/01-lebenslauf/templates/template.tex` — Pandoc-LaTeX-Template für LuaLaTeX (Iteration A inkl. Pandoc-3.x-Hotfix `\newcounter{none}`).
- `artefakte/01-lebenslauf/templates/reference.docx` — Pandoc-Reference-Doc, **automatisch erzeugt** durch `build/build-reference-docx.py`. Nicht von Hand editieren — Änderungen würden beim nächsten Skript-Lauf überschrieben.
- `artefakte/01-lebenslauf/build/build-reference-docx.py` — Python-Skript zum Bauen der `reference.docx` (Iterationen B1, B1.5, B2, B3, B4.1 Heading-Farben). Manuell aufrufen, wenn Stile geändert werden sollen, danach normalen `build.ps1` laufen.
- `artefakte/01-lebenslauf/build/post-process-docx.py` — Python-Skript für DOCX-Post-Processing (B3.5 Listen-Bullet-Schutz und B4.4 H2-Trennlinien). Wird automatisch von `build.ps1` als Schritt [3/3] aufgerufen.
- `artefakte/01-lebenslauf/build/post-process-docx.py` — Python-Skript für DOCX-Post-Processing (B3.5 Listen-Bullet-Schutz, B4.4 H2-Trennlinien, B6 Bullet-Einzüge). Wird automatisch von `build.ps1` als Schritt [3/3] aufgerufen.
- `artefakte/01-lebenslauf/build/build.ps1` — PowerShell-Build-Skript (PDF + DOCX + Post-Process) mit 3-Sekunden-Pause bei Fehler.
- `artefakte/01-lebenslauf/output/` — erzeugte Ausgaben plus `build.log`.