Nome do arquivo para texto

Nome do arquivo para texto

Tenho vários arquivos de código que desejo incluir em meu apêndice no seguinte formato:

Appendix X                          filename
--------------------------------------------
filecontents

Com uma listagem apropriada no conteúdo.

Até agora eu tenho isso:

\newcommand\codefile[1]{%
  \refstepcounter{subsection}%
  \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1}%
  \sectionmark{#1}%
  \thispagestyle{fancy}%
  \lhead{Appendix \thesubsection}%
  \rhead{#1}%
  \lstinputlisting{../../src/#1}}

Meu único problema é o cabeçalho certo. Se o nome do arquivo contiver um sublinhado, meu compilador (borracha) assumirá que omiti acidentalmente $ e os inserirá. Fazendo com que o nome do arquivo tenha subscrito incorreto.

Existe uma maneira de dizer "não insira automaticamente o modo matemático aqui"?

Responder1

Eu apenas me apliquei \detokenizeao argumento de \rhead, para transformar o sublinhado em um catcode 12.

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

insira a descrição da imagem aqui

informação relacionada