先日、以下の記事がTLに流れてきた。

読んでみると、自分がよく使うコマンドも「使ってはいけない」コマンドの中にいくつか入ってる・・・。自分の知ってるLaTeXは古いのだなと実感した。

ナウな文法を学ぶにはちょっと時間がかかるし、そもそも現在LaTeXをそれほど必要としてないので、とりあえず、環境でも更新しておくかと、約2年前に書いたメモを見たが、どうやらこのメモの情報も古いことがわかった。

というわけで、新しい環境構築のメモを残しておく。この記事の内容はOS X 10.8.5上で確認したが、10.6以降(10.9を含む)であればだいたいうまくいくと思う(未確認だが少なくとも参考にはなると思う)。

MacTeX

MacTeX-2013をインストールする。

インストール後、/Applications/TeXにインストールされている TeX Live Utility.app を起動しパッケージの更新しておく(これは必須ではないが)。

前の記事では、この後に「Additional Tools for MacTeX/TeXLive 2011」をインストールしたが、これは不要となった。

YaTeX

Emacs 24のパッケージ管理機能はとても便利だが、残念ながらMELPAとMarmaladeにはYaTeXが無かった(もっと調べれば見つかるかもしれない)。自分でインストールする必要があるが、インストール方法は以前の記事と同様なので省略し、設定ファイルだけ載せる。

以下のサイトを参考にした(ほとんどコピペである)。

;;
;; YaTeX
;; http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?YaTeX
;;
(add-to-list 'load-path "~/.emacs.d/elisp/yatex")
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist
      (append '(("\\.tex$" . yatex-mode)
                ("\\.ltx$" . yatex-mode)
                ("\\.cls$" . yatex-mode)
                ("\\.sty$" . yatex-mode)
                ("\\.clo$" . yatex-mode)
                ("\\.bbl$" . yatex-mode)) auto-mode-alist))
(setq YaTeX-inhibit-prefix-letter t)
(setq YaTeX-kanji-code nil)
(setq YaTeX-use-LaTeX2e t)
(setq YaTeX-use-AMS-LaTeX t)
(setq YaTeX-dvipdf-command "/usr/texbin/dvipdfmx")
(setq YaTeX-dvi2-command-ext-alist
      '(("Preview\\|TeXShop\\|TeXworks\\|Skim\\|mupdf\\|xpdf\\|Firefox\\|Adobe" . ".pdf")))
(setq tex-command "/usr/texbin/ptex2pdf -l -ot '-synctex=1'")
(setq bibtex-command (cond ((string-match "uplatex" tex-command) "/usr/texbin/upbibtex")
                           ((string-match "platex" tex-command) "/usr/texbin/pbibtex")
                           ((string-match "lualatex\\|xelatex" tex-command) "/usr/texbin/bibtexu")
                           (t "/usr/texbin/bibtex")))
(setq makeindex-command (cond ((string-match "uplatex" tex-command) "/usr/texbin/mendex")
                              ((string-match "platex" tex-command) "/usr/texbin/mendex")
                              ((string-match "lualatex\\|xelatex" tex-command) "/usr/texbin/texindy")
                              (t "/usr/texbin/makeindex")))
;(setq dvi2-command "/usr/bin/open -a Preview")
;(setq dvi2-command "/usr/bin/open -a TeXShop")
(setq dvi2-command "/usr/bin/open -a Skim")
(setq dviprint-command-format "/usr/bin/open -a \"Adobe Reader\" `echo %s | gsed -e \"s/\\.[^.]*$/\\.pdf/\"`")

(setq yatex-mode-load-hook
  '(lambda()
    (YaTeX-define-begend-key "be" "eqnarray") ; ショートカットキーの変更
    (setq indent-tabs-mode nil)
    (setq YaTeX-environment-indent 2)
   )
)

; 自動改行を無効化する
(add-hook 'yatex-mode-hook
          '(lambda ()
             (auto-fill-mode -1)))

