![在 beamer 中将文本浮动在 uml 图旁边](https://linux22.com/image/370685/%E5%9C%A8%20beamer%20%E4%B8%AD%E5%B0%86%E6%96%87%E6%9C%AC%E6%B5%AE%E5%8A%A8%E5%9C%A8%20uml%20%E5%9B%BE%E6%97%81%E8%BE%B9.png)
我在演示文稿中使用 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}$
节点被命名为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}