You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

PlantUML布局问题:如何将包置于指定实体左侧并实现包内实体横向并列显示

PlantUML布局问题:如何将包置于指定实体左侧并实现包内实体横向并列显示

嘿,这个问题我之前也碰到过!其实核心就是搞定两个关键点:包的位置定位包内实体的横向布局约束,我给你把具体解法拆明白:

一、完整可运行的代码示例

先给你直接上能跑的代码,复制过去就能看到效果:

@startuml
' 先定义主实体,确保布局引擎先识别它的存在
entity UniverseleOnderzoek

' 定义DETAIL包,包内用together强制两个实体并排
package DETAIL #lightblue {
  together {
    entity U_ONDERZOEK_LAB
    entity U_ONDERZOEK_RAD
  }
}

' 用隐藏连线指定包的位置:DETAIL在UniverseleOnderzoek左侧
DETAIL -[hidden]- left of UniverseleOnderzoek

' 要是together效果不够,也可以替换成包内的水平隐藏连线
' 把包内的together块换成这行:U_ONDERZOEK_LAB -[hidden]-> U_ONDERZOEK_RAD
@enduml

二、关键步骤拆解

  • 包的位置定位
    直接用DETAIL -[hidden]- left of UniverseleOnderzoek这行代码,隐藏连线不会在图中显示,但会明确告诉PlantUML的布局引擎:把DETAIL包放在UniverseleOnderzoek的左边。注意这行要写在所有元素定义之后,不然引擎可能找不到目标实体。

  • 包内实体横向并排
    这里有两个靠谱的方案:

    1. together关键字绑定:把两个实体放到together { ... }块里,PlantUML会把它们当成一个不可拆分的整体,默认就会横向排列,不会垂直堆叠。这种方法最省心,适合大多数场景。
    2. 加水平隐藏连线:如果together的布局不符合你的预期,就在包内加一行U_ONDERZOEK_LAB -[hidden]-> U_ONDERZOEK_RAD,这个隐藏箭头会强制两个实体按从左到右的水平方向排列,完全避免垂直堆叠的问题。

三、小Tips

  • 如果你的图比较复杂,偶尔会出现布局偏移,可以给隐藏连线加长度参数,比如-[hidden, length=30]-,调整一下元素间距。
  • 包的颜色(比如示例里的#lightblue)只是为了区分,不影响布局,你可以根据自己的需求删掉或者换成其他颜色。

这样应该就能完美解决你的问题了,你可以试试调整两种包内布局的方法,看哪种更贴合你的图的整体风格~

火山引擎 最新活动