Ich habe mehrere Codedateien, die ich im folgenden Format in meinen Anhang aufnehmen möchte:
Appendix X filename
--------------------------------------------
filecontents
Mit entsprechender Auflistung im Inhaltsverzeichnis.
Bisher habe ich Folgendes:
\newcommand\codefile[1]{%
\refstepcounter{subsection}%
\addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1}%
\sectionmark{#1}%
\thispagestyle{fancy}%
\lhead{Appendix \thesubsection}%
\rhead{#1}%
\lstinputlisting{../../src/#1}}
Mein einziges Problem ist der richtige Header. Wenn der Dateiname einen Unterstrich enthält, geht mein Compiler (Rubber) davon aus, dass ich das $ versehentlich weggelassen habe und fügt es ein. Dadurch hat der Dateiname einen falschen Index.
Gibt es eine Möglichkeit, „Mathematikmodus hier nicht automatisch einfügen“ zu sagen?
Antwort1
Ich habe es lediglich \detokenize
auf das Argument angewendet \rhead
, um den Unterstrich in einen Catcode 12 umzuwandeln.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr,listings}
\newcommand\codefile[1]{%
\refstepcounter{subsection}%
\addcontentsline{toc}{subsection}{%
\protect\numberline{\thesubsection}#1}%
\sectionmark{#1}%
\thispagestyle{fancy}%
\lhead{Appendix \thesubsection}%
\rhead{\detokenize{#1}}%
\lstinputlisting{#1}}
\begin{document}
\codefile{j_unk.tex}
\end{document}