LaTexの環境を整える。

texとか使ったの初めてなので、何か面倒なことをしているような気がします。

インストール

http://d.hatena.ne.jp/hayamiz/20081111/1226403768に書いてあったものをapt-getでインストールした。
(何を入れたらいいのか分からなかったのですごい助かりました)

sudo apt-get install texlive texlive-latex-extra dvipng latex-xft-fonts okumura-clsfiles xdvik-ja dvipsk-ja latex-cjk-japanese latex-cjk-japanese-wadalab jbibtex-bin mendexk xpdf xpdf-japanese gv gs-cjk-resource cmap-adobe-japan1 cmap-adobe-japan2 cmap-adobe-cns1 cmap-adobe-gb1 cmap-adobe-korea1
# rehash

実際に使う

どのように書けばいいのか分からなかったので、何か参考になるものを探す。
http://mytexpert.sourceforge.jp/ここに色々な情報があるみたい。
とりあえず、LaTeXによる論文作成の手引きというpdfをDLしてみた。

試しに何か出力する

\documentclass{jarticle}
\begin{document}
あいうえお.
\end{document}

作成

以下のようにすれば作成できるみたい。

platex <file>.tex 
xdvi <file>.dvi

文字化けした。
nkf文字コードeuc-jpに変更したらうまく表示された。
毎回nkfとか打つのが面倒なのでscriptを書こう。

euc-jpのファイルを作成するようにする。

ruby文字コード処理の方法を忘れてしまったのでgaucheで書く。(調べるのも面倒だったので)

latex.scm
#!/usr/bin/env gosh

(use gauche.charconv)
(use file.util)

(define (euc-file file)
  (receive (dir name ext) (decompose-path file)
    (string-append dir "/" name "-euc" "." ext)))

(define (xfile->euc-jp file output-file)
  (call-with-output-file output-file
    (lambda (out)
      (copy-port (open-input-conversion-port
                  (open-input-file file)
                  "*jp"
                  :to-code "eucjp"
                  :owner? #t)
                 out))))

(define (main args)
  (let1 files (cdr args)
    (dolist (file files)
      (let1 euc-file (euc-file file)
        (when (or (not (file-exists? euc-file))
                  (file-mtime<? euc-file file))
          (xfile->euc-jp file euc-file)
          (sys-system #`"platex ,|euc-file|"))
          (sys-system #`"xdvi ,(path-swap-extension euc-file \"dvi\")"))))
  0)

.zaliasesとか.emacsとか

あとは、作ったscriptを楽に使えるように.zaliaseと.emacsに以下を追加
.alizses

alias tex-ref="xpdf ~/box/ronhyper-3.1.pdf"
alias latex="gosh ~/script/latex.scm"

これで何も考えずに"latex .tex"で出力結果を閲覧できる。

.emacs
とりあえず、現在のファイルの結果がみられればいいや。

(defun latex-current-file (&optional file) (interactive "P")
  (let ((file (or file (buffer-file-name))))
    (call-process-shell-command (concat "~/script/latex.scm " file))))

(add-hook 'latex-mode-hook
	  (lambda ()
	    (define-key latex-mode-map "\C-c\C-@" 'latex-current-file)
	    ))