目次 :
(Last modified '02/11)
野鳥で数式モードで補完される数式記号 イメージとギリシャ文字の入力キーと LaTeX コマンドの一覧表を TeX で打ち直 したものを作ってみました.数式環境中で ; [TAB],: [TAB] で出るやつです.詳しくは Info YaTeX (yatexj) と yatexmth.elを参照.
あと,かなり前に作った数式記号一覧表もついでに.当時は秀丸で作ってた.よ く作ったなぁこんな阿呆なの.
例によって無保証です.
Acrobat Reader のダウンロードはこちらから :
(Last modified '03/04/07)
次のような複数のファイルに分割した文書を扱う場合
% This is main.tex
\documentclass{jreport}
\begin{document}
% 分割した各章を読み込む
\input{chapter1}
\input{chapter2}
...
% 参考文献
\bibliographystyle{jplain}
\bibliography{books}
\end{document}
chapter1.tex から reftex 使って他のファイルのラベルを相互参照したい,文 書全体のアウトラインを表示して編集したい, main.tex で載せる books.bib の 文献を参照したい,そして一気にコンパイルしたい,時の設定メモ.
まず, yatex-mode で reftex-mode をオンにする.M-x reftex-mode でもいいけど.
(add-hook 'yatex-mode-hook 'turn-on-reftex) ; with YaTeX mode
親ファイル名を手動で設定する.
(setq TeX-parse-self t) (setq-default TeX-master nil) ;; Set master-file-name manually
上の設定を .emacs で書いておけば *.tex を開くと自動的に reftex-mode がオ ンになって, reftex で相互参照とか使うときに親ファイル名を尋ねてくるので, ファイル名を入力してやる.
とりあえずここまでやっておけば,分割コンパイルする場合でも子ファイルから 全体の相互参照が可能になる. BibTeX 使って文献参照も可.
ただ, BibTeX 使うと都合 4 回ほどコンパイルを繰り返さねばならいので,latexmk を 使って一気にコンパイルする. latexmk は Q and A on YaTeX で紹介されて ます.要 Perl .使う前に RC ファイル ~/.latexmkrc を作って変数設定をする. 詳しくはマニュアル latexmk (1) 参照.下記 ~/.latexmkrc 設定 例では 角藤 版 pTeX を使ってます.
$latex = 'platex'; $latex_silent = 'platex -interaction=batchmode'; $bibtex = 'jbibtex'; $dvips = 'dvipsk'; $dvi_previewer ='start dviout'; # -pv option
Cygwin 使ってれば latexmk.pl を latexmk に名前を変えて,アタマの
#!/path/perl をチェックしといて,パスの通ったところにおいて実行可能フラ
グを立てとけばよし.親ファイルのアタマに %#!latexmk,子ファ
イルなら %#!latexmk main.tex を書いておけば C-c t
j で一発コンパイル.
さらに進んで, local-variable を使って親ファイルを設定する方法.詳細は info (Emacs) File Variales とか (RefTeX) Multifile Documents あたりにあります.まず, yatex-mode で local-variable を有効にする.
;; Enable local-variable
(add-hook 'yatex-mode-hook
'(lambda ()
(setq enable-local-variables t)))
子ファイルであれば,ファイルの末尾に
%%% Local Variables: %%% mode: yatex %%% TeX-master: "main" %%% End:
と書いておく.親ファイルなら %%% TeX-master: t でいいらしい.
local-variable のリセットは M-x normal-mode で行われる.
あと,C-c ) (reftex-reference) , [ efinst] でラベ ルの種類を選択するんだけど, IME をオンにしているといちいち オフにしない といけないので,モードフックで IME コントロールかけて自動的にオフになる ようにしておく.
(add-hook 'reftex-mode-hook
'(lambda ()
(wrap-function-to-control-ime 'reftex-reference t nil)))
以下, reftex-mode 超簡易リファレンス.ちなみに,野鳥でも C-c d (Display Document hierarchy) で各ファイルの階層構造を見れるんだ けど, reftec-toc の方がかなり見やすい.別な話になるが, BibTeX-mode の C-c C-e C-a とか,とてもやってられん.メニューバーを活用すべ し.
| Key | Function | Comment |
|---|---|---|
| C-c = | reftex-toc | Table of Contents を見る. |
| C-c ( | reftex-label | \label を貼る. |
| C-c ) | reftex-reference | \ref :ラベル参照. help:[?] |
| C-c [ | reftex-citation | \cite :文献引用. キーワードは正規表現で検索できる. \bibliography で bib ファイルを予め指定する必要あり. |
| C-c & | reftex-view-crossref | 相互参照先を見る. |
[追記] ('05/01/26) : おまけ.reftex-toc と reftex-citation を実行しているときのスクリーンショット(クリックで拡大).
参考サイト.あとは info RefTeX か…. latexmk は CTAN にあ ります.Ring Server Project で検索 かければ出ます.
(Last modified '05/01/07)
RefTeX citation は非常に強力なのだが,mcomplete-history を使っていると,過去の検索ヒストリに引っ掛かってしまってうまく検索できな いことがある.たとえば,ある人の文献を一覧したくて人名で単純に検索すると き,その名前が含まれているラベルなんかがヒストリに残っていると,ヒストリ 中から mcomplete-history が補完してしまって,望んだ検索ができなかったり する.
そんなわけで,reftec-citation の前後で mcomplete-history の ON/OFF をす るように wrapping してしまえばいい.
(defun my-reftex-cite (&optional no-insert format-key)
(interactive)
(turn-off-mcomplete-mode)
(condition-case var
(reftex-citation no-insert format-key)
(turn-on-mcomplete-mode)
(error var))
(turn-on-mcomplete-mode))
(add-hook 'reftex-mode-hook
'(lambda ()
(define-key reftex-mode-map "\C-c[" 'my-reftex-cite)))
(Last modified '04/01/05)
元ネタ : meadow->dviout ジャンプ
TeX-master を設定していない場合でも動くようにするのと,dviout -1 の実行に shell を使用するのではなく,subprocess で実行するようにした. novecento さん御指摘ありがとうございます.前のバージョンのはこちらに残してあります.
;; http://www.matsusaka-u.ac.jp/~okumura/texfaq/qa/18610.html
;; must typeset tex-source file with -src (source specials) option
(defun dviout-jump-to-line ()
(interactive)
(save-excursion
(save-restriction
(widen)
(let ((word (thing-at-point 'word)))
(beginning-of-line 1)
(let* ((curr-line (+ 1 (count-lines (point-min) (point))))
(dvi-master-file (expand-file-name
(cond
((and (eq major-mode 'yatex-mode)
(fboundp 'YaTeX-get-preview-file-name))
(YaTeX-get-preview-file-name))
((and (boundp 'TeX-master)
(stringp TeX-master))
TeX-master)
(t
(buffer-file-name)))))
(dvi-file (concat
(file-name-sans-extension dvi-master-file) ".dvi"))
(master-file (expand-file-name (buffer-file-name))))
(let ((args (list "-1" dvi-file
(concat "# " (int-to-string curr-line) "/" word
" '" master-file "'"))))
(process-kill-without-query
(apply 'start-process " *preview-jump*" nil "dviout" args)
)
(message (apply 'concat "dviout" args))
))))))
タイプセット時に -src オプションを付けて, dvi file に
source special を埋め込むのを忘れないように. latexmk を使っているのであ
れば,~/.latexmkrc で $latex = 'platex -src'; にしてしまえ
ばよし.
dviout の ヘルプ より.逆に, dviout から Meadow へジャンプする方法.
[Option]-[Setup Parameter]-[Common] を開いて,
src に gnuclientw^s+%d %s を設定.これは
gnuserv 使う場合の設定. dviout でジャンプしたい単語をダブルクリックする
と, Meadow の該当個所にジャンプしてくれる.詳しくは, dviout help の
source specials の項を参照.
(Last modified '03/09/18)
YaTeX の font-lock keywords の追加.\foo 型キーワード(数式 環境中のものか YaTeX が触らないもの)と,括弧関係と改行(\\).
;; Add font-lock keyword
(setq my-YaTeX-font-lock-keywords
'(("\\(\\\\\\(left\\|right\\)\\([][().|]\\|\\\\[{}]\\)\\)"
(0 font-lock-warning-face))
("\\(|\\|&\\|\\\\[{}]\\|\\\\\\\\\\)" (0 font-lock-warning-face))
("\\\\[a-zA-Z]*" (0 font-lock-builtin-face))
))
(add-hook 'yatex-mode-hook
'(lambda ()
(setq
YaTeX-font-lock-keywords
(append YaTeX-font-lock-keywords my-YaTeX-font-lock-keywords))))
font-latex.el も試してみたものの,個人的にはいまひとつだった. 参考 : 野鳥について .
(Last modified '03/09/29)
当方 yatex を使っているのですが,preview-latex が便利そうなので,なんと なくインストールしてみました.でも今から AUCTeX に乗り替えるというのもま た大変な話なので,今後あまり使うことはないような気がする.
下記 Meadow-2.00 Beta2-dev (Emacs 21.1.1) に AUCTeX 11.13 + preview-latex 0.7.8 をインストールした際のメモ.ghostscript 7.04, TeX は 角藤版 pTeX です.The first version known to work with preview-latex is Emacs-21.1 とあるので Meadow2 は preview-latex が動くギリギリのバージョンということになる.
参考:
$ tar xvzf auctex-11.13.tar.gz $ cd auctex-11.13 $ make EMACS=meadow $ make lispdir=/c/Meadow/site-lisp install
これで site-licp 下に auctec/ と tex-site.el がインストールされる.tex-jp.el は make install でコピーされなかったのでコピーしておいた.
$ tar xvzf preview-latex-0.7.8.tar.gz $ cd preview-latex-0.7.8 $ ./configure --with-emacs=meadow \ --with-texmf-dir=/c/bin/tex/share/texmf/ \ --with-tex-site=/c/Meadow/site-lisp/ $ cd .. $ tar xvzf preview-latex-prebuilt-docs-0.7.8.tar.gz $ cd preview-latex-0.7.8 $ make $ make install
--with-texmf-dir で TeX のインストールされているディレクト
リを,--with-tex-site で AUCTeX の tex-site.el
のあるディレクトリを指定する.prebuilt-doc (preview-latex の info)のイン
ストールをおこなう場合は configure 後にファイルを解凍するらしい.インス
トール先が c:/Meadow/2.00b2/share/emacs/site-lisp/preview
とかわけわからんことになってしまったので,
/c/Meadow/site-lisp/preview-latex/ へ移動.configure で
--with-lisp-dir 使っておけばよかったのか.
本当に下記の設定でよいものなのかどうなのか,いまひとつ確信がもてないが, 一応これで動いた.
;; auctex
(setq load-path (cons (expand-file-name
"/c/Meadow/site-lisp/auctex/") load-path))
(require 'tex-site)
(require 'tex-jp)
(setq TeX-default-mode 'japanese-latex-mode)
(setq japanese-TeX-command-default "platex")
ghostscript の設定は configure 前に環境変数 GS="/path/to/GhostScript"とかで指定するというような記述がマニュ アルにあるけど,やってなかった.
;; preview-latex
(load "preview.el" nil t t)
(setq preview-gs-command "/c/bin/gs/gs7.04/bin/gswin32c.exe")
(setq preview-dvips-command
"dvipsk -Pwww -i -E %d -o %m/preview.000")
(setq preview-fast-dvips-command
"dvipsk -Pwww %d -o %m/preview.ps")
最後にスクリーンショットを一枚(クリックで拡大).映ってないけど,トーラス の図の上にマウスポインタがあります.