Ubuntu12.04で自己満足用LaTeX環境構築
LaTeX環境構築の話です。
Linuxだと最初から入ってるもの・入ってないからいれなきゃいけないもの(apt-getできるもの・install-elispできるもの・ソースから落としてビルドするもの)が混在しているためか環境構築はかなり面倒です(面倒でした)。
同じ思いを出来ればしたくはないのでメモとして残しておきます。
基本的には、 Emacsをバリバリ使ってLaTeXで文章をいっぱい書きたい人向けになると思います*1。
動作環境
TeX Live,YaTeXの導入
私は長い間、ずっと最初から装備されてるplatex, dvipdfmxを使っていましたが、実はこれだと一旦EUCに変換しないと日本語が上手く表示されないんですよね。という訳で今まではずっと
#!/bin/sh IFS=, nkf -e "$1.tex" > "$1_euc.tex" platex "$1_euc.tex" dvipdfmx "$1_euc.dvi" evince "$1_euc.pdf"
という内容のshファイルを作ってEmacs Commandlineから実行してました(前時代的ですが実際これで困ることはなかったんです!)。
基本的にはこれでもあまり困らなかったのですが、ファイル分割しようとしたらいちいち全部のファイルを一旦eucに変換しないといけないということに気がついて愕然とし、今まで面倒臭がって入れてこなかったtexliveを入れようと思い立ったわけです。
texlive 2012の導入
導入はTeX wiki Linux/Ubuntuにあるように以下のコマンドを叩くだけでOKみたいです。
$ sudo apt-get install texlive-lang-cjk $ sudo apt-get install xdvik-ja
こちらは普通に入りました(但しめちゃくちゃ重かったですが)。
さて、とりあえずplatex, dvipdfmxでtexファイルをコンパイルしてみます…日本語がutf-8でも表示されたー!
YaTeXの導入
EmacsでLaTeXを書くなら圧倒的にYaTeX(やてふ)が便利でしょう。
私は本家サイトから直接ソースをダウンロードしたんですが、普通に$ sudo apt-get install yatex
で入るようです。まぁみなさんはそうしていただいたらと思います。
細かいことは大体TeX wiki YaTeXに書いてあります。
まずはpdfplatexを作っておく必要があります。
- 以下の内容を記述したpdfplatexファイルを作成します。
- 実行権限を与えます。
- /usr/local/binにコピーします。
# 1. 以下の内容を記述したpdfplatexファイルを作成します。 #!/bin/sh platex -synctex=1 "$1" && \ dvipdfmx -f ptex-ipaex.map "`basename "$1" .tex`" # 2. 実行権限を与えます。 $ chmod +x pdfplatex # 3. /usr/local/binにコピーします。 $ sudo cp -p pdfplatex /usr/local/bin
上が出来たら以下のようにします。
$ sudo apt-get install yatex
するか、本家サイトからリリース版をDLし、フォルダ名をyatexで展開したものを.emacs.d/以下の適当なところに追加し、上のリンクにある通りinit.el(tex wikiのものは1行目のパス設定が(add-to-list 'load-path "~/.emacs.d/site-lisp/yatex")
となっているので注意してください。)に設定を追加します。上の設定が上手く行けば、texファイルを開いたら自動的にYaTeX-modeになると思います。上手く動かなければyatexのフォルダ名、ちゃんと展開されているかどうか、init.elに追加した設定に書かれているパスが正しいかどうかを確認してください。
ついでに導入したやつとか
以下に、ついでに導入したものの導入方法も紹介します。
install-elisp
install-elispはEmacswikiで公開されているelispファイルなどをダウンロードするためのElispプログラムです。 インストール手順は参考文献[2]に従っています。
http://www.emacswiki.org/cgi-bin/wiki/download/install-elisp.elをinstall-elisp.elの名前でパスが通っているところに保存する(私は
~/.emacs.d/elisp
*3以下に色々突っ込むことにしています)。終わりです。これで、
M-x install-elisp [url]
とすることで適当なelファイルを取ってくることができるようになります。やったね!
(require 'install-elisp) (setq install-elisp-repository-directory "[init.elのパス]")
one-key
(one-keyは今回ついでに導入したのでメモとして書いておきますがあまり関係無いので飛ばしても良いと思います)
onekey-originはEmacsでキーバインドを一覧表示・サジェストしてくれる便利ツールです。
Emacsを開き、以下をタイプします。
init.elを開き、以下を追加します。
これで
M-x one-key-mode-
とかで登録されているmodeをチェックしたり、C-o
でキーバインドを一覧表示したりできます。ただ、紹介されているページではショートカットキーの補完まで出来るようなのですが…よく分からなかったです\(^o^)/(よって今回one-keyを導入した意味はあまりなかった…orz)
;; 1. Emacsを開き、以下をタイプします。 M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/one-key.el M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/one-key-config.el ;; 2. init.elを開き、以下を追加します。 (require 'one-key-default) ;; one-key.elも一緒に読み込んでくれるらしい (require 'one-key-config) (one-key-default-setup-keys) (global-set-key (kbd "\C-o") ;; C-oで現在のモードで登録されているキーバインドを一覧表示してくれます
latex-math-preview
latex-math-previewはLaTeXを書いている途中に数式プレビューを式単位でできるという素晴らしいツールです。YaTeXと相性がよいのでついでに導入してしまいましょう。
;; 1. Emacsを開き、以下を実行します。 M-x install-elisp http://www.emacswiki.org/emacs/download/latex-math-preview.el M-x install-elisp http://www.emacswiki.org/emacs/download/latex-math-preview-extra-data.el ;; 2. init.elに以下を追加します。ただし、__latex,dvipng,dvipsのパスを自分で調べて設定してください__。 ;; ;; LaTeX Math Preview ;; ;; YaTeX-modeの状態で M-x latex-math-preview-*** としてプレビューを実行します (autoload 'latex-math-preview-expression "latex-math-preview" nil t) ;; 画面でpngのプレビューをします (autoload 'latex-math-preview-insert-symbol "latex-math-preview" nil t) ;; 挿入したいシンボルを画像で選択できます (autoload 'latex-math-preview-save-image-file "latex-math-preview" nil t) ;; 数式だけを画像ファイルでエクスポートします (autoload 'latex-math-preview-beamer-frame "latex-math-preview" nil t) ;; 式単位でプレビューをします ;; YaTeXする人向けのキーバインド ;; (YaTeX-define-key *** 'hoge) となっているものは C-c *** を表すはず…(?)。 ;; 私の環境だとエラーは出ませんがlatex-math-previewがちゃんと起動してくれません…! (add-hook 'yatex-mode-hook '(lambda () (YaTeX-define-key "p" 'latex-math-preview-expression) (YaTeX-define-key "\C-p" 'latex-math-preview-save-image-file) (YaTeX-define-key "j" 'latex-math-preview-insert-symbol) (YaTeX-define-key "\C-j" 'latex-math-preview-last-symbol-again) (YaTeX-define-key "\C-b" 'latex-math-preview-beamer-frame))) (setq latex-math-preview-in-math-mode-p-func 'YaTeX-in-math-mode-p) ;; latex, dvipng, dvipsのパスを設定します(私の環境ではこうなっていました) (setq latex-math-preview-command-path-alist '( (latex . "/usr/bin/latex") (dvipng . "/usr/bin/dvipng") (dvips . "/usr/bin/dvips")) ) ;; 日本語使う人はこの設定にするとよいらしいです (setq latex-math-preview-tex-to-png-for-preview '(platex dvipng)) (setq latex-math-preview-tex-to-png-for-save '(platex dvipng)) (setq latex-math-preview-tex-to-eps-for-save '(platex dvips-to-eps)) (setq latex-math-preview-beamer-to-png '(platex dvipdfmx gs-to-png)) ;; extra-dataを使うための設定…のはずなんですが、私の環境ではコケるのでコメントアウトしてます><; ;(add-to-list 'latex-math-preview-text-symbol-datasets ; latex-math-preview-textcomp-symbol-data) ;(add-to-list 'latex-math-preview-text-symbol-datasets ; latex-math-preview-pifont-zapf-dingbats-symbol-data) ;(add-to-list 'latex-math-preview-text-symbol-datasets ; latex-math-preview-pifont-symbol-fonts-symbol-data)
コメントにもありますが、何故かショートカットキーで起動できません。それらしいメッセージは出るんですがinsert-symbolの画面や数式プレビュー画面になりません。(本家サイトや他のサイトでも同じコードなので、コード自体に問題があるとは考えにくいですが…)
また、最後のextra-dataを扱うための設定を追加すると_
Warning (initialization): An error occurred while loading `/home/myon/.emacs.d/init.el': Symbol's value as variable is void: latex-math-preview-textcomp-symbol-data
などというエラーが出ます>< 解決法をご存知の方は教えてください!
Xy-picが綺麗に出ない
Xy-picという綺麗な図(矢印、四角など)を書くためのパッケージがあります。とても簡単なので可換図式を書くのに使っていたのですが、斜めの線を引くと線がガタガタになるので悩んでいました。
解像度かそれに類するパラメータがおかしいのかな、と思ったのですがdvipdfmx -r 300
をしても特に何も変わらず…。
しかし今回、platex, dvipdfmxでコンパイルするとこの現象は発生しますが、pdflatexでコンパイルすると線が綺麗に表示できる!ということを発見したので書いておきます。
ただ、pdflatexは日本語が使えない(windowなら出来るという情報もありました。私は試していません)ので、図式の綺麗さと、日本語のどちらかを犠牲にしなくてはいけないようで…>< こちらについてもどなたか知っていれば情報をください!><
mathscrを使えるようにする
最後です。LaTeX上で\mathscrをするとフォントが見つからないのでデフォルトのもので代用しますという警告を解決し、格好いい文字を使えるようにしました。
基本的には花文字を pLaTeX2e 上で利用すると同じです。
ftp://ftp.u-aizu.ac.jp/pub/tex/CTAN/fonts/rsfs/から、 rsfs10.mf, rsfs7.mf, rsfs5.mf, script.mf, scriptu.mf(これは必要なのか不明) をダウンロードし同じフォルダに含めます。
http://www.hpc.cs.ehime-u.ac.jp/~aman/TeX/rsfs/mathrsfs.sty, http://www.hpc.cs.ehime-u.ac.jp/~aman/TeX/rsfs/ursfs.fdをそれぞれダウンロードし上と同じフォルダに含めます。
以下のようにコマンドを叩きます。
作成されたrsfs5.tfm, rsfs7.tfm, rsfs10.tfmを該当の場所にコピーする(私の環境では
/usr/local/texlive/texmf-local/fonts/tfm/
にrsfsディレクトリを作成しその下にコピーしました)。*.mfファイルを該当の場所にコピーする(私の環境では
/usr/local/texlive/texmf-local/fonts/source/
にrsfsディレクトリを作成しその下にコピーしました)。以下のようなtexファイルを作ってコンパイルし、正しく\mathscrが動いていることを確認します。
# 3. 以下のようにコマンドを叩く。 $ mf # と入力する This is METAFONT, Version 2.718 (Web2C 7.2) # ** の状態になれば以下のようにタイプする ** &cm \mode=localfont; input rsfs10 # 上が上手く行ったら同じ事を繰り返す ** &cm \mode=localfont; input rsfs7 ** &cm \mode=localfont; input rsfs5
% 6. 以下のようなtexファイルを作ってコンパイルし、正しく\mathscrが動いていることを確認します。 \documentclass[12pt,a4j]{jarticle} \usepackage{mathrsfs} \begin{document} 花文字 : $\mathscr{ABCDEFGHI}$ \\ $\mathscr{JKLMNOPQR}$ \\ $\mathscr{STUVWXYZ}$ \end{document}
これから
今後環境を変えたり、何かわかったことがあったりすればまた追記しようと思います。
以下に結局未解決のままになってしまった問題点をあげておきます(情報を求めています)。
- one-keyでショートカット補完できない(方法が不明)
- latex-math-previewをショートカットで起動できない方法+extra-dataを扱う方法
- Xy-picでpdflatexじゃないと斜めの線がガタガタになる
こうしてみるとまだまだ問題点があるのでこれではとても環境が整ったとは言えませんが、とりあえずLaTeXをEmacsでガリガリ書くことはある程度は出来るようになったと思います。
今回痛感したのは、やはりElispが書けるかどうかというのは大きいですね…(Elisp書けないのでEmacs弱者です…)。
参考文献
- TeX wiki Linux/Ubuntu - tex live 2012の導入
- TeX wiki YaTeX - YaTeXの導入
- Emacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。 - install-elispの導入
- One-Key - One-Keyの公式配布場所
- [emacs][one-key]Emacs 初心者必見! one-key.el はキーバインドが覚えられない人への特効薬だ - One-Keyの導入
- LaTeX Math Preview - LaTeX Math Previewの公式配布場所
- 花文字を pLaTeX2e 上で利用する - \mathscrを使うために