如何在 Latex 中的 \put 命令中对坐标求和

如何在 Latex 中的 \put 命令中对坐标求和

我想使用乳胶中的图片环境放置一系列线条,但我可以将这些线条放置在相对位置而不是绝对位置;也就是说,我想要有可以构建的定义坐标。

绝对定位的基本示例:

\setlength{\unitlength}{0.75mm}
\begin{picture}(60,40)
\put(20,20){\line(5,2){1}}
\put(30,20){\line(5,3){1}}
\end{picture}

相对放置的基本示例(我想要的):

xc=20

\setlength{\unitlength}{0.75mm}
\begin{picture}(60,40)
\put(xc,20){\line(5,2){1}}
\put(xc+10,20){\line(5,3){1}}
\end{picture}

有没有人有什么建议?

答案1

在此处输入图片描述

\documentclass{article}

\begin{document}

\newcommand\xc{20}
\setlength{\unitlength}{1mm}%.75mm is rather small

\fbox{\begin{picture}(60,40)
\put(\xc,20){\line(5,2){10}}% 1 mm is too small
\put(\numexpr\xc+10\relax,20){\line(5,3){10}}
\end{picture}}

\end{document}

答案2

这将允许相当广泛的语法但可能有点过度。

我假设只需要整数计算(因此ii),如 中所示\numexpr/用于通常的四舍五入整数除法。用于下//取整除法和/:相关模数。您还可以使用逗号分隔的表达式(但\put必须先看到逗号,遗憾的是,它不能仅通过扩展产生,因此我无法在此示例中演示它)。语法允许幂、阶乘……

\documentclass{article}

\usepackage{xintexpr}
\newcommand\IntExpr[1]{\xinttheiiexpr #1\relax}
\begin{document}

\xintdefiivar xc:=20;%

\setlength{\unitlength}{0.75mm}

\begin{picture}(60,40)
\put(\IntExpr{xc},20){\line(5,2){10}}
\put(\IntExpr{xc+10},20){\line(5,3){10}}
\end{picture}
\end{document}

在此处输入图片描述

相关内容