投影仪中的 includegraphics 和 trim 的裁剪问题

投影仪中的 includegraphics 和 trim 的裁剪问题

我将正在撰写的论文中的图表添加到用 beamer 编写的相关演示幻灯片中。论文和幻灯片都是 pdf,我使用 pdflatex 排版。我使用 \includegraphics[page=1, trim=1 2 3 4,clip=true]{paper.pdf} 将 paper.pdf 的片段添加到 beamer 演示文稿中。但是,我发现 trim 命令似乎包括全部的页面,但修剪区域之外的所有内容都呈现透明。如果我将鼠标光标拖到演示文稿幻灯片中包含的图形之外的区域,我仍然可以看到并选择图形周围的文本,该文本也已插入到我的幻灯片中(只是不可见)。

这会产生副作用,使 slides.pdf 的大小变得非常大,因为图形周围的所有无关信息都被拖走了,但呈现为透明的。有没有办法不以某种方式从 slides.pdf 中包含或删除这些无关信息?

答案1

是的,整个 PDF 页面始终包含在内。选项trimviewport仅选择 TeX 看到的框,选项clip仅使框外的部分不可见。但选项clip确实不是读取 PDF 图像页面内容,分析其页面流操作符并重写页面流以仅包含可见元素。这根本不是一个微不足道的任务。除了渲染到位图之外,我不知道有哪个免费软件工具能够自动完成此操作。

如果不转换为位图(并且会损失质量),则很难去除不可见的部分。

  • 商业工具?

  • 在能够处理 PDF 的矢量程序中手动操作,例如inkscape

如果对 PDF(或 PostScript)有很好的了解,也可以通过直接编辑 PDF 或 PostScript 文件来手动删除。但这取决于对格式的熟悉程度、PDF 文件的复杂性以及应删除的元素。

该框可以剪切字符。可以选择 的点i。但是,如果您想删除字干,则必须转到嵌入字体中字符的字形描述。

答案2

这是在 Mac 上非常容易实现但在其他所有系统上非常困难的事情之一(实际上并不多)。

在 Mac OSX 上,PDF 是剪贴板的原生格式。因此,基于 Apple PDFKit 构建的 PDF 查看器(基本上所有,除了 Acrobat)都提供了以下功能:复制PDF 页面的矩形选择和粘贴将其放入一个新文档中(作为矢量图形!)。

对于我的 Beamer 演示文稿,我通常使用内置预览应用程序来复制粘贴从各种 PDF 源中获取图表,并将它们作为页面整理成单个figures.pdfPDF 文件。然后我使用\includegraphics[page=xx,...]{figures.pdf}来包含相应的图表。

Preview 存储的 PDF 文件不是包含相应源文件的完整内容。但是,它们在大小方面通常不是非常优化。如果大小确实很重要,我会使用 Acrobat 或 ghostscript(如这个答案) 生成尺寸优化的版本。

这在实践中效果很好。对我来说,灵活的 PDF 处理是坚持使用 OS X 的主要原因。

答案3

我通常通过在 pdf 文件上运行 gs 来解决此问题,使用以下选项:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
   -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages \
   -sOutputFile=in.pdf out.pdf

这通常是有效的。

答案4

在 TeX 内部这是不可能的,但您可以使用其他外部工具提前裁剪它。

相关内容