PSTricks 透明度在 MacTEX 上失败

PSTricks 透明度在 MacTEX 上失败

我一开始使用 PGF/Tikz,对结果一直很满意。它非常适合我的 LaTeX 工作流程,因为我通常使用 pdfLatex,并且我包含在 LaTeX 中的所有图形都是 .pdf 格式。但是,基于 PSTricks 的 pst-optexp 包对我来说是一个绘制光学图表的相当有吸引力的选择。所以我尝试学习一点 PSTricks,但很快我发现透明度(不透明度)在我的 Mac OS X 上不起作用。我使用的 TeX 发行版是 MacTeX-2015。

我正在尝试的代码如下:

\documentclass{standalone}

% Do not forget load pstricks with option 'distiller'
% if you want to get transparency in generated PDF files.
\usepackage[distiller]{pstricks}

\begin{document}

\begin{pspicture}(5,5)
  \psset{fillstyle=solid}
  \psframe[fillcolor=red](0,1)(3,4)
  \psframe[fillcolor=blue,opacity=0.7](2,2)(5,5)
  \psframe[fillcolor=green,opacity=0.7](1,0)(4,3)
  \pscircle[fillcolor=cyan,opacity=0.5](1.5,3.5){1.25}
  \rput(2.5,2.5){\psframebox[fillcolor=magenta,opacity=0.1]{%
      % PSTricks do not make transparent text. We use pdfmark ... 
      \special{ps:gsave [ /ca 0.3 /CA 0.3 /SetTransparency pdfmark}%
      \bf\Huge\green Great Box}%
    \special{ps:grestore}%
  }
\end{pspicture}

\end{document}

根据链接:http://www.bakoma-tex.com/menu/trans.php我应该得到一些透明效果,但我的 .pdf 或 .ps 文件如下所示:

在此处输入图片描述

为了编译我使用的 .tex 文件latex-drips-ps2pdf or pstopdf,我也尝试了,xelatex但失败了。实际上,即使我直接使用 DocView 检查 .dvi 文件,我也没有看到任何透明度。我搜索了一些邮件列表或这里的一些帖子,但似乎没有一个对我有用。这里有人知道原因或遇到类似问题,能给我一些建议吗?提前谢谢。

编辑:

嗯...不过,我在 pst-optexp 上遇到了一个奇怪的问题。对于 PSTricks 示例,当我在 Emacs 的 DocView 中以及在 Mac 的预览应用程序或 Adob​​e Reader 中检查生成的 .dvi 或 .pdf 文件时,我得到了一致的结果。然而,对于此堆栈中的光学示例使用 pst-optexp,当我在 DocView 中检查 .dvi 和 .pdf 时,我可以获得与作者相同的结果。但是当在预览中打开文件时,颜色会发生变化。如果在 Adob​​e Reader 中打开,启动颜色是正确的,但当我放大或缩小时,颜色会开始改变。对这个奇怪的事情有什么想法吗?

以下是不同的图像,上面的图像是在 DocView 中打开的 pdf 文件,而下面的图像来自预览。 在 DocView 和预览中打开的 pdf 文件

代码如下

\documentclass{standalone}
% \usepackage{pstricks}
\usepackage{pst-optexp}
\begin{document}
\begin{pspicture}(-0.2,0)(12.3,8.8)
\newpsobject{laser}{optbox}{position=start, innerlabel}
\psset[optexp]{lens=2, phwidth=0.07, outerheight=0.6}
\pnode(1,7){L}\pnode([offset=-6]L){PSLM}
\pnode([Xnodesep=2,offset=1]L){ASLM}\pnode([offset=-0.5,Xnodesep=9]L){MRef}
\pnode([offset=-7]ASLM){ML}\pnode([Xnodesep=8.5]ML){Cam}
\begin{optexp}
  \laser[optboxsize=1.6 0.6](L)(PSLM){Nd:YAG}
  \beamsplitter[bssize=0.4, labelangle=-90](L)(L|MRef)(MRef){BS}
  \lens[abspos=1.2, lens=0.5 0.5 0.4, n=2.5, labelangle=-10](L)(PSLM){MO}
  \pinhole[abspos=1.4, labelangle=10](L)(PSLM){PH}
  \lens[abspos=2.3](L)(PSLM){L}
  \opttripole[label=0.5](L)(PSLM)(ASLM){\psframe[dimen=outer](-0.5,0)(0.5,0.1)}{PSLM}
  \lens[label=0.6 -40](PSLM)(ASLM){L}
  \opttripole[label=0.5](PSLM)(ASLM)(ML){\psframe[dimen=outer](-0.5,0)(0.5,0.1)}{ASLM}
  \lens[position=0.45, labelangle=180](ASLM)(ML){L}
  \optretplate[labelangle=180, position=0.55](ASLM)(ML){$\lambda/2$}
  \optplate[labelangle=180, position=0.62](ASLM)(ML){P}
  \mirror[labeloffset=0.4](ASLM)(ML)(Cam){M}
  \newpsstyle{Beam}{fillcolor=green!80!black, opacity=0.5, fillstyle=solid, linestyle=none, beaminside=false}
  \drawwidebeam[beamwidth=0.1, stopinside]{1-5}
  \psset{loadbeampoints}
  \drawwidebeam[stopinside, savebeampoints=2]{5-7}
  \drawwidebeam[loadbeampoints=2, beamdiv=-8.5]{7-8}
  \drawwidebeam[loadbeampoints=2, beamdiv=-8.5, beamangle=-4]{7-8}
  \drawwidebeam[beamdiv=-8.5, beamangle=-4.5]{8-9}
  \drawwidebeam[loadbeampoints=2, beamdiv=-8.5, beamangle=4]{7-8}
  \drawwidebeam[beamdiv=-8.5, beamangle=4.5]{8-9}
  \lens[abspos=2](ML)(Cam){L}
  \lens[abspos=4](ML)(Cam){L}
  \crystal[abspos=6, voltage, crystalsize=1 0.6, fillcolor=yellow!90!black, fillstyle=solid](ML)(Cam){SBN}
  \beamsplitter[bssize=0.6](MRef)(MRef|Cam)(Cam){BS}
  \lens[n=2.4](MRef|Cam)(Cam){L}
  \optbox[optboxsize=0.8 0.6, position=end](ML)(Cam){Cam}
  \drawwidebeam[savebeampoints=2, stopinside]{9-13}
  \drawwidebeam[loadbeampoints=2, beamdiv=-16, beamangle=5, stopinside]{13-14}
  \drawwidebeam[beamangle=-5]{14-18}
  \drawwidebeam[loadbeampoints=2, beamdiv=-16, beamangle=-5, stopinside]{13-14}
  \drawwidebeam[beamangle=5]{14-18}
  \lens[lens=0.5 0.5 0.4, n=2](L|MRef)(MRef){MO}
  \pinhole[position=0.53, labelangle=180](L|MRef)(MRef){PH}
  \lens[position=0.65](L|MRef)(MRef){L}
  \optplate[position=0.7](L|MRef)(MRef){S}
  \mirror[labeloffset=0.4](L|MRef)(MRef)(MRef|Cam){M}
  \addtopsstyle{Beam}{fillcolor=red!70}
  \drawwidebeam[loadbeampoints=false, beamwidth=0.1, savebeampoints]{2}{19-21}
  \drawwidebeam{21-23}{16-18}
\end{optexp}
\end{pspicture}
\end{document}

答案1

\usepackage[distiller]{pstricks}

只有在后端使用 Acrobat Pro 的提取器时才有意义。只需使用

\usepackage{pstricks}

我的输出是xelatex

在此处输入图片描述

相关内容