.tex
プログラムから が生成されるシステムがあります。最終的な.tex
ファイルの構造は、次のようになります (簡略化されています)。
\newcommand{\PlotFrame}[1]{%
\begin{frame}
\frametitle{...}
...
...
\includegraphics{#1}
\end{frame}}
\PlotFrame{File_1.png}
\PlotFrame{File_2.png}
...
\PlotFrame{File_n.png}
現在、これをコンパイルすると、アンダースコアが原因で、ステートメントでpdflatex
エラーが発生します\PlotFrame{File_n.png}
。残念ながら、ファイル名を制御できません。コマンドで現在の構造を維持し\PlotFrame{}
、アンダースコアを含む引数を受け入れる方法について何か提案はありますか?
私は...するだろう強くでエスケープする必要がないことを好みます\_
。
答え1
次のように追加のマクロを定義できます。
\documentclass{article}
\usepackage{graphicx}
\newcommand{\PlotFrameB}[1]{%
\includegraphics{#1}\endgroup}
\def\PlotFrame{\begingroup
\catcode`\_=12
\PlotFrameB}
\begin{document}
\PlotFrame{File_1.png}
\PlotFrame{File_2.png}
...
\PlotFrame{File_n.png}
\[ a_b \]
\end{document}
_
これにより、引数内のcatcode が一時的に変更されます。