如何使用 \heightof 固定 TikZ 节点的高度?

如何使用 \heightof 固定 TikZ 节点的高度?

我可以使用\widthof{text}来修复minimum widthTikZ 节点。我想使用\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}

输出

在此处输入图片描述

相关内容