사라지는 화살촉

Dec 28 2020

반경이 0.7 이하이면 잘 작동하는 곡선 화살표가 있습니다. 하지만 반경을 0.8로 늘리면 화살촉이 사라집니다. 다양한 매개 변수를 변경하는 것은 도움이되지 않는 것 같습니다. 무슨 일이 일어나고 있는지 그리고 더 큰 반경을 어떻게 사용할 수 있는지 이해하고 싶습니다.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows, decorations.markings}
\begin{document}

\begin{tikzpicture}

    % https://tex.stackexchange.com/a/169115/2737
    \tikzset{
    curveArrow/.style={
      thick,
      decoration={markings,mark=at position
       1 with {\arrow[scale=1.5,semithick]{open triangle 60[fill=white]}}},
      double distance=3.5pt, shorten >= 8pt,
      preaction = {decorate},
      postaction = {draw,line width=1.4pt, white,shorten >= 8.5pt}
      }
    }
    % changing radius from 0.7 to 0.8 makes the arrow head disappear
    \draw[curveArrow] (0,0) arc (90:270:0.7); 

\end{tikzpicture}

\end{document}

반경 = 0.7

반경 = 0.8

답변

4 hpekristiansen Dec 30 2020 at 04:52

Tikz 라이브러리 arrows는 더 이상 사용되지 않습니다. markings경로의 맨 끝에 무언가를 배치하는 데 사용하는 것이 약간 이상하다는 것을 알았 습니다. 아마도 그것은 나일 수도 있습니다. 다음은 원본 코드의 인공물과 문제가없는 대체 버전입니다. 아이디어는 먼저 삼각형 화살표를 그린 다음 수직 화살표 선의 일부를 그릴 수있을만큼 정확하게 이중선을 만드는 것입니다.

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
  curveArrow/.style={
    draw=none,
    preaction={draw, thick, -{Triangle[open, length=8pt 1, width=10pt]}},
    postaction={draw, thick, double distance=3.5pt, shorten >=8pt}
  }]
\draw[curveArrow] (0,0) arc (90:270:0.8); 
\end{tikzpicture}
\end{document}