Diary over Finite Fields

515ひかるの日記と雑文

比較的まともな YaTeX のインストール方法

YaTeX という Emacs というエディタのプラグインがあるんだけど, YaTeX のインストール方法で調べると古い情報が出てきたりするので, 少なくとも古くはない Emacs のパッケージ管理と, YaTeX の設定 Tips みたいなものをまとめておきます.

一応 Emacs を操作したことはあり, ~/.emacs.d/init.el になんか書くと設定できるんでしょ, ってことくらいは知っている人を想定して書いているつもりです.

用意するもの

  • Windows ユーザーのかた

ごめんなさい全くわかりません. もしやりたい方がいれば頑張ってください.

  • Mac or Linux ユーザーのかた

なるべく新しい Emacs を用意しましょう, それ以外に特に必要なものはありません. 最低でも ver.24.3 は確保したほうが無難かと思います. Terminal 上で起動するのか, GUI 版を起動するのかはお任せします.

Terminal 版なら, emacs --version のコマンドで, GUI 版でも起動すれば普通に version 番号はまぁわかります.

やること

YaTeX のインストール方法

YaTeX というプラグインに限らずですが, Emacs のプラグインは MELPA というリポジトリがあり, そこからダウンロードするのが基本です.

melpa.org

でそこからインストール / アップデート / アンインストールなどを比較的簡単に行えるようにするツールが, package.el です. パッケージ管理ツールですね. Mac だとたとえば Homebrew, Ubuntu だと apt, CentOS だと yum とかの Emacs 特化版だと思ってくれればよいです. なのでまずはこれを設定します.

これを設定するメリットは, YaTeX 以外のプラグインを使いたくなった時に, あるいは YaTeX を使うのをやめるときも簡単に, 同様の方法で, Emacs でプラグインの管理ができるからです. 積極的に利用しましょう.

package.el の設定

まずは何がなんでも package.el を設定します. ~/.emacs.d/init.el に次を記入:

;;; Package.el config
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

これを書くことにより, MELPA リポジトリからプラグインをダウンロードすることができます.

実際に YaTeX をインストールしましょう. ここではコマンドを叩かず, init.el に直接書いてインストールします.

次の記述は, こちらの記事を参考にさせていただきました.

takezoe.hatenablog.com

  (unless (package-installed-p 'yatex)
    (package-refresh-contents) (package-install 'yatex)))

これは, 要するに「YaTeX がまだインストールされていなければインストールをしろ」 という指令です. これを関数化すると, 次のようにしてインストールすることもできます(関数化すると多数のプラグインに同じことをかかなくて済むので便利です).

;;;
;; Package install function
;;; 
(defun yet-installed-packeage-install (package-name)
  "まだインストールしていない package であればインストールし, そうでなければ何もしないだけの関数"
  (unless (package-installed-p package-name)
    (package-refresh-contents) (package-install package-name)))
;; Install
(yet-installed-package-install 'yatex)

この状態で, M-x eval-buffer をすると, インストールされていないプラグインはインストールされるはずです.

' があったりなかったりするのは '遅延評価' に関係するみたいなんですがよくわかっていません. よくわかっていないのでなんとも言えません.

やりようは他にも, M-x package-list-packages して選ぶなどありますが, ここでは紹介しません.

YaTeX プラグインの設定

最低限の設定をしましょう と言っても人によって最低限が異なるとは思いますが……僕なりの最低限は:

  • 文字コードが utf-8
  • .tex, .sty ファイルを開くときに YaTeX モードで立ち上がる.
  • タイプセット, プレビューコマンドを Emacs から叩ける.

でしょうか. なのでそのふたつのみ設定します.

(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist
      (append '(("\\.tex$" . yatex-mode)
        ("\\.ltx$" . yatex-mode)
        ("\\.sty$" . yatex-mode)) auto-mode-alist))
;; set YaTeX coding system
(setq YaTeX-kanji-code 4) ; UTF-8 の設定
(add-hook 'yatex-mode-hook
      '(lambda ()
         (setq YaTeX-use-AMS-LaTeX t) ; align で数式モードになる
         (setq YaTeX-use-hilit19 nil
           YateX-use-font-lock t)
         (setq tex-command "em-latexmk.sh") ; typeset command
         (setq dvi2-command "evince") ; preview command
         (setq tex-pdfview-command "xdg-open"))) ; preview command

一部最低限ではないものも混じっていますが, まぁコメントアウトのとおりです.

tex-command は, 多くの人が (u)platex などを使うのではないでしょうか. tex-pdfview-command は Mac だとなんなんだろ…open とか Preview.app とかですかね. Linux の人は gnome-open とか xdg-open とか evince とかまぁお好きなものを.

こんな風に設定したら, あとは YaTeX の機能を駆使して書くだけです.

補足: YaTeX の拡張

たとえば ;6 と入力すると {\partial} が出たりする数式イメージ補完なんですが, これは実は拡張することができます.

(setq YaTeX-math-sign-alist-private
 '(("Q" "mathbb{Q}" "(Q)")
   ("ZZ" "mathbb{Z}" "ZZ")
   ("R" "mathbb{R}" "R")
   ("C" "mathbb{C}" "C")
   ("N" "mathbb{N}" "N")
   ("Z>0" "mathbb{Z}_{>0}" "Z>0")
   ("|/" "\mid \hspace{-.67em}/" "|/")
   ("F" "mathbb{F}" "F")
   ("Fp" "mathbb{F}_p" "F_p")
   ("Fq" "mathbb{F}_q" "F_q"))

とかやると, YaTeX の数式モード中に ;ZZ と打つと {\mathbb{Z}} とできます. わりあてたいコマンドがあれば, このリストに入力すればO.K. 他にも, YaTeX はいろいろと拡張できます.

マニュアルにカスタマイズ変数の一覧が載っていたりします.

Yet Another tex-mode for Emacs

最近は GitHub などに dotfiles として .emacs.d.vimrc といった設定ファイルを公開している人も増えていますので, そういうのを読んで勉強するのもいいかもしれませんね.私も公開しようかしら……迷い中.

昔はパスワードを直に書いていたので公開できなかったのだけど, もうそれもしていないし公開してもかまわないなぁとは思っているのですが, まぁそのうち気が向いたら.