在 beamer 中将文本浮动在 uml 图旁边

在 beamer 中将文本浮动在 uml 图旁边

我在演示文稿中使用 uml 序列图beamer,我需要在 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}$节点被命名为inst1inst2。所有此类节点都被命名为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}

相关内容