如何为包含其他节点的节点强制布局
How to enforce a layout for nodes containing other nodes
我使用 plantuml 1.2019.8 和 graphviz 2.38
我想将 middle
节点放在图表的中心,up
和 down
节点放在它的上方和下方。
但是我无法将 up
、down
和 middle
移动到中心,同时强制 right
显示在右侧并且 left
在左边。
@startuml
skinparam linetype ortho
node up
node down
node "\n\n<b> middle\n\n" as middle
node " " as left {
node "left" as in_left
}
node " " as right {
node "right" as in_right
}
middle -u- up
down -u- middle
right -u- up
down -u- right
left -u- up
down -u- left
@enduml
现在这个复杂的问题
@startuml
skinparam linetype ortho
node up
node down
node " " as left {
node "left1" as in_left1
node "left2" as in_left2
node "left3" as in_left3
}
together " " as T {
node " " as middle {
node "middle1" as in_middle1
node "middle2" as in_middle2
}
node " " as right {
node "right1" as in_right1
node "right2" as in_right2
}
}
in_left1 .d. in_left2
in_left2 .d. in_left3
in_right1 .r. in_right2
in_middle1 .d. in_middle2
middle -u- up
down -u-- middle
right -u- up
down -u--- right
left -u- up
down -u- left
@enduml
这是Result
但是 up
和 down
再次不与 middle1
和 middle2
居中
您可以使用 together
关键字强制 middle
和 right
粘在一起。左边会在另一边绕过它。
@startuml
skinparam linetype ortho
node up
node down
node " " as left {
node "left" as in_left
}
together {
node "\n\n<b> middle\n\n" as middle
node " " as right {
node "right" as in_right
}
}
middle -u- up
down -u- middle
right -u- up
down -u- right
left -u- up
down -u- left
@enduml
我使用 plantuml 1.2019.8 和 graphviz 2.38
我想将 middle
节点放在图表的中心,up
和 down
节点放在它的上方和下方。
但是我无法将 up
、down
和 middle
移动到中心,同时强制 right
显示在右侧并且 left
在左边。
@startuml
skinparam linetype ortho
node up
node down
node "\n\n<b> middle\n\n" as middle
node " " as left {
node "left" as in_left
}
node " " as right {
node "right" as in_right
}
middle -u- up
down -u- middle
right -u- up
down -u- right
left -u- up
down -u- left
@enduml
现在这个复杂的问题
@startuml
skinparam linetype ortho
node up
node down
node " " as left {
node "left1" as in_left1
node "left2" as in_left2
node "left3" as in_left3
}
together " " as T {
node " " as middle {
node "middle1" as in_middle1
node "middle2" as in_middle2
}
node " " as right {
node "right1" as in_right1
node "right2" as in_right2
}
}
in_left1 .d. in_left2
in_left2 .d. in_left3
in_right1 .r. in_right2
in_middle1 .d. in_middle2
middle -u- up
down -u-- middle
right -u- up
down -u--- right
left -u- up
down -u- left
@enduml
这是Result
但是 up
和 down
再次不与 middle1
和 middle2
您可以使用 together
关键字强制 middle
和 right
粘在一起。左边会在另一边绕过它。
@startuml
skinparam linetype ortho
node up
node down
node " " as left {
node "left" as in_left
}
together {
node "\n\n<b> middle\n\n" as middle
node " " as right {
node "right" as in_right
}
}
middle -u- up
down -u- middle
right -u- up
down -u- right
left -u- up
down -u- left
@enduml