%% template.tex — Pandoc-LaTeX-Template für den DesTEngS-Lebenslauf %% Engine: LuaLaTeX (wegen fontspec + OpenType-Schrift IBM Plex Sans) %% Status: zweite Iteration mit typographischen Tiefen-Eingriffen. \documentclass[11pt,a4paper]{article} %% Section-Nummerierung deaktivieren (CV soll keine 1.2.3-Nummern haben) \setcounter{secnumdepth}{0} %% === Schrift ================================================================ \usepackage{fontspec} \setmainfont{IBM Plex Sans} \setsansfont{IBM Plex Sans} \setmonofont{IBM Plex Mono} \renewcommand{\familydefault}{\sfdefault} %% === Sprache und Mikrotypographie =========================================== \usepackage{microtype} \usepackage{polyglossia} \setdefaultlanguage{german} %% === Geometrie ============================================================== \usepackage[a4paper, top=2.2cm, bottom=2.2cm, left=2.5cm, right=2.5cm, headheight=16pt, headsep=0.6cm, footskip=1.0cm]{geometry} %% === Absatz-Layout ========================================================== %% CV-Stil: keine Erstzeilen-Einrückung, stattdessen Vertikalabstand \setlength{\parindent}{0pt} \setlength{\parskip}{0.5em plus 0.2em minus 0.1em} %% === Widow/Orphan-Kontrolle (strikt) ======================================== \widowpenalty=10000 \clubpenalty=10000 \displaywidowpenalty=10000 \brokenpenalty=10000 \raggedbottom %% === Hyphenation tunen ====================================================== %% Hoehere Penalty: lieber leichte Ueberlaenge als unschoene Trennungen \hyphenpenalty=500 \exhyphenpenalty=500 \tolerance=400 \emergencystretch=2em %% === Farbe ================================================================== \usepackage{xcolor} \definecolor{destengsblue}{HTML}{3C68AE} \definecolor{rulegray}{HTML}{BFBFBF} %% === Hyperlinks ============================================================= %% URLs blau, interne Links (\pageref u.ae.) schwarz \usepackage[hidelinks]{hyperref} \hypersetup{ colorlinks=true, linkcolor=black, urlcolor=destengsblue, citecolor=destengsblue, pdfauthor={Dr.-Ing. Thomas Langer}, pdftitle={Lebenslauf Dr.-Ing. Thomas Langer}, pdfcreator={Pandoc + LuaLaTeX}, } %% Pandoc emittiert fuer href-Links, deren Display-Text wie eine URL aussieht %% (z.B. eine E-Mail-Adresse als Display und mailto:Adresse als Ziel), %% \nolinkurl{...} um den Text in Verbatim-Mode zu rendern. Verbatim-Mode %% bricht in fragilen Kontexten wie `longtable`-Minipage mit %% ! Paragraph ended before \@xverbatim was complete. %% ab. Da wir im CV (Sans-Serif durchgehend) kein Verbatim-Mode-Rendering %% fuer URLs brauchen, redefinieren wir \nolinkurl{} zu Plain-Text-Output. \renewcommand{\nolinkurl}[1]{#1} %% === Bilder ================================================================= \usepackage{graphicx} %% === Listen ================================================================= \usepackage{enumitem} \setlist{nosep, leftmargin=1.2em, topsep=0.2em, partopsep=0pt, parsep=0pt, itemsep=0.15em} %% Level 1: gefuellter Bullet \setlist[itemize,1]{label=\textbullet} %% Level 2: Endstrich (textopenbullet ist in Plex Sans nicht enthalten) \setlist[itemize,2]{label=\textendash, leftmargin=2.0em} %% === Tabellen =============================================================== %% Pandoc emittiert fuer Markdown-Tabellen eine longtable mit booktabs-Linien %% (\toprule, \bottomrule). Im CV werden Tabellen rahmenlos als Layout-Werkzeug %% eingesetzt (z.B. Ausbildung als 2-Spalten-Layout: Datum links, Inhalt rechts). %% %% Pandoc 3.x emittiert Spaltenbreiten als calc-Ausdruck der Form %% p{(\columnwidth - 2\tabcolsep) * \real{0.8554}} %% sowie >{\raggedright\arraybackslash}p{...}-Praeambeln. Dafuer brauchen wir %% das array-Paket (\arraybackslash), das calc-Paket (Multiplikation in %% Laengenarithmetik) und das Pandoc-Hilfsmakro \real, das in unserem Template %% selbst providet werden muss, weil wir den Pandoc-Default-Header nicht nutzen. \usepackage{array} \usepackage{calc} \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} \setlength{\cmidrulewidth}{0pt} %% Kein Vertikalabstand um die Linien. \setlength{\aboverulesep}{0pt} \setlength{\belowrulesep}{0pt} %% Vertikalabstand vor/nach longtable reduzieren (Default ist \bigskipamount). \setlength{\LTpre}{0.4em} \setlength{\LTpost}{0.4em} %% === Schusterjungen-Schutz ================================================== \usepackage{needspace} %% === Abschnitte ============================================================= \usepackage{titlesec} %% H1 (\section): gross, blau, mit Trennlinie. Im CV nur einmal (Name oben). \titleformat{\section} {\Large\bfseries\color{destengsblue}} {}{0em} {} [\vspace{-0.3em}{\color{rulegray}\titlerule[0.4pt]}] %% H2 (\subsection): mittelgross, blau, mit Trennlinie. %% Hauptabschnitte (Kontaktdaten, Zusammenfassung, Stationen, Ausbildung, Kenntnisse) \titleformat{\subsection} {\large\bfseries\color{destengsblue}} {}{0em} {} [\vspace{-0.3em}{\color{rulegray}\titlerule[0.3pt]}] %% H3 (\subsubsection): normal-fett, jeweils Stations-Titel. %% needspace verhindert Fast-Schusterjunge: kein Pagebreak, wenn weniger %% als 6 Zeilen Platz; nopagebreak nach: Titel und erste Liste bleiben zusammen. \titleformat{\subsubsection} {\needspace{6\baselineskip}\normalsize\bfseries} {}{0em} {} [\nopagebreak] \titlespacing*{\section}{0pt}{0pt}{0.5em} \titlespacing*{\subsection}{0pt}{1.0em}{0.4em} \titlespacing*{\subsubsection}{0pt}{0.7em}{0.2em} %% === Kopf- und Fusszeile ==================================================== \usepackage{fancyhdr} \usepackage{lastpage} \pagestyle{fancy} \fancyhf{} \fancyhead[L]{\small Dr.-Ing. Thomas Langer} \fancyhead[R]{\small Lebenslauf} \fancyfoot[R]{\small \thepage\,/\,\pageref{LastPage}} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\headrule}{\color{rulegray}\hrule height 0.4pt} %% Erste Seite ohne Header \fancypagestyle{firstpage}{% \fancyhf{}% \fancyfoot[R]{\small \thepage\,/\,\pageref{LastPage}}% \renewcommand{\headrulewidth}{0pt}% } %% === Pandoc-Hilfen ========================================================== \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} %% Lange URL-Zeilen brechen \usepackage{xurl} %% === Dokument =============================================================== \begin{document} \thispagestyle{firstpage} $body$ \end{document}