From ee3d1b3fe8f39d0379ecae6f8b01486d7e8ebc59caf5c9b9f9c219fc7bab0dca Mon Sep 17 00:00:00 2001 From: tlg Date: Sat, 25 Apr 2026 14:28:21 +0200 Subject: [PATCH] =?UTF-8?q?S06:=20Teilgebiet=2001=20Iteration=20A=20abgesc?= =?UTF-8?q?hlossen:=20Ausbildung=20als=202-Spalten-Layout=20via=20Pandoc-D?= =?UTF-8?q?efinition-List=20umgesetzt.=20source/cv.md=20Ausbildungs-Abschn?= =?UTF-8?q?itt=20auf=20Term/Definition-Syntax=20umgestellt=20(Datum=20als?= =?UTF-8?q?=20Term,=20Inhalt=20als=20Definition).=20templates/template.tex?= =?UTF-8?q?=20um=20enumitem-Konfiguration=20der=20description-Liste=20erwe?= =?UTF-8?q?itert=20(style=3Dmultiline,=20labelwidth=3D5.5em,=20leftmargin?= =?UTF-8?q?=3D6.5em,=20font=3D\normalfont).=20Sandbox-Verifikation:=20Pand?= =?UTF-8?q?oc-LaTeX=20rendert=20sauberes=20\begin{description}=20mit=20vie?= =?UTF-8?q?r=20Eintraegen,=20Pandoc-DOCX=20nutzt=20die=20Standardstile=20D?= =?UTF-8?q?efinitionTerm=20und=20Definition=20(in=20Iteration=20B=20in=20W?= =?UTF-8?q?ord=20zu=20stylen).=20Hinweis:=20Pandoc=20setzt=20\tightlist=20?= =?UTF-8?q?innerhalb=20der=20Description-Liste=20und=20ueberschreibt=20dam?= =?UTF-8?q?it=20zur=20Laufzeit=20das=20itemsep=20auf=200=20=E2=80=94=20fue?= =?UTF-8?q?r=20vier=20kurze=20Eintraege=20visuell=20vertretbar.=20teilgebi?= =?UTF-8?q?ete/01-lebenslauf.md=20um=20Iteration-A-Block=20ergaenzt=20und?= =?UTF-8?q?=20Naechste-Schritte-Liste=20auf=20B/C/D=20reduziert.=20agent-p?= =?UTF-8?q?rompt.md=20Aktueller-Stand-Abschnitt=20auf=20S06=20fortgeschrie?= =?UTF-8?q?ben.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .checkpoint-pending.txt | 10 +++++-- agent-prompt.md | 29 ++++++++----------- artefakte/01-lebenslauf/source/cv.md | 12 +++++--- .../01-lebenslauf/templates/template.tex | 18 ++++++++++++ changelog.md | 1 + teilgebiete/01-lebenslauf.md | 28 +++++++++++------- 6 files changed, 65 insertions(+), 33 deletions(-) diff --git a/.checkpoint-pending.txt b/.checkpoint-pending.txt index 4746843..dc35741 100644 --- a/.checkpoint-pending.txt +++ b/.checkpoint-pending.txt @@ -1,2 +1,8 @@ -S05 -Session-Abschluss S05. Aktueller Stand und naechste Aufgaben in agent-prompt.md aktualisiert: Teilgebiet 01 CV-Pipeline steht (Pandoc/LuaLaTeX, IBM Plex Sans, Markdown-Quelle, build.ps1 mit sichtbarem Fortschritt), zahlreiche typographische Maengel behoben (Listen-Rendering, Section-Nummerierung, Bullet-Symbole, geschuetzte Leerzeichen, Trainings-Liste, Ausbildungs-Einrueckung, Schusterjungen-Schutz, Hyperlink-Farben). Vier konkrete naechste Iterationen vorgemerkt: A Ausbildung 2-Spalten-Layout, B reference.docx in Word polieren, C Foto-Einbindung, D Hyphenation-Feintuning. Hinweis zum Write-Tool-Truncation-Issue mit Workaround dokumentiert. Teilgebiet 25 enthaelt vollstaendige Doku der Plex-Font-Installation v1.1.0. +S06 +Teilgebiet 01 Iteration A abgeschlossen: Ausbildung als 2-Spalten-Layout via Pandoc-Definition-List umgesetzt. +source/cv.md Ausbildungs-Abschnitt auf Term/Definition-Syntax umgestellt (Datum als Term, Inhalt als Definition). +templates/template.tex um enumitem-Konfiguration der description-Liste erweitert (style=multiline, labelwidth=5.5em, leftmargin=6.5em, font=\normalfont). +Sandbox-Verifikation: Pandoc-LaTeX rendert sauberes \begin{description} mit vier Eintraegen, Pandoc-DOCX nutzt die Standardstile DefinitionTerm und Definition (in Iteration B in Word zu stylen). +Hinweis: Pandoc setzt \tightlist innerhalb der Description-Liste und ueberschreibt damit zur Laufzeit das itemsep auf 0 — fuer vier kurze Eintraege visuell vertretbar. +teilgebiete/01-lebenslauf.md um Iteration-A-Block ergaenzt und Naechste-Schritte-Liste auf B/C/D reduziert. +agent-prompt.md Aktueller-Stand-Abschnitt auf S06 fortgeschrieben. diff --git a/agent-prompt.md b/agent-prompt.md index 5afee3c..b8e779e 100644 --- a/agent-prompt.md +++ b/agent-prompt.md @@ -85,26 +85,21 @@ Setze zwischen sinnvollen Zwischenständen Checkpoints (z.B. nach "Marketing.md ## Aktueller Stand / Nächste Aufgabe -**Letzte Session:** S05 (2026-04-24/25) +**Letzte Session:** S06 (2026-04-25) **Was wurde gemacht:** -- **Tool-Wende für Teilgebiet 01:** Strategische Analyse ergab, dass docx-js für den typographischen Anspruch das falsche Werkzeug ist. Neue Strategie 1: eine Markdown-Quelle, zwei Ausgaben mit unterschiedlichem Anspruch — PDF via Pandoc + LuaLaTeX (tadellose Typographie), DOCX via Pandoc mit reference.docx (semantisch sauber, für Agenturen). Status Teilgebiet 01 im Index auf „in Bearbeitung" gesetzt. -- **Neues Teilgebiet 25 angelegt:** „DesTEngS-Typographie-Refresh" — Hausschrift wechselt von Bitstream Vera Sans auf IBM Plex Sans (Logo bleibt unverändert). Priorität niedrig, keine Abhängigkeiten. -- **Plex-Fonts installiert:** IBM Plex Sans/Mono/Serif jeweils v1.1.0 (Release 2024-11-13) als OTF auf Windows-System für alle Benutzer installiert. In Word und LaTeX/MiKTeX verfügbar. Doku in `teilgebiete/25-typographie-refresh.md`. -- **CV-Pipeline aufgebaut** unter `artefakte/01-lebenslauf/` mit Unterordnern `source/`, `templates/`, `build/`, `output/`, `entwuerfe/` (V1–V10), `archiv/` (alte docx-js-Ausgaben). -- **Pipeline-Komponenten:** - - `source/cv.md` — aktive Quelle (aus V10, mit Markdown-Listen, NBSP für 25 Zahl-Einheit-Paare, Trainings als Liste) - - `templates/template.tex` — Pandoc-LaTeX-Template (LuaLaTeX, IBM Plex Sans, microtype, parindent=0, hyphenation-Penalty=500, Schusterjungen-Schutz via needspace, drei-stufige Section-Hierarchie mit destengsblau und grauen Trennlinien, fancyhdr-Header ab Seite 2 + Fußzeile mit Seitenzahl, Level-2-Bullets als Endstrich) - - `templates/reference.docx` — Pandoc-Default als Ausgangsbasis (noch nicht in Word gepolished) - - `build/build.ps1` — PowerShell-Build mit sichtbarem Fortschritt, deterministisch, Log in `output/build.log`, Exit-Code-basiertes Error-Handling -- **Mehrere Build-Iterationen mit Fehlerbehebung:** docx-js-Foto-Encoding-Issue, fontspec-Suche nach Plex, Bullet-Konvertierung von Unicode auf Markdown, Leerzeilen vor Listen nach Bold-Headern, Null-Bytes am Dateiende, Section-Nummerierung, Hyphenation-Tuning, Schusterjungen-Schutz. -- **Stand der CV-Mängel-Liste:** Behoben sind Listen-Rendering (PDF + DOCX), Section-Nummerierung (PDF), Level-2-Bullets als Striche statt Rechtecke (PDF), einsame Einheiten (PDF + DOCX), Trainings als Liste (PDF + DOCX), Ausbildungs-Einrückung konsistent (PDF), Schusterjungen-Schutz Stations-Titel (PDF), Hyperlink-Farbe nur für externe URLs (PDF). +- **Iteration A für Teilgebiet 01 abgeschlossen — Ausbildung als 2-Spalten-Layout.** Definition-List-Variante gewählt (kleineres Risiko bei der Verarbeitung der Inhalte durch Consulting-Agenturen). `source/cv.md` Ausbildungs-Abschnitt auf Pandoc-Definition-List-Syntax umgestellt (Datum als Term, Inhalt als Definition). `templates/template.tex` um `enumitem`-Konfiguration der `description`-Liste erweitert: `style=multiline`, `labelwidth=5.5em`, `leftmargin=6.5em`, `font=\normalfont`. Pandoc-DOCX-Output rendert die Liste mit den Standardstilen `DefinitionTerm` und `Definition`, die in der `reference.docx` (Iteration B) für das DOCX-2-Spalten-Verhalten styled werden. +- **Sandbox-Verifikation der Iteration A:** Pandoc-LaTeX-Output zeigt sauberes `\begin{description}` mit allen vier Einträgen und korrekter URL-Escapung. Pandoc-DOCX-Output enthält 4× `DefinitionTerm` und 4× `Definition` an der erwarteten Stelle. +- **Hinweis aus Iteration A:** Pandoc emittiert `\tightlist` innerhalb der Description-Liste, weil alle vier Definitions ein-paragraphig sind. Das überschreibt unser `itemsep=0.5em` zur Laufzeit auf 0. Für vier kurze Einträge ist das visuell vertretbar; falls später mehr Luft gewünscht wird, lässt sich `\tightlist` im Template auf einen No-Op umdefinieren. -**Nächste Aufgabe:** Teilgebiet 01 — vier Iterationen in dieser Reihenfolge: -1. **A) Ausbildung als 2-Spalten-Layout** (Markdown-Quelle als Definition-List oder Tabelle, Template-Style entsprechend). Behebt PDF + DOCX gleichzeitig. -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). Behebt mehrere DOCX-Mängel auf einmal. -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. +**Stand zum Vergleich (S05):** CV-Pipeline steht (Pandoc/LuaLaTeX, IBM Plex Sans, Markdown-Quelle, build.ps1 mit sichtbarem Fortschritt). Zahlreiche typographische Mängel aus S05 behoben: Listen-Rendering (PDF + DOCX), Section-Nummerierung (PDF), Level-2-Bullets als Striche (PDF), einsame Einheiten (PDF + DOCX), Trainings als Liste (PDF + DOCX), Ausbildungs-Einrückung (PDF), Schusterjungen-Schutz Stations-Titel (PDF), Hyperlink-Farbe (PDF). Plex-Fonts v1.1.0 system-weit installiert (Doku in Teilgebiet 25). + +**Nächste Aufgabe:** Teilgebiet 01 — drei verbleibende Iterationen in dieser Reihenfolge: +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, Stile `DefinitionTerm` und `Definition` für 2-Spalten-Verhalten konfigurieren — z.B. fester linker Einzug auf `Definition`, hängende Einrückung). Behebt mehrere DOCX-Mängel auf einmal. +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. + +Vor B steht ein Build auf Thomas' MiKTeX-System aus, um Iteration A im PDF + DOCX visuell zu verifizieren (`build/build.ps1` ausführen, `output/build.log` prüfen). 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"). diff --git a/artefakte/01-lebenslauf/source/cv.md b/artefakte/01-lebenslauf/source/cv.md index cf82830..5916c89 100644 --- a/artefakte/01-lebenslauf/source/cv.md +++ b/artefakte/01-lebenslauf/source/cv.md @@ -232,13 +232,17 @@ ## Ausbildung -Okt. 2025 — **Ausbildung zum AI Consultant (mit TÜV-Zertifikat)** beim AI Training Institute, TÜV-Zertifikat +Okt. 2025 +: **Ausbildung zum AI Consultant (mit TÜV-Zertifikat)** beim AI Training Institute, TÜV-Zertifikat -März 2001 — **Promotion** „Computergestützter Entwurf nichtlinearer Transmissionsleitungen zur Erzeugung elektrischer Transienten im Picosekundenbereich", https://depositonce.tu-berlin.de/bitstream/11303/599/1/Dokument_9.pdf +März 2001 +: **Promotion** „Computergestützter Entwurf nichtlinearer Transmissionsleitungen zur Erzeugung elektrischer Transienten im Picosekundenbereich", https://depositonce.tu-berlin.de/bitstream/11303/599/1/Dokument_9.pdf -Okt. 1994 — **Dipl.-Ing. Elektrotechnik** an der TU Berlin, Vertiefungsfach Hochfrequenztechnik, Diplomarbeit Software zur Extraktion von MESFET Ersatzschaltbildern aus Messdaten +Okt. 1994 +: **Dipl.-Ing. Elektrotechnik** an der TU Berlin, Vertiefungsfach Hochfrequenztechnik, Diplomarbeit Software zur Extraktion von MESFET Ersatzschaltbildern aus Messdaten -Juni 1986 — **Abitur** am Oberstufenzentrum Elektrotechnik in Berlin +Juni 1986 +: **Abitur** am Oberstufenzentrum Elektrotechnik in Berlin --- diff --git a/artefakte/01-lebenslauf/templates/template.tex b/artefakte/01-lebenslauf/templates/template.tex index 0a5e82f..ad6ff1c 100644 --- a/artefakte/01-lebenslauf/templates/template.tex +++ b/artefakte/01-lebenslauf/templates/template.tex @@ -73,6 +73,24 @@ %% Level 2: Endstrich (textopenbullet ist in Plex Sans nicht enthalten) \setlist[itemize,2]{label=\textendash, leftmargin=2.0em} +%% Description-Liste: 2-Spalten-Layout fuer Ausbildungs-Abschnitt. +%% Datum als Term im linken Spaltenbereich (feste Breite), Inhalt rechts. +%% style=multiline: Inhalt umbricht innerhalb des rechten Spaltenbereichs; +%% bei einem zu langen Term wuerde der Inhalt unterhalb fortgesetzt. +%% font=\normalfont entfernt das Default-Bold der description-Labels +%% (Bold-Auszeichnung in der Beschreibung steuert weiterhin die Markdown-Quelle). +\setlist[description]{ + style=multiline, + leftmargin=6.5em, + labelindent=0pt, + labelwidth=5.5em, + labelsep=1em, + font=\normalfont, + topsep=0.4em, + itemsep=0.5em, + parsep=0pt, +} + %% === Schusterjungen-Schutz ================================================== \usepackage{needspace} diff --git a/changelog.md b/changelog.md index b8010ae..9d95ffa 100644 --- a/changelog.md +++ b/changelog.md @@ -37,3 +37,4 @@ Chronologisches Log aller Entscheidungen und Prozessereignisse. 2026-04-25 12:25 | S05 | Erste Inspektions-Iteration. cv.md bereinigt: Bullets von Unicode auf Markdown-Listenmarker umgestellt (108 Level-1 und 72 Level-2 Items), Leerzeile vor Listen direkt nach Bold-Header-Zeilen eingefuegt (Kenntnisse-Sektion), Null-Bytes und Trailing-Whitespace am Dateiende entfernt. template.tex erweitert um setcounter secnumdepth 0, damit keine 1.2.3-Nummern mehr erscheinen. Verifikation in der Sandbox: Pandoc-LaTeX-Output enthaelt 50 itemize-Bloecke und sauber strukturierte Section-Hierarchie ohne Nummerierung; Pandoc-DOCX enthaelt 180 Numbering-Marker (Listen werden als Listen gerendert). 2026-04-25 13:26 | S05 | Zweite Iteration auf Inspektions-Befunde. cv.md: 25 Vorkommen Zahl-plus-Einheit (Hz/kHz/KHz/MHz/GHz/THz) per geschuetztem Leerzeichen U+00A0 vor Zerreissen geschuetzt; Trainings-Sektion von Fliesstext auf Bullet-Liste umgestellt. template.tex: parindent=0 mit parskip-Vertikalabstand statt Erstzeilen-Einrueckung (behebt Ausbildungs-Inkonsistenz), Level-2-Bullet von textopenbullet (in Plex Sans nicht enthalten, Rechtecke) auf textendash umgestellt, linkcolor auf schwarz fuer interne Links (LastPage-Seitennummer nicht mehr blau, URLs bleiben blau), Hyphenation-Penalty erhoeht (kuerzere Worte am Zeilenanfang seltener), Section-Hierarchie korrigiert (H2 jetzt groesser als H3, beide mit destengsblau und Trennlinie), Schusterjungen-Schutz per needspace+nopagebreak vor und nach jedem Stations-Titel (verhindert dass Stations-Anfang am Seitenende landet). Sandbox-Verifikation: 51 LaTeX-itemize-Bloecke, 558 DOCX-Numbering-Marker, alle Template-Eingriffe im Output sichtbar. Hinweis: Write-Tool hatte das Template beim ersten Versuch verstuemmelt; Heredoc-Workaround per bash hat geklappt. 2026-04-25 14:06 | S05 | Session-Abschluss S05. Aktueller Stand und naechste Aufgaben in agent-prompt.md aktualisiert: Teilgebiet 01 CV-Pipeline steht (Pandoc/LuaLaTeX, IBM Plex Sans, Markdown-Quelle, build.ps1 mit sichtbarem Fortschritt), zahlreiche typographische Maengel behoben (Listen-Rendering, Section-Nummerierung, Bullet-Symbole, geschuetzte Leerzeichen, Trainings-Liste, Ausbildungs-Einrueckung, Schusterjungen-Schutz, Hyperlink-Farben). Vier konkrete naechste Iterationen vorgemerkt: A Ausbildung 2-Spalten-Layout, B reference.docx in Word polieren, C Foto-Einbindung, D Hyphenation-Feintuning. Hinweis zum Write-Tool-Truncation-Issue mit Workaround dokumentiert. Teilgebiet 25 enthaelt vollstaendige Doku der Plex-Font-Installation v1.1.0. +2026-04-25 14:28 | S06 | Teilgebiet 01 Iteration A abgeschlossen: Ausbildung als 2-Spalten-Layout via Pandoc-Definition-List umgesetzt. source/cv.md Ausbildungs-Abschnitt auf Term/Definition-Syntax umgestellt (Datum als Term, Inhalt als Definition). templates/template.tex um enumitem-Konfiguration der description-Liste erweitert (style=multiline, labelwidth=5.5em, leftmargin=6.5em, font=\normalfont). Sandbox-Verifikation: Pandoc-LaTeX rendert sauberes \begin{description} mit vier Eintraegen, Pandoc-DOCX nutzt die Standardstile DefinitionTerm und Definition (in Iteration B in Word zu stylen). Hinweis: Pandoc setzt \tightlist innerhalb der Description-Liste und ueberschreibt damit zur Laufzeit das itemsep auf 0 — fuer vier kurze Eintraege visuell vertretbar. teilgebiete/01-lebenslauf.md um Iteration-A-Block ergaenzt und Naechste-Schritte-Liste auf B/C/D reduziert. agent-prompt.md Aktueller-Stand-Abschnitt auf S06 fortgeschrieben. diff --git a/teilgebiete/01-lebenslauf.md b/teilgebiete/01-lebenslauf.md index 7dd8160..003c36e 100644 --- a/teilgebiete/01-lebenslauf.md +++ b/teilgebiete/01-lebenslauf.md @@ -112,18 +112,26 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng - **Draft-Marker in cv.md entfernt:** Der H1-Suffix „— Entwurf V10", die Review-Blockquote und der Platzhalter-Bullet „- Portraitfoto" wurden aus `source/cv.md` entfernt (reine Meta-Elemente, kein CV-Inhalt). - **Status Teilgebiet 01 auf „in Bearbeitung"** gesetzt im zentral-index.md. +## Iteration A (S06) — Ausbildung als 2-Spalten-Layout + +**Entscheidung:** Definition-List-Variante statt Tabelle, weil sie vermutlich das kleinere Risiko bei der Verarbeitung der Inhalte durch die Consulting-Agenturen mit sich bringt (semantisch sauber, beim Umbau in Agentur-Templates verlustfrei abbildbar). + +**Quellseitig (`source/cv.md`):** Die vier Ausbildungseinträge sind als Pandoc-Definition-List geschrieben — Datum als Term in eigener Zeile, Inhalt als Definition mit `:` eingerückt. Blank-Lines zwischen den Einträgen. + +**PDF-Pfad (`templates/template.tex`):** `enumitem` konfiguriert die `description`-Liste mit `style=multiline`, `labelwidth=5.5em`, `leftmargin=6.5em`, `font=\normalfont` (entfernt das Default-Bold der Labels). Datum bekommt damit eine feste linke Spalte, der Inhaltstext bricht im rechten Bereich um. + +**DOCX-Pfad:** Pandoc rendert die Definition-List automatisch mit den Stilen `DefinitionTerm` (Datum) und `Definition` (Inhalt). Das 2-Spalten-Verhalten wird nicht im Markdown, sondern in `reference.docx` über diese beiden Word-Stile gesteuert (Task B). + +**Sandbox-Verifikation:** Pandoc-LaTeX-Output zeigt sauberes `\begin{description} ... \end{description}` mit allen vier Einträgen. Pandoc-DOCX-Output enthält 4× `DefinitionTerm` und 4× `Definition` an der erwarteten Stelle. + +**Hinweis:** Pandoc emittiert `\tightlist` innerhalb der Description-Liste, weil alle vier Definitions ein-paragraphig sind. Das überschreibt unser `itemsep=0.5em` zur Laufzeit auf 0. Für vier kurze Einträge ist das visuell vertretbar; falls später mehr Luft gewünscht wird, lässt sich `\tightlist` im Template auf einen No-Op umdefinieren. + ## Nächste Schritte -1. **PDF-Build auf Thomas' Windows-System verifizieren:** `build/build.ps1` ausführen; MiKTeX zieht beim ersten Lauf das Paket `plex-otf` automatisch nach. Log in `output/build.log` prüfen. -2. **Foto-Einbindung in die Markdown-Quelle:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern. -3. **Layout-Feinheiten iterativ lösen** (in dieser Reihenfolge): - - Kontaktdaten-Block linksbündig mit sichtbaren Labels. - - Datum/Titel-Layout im Ausbildungs-Abschnitt (wahrscheinlich `tabularx` oder `description`). - - Widow/Orphan auf Absatz-Ebene (keep-with-next für Projekttitel). - - Geschützte Leerzeichen vor Einheiten (z.B. `6\,GHz`). - - Kurzwort-Zeilenanfänge minimieren (Hyphenation-Tuning). -4. **Reference.docx styling:** Starter-Version in Word öffnen und Styles so konfigurieren, dass Widow-Control und „Keep with next" greifen und die Font-Wahl auf Calibri liegt. -5. Teilgebiet nach erfolgreichem Output und Freigabe durch Thomas abschließen. +1. **Iteration 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, Stile `DefinitionTerm` und `Definition` für 2-Spalten-Verhalten konfigurieren (z.B. fester linker Einzug auf `Definition`, hängende Einrückung). +2. **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). +3. **Iteration D — Hyphenation-Feintuning für PDF:** Kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ. +4. Teilgebiet nach erfolgreichem Output und Freigabe durch Thomas abschließen (R2-OK von Thomas: Status auf „abgeschlossen" im zentral-index.md). ## Artefakte