更改 TikZ-UML 中 umlstate 标题的高度

更改 TikZ-UML 中 umlstate 标题的高度

我正在尝试绘制 UML 状态图,tikz-uml但找不到方法来更改每个状态的文本字段的大小。

当我创建两个状态(例如名称相同的状态)时转铁蛋白另一个叫状态下文本字段的高度将会更大,因为G

不同大小的州

有什么方法可以定义固定高度或其他工具来使用 TeX 字体创建 UML 图?

我使用了\umlbasicstate[]{}和以及\begin{umlstate}[]{}\end{umlstate}诸如text heightminimum height或 之类的参数,minimum size但没有任何效果。:-(

答案1

问题在于,所讨论的节点根本没有设置任何样式,或者只有above,这让事情变得有点棘手。传递给 的所有选项umlstate都不会被应用。我发现的一个选项是使用xpatch将 插入\strut到 的定义中\tikzumlState@caption,这是一个宏,其中存储了该节点的文本。

代码输出

\documentclass[border=20pt]{standalone} 
\usepackage{tikz-uml}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\umlstate}{\def\tikzumlState@caption{#2}}{\def\tikzumlState@caption{#2\strut}}{}{}
\makeatother
\begin{document} 
\begin{tikzpicture} 
\begin{umlstate}{a}
\end{umlstate}
\begin{umlstate}[x=1.8,y=-0.08]{Ag}
\end{umlstate}
\end{tikzpicture} 
\end{document}

相关内容