使用 graphicx 和 pdflatex 包含边界框外的图形

使用 graphicx 和 pdflatex 包含边界框外的图形

我使用 graphicx 包将 .pdf 文件中的图形包含到我的 latex 文档中。图形文件中的某些对象超出了 pdf 页面区域,该区域用作 \includegraphics 的边界框。

我想使用 bbox 对所有图形进行统一定位/调整大小,但偶尔会有对象超出 bbox 的范围并延伸到页面上。

graphicx 文档指出

如果省略 *,则图形中位于指定“边界框”之外的任何部分将会覆盖周围的文本。

...这正是我想要的,但 pdflatex 生成的 .pdf 文件会将图像裁剪到边界框,即使我明确使用

\includegraphics[clip=false]{inkclip}

我在使用 CorelDraw 和 Inkscape 生成的 .pdf 文件中遇到了这个问题,这两个文件都显示对方文件中的对象超出了页面边框,因此我确信这些对象的信息包含在 pdf 文件中。

编辑:我又尝试了一下,这似乎是与 pdflatex 有关的问题。使用 latex,然后转到 dvi->ps->pdf,一切按照我想要的方式运行。我附加了一个用于 latex 的 EPS 文件和一个用于 pdflatex 的 PDF 文件来显示差异:

Inkscape 生成的 PDF

Inkscape 生成的 EPS

答案1

您在 Inkscape 和 CorelDraw 中绘制超出介质尺寸的图形。然后导出/打印为 PDF。但 Inkscape 对 PDF 文件使用相同的介质尺寸。graphics加载 PDF 文件的包(例如,驱动程序pdftex.def)只能看到介质尺寸。此外,Inkscape/Coreldraw 可能会丢弃超出介质尺寸的对象。即使通过更改/MediaBox/CropBox值来操作 PDF 文件,也可能会丢失对象。

在 Inkscape 中,您可以修改“文档设置”(“文件”菜单)。它提供了一个按钮,用于根据内容调整页面/媒体大小。德语本地化:
“Datei”->“Dokumenteneinstellungen”->“Seite in Auswahl einpassen”(补充:)Inkscape 还允许导出整个绘图。

CorelDraw 也允许更改介质/纸张尺寸。

然后再次导出为 PDF 以获取页面上的所有对象。

有选项viewport可以trim得到较小的活动边界框\includegraphics和重叠区域(clip默认情况下是禁用的)。

相关内容