使用 GhostScript 在 EPS 中预渲染 PostScript 命令会使透明对象变得不透明

使用 GhostScript 在 EPS 中预渲染 PostScript 命令会使透明对象变得不透明

背景

如果以下 PSTricks 图

% Circle.tex
\documentclass{article}
\usepackage{pstricks}
\pagestyle{empty}

\begin{document}
\pspicture(-1,-1)(1,1)
\rput(0,0){$E\not=mc^2$}
\pscircle*[linecolor=yellow,opacity=0.5]{1}
\endpspicture
\end{document}

编译MethodA.bat如下,

rem MethodA.bat takes an input file name without extension
latex %1
dvips -D10000 %1 -E -o %1-temp.eps
epstool --copy --bbox %1-temp.eps %1.eps

我得到了一个巨大的 EPS 输出,其中附加了原始的 PSTricks 库。

如何删除 dvips 生成的 EPS 文件中的 PSTricks 字典或库代码?,我问了这个问题,Herbert 建议我提前用 GhostScript 重新处理生成的 EPS。我尝试用MethodB.bat而不是 ,MethodA.bat如下所示。

rem MethodB.bat takes an input file name without extension
latex %1
dvips -D10000 %1 -E -o %1-temp.eps
gswin32c -r10000 -dNOCACHE -dPDFSETTINGS=/prepress -dNOPAUSE -dBATCH -sDEVICE=epswrite -sOutputFile=%1.eps %1-temp.eps

问题与疑问

我从以下主输入文件中导入生成的 EPS 图像,

% Main.tex
\documentclass{article}
\usepackage{graphicx}

\begin{document}
\includegraphics{Circle}
\end{document}

编译Batch.bat如下,

rem Batch.bat takes an input file name without extension.
latex -interaction=nonstopmode %1
latex -interaction=nonstopmode %1
dvips -D10000 -t unknown %1
ps2pdf -r10000 -dCompatibilityLevel#1.5 -dAutoRotatePages#/None -dPDFSETTINGS#/prepress %1.ps

生成的 EPSMethodA.bat保留了透明度,但生成的 EPSMethodB.bat不保留。因此,调用 GhostScriptMethodB.bat是问题的根源,GhostScript 似乎无法处理透明度。如何修复它?

答案1

第 2 级的 PostScript 不了解任何类型的透明度,这就是为什么 ghostscript 仅在使用 pdfwrite 设备时才使用其自己的命令的原因。

相关内容