YaTeXの使い方

参考サイト

インストール

M-x package-list-packages RET
;; yatex を検索
;; I でマークして、x でインストール

初期設定

  • use-package を使った書き方

(use-package yatex
  :ensure t
  :mode (("\\.tex$" . yatex-mode))
  :bind (("C-c C-t" . YaTeX-typeset-menu))
  :config
  ;; automatically selected according to current language
  ;; (setq YaTeX-japan t)

  ;; change default kanji-code from 2:JIS to 4:UTF-8
  ;; (setq latex-message-kanji-code 4)
  ;; (setq YaTeX-kanji-code 4)
  ;; (setq YaTeX-coding-system 4)

  ;; variables are declared in yatexlib.el
  (setq YaTeX-inhibit-prefix-letter t)
  ;; local dictionary is NOT needed
  (setq YaTeX-nervous nil)

  ;; variables are declared in yatex.el
  (setq tex-command "ptex2pdf -l")
  (setq bibtex-command "pbibtex")
  (setq dvi2-command "open -a Preview")
  (setq tex-pdfview-command "open -a Preview")
  (setq dviprint-command-format "dvipdfmx %s")
  (setq YaTeX-skip-default-reader t)
  (setq YaTeX-simple-messages t)
  ;; (setq YaTeX-template-file "...")
  )

  :mode (("\\.tex$" . yatex-mode))

  • C-c C-t をタイプセットに割り当てた
  • ドキュメントによると (YaTeX-inhibit-prefix-letter t) で割り当てられるはずだが、そうならなかったので追記した

  :bind (("C-c C-t" . YaTeX-typeset-menu))

  • yatex.el で定義されている tex-command 変数を設定する
  • 日本語でタイプセットする場合は ptex2pdf を使う
  • オプションは適宜、好みのを使えばよいと思う
  • ptex2pdf v0.8までは -ot -synctex=1 -file-line-error を付けていた(不要だったみたい)
    • このオプションを付けていた理由は不明、たぶんその時に使っていたTeXShop.appの設定から持ってきたんだと思う
    • v0.9からは、書いちゃダメになった

(setq tex-command "ptex2pdf -l")

  • LaTeXファイル内で上書き可能

%#! CommandLine...

  • dvi2-command はプレビュー用ビューワの設定
  • tex-pdfview-command はPDFビューワの設定
  • とりあえず両方とも Preview.app を使うようにしておく
  • この設定方法は(おそらく)macOS限定

  (setq dvi2-command "open -a Preview")
  (setq tex-pdfview-command "open -a Preview")

使い方

C-c C-t j コンパイル
C-c C-t p プレビュー
C-c C-b SPC \begin{xxx}型の補完(\end{xxx}も自動挿入)
C-c C-s \section{xxx}型の補完
C-c C-m \maketitle型の補完
  • section型コマンド( \コマンド名{ 内容 } の形) を補完する場合は、 YaTeX-make-section を呼び出す
  • ミニバッファに最初の方の文字列を入力、タブを押して表示される候補の一覧からさらに絞り込む
  • デフォルトでは C-c s (or C-c C-s ?)に割り当てられているのだが、Prelude を使っていると crux-swap-window に取られているっぽい
  • 取り返す設定したはずなんだけど、反映されてないので、あとで調べる

M-x YaTeX-make-section

ユーザ辞書

  • ユーザ辞書にないコマンドを入力すると、辞書に登録するかどうか聞かれる
  • 何度も使うようであれば、ユーザ辞書に登録しておけば良いとおもう
  • 辞書の場所は、~/.yatexrc
  • 中身は以下の様にとても分かりやすい形になっている(コメントは後で付けた)
  • 辞書から消去したい場合は、その行を削除すればよい(←他にやり方があるかもしれないが)

(setq user-env-table '(    % begin型
("fmfgraph*")
("fmfgraph")
("fmffile")
("framed")
("itembox")
("pshaded")
("align")
))

(setq user-section-table '(    % section型
("fmfv")
("fmfdot")
("fmf" 2)    % 引数が2つの場合。登録時は、"C-u 2 C-c C-s fmf"と入力した。
("fmflabel" 2)
("fmftop")
("fmfbottom")
("fmfleft")
))

(setq user-fontsize-table '(    % large型
))

(setq user-singlecmd-table '(    % maketitle型
("fmfstraight")
("fmffreeze")
))

Multiple filename arguments, only one can be processed, exiting.

  • 2017/01/03 : YaTeXを使ってタイプセットしたら、見出しのようなエラーがでた
  • fishに ptex2pdf コマンドを打ちこんでも失敗
  • オプションを減らしたら生成できた
  • texliveのオプションが変わったのかな?
  • おそらく セキュリティ周り の変更が原因

Call `ptex2pdf -l -ot -synctex=1 -file-line-error b2pr.tex'
Multiple filename arguments, only one can be processed, exiting.

$ ptex2pdf -v
This is ptex2pdf[.lua] version 0.9.

$ ptex2pdf -l -ot -synctex=1 -file-line-error TEXFILE.tex
Multiple filename arguments, only one can be processed, exiting.

$ ptex2pdf -l TEXFILE.tex    ## オプションを減らすとコンパイルできる
This is ptex2pdf[.lua] version 0.9.
Processing TEXFILE.tex
...
Output written on TEXFILE.dvi (3 pages, 8924 bytes).
Transcript written on TEXFILE.log.
TEXFILE.dvi -> TEXFILE.pdf
[1][2][3]
112242 bytes written
TEXFILE.pdf generated by dvipdfmx.

  • YaTeXの tex-command の部分も修正

;; (setq tex-command "ptex2pdf -l -ot -synctex=1 -file-line-error")
(setq tex-command "ptex2pdf -l")