LaTeX Beamer中includegraphics无法识别转义文件名问题求助
解决Pandoc转义路径下划线导致LaTeX无法识别背景图的问题
我之前也碰到过一模一样的情况——OS X主目录里的下划线被Pandoc自动转义成\_,直接让\includegraphics找不到文件。咱们可以从两个核心方向解决这个问题:
方法一:让Pandoc停止转义路径中的下划线
Pandoc默认会把变量里的下划线当成Markdown的斜体标记来转义,咱们可以在模板里直接调用变量的原始值,跳过转义步骤。
修改你模板里的代码,把$backgroundImage$换成$backgroundImage.raw$:
$if(backgroundImage)$ \usebackgroundtemplate{% \includegraphics[width=\paperwidth,keepaspectratio]{$backgroundImage.raw$}% } $endif$
这样Pandoc会直接输出你YAML里填写的原始路径/Users/my_name/Downloads/background.png,不会把下划线转成\_,LaTeX就能正常定位到文件了。
方法二:在LaTeX层面还原转义后的下划线
如果不方便修改模板,也可以用LaTeX的\detokenize命令把转义后的字符串还原成原始文件名。修改模板里的\includegraphics部分:
$if(backgroundImage)$ \usebackgroundtemplate{% \includegraphics[width=\paperwidth,keepaspectratio]{\detokenize{$backgroundImage$}}% } $endif$
\detokenize会把Pandoc输出的my\_name还原成my_name,让LaTeX能正确识别路径。
补充说明
你遇到的错误信息里出现的my\T1\textunderscorename,本质是LaTeX把\_当成了生成下划线的命令,而不是文件名的一部分。上面两种方法都能解决这个问题,推荐第一种方法,因为它从根源上避免了转义,更直接。
内容的提问来源于stack exchange,提问作者Eponymous




