允许循环中使用特殊字符(下划线)(使用 pgffor)

允许循环中使用特殊字符(下划线)(使用 pgffor)

我想允许特殊字符(在我的情况下是下划线)循环显示。

假设我有这个 MWE:

\documentclass[12pt]{article}
\usepackage{pgffor}

\begin{document}
\foreach \g in {ab, cd}{
    \g
}

\end{document}

这有效,并打印ab cd

但是,如果我将cd循环调整为c_d,则会出现错误。

\documentclass[12pt]{article}
\usepackage{pgffor}

\begin{document}
\foreach \g in {ab, c_d}{
    \g
}

\end{document}

错误:

Missing $ inserted.

现在,通常情况下,我只会将其写c_dc\_d,但考虑到循环,我无法这样做。有解决方法吗?也许是允许显示特殊字符的函数?请注意,在我的应用程序中,我希望能够c_d在图形标题或小节中打印。

答案1

将其用作_文件名的一部分,\includegraphics在文件主体内进行工作,\foreach无需进行额外的工作。

排版该名称会很麻烦,但该url包可以为您处理。尽管它有名称,但它也是

用于格式化电子邮件地址、超文本链接、目录/路径等。

您可以使用\urlstyle命令来改变“url”的字体:tt(默认)rmsfsame

在这里,我已经使用了\DeclareUrlCommand,以便您有一个有目的的命令,其作用与周围的文本\mygraphicsfile相同,但字体相同(如果这是您想要的)。\url

需要s \expandafter,以便包不会假定\g为 url/文件名。

代码

\documentclass[12pt]{article}
\usepackage{pgffor}
\usepackage{graphicx}
\usepackage{url}
\DeclareUrlCommand\mygraphicsfile{\urlstyle{same}}
\begin{document}
\foreach \g in {ab, c_d}{%
  Name \expandafter\mygraphicsfile\expandafter{\g}: \includegraphics[width=3cm]{\g}
  \par
}
\end{document}

输出

在此处输入图片描述

相关内容