如何在单个页面上制作多个序列图

17

我想知道是否有办法在单个页面上并排制作两个PlantUML序列图。我希望在两个图表中保持相同的参与者名称。目前,如果我像下面这样做,它会自动合并成一个序列图。

@startuml
Bob -> Alice : hello
@enduml

@startuml
Bob -> Mark : Hi
@enduml

样例

但是期望两个序列并排显示

2个回答

24

newpage: newpage关键字用于将一个图表分成多个图片。

@startuml

header SayHello
footer Page %page% of %lastpage%

Bob -> Alice : hello

newpage last page

Bob -> Mark : Hi

@enduml

结果:

在这里输入图片描述

参考

您也可以定义一个名为“PAGE_SETTING”的变量来决定是否开启或关闭它。

@startuml

' seton demo
!define PAGE_SETTING newpage

header SayHello
footer Page %page% of %lastpage%

Bob -> Alice : hello

PAGE_SETTING

Bob -> Mark : Hi

@enduml

结果:

enter image description here

参考:宏定义


哇,这正是我想要的。谢谢Carson Arucard。 - Sazzad Hissain Khan
不知道是否有什么变化,但它不再起作用了。 - Michał Margiel
嗨@MichałMargiel,这篇帖子已经发布了一段时间。你说它突然不工作了,所以我想可能是新版本中有一些更改,在我更新了所有包(plantuml.1.2021.3.jar | Graphviz 2.47.0)并再次尝试后,它仍然可以工作。希望你能成功解决问题! - Carson
@ Carson,可能是因为我在 http://www.plantuml.com/ 上尝试,并且我没有看到任何显示所有页面的方法。 - Michał Margiel
2
@MichałMargiel,当在状态图中使用默认的开始/结束状态[*]时,似乎newpage无法正常工作。可能还有其他生成的对象会破坏newpage - Shoggomo

3

如果你只想标记“newpage”,你可以尝试像这样做:

@startuml

    ' define
        !define NEW_PAGE_1 == newpage ==

        !definelong NEW_PAGE_2(obj)
            note over obj: newpage
        !enddefinelong

    ' main
        Bob -> Alice : hello
        NEW_PAGE_1
        Bob -> Mark : Hi
        NEW_PAGE_2(Bob)
        Bob -> Carson

@enduml

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接