pstricks、算术、变量和 lput

pstricks、算术、变量和 lput

我正在尝试构建接线图,并做出了一个可能不太明智的假设:最好有几个参考点(顶部、底部、右侧、左侧……),然后将所有东西都相对于这些点进行定位。我希望在进行过程中,布局中的更改能够轻松适应。

这是一个最小的例子:

\documentclass{article}
\usepackage[a4paper, left=2.5cm]{geometry} 
\usepackage{pst-circ}
\usepackage{pst-node}
\usepackage{calc}% http://ctan.org/pkg/calc
\usepackage{xkeyval}

\begin{document} 
\newlength{\psutextx}
\setlength{\psutextx}{100mm}
\newlength{\psutexty}
\setlength{\psutexty}{100mm}
\newlength{\sskip}
\setlength{\sskip}{10mm}

% set posns for box titles
\setlength{\psutextx}{\psutextx+\sskip}%   %% 110mm hopefully
\setlength{\psutexty}{\psutexty-\sskip}%   %% 90mm hopefully

\begin{figure} 
\caption{Wiring in Trunk}
\begin{pspicture}
\lput(\psutextx, \psutexty){PSU}  %% I am expecting this to be 110, 90
\end{pspicture}
\end{figure}
\end{document} 

但是 Latex 并不开心:

! 错误数字:'\psutextx'。0 已替换。.

在 Google 上搜索这个问题时,人们建议写纯粹的后记,但我不知道如何使用变量来做到这一点。

答案1

我假设您想将内容放置在某个 (x,y) 坐标处。为此,您应该使用\rput而不是\lput。后者用于将label 放置在线上,因此应在这样的段之前。

\documentclass{article}
\usepackage{pstricks}

\begin{document} 
\newlength{\psutextx}\setlength{\psutextx}{100mm}
\newlength{\psutexty}\setlength{\psutexty}{100mm}
\newlength{\sskip}\setlength{\sskip}{10mm}

% set posns for box titles
\setlength{\psutextx}{\dimexpr\psutextx+\sskip}%   %% 110mm hopefully
\setlength{\psutexty}{\dimexpr\psutexty-\sskip}%   %% 90mm hopefully

\begin{figure} 
  \caption{Wiring in Trunk}
  \begin{pspicture}
    \rput(\psutextx,\psutexty){PSU}  %% I am expecting this to be 110, 90
  \end{pspicture}
\end{figure}

\end{document}

答案2

使用单位 cm 更方便。然后,您可以使用 PostScript 符号进行计算:

\documentclass{article}
\usepackage[a4paper, left=2.5cm]{geometry} 
\usepackage{pst-circ}

\def\psutextx{10 }\def\psutexty{10 }\def\sskip{1 }% space is important
\begin{document} 

\begin{pspicture}[showgrid](12,10)
\rput(! \psutextx \sskip add \psutexty \sskip sub){PSU}
\psdot(11,9)
\end{pspicture}

\end{document} 

前面的内容!告诉 PSTricks 以下坐标采用 PostScript 符号。

相关内容