【latex】overleaf(uplatex) でディレクトリ構造の図を書く
まえがき
latexでツリー図を書こうと思ったが、Overleafでは tree.sty
が使えない1ので、代替packageを探した。
意外と記事がヒットしなかったので簡単にまとめる。
描画したい図
一般的な木構造に加え、ディレクトリ構造も描画できると嬉しい。
結論: forest
package
個人的にはforest が最適だったのでこれを紹介する。ちなみに公式docでもお気持ち紹介されている2。
Tikzをベースにしているので、オプション等は共通した文法である。例) grow'=0
描画可能な図(一例)
書き方
上述の図のソースコードは以下の通り。
% main.tex \documentclass[11pt, uplatex]{jsreport} \usepackage[edges]{forest} % 場合によっては以下も必要かもしれない。自分の環境では不要だった。 % \usepackage{tikz} % \usetikzlibrary{trees}
% tree \begin{forest} [VP, for tree={parent anchor=south, child anchor=north} [DP[John,tier=word]] [V’ [V[sent,tier=word]] [DP[Mary,tier=word]] [DP[D[a,tier=word]][NP[letter,tier=word]]] ] ] \end{forest}
% directory \begin{forest} for tree={grow'=0,folder,draw} [/ [home [saso [Download] [TeX] ] [alja] [joe] ] [usr [bin] [share] ] ] \end{forest}
% 念のためlatexmkrc $latex = 'uplatex'; $bibtex = 'pbibtex'; $dvipdf = 'dvipdfmx %O -o %D %S'; $makeindex = 'mendex %O -o %D %S'; $pdf_mode = 3;
詳細は http://ftp.jaist.ac.jp/pub/CTAN/graphics/pgf/contrib/forest/forest-doc.pdf を参照されたい。
注意
上述のdirectory
を描画する際、コードにインデント(スペース1つで良い)をつけないと以下のように、Package pgfkeys Error: I do not know the key '/tikz/grow'
というエラーが発生した。latexのブロック定義ってインデントだっけ?