TikZ를 사용하여 선에 간격 추가

TikZ를 사용하여 선에 간격 추가

TikZ로 블록 다이어그램을 그리고 있습니다. 때로는 해당 블록 주위에 테두리를 추가하여 여러 블록을 결합하여 하나의 큰 그룹을 형성해야 할 때도 있습니다. 그런데 이 그림처럼 국경을 넘는 화살표가 몇 개 있습니다.

간격이 없는 블록 다이어그램

"ALC 루프로" 화살표와 그 바로 아래에 있는 화살표가 보기 흉해 보입니다. 내가 하고 싶은 일은 다음과 같습니다(두꺼운 테두리를 가로지르는 화살표 주위의 작은 틈에 주의하세요).

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

TikZ로 그게 어떻게 가능합니까? 화살표는 그냥 매크로로 그린 평범한 화살표 \draw[->] (from) -- (to);이고 굵은 테두리도 그냥 평범한 선입니다.

답변1

@AboAmmar MWE를 사용하면 preaction간단한 경우에 사용할 수 있습니다.

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[> = latex]
\node [draw, thick, minimum size=5em] (rec) {};
\node [draw] (div) {$\div$};

\draw [preaction={draw, line width=3pt, white}][<->] (div) -- ++(5em,0);

\end{tikzpicture}

\end{document}

편집: 그럼에도 불구하고 몇 가지 문제가 있습니다. 화살표 끝은 이 화살표 끝의 크기에 따라 경로 굽힘을 변경합니다. 따라서 그 아이디어는 좋은 해결책이 아닙니다. 여기에 이미지 설명을 입력하세요

\documentclass[border=2pt]{standalone}
\usepackage{tikz}

\tikzset{
    outlined arrow/.style={
        preaction={{}-{},draw,line width=3pt,yellow}
    }
}

\begin{document}    
\begin{tikzpicture}[> = latex]
\node [draw,thick,minimum size=5em] (rec) {};
\node [draw] (div) {$\div$};

\draw [outlined arrow][<->] (div) -- ++(5em,0);
\draw [outlined arrow][<->,shorten <=2pt] (div) .. controls +(-90:15mm) and +(180:15mm) .. ++(5em,-5em);

\end{tikzpicture}
\end{document}

편집 2: 위의 경우 검은색 화살표 구부러진 선은 화살표 크기에 따라 노란색 선의 중앙에 위치하지 않습니다. @cfr 응답을 찾았습니다(선 너비에 독립적인 화살표 끝 크기) 여기서 조금 유용할 수 있습니다. 아래 코드는 화살표 끝 설정이 my arrow선택적 인수를 통해 전달되는 경우에만 작동합니다.

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

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}[
    outlined arrow/.style={preaction={double=yellow,double distance=2pt,draw=red}},
    my arrow/.style={>={LaTeX[length=2mm]}},
    yscale=0.6
]
\node [draw,thick,minimum size=5em] (rec) {};
\node [draw] (div) {$\div$};

\draw [outlined arrow][<->,my arrow] (div) -- ++(5em,0);
\draw [outlined arrow][<->,shorten <=2pt,my arrow]
      (div) .. controls +(-90:15mm) and +(180:15mm) .. ++(5em,-5em);

\end{tikzpicture}
\end{document}

@Qrrbrbirlbel 솔루션 사용도 고려했습니다.경로를 저장하고 쓰다듬기 위해 호출하세요.), 그러나 shorten옵션이 작동하지 않았습니다. 또한 @Paul Gaborit 솔루션(둘러싸인 화살표)는 shorten옵션(?)을 제외합니다.

답변2

선 교차점의 이러한 간격은 교차선과 동일한 방식으로 그려진 두꺼운 흰색 선을 사용하여 얻을 수 있습니다. 예는 다음과 같습니다.

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[> = latex]
\node [draw, thick, minimum size=5em] (rec) {};
\node [draw] (div) {$\div$};

\draw [<->, line width=3pt, white](div) -- ++(5em,0);
\draw [<->] (div) -- ++(5em,0);

\end{tikzpicture}

\end{document}

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

관련 정보