显示简单计算的结果,如可在 tikz 坐标中使用

显示简单计算的结果,如可在 tikz 坐标中使用

我有一张 tikz 图片,我在其中使用了一些自定义数字,以便更轻松地更改它们。在争论中\draw执行了一些简单的计算。但现在我想排版相同计算的结果。

所以我想要一些宏,在其中我可以设置可以在 tikz 坐标计算中使用的数字,并排版计算的值。

这是一个尚无法运行的示例,因为它应该打印(1.5,0)而不是(0.5+1,1-1)

\documentclass{minimal}
\usepackage{tikz}
\def\x{0.5}
\def\y{1}
\def\delta{1}
\begin{document}
\begin{tikzpicture}
  \draw (\x,\y) -- (\y+\delta,\y-\delta);
\end{tikzpicture}
Wrong: The line goes from $(\x,\y)$ to $(\x+\delta,\y-\delta)$\\
Desired: The line goes from $(\x,\y)$ to $(1.5,0)$
\end{document}

在此处输入图片描述

答案1

您可以pgfmath在 之外使用tikzpicture,因为\x\y都是\delta全局定义的。

\documentclass{minimal}
\usepackage{tikz}

\newcommand{\compute}[1]{\pgfmathparse{#1}\pgfmathresult}

\def\x{0.5}
\def\y{1}
\def\delta{1}
\begin{document}
\begin{tikzpicture}
  \draw (\x,\y) -- (\y+\delta,\y-\delta);
\end{tikzpicture}
Wrong: The line goes from $(\x,\y)$ to $(\compute{\x+\delta},\compute{\y-\delta)})$\\
Desired: The line goes from $(\x,\y)$ to $(1.5,0)$
\end{document}

答案2

您可以使用\xdef

解决方案https://texnique.fr/osqa/questions/4293/reutilisation-de-coordonnees-tikz-dans-le-corps-du-texte

\documentclass{minimal}

\usepackage{tikz}
\def\x{0.5}
\def\y{1}
\def\delta{1}

\begin{document}
\begin{tikzpicture}
  \draw (\x,\y) -- (\x+\delta,\y-\delta);
\pgfmathsetmacro{\xx}{\x+\delta}
\xdef\coordx{\xx}

\pgfmathsetmacro{\yy}{\y-\delta}
\xdef\coordy{\yy}
\end{tikzpicture}

Wrong: The line goes from $(\x,\y)$ to $(\coordx,\coordy)$\\
Desired: The line goes from $(\x,\y)$ to $(1.5,0)$
\end{document}

相关内容