
Der folgende Code ist trivial, aber wichtig, um das Problem zu veranschaulichen. Wenn ich die Option showgrid
mit true
oder aktiviere top
, wird mein Grafikobjekt nach rechts verschoben, wie in der folgenden Animation gezeigt.
\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}
Warnung:
showgrid=true
ist gleich undshowgrid=top
nichtshowgrid=bottom
.- Die Aussage auf Seite 4 ist
pst-news12.pdf
möglicherweise falsch getippt.
Was verursacht diese Verschiebung?
Antwort1
verwenden Sie diese Version:http://texnik.dante.de/tex/generic/pstricks/pstricks.tex Dafür gibt es einen Bugfix.
Antwort2
Beachten Sie meinen Kommentar oben:
Was
showgrid=top
führt dazu? Es wird enthalten\psgrid
bei derEndederpspicture
-Umgebung. Dies kann das Problem sein, da durch das Zeichnen des Rasters am Ende alles verschoben wird ...
Mit dieser Lösung erhalten Sie eine korrekte Version (zeichnen Sie zuerst ein Gitter, um alles richtig zu machen, und zeichnen Sie am Ende ein weiteres, um es oben zu platzieren):
\begin{pspicture}[showgrid=bottom](2,4)
\begin{psclip}{\Atom}
\psframe*(2,4)
\end{psclip}
\psgrid[style=gridstyle]
\end{pspicture}
Am Ende des Textes befindet sich ein Leerzeichen.
\ifx#1t
im folgenden Codeausschnitt.
% ----------- 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%
}