RubyスクリプトをLaTeXで整形(?)
- RubyのスクリプトをLaTeXで美しく整形するツールがほしい、と思った。
- いきなり書きかけて、ふと「絶対すでに誰かが作っているはず」と思い直した。
- Ruby LaTeXで検索した。
- hyuki.comの日記がトップに来てこけた。
- 1997年のまつもとさんのメールでrd2texというキーワードが出てきた。
- それ以外はいま一つ。
- Ruby TeXで検索した。
- HTMLへの変換はあるのでは、と思い直す。RDだっけ。
- rdoc2latex
- 探すの疲れてきた。自分で作りたくなってくる。
- 何となく「青木 Ruby LaTeX」で検索してみる。
- RDtoolというキーワードを見つける。
- RDtool
- C:\ruby で dir /s/b RDtool*.* で検索する。何もなし。
- GoogleでRDTool LaTeXで検索する。
- あ、そうか。RAAを探すのか、こういうときは。と気づく。
- RAA - rdtoolというのを見つける。これかな。
- RDtoolのホームページらしきところを見つける。
- るびきちさんのRD事始めというページを見つける。
- とりあえずtarballをダウンロードして展開。rdtool-0.6.20.tar.gz
- README.ja.htmlを読む。RDはPerlのPODみたいなものか。
- ruby setup.rbでインストール。できた。
- rdと入力すると「コマンドの構文が誤っています。」と言われる。まずい、rdはrmdirのことではないか。ええと。
- rd2
- rd2.bat
- rd2.bat --helpでヘルプが出た。 -r オプションでフォーマットライブラリを選ぶようだ。きっとここにmanとかhtmlとかを書くのかな。
- 探してみると、C:\ruby\lib\ruby\site_ruby\1.8\rd\rd2html-lib.rbなどがある。ふむふむ。でもきっと、デフォルトはHTMLであろう。
- サンプルRDはどこかにあるかな。っていうか、ライブラリが全部RDのサンプルかな。
- では =begin をgrepしてみよう。いろいろあるな。
- 試しに、rd2 C:\ruby\lib\ruby\1.8\optparse.rb を実行。おお、HTMLが出てくるね。ではリダイレクトしよう。
- rd2 C:\ruby\lib\ruby\1.8\optparse.rb > sample.html
- ふむふむ。まさにperldoc風味。適当にスタイルシートかませればドキュメント化できる…まてよ、これは私がやりたいこととは違っている。
- やりたかったのはスクリプトそのものをきれいにしたかったのだ。キーワードを太字にしたり、行番号を付加したり、など。
- もしかしたらliterateprogramming.comあたりにあったりして…ないな。ToolsのところにMind Mappingがあるな。びっくり。でもそれは今回は関係なし。
- どこかでRubyの構文解析して色つけしているツールがあったような。どこだっけか…。
- RDEには関連情報はないか。
- 疲れてきたので、もう寝ます。
- の前に、奥村先生の美文書作成入門を見て、こんな感じというものを作った。
\documentclass{jarticle} \title{ } \author{ } \date{ } \usepackage[dvipdfm]{graphicx} \begin{document} \begin{quote} \baselineskip=12pt \sfcode`;=3000 \def\q{\hspace*{1em}} {\bf require} \verb|'pathname'| \\ \\ {\it index} = {\sl Pathname}.new(\verb|"index.html"|) \\ {\it index}.open(\verb|"w"|) {\bf do} $|${\it out\/}$|$ \\ \q {\it out}.puts \verb|"<html><body><ul>"| \\ \q {\sl Pathname}.glob(\verb|"*.html"|).sort.each {\bf do} $|${\it file\/}$|$ \\ \q\q {\bf next} {\bf if} {\it file} $\equiv$ {\it index} \\ \q\q {\it out}.puts \%Q(\verb|<li><a href="#{|{\it file}\verb|}">#{|{\it file}\verb|}</a></li>|) \\ \q {\bf end} \\ \q {\it out}.puts \verb|"</ul></body></html>"| \\ {\bf end} \\ \end{quote} \end{document}
…このように作業手順を書いてみると、私がいかに無駄な動きをばたばたしているかわかるなあ…。
追記:MoonWolfさんからrb2htmlを教えていただきました。これですこれです!ありがとうございます。また、odzさんから「CTANのlgrind」を教えていただきました。なるほどTeXの側から探すという方法もありましたね、感謝です♪