LaTeXでディレクトリ構造を示すdirtreeパッケージの利用

# はじめに
dirtreeパッケージを使うことで、LaTeX 文書 ( [コードは記事の末尾にある](#具体例) )で次のような表示を実現できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844961/353147dc-7d7b-60f9-1742-7ebba265abfd.png)

PDFのプレビューを拡大したものを次に示す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844961/23137a12-adde-bf2f-94fb-ddc2a5271bc7.png)

# セットアップ
## ダウンロード

https://www.ctan.org/pkg/dirtree

上記の Web サイトで「Download the contents of this package in one zip archive (110.2k).」からdiretreeをダウンロードする。

ダウンロードした ```dirtree.zip``` を展開すると、```dirtree``` フォルダが作成される。このフォルダ内容を以下に示す。

```
dirtree
L dirtree.dtx
L dirtree.ins
L dirtree.pdf
L README
```

## インストール
```texlive\texmf-local\tex\latex``` ディレクトリに ```dirtree``` を移動させる。Windowsにおいて ```texlive``` は、一般的な tex インストール時にルートディレクトリ```C:``` に保管される。

```
C:\texlive\texmf-local\tex\latex
```

保管したディレクトリに移動して、次のコマンドで ```dirtree.ins``` を実行する。

```
cd C:\texlive\texmf-local\tex\latex # カウントディレクトリの変更
latex dirtree.ins                   # インストールの実行
```

インストールログを次に示す。
```
(base) PS C:\texlive\texmf-local\tex\latex\dirtree> latex dirtree.ins  # インストールの実行
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./dirtree.ins
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-08-29>
(c:/texlive/2023/texmf-dist/tex/latex/base/docstrip.tex
Utility: `docstrip' v2.6b <2022-09-03>
English documentation    <2022-09-03>

**********************************************************
* This program converts documented macro-files into fast *
* loadable files by stripping off (nearly) all comments! *
**********************************************************

********************************************************
* No Configuration file found, using default settings. *
********************************************************

(./dirtree.ins
*** Generating the `dirtree' package ***

Generating file(s) ./dirtree.tex

Processing file dirtree.dtx (tex) -> dirtree.tex
Lines  processed: 825
Comments removed: 609
Comments  passed: 23
Codelines passed: 185


Generating file(s) ./dirtree.sty

Processing file dirtree.dtx (latex-wrapper) -> dirtree.sty
Lines  processed: 825
Comments removed: 609
Comments  passed: 23
Codelines passed: 185

***********************************************************
*
* To finish the installation you have to move the files
* dirtree.sty and dirtree.tex in a directory/folder searched by TeX.
*
* To produce the documentation, run the file `dirtree.dtx'
* through LaTeX.
*
* If you require the commented code, desactivating the
* OnlyDescription macro, you must recompile, execute:
* `makeindex -s gind.ist dirtree'
* `makeindex -s gglo.ist -o dirtree.gls dirtree.glo'
* and recompile.
*
***********************************************************
)
Overall statistics:
Files  processed: 2
Lines  processed: 1650
Comments removed: 1218
Comments  passed: 46
Codelines passed: 370
 ) )
No pages of output.
Transcript written on dirtree.log.
```

# 使い方
## プリアンブル
LaTeX 文書のプリアンブル( ```\documentclass``` ~ ```\begin{document}``` 間の箇所)に次のコードを記述する。

```tex:
\usepackage {dirtree}
```

## ```\DTsetlength```

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844961/6cf7ad80-ee85-76d2-1634-1341f9faa74e.png)
> 『The dirtree package Directory Tree』5ページより引用
> https://ftp.kddilabs.jp/CTAN/macros/generic/dirtree/dirtree.pdf

## アイコン
アイコンは自身で画像を用意する必要がある。私は ```C:\texlive\texmf-local\tex\latex\dirtree``` (dirtree パッケージを保管したディレクトリ) に ```image``` フォルダを作成して、そこにアイコン画像を保管している。

画像の用意はネット上にあるものを使ったり、PowerPoint や Adobe 系のソフトで作成したりなどをすればよい。画像は正方形( 255 x 255 px)が綺麗に表示しやすい。次に簡単なものを紹介する。

- フォルダのアイコン ```dire.png```
    > ![dire.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844961/2a0407ec-7950-7912-bc29-6bd8c2e912b1.jpeg)
    >『folder iocn 1 | アイコン素材ダウンロードサイト「icooon-mono」 | 商用利用可能なアイコン素材が無料(フリー)ダウンロードできるサイト』より引用
    > https://icooon-mono.com/12087-folder-iocn-1/?lang=en

- テキストファイルのアイコン ```txt.png```
    私が PowerPoint で自作したもの
    ![txt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844961/c3b72f16-7036-c304-e26f-9832d53a0d02.png)


# 具体例
[冒頭に示した文書](#dirtreeパッケージ) を作成する LaTeX 文書を次に示す。

```tex: sample.tex
\documentclass[a4paper, 12pt]{ujarticle}
\usepackage[dvipdfmx]{graphicx}

% ---------------------------------------------------%
%                  プリアンブルの挿入                 %
% ---------------------------------------------------%
\usepackage{dirtree}

\begin{document}
\section{dirtreeパケージの利用}

本書は \LaTeX でディレクトリ構造を示すことができる
dirtreeパケージを利用したサンプルドキュメントである．

\DTsetlength{1em}{1em}{0.1em}{.5pt}{4pt}
\renewcommand*\DTstylecomment{\rmfamily\textsc}
\dirtree{%
  .1 \makebox[2ex][r]{\includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}}} C: \DTcomment{ホームディレクトリ}.
  .2 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} texlive \DTcomment{Texに関するディレクトリ}.
  .3 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} 20xx \DTcomment{インストールした西暦？}.
  .3 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} texmf-local.
  .4 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} tex.
  .5 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} latex \DTcomment{パッケージを入れるディレクトリ}.
  .6 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} dirtree \DTcomment{dirtreeパッケージ}.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dirtree.dtx.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dirtree.ins.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dirtree.log.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dirtree.pdf.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dirtree.sty.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dirtree.tex.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} README.
  .7 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} image \DTcomment{ここにアイコン画像を入れる}.
  .8 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} dire.png \DTcomment{フォルダ}.
  .8 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/txt.png}} txt.png \DTcomment{テキストファイル}.
  .5 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} plain.
  .2 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} Windows.
  .2 \includegraphics[width=0.25cm]{{C:/texlive/texmf-local/tex/latex/dirtree/image/dire.png}} ユーザー.
}
\end{document}
```

# 参考

https://konoyonohana.blog.fc2.com/blog-entry-182.html


https://qiita.com/Kto_pi/items/fd050e04d89a80fa2621