
나는 이 게시물의 포리스트 기반 솔루션을 따랐습니다.(간단한) 디렉토리 트리 만들기디렉토리 구조를 생성합니다. 각 파일과 이름에 바로 전체 경로를 추가하고 싶습니다. 전체 경로도 왼쪽으로 정렬되어야 합니다. 나는 이 더러운 해결책을 생각해 냈습니다.
\documentclass{standalone}
\usepackage{forest}
\usetikzlibrary{positioning}
\begin{document}
\begin{forest}
for tree={
font=\ttfamily,
grow'=0,
child anchor=west,
parent anchor=south,
anchor=west,
calign=first,
s sep=6pt,
inner sep=0pt,
edge path={
\noexpand\path [draw, \forestoption{edge}]
(!u.south west) +(6pt,0) |- (.child anchor)\forestoption{edge label};
},
before typesetting nodes={
if n=1
{insert before={[,phantom]}}
{}
},
fit=band,
before computing xy={l=5mm},
}
[a,name=a
[b
[c
[d]
]
]
[e
[f]
[b]
]
]
%
\node[right of=a,node distance=2cm] (desc) {\tt /a};
\node[below=13pt of desc.west,anchor=west] (desc) {\tt /a/b};
\node[below=13pt of desc.west,anchor=west] (desc) {\tt /a/b/c};
\node[below=13pt of desc.west,anchor=west] (desc) {\tt /a/b/c/d};
\node[below=12pt of desc.west,anchor=west] (desc) {\tt /a/e};
\node[below=13pt of desc.west,anchor=west] (desc) {\tt /a/e/f};
\node[below=13pt of desc.west,anchor=west] (desc) {\tt /a/e/b};
\end{forest}
\end{document}
다음과 같이 표시됩니다.
괜찮아 보이지만 전체 경로 간의 하드 코딩 거리를 피하는 깔끔한 솔루션을 찾고 싶습니다.
답변1
forked edge
, with 를 사용하여 트리를 다소 단순화하는 것이 좋습니다 fork sep=0pt
. (참고, 여기에는 가 필요합니다 \usepackage[edges]{forest}
.) 각 경로 설명을 새 하위 노드로 포함시킨 다음 if n children=0{no edge, tier=desc}{l-=4mm}
마지막 가장자리가 그려지는 것을 방지하고 차원( 사용되는 l
용도 )에 정렬되도록 유지하는 데 사용되었습니다. tier
≠ n children
0이면 l
치수가 로 단축됩니다 4mm
. 경로 설명을 트리에 더 가깝게 만들고 싶다면 (동일하거나 다른 양으로) 단축할 수도 있습니다.
\documentclass{article}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={
font=\ttfamily,
grow'=0,
anchor=west,
calign=first,
s sep=6pt,
inner sep=0pt,
forked edge,
fork sep=0pt,
l sep=3mm,
if n children=0{no edge, tier=desc}{l-=4mm}
}
[a
[/a]
[b
[/a/b]
[c
[/a/b/c]
[d
[/a/b/c/d]
]
]
]
[e
[/a/e]
[f
[/a/e/f]
]
[b
[/a/e/b]
]
]
]
\end{forest}
\end{document}