ファイル名にアンダースコア付きの図(マクロから)を含める

ファイル名にアンダースコア付きの図(マクロから)を含める

.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 が一時的に変更されます。

関連情報