我想允许特殊字符(在我的情况下是下划线)循环显示。
假设我有这个 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_d
为c\_d
,但考虑到循环,我无法这样做。有解决方法吗?也许是允许显示特殊字符的函数?请注意,在我的应用程序中,我希望能够c_d
在图形标题或小节中打印。
答案1
将其用作_
文件名的一部分,\includegraphics
在文件主体内进行工作,\foreach
无需进行额外的工作。
排版该名称会很麻烦,但该url
包可以为您处理。尽管它有名称,但它也是
用于格式化电子邮件地址、超文本链接、目录/路径等。
您可以使用\urlstyle
命令来改变“url”的字体:tt
(默认)rm
、sf
或same
。
在这里,我已经使用了\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}