ファイル名をテキストに変換

ファイル名をテキストに変換

付録に次の形式で含めたいコード ファイルがいくつかあります。

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}

ここに画像の説明を入力してください

関連情報