Ich verwende in einer Präsentation ein UML-Sequenzdiagramm beamer
und muss einige Gleichungen in ein schwebendes Feld neben dem UML-Diagramm schreiben, sodass ich die Positionierung präzise festlegen kann.
Hier ist mein UML-Code:
\documentclass[10pt]{beamer}
\usepackage{pgf-umlsd}
\begin{document}
\begin{frame}
\begin{sequencediagram}
\newthread{CA}{CA}
\newinst[4]{P}{$u_i$}
\begin{messcall}{CA}{$
\begin{bmatrix}
s_{11}^i & \cdots & s_{1d}^i \\
\vdots & \ddots & \vdots \\
s_{m1}^i & \cdots & s_{md}^i \\
\end{bmatrix}
$}{P}
\end{messcall}
\end{sequencediagram}
\end{frame}
\end{document}
Danke...
Antwort1
pgf-umlsd
verwendet verschiedene benannte Knoten beim Aufbau des Diagramms. Wenn Sie also herausfinden, welche Knotennamen es sind, können Sie sie zum Platzieren des Textes verwenden. Da der Inhalt einer sequencediagram
Umgebung innerhalb einer Umgebung platziert wird tikzpicture
, können Sie wie üblich \node
Text hinzufügen.
Um die Knotennamen herauszufinden, müssen Sie in nachsehen pgf-umlsd.sty
. Beispielsweise werden die Knoten und als und bezeichnet CA
. Alle diese Knoten werden als bezeichnet , wobei ein laufender Zähler ist.$u_{i}$
inst1
inst2
instN
N
Daher könnten Sie direkt davor die folgenden beiden Zeilen hinzufügen \end{sequencediagram}
:
\node [below=3mm,xshift=2mm,anchor=north east,font=\tiny,align=left] at (inst1.south west) {some text here\\the align key\\allows for line breaks};
\node [below=3mm,xshift=-2mm,anchor=north west,font=\tiny,align=left] at (inst2.south east) {some other\\text\\over here};
um das folgende Ergebnis zu erhalten:
Vollständiger Code:
\documentclass[10pt]{beamer}
\usepackage{pgf-umlsd}
\begin{document}
\begin{frame}
\begin{sequencediagram}
\newthread{CA}{CA}
\newinst[4]{P}{$u_i$}
\begin{messcall}{CA}{$
\begin{bmatrix}
s_{11}^i & \cdots & s_{1d}^i \\
\vdots & \ddots & \vdots \\
s_{m1}^i & \cdots & s_{md}^i \\
\end{bmatrix}
$}{P}
\end{messcall}
\node [below=3mm,xshift=2mm,anchor=north east,font=\tiny,align=left] at (inst1.south west) {some text here\\the align key\\allows for line breaks};
\node [below=3mm,xshift=-2mm,anchor=north west,font=\tiny,align=left] at (inst2.south east) {some other\\text\\over here};
\end{sequencediagram}
\end{frame}
\end{document}