YaTeX(野鳥)は GNU Emacs / XEmacs の TeX モードです。
#apt-get install yatex
だけで大丈夫です。なお2004-09-10付のパッケージ情報は以下のような感じです。
$ dpkg -s yatex Package: yatex Status: install ok installed Priority: extra Section: tex Installed-Size: 804 Maintainer: INOUE Hiroyuki <dombly@kc4.so-net.ne.jp> Architecture: all Version: 1.71-1 Depends: emacs21 | emacsen Recommends: ptex-bin | ptex-jtex, tetex-bin Suggests: jbibtex, mendexk, jweblint | weblint, mozilla-browser | netscape-browser-477, gimageview Conffiles:
#apt-get install yatex
だけで大丈夫です。2004年02月01日づけのパッケージの内容は下記の通り
$ apt-cache show yatex Package: yatex Section: Applications/Editors/EmacsLisp Installed Size: 1083 Maintainer: KOBAYASHI R. Taizo <tkoba@vinelinux.org> Version: 1.72-0vl1 Pre-Depends: emacsen, emacsen-common (>= 0.4), /bin/sh, /bin/sh, rpmlib(PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames) (<= 3.0.4-1) Depends: /bin/sh Provides: yatex (= 1.72-0vl1) Obsoletes: yatex-xemacs Architecture: noarch Size: 379451 MD5Sum: e0866c19a07e3c6b0c6a5acaaab41e40 Filename: yatex-1.72-0vl1.noarch.rpm Description: 野鳥(YaTeX) - Yet Another TeX mode for Emacs YaTeX(野鳥)とは、EmacsでLaTeXソースを書くときに生ずる手間を軽減 してくれる、LaTeX 入力支援環境です。
さまざまな機能がありますので、まずは少しだけ。
C-c s
C-c b
ヘッダー部分に用途別に追加してみました.テンプレートとしても使えるかもしれません.
%% -*- coding: iso-2022-jp-unix -*- %#!platex -src hogehoge % #!platex -src hogehoge && dviout -1 -Set=!m hogehoge.dvi % #!platex -src hogehoge && xdvi -nopostscript -expert -geo 512x718-0+0 hogehoge.dvi % #!pdfclose --file hogehoge.pdf && platex hogehoge && dvipdfmx hogehoge.dvi && pdfopen --file hogehoge.pdf %#LPR dvipdfmx hogehoge.dvi && acroread /p hogehoge.pdf % #LPR dvipsk hogehoge.dvi | lpr
\documentclass{jsarticle}
\begin{document}
Welcom to YaTeX World!
\end{document}
%%% Local Variables: %%% TeX-master: "hogehoge" %%% End:
pdfでの印刷が多くなってきている!?ようなので,LPRもpdfに対応させてみました.パスの通ったところに,acroread.batというファイル名で以下のスクリプトを保存します.
@echo off REM USAGE: acroread.bat [options] filename "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" %1 %2 %3 %4 %5 %6 &7 %8 %9
あくまで一例です。ぜひ修正、加筆お願いします。
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command "platex")
(setq dvi2-command "xdvi -paper us")
;;; 1=Shift JIS ;;; 2=JIS ;;; 3=EUC ;;; 4=UTF-8 (setq YaTeX-kanji-code 3)
(setq YaTeX-use-LaTeX2e t) (setq YaTeX-use-AMS-LaTeX t)
(add-hook 'yatex-mode-hook
'(lambda () (require 'font-latex)
(font-latex-setup)))
(add-hook 'yatex-mode-hook '(lambda () (reftex-mode t)))
(add-hook 'yatex-mode-hook '(lambda () (auto-fill-mode t) (setq fill-column 70)))
;(setq YaTeX-use-font-lock t)
; section color
;(setq YaTeX-hilit-sectioning-face '(light時のforecolor/backcolor dark時の forecolor/backcolor))
;(setq YaTeX-hilit-sectioning-face '(white/snow3 snow1/snow3))
(add-hook 'yatex-mode-hook
'(lambda () (require 'font-latex)
(font-latex-setup)
(progn
(modify-syntax-entry ?% "<" (syntax-table))
(modify-syntax-entry 10 ">" (syntax-table))
(make-variable-buffer-local 'outline-level)
(setq outline-level 'latex-outline-level)
(make-variable-buffer-local 'outline-regexp)
(setq outline-regexp
(concat "[ \t]*\\\\\\(documentstyle\\|documentclass\\|chapter\\|"
"section\\|subsection\\|subsubsection\\|paragraph\\)"
"\\*?[ \t]*[[{]")
))))
(add-hook 'yatex-mode-hook '(lambda () (outline-minor-mode t))) (setq-default outline-level 'outline-level)
(defun latex-outline-level ()
(save-excursion
(looking-at outline-regexp)
(let ((title (buffer-substring (match-beginning 1) (match-end 1))))
(cond ((equal (substring title 0 4) "docu") 20)
((equal (substring title 0 4) "para") 15)
((equal (substring title 0 4) "chap") 0)
((equal (substring title 0 4) "appe") 0)
(t (length title))))))
(add-hook 'yatex-mode-load-hook
(function
(lambda ()
(YaTeX-define-key "w" 'sdic-describe-word)
(YaTeX-define-key "\C-w" 'YaTeX-switch-mode-menu))))
(setq
YaTeX-math-sign-alist-private
'(
("q" "Q" "(Q)")
("z" "Z" "ZZ")
("t""text""text")
("qu" "quad" "__")
("qq" "qquad" "____")
("ls" "varlimsup" "___\nlim")
("li" "varliminf" "lim\n---")
("il" "varinjlim" "lim\n-->")
("pl" "varprojlim" "lim\n<--")
("st" "text{ s.t. }" "s.t.")
("bigop" "bigoplus" "_\n(+)~")
("bigot" "bigotimes" "_\n(x)\n ~")
))
; dviからpdfを作成する%sはファイル名 (setq dviprint-command-format "dvipdfmx %s")
(setq tex-command "latexmk -dvi")
(setq makeindex-command "mendex")
; ~/.LaTeX-templateは新規ファイル作成時に自動挿入するファイル名 (setq YaTeX-template-file "~/.LaTeX-template")
;;;; YaTeX (野鳥)
;; yatex-mode を起動させる設定
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
;; LaTeX コマンド、プレビューワ、プリンタなどの設定
(setq tex-command "platex"
dvi2-command "dviout -1 -Set=!m"
dviprint-command-format "dvipsk %s | lpr"
YaTeX-kanji-code 1 ; (1 SJIS, 2 JIS, 3 EUC) JIS(junet-unix)だとOS依存せずにコンパイルできる
YaTeX-latex-message-code 'sjis ; 改行に ^M がつかないようにする
section-name "documentclass"
makeindex-command "mendex"
YaTeX-use-AMS-LaTeX t ; AMS-LaTeXを使う
YaTeX-use-LaTeX2e t ; LaTeX2eを使う
YaTeX-use-font-lock t ; 色付け
)
;; 自動改行を無効
(add-hook 'yatex-mode-hook'(lambda ()(setq auto-fill-function nil)))
なぜか,\textbf{...}以外の\textXX{...}のフォント変更がうまく働いていないようなので少々.emacsに追加。ついでに\emph{...}にも対応。
;ここはすでにyatex19.elに記述されてる ;(add-to-list 'YaTeX-hilit-patterns-alist ; '(YaTeX-19-region-section-type "\\\\textbf\\>" bold)) (add-to-list 'YaTeX-hilit-patterns-alist '(YaTeX-19-region-section-type "\\\\textgt\\>" bold)) (add-to-list 'YaTeX-hilit-patterns-alist '(YaTeX-19-region-section-type "\\\\textit\\>" italic)) (add-to-list 'YaTeX-hilit-patterns-alist '(YaTeX-19-region-section-type "\\\\textsl\\>" italic)) (add-to-list 'YaTeX-hilit-patterns-alist '(YaTeX-19-region-section-type "\\\\emph\\>" italic)) (add-to-list 'YaTeX-hilit-patterns-alist '(YaTeX-19-region-section-type "\\\\texttt\\>" tt))
yatexadd.elのYaTeX:includegraphicsの最後を下記のように変更
(if (string= "" str) "[clip]"
(concat "[" str ",clip]")) ;
普段はplatexを使っていても、投稿先のスタイルシートによってはpdflatexを前提としているものがある。TeXソースの先頭行に例えば、
%#!pdflatex
と書いておくと、普段はC-c tjを押下してplatexで処理されていても、この場合だけpdflatexで処理してくれる。
記述例をいくつかあげると、Windowsでは、
%#!platex -src hogehoge && dviout -1 -Set=!m hogehoge.dvi
としたり、Linux/UNIXでは、
%#!platex -src hogehoge && xdvi -nopostscript -expert -geo 512x718-0+0 hogehoge
としたりできます。
通常 YaTeX には EUC-JP, ISO-2022-JP (JISコード), Shift_JIS の3つの文字コード(文字符号化方式)が設定されている(“setq YaTeX-kanji-code” で指定)。Omega などで多言語混在文書を作成する際に有用であると思われるので、YaTeX で Unicode (UTF-8) を扱えるようにする。なお、Emacs で Unicode テキストを扱うには Mule-UCS パッケージが必要である。
yatexlib.elの35行目近辺からの
(defvar YaTeX-kanji-code-alist ...
に他の文字コードについての設定があるので、それに倣って
'(4 . *utf-8*)
を追加する。その下に
(YaTeX-emacs-20...
という分岐(elispは詳しくないのでどなたかわかりやすい表現に直してください)があり、そちらも文字コードの設定がなされているので同様に
'(4 . utf-8-dos); 改行コードは適当に
を追加する。これで文字コードの追加ができた。必要ならばバイトコンパイルする。あとは.emacsファイルなどで
(setq YaTeX-kanji-code 4)
とすればTeX関連のファイルがUTF-8で保存されるようになる。なお、yahtml.elにも同様の設定をおこなうことで、HTMLファイルもUnicodeで作成できる。