我正在用 tikz 包编写 UML 序列图pgf-umlsd
。当前代码如下:
\begin{sequencediagram}
\newthread{controller}{Special Task Controller}
\newinst{servicea}{Service A}
\newinst{serviceb}{Service B}
\newinst{servicec}{Service C}
\begin{call}{controller}{HTTP GET /}{servicea}{}
\end{call}
\begin{call}{controller}{HTTP GET /}{serviceb}{}
\end{call}
\begin{call}{controller}{HTTP GET /}{servicec}{}
\end{call}
\end{sequencediagram}
我的问题是,它必须嵌入到双列文档中,其中一列不是很宽,我想通过将线程名称包装Special Task Controller
在框中来节省一些空间。有没有办法在其中添加换行符?
(使序列图跨越两列是不可能的,因为它的宽度不足以填满整个页面)
答案1
好的,我在这里找到了答案:在 tikz 节点内使用 \rotatebox 时如何换行?
您必须定义一个\parbox
具有所需宽度的标题:
\parbox[c]{1.5cm}{\centering Line Break}
或者也可以使用命令\shortstack{}
,其中\\
-linebreaks 将起作用。
\shortstack{Line\\ Break}
\newthread
命令如下
\newthread{controller}{\parbox[c]{1.5cm}{\centering Special Task Controller}}
分别
\newthread{controller}{\shortstack{Special Task\\ Controller}}
(简单地说\\
,\linebreak
或者\linebreak{}
不起作用。)