我正在使用 Tikz-UML 包制作一些类图,但箭头(关联、继承……)太小了,看起来很丑。有什么办法可以把它们弄大一点吗?示例:
\documentclass{article}
\usepackage{booktabs}
\usepackage[table,xcdraw]{xcolor}
\usepackage{tikz}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{cmap}
\usepackage{minted}
\usepackage{import}
\usepackage{graphicx}
\usepackage{gensymb}
\usepackage{tikz-uml}
\usetikzlibrary{arrows,shadows}
\begin{document}
\begin{figure}[H]
\centering
%\resizebox{\textwidth}{!}{
\begin{tikzpicture}
\umlclass[x=0, y=0]{AlarmHandler}
{-alarmName }
{+initAlarm()}
\umlclass[x=0, y=-3]{AlarmHandler1}
{}
{}
\umlclass[x=0, y=-6]{AlarmHandler2}
{}
{}
\umlinherit[]{AlarmHandler2}{AlarmHandler1}
\umlinherit[]{AlarmHandler1}{AlarmHandler}
\end{tikzpicture}
%}
\caption{alarms\label{fig:alarm}}
\end{figure}
\end{document}
这只是基本示例,问题在于当我创建更复杂的图表并缩放以适应页面宽度时。箭头很难看清。我在示例中包含了我正在使用的所有库。
答案1
我发现你可以用双箭头
\tikzstyle{tikzuml inherit style}=[color=\tikzumlDefaultDrawColor, -open triangle 45, double]
但这对我来说还不够。后来,我发现如果我使用 arrows.meta 包并将样式定义为,可以更好地控制缩放
\tikzstyle{tikzuml inherit style}=[color=\tikzumlDefaultDrawColor, {-{Stealth[inset=0pt,scale=3,fill=white,angle'=45]}}]
答案2
正如我在评论中提到的那样,我暂时无法帮助您tikz-UML
解决问题,因此,在有人帮助您使用此包之前,请查看纯 TikZ 解决方案是否对您而言是可以接受的:
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{arrows.meta, chains, shapes.multipart}
\begin{document}
\begin{tikzpicture}[
node distance = 12mm and 0mm,
start chain = going below,
VMPN/.style = {rectangle split, rectangle split parts=3,
%rectangle split empty part height=1.5ex,% default is 1ex
draw, thick, % here is control for shape line thickness
minimum width=32mm, inner xsep=3mm, inner ysep=1mm,
on chain,
join = by arrow},
arrow/.style = {very thick,% <-- here is control for arrow's thickness
{Triangle[open]}-}
]
\node[VMPN] {\nodepart{one} \textbf{AlarmHandler}
\nodepart{two} $-$alarmName
\nodepart{three} $+$initAlarm()
};
\node[VMPN] {\nodepart{one} \textbf{AlarmHandler1}
\nodepart{two}
\nodepart{three}
};
\node[VMPN] {\nodepart{one} \textbf{AlarmHandler2}
\nodepart{two}
\nodepart{three}
};
\end{tikzpicture}
\end{document}
在代码中我指出了可以更改线条粗细的位置。选中后生成的图像为:
附录:
库中的箭头大小arrows.meta
可以独立于线粗细确定。因此,如果您想要更大的三角形,您可以将箭头样式定义为:
arrow/.style = {very thick,% <-- here is control for arrow's thickness
{Triangle[width=2ex,length=2ex,% <-- here is control of triangle size
open]}-}
并得到