私は学士課程のために攻撃ツリーを構築しています。そして、いくつかの子ノードを論理 AND 演算子で接続する必要があります。そこで、それらのノード間に線を引き、その上にノードを配置しました。
残念ながら、エッジのラベルを(隠れた)線の上に直接配置することはできません。常にその上の真ん中に配置されます。その理由はわかりません... 助けていただければ幸いです。
以下に最小限の例を示します。
\documentclass[a4paper,12pt,headsepline,dvipsnames,bibliography=totocnumbered]{scrartcl}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{trees}
\begin{document}
\tikzset{
attackTree/.style={
auto,
font=\small,
edge from parent fork down,
level distance=2.5cm,
every node/.style=
{ rectangle,
minimum height=15mm,
minimum width=30mm,
draw=black,
align=center,
text depth = 0pt
},
edge from parent/.style=
{ draw=black}
},
treeOperator/.style={
minimum width=0,
minimum height=0,
draw=none
}
}
\begin{tikzpicture}[
attackTree,
sibling distance=35mm
]
\node {Open safe}
child{
node {Pick lock}
}
child{node {Learn combo}
child{node {Find written\\combo}}
child{node {Get combo\\from target}
child{node{Threaten}}
child{node{Blackmail}}
child{node{Eavesdrop}
child{node(listen){Listen to\\conversation}}
child{node(state){Get target to\\state combo}}
}
child{node{Bribe}}
}
}
child{node {Cut open safe}}
child{node {Install\\improperly}};
\draw[draw=none] (listen) -- (state) node[treeOperator,midway] {$\wedge$};
\end{tikzpicture}
\end{document}
論理積演算子を隠れた行の中央に配置したいだけです。設定に、演算子が本来あるべき場所に配置されないようにするオプションがあるはずですが、それがどれなのかわかりません。
ご協力ありがとうございます!
答え1
@esdd が述べたように:
auto=false
設定に追加TreeOperator
:TreeOperator/.style={...,auto=false}
. –
うまくいきました、そして私の問題は解決しました。ありがとう :)