
나는 다음을 달성하고 싶습니다 :
하지만 노드 연결이 제대로 작동하지 않습니다. 다음과 같은 결과가 나타납니다.
이 문제를 어떻게 해결하며 어디에서 문제가 발생합니까?
MWE:
\documentclass[tikz]{article}
\usepackage{tikz}
\tikzset{square/.style = {
shape = rectangle,
fill = gray!50,
draw = black,
thick
}}
\tikzset{circle/.style = {
shape = circle,
fill = blue!20,
draw = blue,
thick
}}
\begin{document}
\begin{tikzpicture}
\draw[square] (-4,4)rectangle node (r1) {r1} (-3,5);
\draw[circle] (-1,4.5) circle [radius=0.5cm] node (s1) {s1};
\draw[->] (r1.west) -- (s1.east);
\end{tikzpicture}
\end{document}
나는 다음의 접근 방식을 고수하고 싶습니다.\draw[->] (r1.west) -- (s1.east);
답변1
올바른 그림
\documentclass[tikz,margin=3mm]{standalone}
\tikzset{squarenode/.style = {
shape = rectangle,
fill = gray!50,
draw = black,
thick,
minimum size=1cm %%%% Take note of this!
},
circlenode/.style = {
shape = circle,
fill = blue!20,
draw = blue,
thick,
minimum size=1cm %%%% and this!
}}
\begin{document}
\begin{tikzpicture}
\draw (-4,4.5) node[squarenode] (r1) {r1}; % Or \node[squarenode] (r1) at (-4,4.5) {r1};
\draw (-1,4.5) node[circlenode] (s1) {s1}; % Or \node[circlenode] (s1) at (-1,4.5) {s1};
\draw[->] (r1) -- (s1); % or (r1.east)--(s1.west);
\end{tikzpicture}
\end{document}
몇 가지 참고사항(중요!)
circle
은 정의된 옵션이므로 새 를 정의하면 안 됩니다circle
. 나는 그것을circlenode
.- 원과 사각형을 수동으로 그릴 필요가 없습니다. 노드와 에서 모양을 사용할 수 있습니다
minimum size
. 더 많은 제어를 위해minimum height
및 가 있습니다minimum width
. - 나는 많은 것을 사용하는 것을 권장하지 않습니다
\tikzset{}
. tikz
의 옵션이 아닙니다article
. 의 옵션입니다standalone
. 옵션을 이미 로드한 경우에는tikz
가 필요하지 않습니다\usepackage{tikz}
.
사용시 차이점 (r1)--(s1)
과(r1.east)--(s1.west)
\documentclass[tikz,margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\node[draw] (a) at (0,0) {Some text};
\node[draw] (b) at (5,3) {Hello world};
\draw[thick] (0,0)--(5,3);
\draw[red] (a)--(b);
\draw[blue] (a.east)--(b.west);
\end{tikzpicture}
\end{document}
빨간색 선과 파란색 선의 시작점과 끝점을 자세히 살펴보세요.