S09: Teilgebiet 01 Iteration C Foto-Einbindung umgesetzt. Header als 2-Spalten-Grid-Table in cv.md mit Strich-Verhaeltnis 112:60 (= 65,1%/34,9% Spaltenbreite, ca. 10,15/5,43 cm bei 16 cm Textbreite). Foto rechts oben, 4,06x4,06 cm, beide Dimensionen explizit im Markdown um Pandocs Default-Wrapper keepaspectratio mit height=textheight zu vermeiden, der die Layout-Box auf 24cm Hoehe streckt und die Tabellen-Zeile zerschiesst. DOCX-Header-Spacing per neuer 4. Modifikation in build/post-process-docx.py (process_header_table): findet erste Tabelle, setzt Heading1-spacing-before=0 und Foto-Paragraph spacing-before=100 (=5pt) plus jc=right. PDF-Layout via neuem Pandoc-Lua-Filter build/header-image-wrap.lua: wrappt das Header-Foto im LaTeX-Output mit hfill+raisebox(-height)[0pt][0pt]{...}, hfill schiebt rechtsbuendig in raggedright-p-Spalte, raisebox setzt Bild-Top auf Cell-Top und reportet null Hoehe an die Tabellen-Zeile. Filter prueft FORMAT=latex und Image-Pfad enthaelt foto, DOCX bleibt unberuehrt. Lua-Filter-Erste-Version (Image durch RawInline ersetzt mit gebackenem Pfad) hat Pandocs Image-Resource-Resolution gebrochen und LuaLaTeX scheiterte mit File foto.jpg not found, Fix: Filter gibt Lua-Liste zurueck mit Original-img-Element zwischen RawInline-Wrappern. Template-Hotfixes fuer PDF: renewcommand-nolinkurl-zu-Plaintext (verhindert at-xverbatim-Bruch in longtable-Minipage durch URL-Display-Text-Verbatim-Mode), titlespacing-section-before=0pt fuer H1-Top-Alignment. cv.md: Pipe-Alignment in Grid Table programmatisch via Python ljust und Pipe-Position-Eindeutigkeitscheck (Pandoc 3.x ist beim Grid-Table-Pipe-Alignment streng, Sandbox-Pandoc 2.9 ist toleranter und damit irrefuehrend). build.ps1 erweitert um lua-filter-Argument in PDF und DOCX, plus Read-Host-Wait-on-Error entfernt (blockiert AI-Agents und CI), durch Start-Sleep 3s am Ende ersetzt. header-image-wrap.lua als Pflichtdatei in Test-Path-Check aufgenommen. Vier weitere Edit-Tool-Truncation-Vorfaelle in S09 (cv.md, template.tex zweimal, build.ps1), Lehre verschaerft Edit-Tool fuer jede nicht-triviale Modifikation auf NTFS-Mount-Dateien meiden. Sandbox-NTFS-Stale-Read auf DOCX-Output (DOCX-Datei als not a zip file, Workaround DOCX im Sandbox neu generieren). Sandbox-NTFS-Mount kann auch Datei-Schreiben mit open(w) verweigern obwohl os.path.exists True liefert, Workaround tmp-Datei plus os.rename. Build und visuelle Bestaetigung durch Thomas erfolgt fuer DOCX und PDF. teilgebiete/01-lebenslauf.md um Iteration-C-Block ergaenzt und Naechste-Schritte-Liste auf S10-Plan umgestellt (1 DOCX-Heading-Farben pruefen, 2 Doublecheck der generierten Texte mindestens elektrischer-Gehaeuse ist sinnverkehrt, 3 Buzzword-Kompetenzen brainstormen mindestens Umgang mit quantisierten LLMs fehlt, 4 PDF-Spacings H1/H2/Kontaktdaten und hellgraue Trennlinien korrigieren, 5 Hyphenation-Feintuning, 6 Teilgebiet abschliessen). agent-prompt.md Aktueller-Stand-Block fuer S10 fortgeschrieben.
This commit is contained in:
26
artefakte/01-lebenslauf/build/header-image-wrap.lua
Normal file
26
artefakte/01-lebenslauf/build/header-image-wrap.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
-- header-image-wrap.lua
|
||||
-- Wrappt das Header-Foto im PDF-Output mit \hfill\raisebox{-\height}[0pt][0pt]{...},
|
||||
-- damit es in der rechten Tabellen-Zelle rechtsbuendig sitzt und die Bild-Top auf
|
||||
-- der Cell-Top steht (statt durch parbox-[t]-Baseline-Logik nach oben aus der Zelle
|
||||
-- herauszuragen).
|
||||
--
|
||||
-- Wirkt nur bei LaTeX-Output (FORMAT-Variable) und nur fuer Bilder mit "foto" im
|
||||
-- Dateinamen. DOCX bleibt unberuehrt: Pandoc rendert das Image-Element normal,
|
||||
-- und das DOCX-Post-Processing kuemmert sich um Rechtsbuendig + Spacing.
|
||||
--
|
||||
-- Wichtig: Das Image-Element MUSS im AST bleiben, damit Pandoc seine Resource-
|
||||
-- Path-Resolution (Image-Datei finden, ggf. in den LaTeX-Build-Tempdir kopieren)
|
||||
-- weiterhin durchfuehrt. Wenn das Image durch ein einzelnes RawInline mit
|
||||
-- gebackenem Pfad ersetzt wuerde, wuerde LuaLaTeX die Datei nicht finden:
|
||||
-- ! Package luatex.def Error: File `foto-...jpg' not found.
|
||||
-- Deshalb geben wir eine Liste mit RawInline + Image + RawInline zurueck.
|
||||
|
||||
function Image(img)
|
||||
if not FORMAT:match("latex") then return nil end
|
||||
if not img.src:match("foto") then return nil end
|
||||
return {
|
||||
pandoc.RawInline("latex", "\\hfill\\raisebox{-\\height}[0pt][0pt]{"),
|
||||
img,
|
||||
pandoc.RawInline("latex", "}")
|
||||
}
|
||||
end
|
||||
Reference in New Issue
Block a user