是否有可能防止此 MWE 中的文本重叠?
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,shadows}
\usepackage{pgf-umlsd}
\begin{document}
\begin{sequencediagram}
\newthread[white]{u}{User}
{\tikzset{inststyle/.append style={drop shadow={top color=gray, bottom color=white}, rounded corners=2.0ex}}
\newinst[3]{b}{Browser}%
\newinst[3]{a}{Another}%
\newinst[3]{l}{Last One}%
}%
\begin{sdblock}{Loop}{\parbox[b]{10.0cm}{Long Description here!!! Long Description here!!! Long Description here!!! Long Description here!!!}}
\begin{call}{u}{\parbox[b]{6.0cm}{\raggedright Long messages Long messages Long messages Long messages Long messageshere!!!}}{l}{}
\end{call}
\end{sdblock}
\end{sequencediagram}
\end{document}
答案1
我查看了源代码pgf-umlsd
并注意到
项目的高度
sdblock
是硬编码的。因此,目前您最多只能输入三行。然而,呼叫中物品的高度有一个高度选项。
因此,为了修复重叠,我parbox
用minipage
环境替换它并根据需要设置宽度。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,shadows}
\usepackage{pgf-umlsd}
\begin{document}
\begin{sequencediagram}
\newthread[white]{u}{User}
{\tikzset{inststyle/.append style={drop shadow={top color=gray, bottom color=white}, rounded corners=2.0ex}}
\newinst[3]{b}{Browser}%
\newinst[3]{a}{Another}%
\newinst[3]{l}{Last One}%
}%
\begin{sdblock}{Loop}{\begin{minipage}{3.5cm}{ Long Description here!!! Long Description here!!! Long Description here!!!}\end{minipage}}
\begin{call}[5in]{u}{}{l}{\begin{minipage}{4.2cm}{ Long messages here!!! Long messages here!!! Long messages here!!! Long messages here!!! Long messages here!!! Long messages here!!! Long messages here!!!}\end{minipage}}
\end{call}
\end{sdblock}
\end{sequencediagram}
\end{document}
输出如下:
答案2
另一个选择是\postlevel
使用手动的。注意它可以重复使用以获取更多的垂直空间。
请注意,为了增加水平空间,您可以使用垂直空间\newinst[10]{a}{ARM}
。10
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,shadows}
\usepackage{pgf-umlsd}
\begin{document}
\begin{figure}
\begin{sequencediagram}
\newthread[white]{c}{9555}
\newinst[10]{a}{ARM}
\begin{call}{c}{
\shortstack{
looooo ooooo oooooooo oooooooooooo oooooong\\
looooo ooooo oooooooo oooooooooooo oooooong\\
looooo ooooo oooooooo oooooooooooo oooooong}
}
{a}{
\shortstack{
looooo ooooo oooooooo oooooooooooo oooooong\\
looooo ooooo oooooooo oooooooooooo oooooong\\
looooo ooooo oooooooo oooooooooooo oooooong}
}
\postlevel
\postlevel
\postlevel
\postlevel
\end{call}
\begin{call}{c}{aaa}{a}{bbb}
\end{call}
\end{sequencediagram}
\caption{Find Me typical use case}
\end{figure}
\end{document}