我创建的文档很大程度上依赖于 PostScript(我使用得pstricks
相当多)。我遇到了一些分辨率问题,而且建议尝试使用dvips -Ppdf
。但最近我一直在使用该animate
软件包,很高兴它现在支持沿latex->dvips->ps2pdf
路线进行编译。
我现在注意到在几个地方,例如animate
包文档和解决方案PDF 显示中的移动框,不使用开关-Ppdf
。但没有说明为什么不应该这样做。
有人可以解释一下为什么/何时不应使用这个开关吗?
答案1
原因大致解释如下漏洞动画文档的部分。
-Ppdf
在 DVI 到 PS 转换期间加载config.pdf
,并将中间 Postscript 中的每英寸点数分辨率 (DPI) 设置为 的值8000
。这相当于使用dvips
选项-D8000
。
这种高分辨率的唯一好处与 Type-3(像素)字体的字体生成有关。如今,人们使用的是 Type-1(矢量)字体,这种字体总是会利用打印设备的最大可用分辨率,以便在纸上创建清晰的字形轮廓。8000 dpi 过去和现在都刚好够用,适合市售的喷墨和激光打印机硬件。
DPI 设置的另一个副作用与 PS 到 PDF 转换期间图形对象 (XObjects) 的转换矩阵计算有关。(动画帧和移动工具提示在生成的 PDF 中保存为 XObjects。)Ghostscript倾向于计算元素值非常大的转换矩阵。虽然这些值在数值上是正确的,但如果中间 Postscript 的 DPI 分辨率设置为via或,ps2pdf
它们对于 Adobe Reader 来说太大了。因此,Adobe Reader 会在错误的位置显示图形对象或缩放不当。8000
-Ppdf
-D8000
因此,建议不要使用-Ppdf
或通过运行dvips
覆盖 DPI 设置config.pdf
dvips
dvips -Ppdf -D1200 ...
2636 dpi()这个值dvips -D2636
在这里似乎很关键。
考虑以下代码示例,该示例在 Adobe Reader 中生成一个可点击按钮。带框的字符串“Hello!”被提炼为 XObject 并用作按钮面:
\documentclass{article}
\usepackage{media9}
\begin{document}
\mediabutton[jsaction={app.alert('Hello!');}]{\fbox{Hello!}}
\end{document}
如果 PDF 是用latex
--> dvips -D2636
-->生成的ps2pdf
,按钮在 Adobe Reader 中是完全可见的。但是,在任何更高的分辨率下,例如dvips -D2637
或dvips -Ppdf
,按钮表面都会消失(尽管按钮本身仍可正常使用)。