如何取消PlantUML类图同层级非关联元素的垂直对齐?
解决PlantUML中非同源子类的垂直对齐间隙问题
问题根源在于PlantUML默认使用的Dot布局引擎会强制将同一父类下的子类底部对齐——哪怕其中一个子类(比如child1)因属性过多被拉长,同级的child2也会被拉伸至相同高度,导致其子类child2a只能被迫显示在child1的下方。
以下是两种可行的解决方法:
方法一:切换到Smetana布局引擎(推荐)
Smetana是PlantUML的新一代布局引擎,它不会强制同级类的高度对齐,会根据每个类的实际尺寸自动优化布局,让child2a自然紧跟在child2下方。只需在代码开头添加一行指令即可:
!pragma layout smetana parent <|-- child1 parent <|-- child2 child2 <|-- child2a class child1 { i have a lot of different fields that need to be included which makes my box very long }
方法二:手动指定子类位置
如果不想更换布局引擎,可以通过PlantUML的位置语法强制child2a位于child2正下方,这种方式适合布局固定的场景,但后续修改类结构时可能需要手动调整位置:
parent <|-- child1 parent <|-- child2 child2 <|-- child2a class child1 { i have a lot of different fields that need to be included which makes my box very long } child2a [below child2]
内容的提问来源于stack exchange,提问作者OmniZ
相关产品推荐
相关产品推荐

