为什么 pdfTeX 不直接支持 PStricks?

为什么 pdfTeX 不直接支持 PStricks?

抱歉,我不得不删除上一个问题。我没有意识到我把这里的所有东西(从我的其他问题)都弄乱了。隐藏的想法实际上如下,但我以错误的方式简化了它。

我应该这样回答这个问题。

LaTeX 允许我们在输入文件中使用 PSTricks 代码。为什么 pdfTEX 不直接支持此功能?

注意: auto-pst-pdf可以允许我们在用 pdfTeX 编译的输入文件中使用 PSTricks,但功能有限,例如

  1. 我们不能使用 PSTricks 在 JPEG、PNG、PDF 图像上绘制对象
  2. 我们可以使用 PSTricks 在方程式上添加注释,\label{}但交叉引用不再起作用。

答案1

TeX 对图像一无所知,TeX 只对边界框感兴趣。其余的都由驱动程序文件完成。如果你想支持 eps、tiff、gif 等,那么就创建一个,将高度/宽度传递给 TeX 并包含图像。如果处于 pdf 模式,则无法在 pdflatex 中使用 PSTricks 代码,因为它没有内部驱动程序来检测命令\specialxetex运行外部程序将所有\special片段转换为 pdf 代码。

答案2

PSTricks 的工作原理是创建 PostScript 代码,该代码将嵌入\special{...}DVI 中的部分,然后由某些“驱动程序”集成到 PostScript 输出中,例如通过将 DVI 转换为 PS 的程序。稍后,另一个程序可以在将其转换为 PDF 或其他格式时解释此生成的 PostScript 文档。(PostScript 是一种用于打印机的编程语言,但也在普通计算机上运行的一些程序中实现,例如大多数将 PostScript 文件转换为其他格式的程序。)
(一些 DVI 预览器也理解一些 PSTricks 特技。)

如果我们不生成 PS,而是直接生成 PDF,则无法在其中嵌入 PSTricks 代码。一些工具(例如)auto-pst-pdf提供了一些解决方法,首先创建一个包含文档中与 PSTricks 相关的部分的 DVI,将其转换为 PS(从而集成 PSTricks 代码),然后将 PS 转换为 PDF 以嵌入(作为图像)到最终的 PDF 输出中。

当然,这存在使用图像的常见问题,如您所提到的。这也仅适用于 PSTricks 部分,这些部分与主要内容明显可分,如您在标签示例中所见。

它不能与 PDFTeX 直接支持的其他图像格式一起使用,因为这些格式不能以正常的 LaTeX-DVI-PS 方式嵌入。


对于原始问题(为什么 PDFLaTeX 不支持嵌入 EPS):

PDFTeX 直接支持某些图像格式(JPEG、PNG)的主要原因是这些格式实际上可以直接作为对象包含在 PDF 格式中,而无需进行任何转换。类似的规则适用于 PDF 文件(当然需要进行一些转换)。

对于 EPS 来说,这是不可能的。

当然,可以自动调用一些转换程序(从评论来看,这似乎是用 TeXLive 2010/2011 完成的),但这不会比手动调用同一工具进行转换产生更好的结果。

相关内容