我可以使用\widthof{text}
来修复minimum width
TikZ 节点。我想使用\heightof{text}
它来修复它minimum height
,但它不起作用。
我只想用一个单词填充我的节点,但我想绘制一些与已填充节点高度相同的空节点。但我不想使用试错系统来修复它的大小。
下一个代码显示了我想要做的事情。我尝试取消注释\usepackage{calc}
,但没有任何变化。.log
文件没有显示任何关于是否知道命令的错误\heightof
。
一个可能的解决方案是使用\vphantom{text}
内部空节点,但我想知道这个节点出了什么问题。
\documentclass[tikz,border=1mm]{standalone}
%\usepackage{calc}
\usetikzlibrary{positioning}
\tikzset{
box/.style={draw,%
minimum width=5mm,%
minimum height=\heightof{Cap},%
align=center},
}
\begin{document}
\begin{tikzpicture}[font=\small\sffamily]
\node[box] (h0) {Cap};
\foreach \i [remember=\i as \lastx (initially 0)] in {1,...,6}
\node[box,right= 0mm of h\lastx] (h\i) {};
\node[box,right=0mm of h\lastx] {cua};
\end{tikzpicture}
\end{document}
这是结果。你可以看到 并minimum height
没有被 固定\heightof
。为什么?
答案1
这minimum height
是总高度,不考虑inner sep
节点的高度。将设置outer sep
为零将很好地对齐它们:
代码
\documentclass[tikz,border=1mm]{standalone}
\usetikzlibrary{positioning}
\pgfmathsetmacro{\myinnersep}{2}% inner sep in mm
\tikzset{
box/.style={draw,%
inner sep=\myinnersep,%
outer sep=0,%
minimum width=5mm,%
minimum height=\heightof{Cap}+2*\myinnersep*1mm,%
align=center}
}
\begin{document}
\begin{tikzpicture}[font=\small\sffamily]
\node[box] (h0) {Cap};
\foreach \i [remember=\i as \lastx (initially 0)] in {1,...,6}
\node[box,right= 0mm of h\lastx] (h\i) {};
\node[box,right=0mm of h\lastx] {cua};
\end{tikzpicture}
\end{document}