You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动