
次のコードは些細なものです。しかし、問題を示す上で重要です。 または オプションを有効にするとshowgrid
、次のアニメーションに示すように、グラフィック オブジェクトが右に移動します。true
top
\documentclass[pstricks,border=12pt]{standalone}
\def\Atom{\psframe(1,2)(2,3)}
\begin{document}
% NO problem WITHOUT showgrid or with showgrid=bottom
\begin{pspicture}[showgrid=bottom](2,4)
\begin{psclip}{\Atom}
\psframe*(2,4)
\end{psclip}
\end{pspicture}
% get shifted to the right with showgrid=true or showgrid=top
\begin{pspicture}[showgrid=true](2,4)
\begin{psclip}{\Atom}
\psframe*(2,4)
\end{psclip}
\end{pspicture}
\end{document}
警告:
showgrid=true
showgrid=top
は ではなくに等しいですshowgrid=bottom
。- 4 ページの記述が
pst-news12.pdf
誤って入力されている可能性があります。
この変位は何によって生じるのでしょうか?
答え1
このバージョンを使用してください:http://texnik.dante.de/tex/generic/pstricks/pstricks.tex これにはバグ修正が含まれています。
答え2
上記の私のコメントに注目してください:
何が
showgrid=top
原因でしょうか?それは\psgrid
次のようになります終わり-環境のpspicture
。最後にグリッドを描画することですべてがシフトされるため、これが問題になる場合があります...
このソリューションでは、正しいバージョンが生成されます (最初にグリッドを描画してすべてを正しく設定し、最後に別のグリッドを描画して上部に配置します)。
\begin{pspicture}[showgrid=bottom](2,4)
\begin{psclip}{\Atom}
\psframe*(2,4)
\end{psclip}
\psgrid[style=gridstyle]
\end{pspicture}
最後に空白があります
\ifx#1t
次のコード スニペットを参照してください。
% ----------- hv 20120219 -------------------
\newpsstyle{gridstyle}{subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt}
%\define@boolkey[psset]{pstricks}[]{showgrid}[true]{}
\newif\ifshowgrid
\define@key[psset]{pstricks}{showgrid}[b]{\pst@@showgrid#1\@nil}
\def\pst@@showgrid#1#2\@nil{%
\ifx#1b\showgridtrue\def\showgridp@s{0}\else% bottom
\ifx#1f\showgridfalse\else
\ifx#1t
\ifx#2r\showgridtrue\def\showgridp@s{0}\else% true->bottom
\showgridtrue\def\showgridp@s{1}\fi% top
\fi\fi\fi%
}