Text neben UML-Diagramm im Beamer schweben lassen

Text neben UML-Diagramm im Beamer schweben lassen

Ich verwende in einer Präsentation ein UML-Sequenzdiagramm beamerund 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...

Bildbeschreibung hier eingeben

Antwort1

pgf-umlsdverwendet 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 sequencediagramUmgebung innerhalb einer Umgebung platziert wird tikzpicture, können Sie wie üblich \nodeText 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}$inst1inst2instNN

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:

Sequenzdiagramm mit hinzugefügten Knoten

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}

verwandte Informationen