Reminder

Einen DIN-Brief mit Markdown schreiben

Don't forget, you might need it later again

Und noch eine Fra­ge, zu der ich mir die Ant­wort lie­ber gleich notie­re: Wie kann ich mit Mark­down DIN-5008-kon­for­me Brie­fe schrei­ben? Unter LaTeX hat­te ich mir in ein Tem­p­la­te mit der Koma-Script-Klas­se scrlttr2 kon­fi­gu­riert und ein dazu pas­sen­des Make­file geschrie­ben. Der Vor­teil? Mit einem Auf­ruf ein per­fek­ter DIN-Brief. Der Nach­teil? Den Brief­text in LaTeX zu schrei­ben, ist doch etwas sper­rig. Mit Mark­down gin­ge das ein­fa­cher :

Antwort

Das Pan­doc Let­ter Tem­p­la­te von Bene­dict Hagel macht es mög­lich. Ich selbst nut­ze es unter Linux mit LaTeX und pan­doc:

(I) Speichere die Datei letter.latex in einem Ordner ~/letter.tpl/.

(II) Lege in ~/letter.tpl/ eine Markdown-Datei my-letter.md mit folgendem Header an:

---
lang: de
letteroption:
  - ../letter.tpl/my-letter

to: |
  Musterfirma GmbH
  Max Mustermann
  Musterstraße 2
  12345 Musterstadt

subject: Thema
yourmail: Schreiben
yourref: Bezug
opening: Sehr geehrte(r) ?
closing: Mit freundlichen Grüßen Ihr
encl: Anlage 1, Anlage 2
...
Ab hier der **Brief**_text_ in `Markdown`:
  • Lege in ~/letter.tpl/ die fol­gen­de Datei my-letter.tco an:
\ProvidesFile{my-letter.lco}

\KOMAoptions{foldmarks=true}        % print fold marks
\KOMAoptions{foldmarks=Hv}          % all horizontal marks, no vertical marks
\KOMAoptions{fromalign=right}       % address right, logo left & no head sep og the first page fromrule=afteraddress,
\KOMAoptions{headsepline}           % but head seperator on the following pages
\KOMAoptions{firstfoot}             % special footer in the first page
\KOMAoptions{footsepline=false}     % not foot seperartor on the following pages
\KOMAoptions{fromphone=true}        % print my fixed line phone number (containing my mobile phone number because fixed lined is not activated)
\KOMAoptions{frommobilephone=false} % do not print my mobile phone number
\KOMAoptions{fromemail=true}        % print my email address
\KOMAoptions{fromurl=true}          % print my homepage url
\KOMAoptions{fromlogo=true}        % print my logo
\KOMAoptions{fontsize=12}           % font size

\input{../letter.tpl/my-data.tex}
\setkomavar{signature}{\ \\ \ \\Karsten Reincke}

\setkomavar*{enclseparator}{Anlagen}

(III) Lege in ~/letter.tpl/ die folgende Datei my-data.tex und passe die Werte an:

\setkomavar{fromname}{\textsf{Karsten Reincke}}
\setkomavar{fromaddress}{\textsf{Lempstr. 20\644 Hohenahr}}
\setkomavar{fromphone}[]{\ \\ \footnotesize{\textsf{+49\,\ \,170 / 927\,78\,57}} \\ \ }
\setkomavar{fromemail}[]{\footnotesize{\textsf{mail@karsten-reincke.de}}}
\setkomavar{fromurl}[]{\footnotesize{\textsf{https://karsten-reincke.de/}}}
\setkomavar{fromlogo}{\includegraphics[height=6cm]{../img/kr-hb-logo-komaletter.png}}
\setkomavar{date}{\today}

\setkomavar{firstfoot}{%
  \rule{\linewidth}{0.5pt}
  \\
  \parbox[b]{\linewidth}{%
    \centering \scriptsize
    \textsf{Karsten Reincke -- GLS Bank --
      DE84\,4306\,0967\,3089\,5853\,00 (IBAN) --
      GENODEM1GLS (BIC)
    }
  }
}%

\setkomavar{signature}{\ \\ \ \\Karsten Reincke}

(IV) Lege in ~/letter.tpl/ ein Script write-md-letter.sh an:

#!/bin/bash

LETTERNAME=`basename $1 .md`

if [ "${LETTERNAME}" = "" ]; then echo "missing letter file"; exit 0; fi

pandoc ${LETTERNAME}.md -o ${LETTERNAME}.pdf --template="../letter.tpl/letter.latex"

(V) Nutze das fertige System so:

  1. Lege Dir neben den Ord­ner letter.tpl einen Ord­ner letter.written an.
  2. Kopie­re die Datei letter.tpl/my-letter.md nach letter.written/my-letter-now.md
  3. Wechs­le in den Ord­ner letter.written
  4. Schrei­ben Dei­ne Adres­sa­tin und den Text an sie in den Brief letter.written/my-letter-now.md
  5. > ../letter.tpl/write-md-letter.sh my-letter-now.md

Dabei grei­fen die Datei­en so inein­an­der:

  • write-md-letter.sh ruft pan­doc mit Quell­da­tei­na­men, Ziel­da­tei­na­men und Dei­nem Pfad zum Pan­doc Let­ter Tem­p­la­te von Bene­dict Hagel auf.
  • pan­doc
  • eva­lu­iert die Quell­da­tei und des­halb sucht zuerst nach der Datei ../letter.tpl/my-letter.tco
  • liest die Kon­fi­gu­ra­tio­nen in ../letter.tpl/my-letter.tco ein.
  • inklu­diert des­halb außer­dem noch die Datei ../letter.tpl/my-data.tex in LaTeX-Zwi­schen­re­prä­sen­ta­ti­on, aus der es die Ziel­da­tei kom­pi­lie­ren lässt.
  • lässt die Datei letter.written/my-letter-now.pdf schrei­ben

Im Übri­gen: Män­ner sind mit­ge­meint.

To top