;;
;; RefTeX with YaTeX
;;
;(add-hook 'yatex-mode-hook 'turn-on-reftex)
(add-hook 'yatex-mode-hook
          '(lambda ()
             (reftex-mode 1)
             (define-key reftex-mode-map (concat YaTeX-prefix ">") 'YaTeX-comment-region)
             (define-key reftex-mode-map (concat YaTeX-prefix "<") 'YaTeX-uncomment-region)))

Skim との連携

Skim(PDFビューア)とEmacsとの間を行き来するための設定を行う。

Skimのインストールは公式サイトからDL後、アプリケーションフォルダに入れるだけ。

起動後、環境設定 –> 同期 の「PDF-TeX 同期サポート」の設定で初期値としてEmacsを選択する。
TeX201310-01

次にSkimと連携するためにEmacsの設定を行う。

;;
;; Skim との連携
;;
;; http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Emacs#de8b4fcd
;; inverse search
(require 'server)
(unless (server-running-p) (server-start))

;; forward search
;; http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?YaTeX#f978a43b
(defun skim-forward-search ()
  (interactive)
  (progn
    (process-kill-without-query
     (start-process  
      "displayline"
      nil
      "/Applications/Skim.app/Contents/SharedSupport/displayline"
      (number-to-string (save-restriction
                          (widen)
                          (count-lines (point-min) (point))))
      (expand-file-name
       (concat (file-name-sans-extension (or YaTeX-parent-file
                                             (save-excursion
                                               (YaTeX-visit-main t)
                                               buffer-file-name)))
               ".pdf"))
      buffer-file-name))))

(add-hook 'yatex-mode-hook
          '(lambda ()
             (define-key YaTeX-mode-map (kbd "C-c s") 'skim-forward-search)))

動作確認

Emacs -> Skimは、(「Ctrl+c+t p」プレビューを開いてから)TeXファイル中で「Ctrl+c s」とタイプすることで、カーソルの位置に対応するPDF中の箇所へジャンプすることができる。

Skim -> Emacsは、Command+Shiftを押しながら左クリックすれば、クリックした箇所に対応するTeXファイルの行へジャンプすることができる(EmacsでそのTeXファイルを開いておく必要がある)。

TeXShop

YaTeXを使用せず、専用のTeXエディタを使いたい人にはTeXShopをオススメしたい。TeXShopはMacTeXをインストールすれば /Applications/TeX にインストールされている。上記サイトからDLしてインストールすることもできる。ちなみに、TeXShopの内蔵ビューアはSyncTeXに対応している。

環境設定 –> 書類のエンコーディングをUnicode (UTF-8)にする。
TeX201310-02

環境設定 –> タイプセットのデフォルトコマンドをLaTeX、デフォルトのスクリプトをPdftex、Sync方式をSyncTeXにする。
TeX201310-03

環境設定 –> 内部設定 –> パス設定がデフォルトのままであることを確認する。また同じ画面のpdfTeX –> Texを「pdftex –file-line-error –synctex=1」に、pdfTeX –> Latexを「pdflatex –file-line-error –synctex=1」にする(これらの値もデフォルト値)。
TeX201310-04

以上で、TeXShopの設定は完了。

LaTeXiT

数式エディタであるLaTeXiTを紹介する。公式サイトトップページの画像を見れば何が出来るか一目瞭然だと思うが、これを使えば発表資料の作成が捗ること間違いない。

環境設定 –> プログラム –> コマンドで pdflatexを選択し、pdfLaTeXのパスを「/usr/texbin/pdflatex」にする(デフォルト)。特に引数等を指定する必要は無い。
TeX201310-05

使い方としては、適当な数式を入力後LaTeX it!をクリックするとコンパイルされる。あとはこれを書き出すなり、例えば直接KyenoteのスライドへD&Dして使う。
TeX201310-06


2013/10/23に奥村先生(@h_okumura)の『[改訂第6版] LaTeX2ε美文書作成入門』が出版された。本当はこの本を買って最近のLaTeXの文法や環境構築方法について学ぶのが良いとは思うのだが、最初に書いたようにそれほどLaTeXを使っているわけではないので、あと一歩が出ないw

欲しい物が何でも買えるお金があればいいんだけどねー(しろめ