
\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 표기법을 위해 가시성 표시로 잠금 사용이 중단되었습니다.