Dateiname in Text

Dateiname in Text

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 \detokenizeauf 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}

Bildbeschreibung hier eingeben

verwandte Informationen