我在 Overleaf 上使用 gmp + metauml 创建 UML 类图,希望使用 LaTeX 命令更好地格式化文本。我尽力阅读了两个软件包的手册并仔细查看了 TeX.SE,但找不到方法。
具体来说,我希望使用\vphantom{}
命令来更好地格式化类的属性,并修复MetaUML 添加额外的垂直空间。
\textbf{}
尝试使用
\documentclass{article}
\usepackage[shellescape,latex]{gmp}
\begin{document}
\begin{mpost}[mpsettings={input metauml;}]
beginfig(1);
Class.subject("Subject")("-test:\textbf{h}")(static "+attach(o : Observer)");
drawObjects(subject);
endfig;
end
\end{mpost}
\end{document}
命令的扩展结果如下所示:
\vphantom{}
尝试在输出中使用结果
任何帮助都将受到赞赏。
答案1
lualatex
使用和可能会更好luamplib
。这是针对该环境重新编写的示例。
\documentclass[border=5mm]{standalone}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\begin{document}
\begin{mplibcode}
input metauml
beginfig(1);
Class.subject("Subject")("-test:\textbf{h}")(static "+attach(o : Observer)");
drawObjects(subject);
endfig;
\end{mplibcode}
\end{document}
编译后lualatex
结果如下:
请注意,您必须在文档级别明确将字体设置为 Times(或等效字体),并且您需要进行\mplibtextextlabel{enable}
设置,以便所有标签都使用TEX()
宏自动处理。
还要注意的是,Overleaf 有一个选项(左上角的菜单)可以将编译器更改为lualatex
。我可以确认我展示的重新编写的示例在那里产生了相同的输出。