![tikzpicture で 2 つの矢印をプロットできません。バグの可能性があります。](https://rvso.com/image/472323/tikzpicture%20%E3%81%A7%202%20%E3%81%A4%E3%81%AE%E7%9F%A2%E5%8D%B0%E3%82%92%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%E3%83%90%E3%82%B0%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82.png)
次のコードは機能しません:
\begin{tikzpicture}[->]
\node at (1.85,-1.2) (bF) {$F$};
\node at (1.27,-1.2) (bd) {$d$};
\node at (3.6,-1.2) (bW) {$W$};
\node at (1.9,-1.1) (GW) {};
\node at (1.29,-1.1) (EGxbW) {};
\node at (2.28,-0.9) (ExbW) {};
\path[every node/.style={font=\sffamily\small}, thick]
(GW) edge[bend right] node [left] {} (EGxbW);
(bW) edge[bend right] node [left] {} (ExbW);
\end{tikzpicture}
次の画像が生成されます。
一方、最後の 2 行のコードを変更すると (または依存するコード行を個別に考慮すると)、次のようになります。
\begin{tikzpicture}[->]
\node at (1.85,-1.2) (bF) {$F$};
\node at (1.27,-1.2) (bd) {$d$};
\node at (3.6,-1.2) (bW) {$W$};
\node at (1.9,-1.1) (GW) {};
\node at (1.29,-1.1) (EGxbW) {};
\node at (2.28,-0.9) (ExbW) {};
\path[every node/.style={font=\sffamily\small}, thick]
(GW) edge[bend right] node [left] {} (EGxbW);
(bW) edge[bend right] node [left] {} (ExbW);
\end{tikzpicture}
そして次のようになります:
次のコードで同様のことを行ったので、両方の矢印を表示できるはずです。
\begin{tikzpicture}[->]
\draw[black, very thick] (0,0) rectangle (1.5,1);
\node at (1.8,0) (aL) {$\overline{L}$};
\draw[black, very thick] (0.8,-1.7) rectangle (2.3,-0.7);
\node at (2.55,-1.75) (bL) {$L$};
\node at (1.05,0.5) (aF) {$\overline{F}$};
\node at (0.47,0.5) (ad) {$\tilde{d}$};
\node at (1.85,-1.2) (bF) {$F$};
\node at (1.27,-1.2) (bd) {$d$};
\node at (2.8,0.5) (aW) {$\overline{W}$};
\node at (3.6,-1.2) (bW) {$W$};
\node at (1.48,0.8) (ExaW) {};
\node at (2.28,-0.9) (ExbW) {};
\path[every node/.style={font=\sffamily\small}, thick]
(ad) edge [out=230, in=173] (bd)
(aW) edge[bend right] node [left] {} (ExaW)
(bW) edge[bend right] node [left] {} (ExbW);
\end{tikzpicture}
次の画像が生成されます。
何が間違っているのでしょうか? それとも TikZ のバグなのでしょうか?
答え1
最初の2つのコードフラグメントでは、最後のコード行に孤立した部分があります。コマンド
\path[every node/.style={font=\sffamily\small}, thick]
(GW) edge[bend right] node [left] {} (EGxbW); % is terminated here, so
(bW) edge[bend right] node [left] {} (ExbW); % this line orphan: not drown
は、最初のコード行の後ですでに終了しているため ( によって;
)、2 行目は、何をすべきかの指示がない孤立した行になります。その結果、その中で決定される矢印は、溺れません。
したがって、最初のコード フラグメントを次の WME に拡張すると、
\documentclass[margin=3mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[->,
every node/.style = {inner xsep=0pt} ]
\node at (1.85,-1.2) (bF) {$F$};
\node at (1.27,-1.2) (bd) {$d$};
\node at (3.6,-1.2) (bW) {$W$};
\path (bF.north) edge[bend right] (bd.north east) % <--- not terminated
(bW.north) edge[bend right] (bF.north east);
\end{tikzpicture}
\end{document}
望ましい結果が得られると思われます。
あなたのコードフラグメントと比較すると、上記のコードは簡略化され、短縮されています。