Я использую в 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}