LaTeX \\ in externe Dateien schreiben
Ich hatte kürzlich die Notwendigkeit, Adressen wie die folgende aus KOMA Briefen in eine externe Datei zu schreiben:
\newcommand{\Anschrift}{John Doe \\ Berlin}
http://stackoverflow.com/questions/2115379/write-and-read-from-a-latex-temporary-file funktionierte leider nicht, da LaTeX das Schreiben der „\\“ bemängelte.
Auch der Weg über \unexpanded führte nicht weiter, da LaTeX dann nur den Befehl, nicht die Expansion in die Datei schreibt.
Die Lösung steckte dann in einer anderen Frage auf TSX: http://tex.stackexchange.com/questions/110883/writing-to-a-file
Das folgende Beispiel ist dabei rausgekommen:
\documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{xpatch} \makeatletter % get a copy of `\protected@write \let\protected@iwrite\protected@write % patch the copy to add \immediate \xpatchcmd{\protected@iwrite}{\write}{\immediate\write}{}{} \makeatother \newwrite\tempfile \newcommand{\Anschrift}{John Doe \\ Berlin} \immediate\openout\tempfile=Anschrift.txt \makeatletter \protected@iwrite\tempfile{\let\\\relax}{\Anschrift} \immediate\closeout\tempfile \makeatother \begin{document} \input{Anschrift.txt} \end{document} |