TikZ図のラベル距離とその他の問題

TikZ図のラベル距離とその他の問題

で計算された次の図には、tikz3 つの不完全性が含まれています。

  1. 数学演算子のプラス「+」とマイナス「-」は、対応する合計ノードのラベルとして定義されています。記号は円と矢印から遠く離れて描画されています。label distance=<value>結果に違いがないコマンドを使用しようとしました。ラベルから対応するノードまでの距離を変える方法を誰か知っていますか?
  2. 右側の合計ノード ( sum3mwe では と呼ばれます) は、オプション で配置されます。これは、目的の結果を提供するハードコードされた値です。ノード を ノード の下に、ノード と同じ高さにbelow = 18mm of branch2配置する、より一般的なソリューションを探しています。これは、コマンドで可能ですか? または、この問題を解決する別のソリューションがありますか?branch2ctikzintersections
  3. いくつかの矢印は コマンドと組み合わされています。角のある矢印 (または) をパスにpath含めることもできますか?-||-

最小限の動作例

\documentclass{standalone}
\usepackage{xcolor}
\definecolor{anti-flashwhite}{rgb}{0.95, 0.95, 0.96}

\usepackage{tikz}
\usetikzlibrary{positioning,circuits.ee.IEC}

\usepackage{bm}

\begin{document}

\begin{tikzpicture}[%
,auto
,>=latex'
,block/.style={text height=1.5ex,text depth=.25ex,draw, fill=anti-flashwhite, rectangle, minimum height=10mm, minimum width=10mm}
,bigblock/.style={text height=1.5ex,text depth=.25ex,draw, fill=anti-flashwhite, rectangle, minimum height=10mm, minimum width=30mm}
,sum/.style={draw, fill=anti-flashwhite, circle,inner sep=1mm, node distance=20mm}
,input/.style={coordinate}
,output/.style={coordinate}
,branch/.style={circle,inner sep=0pt,minimum size=1mm,fill=black,draw=black}
,frame/.style={dashed,thick,blue}
]
\draw
    % forward path
    node [input]                (input1)                                                        {}
    node [sum]                  (sum1)          [right = 15mm of input1]                        {}
    node [branch]               (branch1)       [right = 10mm of sum1,label ={above:$u(t)$}]    {}
    node                        (helpnode)      [right = 15mm of branch1]                       {}
    node [bigblock]             (strecke)       [right = 15mm of helpnode]                      {Strecke}
    node [branch]               (branch2)       [right = 30mm of strecke]                       {}
    node [output]               (output1)       [right = 15mm of branch2]                       {}

    % observer
    node [block]                (h)             [below = of strecke]                            {$\bm{h}$}
    node [block]                (int)           [below = of h]                                  {$\int$}
    node [sum]                  (sum2)          [left = 10mm of int,label={above left,:\tiny{$+$}},
                                                label={below left:\tiny{$+$}},
                                                label={below right:\tiny{$+$}}]                 {}
    node [block]                (b)             [left = of sum2]                                {$\bm{b}$}
    node [block]                (a)             [below = of int]                                {$\bm{A}$}
    node [branch]               (branch3)       [right = of int, label={above:$\hat{x}(t)$}]    {}
    node [block]                (c)             [right = of branch3]                            {$\bm{c}^T$}

    node [sum]                  (sum3)          [below = 18mm of branch2,
                                                label={above left:\tiny{$+$}},
                                                label={below left:\tiny{$-$}}]                  {}
    node [branch]               (branch4)       [below = 18mm of sum3]                          {}
    node [output]               (output2)       [right = 15mm of branch4]                       {}

    node [block]                (r)             [below = 25mm of b, dashed]                     {$\bm{r}^T$}
;

\path
(input1)    edge[->]    node {$w(t)$}           (sum1)
(sum1)      edge[->]                            (branch1)
(branch1)   edge[->]                            (strecke)
(strecke)   edge[->]                            (branch2)
(branch2)   edge[->]    node {$y(t)$}           (output1);

\draw[->]   (branch1)   |-                      (b);

\path
(b)         edge[->]                            (sum2)
(sum2)      edge[->] node {$\dot{\hat{x}}(t)$}  (int)
(int)       edge                                (branch3)
(branch3)   edge[->]                            (c)
(c)         edge                                (branch4)
(branch4)   edge[->]    node {$\hat{y}(t)$}     (output2)
;

\path
(branch2)   edge[->]                            (sum3)
(sum3)      edge[->]                            (h);

\draw[->]   (h)         -|                      (sum2);
\draw[->]   (branch3)   |-                      (a);
\draw[->]   (a)         -|                      (sum2);

\draw[->]   (branch4)   --                      (sum3);

\draw[->,dashed]    (branch3)       |-          (r);
\draw[->,dashed]    (r)             -|          (sum1);


% dashed frame
\draw [frame] ([yshift=28mm,xshift=-20mm]b) rectangle ([yshift=-48mm,xshift=3mm]sum3)   node[below left] {Beobachter}  ;

\end{tikzpicture}

\end{document}

結果

ここに画像の説明を入力してください

答え1

質問 1 に関して、最初の に[label distance=6pt] または を追加すると、大きな違いが見られるはずです。[label distance=-6pt]\draw

しかし、これはラベルにも影響しu(t)ます\hat x(t)

関連情報