为了避免节点错位问题,tikz
我决定设置选项text height
和,text depth
以便所有节点都具有与普通文本行相同的高度和深度。根据维基百科,文本行的标准高度为.7\baselineskip
,标准深度为.3\baselineskip
。因此我
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw,text height=.7\baselineskip,text depth=.3\baselineskip] at (0,0) {x};
\end{tikzpicture}
\end{document}
但这意味着我必须记住这些价值观。
是否有一个命令可以计算我在这种情况下可以使用的盒子的高度和深度?例如text depth=\depthof\strut
。
笔记:
这个问题与如何使用 \heightof 固定 TikZ 节点的高度?。然而,那里给出的涉及该包的解决方案calc
似乎不再起作用。
答案1
作为\strutbox
参考。以下是一些参考资料:
\documentclass{article}
\begin{document}
\fbox{\rule[-.3\baselineskip]{2em}{\baselineskip}} % Your reference
\fbox{\usebox\strutbox} % \strutbox
\fbox{\rule[-\dp\strutbox]{2em}{\dimexpr\ht\strutbox+\dp\strutbox}}% \strutbox height/depth
\end{document}
第一个盒子的深度
.3\baselineskip
为全部的高度\baselineskip
(暗示高度.7\baselineskip
),与您正在使用的类似。第二个框打印
\strutbox
(高度/深度为 的零宽度框\strut
)。第三个框复制第一个框,用作
\strutbox
测量对象。
以上内容表明您应该能够使用\ht\strutbox
(的h
第八个)来表示,以及使用(的第十个)来表示。t
\strutbox
text height
\dp\strutbox
d
p
\strutbox
text depth
答案2
没有任何软件包:
\documentclass[]{article}
\begin{document}
\setbox0\hbox{foo}
\begin{tabular}[]{ll}
width & \the\wd0\\
depth & \the\dp0\\
height & \the\ht0
\end{tabular}
\setbox0\hbox{goo}
\begin{tabular}[]{ll}
width & \the\wd0\\
depth & \the\dp0\\
height & \the\ht0
\end{tabular}
\end{document}
请注意,不可扩展。如果不适用于您需要的内容,但宽度不适用(最终为),\setbox
则可以使用 。\vbox
\hbox
\linewidth