From b9c5c08a696c72bd1b256c360f51aadef70be5d41b2a2fdc51c3806d271d0246 Mon Sep 17 00:00:00 2001 From: tlg Date: Sun, 26 Apr 2026 10:58:03 +0200 Subject: [PATCH] S07: PDF-Build-Fehler endgueltig behoben. S06-Hotfix (array, calc, providecommand real) loeste das Problem nicht; nach Rebuild kam unveraendert "! LaTeX Error: No counter 'none' defined." Eigentliche Ursache: Pandoc 3.x emittiert fuer unnummerierte Tabellen direkt vor begin{longtable} die Zeile def LTcaptype none, ohne den Counter none zu definieren. Pandocs eigene Default-Vorlage definiert ihn (commit d835461 in Pandoc 3.8.2.1), Custom-Templates muessen das selbst tun (siehe Pandoc-Issue 11201). Fix: eine Zeile newcounter none direkt nach providecommand real im Tabellen-Block des Templates. Sandbox-Reproduktion exakter Fehlertext ohne Fix, sauberes PDF mit Fix. Auf Thomas' System: PDF wird erzeugt, Ausbildungs-Layout im PDF visuell bestaetigt. Iteration A fuer Teilgebiet 01 damit inhaltlich abgeschlossen. Build-UX-Fix: build.ps1 ergaenzt um Start-Sleep -Seconds 3 nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF-Build, DOCX-Build), damit die rote Fehlerzeile lesbar bleibt bevor das PowerShell-Fenster zugeht. teilgebiete/01-lebenslauf.md um beide Fixes ergaenzt (zweistufige Hotfix-Geschichte, PDF-Bestaetigung, UX-Fix). agent-prompt.md Aktueller-Stand-Abschnitt fuer S08 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, Hinweise auf Pandoc-Versionsunterschied praeziser formuliert. --- .checkpoint-pending.txt | 6 +- agent-prompt.md | 26 +- artefakte/01-lebenslauf/build/build.ps1 | 5 + .../Lebenslauf_Dr-Ing_Thomas_Langer.docx | Bin 20590 -> 20589 bytes .../Lebenslauf_Dr-Ing_Thomas_Langer.pdf | 621 +++++++++--------- artefakte/01-lebenslauf/output/build.log | 15 +- .../01-lebenslauf/templates/template.tex | 7 + changelog.md | 1 + teilgebiete/01-lebenslauf.md | 12 +- 9 files changed, 352 insertions(+), 341 deletions(-) diff --git a/.checkpoint-pending.txt b/.checkpoint-pending.txt index 351067a..3f3076a 100644 --- a/.checkpoint-pending.txt +++ b/.checkpoint-pending.txt @@ -1,4 +1,2 @@ -S06 -Session-Abschluss S06. Teilgebiet 01 Iteration A inhaltlich umgesetzt: Ausbildung als 2-Spalten-Layout via Pandoc-Multiline-Tabelle ohne Header, Template um array, calc, booktabs, longtable und providecommand real ergänzt, alle Linienbreiten auf 0pt. DOCX-Layout von Thomas visuell bestätigt (nur Default-Tabellenrahmen offen, Rahmen-Aus in Iteration B). PDF-Build mit Hotfix steht noch aus — erste Aufgabe der nächsten Session ist build.ps1 laufen lassen und das Ausbildungs-Layout im PDF prüfen. -Tooling-Fix in checkpoint.ps1 abgeschlossen (Quoting-Bug, Pipe-Validierung, Whitespace-Normalisierung, Pre-flight-Checks, atomarer Rollback bei Fehler). -agent-prompt.md Aktueller-Stand-Abschnitt für S07 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, neuen Lehren aus S06 dokumentiert (Sandbox-Reads über NTFS-Mount können stale sein, Sandbox-Pandoc 2.9 vs Thomas' Pandoc 3.x Output-Unterschiede). +S07 +PDF-Build-Fehler endgueltig behoben. S06-Hotfix (array, calc, providecommand real) loeste das Problem nicht; nach Rebuild kam unveraendert "! LaTeX Error: No counter 'none' defined." Eigentliche Ursache: Pandoc 3.x emittiert fuer unnummerierte Tabellen direkt vor begin{longtable} die Zeile def LTcaptype none, ohne den Counter none zu definieren. Pandocs eigene Default-Vorlage definiert ihn (commit d835461 in Pandoc 3.8.2.1), Custom-Templates muessen das selbst tun (siehe Pandoc-Issue 11201). Fix: eine Zeile newcounter none direkt nach providecommand real im Tabellen-Block des Templates. Sandbox-Reproduktion exakter Fehlertext ohne Fix, sauberes PDF mit Fix. Auf Thomas' System: PDF wird erzeugt, Ausbildungs-Layout im PDF visuell bestaetigt. Iteration A fuer Teilgebiet 01 damit inhaltlich abgeschlossen. Build-UX-Fix: build.ps1 ergaenzt um Start-Sleep -Seconds 3 nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF-Build, DOCX-Build), damit die rote Fehlerzeile lesbar bleibt bevor das PowerShell-Fenster zugeht. teilgebiete/01-lebenslauf.md um beide Fixes ergaenzt (zweistufige Hotfix-Geschichte, PDF-Bestaetigung, UX-Fix). agent-prompt.md Aktueller-Stand-Abschnitt fuer S08 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, Hinweise auf Pandoc-Versionsunterschied praeziser formuliert. diff --git a/agent-prompt.md b/agent-prompt.md index 79f9f74..7079296 100644 --- a/agent-prompt.md +++ b/agent-prompt.md @@ -85,28 +85,26 @@ Setze zwischen sinnvollen Zwischenständen Checkpoints (z.B. nach "Marketing.md ## Aktueller Stand / Nächste Aufgabe -**Letzte Session:** S06 (2026-04-25) +**Letzte Session:** S07 (2026-04-26) **Was wurde gemacht:** -- **Iteration A für Teilgebiet 01 — Ausbildung als 2-Spalten-Layout, Tabellen-Variante.** Erster Versuch mit Pandoc-Definition-List ergab im PDF das gewünschte 2-Spalten-Layout, im DOCX aber nicht (Pandoc rendert Definition-Lists als zwei separate Absatzstile, Word kann zwei Absätze nicht in eine Zeile zwingen). Auf Wunsch von Thomas auf Pandoc-Multiline-Tabelle ohne Header umgestellt — Strich-Verhältnis 10:70 ergibt Spaltenbreiten ca. 14 % / 80 %. `templates/template.tex` um Tabellen-Setup erweitert: `array`, `calc`, `booktabs`, `longtable` geladen, `\providecommand{\real}[1]{#1}` (Pandoc-Hilfsmakro) ergänzt, alle booktabs-Linienbreiten und Rule-Separationen auf 0 pt, `\LTpre`/`\LTpost` auf 0.4 em. -- **Hotfix für PDF-Build-Fehler.** Erster Build auf Thomas' System schlug mit `! LaTeX Error: No counter 'none' defined.` in der Tabellen-Spaltenangabe fehl. Ursache: Pandoc 3.x emittiert calc-basierte Spaltenbreiten der Form `p{(\columnwidth - 2\tabcolsep) * \real{0.8554}}`, die `calc` und `\real` voraussetzen. Sandbox-Pandoc 2.9 emittiert die simplere `ll`-Spaltenform und hat den Fehler nicht reproduziert (wichtige Lehre: Sandbox-Verifikation deckt Pandoc-Versionsunterschiede nicht ab). Hotfix mit synthetischem Pandoc-3.x-Spalten-Format in der Sandbox kompiliert. -- **DOCX nach Tabellen-Revision visuell bestätigt:** Tabelle sieht gut aus; nur die Default-Word-Tabellenrahmenlinien sind noch da (Rahmen-Aus erfolgt in Iteration B über `reference.docx`). -- **PDF-Build mit Hotfix steht aus** — Thomas hat nach dem Hotfix-Commit nicht erneut gebaut. Erste Aufgabe der nächsten Session: `build/build.ps1` laufen lassen, Hotfix verifizieren. -- **Tooling-Fix: `checkpoint.ps1` robust gemacht.** Im Verlauf der Session ist ein Hotfix-Commit am PowerShell-Argument-Quoting gescheitert, weil die Commit-Message via `git commit -m $commitMsg` mit doppelten Anführungszeichen im Summary von PS5.1 zerlegt wurde. Behoben durch Übergabe der Commit-Message über eine Temp-Datei mit `git commit -F`. Zusätzlich: Pipe-Zeichen im Summary werden vorab abgelehnt (kollidieren sonst mit Changelog-Format), Whitespace wird normalisiert, Pre-flight-Checks für `index.lock` und Cleanliness von `changelog.md`, atomarer Rollback bei Fehler im Hauptablauf (changelog-Anhang und Index-Stagung werden zurückgerollt), Cleanup-Robustheit in `finally`-Block. +- **PDF-Build-Fehler endgültig behoben.** Der S06-Hotfix (array, calc, providecommand real) hat das Problem nicht beseitigt — nach Rebuild auf Thomas' System kam unverändert `! LaTeX Error: No counter 'none' defined.` Eigentliche Ursache: Pandoc 3.x emittiert für unnummerierte Tabellen direkt vor `\begin{longtable}` die Zeile `\def\LTcaptype{none}`, ohne den Counter `none` zu definieren. Sobald longtable intern `\refstepcounter{\LTcaptype}` aufruft, bricht LaTeX ab. Pandocs eigene Default-Vorlage definiert den Counter (commit d835461 in 3.8.2.1), Custom-Templates müssen das selbst tun. Siehe [Pandoc-Issue #11201](https://github.com/jgm/pandoc/issues/11201). Fix: eine Zeile `\newcounter{none}` direkt nach `\providecommand{\real}` im Tabellen-Block des Templates. In der Sandbox sauber reproduziert (gleicher Fehlertext ohne Fix, sauberes PDF mit Fix). Auf Thomas' System: PDF wird erzeugt, Ausbildungs-Layout im PDF visuell bestätigt. +- **Iteration A für Teilgebiet 01 damit inhaltlich abgeschlossen** (Tabellen-Variante mit zwei Spalten ca. 14 % / 80 %, rahmenlos im PDF, native Word-Tabelle im DOCX — Rahmen-Aus folgt in Iteration B). +- **Build-UX-Fix:** `build/build.ps1` ergänzt um `Start-Sleep -Seconds 3` nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF-Build, DOCX-Build). Vorher schloss sich das PowerShell-Fenster bei Doppelklick auf das Skript so schnell, dass die rote Fehlerzeile nicht lesbar war. Bei mehreren Fehlern in einem Lauf akkumulieren sich die Pausen — gewollt. **Nächste Aufgabe:** Teilgebiet 01 — drei verbleibende Iterationen in dieser Reihenfolge: -1. **Verifikation Iteration A**: `build/build.ps1` einmal laufen lassen, prüfen dass PDF jetzt erzeugt wird und das Ausbildungs-Layout dem PDF-Wunsch entspricht (linke Spalte Datum normal, rechte Spalte Titel fett). -2. **B) `templates/reference.docx` in Word polieren** — Header/Footer setzen, Schriften auf Calibri vereinheitlichen, Listen-Schutz „Keep with next" und Widow-Control via Word-Stile, Tabellen-Stile so konfigurieren, dass die Ausbildungs-Tabelle ohne Rahmen rendert (Default-Tabellenstil oder benannter Stil). -3. **C) Foto-Einbindung** in cv.md mit Pandoc-Image-Syntax und Template-Anpassung für Position/Größe (z.B. oben rechts neben Name, ca. 3 cm). -4. **D) Hyphenation-Feintuning für PDF** — kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ. +1. **B) `templates/reference.docx` in Word polieren** — Header/Footer setzen, Schriften auf Calibri vereinheitlichen, Listen-Schutz „Keep with next" und Widow-Control via Word-Stile, Tabellen-Stile so konfigurieren, dass die Ausbildungs-Tabelle ohne Rahmen rendert (Default-Tabellenstil oder benannter Stil). +2. **C) Foto-Einbindung** in cv.md mit Pandoc-Image-Syntax und Template-Anpassung für Position/Größe (z.B. oben rechts neben Name, ca. 3 cm). +3. **D) Hyphenation-Feintuning für PDF** — kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ. Nach D): Status von Teilgebiet 01 in `zentral-index.md` auf „abgeschlossen" setzen (R2-OK von Thomas). Anschließend nächstes Teilgebiet nach Priorität (laut Index Teilgebiet 02 „Zeugnis von ASMPT"). **Offene Punkte (unverändert seit S04):** Zuschnitt und Festpreise der KI-Produkte (marketing.md Abschnitt 2), KMU-Direkthonorarsatz festlegen (marketing.md Abschnitt 2), Vergütungsmodell-Wahl bei erstem konkreten Fall (Notiz in marketing.md Abschnitt 2). **Hinweise für die nächste Session:** -- **Sandbox-Reads über den NTFS-Mount können stale/inkonsistent sein.** In S06 zeigte mir die Sandbox mehrfach Dateiinhalte, die im echten Repo nicht existierten (vermeintliche Truncation auf Working-Tree-Dateien, vermeintliche Index-Korruption). Thomas' PowerShell-Outputs waren immer die Wahrheitsquelle. Wenn Sandbox-Reads Schäden zeigen, die unplausibel sind, **nicht panisch reagieren** — erst Thomas via PowerShell verifizieren lassen, bevor Reparaturmaßnahmen ergriffen werden. -- **Sandbox-Schreibvorgänge sind aber zuverlässig** (nach Thomas' Bestätigung mehrerer Schreibziele in S06). Sowohl Write-Tool als auch `mcp__workspace__bash` mit Heredoc funktionieren. Bei längeren Skript-Dateien (>100 Zeilen) bleibt Heredoc trotzdem die robustere Wahl. +- **Sandbox-Pandoc ist 2.9.x, Thomas' System läuft Pandoc 3.x.** Output-Unterschiede zwischen den Versionen können Build-Probleme verursachen. Sandbox-Pandoc emittiert weder die calc-basierten Spaltenbreiten (`p{... * \real{...}}`) noch `\def\LTcaptype{none}` — beides Pandoc-3.x-Eigenheiten. Sandbox-Verifikation des kompletten Pipeline-Laufs mit `pandoc cv.md → PDF` deckt diese Bugs nicht ab. Bei Fehlern, die nur auf Thomas' System auftreten, **synthetisch das Pandoc-3.x-Output-Fragment in einer Mini-Tex-Datei nachbauen** und damit gegen das Template kompilieren. +- **Sandbox-Reads über den NTFS-Mount können stale/inkonsistent sein.** Wenn Sandbox-Reads Schäden zeigen, die unplausibel sind, **nicht panisch reagieren** — erst Thomas via PowerShell verifizieren lassen, bevor Reparaturmaßnahmen ergriffen werden. +- **Sandbox-Schreibvorgänge sind zuverlässig** (Write-Tool und Heredoc via Bash). Bei längeren Skript-Dateien (>100 Zeilen) bleibt Heredoc trotzdem die robustere Wahl. - **Sandbox kann nichts an `.git/` schreiben** (NTFS-Permission-Issue): Lock-Files, korrupte Index — alles muss von PowerShell aus repariert werden. -- **Sandbox-Pandoc ist 2.9.x, Thomas' System läuft Pandoc 3.x.** Output-Unterschiede zwischen den Versionen können Build-Probleme verursachen (siehe Hotfix für `\real` und `calc`). Im Zweifel synthetisch den 3.x-Output nachbauen und gegen Template testen. -- **`checkpoint.ps1` ist jetzt robust** gegen Anführungszeichen, Pipes, Whitespace-Anomalien und Index-Lock-Reste. `.checkpoint-pending.txt` darf wieder ganz normal Sonderzeichen enthalten. +- **`checkpoint.ps1` ist robust** gegen Anführungszeichen, Pipes, Whitespace-Anomalien und Index-Lock-Reste. `.checkpoint-pending.txt` darf ganz normal Sonderzeichen enthalten. +- **`build.ps1` pausiert bei Fehler 3 Sekunden pro fehlgeschlagenem Schritt.** Nicht überrascht sein, wenn ein fehlerhafter Lauf entsprechend länger braucht. diff --git a/artefakte/01-lebenslauf/build/build.ps1 b/artefakte/01-lebenslauf/build/build.ps1 index 1e65291..3310710 100644 --- a/artefakte/01-lebenslauf/build/build.ps1 +++ b/artefakte/01-lebenslauf/build/build.ps1 @@ -71,6 +71,7 @@ foreach ($f in @($sourceFile, $templateTex, $referenceDoc)) { if ($overallExit -ne 0) { Write-Host "===== Abbruch: Pflichtdateien fehlen =====" -ForegroundColor Red Write-Log "===== Abbruch: Pflichtdateien fehlen =====" + Start-Sleep -Seconds 3 exit $overallExit } @@ -98,6 +99,8 @@ if ($pdfExit -eq 0 -and (Test-Path $outputPdf)) { Write-Host " PDF FEHLER (Exit $pdfExit) - Details siehe build.log" -ForegroundColor Red Write-Log "PDF FEHLER (Exit $pdfExit)" $overallExit = 1 + # Kurz pausieren, damit die rote Fehlerzeile lesbar bleibt, falls das Fenster danach zugeht + Start-Sleep -Seconds 3 } # --- DOCX-Build -------------------------------------------------------------- @@ -123,6 +126,8 @@ if ($docxExit -eq 0 -and (Test-Path $outputDocx)) { Write-Host " DOCX FEHLER (Exit $docxExit) - Details siehe build.log" -ForegroundColor Red Write-Log "DOCX FEHLER (Exit $docxExit)" $overallExit = 1 + # Kurz pausieren, damit die rote Fehlerzeile lesbar bleibt, falls das Fenster danach zugeht + Start-Sleep -Seconds 3 } $endTs = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' diff --git a/artefakte/01-lebenslauf/output/Lebenslauf_Dr-Ing_Thomas_Langer.docx b/artefakte/01-lebenslauf/output/Lebenslauf_Dr-Ing_Thomas_Langer.docx index c2df675f30d919908b6d69b8b5d0cd77b3c6c7fb63b7f6c7775834922df2356a..5b1df74b50fc57c54f032f68422d56aab84678f226b7b6567912dbba7fab83db 100644 GIT binary patch delta 596 zcmaF2fbs1DM&1B#W)=|!CJqh;Q`cD=c{egL1L@5N8F?X$i%j3Oz#^x0t-&IbIrW!< z1vcv6V*)cK8ToO58IP@;A(}L8SQ$Bi#>5m};A)VWY;LPnzlbAJQ6{P|YpK`LtgEwA z^%DgDpSWlC;hQOEi&Ej^XJ60M&D(lchkuuM-9h%$vrQtAenJL^yi&Juf7%$gw0KjF z^urk&d~IZ+QU9*lkMI_FON z0=4A(-y`j%*BI72?vIPV*B%(0%2cG>u%%aoN3`sM*_T~C+7BBSe|`KdC~pDe4Z;?{daKTDnaEHvuc>zZ?`nnIs`e>r3JKUwX7p%15B^< zwFT2JeXYQ>njeIp=4XQx0jvGY>PC<(BLjmw69a=F!{md0!u3lhoy|LB zAkY%8`pLFXh-*<8M|;?usFgu0qrRryIEziB(~o?2g~g%fuaey&QhKYwf8H1@kH z`yVuKN^|VeQRkFMTxxWi^=HKTOO}z>rWW`_@aNyN`mjPlW#d^EwL4931Y{SRbjW7N zZF*r4cqd}L<*`foD<3DF-|leQW_}=V{RvffKmP+)cwLIzybKlY_UBtQh=@pCNHDmd zr2XP*_k+?MH!o=ZpA+@);z8fnt}=Jp7qBJY-WF;7a*biV-IHNBd#p;;(*X{`76FhtQXYf{G>kg)4eLcYR3SV0={leD@Oso1q_^Ez2obZU5yvol^9>kNX zRPF6xU|_fc#KJ&~00oo(`ze9dJe@fES}iadv)MpVi3~I+JNVl%UY%U;Z_AiId9S|{ U> +<< /S /GoTo /D (none.1) >> endobj -76 0 obj +77 0 obj (\376\377\000T\000r\000a\000i\000n\000i\000n\000g\000s) endobj -77 0 obj -<< /S /GoTo /D (section*.3) >> +78 0 obj +<< /S /GoTo /D (none.1) >> endobj -79 0 obj +80 0 obj (\376\377\000K\000e\000n\000n\000t\000n\000i\000s\000s\000e) endobj -80 0 obj -<< /S /GoTo /D [ 81 0 R /Fit ] >> +81 0 obj +<< /S /GoTo /D [ 82 0 R /Fit ] >> endobj -84 0 obj +85 0 obj << /Filter /FlateDecode /Length 2849 >> stream x[͎# S"Ram[-A9$~$Q(U]=ӝ] j%şu?=v] @@ -193,31 +193,31 @@ iw 18ׅtMJWZW3M):l6Irl˛/=_ioL ư8qt{F<1R`f+n|-hPEo\q^\w.PB}ɗJ&h+n`' Mg@.emOd.=ª"]ʭBlc_FKzK+^-*ccꡏiew^ j++Q6xsB Sݤd!־N{=.PHϡ#')x4ss8B({ tL9 ob[?&!W): &͌etSB}/>'zm<Ehʝ,z WGu#ϯy噁,m*d x~å1ތ`ڄ8xM8rr#Ή^MhW[}"yh2 1#H@e`'GwVd=pLe3wM1t7< ]ta5j̝8ѥ=AːX ^鯿/z[<arz4vN=5Cp8ΧjqUdGXAy`:8eLuq=eQem?aQQ qwN>|Lbz俿 '.1\sE3m-#竐_ъÉ9=ۼl# ᐒTRE䖸wlS1iFW endstream endobj -81 0 obj -<< /Type /Page /Contents 84 0 R /Resources 83 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 89 0 R >> -endobj -89 0 obj -[ 82 0 R ] -endobj 82 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> +<< /Type /Page /Contents 85 0 R /Resources 84 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 90 0 R >> endobj -85 0 obj -<< /D [ 81 0 R /XYZ 69.866 813.476 null ] >> -endobj -2 0 obj -<< /D [ 81 0 R /XYZ 70.866 779.528 null ] >> -endobj -6 0 obj -<< /D [ 81 0 R /XYZ 70.866 744.1 null ] >> -endobj -16 0 obj -<< /D [ 81 0 R /XYZ 70.866 344.932 null ] >> +90 0 obj +[ 83 0 R ] endobj 83 0 obj -<< /Font << /F39 86 0 R /F27 87 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -94 0 obj +86 0 obj +<< /D [ 82 0 R /XYZ 69.866 813.476 null ] >> +endobj +2 0 obj +<< /D [ 82 0 R /XYZ 70.866 779.528 null ] >> +endobj +6 0 obj +<< /D [ 82 0 R /XYZ 70.866 744.1 null ] >> +endobj +16 0 obj +<< /D [ 82 0 R /XYZ 70.866 344.932 null ] >> +endobj +84 0 obj +<< /Font << /F39 87 0 R /F27 88 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +95 0 obj << /Filter /FlateDecode /Length 3493 >> stream xڭ[IoWN!e%m0K!KY(Y?> +94 0 obj +<< /Type /Page /Contents 95 0 R /Resources 93 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 97 0 R >> endobj -96 0 obj -[ 91 0 R ] -endobj -91 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -95 0 obj -<< /D [ 93 0 R /XYZ 69.866 813.476 null ] >> +97 0 obj +[ 92 0 R ] endobj 92 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -100 0 obj +96 0 obj +<< /D [ 94 0 R /XYZ 69.866 813.476 null ] >> +endobj +93 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +101 0 obj << /Filter /FlateDecode /Length 3441 >> stream xڭ[K#ϯdB#ȀoIf d%?$HVVk0vYϯ?.˛oo{(Y)g.& q/%X%/߾_~ @@ -270,22 +270,22 @@ O^ j+yWr!6&nDG%ՀSZgQYtzvQ)uX6fsxWtduvS/,MkEc3)[OV&਻#RCSSwdj-l]FgSdPCY%9Nkuߟ"lo:].]XRImC:!1fS=rTE 1W4 endstream endobj -99 0 obj -<< /Type /Page /Contents 100 0 R /Resources 98 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 102 0 R >> +100 0 obj +<< /Type /Page /Contents 101 0 R /Resources 99 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 103 0 R >> endobj -102 0 obj -[ 97 0 R ] -endobj -97 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -101 0 obj -<< /D [ 99 0 R /XYZ 69.866 813.476 null ] >> +103 0 obj +[ 98 0 R ] endobj 98 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -106 0 obj +102 0 obj +<< /D [ 100 0 R /XYZ 69.866 813.476 null ] >> +endobj +99 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +107 0 obj << /Filter /FlateDecode /Length 3477 >> stream x[K ޟ_1z gdբ.M~%(YI"|#G~;O @@ -305,22 +305,22 @@ C SOLm}?<=^I'WaCX1L_l 4vF=ո~O(0SoStddݔn"{:|-54g_s endstream endobj -105 0 obj -<< /Type /Page /Contents 106 0 R /Resources 104 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 108 0 R >> +106 0 obj +<< /Type /Page /Contents 107 0 R /Resources 105 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 109 0 R >> endobj -108 0 obj -[ 103 0 R ] -endobj -103 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -107 0 obj -<< /D [ 105 0 R /XYZ 69.866 813.476 null ] >> +109 0 obj +[ 104 0 R ] endobj 104 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -112 0 obj +108 0 obj +<< /D [ 106 0 R /XYZ 69.866 813.476 null ] >> +endobj +105 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +113 0 obj << /Filter /FlateDecode /Length 3190 >> stream xڵ[Ɏ$W4} @@ -336,25 +336,25 @@ G j>w(O  f`>AtGZ c*7Y PY#32/yV\Ǽ,N.9*Gν4n 819P2gwhE7qhӗL\RRXm(%4^̡Jh,_3 ++lrL16 *콫xbum=GYU(}B>^9~;K4h/n][{QJݴ:حM endstream endobj -111 0 obj -<< /Type /Page /Contents 112 0 R /Resources 110 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 115 0 R >> +112 0 obj +<< /Type /Page /Contents 113 0 R /Resources 111 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 116 0 R >> endobj -115 0 obj -[ 109 0 R ] -endobj -109 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -113 0 obj -<< /D [ 111 0 R /XYZ 69.866 813.476 null ] >> -endobj -50 0 obj -<< /D [ 111 0 R /XYZ 70.866 678.213 null ] >> +116 0 obj +[ 110 0 R ] endobj 110 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R /F44 114 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -119 0 obj +114 0 obj +<< /D [ 112 0 R /XYZ 69.866 813.476 null ] >> +endobj +50 0 obj +<< /D [ 112 0 R /XYZ 70.866 678.213 null ] >> +endobj +111 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R /F44 115 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +120 0 obj << /Filter /FlateDecode /Length 2930 >> stream xڵ[Ɏ$WL4 @@ -374,54 +374,56 @@ m 1^̾iY-;a4zAtPPa|H n, 1'W6w%rbtGMn<"g2̒cz4`'y8N pBQun=|ԇZUjpoTVE\ŝJ :?3:傲sOm;h'i0E٘ K'wyK?tQa(\}r;T Si7-%kߩÂZ/-cí6MSxi쨄E\V!/~'52B.:;~8#&ZR2||s{CoN=1Mw%7_$kuXWTONff> endstream endobj -118 0 obj -<< /Type /Page /Contents 119 0 R /Resources 117 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 121 0 R >> -endobj -121 0 obj -[ 116 0 R ] -endobj -116 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -120 0 obj -<< /D [ 118 0 R /XYZ 69.866 813.476 null ] >> -endobj -117 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> -endobj -125 0 obj -<< /Filter /FlateDecode /Length 2747 >> -stream -x[Ɏ$WL\($]-@7}ta]<7KgF@(Uu&X^rT~yiL~BM0y5禠lӯ7UN r_:=~1~?p.u\9=R.EǾ>7YX:qʯfoѫ_~zz}cܺ_쵝ϱ^d<^&PI.-$ݴ=B,ht{z{G -!q0|x{&-X!LݫMѢr46VYuYY鹧YS&Fjl](l:-6OiX{ݗXmt1%Caamj.oԮc4iQ%NPpDx5Ҿxfz^@S/Xgq xlz'"s]gt,,etd5fK$u 8UX -$:˨4{WB`L7XA6ּb(z[^bjؑޜ 5nGHzaYzX`V̀ A5녬} ZrSC{nGGgmi#krmCٜ]" ~nZ2 ܪ9bDњ%~WZQH[SrN KX2ߴ.1&$Yf-ʽ "=@~x+2D5AIkZEvZF -t `G1ZҾKawxǾ8FR*zYfg({0\DCYuvaFW )*%{*a=Ih${ޡHd9FWk{n&yT/˸iME@&q!#oLI ̛J7IP xH(y=R';ՐPfp!H] -n63PXVQsys%GD$D"ҠܗlAhxEgi#䭠 eŞ]=RWfne.;zBd:—p^EZVp!lf ҇EԸdQqQtڥ\C&"YJTTʶ>ƙy ®L_?9=eD&Rze(=X`lEʓ1pҪc=C$rêk1նc#E5RI0|o})P)V͋8[ 7ȫtTsƜ6e.(vہYp%YQ`.h>`–[`a>n''y5'}3[Oh^Ґ9Y3f\['cE_}Sd$AdݮPd֡tqZboukOdӜE|a]]s g¼cd:hq& p -}V?[\~6*C㌢[V# Tʲ9-VQ+h` c rI}'ř*f.y=6>$<9%w CaEnoY}08$*~nLIgipNjp^h`@wj86yb4g /q2kv(SbMΤ(敤; ;7QQ!T,r] -.+" v6_ -c9Z^#ؕdZ ,*4!ﱜ+p`8t 3#W0.1۾s@/Oʚmg3*G[_СWiq,sVO*)i*5aW77Ɨj@cMoN -Z)t7:BHVn#41b%vgՕ ˎ D*aY.||K5Un3֝6wC y]>W΢k0}Et;=-P ]|D5oۂ7xnbh!tYj&)s"gcvUj͢SZ#M{|$1\^뤃nvH^¹Ƭq8kײmN`%p -az VyJ.W0 h:=T!WiO8l4Q?բ -endstream -endobj -124 0 obj -<< /Type /Page /Contents 125 0 R /Resources 123 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 127 0 R >> -endobj -127 0 obj -[ 122 0 R ] +119 0 obj +<< /Type /Page /Contents 120 0 R /Resources 118 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 122 0 R >> endobj 122 0 obj +[ 117 0 R ] +endobj +117 0 obj << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj +121 0 obj +<< /D [ 119 0 R /XYZ 69.866 813.476 null ] >> +endobj +118 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj 126 0 obj -<< /D [ 124 0 R /XYZ 69.866 813.476 null ] >> +<< /Filter /FlateDecode /Length 2654 >> +stream +xZɎ$7WF + TeVm<}3|`|>/FR,hIA=B_~O}ˢ^ }K*zZ+pZFkk~zLyx}6`ӕɷcLtKS'[ڗw<47!ץ֦=.kG˗ +vxeO?<y߼x_҃ߏiY2:5=s,j鿌l\pzͻ+3Wp D,5gnn=]{!yfgi=f-Ah 8po i[=->-:m{Q]{QvhFє.Sڒ(\tAX`2"doR4Tkk#/qbX kTQwu$e9KfL/a%N+( ܆Uo&VW hDcUG.a6 F-.̃+Y~ԭ5iH:A&a/M J\ۊ]~\R2~5 /0pYl.Q^uy]/$GV_zΎlfl5j ߁x Z.N[eb+1S@f-ƙL'01CǤ:a'ӸŶb˸O4ex>twTj. S01qaӴ88<{ M +2;2r^GĶHb^E`]镂9CzjLtnz +qt/F@1ղj4jGޫZ x jlA_GҡYT4E"6lYvA?iV >;߉3fh=v/ɞÒn̞FiMlr8㧸VDtr..tJccn?I䄐T l0 4@/f ,i72W!$Lvj_@zC?lr|LMyR4䤄yTe1i%S+Vg4;]I6ꂚ";h[TtfFʮ">7-&`+X?v"n dO!TWl$"n?dvmv9yfӕJ58QJ%A*&=2ns%/#4'C +ʦRr&Hֶc1+hCpɸ`H6 Db:W:/n+7"Qfpg**dV"EQǧn'*m54_݄S{ jS 0U +!m逷ĜZ+uJY7S:DP(;KI&wopodqoiX?׾R'>\Ɉ7& + |DU9Mt_2StQUs;`ƅ( S WapkK?һe2r2~'6DޣqNc jTԻuSB |VS-3ޭTU -S{KjY$4zͭw,8n+a$qIe 6J !v;;;Pa|K{ΗDžs7p]U֡A2NMHD9)Bc!}|2(±.-DեAYH`?e/fC/0OU g?kO mV>ϥ8jj;M=Rw§V/O"J|[|%6 pN%| fCFlc<99+(2abW9Einoi"qЁ|>bѳw޴E4KX-Lv9+rD2Sl  Ccye4` Rz?GmqY(omxlކjڈ:;Ko|'ؔ.'q\83MLi ,k5F a>΍ELu2r ʞ "r(ڶq!8lXNw0n#~q8;; B@0J ZP&tr(p  +k;J>k|hTRFǧ/<E)i\_Yi67*EZP|k}cINfHnv@@$j=$ N,'%Oҷ~ISN +9kjX$a7tC$>};Qi<4_g\7:Ma0^W_^֋x.>5iQ>ᮍU6]k SSS%8c/:NzkXq}ۧcoØHnxo1}Ϙ+ wPE#q~}3$ʲHs|uHqۜ8%nchC.X>"L]²6tYK-giKȝ;>8Xr"LDZ#Fo-]l kmRw??fO*D0tx0|Y%js^k~U+͢Chͥ!(/yp}eK#ƥG=kJ'6X{`;xǖU#[YXϯ KN~%4).r +#9m *kpf*>{ +endstream +endobj +125 0 obj +<< /Type /Page /Contents 126 0 R /Resources 124 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 128 0 R >> +endobj +128 0 obj +[ 123 0 R ] endobj 123 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -131 0 obj +127 0 obj +<< /D [ 125 0 R /XYZ 69.866 813.476 null ] >> +endobj +75 0 obj +<< /D [ 125 0 R /XYZ 70.866 570.185 null ] >> +endobj +124 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +132 0 obj << /Filter /FlateDecode /Length 2923 >> stream xڭ[Ɏ$7W] @@ -436,22 +438,22 @@ w 'ckYIB Jz4zbq(v^"\L"y5)苦<ˎ/2k[Ig$ܪ*|ͩ;3tƚCTDEd1h7V!e,_׈=AxR㗂iq* ņ~A{51Qd@u !Sɖk=K#wʖX4PE:4lal;.  5/I/J f~ vԉ9e5)o'fޘ'gG[Ri&a>5*ؤ 1Ҹ #!TPvD9/BVƑ]0JiB LrCklz\dz[AҼ`cO ݌,ŔF{a7ք[o_`'Eg+m CN$'R/wK蓜DII~{jn<ǭPB$u]j{qȍrݦ].x6V^Ydg NR"0^E endstream endobj -130 0 obj -<< /Type /Page /Contents 131 0 R /Resources 129 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 133 0 R >> +131 0 obj +<< /Type /Page /Contents 132 0 R /Resources 130 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 134 0 R >> endobj -133 0 obj -[ 128 0 R ] -endobj -128 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -132 0 obj -<< /D [ 130 0 R /XYZ 69.866 813.476 null ] >> +134 0 obj +[ 129 0 R ] endobj 129 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> endobj -137 0 obj +133 0 obj +<< /D [ 131 0 R /XYZ 69.866 813.476 null ] >> +endobj +130 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +138 0 obj << /Filter /FlateDecode /Length 847 >> stream xڥVn0 )QGI]m[nEOz.{Q"eKv @@ -460,31 +462,31 @@ xڥV ؕaw۹KesS!ۼG c>=Q?ϛIY~0CK}VE) hdىqaⲾlhF {M#H4Bq#N/_P :ו483'aAG鬹6koT; endstream endobj -136 0 obj -<< /Type /Page /Contents 137 0 R /Resources 135 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 88 0 R /Annots 138 0 R >> -endobj -138 0 obj -[ 134 0 R ] -endobj -134 0 obj -<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> -endobj -90 0 obj -<< /D [ 136 0 R /XYZ 69.866 813.476 null ] >> -endobj -135 0 obj -<< /Font << /F27 87 0 R /F39 86 0 R >> /ProcSet [ /PDF /Text ] >> +137 0 obj +<< /Type /Page /Contents 138 0 R /Resources 136 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 139 0 R >> endobj 139 0 obj +[ 135 0 R ] +endobj +135 0 obj +<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.9) >> >> +endobj +91 0 obj +<< /D [ 137 0 R /XYZ 69.866 813.476 null ] >> +endobj +136 0 obj +<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +140 0 obj [ 1 [ 583 ] 3 [ 572 488 ] 6 [ 511 307 508 ] 11 [ 565 264 ] 14 [ 519 264 848 565 550 572 ] 21 [ 364 ] 23 [ 320 ] 30 [ 623 ] 34 [ 565 ] 42 [ 784 ] 44 [ 679 588 ] 48 [ 577 557 ] 56 [ 600 ] 60 [ 600 ] 62 [ 600 ] 67 [ 600 ] 90 [ 273 ] 92 [ 293 ] 112 [ 328 328 ] ] endobj -141 0 obj +142 0 obj << /Filter /FlateDecode /Length 23 >> stream xڋIA@*_| endstream endobj -142 0 obj +143 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2729 >> stream xڥW PSpiKKFPkT\qC+U`  H#Z,.VEťEOVkf:әwgns_rXΎaYV<}n@IfIa^ ap\]ȑ*~؟RFz*8Ny^Y*31+)0B'g3`;IWHJ14g.^mܣUyɪdU!,.42A5jxM @@ -497,10 +499,10 @@ B* (:TxAe+ATx2|pz$\[ZVVDVHfmT+g1'i2#e[Gv"w0qsFRSw-e3!<~$.$b)&Pp4q6Tl*Eo?mGg/[C5XKͬzW"&[9|8o'Z3XPm|gI:m]9CYⷻ!|QZYpKKb&&9NX28{TYg\J5L& t>55(H~ޞg)ln^o^c2ǥC 8H%M\uAMeSŞe+qk sj++2RE!\ARyÿM>q߉n!zI+,Ƞjb_y ϸLQa+۽^;:YL,A]/B~nr:zl%Cde+Sފ#`Ձn^@#؎}E^:Ŕ'M0 |0wnꭌtCOc}ROK_[9, endstream endobj -140 0 obj -<< /Type /FontDescriptor /FontName /SSHRCC+IBMPlexSans-Italic /Flags 4 /FontBBox [ -245 -245 1180 1120 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle -12 /StemV 91 /XHeight 516 /FontFile3 142 0 R /CIDSet 141 0 R >> +141 0 obj +<< /Type /FontDescriptor /FontName /SSHRCC+IBMPlexSans-Italic /Flags 4 /FontBBox [ -245 -245 1180 1120 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle -12 /StemV 91 /XHeight 516 /FontFile3 143 0 R /CIDSet 142 0 R >> endobj -143 0 obj +144 0 obj << /Filter /FlateDecode /Length 496 >> stream xڅы0WkڴEawq5%p䫻p\&d:)ùjGζ5#)ߪ6ID-ڽidI=Ųu`Ņߢk%quxG?òXmNt}ue]ޮOV?)qv7Q?tu_Y9ʛ &W6?Z0;A3U~ g;0\^΅>4t&[zsɇQdj}d.퉜#ƃٌ):ޫ3Bl񕵻bLFQVLL M_q1We> -endobj -144 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SSHRCC+IBMPlexSans-Italic /FontDescriptor 140 0 R /W 139 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +115 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SSHRCC+IBMPlexSans-Italic /DescendantFonts [ 145 0 R ] /ToUnicode 144 0 R >> endobj 145 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SSHRCC+IBMPlexSans-Italic /FontDescriptor 141 0 R /W 140 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +endobj +146 0 obj [ 1 [ 534 ] 3 [ 580 503 580 549 324 528 ] 11 [ 568 250 250 527 272 873 568 560 580 580 367 487 351 568 492 768 507 499 464 641 653 621 671 583 559 695 707 400 510 634 501 812 707 708 606 708 640 581 572 678 609 891 613 593 580 600 ] 59 [ 600 600 600 600 600 600 600 600 600 ] 80 [ 694 891 399 ] 86 [ 588 780 ] 89 [ 565 272 ] 92 [ 292 272 292 ] 101 [ 474 ] 103 [ 475 ] 112 [ 335 335 ] 118 [ 383 ] 122 [ 927 ] 142 [ 600 ] 157 [ 396 ] 194 [ 567 ] 200 [ 534 ] 314 [ 560 ] 344 [ 640 ] 355 [ 568 ] 476 [ 708 ] 515 [ 678 ] ] endobj -147 0 obj +148 0 obj << /Filter /FlateDecode /Length 44 >> stream xڋ`xpH71pis / endstream endobj -148 0 obj +149 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5351 >> stream xڭY \SW1T @@ -554,10 +556,10 @@ x K+K}gfo]w endstream endobj -146 0 obj -<< /Type /FontDescriptor /FontName /KKCYEW+IBMPlexSans /Flags 4 /FontBBox [ -260 -245 1241 1119 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 91 /XHeight 516 /FontFile3 148 0 R /CIDSet 147 0 R >> +147 0 obj +<< /Type /FontDescriptor /FontName /KKCYEW+IBMPlexSans /Flags 4 /FontBBox [ -260 -245 1241 1119 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 91 /XHeight 516 /FontFile3 149 0 R /CIDSet 148 0 R >> endobj -149 0 obj +150 0 obj << /Filter /FlateDecode /Length 736 >> stream xu]k@+f/ @@ -569,23 +571,23 @@ J {sa5?4M7WXe'd~zzGs endstream endobj -87 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KKCYEW+IBMPlexSans /DescendantFonts [ 150 0 R ] /ToUnicode 149 0 R >> -endobj -150 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /KKCYEW+IBMPlexSans /FontDescriptor 146 0 R /W 145 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +88 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KKCYEW+IBMPlexSans /DescendantFonts [ 151 0 R ] /ToUnicode 150 0 R >> endobj 151 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /KKCYEW+IBMPlexSans /FontDescriptor 147 0 R /W 146 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +endobj +152 0 obj [ 1 [ 569 ] 3 [ 608 517 608 562 361 552 ] 11 [ 596 286 286 577 303 894 596 564 608 608 404 504 383 596 538 841 ] 28 [ 534 518 685 667 651 697 607 585 719 724 432 559 696 530 819 724 714 656 ] 47 [ 674 624 584 694 650 973 ] 55 [ 607 600 ] 59 [ 600 600 600 600 600 600 ] 66 [ 600 600 ] 80 [ 721 ] 82 [ 403 ] 86 [ 588 780 ] 90 [ 310 ] 92 [ 330 310 ] 101 [ 535 ] 103 [ 539 ] 112 [ 338 338 ] 118 [ 460 ] 194 [ 647 ] 200 [ 569 ] 314 [ 564 ] 344 [ 692 ] 355 [ 596 ] 515 [ 694 ] ] endobj -153 0 obj +154 0 obj << /Filter /FlateDecode /Length 39 >> stream xڋ?o`Xp70`2E ' endstream endobj -154 0 obj +155 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4888 >> stream xڝ9 TW4U)[6U ;ŀj ʾ:PGKF%n b0q4&5.xPx8?9Ι8Mzw @@ -612,10 +614,10 @@ ZQG + endstream endobj -152 0 obj -<< /Type /FontDescriptor /FontName /OANFAB+IBMPlexSans-Bold /Flags 4 /FontBBox [ -307 -275 1332 1150 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 103 /XHeight 525 /FontFile3 154 0 R /CIDSet 153 0 R >> +153 0 obj +<< /Type /FontDescriptor /FontName /OANFAB+IBMPlexSans-Bold /Flags 4 /FontBBox [ -307 -275 1332 1150 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 103 /XHeight 525 /FontFile3 155 0 R /CIDSet 154 0 R >> endobj -155 0 obj +156 0 obj << /Filter /FlateDecode /Length 690 >> stream x}]kPE+<kW4aR06v$'+0LGPsr1ǫo"D߆ŵթ$U]~9msSe[׉dڔEwopݥEK^%q~Nb9,?l'O¡} E*82?\U m2O@ѥ^|2oFm0H%"F?cм=;n}fb]soS(n#`>3z?-W9|k'Yeٕ.!s1K> -endobj -156 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OANFAB+IBMPlexSans-Bold /FontDescriptor 152 0 R /W 151 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> -endobj -88 0 obj -<< /Type /Pages /Count 9 /Kids [ 81 0 R 93 0 R 99 0 R 105 0 R 111 0 R 118 0 R 124 0 R 130 0 R 136 0 R ] >> +87 0 obj +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OANFAB+IBMPlexSans-Bold /DescendantFonts [ 157 0 R ] /ToUnicode 156 0 R >> endobj 157 0 obj -<< /Type /Outlines /First 3 0 R /Last 78 0 R /Count 1 >> +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OANFAB+IBMPlexSans-Bold /FontDescriptor 153 0 R /W 152 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -78 0 obj -<< /Title 79 0 R /A 77 0 R /Parent 44 0 R /Prev 75 0 R >> +89 0 obj +<< /Type /Pages /Count 9 /Kids [ 82 0 R 94 0 R 100 0 R 106 0 R 112 0 R 119 0 R 125 0 R 131 0 R 137 0 R ] >> endobj -75 0 obj -<< /Title 76 0 R /A 74 0 R /Parent 44 0 R /Prev 72 0 R /Next 78 0 R >> +158 0 obj +<< /Type /Outlines /First 3 0 R /Last 79 0 R /Count 1 >> +endobj +79 0 obj +<< /Title 80 0 R /A 78 0 R /Parent 44 0 R /Prev 76 0 R >> +endobj +76 0 obj +<< /Title 77 0 R /A 74 0 R /Parent 44 0 R /Prev 72 0 R /Next 79 0 R >> endobj 72 0 obj -<< /Title 73 0 R /A 71 0 R /Parent 44 0 R /Prev 47 0 R /Next 75 0 R >> +<< /Title 73 0 R /A 71 0 R /Parent 44 0 R /Prev 47 0 R /Next 76 0 R >> endobj 69 0 obj << /Title 70 0 R /A 68 0 R /Parent 47 0 R /Prev 66 0 R >> @@ -674,7 +676,7 @@ endobj << /Title 48 0 R /A 46 0 R /Parent 44 0 R /Next 72 0 R /First 51 0 R /Last 69 0 R /Count -7 >> endobj 44 0 obj -<< /Title 45 0 R /A 43 0 R /Parent 41 0 R /First 47 0 R /Last 78 0 R /Count -4 >> +<< /Title 45 0 R /A 43 0 R /Parent 41 0 R /First 47 0 R /Last 79 0 R /Count -4 >> endobj 41 0 obj << /Title 42 0 R /A 40 0 R /Parent 38 0 R /First 44 0 R /Last 44 0 R /Count -1 >> @@ -713,186 +715,187 @@ endobj << /Title 8 0 R /A 5 0 R /Parent 3 0 R /First 10 0 R /Last 10 0 R /Count -1 >> endobj 3 0 obj -<< /Title 4 0 R /A 1 0 R /Parent 157 0 R /First 7 0 R /Last 7 0 R /Count -1 >> -endobj -158 0 obj -<< /Names [ (Doc-Start) 2 0 R (page.1) 85 0 R (page.2) 95 0 R (page.3) 101 0 R (page.4) 107 0 R (page.5) 113 0 R (page.6) 120 0 R (page.7) 126 0 R (page.8) 132 0 R (page.9) 90 0 R (section*.1) 6 0 R (section*.2) 16 0 R (section*.3) 50 0 R ] /Limits [ (Doc-Start) (section*.3) ] >> +<< /Title 4 0 R /A 1 0 R /Parent 158 0 R /First 7 0 R /Last 7 0 R /Count -1 >> endobj 159 0 obj -<< /Dests 158 0 R >> +<< /Names [ (Doc-Start) 2 0 R (none.1) 75 0 R (page.1) 86 0 R (page.2) 96 0 R (page.3) 102 0 R (page.4) 108 0 R (page.5) 114 0 R (page.6) 121 0 R (page.7) 127 0 R (page.8) 133 0 R (page.9) 91 0 R (section*.1) 6 0 R (section*.2) 16 0 R (section*.3) 50 0 R ] /Limits [ (Doc-Start) (section*.3) ] >> endobj 160 0 obj -<< /Type /Catalog /Pages 88 0 R /Outlines 157 0 R /Names 159 0 R /PageMode/UseOutlines /OpenAction 80 0 R >> +<< /Dests 159 0 R >> endobj 161 0 obj -<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260425143016+02'00') /ModDate (D:20260425143016+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >> +<< /Type /Catalog /Pages 89 0 R /Outlines 158 0 R /Names 160 0 R /PageMode/UseOutlines /OpenAction 81 0 R >> +endobj +162 0 obj +<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260426104140+02'00') /ModDate (D:20260426104140+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >> endobj xref -0 162 +0 163 0000000000 65535 f 0000000020 00000 n -0000016175 00000 n -0000065172 00000 n +0000016167 00000 n +0000065136 00000 n 0000000065 00000 n 0000000266 00000 n -0000016235 00000 n -0000065078 00000 n +0000016227 00000 n +0000065042 00000 n 0000000312 00000 n 0000000399 00000 n -0000064982 00000 n +0000064946 00000 n 0000000445 00000 n 0000000548 00000 n -0000064884 00000 n +0000064848 00000 n 0000000595 00000 n 0000000827 00000 n -0000016293 00000 n -0000064786 00000 n +0000016285 00000 n +0000064750 00000 n 0000000874 00000 n 0000001316 00000 n -0000064688 00000 n +0000064652 00000 n 0000001363 00000 n 0000002095 00000 n -0000064590 00000 n +0000064554 00000 n 0000002142 00000 n 0000002669 00000 n -0000064492 00000 n +0000064456 00000 n 0000002716 00000 n 0000003178 00000 n -0000064394 00000 n +0000064358 00000 n 0000003225 00000 n 0000003952 00000 n -0000064296 00000 n +0000064260 00000 n 0000003999 00000 n 0000004558 00000 n -0000064198 00000 n +0000064162 00000 n 0000004605 00000 n 0000005132 00000 n -0000064100 00000 n +0000064064 00000 n 0000005179 00000 n 0000005636 00000 n -0000064002 00000 n +0000063966 00000 n 0000005683 00000 n 0000006155 00000 n -0000063904 00000 n +0000063868 00000 n 0000006202 00000 n 0000006688 00000 n -0000063793 00000 n +0000063757 00000 n 0000006735 00000 n 0000006998 00000 n -0000032105 00000 n -0000063719 00000 n +0000032099 00000 n +0000063683 00000 n 0000007045 00000 n 0000007969 00000 n -0000063632 00000 n +0000063596 00000 n 0000008016 00000 n 0000008794 00000 n -0000063545 00000 n +0000063509 00000 n 0000008841 00000 n 0000009856 00000 n -0000063458 00000 n +0000063422 00000 n 0000009903 00000 n 0000010557 00000 n -0000063371 00000 n +0000063335 00000 n 0000010604 00000 n 0000011265 00000 n -0000063284 00000 n +0000063248 00000 n 0000011312 00000 n 0000011938 00000 n -0000063210 00000 n +0000063174 00000 n 0000011985 00000 n 0000012457 00000 n -0000063123 00000 n +0000063087 00000 n 0000012504 00000 n 0000012582 00000 n -0000063036 00000 n -0000012629 00000 n -0000012702 00000 n -0000062962 00000 n -0000012749 00000 n -0000012827 00000 n -0000015807 00000 n -0000015966 00000 n -0000016354 00000 n -0000012877 00000 n -0000016114 00000 n -0000062407 00000 n -0000055444 00000 n -0000062764 00000 n -0000015939 00000 n -0000043732 00000 n -0000020169 00000 n -0000020378 00000 n -0000020010 00000 n -0000016436 00000 n -0000020317 00000 n -0000020142 00000 n -0000024145 00000 n -0000024355 00000 n -0000023983 00000 n -0000020460 00000 n -0000024293 00000 n -0000024117 00000 n -0000028161 00000 n -0000028373 00000 n -0000027996 00000 n -0000024437 00000 n -0000028310 00000 n -0000028132 00000 n -0000031893 00000 n -0000032167 00000 n -0000031728 00000 n -0000028456 00000 n -0000032042 00000 n -0000047913 00000 n -0000031864 00000 n -0000035440 00000 n -0000035652 00000 n -0000035275 00000 n -0000032263 00000 n -0000035589 00000 n -0000035411 00000 n -0000038729 00000 n -0000038941 00000 n -0000038564 00000 n -0000035735 00000 n -0000038878 00000 n -0000038700 00000 n -0000042194 00000 n -0000042406 00000 n -0000042029 00000 n -0000039024 00000 n -0000042343 00000 n -0000042165 00000 n -0000043583 00000 n -0000043794 00000 n -0000043418 00000 n -0000042489 00000 n -0000043554 00000 n -0000043877 00000 n -0000047093 00000 n -0000044153 00000 n -0000044258 00000 n -0000047335 00000 n -0000048071 00000 n -0000048275 00000 n -0000054393 00000 n -0000048810 00000 n -0000048936 00000 n -0000054626 00000 n -0000055594 00000 n -0000055791 00000 n -0000061396 00000 n -0000056281 00000 n -0000056402 00000 n -0000061635 00000 n -0000062562 00000 n -0000062888 00000 n -0000065266 00000 n -0000065564 00000 n -0000065602 00000 n -0000065728 00000 n +0000038842 00000 n +0000063000 00000 n +0000012625 00000 n +0000012698 00000 n +0000062926 00000 n +0000012741 00000 n +0000012819 00000 n +0000015799 00000 n +0000015958 00000 n +0000016346 00000 n +0000012869 00000 n +0000016106 00000 n +0000062370 00000 n +0000055407 00000 n +0000062727 00000 n +0000015931 00000 n +0000043695 00000 n +0000020161 00000 n +0000020370 00000 n +0000020002 00000 n +0000016428 00000 n +0000020309 00000 n +0000020134 00000 n +0000024138 00000 n +0000024349 00000 n +0000023975 00000 n +0000020452 00000 n +0000024286 00000 n +0000024110 00000 n +0000028155 00000 n +0000028367 00000 n +0000027990 00000 n +0000024431 00000 n +0000028304 00000 n +0000028126 00000 n +0000031887 00000 n +0000032161 00000 n +0000031722 00000 n +0000028450 00000 n +0000032036 00000 n +0000047876 00000 n +0000031858 00000 n +0000035434 00000 n +0000035646 00000 n +0000035269 00000 n +0000032257 00000 n +0000035583 00000 n +0000035405 00000 n +0000038630 00000 n +0000038904 00000 n +0000038465 00000 n +0000035729 00000 n +0000038779 00000 n +0000038601 00000 n +0000042157 00000 n +0000042369 00000 n +0000041992 00000 n +0000038987 00000 n +0000042306 00000 n +0000042128 00000 n +0000043546 00000 n +0000043757 00000 n +0000043381 00000 n +0000042452 00000 n +0000043517 00000 n +0000043840 00000 n +0000047056 00000 n +0000044116 00000 n +0000044221 00000 n +0000047298 00000 n +0000048034 00000 n +0000048238 00000 n +0000054356 00000 n +0000048773 00000 n +0000048899 00000 n +0000054589 00000 n +0000055557 00000 n +0000055754 00000 n +0000061359 00000 n +0000056244 00000 n +0000056365 00000 n +0000061598 00000 n +0000062525 00000 n +0000062852 00000 n +0000065230 00000 n +0000065544 00000 n +0000065582 00000 n +0000065708 00000 n trailer -<< /Size 162 /Root 160 0 R /Info 161 0 R /ID [ ] >> +<< /Size 163 /Root 161 0 R /Info 162 0 R /ID [ <53CF6B4AF812DB9CEA60519E77C224DA> <53CF6B4AF812DB9CEA60519E77C224DA> ] >> startxref -66388 +66368 %%EOF diff --git a/artefakte/01-lebenslauf/output/build.log b/artefakte/01-lebenslauf/output/build.log index f3c9c52..678c02d 100644 --- a/artefakte/01-lebenslauf/output/build.log +++ b/artefakte/01-lebenslauf/output/build.log @@ -1,4 +1,4 @@ -===== Build gestartet: 2026-04-25 20:59:41 ===== +===== Build gestartet: 2026-04-26 10:41:37 ===== Source: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Template-TEX: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex Reference: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx @@ -6,17 +6,8 @@ Output-Dir: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslau --- Pandoc -> PDF (LuaLaTeX) --- Cmd: pandoc --from=markdown+smart --pdf-engine=lualatex --template=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md -Error producing PDF. -! LaTeX Error: No counter 'none' defined. -System.Management.Automation.RemoteException -See the LaTeX manual or LaTeX Companion for explanation. -Type H for immediate help. - ... - -l.828 ...width - 2\tabcolsep) * \real{0.8554}}@{}} -System.Management.Automation.RemoteException -PDF FEHLER (Exit 43) +PDF OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf (68.2 KB) --- Pandoc -> DOCX --- Cmd: pandoc --from=markdown+smart --reference-doc=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md DOCX OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx (20.1 KB) -===== Build beendet: 2026-04-25 20:59:51, Exit-Code 1 ===== +===== Build beendet: 2026-04-26 10:41:42, Exit-Code 0 ===== diff --git a/artefakte/01-lebenslauf/templates/template.tex b/artefakte/01-lebenslauf/templates/template.tex index 3f0cb65..1894044 100644 --- a/artefakte/01-lebenslauf/templates/template.tex +++ b/artefakte/01-lebenslauf/templates/template.tex @@ -89,6 +89,13 @@ \usepackage{booktabs} \usepackage{longtable} \providecommand{\real}[1]{#1} +%% Pandoc 3.x emittiert fuer unnummerierte Tabellen `\def\LTcaptype{none}` +%% ohne den Counter `none` zu definieren. Pandocs eigene Default-Vorlage +%% definiert ihn (commit d835461 in Pandoc 3.8.2.1), Custom-Templates muessen +%% das selbst tun, sonst bricht LuaLaTeX mit +%% ! LaTeX Error: No counter 'none' defined. +%% in der Tabellen-Spaltenangabe ab. Siehe github.com/jgm/pandoc/issues/11201. +\newcounter{none} %% Linienbreiten auf 0pt: \toprule/\midrule/\bottomrule rendern unsichtbar. \setlength{\heavyrulewidth}{0pt} \setlength{\lightrulewidth}{0pt} diff --git a/changelog.md b/changelog.md index 18b8eb0..edfa767 100644 --- a/changelog.md +++ b/changelog.md @@ -42,3 +42,4 @@ Chronologisches Log aller Entscheidungen und Prozessereignisse. 2026-04-25 22:15 | S06 | PDF-Build-Hotfix nach erstem Build der Tabellen-Revision: LuaLaTeX schlug in der Tabellen-Spaltenangabe mit der Meldung ueber einen nicht definierten Counter none fehl, weil Thomas Pandoc-Version (3.x) calc-basierte Spaltenbreiten der Form p von Klammer Spaltenbreite minus 2 mal tabcolsep Klammerzu mal real Faktor emittiert und das Template weder das calc-Paket noch das Pandoc-Hilfsmakro real bereitstellte (Sandbox-Pandoc 2.9 emittiert die simplere ll-Spaltenform und hat den Fehler nicht reproduziert). templates/template.tex Tabellen-Block ergaenzt um usepackage array, usepackage calc und providecommand real. Sandbox-Verifikation: synthetischer Pandoc-3.x-Spalten-Output kompiliert mit dem erweiterten Template via LuaLaTeX zu PDF, nur eine harmlose longtable-Rerun-Warnung. DOCX nach Tabellen-Revision von Thomas visuell bestaetigt (Tabelle sieht gut aus, nur Default-Word-Tabellenrahmenlinien noch da, Rahmen-Aus in Iteration B). teilgebiete/01-lebenslauf.md und agent-prompt.md um Hotfix-Eintrag und DOCX-Bestaetigung ergaenzt. 2026-04-25 22:35 | S06 | Tooling-Fix: checkpoint.ps1 robust gegen problematische Eingabedaten gemacht. Commit-Message wird jetzt via Temp-Datei und git commit -F uebergeben statt via -m mit String, damit doppelte Anfuehrungszeichen im Summary nicht mehr das Argument zerlegen (Ursache des fehlgeschlagenen Hotfix-Commits zuvor). Pipe-Zeichen im Summary werden vorab abgelehnt, da sie mit dem Changelog-Format Timestamp Pipe Session Pipe Summary kollidieren. Whitespace und Zeilenumbrueche im Summary werden zu einem einzelnen Leerzeichen normalisiert. Pre-flight-Checks ergaenzt: Existenz von .git, verwaiste .git/index.lock mit klarer Anleitung melden, changelog.md muss vor dem Lauf clean sein. Atomarer Rollback bei Fehler im Hauptablauf: changelog.md wird auf Original-Stand zurueckgeschrieben und Index-Stagung von changelog.md per git restore --staged oder git reset HEAD zurueckgesetzt, sodass der naechste Lauf nicht doppelt anhaengt. Cleanup-Robustheit: Temp-Message-Datei wird in finally geloescht, das Loeschen der Pending-Datei ist nicht mehr fatal sondern nur eine Warnung. 2026-04-25 22:43 | S06 | Session-Abschluss S06. Teilgebiet 01 Iteration A inhaltlich umgesetzt: Ausbildung als 2-Spalten-Layout via Pandoc-Multiline-Tabelle ohne Header, Template um array, calc, booktabs, longtable und providecommand real ergänzt, alle Linienbreiten auf 0pt. DOCX-Layout von Thomas visuell bestätigt (nur Default-Tabellenrahmen offen, Rahmen-Aus in Iteration B). PDF-Build mit Hotfix steht noch aus — erste Aufgabe der nächsten Session ist build.ps1 laufen lassen und das Ausbildungs-Layout im PDF prüfen. Tooling-Fix in checkpoint.ps1 abgeschlossen (Quoting-Bug, Pipe-Validierung, Whitespace-Normalisierung, Pre-flight-Checks, atomarer Rollback bei Fehler). agent-prompt.md Aktueller-Stand-Abschnitt für S07 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, neuen Lehren aus S06 dokumentiert (Sandbox-Reads über NTFS-Mount können stale sein, Sandbox-Pandoc 2.9 vs Thomas' Pandoc 3.x Output-Unterschiede). +2026-04-26 10:58 | S07 | PDF-Build-Fehler endgueltig behoben. S06-Hotfix (array, calc, providecommand real) loeste das Problem nicht; nach Rebuild kam unveraendert "! LaTeX Error: No counter 'none' defined." Eigentliche Ursache: Pandoc 3.x emittiert fuer unnummerierte Tabellen direkt vor begin{longtable} die Zeile def LTcaptype none, ohne den Counter none zu definieren. Pandocs eigene Default-Vorlage definiert ihn (commit d835461 in Pandoc 3.8.2.1), Custom-Templates muessen das selbst tun (siehe Pandoc-Issue 11201). Fix: eine Zeile newcounter none direkt nach providecommand real im Tabellen-Block des Templates. Sandbox-Reproduktion exakter Fehlertext ohne Fix, sauberes PDF mit Fix. Auf Thomas' System: PDF wird erzeugt, Ausbildungs-Layout im PDF visuell bestaetigt. Iteration A fuer Teilgebiet 01 damit inhaltlich abgeschlossen. Build-UX-Fix: build.ps1 ergaenzt um Start-Sleep -Seconds 3 nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF-Build, DOCX-Build), damit die rote Fehlerzeile lesbar bleibt bevor das PowerShell-Fenster zugeht. teilgebiete/01-lebenslauf.md um beide Fixes ergaenzt (zweistufige Hotfix-Geschichte, PDF-Bestaetigung, UX-Fix). agent-prompt.md Aktueller-Stand-Abschnitt fuer S08 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, Hinweise auf Pandoc-Versionsunterschied praeziser formuliert. diff --git a/teilgebiete/01-lebenslauf.md b/teilgebiete/01-lebenslauf.md index bdd7a0e..767d51d 100644 --- a/teilgebiete/01-lebenslauf.md +++ b/teilgebiete/01-lebenslauf.md @@ -128,9 +128,17 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng **Visuelle Bestätigung im PDF:** Layout im Tabellen-Format wie gewünscht (linke Spalte Datum normal, rechte Spalte Titel fett, Beschreibung normal). Visuelle Bestätigung im DOCX steht nach erstem Build der Revision aus. -**Hotfix Build-Fehler:** Beim ersten Build der Tabellen-Revision schlug LuaLaTeX mit `! LaTeX Error: No counter 'none' defined.` in der Spaltenangabe `p{(\columnwidth - 2\tabcolsep) * \real{0.8554}}` fehl. Ursache: Thomas' Pandoc-Version (3.x) emittiert für Tabellen-Spaltenbreiten einen calc-basierten Multiplikator, der das Pandoc-Hilfsmakro `\real` und das `calc`-Paket voraussetzt; ohne diese interpretiert LaTeX die Multiplikation als Counter-Referenz und stolpert über einen vermeintlichen Counter `none`. Sandbox-Pandoc 2.9 emittiert die simplere `ll`-Spaltenform und reproduziert den Fehler nicht — daher fiel er zuerst nur auf Thomas' System auf. Behoben durch Ergänzung von `\usepackage{array}`, `\usepackage{calc}` und `\providecommand{\real}[1]{#1}` im Tabellen-Block des Templates. Sandbox-Verifikation mit synthetischem Pandoc-3.x-Spalten-Format kompilierte zu PDF ohne Fehler. +**Hotfix Build-Fehler (S06, Teil 1):** Beim ersten Build der Tabellen-Revision schlug LuaLaTeX mit `! LaTeX Error: No counter 'none' defined.` in der Spaltenangabe `p{(\columnwidth - 2\tabcolsep) * \real{0.8554}}` fehl. Erste Vermutung: Thomas' Pandoc-Version (3.x) emittiert für Tabellen-Spaltenbreiten einen calc-basierten Multiplikator, der das Pandoc-Hilfsmakro `\real` und das `calc`-Paket voraussetzt. Ergänzung von `\usepackage{array}`, `\usepackage{calc}` und `\providecommand{\real}[1]{#1}` im Tabellen-Block des Templates. Sandbox-Verifikation mit synthetischem Pandoc-3.x-Spalten-Format kompilierte zu PDF ohne Fehler — die echte Ursache war damit aber noch nicht behoben. -**Visuelle Bestätigung im DOCX (nach Hotfix):** Tabelle sieht gut aus, nur die Default-Word-Tabellenrahmenlinien sind noch sichtbar; der Rahmen-Aus geht in Iteration B über die `reference.docx`. +**Hotfix Build-Fehler (S07, eigentliche Ursache):** Der Folgebuild auf Thomas' System lieferte unverändert `! LaTeX Error: No counter 'none' defined.` Recherche ([Pandoc-Issue #11201](https://github.com/jgm/pandoc/issues/11201)) zeigte den eigentlichen Auslöser: Pandoc 3.x emittiert für unnummerierte Tabellen direkt vor dem `\begin{longtable}` die Zeile `\def\LTcaptype{none}` — ohne den Counter `none` zu definieren. Pandocs eigene Default-Vorlage definiert ihn (commit d835461 in 3.8.2.1 nachgezogen), aber Custom-Templates müssen das selbst tun. Sobald longtable intern `\refstepcounter{\LTcaptype}` aufruft, bricht LaTeX ab. Behoben durch eine Zeile `\newcounter{none}` direkt nach dem `\providecommand{\real}` im Tabellen-Block. Sandbox-Reproduktion lieferte exakt den gleichen Fehlertext und wurde durch den Fix behoben. Anschließender Build auf Thomas' System: PDF erfolgreich erzeugt, Ausbildungs-Layout im PDF visuell bestätigt. + +**Lehre für die Sandbox-Verifikation:** Pandocs `\def\LTcaptype{none}`-Bug tritt nur auf, wenn longtable den Counter intern referenziert. Sandbox-Pandoc 2.9 emittiert weder die calc-basierten Spaltenbreiten noch `\def\LTcaptype{none}` — die Sandbox kann diesen Bug also nicht reproduzieren, indem sie einfach pandoc auf cv.md laufen lässt. Synthetische Mini-Tex-Beispiele bleiben für Pandoc-3.x-spezifische Bugs die einzige verlässliche Verifikationsquelle. + +**Visuelle Bestätigung im DOCX:** Tabelle sieht gut aus, nur die Default-Word-Tabellenrahmenlinien sind noch sichtbar; der Rahmen-Aus geht in Iteration B über die `reference.docx`. + +**Visuelle Bestätigung im PDF (S07):** Ausbildungs-Layout entspricht der Vorgabe — linke Spalte Datum normal, rechte Spalte Titel fett mit Beschreibung. Iteration A damit inhaltlich abgeschlossen. + +**Build-UX-Fix (S07):** `build/build.ps1` ergänzt um `Start-Sleep -Seconds 3` nach jedem fehlschlagenden Build-Schritt (Pflichtdatei-Check, PDF, DOCX). Bei Doppelklick auf `checkpoint.cmd`-artigen Aufruf schließt sich das PowerShell-Fenster sonst sofort und Fehlermeldungen sind nicht lesbar. Bei mehreren Fehlern in einem Lauf akkumulieren sich die Pausen — gewollt. ## Nächste Schritte