\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
的新操作了呢(星星眼)