TB-LAB BLOG

坪川研究室ブログです!適当に更新します!

Mac OS Mmavericks 10.9 に emacs + yatex を導入して爆速で tex を書こう

はじめに

どうも!prune です!
今日はリクエストされた内容に関して記事を書きたいと思います.
リクエスト者はna(ry
この時期は TeX で卒論書く人もいると思います.もちろん最終レポートとかも.
ならいまのうちから楽をしよう!ってことで導入してみましょう. おれ GUI の方がって人は TeXShop とかで書くといいと思います.
今回は Mac の話になってしまうのですが,CentOS とかだともっと簡単に導入できるので調べてやってみるといいと思います.

TeX環境を整える

この記事を記述時の最新版のThe MacTeX-2013をインストールします!
そしてインストールします!どんどん次へをおそう!
やったね!これで君に TeX 環境はそろった!

emacs の導入

次に emacs の導入をします.
まぁいろいろあるのですが Retina 購入時に Retina に対応してた emacs を使いたかったのでここですよね!
僕は最新版の24.3で今回の記事を書きます!
インストールしてきてください.基本的には次へを押せば OK です.
僕は iTurm から emacs を開くことが多いのでパスを通してあげます.詳しく以前の記事で書いてます.ここではなんか僕が個人的に daemon とかの設定をしているので,適当に自分の好みに合わせてください(daemonにしたら起動早いお). 実は以前にクリーンインストールしてから MacTeX は導入していたのですが yatex の設定はしていなかったので今回の記事を書いてる次第であります.

yatex の導入

さぁ,メインディッシュのお時間です.
まずは YaTeX公式サイトから 最新版の1.77を Downloadして来ましょう!
下記のコマンドからでも可能です.

% cd /tmp
% wget http://www.yatex.org/yatex1.77.tar.gz
% tar zxvf yatex1.77.tar.gz
% rm yatex1.77.tar.gz 
% cd yatex1.77/

そして makefile を編集します.

% emacs makefile

 ## CarbonEmacs on Darwin (Sample)
 #EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs
 #PREFIX = /Applications/Emacs.app/Contents/Resources
 #EMACSDIR = ${PREFIX}

ここの部分を変更して下記のようにしています.
アプリ名のEmacs.appは各自の環境に合わせてください.なにも変えて無ければ大丈夫.
心配な人はターミナル開いて移動して見ましょう.移動できれば大丈夫.あるから.

 ## Emacs24 on MacOSX
 EMACS   = /Applications/Emacs.app/Contents/MacOS/Emacs
 PREFIX  = /Applications/Emacs.app/Contents/Resources
 EMACSDIR = ${PREFIX}

本当は .emacs.d 以下に入れたかったのだがここに通した方がいいみたい.
たぶん makefile 読んで必要なもの揃えればいけるけど(例えばinfoフォルダとか)ここが安全だからここで.


Jan 17 追記
肝心な install 作業書いて無かったですwww

% make install
% make info

最後のコマンドのmake info で done が無事に表示されたら成功です. やったね☆


上記で編集した場所に install されているか確認しましょう.

% cd /Applications/Emacs.app/Contents/Resources/site-lisp/

この中に yatex フォルダーがあれば成功です!
そして ~/.emacs.d/init.el/ の中に下記の記述をしてあげましょう.

;; run yatex mode when open .tex file
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
;; yatex load path
(setq load-path (cons (expand-file-name
"/Applications/Emacs.app/Contents/Resources/site-lisp/yatex")
load-path))
;; use utf-8 on yatex mode
(setq YaTeX-kanji-code 4)

一番最後の文字コードの指定は以前書いた記事の通りです.
これはやらなくてもいいけど・・・なんかこれもまた以前の記事で書いたのですが,load path を ~/.emacs.d/以下に通している僕はやはり気にくわない・・・なので下記のように設定しました.

% cd ~/.emacs.d/
% mkdir etc
% cd etc
% ln -a /Applications/Emacs.app/Contents/Resources/site-lisp/yatex ./yatex

そして load path に etc を追加してあげる(これだけ書いてもだめだよ!何回も言うけど前回の記事の関数を定義してね!.

;; load path
(add-to-load-path "elisp" "conf" "public_repos" "yspel")

さて,起動の確認です!なんか init.el でなんか押すとその場で設定反映されるキーがあったけど忘れたw
それ知ってる人はやってください.知らないひとは素直に emacs の再起動をしましょう.もちろん daemon で起動している人は daemon 再起動です.
再起動したらなんか適当に .tex つくって開いてみてください.

% emacs sample.tex

下記のように表示されたら勝ち組ですww

f:id:tb-lab:20131227124917p:plain

おまけ

デフォルトでは C-cyatexキーバインドにわりふられています.一番使うコンパイルC-c t jです.そしてプレビューはC-c t pです.基本的なものはC-c tを押した時点で表示させてくれますので覚える必要ありません.

f:id:tb-lab:20131227125415p:plain

覚えるべきは補完ですねー!それは各自yatex 内の doc 読むなり 調べるなり.
これがおまけではありません!!
C-c t pおすと最初はプレビューする際のコマンドがxdvi -geo +0+0 -s 4になってますよね・・・ これは非常にいやだ.毎回消してopenなんて打ちたくない・・・
やり方は2つあります.僕は後者を取りました.

% cd /Applications/Emacs.app/Contents/Resources/site-lisp/yatex
% sudo chmod 755 yatex.el
% emacs yatex.el
% sudo chmod 444 yatex.el

ここの60行目にxdvi -geo +0+0 -s 4が予め定義されています.なのでこれを消してopenにしてあげましょう.

(defvar dvi2-command        ;previewer command for your site
  (if YaTeX-dos "dviout -wait=0"
    "open")     ;ここね!!
  "*Default previewer command including its option.
This default value is for X window system.")

これで emacs を再起動してみよう. あら不思議...やったね!

もう1つは ~/.emacs.d/init.el に設定してあげましょう.こっちのほうが一般的.

;; preview
(setq dvi2-command "open -a Preview")
(defvar YaTeX-dvi2-command-ext-alist
  '(("xdvi" . ".dvi")
    ("ghostview\\|gv" . ".ps")
    ("acroread\\|pdf\\|Preview\\|open" . ".pdf")))

こっちはファイル名に .pdf もつけてくれます.やったね☆★
えー毎回コンパイルしたらプレビューしないといけないの?って思いますがそんなことはありません・・・ 一度プレビューしたらコンパイルだけすれば自動的に反映されます!

最後に

yatex には様々な機能があります.使えば使うほど倍速・・・ もちろん某Wo(ryよりはやくなります.
ぜひこの機会に利用してみてください.
ちなみに Ubuntu とか CentOS とかは TeXLive だか?いれて yum とか apt-get で yatex 取るだけです.
簡単でしょ?以上 prune でした!