我有几个代码文件想要以以下格式包含在附录中:
Appendix X filename
--------------------------------------------
filecontents
在内容中附有适当的列表。
到目前为止我有这个:
\newcommand\codefile[1]{%
\refstepcounter{subsection}%
\addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1}%
\sectionmark{#1}%
\thispagestyle{fancy}%
\lhead{Appendix \thesubsection}%
\rhead{#1}%
\lstinputlisting{../../src/#1}}
我唯一的问题是正确的标题。如果文件名包含下划线,那么我的编译器(rubber)会认为我无意中省略了 $ 并插入了它们。导致文件名的下标不正确。
有什么方法可以说“不要在这里自动插入数学模式”吗?
答案1
我只是将其应用于\detokenize
的参数\rhead
,以使下划线成为 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}