плавающий текст рядом с графиком UML в программе Beamer

плавающий текст рядом с графиком UML в программе Beamer

Я использую в beamerпрезентации график последовательности UML. Мне нужно записать несколько уравнений в плавающем поле рядом с графиком UML таким образом, чтобы можно было точно указать их положение.

Вот мой UML-код:

\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}

Спасибо...

введите описание изображения здесь

решение1

pgf-umlsdиспользует различные именованные узлы в построении диаграммы, поэтому если вы выясните, каковы имена этих узлов, вы можете использовать их для размещения текста. Поскольку содержимое среды sequencediagramразмещается внутри tikzpictureсреды, вы можете использовать обычные \nodeдля добавления текста.

Чтобы выяснить имена узлов, необходимо заглянуть в pgf-umlsd.sty. Например, узлы CAи $u_{i}$называются inst1и inst2. Все такие узлы называются instN, где N— это работающий счетчик.

Следовательно, вы можете добавить следующие две строки прямо перед \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};

чтобы получить следующий результат:

диаграмма последовательности с добавленными узлами

Полный код:

\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}

Связанный контент