我想使用不同类型的乳胶长度单位来处理变量。我正在声明包括单位的变量,但它弄得很乱。如果在计算中给出了单位,则长度会正确转换,但如果没有给出单位,则返回转换为 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
当然,在 里面)。