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}