트리와 간단한 그래프
하위 구문 및 간격 손잡이.
트리와 간단한 그래프
구문 분석 트리, 의사결정 트리, 파일 레이아웃, 분류 등 계층 구조가 지속적으로 나타납니다. ‘위치 지정’ 작업으로 한 번에 하나의 상자를 그리는 것은 손으로 형제를 균등하게 펼치고 레벨을 균등하게 간격을 두는 것은 지루한 작업입니다. TikZ trees 라이브러리를 사용하면 중첩된 하위 작업을 사용하여 계층 구조 자체를 설명하고 레이아웃을 계산할 수 있습니다.
\usetikzlibrary{trees}\begin{tikzpicture}[ every node/.style={draw, circle, minimum size=7mm}, level distance=12mm, sibling distance=18mm]\node{A} child{node{B}} child{node{C} child{node{D}} child{node{E}}};\end{tikzpicture}하위 구문 읽기
그림에는 하나의 진술이 포함되어 있습니다. 이는 루트 \node{A}로 시작하고 여기에 연결된 각 child{...}는 하나의 하위 트리를 선언합니다. 하위 항목에는 일반적으로 자체 레이블에 대한 ’노드{…}’가 포함되어 있으며 추가 ‘하위’ 작업이 포함될 수 있습니다. 이는 ’C’가 하위 항목 ‘D’ 및 ’E’를 가져오는 방식입니다. 중괄호의 중첩은 트리의 중첩을 반영하므로 들여쓰기에서 직접 구조를 읽을 수 있습니다. TikZ는 각 레벨을 이전 레벨 아래에 배치하고 연결 가장자리를 자동으로 그립니다. one 문은 마지막 중괄호 뒤에 단일 세미콜론으로 끝납니다. 구조 내부에 누락되거나 추가된 세미콜론이 여기서 오류의 일반적인 원인입니다.
세 개의 레이아웃 손잡이
상단에 있는 옵션은 모양과 간격을 제어합니다. every node/.style={draw, Circle, 최소 크기=7mm}는 모든 노드에 한 번에 스타일을 적용합니다. 각 노드에는 그려진 테두리, 원형 모양 및 최소 직경 7mm가 있으므로 단일 문자가 균일한 원을 생성합니다. ’레벨 거리=12mm’는 상위와 하위 사이의 수직 간격을 설정합니다. 형제 거리=18mm는 동일한 부모의 인접한 자식 사이의 수평 간격을 설정합니다.
형제 거리는 가장 많이 조정할 손잡이입니다. ‘trees’ 라이브러리는 특정 수준의 모든 하위 트리에 대해 동일한 너비를 예약하므로 값이 너무 작으면 넓은 하위 트리가 충돌할 수 있습니다. 표준 해결 방법은 레벨 1/.style={형제 거리=36mm} 및 레벨 2/.style={형제 거리=18mm}와 같은 수준별 설정을 사용하여 하위 트리가 가장 넓은 상단 근처의 간격을 넓히는 것입니다. 라벨 너비가 많이 다른 경우 공유 스타일에서 ’원’을 제거하여 원에서 직사각형으로 전환하세요.
작은 나무 너머
모서리는 ’edge from parent/.style’을 통해 스타일을 선택합니다. 예를 들어 화살촉이나 두꺼운 선을 추가합니다. 대략 12개 이상의 노드를 초과하는 트리 또는 주기가 있는 일반 그래프의 경우 ‘trees’ 라이브러리가 제한됩니다. ‘forest’ 패키지는 자동 패킹으로 큰 나무를 처리합니다. graphrawing 알고리즘이 포함된 graphs 라이브러리는 임의의 그래프를 다루지만 해당 경로에는 LuaLaTeX가 필요합니다. TikZ는 이러한 인페이지 미리보기에서 렌더링하지 않으므로 예제를 컴파일하여 레이아웃을 확인하세요. 이 구문이 새로운 경우 첫 번째 TikZ 사진의 기본 사항부터 시작하세요.