有没有办法多次使用同一个图形——而无需重新插入?也就是说,我不想在输出的 pdf 文件中多次使用它。
我记得我看到有人说过adjustbox
可以做到这一点,但我在手册中找不到它。
答案1
和包\includegraphics
提供的命令已经实现了这一点。从技术上讲,包含的图像在生成的 PDF 中仅放置一次,并且每个附加实例只是对已嵌入对象的引用。graphics
graphicx
有趣的是,这些软件包的软件包文档中没有提到这个主题。(至少我在那里找不到它)。我从课程手册beamer
(§13 图形,第 130 页)中了解到这一点,其中 Till Tantau 写了关于 PGF 图形命令的内容:
与 类似
\pgfdeclareimage
,\includegraphics
在 .pdf 文件中也只包含一次图像,即使它使用多次(事实上,图形包在这方面比 pgf 更智能一点)
但是,最终此图像折叠功能取决于graphics
/graphicx
后端驱动程序,这由所采用的 TeX/LaTeX 引擎决定:虽然它与 、 和 一起开箱即用pdftex
,xetex
但如果采用+路线luatex
,则图像会多次包含。对于这种情况,用户 AlexG 建议使用dvips
ps2pdf
另一个答案中的解决方法。
答案2
使用 pdfLaTeX、LuaLaTeX 和 XeLaTeX,\inludegraphics{...}
可根据需要重复。对于这些引擎,软件包graphicx
已确保图形文件仅包含一次,并在其他地方插入引用。
对于latex
-> dvips
->ps2pdf
这不会自动完成,最终的 PDF 将包含同一包含文件的多个实例。这可以通过包来避免xsavebox
:
\usepackage{graphicx}
\usepackage{xsavebox} %include content only once
...
\xsavebox{img for frequent use}{\includegraphics{example}}%
\xusebox{img for frequent use}
...
\xusebox{img for frequent use}
此方法仍然可以应用于上面列出的其他引擎,因为它可以减少编译时间。