TikZ 是否使用与 PSTricks 相同的内部机制来生成基于矢量的 pdf 输出?

TikZ 是否使用与 PSTricks 相同的内部机制来生成基于矢量的 pdf 输出?

目前我正在使用 PSTricks。从这个论坛,我看到很多人使用 TikZ。我做了一些探索,发现 TikZ 可以使用 pdftex 一步生成 PDF 格式的矢量图像。

为了在 PDF 中生成相同的矢量图像,必须通过 3 个步骤编译 PSTrick,即 latex -> dvips -> ps2pdf。

根据PSTrick 项目的当前状态

TeX 作为排版机无法充分利用 PostScript 的可能性。TeX 和 PostScript 之间不能直接交互;TeX 和 PostScript 之间更多的是单向通信。这两个系统之间的接口是 DVI 转换器 dvips,它将 TeX 的 DVI 输出转换为 PostScript 格式。这里我们仅将 DVI 输出用作中间格式;它并不是真正有用的。在 TeX 端,用户必须保留一些空间(一个框),在 PostScript 端用图形或文本填充这些空间。如果没有保留这个空间,所有内容都会打印在文本上,具体取决于 PostScript 相关代码之前的当前点。必须使用宏 \special 通过 DVI 输出将此 PostScript 代码从 TeX 传输。TeX 会忽略其内容并将其传递给 PostScript,然后由 GhostScript 或 Distiller 等 PostScript 解释器执行。

从引文来看,PSTricks 需要一个中间阶段,即使用 DVI 输出。简而言之,这个中间输出迫使 PSTrick 使用 3 个步骤进行编译。

如果 Tikz 使用与 PSTrick 相同的内部机制,为什么 TikZ 可以在 1 步内完成编译?

答案1

简短回答: PSTricks 仅使用 PostScript \special,而 TikZ 可以使用 PostScript 和 PDF \special,具体取决于所需的输出格式(latexdvips或一起dvipdfm使用时)。对于使用 直接编译为 PDF ,使用pdflatexpdfTeX 原语。\pdfliteral

答案2

  • PSTricks 仅生成 PostScript,而不是 PDF。

  • TikZ 使用能够直接生成 PDF 输出的 PGF。

因此,如果您的目标是生成 PDF 输出,那么如果您使用 PSTricks,则必须进行一些转换,因为 PSTricks 仅生成 TikZ 不需要的中间格式。

相关内容