LaTeXでディレクトリツリーを表示する。¶
treeコマンドを普通に使うと、
my-first-blueprint/
|-- files
| `-- tmp
|-- manifests
`-- templates
`-- etc
|-- apt
|-- cloud
|-- cron.d
|-- ldap
|-- openldap
| `-- cacerts
|-- pam.d
|-- perl
| `-- XML
| `-- SAX
|-- security
|-- ssh
|-- update-notifier
`-- xml
19 directories
と表示されますが、バッククオートがLaTeXではフォントによっては違った見え方になります。なので、
$ tree -d my-first-blueprint | sed 's/`/+/g'
my-first-blueprint/
|-- files
| +-- tmp
|-- manifests
+-- templates
+-- etc
|-- apt
|-- cloud
|-- cron.d
|-- ldap
|-- openldap
| +-- cacerts
|-- pam.d
|-- perl
| +-- XML
| +-- SAX
|-- security
|-- ssh
|-- update-notifier
+-- xml
19 directories
としてやれば、lstlisting環境などで意図どおりの表示になるのですが、treeコマンド自体のオプションで指定できないんでしょうかね。
ちなみに、LANG=en_US.UTF-8になっている、Ubuntu 10.04では、treeコマンドのパス表示に使われる記号が全角の罫線になっています。
my-first-blueprint/
├── files
│ └── tmp
├── manifests
└── templates
└── etc
├── apt
├── cloud
├── cron.d
├── ldap
├── openldap
│ └── cacerts
├── pam.d
├── perl
│ └── XML
│ └── SAX
├── security
├── ssh
├── update-notifier
└── xml
19 directories
罫線記号は全角なのでlstlistingなどの環境の中ではもれなくズレます。LANG=Cに指定すればバッククオートの形式になります。Sidではならないんですけど、何ででしょう。バージョンの違い? 1
余談。¶
最初、LANG=Cすりゃええやん、と気づかず、下記のようなワンライナー書いてました。ダサ。
$ tree -d my-first-blueprint/ | sed '{
s/└─/+-/g
s/├─/+-/g
s/─/--/g
s/│/| /g
}'
- 1
Lucidでは1.5.3, Sidでは1.6.0です。