我在pdf-umlcd中有以下简单的类图:
\documentclass{article}
\usepackage{pgf-umlcd}
\begin{document}
\begin{tikzpicture}
\begin{class}
[text width=2cm]
{Ah}
{0,0}
\operation{greet}
\end{class}
\begin{class}
[text width=2cm]
{Aj}
{5,0}
\operation{greet}
\end{class}
\unidirectionalAssociation{Ah}{knows}{}{Aj}
\end{tikzpicture}
\end{document}
不幸的是,这两个类的框具有不同的高度,因为j
第二个类名称的下降幅度更大。这也导致两个类之间的关联不是完全水平的:
我该如何解决这个问题?我已尝试过:
- 在类名中使用 strut 或 phantom:显然不受 tikz/pdf-umlcd 支持(“不完整的 \iffalse”)。
[text width=2cm]
通过更改为手动指定每个类的高度[text width=2cm,minimum height=10cm]
:没有产生任何视觉差异。
您知道均衡类框高度的方法吗?理想情况下,应该有一个补丁,自动在每个新类框中插入一个支柱(如果我对支柱的理解正确的话)。
答案1
根据@Qrrbrbirlbel 的评论,我在我的序言中添加了以下补丁:
\usepackage{pgf-umlcd}
% fix inconsistent class name box heights
\tikzset{
umlcd style class/.append style={
execute at begin node=\strut}}
% fix inconsistent operation/attribute row heights
\usepackage{xpatch}
\xpatchcmd{\pgfumlcd@operation}{\break}{\break\strut}{}{}
\xpatchcmd{\pgfumlcd@attribute}{\break}{\break\strut}{}{}