序列图中的文本重叠

序列图中的文本重叠

是否有可能防止此 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是硬编码的。因此,目前您最多只能输入三行。

  • 然而,呼叫中物品的高度有一个高度选项。

因此,为了修复重叠,我parboxminipage环境替换它并根据需要设置宽度。

\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}

在此处输入图片描述

相关内容