指定原点的 \psTextFrame 不会影响内容位置

指定原点的 \psTextFrame 不会影响内容位置

\psTextFrame[origin={x,y}](0,0)(1,1){content}确实会将其框架的中心滑动到(x,y)但内容仍保留在(0.5,0.5)。这是错误还是功能?

\documentclass{article}
\usepackage{pstricks}

\psset{unit=1cm}% default unit

%\newcommand\mybox[3]{\rput(#1,#2){\psTextFrame[dimen=outer](0,0)(1,1){#3}}}

\newcommand\mybox[3]{\psTextFrame[origin={#1,#2},dimen=outer](0,0)(1,1){#3}}

\begin{document}
\pspicture[showgrid=false](3,3)
                \mybox{1}{2}{A} \mybox{2}{2}{B}
\mybox{0}{1}{A} \mybox{1}{1}{0} \mybox{2}{1}{1}
\mybox{0}{0}{B} \mybox{1}{0}{1} \mybox{2}{0}{0}
\endpspicture
\end{document}

附加问题:为了解决这个问题,我不得不使用\rput(参见上面代码片段中的注释行)。但是,我注意到框之间有一些白色间隙(用红色圆圈标记),如下所示。绿色圆圈表示没有白色间隙。

在此处输入图片描述

答案1

origin仅适用于定义为\pst@object\psTextFrame不是 的真实 PSTricks 对象。我无法在 avroread 中看到放大倍数为 6400 的线条行为。

答案2

\psTextFrame可以通过用 来模拟\psframe,并\parbox用 置换\rput。所以我自己的解决方案如下。

\documentclass{article}
\usepackage{pstricks}
\SpecialCoor
\psset{unit=1cm}% default unit

%\newcommand\mybox[3]{\rput(#1,#2){\psTextFrame[dimen=outer](0,0)(1,1){#3}}}

\newcommand\mybox[3]{
    \psframe[origin={#1,#2},dimen=outer](0,0)(1,1)
    \rput(!#1 0.5 add #2 0.5 add){#3}
}

\begin{document}
\pspicture[showgrid=false](3,3)
                \mybox{1}{2}{A} \mybox{2}{2}{B}
\mybox{0}{1}{A} \mybox{1}{1}{0} \mybox{2}{1}{1}
\mybox{0}{0}{B} \mybox{1}{0}{1} \mybox{2}{0}{0}
\endpspicture
\end{document}

附加题答案:显然,在使用psTextFrame和将小数传递给 时会出现间隙dvips -D<number>。要消除间隙,请将 10000 传递给 dvips 或使用xelatex

相关内容