文件名到文本

文件名到文本

我有几个代码文件想要以以下格式包含在附录中:

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}

在此处输入图片描述

相关内容