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