エッジ上の tikz ツリー ノードは、常に線の上に配置され、線上だけには配置されません。

エッジ上の tikz ツリー ノードは、常に線の上に配置され、線上だけには配置されません。

私は学士課程のために攻撃ツリーを構築しています。そして、いくつかの子ノードを論理 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}. –

うまくいきました、そして私の問題は解決しました。ありがとう :)

関連情報