现有 e2.emf
已用外部工具转为 e2.pdf
想通过导言区配置 DeclareGraphicsRule
实现 includegraphics{e2.emf} 等价于 includegraphics{e2.pdf}
类似于 epstopdf 包中 includegraphics{e2.eps},即转化为 \includegraphics{e2.pdf}
或 \includegraphics{e2-eps-converted-to.pdf}
出错 MWE 如下
\documentclass[UTF8]{ctexbook}
\usepackage{graphicx}
\graphicspath{{figs/}{pdf/}}
%\DeclareGraphicsRule{.emf}{pdf}{*}{dir /b #1}
%\DeclareGraphicsRule{.emf}{pdf}{*}{echo #1.pdf}
%\DeclareGraphicsRule{.emf}{pdf}{}{}
\DeclareGraphicsRule{.emf}{pdf}{.pdf}{`\%#1:emf=pdf not Work(Replace) But Necessary\%}
\begin{document}
怎样将对 e2.emf 的索引 映射为 e2.pdf 或 e2.emf.pdf
\includegraphics{e2.emf} 出错
\includegraphics{e2.pdf}
\end{document}
经摸索:
① 把 e2.emf 转为 e2-emf-converted-to.pdf,
② 再 DeclareGraphicsRule{.emf}{pdf}{.pdf}{`%#1:emf=pdf not Work(Replace) But Necessary%}
即可,但如何去掉 emf-converted-to 呢
不知大佬是怎么实现的,
我用 2017、2020、2022 版都没试出来
要追加
\DeclareGraphicsExtensions{.pdf}
才能实现您说的效果(e2.emf 一》 e2.emf.pdf)其实质上是补扩展名
我用
\DeclareGraphicsRule{.emf}{pdf}{.pdf}{`\%#1:emf=pdf not Work(Replace) But Necessary\%}
想在
CMD shell
中把emf
替换为pdf
,但没有实际效果%var:old=new% 这种语法貌似不起作用
在这种情况下需要的文件为
e2.emf 一》 e2-emf-converted-to.pdf
@u870 默认情况下,
.pdf
已经使用\DeclareGraphicsExtensions
设置过了。你用
\makeatletter \meaning\Gin@extensions \makeatother
看看会显示什么,TeXLive 2022 使用 XeLaTeX 编译应该会显示
至少会显示
.pdf,.png,.jpg
。如果不是,看看你是不是哪里改动了。@u870 对,实际上如果没有找到对应的图片文件,
graphcix
会依此加上\Gin@extensions
里的扩展名,再继续查找。@u10307 原来大佬用的是 xeLaTeX,试了下确实如您首答那样;
不过 pdfLaTeX、luaLaTeX 下与您 首答 有出入,需要补其它代码,具体如上。
@u10307 不清楚 DeclareGraphicsRule 第四个参数怎么写才能 e2.emf 一》 e2.pdf
不过影响不大,最终稿我也是直接替换为 includegraphics{e2.pdf}
@u870 pdfLaTeX 和 LuaLaTeX 也添加了类似的扩展名:
如果
\Gin@extensions
的结果不是这个,可能是哪里改动了。