2010年10月29日金曜日

[防備録] texの自作マクロの置き場所

防備録です。
UbuntuでTeX環境を整えた場合に、自作の.styファイルを置く場所について。

ただし、platexを使っていることが前提です。

  1. とりあえず、 # mktexlsr してみて、どこに ls-R ファイルが作成されるか確かめる。何箇所かにできてるけど、 /usr/local/teTeX/share/texmf/ls-R にもあることを確認
  2. "ls-Rのあるディレクトリ"/ptex/platex に、自分の作ったマクロファイルと同名のディレクトリを作る。今回は、mymacro.styを作ったので、 /usr/local/teTeX/share/texmf/mymacro/ を作成
  3. 上記ディレクトリにマクロファイルを入れる
  4. # mktexlsr

latexmkで快適PDF作成

TeXを使うとき、一々
  1. platexでコンパイル
  2. dvipdfmxでpdf化
  3. acroreadでプレビュー
という手順を踏んでいて、非常に面倒でした。

特に、jbibtexを使うときなんかは、何回もコンパイルを繰り返さなくてはならず、非常に効率の悪いことをしておりました。

しかし、今日紹介する latexmk を使えば、上記の煩わしさが払拭できます。
つまり、PDFのプレビューまでを、
 $ latexmk -pv -dvi
というコマンド一発で片付けることができます。

僕の場合はUbuntu 10.04でしたが、基本的にUnix系ならいけるかと思います。

必要条件

  • platexが使えること
  • perlが使えること
  • acroreadが使えること(ただし必須ではない)

導入

  • Latexmkの本家サイトから、latexmk-*.zipをダウンロードし、展開
  • latexmk.plを、以下のように編集
    1. $latex = 'latex %O %S'; => $latex = 'platex %O %S';
    2. $bibtex = 'bibtex %O %B'; => $bibtex = 'jbibtex %O %B';
    3. $dvipdf = 'dvipdf %O %S %D'; => $dvipdf = 'dvipdfmx %O %S';
    4. $pdf_mode = 0; => $pdf_mode = 3;
      (0のままだと、pdfは作成せずにdviファイルだけを作成する)
  • 以下のコマンドを実行
    
     # cp latexmk.pl /usr/local/bin/latexmk
     # cp latexmk.1 /usr/local/man/man1/
    

以上の手順により、
 $ latexmk -pv -dvi
でpdfのプレビューまでができるようになります。
上記の -pv オプションを取り払えば、プレビューはなしでpdfの作成までが一気にできます。

僕はYaTeXとEmacsとも連携させるため、 ~/.emacs に以下の記述を追加しました。
;; latexmk
(setq tex-command "latexmk -dvi"
   dvi2-command "acroread")

非常に快適で嬉しいです。

2010年10月3日日曜日

コンパイラのお勉強なう

学校の図書館で『ふつうのコンパイラをつくろう』を読んでいます。

読み始めたばっかりだけど、こういう自分で創り上げていくのを支援してくれる本もかなり好き。

最近自分が本当にやりたいこと(プログラムで)がなかなか無かったけど、言語処理系はちょっと面白いかも。
というか「コンピュータ触ってるな俺!!」って思えるものが好きなのかもしれない。

この本ではJavaを使ってCに程近い言語のコンパイラ(含むアセンブラ、リンカ)をつくるみたいですが、読み終えたら自分では、C++を使ってJavascriptのコンパイラ(インタプリタになるかも。型付け的に考えて。)を作りたいですね。
ブラウザ上じゃなくて、コンソール上でJavascript動いて欲しい。

もしそれをやるなら、実装するJavascriptのサブセットとしては『JavaScript: The Good Parts —「良いパーツ」によるベストプラクティス』から選びたいですね。
それだけでずいぶん実装も楽になるし、綺麗な言語が作れそう。

夢がひろがりんぐww
だけど、本当にできるかは不安。
時間は掛かるだろうけど、こういうことじっくり進めていきたいですね。