我想在文档中添加一些 UML 序列图。此序列包含许多调用。这就是我想调整图表的原因。
以下是完整的示例,但我希望最小示例只显示图中的 5 个(嵌套)调用。我认为StartCycle()
和之间的垂直距离ActAgent()
应该减少到一半或三分之一。类似地,返回箭头之间的距离也应该缩小。
我如何控制元素的定位?
\documentclass[]{scrartcl}
\usepackage{tikz}
\usepackage[underline=true,rounded corners=false]{pgf-umlsd}
\usepackage{blindtext}
% It's possible to get a thin border around all figures. You have to write the following once at the beginning of the document:
\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}
\begin{document}
\section{Example}
\blindtext
\begin{figure}[h]
\centering
\begin{sequencediagram}
\newthread{ss}{}{SimulationServer}
\newinst[1]{ctr}{}{SimControlNode}
\newinst[1]{ps}{}{PhysicsServer}
\newinst[1]{sense}{}{SenseServer}
\begin{call}{ss}{Initialize()}{sense}{}
\end{call}
\begin{sdblock}{}{Run Loop}
\begin{call}{ss}{StartCycle()}{ctr}{}
\begin{call}{ctr}{ActAgent()}{sense}{}
\end{call}
\end{call}
\begin{call}{ss}{EndCycle()}{ctr}{}
\begin{call}{ctr}{SenseAgent()}{sense}{}
\end{call}
\end{call}
\end{sdblock}
\end{sequencediagram}
\caption{UML sequence diagram demo.}
\end{figure}
\blindtext
\end{document}
\renewcommand\unitfactor{0.4}
我尝试在环境中添加sequencediagram
。但这适用于所有距离,并导致调用指示符(如“EndCycle()”)覆盖返回路径。
答案1
不幸的是,这种调整是不可能的。当前版本 0.7(2013 年发布)的实现使用计数器来创建一种网格。每个新位置都使用以下公式计算:
\stepcounter{counter}
将位置向下放置一行 (1.0)。该逻辑不提供可自定义的空间。