Was bewirkt, dass showgrid=true oder showgrid=top meinen Clip nach rechts verschiebt?

Was bewirkt, dass showgrid=true oder showgrid=top meinen Clip nach rechts verschiebt?

Der folgende Code ist trivial, aber wichtig, um das Problem zu veranschaulichen. Wenn ich die Option showgridmit trueoder aktiviere top, wird mein Grafikobjekt nach rechts verschoben, wie in der folgenden Animation gezeigt.

Bildbeschreibung hier eingeben

\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=trueist gleich und showgrid=topnicht showgrid=bottom.
  • Die Aussage auf Seite 4 ist pst-news12.pdfmö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=topführt dazu? Es wird enthalten \psgridbei derEndeder pspicture-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%
}

verwandte Informationen