Estou usando o gráfico de sequência uml em uma beamer
apresentação, preciso escrever algumas equações em uma caixa flutuante ao lado do gráfico uml de forma que eu possa precisar o posicionamento.
Aqui está meu código 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}
Obrigado...
Responder1
pgf-umlsd
usa vários nós nomeados na construção do diagrama, portanto, se você descobrir quais são esses nomes de nós, poderá usá-los para posicionar o texto. Como o conteúdo de um sequencediagram
ambiente é colocado dentro de um tikzpicture
ambiente, você pode usar o usual \node
para adicionar texto.
Descobrir os nomes dos nós requer examinar o arquivo pgf-umlsd.sty
. Por exemplo, os nós CA
e $u_{i}$
são nomeados inst1
e inst2
. Todos esses nós são nomeados instN
, onde N
está um contador em execução.
Portanto, você pode adicionar as duas linhas a seguir logo antes \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};
para obter o seguinte resultado:
Código completo:
\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}