将 MiKTeX 从 2.7 版升级到 2.9 版时,使用 pdflatex 填充不透明度问题

将 MiKTeX 从 2.7 版升级到 2.9 版时,使用 pdflatex 填充不透明度问题

这是我的第一篇帖子。我在写这篇文章时就解决了这个问题,所以我还是把它发了出来,希望它能帮到别人。

使用 MiKTeX 2.7 中的 pdflatex.exe 进行编译时,它可以正常工作。使用pdflatex.exeMiKTeX 2.9 中的进行编译时,fill opacity的属性\addplot也可以顺利编译,但使用 pdf 阅读器打开时,阅读器会返回错误:[email protected] blablabla

为了解决这个问题(我不知道为什么),你应该避免使用包:pstricks,,,。pst-nodepst-plotpst-circ

这是我更正后的代码

\documentclass[addressstd,a4paper,10pt]{article}

\usepackage{tikz}
\usepackage{pgfplots}
%\usepackage{pstricks, pst-node, pst-plot, pst-circ}

\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}

\addplot [black,thick,ybar interval,fill=black,] 
    coordinates {(22.1,68.9) (44.2,74.4) (88.4,86.5)};
\addlegendentry{one};

\addplot [blue,thick,ybar interval,fill=blue,fill opacity=.5] 
    coordinates {(22.1,78.9) (44.2,64.4) (88.4,86.5)};
\addlegendentry{two};

\end{semilogxaxis}
\end{tikzpicture}
\end{document}

你知道为什么吗?

答案1

请按如下方式使用:

[...]
\usepackage{ifpdf}
\usepackage{tikz}
\usepackage{pgfplots}
\ifpdf\else
  \usepackage{pstricks,pst-node,pst-plot,pst-circ}
  \psset{pgffunctions}
\fi
\begin{document}
[...]

那么它将与pdflatex --shell-escapelatex->dvips->ps2pdf和 一起工作xelatex

答案2

由于我没有使用 pstricks、pst-node 等,但仍然遇到了同样的问题,我发现以下答案可以为观察到的问题提供根本解释:

Tikz 和 ctable 不兼容,打印时出错

简而言之,将以下代码片段移至其余包的前面,解决了 Adob​​e Reader 在查看使用不透明度的 pgfplot 时报告错误的问题:

\usepackage{pgfplots}
\makeatletter
\@namedef{[email protected]}{}
\makeatother
%remaining packages

相关内容