\documentclass[tikz,border=2pt]{standalone}
\begin{document}
\begin{tikzpicture}
\draw [gray!70] (0cm,0cm) grid (2cm,2cm);
\node at (0,0) [minimum size={1.7cm},draw,circle] {};
\node at (0,0) [minimum size={sqrt(3)},draw=red,circle] {};
\end{tikzpicture}
\end{document}虽然我知道 Ti_k_z 默认单位是厘米,但是我想给上述node设定最小尺寸时,sqrt(3)后面不能加单位,加了会报错,但是不加单位好像也不等于说就是使用了厘米!
minimum size 会先经过 \pgfmathparse 解析,得到的是一个不带单位的数值
即当你键入 minimum size = sqrt(3) 得到的是 minimum size = 1.732..., 默认单位是 pt, 所以会得到你当前的结果
最简单的解决方案是 minimum size = sqrt(3) * 1cm
当然还可以自己定义一个 operator,
\pgfmathdeclarefunction{cm}{1}{%
\pgfmathparse{#1 * 28.45274}%
}
\pgfmathdeclareoperator{cm}{cm}{2}{postfix}{250}再使用 minimum size = sqrt(3)cm
\documentclass[tikz,border=2pt]{standalone}
\pgfmathdeclarefunction{cm}{1}{%
\pgfmathparse{#1 * 28.45274}%
}
\pgfmathdeclareoperator{cm}{cm}{2}{postfix}{250}
\begin{document}
\begin{tikzpicture}
\draw [gray!70] (0cm,0cm) grid (2cm,2cm);
\node at (0,0) [minimum size={1.7cm},draw,circle] {};
\node at (0,0) [minimum size= sqrt(3)cm,draw=red,circle] {};
\end{tikzpicture}
\end{document}
又从与老师这里学会了
\pgfmathdeclareoperator和\pgfmathdeclarefunction的新操作了呢(星星眼)