我想在umlpackage
环境中声明一个包名,不仅是包名,而且是它的引用路径。似乎使用.
(句号)时可能会出现问题。如果尝试运行以下代码,文档将无法编译。
以下是 mwe:
\begin{tikzpicture}[]
\begin{umlpackage}{path/to/package}
% swapping path/to/package with path.to.package will result in following error:
% Package pgf Error: No shape named `path' is known.
\umlclass[x=0, y=0]{ClassA}{
- fieldA: Field}
{
+ methodA(fieldA: Field ): void
}
\end{umlpackage}
\end{tikzpicture}
可能错误出在第tikz-uml.sty
324 行:
\StrSubstitute{\tikzumlPackage@nodeName}{.}{@POINT@}{\tikzumlPackage@nodeName}%
我对配置 LaTeX 环境不是很有信心,但这个命令应该.
用宏替换每个@POINT@
,对吗?@POINT@
到底是什么?我该如何解决这个问题?
答案1
有一个可选参数name
,您可以使用它来设置节点名称,而不是使用标签作为节点名称。
梅威瑟:
\documentclass{article}
\usepackage{tikz-uml}
\begin{document}
\begin{tikzpicture}[]
\begin{umlpackage}[name=path/to/package]{path.to.package}
\umlclass[x=0, y=0]{ClassA}{
- fieldA: Field}
{
+ methodA(fieldA: Field ): void
}
\end{umlpackage}
\end{tikzpicture}
\end{document}
结果: