저는 TikZ를 사용하여 개별 페이지를 노드로 그리는 방식으로 종이에 대한 웹 그래프를 그리려고 합니다. 그러나 조판할 때 그래프는 선의 작은 모서리에 위치하며 노드가 너무 가깝습니다. node distance
작동하지 않고 minimum size
노드가 서로 겹치도록 확장합니다. 노드 사이의 최소 거리를 어떻게 설정합니까? 감사해요.
미완성(아직 선 없음) 그래프는 다음과 같습니다.
이상적으로는 페이지 너비와 같아야 하며 노드는 서로 더 멀리 분산되어야 합니다.
내 코드는 다음과 같습니다
\documentclass[12pt, oneside]{amsart}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{tikz}
\begin{document}
\tikzstyle{node}=[circle, draw=black!100, thick]
\tikzstyle{dangling node}=[circle, draw=black!100, fill=black!30, thick]
\begin{tikzpicture}[minimum size=5mm][node distance=5.3cm,>=stealth?,bend angle=45,auto]
\node[node](page 1){1};
\node[node](page 2)[right of=page 1]{2};
\node[node](page 3)[below of=page 1]{3};
\node[node](page 4)[below of=page 2]{4};
\node[dangling node](page 5)[below of=page 3, xshift=5mm]{5};
\end{tikzpicture}
\end{document}
답변1
환경 tikzpicture
은 단지하나선택적 인수. 즉, LaTeX가 [
after 를 본다면 \begin{tikzpicture}
처음 본 것까지의 모든 것을 파악하며 ]
이것이 환경에 대한 옵션입니다. 가 있는 경우 \begin{tikzpicture}[..][..]
두 번째 대괄호 쌍은 실제로 제 생각에는 일반 텍스트로 읽혀지며 TiKZ는 일반적으로 /TikZ 명령이 아닌 모든 항목을 억제하려고 시도하므로 pgf
기본적으로 무시됩니다.
따라서 요약하면 a에 대한 모든 옵션은 tikzpicture
동일한 대괄호 쌍에 배치되어야 합니다.
이에 따라 코드를 변경하고 ?
뒤에 잘못된 위치를 제거하면 설정이 예상대로 작동하는 stealth
것을 확인할 수 있습니다 .node distance
즉, 라이브러리를 사용하려면 TeXnicians의 조언을 따르고 positioning
eg right=of
대신 right of=
. 이에 대한 일부 논의는 다음에서 찾을 수 있습니다.PGF/TikZ의 "right of="와 "right=of"의 차이점. 라이브러리를 사용하는 또 다른 이유 positioning
는 수평 및 수직 노드 거리를 별도로 설정할 수 있다는 것입니다. node distance=Ycm and Xcm
아래 코드에 예가 나와 있습니다. gernot이 의견에서 언급했듯이 이 경우 on grid
노드 스타일에 추가하고 싶을 수도 있습니다 . on grid
즉, 노드의 중심점으로부터 거리가 계산됩니다.
최종 참고 사항: 한 스타일을 다른 스타일 안에 넣을 수 있으므로 dangling node
와 동일한 스타일이 있는 경우 를 node
추가 하면 fill
이라고 말할 수 있습니다 dangling node/.style={node,fill=black!30}
. 이렇게 하면 코드 중복이 줄어들고 수정이 더 쉬워집니다.
\documentclass[12pt, oneside]{amsart}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{
node/.style={circle, draw=black!100, thick, on grid}, % on grid added
dangling node/.style={node, fill=black!30}
}
\begin{document}
\begin{center}
\begin{tikzpicture}[
minimum size=5mm,
node distance=4cm and 7cm,
>=stealth,
bend angle=45,
auto
]
% grid to easier see that the node centers line up
\draw [help lines] (-1,-9) grid (9,1);
\node[node](page 1){1};
\node[node](page 2)[right=of page 1]{22};
\node[node](page 3)[below=of page 1]{3333};
\node[node](page 4)[below=of page 2]{4555555};
\node[dangling node](page 5)[below=of page 3, xshift=5mm]{5};
\end{tikzpicture}
\end{center}
\end{document}