tikz 或 tikzmath 弄乱了单位?

tikz 或 tikzmath 弄乱了单位?

我想使用不同类型的乳胶长度单位来处理变量。我正在声明包括单位的变量,但它弄得很乱。如果在计算中给出了单位,则长度会正确转换,但如果没有给出单位,则返回转换为 pt 的值,但单位并不总是被记住。

我的 MWE 表明所获得的结果并非预期的结果:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}

\begin{document}
\begin{tikzpicture}
\tikzmath{\VA=15mm;};

\draw (0,0) -- (\VA,0) node [right] {\VA (expected: 15mm)};
\draw (0,-1) -- (\VA mm,-1) node [right] {\VA (expected: 15mm)};
\draw (0,-2) -- (\VA +10 mm,-2) node [right]  {$\VA + 10$ mm};
\draw (0,-3) -- (\VA +1 cm,-3) node [right]  {$\VA + 1$ cm};
\draw (0,-4) -- (\VA pt,-4) node [right] {$\VA$ pt=15mm};
\draw (0,-5) -- (\VA/10,-5) node [right] {\VA/10 (expected: 1.5mm line)};
\end{tikzpicture}

\end{document}

如果我的理解正确的话,第一行预计长度为 15 毫米,结果行长为 42 厘米,超出了页面宽度。

有没有什么方法可以获得更可预测的结果并使用长度正常工作?

编译结果

答案1

如果你问\show\VA,你会看到 TeX 回答

> \VA=macro:
->42.67912.

如果在坐标中使用“裸”数字,则该数字将被视为单位长度的倍数,默认为 1cm。因此,第一条线的长度超过 42cm,这占了 1009pt 的超长框。

如果使用\VA mm,则得到 42.67912mm。依此类推。

如果您想要\VA代表 15 毫米,请使用\def\VA{15mm}tikzpicture当然,在 里面)。

相关内容