为什么我必须将填充颜色设置放在预览环境中?

为什么我必须将填充颜色设置放在预览环境中?

我觉得这个问题与 PSTricks 有关,所以我必须修改前面的问题。

\psset{fillstyle=solid,linecolor=red}我在preview环境之外全局定义的可以影响图形对象。但为什么我必须将其放在环境\psset{fillcolor=green}内部preview才能使其工作呢?

\documentclass[preview,border=12pt]{standalone}
\usepackage{pstricks}
\psset{fillstyle=solid,linecolor=red}

% the following setting will be ignored by preview
% \psset{fillcolor=green}

\begin{document}
\preview
% Thus the setting must be inside the preview, does it seem strange to you?
\psset{fillcolor=green}
\psframebox{Karl's students}
\endpreview
\end{document}

fillcolor这种情况很特殊吗?

答案1

如果你查看里面pstricks.sty,你会发现在包的最末端有以下一行:

\AtBeginDocument{%
  \psset{fillcolor=white}%      hv 0.33
  \let\pst@endcolor=\relax%
%  \let\pst@color=\relax%
% LaTeX used `\color@endgroup' instead. RN 2004-05-06
}

fillcolor因此,一旦你击中了,试图在序言中设置就会失败\begin{documnent}

答案2

使用

\AtBeginDocument{\psset{fillstyle=solid,linecolor=red}}

答案3

这个奇怪的功能在当前版本中已被禁用pstricks.sty

相关内容