![具有模板参数的类](https://linux22.com/image/255220/%E5%85%B7%E6%9C%89%E6%A8%A1%E6%9D%BF%E5%8F%82%E6%95%B0%E7%9A%84%E7%B1%BB.png)
据我所知,pgf-umlcd 不支持带有模板参数的类(std::vector<T>
例如)。
有人有办法绘制此类吗?有没有简单的 PGF/Tikz 技巧可以做到这一点?
我将实现与 MetaUML 渲染大致相同的效果。请参阅MetaUML 文档第 8/9 页,第 2.5 节“参数化类(模板)”。
谢谢!
答案1
template parameter
这是一种在图表的右上角添加虚线框的新样式:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{pgf-umlcd}
\tikzset{
template parameter/.style={
append after command={
node [draw, densely dashed, umlcolor, font=\ttfamily]
at (\tikzlastnode.north east)
{#1}
}
}
}
\begin{document}
\begin{tikzpicture}
\begin{interface}[template parameter=std::vector<T>,text width=7cm]{TestInterface}{0,0}
\operation{Test}
\end{interface}
\end{tikzpicture}
\end{document}