texto flutuante ao lado do gráfico uml no beamer

texto flutuante ao lado do gráfico uml no beamer

Estou usando o gráfico de sequência uml em uma beamerapresentaçã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...

insira a descrição da imagem aqui

Responder1

pgf-umlsdusa 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 sequencediagramambiente é colocado dentro de um tikzpictureambiente, você pode usar o usual \nodepara adicionar texto.

Descobrir os nomes dos nós requer examinar o arquivo pgf-umlsd.sty. Por exemplo, os nós CAe $u_{i}$são nomeados inst1e inst2. Todos esses nós são nomeados instN, onde Nestá 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:

diagrama de sequência com nós adicionados

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}

informação relacionada