tikzpicture로 두 개의 화살표를 그릴 수 없습니다. 버그가 있을 수 있습니다.

tikzpicture로 두 개의 화살표를 그릴 수 없습니다. 버그가 있을 수 있습니다.

다음 코드는 작동하지 않습니다.

\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}[->]
            \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

처음 두 코드 조각의 마지막 코드 줄에 고아가 있습니다. 명령

\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

첫 번째 코드 줄 뒤에서 이미 종료되었으므로 ;두 번째 줄은 무엇을 해야할지 지시하지 않고 고아가 됩니다. 결과적으로 그 안에 결정된 화살은 익사하지 않습니다.

따라서 첫 번째 코드 조각을 다음 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}

당신은 원하는 결과를 얻을 것입니다.

여기에 이미지 설명을 입력하세요

위의 코드 조각과 비교하면 코드가 단순화되고 단축됩니다.

관련 정보