
Следующий код тривиален, но важен для демонстрации проблемы. Когда я активирую опцию showgrid
with 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%
}