
\documentclass{article}
\usepackage[shellescape]{gmp}
\begin{document}
\begin{figure}
\begin{mpost}[use]
input metauml;
Class.A("A")
("-instance: A")
("-A()",
"+instance(): A");
drawObjects(A);
\end{mpost}
\caption{Class \texttt{A} as a singleton}
\label{fig:uml-a}
\end{figure}
\end{document}
+instance(): A
下線を付けて静的メソッドとしてマークするには どうすればよいですか?
+
変換と-
グラフィックを無効にすることは可能ですか?
以下の Egreg のソリューションは機能しますが、「本当の」下線を引く方法はありますか? たとえば、下線部分の下に何かを追加する場合、手動で線を移動する必要があります。これを避けたいです。
答え1
;を使用するmpsettings={input metauml;}
と、Metapost を使用して線を描画できます。
\documentclass{article}
\usepackage[shellescape]{gmp}
\begin{document}
\begin{figure}
\begin{mpost}[use,mpsettings={input metauml;}]
Class.A("A")
("-instance: A")
("-A()",
"+instance(): A");
drawObjects(A);
draw A.sw+(13,1.5) -- A.se+(-4,1.5);
\end{mpost}
\caption{Class \texttt{A} as a singleton}
\label{fig:uml-a}
\end{figure}
\end{document}
+
を-
デフォルト以外のものに変更するには、ソースを詳細に調べる必要があります。metauml.mp
答え2
「属性」ラベルの下に線を引くアイデア。(評判が殺されたイメージ)
+---------------------+
| Singleton |
+---------------------+
| - static Instance |
| ----------------- |
+---------------------+
| |
+---------------------+
これは egreg の回答のバリエーションです。より正確な回答が存在する可能性があります...
input metauml;
beginfig(1);
Class.SingletonLite("Singleton")("- static Instance")();
drawObject(SingletonLite);
draw SingletonLite.attributeStack.pict[0].sw -- SingletonLite.attributeStack.pict[0].se ;
endfig;
end.
答え3
以下の提案は、MetaUMLのマスターブランチただし、MetaUML 0.2.5 ではそうではありません。
クラスの機能を抽象的または静的として明示的にマークすることができます。
metaUMLクラス図: 抽象クラス内のいくつかのメソッドを抽象として設定する
テキストに下線を引く方法は次の通りです。
Picture.a("foo");
a.info.textDecoration := "underline";
可視性マーカーとしてのロックの使用は、標準の UML 表記法に置き換えられて廃止されました。