我正在尝试构建接线图,并做出了一个可能不太明智的假设:最好有几个参考点(顶部、底部、右侧、左侧……),然后将所有东西都相对于这些点进行定位。我希望在进行过程中,布局中的更改能够轻松适应。
这是一个最小的例子:
\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
。后者用于将l
abel 放置在线上,因此应在这样的段之前。
\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 符号。