『野鳥』

Yet Another tex-mode for emacs

// YaTeX //

(C) 1991-2017 by HIROSE, Yuuji [yuuji@yatex.org]


はじめに

野鳥は、GNU Emacs で LaTeX 用の文書を作成する時に pLaTeX などの タイプセットコマンドや、プレヴューアの起動を Emacs 編集画面中から 行えるようにすると共に、拡張性の高い種々の補完機能によりソーステキ ストの編集を支援します。さらに LaTeX コマンドのオンラインヘルプに よりマニュアルを調べる手間を軽減します。

English manual See section `Top' in YaTeX English info.

本マニュアル参照上の注意

本マニュアルでは以下の表記を用います。

主な機能

起動法

野鳥起動のための設定

~/.emacsに下の2項目を加えます。

(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

次に野鳥の emacs-lisp ファイル群を置くディレクトリを load-path に加えます。 たとえば、 `~/src/emacs/yatex'に置くのであれば、

(setq load-path (cons (expand-file-name "~/src/emacs/yatex") load-path))

などとします。

以上の設定により、拡張子が .tex であるファイルを編集すると自動的に野鳥が ロードされます。野鳥が正常に起動できたときはモードラインの表示が「やてふ」 に変わります。

タイプセッタ/プレヴューア環境の設定

利用する外部プログラムに関する以下の変数を確認し、必要なら正しい値に変更 します。

tex-command
... 起動するタイプセッタのコマンド名
dvi2-command
... 起動するプレヴューアのコマンド名
NTT-jTeX
... 改行+インデントによって、タイプセット後の字間が空いてしま うのを抑制する場合にtにする(古いNTT-jTeXで顕著に現れる)。具体的には、 fillするときに各行の終わりに%を付加するようになる。
YaTeX-kanji-code
... 文書を作成する時の漢字コード
dviprint-command-format
... ファイルの印刷に使われるコマンド列の書式
YaTeX-dvipdf-command
... DVIをPDFに変換するコマンド

これらを変更する場合は、やはり`~/.emacs'にて、たとえば

(setq tex-command "pdflatex")

のようにしてください。どのような値をセットすれば良いかについては、 section カスタマイズ変数一覧を参照してください。

latexコマンド起動

LaTeXソースの編集中、次のキー入力により、platex などのタイプセットプログラ ム(以後タイプセッタと呼ぶ)、プレヴューアなどの起動ができます。

[prefix] t j
... タイプセッタ(platex)起動
[prefix] t r
... タイプセッタ起動(領域指定)
[prefix] t e
... 部分タイプセット&プレヴュー (ポイント位置の段落、環境または数式モードのみをタイプセットして 隣のバッファに組版結果の画像を出す)
[prefix] t k
... 動作中のタイプセッタの停止
[prefix] t b
... jbibtex起動
[prefix] t i
... makeindex起動
[prefix] t d
... タイプセット完了後dvipdfmx起動
[prefix] t p
... プレヴューア起動
[prefix] t l
... lpr(プリントアウト用)コマンド起動
[prefix] t s
... xdvi -remote でのサーチ

タイプセッタ起動

タイプセッタを起動すると、編集ウィンドウが2つに分割され、片方のウィンド ウにタイプセット画面が表示されます。出力されるメッセージと連動しタイプセッ トバッファは自動的にスクロールします。もし、途中でエラーが起こって止まって しまった場合にはタイプセットバッファに移り、(C-x o) タイプセッタの出 している ? プロンプトに対して、x (処理の中断)などの指示を送ることが できます。エラーを修正する場合は、

[prefix] '
(prefix+アポストロフィ)
... 直前のエラー発生行へジャンプ

を入力することにより、タイプセッタがエラーを発生した行に移ることができます。 また、タイプセッタの出力する overfull hbox などのウォーニング行にも対応し ていますので、順次 [prefix] ' を押すことにより、一つ前のウォーニング 発生行にジャンプしていきます。

もし、気になるエラー行があった場合は、タイプセットバッファで、エ ラーの表示されている行にカーソルを合わせスペースキーを押すと LaTeX ソースの対応する行にジャンプします。

領域タイプセット

ポイントとマークの間、あるいはテキスト中に埋め込んだ %#BEGIN%#ENDの間の領域(section %#記法)だけを切り取ってタイプセットすることが できます。この場合メインファイルのプリアンブルが一時ファイルの プリアンブルとして使われます。したがってプリアンブルにないマクロ定義が 領域内にあるとエラーになります。領域タイプセットを使う場合、 必ずマクロ定義はプリアンブル(\begin{document}より前)に置くよう にして下さい。一時ファイルはメインファイルのある ディレクトリの`texput.tex'という名前で出力されるので、 上書きには注意してください。

環境タイプセット

[prefix] te を押すと、ポイント位置の最も内側の環境、または数式モー ド内の場合はその数式モード全体、あるいは環境がなければその段落が自動的に 領域選択されて、領域タイプセットを呼び出します。 tabular環境や数式モードで複雑なものを作っている場合は確かめたい部分だけを 確認できるので便利です。Emacsが画像表示可能な場合は、 部分タイプセットの結果を画像化して隣のウィンドウに表示します。また、 特定の環境で呼び出した場合は、環境内の文字を書き換える度に自動的に プレビュー画像を更新します(on-the-flyプレヴュー)。 自動表示されない場合はプレヴューアで `texput.dvi' を開いたままにしておけば修正と確認が素早くできるでしょう。

画像プレヴューの場合の大きさ(解像度)はデフォルトで200dpi(数式は300dpi)です。 dpiを変えたい場合はLaTeXソースのどこかに %#PREVIEWDPI 150 のようにdpi値を書いてください。

プレヴューア起動

[prefix] t p によりプレヴューアの起動ができます。さらに、もしあな たが、-remote 機能つきのxdviを利用している場合は [prefix] t s を押す ことによりカーソル位置の文字列を検索してそのページを表示するようにすでに起 動中のxdviに命令を送ります。これにより、現在編集中の箇所のタイプセット結果 を即座に見ることができます。

プリントアウト

[prefix] t lを押してプリントアウトを指示すると、出力開始/終了ペー ジを聞いてくるので、それぞれに答えます。これを省略したい時は、 universal-argument をつけ、

C-u [prefix] t l
... ページ確認省略lpr起動

のように起動してください。

%#記法

本文中に%#ではじまるキーワードを埋め込むことでタイプセッタ起動等 の制御をすることができます。

タイプセット用コマンド変更

起動するコマンドを変えたい時は本文中に次のような行を書きます。

        %#!jlatex-ntt

NTT jTeX と、ASCII jTeX を使い分けたいような場合に便利でしょう。

入力ファイル分割

また、章毎に別ファイルの .tex を作成している場合で、`main.tex'から `sub.tex'\includeしているような時は、`sub.tex'の任意の 位置に次のような行を埋め込みます。

        %#!platex main.tex

上の例のようにコマンド名だけでなく引数も書いた場合には、全てをそのまま shell に渡すので次のように書けば、ghostview などをプレヴューアに使う時に便 利です。

        %#!platex main && dvi2ps main.dvi > main

なお、この行の最後の単語のピリオド以前を「メインファイル」のベース ネームであると仮定します(上の2つの場合どちらも`main')。 この行に記述した、%fはメインファイル名に、 %r はメインファイルの拡張子を取り除いた部分に置換されます。 ただし、%f,%rを利用した場合、初回タイプセット時に必ずメインファイル 名の入力を促されます。

[prefix] g (section カーソルジャンプ参照) での ファイル間ジャンプを有効に機能させるため、入力ファイル分割時には次のことに 注意して下さい。

  1. サブディレクトリを作って、その中にサブファイルを置くことはできるが サブディレクトリのサブディレクトリには置けない。
  2. メインファイルからサブディレクトリ内のファイルを include する時には、 相対パス指定を用いて、 \include{chap1/sub}のように記述。
  3. メインファイルが一つ上のディレクトリにある場合も、サブファイルには %#!platex main.tex のように記述する(../mainではない)。

領域の固定

[prefix] tr の領域指定のタイプセットでは、とくに指定のないかぎり、 C-SPCでマークした位置と、ポイント(カーソル位置)の間を領域とみなしま すが、必ず決まった領域をタイプセットしたい場合は、その領域を

        %#BEGIN
        <渡したい領域>
        %#END

のように%#BEGIN%#ENDで囲み、カーソルを「%#BEGIN以降」 に置いてください。この時の領域決定規則をまとめると次のようになります。

  1. カーソル位置よりバッファの先頭方向に%#BEGINというキーワードが ある場合
    1. %#BEGINよりバッファの末尾方向に%#ENDというキーワードが見つかっ た場合。 =>%#BEGIN から、その %#END のある位置まで。
    2. %#END が見つからなかった場合。 =>バッファの最後尾まで。
  2. カーソル位置よりバッファの先頭方向に %#BEGIN というキーワードが 見つからなかった場合。 =>マーク(C-SPC位置)とポイント(カーソル位置)の間の領域。

tabular 環境を何度も試行錯誤しているような場合は、\beginの前の行 に %#BEGIN と書き、\end の次の行に %#END と書いておく と簡単に作表結果をテストすることができます。また、長い .tex ファイルの後半 に %#BEGIN を書いておけば、前半の部分は無視できます。このBEGINとEND の消し忘れには十分ご注意下さい。

lprフォーマット

まず、プリントアウト用コマンド列のフォーマットについて説明します。 コマンド列フォーマットは、3つの Lisp 変数によって表現されます。デ フォルトの dvi2ps 用のフォーマットを例に説明します。

(1)dviprint-command-format
"dvi2ps %f %t %s | lpr"
(2)dviprint-from-format
"-f %b"
(3)dviprint-to-format
"-t %e"

実際にプリントアウトする時は、(1)中の %s がファイル名に置き換えられ、%f が (2)の内容、%t が(3)の内容に置き換えられます。その際に(2)の文字列中の %b は 「出力開始ページ」、(3)の文字列中の %e は「出力終了ページ」に置き換えられ ます。もし、ページを指定しない時には、%f, %t 両方とも無視されます。

この、dviprint-command-format を臨時に変えたい時は、LaTeX の ソーステキスト中の任意の場所に、

        %#LPR dvi2ps %f %t %s | 4up -page 4 | texfix | lpr -Plp2

のように書いて下さい。プリントアウトするページ範囲をいちいち聞かせないよう にする時に

        %#LPR dvi2ps %s | lpr

などとするのも便利かもしれません。

その他の起動コマンド制御

LaTeX 文書に関連するコマンドは以下の %# 記法で指定することができます。

@item %#PREVIEW ... Command line for DVI viewing ([prefix] t p) @item %#BIBTEX ... makeindexを行なうコマンドライン([prefix] t b) @item %#MAKEINDEX ... bibtexを行なうコマンドライン([prefix] t i) @item %#DVIPDF ... DVIからPDF変換を行なうコマンドライン([prefix] t d) @item %#LPR ... 印刷用のコマンドライン([prefix] t l) @item %#PDFVIEW ... PDFファイルを見るためのコマンドライン @item %#IMAGEDPI ... 即時プレヴュー(on-the-fly preview)用の画像のDPI

行頭がこれらのキーワードで始まる行をLaTeX文書の先頭付近に書いておけば、 それで指定したコマンドを起動できます。

%#記法自体の編集

以上のような%#で始まる各種制御記法を編集するためには

[prefix] %
... %#記法編集メニュー

を押します。

        !)Edit-%#! B)EGIN-END-region L)Edit-%#LPR

というメニューが出て来るので、%#!に続くコマンドを変更したい時には !を、%#LPRで lpr フォーマットを変えたい時はlを、あらか じめ設定したリジョンを %#BEGIN%#END で括りたい時は、 bを押します。bを選んだ時には、それまでバッファ中に置かれていた %#BEGIN, %#END が自動的に消去されます。

補完入力

LaTeX での環境名などは、野鳥の補完機能を利用して能率的に入力すること ができます。

begin型補完

\begin{env}...\end{env}の様な形式の入力の補完をbegin型補完と 呼ぶことにします。begin 型補完は、

[prefix] b
... begin 型補完開始(標準では C-c b)

で始まります。頻繁に用いられる次の LaTeX 環境の補完は、[prefix] b に続く次の1文字を入力するだけで、\begin{xxx}...\end{xxx}を完成 させます。

[prefix] b c
... \begin{center}...\end{center}
[prefix] b d
... \begin{document}...\end{document}
[prefix] b D
... \begin{description}...\end{description}
[prefix] b e
... \begin{enumerate}...\end{enumerate}
[prefix] b E
... \begin{equation}...\end{equation}
[prefix] b i
... \begin{itemize}...\end{itemize}
[prefix] b l
... \begin{flushleft}...\end{flushleft}
[prefix] b m
... \begin{minipage}...\end{minipage}
[prefix] b t
... \begin{tabbing}...\end{tabbing}
[prefix] b T
... \begin{tabular}...\end{tabular}
[prefix] b ^T
... \begin{table}...\end{table}
[prefix] b p
... \begin{picture}...\end{picture}
[prefix] b q
... \begin{quote}...\end{quote}
[prefix] b Q
... \begin{quotation}...\end{quotation}
[prefix] b r
... \begin{flushright}...\end{flushright}
[prefix] b v
... \begin{verbatim}...\end{verbatim}
[prefix] b V
... \begin{verse}...\end{verse}

上記のもの以外の環境名は Emacs の持つインクリメンタルな補完機能を用いて 入力します(上記の環境名も以下の補完入力可能)。

[prefix] b SPC
... begin 型補完入力

[prefix] b SPC と入力すると、最下行のミニバッファに

        Begin environment(default document):

と表示されます。ここで、何も入れずにリターンキーのみ押すと、括弧内に出てい るデフォルトの環境名が入力されますが、適当な環境名を入力すると、 \begin{環境名} … \end{環境名}が文書中に挿入されます。ミニバッ ファで環境名を入力するときに、環境名の頭文字を入力し「スペース」をたたくと、 一致する環境名が内部テーブルに存在した場合、正しい環境名に補完されるので、 入力の手間が省けます。内部テーブルに存在しない環境名を入力した時はユーザ専 用のテーブルに登録され、さらにそのテーブルを自動的に、ユーザ辞書(デフォル トでは `~/.yatexrc')に保存します。

さらに、特定の環境を補完入力した時にはその環境で必ず用いられるエントリを自 動挿入します(例: itemize環境における\itemなど)。挿入されたエ ントリが不要な場合にはundoによって消去して下さい。

既に書いたテキストを環境で括る

ところで、最初に書いてしまったブロックを後から、itemize 環境の中 に閉じこめたいと思うことがありますが、そのようなときは、あらかじめ 閉じこめたい段落をマークして、begin 型補完の各コマンドの [prefix] の次の『小文字の 'b'』 を『大文字』に変えて起動して下さい。(または、 C-u を先に打ち、universal argument をつけても可能です)

例えばあるパラグラフを description 環境の中に入れたいときは、 そのパラグラフをマークしてから、補完機能を呼び出してください(description 環境の場合は [prefix] b D)。

選択された領域を括ります。ただしこれは transient-mark-mode が t (Emacsの標準)になっている場合のみで、普段 transient-mark-modenil にしている場合は、 補完キー前に universal-argument 指定(C-u) をタイプしてから [prefix] b D など、補完キーを タイプすれば括り補完になります。 なおEmacs22以降であれば transient-mark-mode 無効時も set-mark-command (C-space)の連打で一時的に transient-mark-mode が有効になります。

section型補完

\section{目的} のような形式の入力の補完を section 型補完と呼ぶこ とにします。section 型補完は、

[prefix] s
... section 型補完

で実行します。[prefix] s を入力するとミニバッファに、

        (C-v for view-section) \???{} (default documentclass):

というプロンプトが現れるので、そこで `section' のような LaTeX コマ ンド名を入力します。ここでもリターンキーのみで括弧内のデフォルト値が選択さ れるほか、`chapter'などのような頻度の高い名称入力にはスペースキーによ る補完機能が有効です。 次に、{}の中身の入力を促す、

        \section{???}:

というプロンプトが現れるので、セクションのタイトルなどを入力します。 たとえば、

        (C-v for view-section) \???{} (default documentclass): section
        \section{???}: 目的

のように入力した場合は、文章中に

        \section{目的}

が挿入され、

        (C-v for view-section) \???{} (default section): vspace*
        \vspace*{???}:

のように{}の中身を省略したときは、

        \vspace*{}

だけが挿入され、改行はせずカーソルは自動的に中括弧の内側に移動します。

2個以上の引数をとる section型コマンド

ところで、`\addtolength{\topmargin}{8mm}' などのように、引数を二つ 以上取る LaTeX コマンドがあります。このようなコマンドの補完入力には、 section 型補完呼び出しに引数を付けてください。例えば上の`addtolength' の例であれば、引数2を指定します。つまり、

        C-u 2 [prefix] s   (または、ESC 2 [prefix] s)

と section 型補完を呼び出した後、

        (Ctrl-v for view-section) \???{} (default vspace*): addtolength
        \addtolength{???}: \topmargin
        Argument 2: 8mm

のように入力してください。最初の addtolength の部分と、第一引数である \topmargin の入力は当然スペースによる補完入力が可能です。ユーザ辞書に登録 される LaTeX コマンドには、この引数の数も学習されるので、最初の補完の時 引数の数を指定して起動しておけば、以後の補完時には、記憶された個数だけ引数 を聞いて来るようになります。あとで引数の個数を変えたい時は、再び C-u を用いて個数を指定し直すことで、自動的に辞書中の引数の個数の部分を更新しま す。

既に書いたテキストを括る

また、section型補完機能の呼び出し時に領域選択状態にしておくと 領域内のテキストを section 型コマンドの第一引数として括ります。 これも普段 transient-mark-modenil にしている場合は C-u のあとに補完キーをタイプすれば強制的に括り補完になります。

再帰補完

高度な使い方になるかもしれませんが、section型補完の引数の入力時にさらに 補完入力を利用することができます(section/large/maketitle型に限る)。section 型コマンドの引数に更に LaTeX コマンドが来る場合にはミニバッファで野鳥の 補完キーを再帰的に入力することで引数の入力も効率的に行なえます。

セクション区切りのアウトライン表示

通常のsection型補完の時にミニバッファでC-vを押すと現在存在するセク ション区切りコマンド全てを *Sectioning Lines*というバッファに一覧表 示します(「<<--」のついている行がもっとも近いセクション区切り)。この時ミニ バッファでC-p, C-n を押すと`part', `chapter', ..., `subparagraph' のコマンドが論理階層の高さにしたがって上下します。また、 C-v, M-v を押すとセクション区切り一覧バッファがスクロールし、 数字の07を押すとある高さ以上のセクション区切りだけを選んで表 示します(実際にやって見れば分かります)。

*Sectioning Lines*バッファは、

M-x YaTeX-section-overview
... セクション区切り一覧バッファを生成

で作成することができます。このバッファを選択し任意の行でスペースを押すと、 該当するセクション区切りのある本文中の場所にジャンプします。さらに、同バッ ファで u を押すと、ソーステキストの対応するセクションコマンドが一階 層上がり(例: subsection が section に変わる)、dを押すと一階層下がり ます。*Sectioning Lines*バッファにあるセクション区切りの行をマーク しておいてUを押すとリジョン内のものに対応するソーステキストのセクショ ンコマンドすべてが一階層上がり、Dを押すと下がります。セクション区切 り一覧バッファで利用できるキーコマンドには以下のものがあります。

SPC
... 対応するソース行へジャンプ
.
... 対応するソース行を表示
u
... カーソル位置に対応するセクションコマンドを一階層上げる
d
... カーソル位置に対応するセクションコマンドを一階層下げる
U
... マークしたセクションコマンドを一階層上げる
D
... マークしたセクションコマンドを一階層上げる
0〜6
... レベル n 以下のセクションコマンドを隠して表示

ラベル自動生成

\ref{}\cite{} マクロをsection型補完で入れた場合 参照先となり得るものを全て探してメニューにして選択できます。参照先には \label{}をつけておく必要はありません。もしあれば、そのラベルを 使い、なければその場で参照先に\label{}を作らせてくれます。 ラベル名を考えるのは苦痛に感じるものです。全てのカウンタにラベルを つけるのもたいへんです。もうラベル名に何をつけるか、ラベルをつけるかつけま いか、などということは忘れましょう!

ラベルを打つべき項目の選択の際には、可能性のあるすべてのカウンタが表示され ます。これを「数式のみ」のように種別で絞りたいときは以下のキーコマンドが 利用できます。

@item M-a ... 絞り込みを解除してすべてのカウンタを表示 @item M-c ... キャプションのみを表示 @item M-e ... 番号のつく数式のみを表示 @item M-i ... 番号つき箇条書のみを表示 @item M-s ... セクションのみを表示 @item M-m ... その他のカウンタのみを表示

large型補完

{\large } のような形式の補完を large 型補完と呼ぶことにします。

[prefix] l
... large 型補完開始

がlarge型補完の開始です。[prefix] l を押すと、ミニバッファに

        {\??? } (default large):

と表示されるので、上記のものと同じ要領で補完入力して下さい。補完候補に用意 されているのは、`footnotesize'`huge' のような文字サイズ指定 子と、`bf'`dg'のようなフォント指定子です。

既に書いた文字を括る

また、begin型補完の時と同様、先に書いてしまった一連の文章の文字のサイズ を変えたいと思う時がありますが、そのような時は、サイズや大きさを変えたい文 字の範囲をマークしてからlarge型補完を呼んでください。

maketitle型補完

\maketitle の形式の補完を maketitle 型補完と呼ぶことにします。

[prefix] m
... maketitle 型補完開始

で、maketitle 型補完を開始します。補完の要領は今までのものとまったく同じで す。LaTeX 用のコマンド名が補完候補として用意されています。

随時補完

さて、今まで述べた典型的な LaTeX コマンド形式の補完入力を用いずに、今 入力しようとしている LaTeX コマンドを文書中の任意の位置で随時補完するこ ともできます。LaTeX コマンド(先頭が\で始まる)を入力している途中で、

[prefix] SPC
... 随時補完

を入力すれば、全ての補完候補の中から一致するものが選ばれカーソル位置に挿入 されます。

end補完

現在開いたままの環境名を自動的に検出し、\end{環境名}を挿入しま す。begin 型補完を用いれば環境の閉じ忘れはないのですが、時にはついつい手で \begin{環境名} を入れてしまい、悲しい思いをすることがあります。そ のような時には気にせず続けて文章を入力し、しかるのちに

[prefix] e
... end 補完

とすることで、現在開いている環境名で \end{} が補われます。

アクセント記号補完

欧文のアクセント記号(\`{o}など)を入力する時は、

[prefix] a
... アクセント記号入力

を押すと、ミニバッファに

        1:` 2:' 3:^ 4:" 5:~ 6:= 7:. u v H t c d b

というメニューが出て来るので、数字、または対応する記号/英字を入力 して下さい。すると編集バッファに、

        \`{}

が現われ、カーソルが{}内に位置するので、さらに一文字入力する事で、

        \`{o}

が完成され、カーソルは{}の外に戻ります。

数式記号イメージ補完

主に数式モードで使用される、矢印やΣなどの記号を擬似的に表現するキー入力 で、LaTeX コマンドを入力できます。これは野鳥自身の「数式モード」でのみ 動作します。野鳥はカーソルがTeXの数式環境の中にある時に;や、 :に特殊な機能を持たせます。

さて、例えば、←(leftarrow)をASCII文字だけで表現する場合、一般的には「<-」 のようにしますが、これを利用して、数式記号イメージ入力モードで \leftarrowを入力するには、;(セミコロン)を打ってから<-と 入力します。同様に、長い矢印←-(long-leftarrow) をASCII文字だけで表現する 場合「<--」とするので、\longleftarrowを入力するためには、;<-- と入力します。あるいは無限大記号をASCII文字だけで表現する時は「oo」のよう にすることから、\infty を入力する時は、;ooとキー入力します。

これらの操作をまとめると次のようになります。

INPUT                   入力される LaTeX コマンド
; < -                   \leftarrow
; < - -                 \longleftarrow
; < - - >               \longleftrightarrow
; o                     \circ
; o o                   \infty

いずれの場合も、イメージ入力を行っている途中で望みのものがバッファ に表示されたなら、そこでイメージ入力を止めて次の編集動作に移っても 構いません。

数式環境中で`;'自身を入力するには;;のようにします。イメージ 入力の途中でTABを押すと、それまで入力した文字で始まるもの一覧が表示されま す。ここで目的の LaTeX コマンドまでカーソルを移動し再度TABを押すことで その LaTeX コマンドがバッファに挿入されます。

どのキー入力にどの記号が対応しているか全て知りたい時は、;を押した 直後にTABを押してください。以下の例は、;<と押した後にTABを押したもの です。

KEY             LaTeX sequence          sign
<               \leq                    ≦
<<              \ll                     《
<-              \leftarrow              ←
<=              \Leftarrow              <=

左から[入力キー]、[対応する LaTeX コマンド]、[(擬似)記号図示]、と いう順でメニューが出て来るので、よく使うものを覚えておくと良いでしょ う。ものによってはASCII文字で表現することが困難なので、あまり覚え やすいキー並びではないものがあるでしょうから、そのような場合は \maketitle 型補完で入力するか、以下に述べる対応表の設定を行って単 純なキー並びのものを設定すると良いでしょう。

入力キーと LaTeX コマンド、記号の対応表を個人的に設定したい場合は Emacs-Lisp 変数 YaTeX-math-sign-alist-private に定義してください。 その内容とデフォルトのものを合わせたものが対応表として使用されます(private の方が優先される)。なお、この変数の構造については `yatexmth.el' を参 照してください。

ギリシャ文字補完

もう一つ、数式環境中で:を押すとギリシャ文字入力モードに入ります。 :を押した直後にaを押すと\alphaが、g を押すと \gammaが、などアルファベットに対応したギリシャ文字が挿入されます。 操作方法は;の数式記号補完とまったく同じです。まずは:の直後に TABを押してどのアルファベットにどのギリシャ文字が対応しているか調べてみて ください。

;:を数式環境中で押しているにもかかわらず、イメージ補完が働 かない場合は、C-u ;のように universal-argument をつけてキーを押すこ とにより、強制的にイメージ補完に入ることができます。また、この時にどのよう な状態で数式環境内判定に失敗したかをご連絡下さい。

括弧入力補助

3種類ある括弧 () {} [] の開き括弧を入れたときに閉じ括弧を自動的に入れます。 \ の直後にの [ を入れると行を分けてインデントを揃え、 数式入力に備えます。その他 LaTeX のマクロに応じて括弧の釣合の取れた 状態に導きます。開き括弧そのものを1つだけ入れたいときは C-q で クォート入力するか、[prefix] w m で修正モードをOFFにしてください。

領域選択してから開き括弧を入れるとその領域をその種類の括弧で括ります。

ローカル辞書

補完入力用の候補は三種類の辞書から構成されています。一つは `yatex.el'に組み込まれた「標準辞書」、もう一つはユーザが個人的に常用 するコマンドを保存する「ユーザ辞書」、そしてもうひとつはあるディレクトリで のみ有効なコマンドを保存する「ローカル辞書」です。

補完入力時に新しい単語を入れた場合に、その単語をどの辞書に入れるか聞いて 来ます。

  `foo' is not in table. Register into: U)serDic L)ocalDic N)one D)iscard

というプロンプトに対し、uと答えると「ユーザ辞書」を、lと答える とローカル辞書を更新し、nと答えると辞書ファイルは更新せず現在のEmacs セッションのみ有効な単語とし、dと答えると新たな単語を学習せずに捨て ることになります。

もし、ローカル辞書の機能はいらず、全てユーザ辞書の更新のみでよいと言う場 合には`~/.emacs'などで、

        (setq YaTeX-nervous nil)

として下さい。

コメントアウト

LaTeXの編集には試行錯誤がつきものです。ある部分を一括でコメントアウト したり、コメントを外したりしたいことがあります。

[prefix] >
... リジョンを % でコメントアウト
[prefix] <
... リジョンの % のコメントを外す

は、あらかじめ設定したリジョンに対しての操作、

[prefix] .
... 現在のパラグラフをコメントアウト
[prefix] ,
... 現在のパラグラフのコメントを外す

は、カーソルの位置するパラグラフ全体に対しての操作です。なお、ここでいう 「パラグラフ」は (mark-paragraph) 関数によりマークされる範囲を指し ます(標準設定でESC hにバインドされている)。なお、既に%でコメ ントアウトされているパラグラフに対して繰り返しパラグラフのコメントを使用し た場合の動作は保証しませんので御注意ください。

さて、文章に対してだけでなく、時には\begin, \end 自体に対 してもコメントアウトの操作をしたいときがあります。このようなときは、 \begin{} あるいは \end{} の行にカーソルを合わせ、

[prefix] >
... \begin{}\end{} 全てコメントアウト
[prefix] <
... \begin{}\end{} 全てコメントを外す

とすることで、\begin〜\endで囲まれる環境全てに対してコメント操作し、

[prefix] .
... \begin{}\end{} をコメントアウト
[prefix] ,
... \begin{}\end{} のコメントを外す

は、対応する \begin\end 2行だけを、コメント操作の対象と します。リジョンをコメントアウトしようとして、マークを設定したのちにカーソ ルを移動し[preifx] > を押してもカーソルが \begin{} の上にあ ると\begin{}\end{}モードでコメント機能が働いてしまうの で注意して下さい。

カーソルジャンプ

対応オブジェクトへのジャンプ

文書中のいろいろな場所で

[prefix] g
... 対応するオブジェクトにジャンプ

を押すことにより、カーソル位置のLaTeXコマンドに対応する場所にジャンプ します。対応関係が存在すると解釈されるコマンドには以下のものがあります。

\begin{}\end{} の行で[prefix] gを押すことに より、対応するend/beginの行にジャンプします。もちろん対応するものが ない場合はエラーになります。またこれは、領域固定のための %#BEGIN%#END のペアに対しても同様に動作します。なお、label/refcite/bibitem対応するものが別ファイルにある時は、ジャンプ先となるファ イルがオープンされていなければなりません。See section %#記法. メインの .tex ファイルの \include{chap1} などにカーソルを合わせ、 [prefix] g を押すと、`chap1.tex' にジャンプします。

また、

[prefix] 4 g
... 別ウィンドウで対応オブジェクトにジャンプ

を押すと、対応するオブジェクトへのジャンプを別ウィンドウで行います。ただし、 この機能は begin/end, %#BEGIN/%#END 間のジャンプに対しては (意味がないと思われるので)機能しないので注意してください。

お絵描きツール起動

上記の「画像ファイルの取り込みマクロ」とは、例えば \epsfile{file=foo} のような挿絵取り込みコマンドのことで、この行に カーソルを合わせて[prefix] gを押すとその画像ファイルの元となったファ イルを対応するお絵描きツールを起動してオープンします。起動するツールの判定 は以下のようになされます。

  1. カレント行が変数 YaTeX-processed-file-regexp-alist に定義さ れている正規表現のいずれかとマッチしたら、ファイル名に相当する部分を \\(\\)から抜き出して覚えておく(何番目の\\(\\)かは変数の各リストの cdr 部に 入れておく)。マッチしなければ何もしない。
  2. 行末に、変数 YaTeX-file-processor-alist に登録されているコマンドが 「%コマンド」 のように書いてあれば強制的に「コマンド ファイル名.拡張子」を 起動。
  3. なければ、変数 YaTeX-file-processor-alist の各リストのcdr部に入って いる拡張子を「ファイル名」の後ろに足したファイルが存在するか順次調べて、存 在した場合car部に入っているコマンドを起動する。
  4. 以上どれかにマッチしなければあきらめる。

変数 YaTeX-file-processor-alist と変数 YaTeX-file-processor-alist の設定方法についてはそれぞれの変数につい て describe-variable して説明を読んで下さい。うまく設定すると、画像ファイ ルにかぎらず、任意の形式のファイルを任意のプロセッサで処理するコマンドを簡 単に呼び出すことができます。

メインファイルへのジャンプ

`chap1.tex'のようなサブファイルで、

[prefix] ^
... メインファイルにジャンプ
[prefix] 4 ^
... 別ウィンドウでメインファイルにジャンプ

を押すと、メインファイルの編集バッファに切替えます。もし、メインファイルを オープンしていない場合は、カレントディレクトリから探して自動的にオープンし ます。

環境を単位としたジャンプ

さらに現在の環境を単位として機能するコマンドに以下のものがあります。

M-C-a
... 環境の先頭(\begin)へジャンプ
M-C-e
... 環境の末尾(\end)へジャンプ
M-C-@
... 環境全体をマーク

上記のコマンドは通常の[prefix]キーではなくMETAキーをプリフィク スとして機能するのでご注意下さい。

最後の補完位置へのジャンプ

野鳥は補完入力した位置を常にレジスタ 3に保存しています。 入力途中で如何なるファイルの如何なる位置に行ったとしても、 C-x j 3(jump-to-register)を使って直ちに最後の補完入力位置に戻 ることができます。

変更/削除

既に入力されている LaTeX コマンドの変更/削除のために以下の機能が用意 されています。

[prefix] c
... カーソル位置の LaTeX コマンドの変更
[prefix] k
... カーソル位置の LaTeX コマンドの削除

これらのコマンドは、コマンドを起動する場所によって動作を決定するので注意し て下さい。

LaTeX コマンドの変更

変更したい LaTeX コマンドにカーソルを合わせて [prefix] c を押すとそのコマンドを補完入力などを用いて手軽に変えることができます。 [prefix] c で変更できるコマンドには以下のものがあります。

変えたいsection型コマンドの引数がさらに LaTeX コマンドを含む場合は、 その引数を囲む中括弧の上で [prefix] c を押すことで中のコマンドを変更 対象判定から除外することができます。

LaTeX コマンドの削除

[prefix] k は起動する位置により 次のような動作を行います。

起動位置                        動作
\begin, \endの行                \begin\endペアの削除
%#BEGIN, %#END の行             %#BEGIN,%#ENDペアの削除
section型コマンドの上(中)       section型コマンドの削除
フォント指定括弧の上            フォント指定の削除
括弧の上                        対をなす括弧の削除

\begin, \end および %#BEGIN, %#END を削除する場合、 \begin, \end%#BEGIN, %#END の存在する行は まるごと削除されるので、それらの一行に \begin などを二つ以上連ねて 書かないように注意してください。 上記のものはすべて本文を囲う「容器」を削除するように働きますが、 universal-argument (C-u) を打った後で[prefix] kをタイプすると、 それぞれの「容器」に含まれる「中身」も一気に削除します。以下の例を参考にし て下さい。

        元のテキスト:                   [prefix] k      C-u [prefix] k
        本文\footnote{脚注}です。     本文脚注です。  本文です。
                ↑(カーソル位置)

桁揃え

itemの桁揃え

itemize 環境中にある\itemの項目(文章)が複数行に渡る場合に、項 目の先頭を桁揃えしたい場合には、

M-q
... 桁揃え

によって、その item のインデントの深さに応じて fill されます。なお、古い NTT jTeX を使用している場合には、Lisp 変数NTT-jTeXtにセッ トして下さい。

このとき、変数YaTeX-item-regexpの値(標準では "\\\\item")を 項目指定コマンドの正規表現として検索に使用します。itemize 環境で、独自のコ マンドを定義して項目を列挙している場合(例えば\underlineitem)は、 `~/.emacs' で次のように指定して下さい。

        (setq YaTeX-item-regexp
              "\\(\\\\\\(sub\\)*item\\)\\|\\(\\\\underlineitem\\)")

この変数の指定の仕方がよく分からない場合は、独自の項目列挙コマンドの名前を "\item"で始まるものにして下さい(例えば"\itembf")。

野鳥の M-q では \item を環境に応じて以下のように「ハングイン デント」します。

itemize, enumerate環境:
       >\item[ほげほげ] 英語では、特に意味のない単語を `foo' であらわしま
       >                すが、これの日本語版ともいえる単語が「ほげほげ」
       >                です。
description環境:
       > \item[へろへろ] 「ほげほげ」をでたらめが単語として使った時に、第
       >            2のでたらめな単語として「へろへろ」が使われることが多
       >            いようです。

パラグラフの桁揃え

itemize環境以外でのパラグラフの桁揃え(fill)は、基本的に他のモードと同じ ように機能しますが、verbatim環境や、tabular環境など桁揃えをすると悲惨な状 況になるような環境中では機能しません。また、\verb で括ってあるものは決して 行分割されません(変数 YaTeX-verb-regexp で制御) )。さらに、一時的に インデントの深さを変えてある箇所では、そのインデントの先頭でM-qを押 すことにより fill-prefix をいちいち変更しなくて桁揃えができます。

勝手にincludeonly

ファイルを分割して文章を入力している時には、メインファイル中に

        \includeonly{現在編集中のファイル名}

のように書いておくことで、タイプセットの時間を節約できますが、ちょっと他の ファイルを手直ししたい時には

        \includeonly{ちょっと手直ししたいファイル名}

と書き直さなければならず手間がかかります。野鳥では現在編集しているファイル 名がメインファイルの\includeonlyにない場合には自動的にこれを検出し、 次の指示を仰ぎます。

        A)dd R)eplace %)comment?

現在編集中のファイルを \includeonly のリストに加えたい時にはa を、現在編集中のファイルだけを \includeonly にしたい時はrを、 \includeonly の行をコメントアウトして無効化したい時には、%を それぞれ押して下さい。

ここはどこ?

項目数の多い tabular などをたくさん書いていると下の方の行で、いま書いて いる桁がどこに対応するのかわからなくなってしまうことがあります。例えば、以 下のような tabular において、

        \begin{tabular}{|c|c|c|c|c|c|c|c|}\hline
         氏名&所属&〒&住所&電話&FAX&帰省先&帰省先電話\\ \hline
         矢上二郎 & 6 & 223 & 横浜市港北区日吉 & xxx-yyy &
                zzz-www & トンガ & 9876-54321 \\
         日吉小僧 & 2 & \multicolumn{2}{c|}{教えない}
                &&&(???)
         \\ \hline
        \end{tabular}

(???)の部分がどの項目なのかすぐに判断するのは難しいでしょう。こんな時は、

[prefix] &
... 現在のカラム表示

を押すとカーソル位置のカラムがどの項目に該当するかをミニバッファに表示しま す。tabular/array環境の第1行目を項目名の並びとみなして対応するものを探しま す。もし項目名として別のものを表示して欲しい場合は、行頭を%にしてダ ミーの項目並びを作っておくと良いでしょう。

おまかせ改行

tabular[*], array, itemize, enumerate, tabbing 環境をbegin型補完で入力し た時、または各環境内で

ESC RET
... おまかせ改行

を押すと、その環境に応じた行エントリを次の行に挿入します(begin型補完時に自 動挿入されたエントリが不要な場合は undo によって消去できます)。例えば、 tabular環境では、その環境のカラム数に対応した個数の & に加え、行末 の \\ を入れます。この時それ以前に \hline があればそれも付け 加えます。環境とそれに応じて自動入力するものの対応は以下のようになります。

tabular 環境の例のように、本機能は各環境の一行目の内容を参考にして動作す るので、なるべく二行目以降で呼び出すようにしてください。

もし、その他の環境、例えば foo、に対しておまかせ改行を動作 させたい時は、YaTeX-intelligent-newline-foo という名前の関数を定義 します。定義した関数は、現在の行に改行を挿入した直後の行頭の位置で呼ばれま す。関数 YaTeX-indent-line を呼ぶと現在の環境のネストに応じた深さに インデントされるので、これを呼んでから何かを挿入するようなコードを書くとよ いでしょう。`yatexenv.el'内の関数 YaTeX-intelligent-newline-itemize の定義などを参考にしてください。

先回りusepackage

begin型、section型、maketitle型、いずれかのLaTeX2eマクロを補完入力すると、 そのマクロの利用に外部パッケージを必要とする場合、そのパッケージを 本文中で \usepackage{} しているかどうかを調査し、もししていなければ プリアンブルに対応するパッケージを引数にした \usepackage 文を (確認後に)挿入します。

ただしこの機能が働くためには、パッケージ名とその中で定義されているマクロ 群をalistの形式で変数 YaTeX-package-alist-private に設定しておく必 要があります。

野鳥の動作モード切り替え

[prefix] w
... 野鳥動作モード切り替えメニュー

で野鳥自身の動作を決定する以下のモードを切り替えます。

修正モードは、開き括弧入力時の処理をコントロールし、修正モードONの時は開き 括弧の入力は開き括弧のみの入力になり、修正モードOFFの時は開き括弧の入力だ けで閉じ括弧まで入力します。デフォルト(起動時)の設定はOFFです。

野鳥数式モードは、変数 YaTeX-auto-math-modenil の時の み有効で、このとき;:を押した時(section 数式記号イメージ補完参照)に、 どのようなイメージ補完を機能させるか、通常のキーとして機能させるかを手動で 切り替えます。自動判定が遅いマシンではYaTeX-auto-math-mode nilにセットし、野鳥数式モードを手動で切り替えると良いでしょう。

オンラインヘルプ

使おうとする LaTeX コマンドの用法がよく分からない時は、オンラインヘル プをひきましょう。ヘルプに関するキーには以下のものがあります。

[prefix] ?
... オンラインヘルプ
[prefix] /
... オンラインapropos

オンラインヘルプ

「オンラインヘルプ」は、一般的な LaTeX コマンド(デフォルトでカーソル 位置のコマンド)に対する説明を隣のバッファに表示します。この時参照されるヘ ルプ用ファイルには「グローバルヘルプ」と「プライベートヘルプ」の二種類があ り、前者は LaTeX の標準コマンドの主なものの説明を含むファイルで、変数 YaTeX-help-fileの値で指定されます。このファイルは通常公共の場所(デ フォルトで$EMACSEXECPATH)に置かれ、誰もがその内容を更新できるように 全員に書き込み権が与えられるべきものです。後者は、非標準もしくは個人的なマ クロ定義に関する説明が書かれているファイルで、変数 YaTeX-help-file-privateの値で指定されます。こちらはユーザのホームディ レクトリの下などに置かれます。

オンラインapropos

「オンラインapropos」は GNU Emacs の apropos と同様、ユーザが指定したキー ワードを説明文に含む項目すべてを隣のバッファに表示します。

もし、調べようとしたLaTeXコマンドに対する説明がヘルプファイル中に見つ からなかった場合は、説明文の入力を求めてくるので、可能であれば参考書などを 調べてそのコマンドの説明を入力してください。もし、なにか標準的なコマンドに 対する説明を書いたならばぜひ私までその説明をお送り下さい。次回の配布に含め たいと思います。

インクルード構造ブラウザ

複数のファイルに分割しているドキュメントを書いている場合、

[prefix] d
... インクルード構造ブラウズ

を押すと、そのドキュメントの親ファイルを聞いて来ます。ここで全てのファイル の親となるファイル(デフォルトが示されているので大抵はRETのみ)を入力すると インクルードしている全てのファイルを解析し、インクルード状況を視覚的に表示 します。このバッファでは以下のキー操作が有効です。

n
... 次の行に移動し対応するファイルを隣のバッファに表示
p
... 上の行に移動し対応するファイルを隣のバッファに表示
N
... 同じインクルードレベルの次のファイルに移動
P
... 同じインクルードレベルの前のファイルに移動
j
... 次の行に移動
k
... 上の行に移動
u
... 一代親にあたるファイルに移動
.
... カーソル位置のファイルを隣のバッファに表示
SPC
... 隣のバッファの対応ファイルをスクロールアップ
DEL, b
... 隣のバッファの対応ファイルをスクロールダウン
<
... 隣のバッファの対応ファイルの先頭を表示
>
... 隣のバッファの対応ファイルの末尾を表示
'
... (<>の後で)元の表示位置に戻る
RET, g
... カーソル位置のファイルを隣のバッファでオープン
mouse-2
... RETと同じ(ウィンドウ使用時のみ)
o
... 隣のウィンドウに移動
1
... 他のウィンドウを消す
-
... ブラウズウィンドウを小さくする
+
... ブラウズウィンドウを大きくする
?
... ヘルプ表示
q
... 表示前の状態に戻る

ただし、隣のウィンドウのファイルの内容を表示する機能に関しては、対応する ファイルをクローズしてしまうとうまく働きませんのでご注意ください。

他パッケージとの連携

gmhist

`gmhist.el'`gmhist-mh.el' をロードしている場合、プレヴューコ マンドの入力([prefix] tp])、印刷コマンドの入力([prefix] tl)の 時に独立したヒストリを利用できます。それぞれのプロンプトで、M-p を押 すと直前に利用したコマンド文字列をくり返し呼び出すことができます。

min-out

`min-out.el' (outline-minor-mode) と野鳥を組み合わせて使うこ とももちろん可能です。設定の方法に関しては`yatexm-o.el'をご覧ください。

カスタマイズ

野鳥の動作を制御する種々の変数を独自に設定することにより、補完入 力を起動するキーアサインを変えたり、環境名の補完候補をさらに充実さ せることなどができます。

lisp 変数

例えば prefix キーを C-c 以外のキーにしたい場合は、 YaTeX-prefixに prefix キーにしたいシンボルを定義してください。さら に、「C-c 英字」というキーバインドは独自の関数が割り当ててあるので使 いたくない。このような時は、YaTeX-inhibit-prefix-lettert に設定することにより、C-c 英字…のバインドが全て、対応するC-c C-英字…に変わります(ただし、begin型 large型補完の大文字起動によるリジョ ン指定は可能なままです。これも無効にしたい場合はtではなく 1 にセッ トして下さい。)。

カスタマイズ変数一覧

yatex-mode における次の変数がカスタマイズ可能です。`~/.emacs'setq しておけば、そちらの定義が優先されます。括弧の中はデフォルト値 です。実際に変数の値を変更する場合は M-x describe-variable で 変数の詳細な説明を参照してください。

Variable: YaTeX-prefix
yatex-mode 中のプリフィクスキー (\C-c)

Variable: YaTeX-inhibit-prefix-letter
prefix キーの直後のキーバインドで 英字 のものを C-英字 に変更 (nil)

Variable: YaTeX-fill-prefix
本文を書く時の行頭に挿入する接頭辞すなわち fill-prefix (""(nil))

Variable: YaTeX-user-completion-table
学習したLaTeXコマンド保存ファイル名 ("~/.yatexrc")

Variable: YaTeX-kanji-code
文書を作成する時の漢字コード nil=既存のコードのまま 0=no-conversion 1=Shift JIS, 2=JIS, 3=EUC, 4=UTF-8 (2 (MS-DOSでは1))

Variable: tex-command
LaTeXタイプセッタコマンド名 ("platex")

Variable: dvi2-command
プレヴューアコマンド名 ("xdvi -geo +0+0 -s 4")

Variable: dviprint-command-format
dviファイルの印刷に使われるコマンド式 ("dvi2ps %f %t %s | lpr")

Variable: dviprint-from-format
上の%fに相当する開始ページ指定書式、%b が開始ページ番号に変 わる ("-f %b")

Variable: dviprint-to-format
%t に相当する終了ページ指定書式、%eが終了ページ番号に変わる ("-t %e")

Variable: makeindex-command
makeindexコマンド ("makeindex" (MS-DOSでは"makeind"))

Variable: YaTeX-dvipdf-command
dviをPDFに変換するコマンド ("dvipdfmx")

Variable: YaTeX-on-the-fly-preview-interval
[prefix] t eで環境即時previewをする場合の変換処理までの 無操作時間(秒) (0.9) nil の場合は即時プレヴューをしない。

Variable: YaTeX-on-the-fly-math-preview-engine
[prefix] t eで数式環境を即時previewする時に用いるエンジン (latex-math-previewが利用可能なときは latex-math-preview-expression を呼ぶ 'YaTeX-typeset-environment-by-lmp そうでないときは内蔵関数を呼ぶ 'YaTeX-typeset-environment-by-builtin)

Variable: YaTeX-cmd-gimp
GIMPを起動するコマンド (code{"gimp"})
Variable: YaTeX-cmd-tgif
tgifを起動するコマンド (code{"tgif"})
Variable: YaTeX-cmd-inkscape
Inkscapeを起動するコマンド (code{"inkscape"})
Variable: YaTeX-cmd-dia
Diaを起動するコマンド (code{"dia"})
Variable: YaTeX-cmd-ooo
OpenOffice.orgまたはLibreOfficeを起動するコマンド (code{"soffice"})
Variable: YaTeX-cmd-gs
Ghostscriptを起動するコマンド (code{"gs"})
Variable: YaTeX-cmd-dvips
dvipsを起動するコマンド(環境によってはpdvipsなど) (code{"dvips"})
Variable: YaTeX-cmd-displayline
displaylineを起動するコマンド (code{"/Applications/Skim.app/Contents/SharedSupport/displayline"})
Variable: YaTeX-cmd-edit-ps
PostScriptファイルを編集するコマンド (変数code{"YaTeX-cmd-gimp"}の値)
Variable: YaTeX-cmd-edit-pdf
PDFファイルを編集するコマンド (変数code{"YaTeX-cmd-ooo"}の値)
Variable: YaTeX-cmd-edit-ai
.aiファイルを編集するコマンド (変数code{"YaTeX-cmd-inkscape"}の値)
Variable: YaTeX-cmd-edit-svg
SVGファイルを編集するコマンド (変数code{"YaTeX-cmd-inkscape"}の値)
Variable: YaTeX-cmd-edit-images
その他画像ファイルを編集するコマンド (変数code{"YaTeX-cmd-gimp"}の値)

Variable: YaTeX-need-nonstop
\nonstopmode{}を自動的に付加するか (nil)

Variable: latex-warning-regexp
latexコマンドの出力するウォーニング行の正規表現 ("line.* [0-9]*")

Variable: latex-error-regexp
同じくエラー行の正規表現 ("l\\.[1-9][0-9]*")

Variable: latex-dos-emergency-message
MS-DOS上で動作する latex コマンドが、エラーにより停止するとき出力するメッ セージ ("Emergency stop")

Variable: latex-message-kanji-code
タイプセッタの出力するメッセージの漢字コード.タイプセットバッファ の出力が化ける時は、これを設定する (2, Nemacsでのみ有効)

Variable: NTT-jTeX
古いNTT-jTeX使用時のようにインデントした行の先頭と前の行の (タイプセット後の)字間が空いてしまうのを嫌う場合はtにする (nil)

Variable: YaTeX-item-regexp
itemの桁揃えの時に用いる、itemの正規表現 ("\\\\(sub\\)*item")

Variable: YaTeX-verb-regexp
verbコマンドの正規表現。先頭の\\\\はつけない ("verb\\*?\\|path")

Variable: YaTeX-nervous
ローカル辞書を用いる時 t (t)

Variable: YaTeX-sectioning-regexp
セクション区切り設定コマンドの正規表現 ("\\(part\\|chapter\\*?\\|\\(sub\\)*\\(section\\|paragraph\\)\\*?\\)\\b")

Variable: YaTeX-fill-inhibit-environments
fill を抑止する環境名のリスト ('("tabular" "tabular*" "array" "picture" "eqnarray" "eqnarray*" "equation" "math" "displaymath" "verbatim" "verbatim*"))

Variable: YaTeX-uncomment-once
領域uncommentで行頭の複数の%を全て削除するか (nil)

Variable: YaTeX-close-paren-always
開き括弧の入力で常に閉じ括弧を入力する (t)

Variable: YaTeX-auto-math-mode
数式モードの切り替えを自動的に行う (t)

Variable: YaTeX-math-key-list-private
数式イメージ補完で用いる (プリフィクスキー . 対応補完テーブル) の alist (nil)。補完テーブルの書き方については`yatexmth.el'を参照。

Variable: YaTeX-default-pop-window-height
1画面の時にタイプセットバッファを初めて作成する時の高さ。数値で行数、数字 文字列でEmacsウィンドウに対する百分率 (10)

Variable: YaTeX-help-file
共用ヘルプファイル (`$doc-directory/../../site-lisp/YATEXHLP.jp')

Variable: YaTeX-help-file-private
個人用ヘルプファイル (`"~/YATEXHLP.jp"')

Variable: YaTeX-no-begend-shortcut
[prefix] b ?? のショートカットを使わず、[prefix] b だけで補完 入力に入る (nil)

Variable: YaTeX-hilit-pattern-adjustment-private
正規表現とそれにマッチするものの論理的意味をシンボルであらわしたものの リスト…のリスト。hilit19 を組み込んでいる時のみ有効。 詳しくは (assq 'yatex-mode hilit-patterns-alist) した結果と、変数 YaTeX-hilit-pattern-adjustment-default の値(と場合 によっては hilit19 のドキュメント)を参照せよ。

Variable: YaTeX-sectioning-level
LaTeXのセクション単位宣言コマンドとその論理的高さのalist。

Variable: YaTeX-hierarchy-ignore-heading-regexp
Hierarchy バッファは通常ファイルヘッダとして、LaTeXのセクション宣言コマン ドの引数を検索し、それがなければコメント行を探すが、その際にヘッダとしては 意味を持たないパターンをこの変数に設定する。デフォルトでは RCS ヘッダとモー ド指定行(-*- xxx -*-)が設定されている。

Variable: YaTeX-skip-default-reader
Non-nil に設定するとsection型コマンドの引数入力時、アドイン関数がなければ ミニバッファでの読み込みをせずに入力を完了させる (nil)

Variable: YaTeX-create-file-prefix-g
\includeなどで prefix gした時に、ジャンプ先が存在しないファイ ルであってもオープンする (nil)

Variable: YaTeX-simple-messages
各種補完時のメッセージ出力を簡素化する (nil)

Variable: YaTeX-hilit-sectioning-face
色付けが有効な時の \part の色 ('(yellow/dodgerblue yellow/slateblue))。 リストの第一要素は hilit-background-mode'light の時の、 第二要素は 'dark の時の \chapter の色で、文字色/背景色 のよ うに指定する。

Variable: YaTeX-hilit-sectioning-attenuation-rate
色付けが有効な時の、\subparagraph の色を \chapter の濃度の何 %薄くしたものにするか ('(15 40)) YaTeX-hilit-sectioning-face の項参照。

Variable: YaTeX-use-AMS-LaTeX
AMS-LaTeX を使用する場合は t に設定する (nil)

Variable: YaTeX-use-LaTeX2e
LaTeX2e を使用する場合は t に設定する (t)

Variable: YaTeX-template-file
新規ファイル作成時に自動挿入するファイル名 (~/work/template.tex)

Variable: YaTeX-search-file-from-top-directory
inputするファイルを探すときの基準ディレクトリをmainファイルのあるディレクト リにするか (t)
Variable: YaTeX-use-font-lock
ソースの色づけパッケージとして font-lock を利用するかどうか ((featurep 'font-lock))

Variable: YaTeX-use-hilit19
ソースの色づけパッケージとして hilit19 を利用するかどうか ((featurep 'hilit19))

Variable: YaTeX-use-italic-bold
italic, boldフォントを野鳥が探すかどうか (Emacs20以降ならt) font-lock利用時のみ有効。 ((featurep 'hilit19)

Variable: YaTeX-singlecmd-suffix
全てのmaketitle型コマンドの補完入力直後に挿入する文字列。 "{}" などがお勧め。

Variable: YaTeX-package-alist-private
LaTeX2eのパッケージ名とその中に含まれるマクロのリスト。 適切に設定しておくと本文入力時にマクロを補完入力すると そのマクロに必要なパッケージを usepackage するか自動的に検査してくれる。 していなければ \usepackage を自動追加することもできる。 リストは
   '((パッケージ名1
        (補完タイプ マクロのリスト……)
        (補完タイプ マクロのリスト……))
     (パッケージ名2
        (補完タイプ マクロのリスト……)
        (補完タイプ マクロのリスト……))………)

という形式にする。補完タイプは env, section, maketitle のどれか。 具体例は変数 YaTeX-package-alist-default の値参照。

Variable: YaTeX-tabular-indentation
tabular/array 環境で現在行の先頭位置が表の第Nカラムのときは 標準インデント位置から N*YaTeX-tabular-indentation 桁下げた インデントにする。

Variable: YaTeX-noindent-env-regexp
別の環境内にあっても \begin{} が行頭から始まるべき環境名の正規表現。 verbatim環境などを指定する。

Variable: YaTeX-electric-indent-mode
Emacs 24.4 で導入された改行時の、自動インデントをどうするか。 この値がそのまま electric-indent-local-mode に渡される。 -1でoff。

Variable: YaTeX-ref-default-label-string
\ref{} のラベル補完でラベル未設定のものに自動的に生成する ラベル名の書式。strftime(3)関数に似た日付ベースで指定する。 利用できる書式は以下のとおり。 %y -> 西暦下二桁, %b -> 月の英名, %m -> 月(1〜12) %d -> 日, %H -> 時, %M -> 分, %S -> 秒, %qx -> アルファベットで26進数化した yymmdd. %qX -> アルファベットで26進数化した HHMMSS. デフォルトは "%H%M%S_%d%b%y"

Variable: YaTeX-ref-generate-label-function
\ref{}のラベル名自動生成のときに使う関数のシンボル。 デフォルトは標準の YaTeX::ref-generate-label 関数が割り当ててある。 引数を2つ取る関数を定義して、この変数にセットするとその関数を呼んだ 結果をデフォルトのラベル名候補とする。設定例:
  (setq YaTeX-ref-generate-label-function 'my-yatex-generate-label)
  (defun my-yatex-generate-label (command value)
    (and (string= command "caption")
         (re-search-backward "\\\\begin{\\(figure\\|table\\)}" nil t)
         (setq command (match-string 1)))
    (let ((alist '(("chapter" . "chap")
                   ("section" . "sec")
                   ("subsection" . "subsec")
                   ("figure" . "fig")
                   ("table" . "tbl"))))
      (if (setq command (cdr (assoc command alist)))
          (concat command ":" value)
        (YaTeX::ref-generate-label nil nil))))

カスタマイズ変数設定例

たとえば、prefix キーとしてESCを使用し、新たな補完候補を格納するファ イルを、`~/src/emacs/yatexrc' にし、行頭の prefix をタブ文字一つに変 えたいときは、

        (setq YaTeX-prefix "\e"
              YaTeX-user-completion-table "~/src/emacs/yatexrc"
              YaTeX-fill-prefix "       ")

`~/.emacs' に加えます。

hook変数

また、hook 変数 yatex-mode-hook, yatex-mode-load-hook を用 意しています。すべての yatex-mode のバッファで作用させたいものは、 yatex-mode-hook に記述し、`yatex.el' をロードする時だけ作用さ せたいものはyatex-mode-load-hook に記述します。例えば、 outline-minor-mode を利用する場合、それぞれのバッファで outline-minor-mode を有効にしたいので、yatex-mode-hook を次 のように設定します。

        (setq yatex-mode-hook
              '(lambda () (outline-minor-mode t)))

逆に、独自のキー定義を行いたい時などは、yatex-mode-load-hook を利用 します。例えば、begin 型補完において、 document や、enumerate 以外の環境名 もショートカットキーで入れたいなどという時は、次のようにします。以下の例は、 [prefix] ba\begin{abstract}, \end{abstract} を 挿入します。

        (setq yatex-mode-load-hook
              '(lambda() (YaTeX-define-begend-key "ba" "abstract")))

なお、新たなキーの定義には、関数 YaTeX-define-key YaTeX-define-begend-keyを利用するようにしてください。

hook用ファイル

変数 yatex-mode-load-hook で定義する内容が多い時は、 `yatexhks.el'というファイルを作り、その中に野鳥関連の設定を書く事で、 初期化の時に自動的にロードします。

付加関数(アドイン関数)

各種補完時に、環境名やコマンド名に応じたきめ細やかな補完入力機能を実現す るための関数を作成することができます。この関数の作成方法や、組み込み方法に 関しては、yatexadd.doc をご覧ください。

その他

野鳥の標準の LaTeX コマンドの辞書には、作者が頻繁に使うものしか登録さ れていません。これは、補完候補に使いそうもないコマンドが存在して、補完した いコマンドを出すまでのストローク数を増やしてしまう事を防止するためです。標 準辞書にないコマンドも、できるだけ補完入力方式を利用し、ユーザ辞書を充実さ せることで、あなたの LaTeX スタイルにあった野鳥へと育っていくことでしょ う。

取り扱い

本プログラムはフリーソフトウェアです。本プログラムを使用して生じたいかな る結果に対しても作者は責任を負わないこととします。転載等に関しては制限いた しません。常識的に扱ってください。また、本プログラムに含まれるコードを利用 すること、改造することも自由に行なって構いませんが、流用することにより契約 締結の必要が生じる場合、私はいかなる契約も締結しません。具体的にはGPLへの サインはしませんので、GNUに寄贈するものを作っている場合私の作品から取り込 んだコードを流用すると苦労するかもしれません。いかなるコード流用も拒否しま せんが契約締結は辞退します。

苦情、希望、バグ報告、感想等は歓迎いたします。 連絡は yuuji@yatex.org まで(2017年9月現在)。 継続的に使用してくださる方はメイリングリスト「fj野鳥の会」に 是非加入してください。加入方法については本パッケージの `docs/qanda' ファイルの「その他」の章を御覧ください。

仕様は、予告なく確実に(気分次第で)変更されます:-p。

広瀬雄二

索引

Jump to: % - & - . - : - ; - a - b - c - d - e - g - h - i - j - l - m - n - p - s - t - y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

%

  • %#記法自体の編集[%#きほうしたいのへんしゆう]
  • %#BEGIN
  • %#END
  • &

  • &入力[&にゆうりよく]
  • .

  • .emacs
  • .yatexrc
  • :

  • :
  • ;

  • ;自身[;ししん]
  • ;
  • a

  • apropos
  • auto-mode-alist
  • autoload
  • b

  • begin型補完[beginかたほかん]
  • c

  • C-c
  • d

  • Demacs
  • dvi2-command
  • dviprint-command-format
  • dviprint-from-format
  • dviprint-to-format
  • e

  • end補完[endほかん]
  • g

  • ghostview
  • gmhist
  • h

  • hook変数[hookへんすう]
  • i

  • itemなどの桁揃え[itemなとのけたそろえ]
  • includeonly
  • Install
  • j

  • jlatex
  • l

  • lprふぉーまっと[lprふおおまつと]
  • lprフォーマット[lprふおおまつと]
  • large型補完[largeかたほかん]
  • lprフォーマットの変更[lprふおおまつとのへんこう]
  • LaTeX
  • latex-dos-emergency-message
  • latex-error-regexp
  • latex-message-kanji-code
  • latex-warning-regexp
  • leftarrow
  • lpr format
  • m

  • maketitle型補完[maketitleかたほかん]
  • M-C-@
  • M-C-a
  • M-C-e
  • M-q
  • makeindex-command
  • min-out
  • Mule
  • n

  • NTT-jTeX
  • p

  • prefixキー変更[prefixきいへんこう]
  • platex
  • prefix &
  • prefix ,
  • prefix .
  • prefix /
  • prefix <
  • prefix >
  • prefix ?
  • prefix a
  • prefix b
  • prefix c
  • prefix d
  • prefix e
  • prefix g
  • prefix i
  • prefix k
  • prefix key
  • prefix l
  • prefix m
  • prefix s
  • prefix SPC
  • prefix w
  • s

  • section型補完[sectionかたほかん]
  • t

  • tex-command
  • y

  • YaTeX-auto-math-mode
  • YaTeX-close-paren-always
  • YaTeX-cmd-dia
  • YaTeX-cmd-displayline
  • YaTeX-cmd-dvips
  • YaTeX-cmd-edit-ai
  • YaTeX-cmd-edit-images
  • YaTeX-cmd-edit-pdf
  • YaTeX-cmd-edit-ps
  • YaTeX-cmd-edit-svg
  • YaTeX-cmd-gimp
  • YaTeX-cmd-gs
  • YaTeX-cmd-inkscape
  • YaTeX-cmd-ooo
  • YaTeX-cmd-tgif
  • YaTeX-create-file-prefix-g
  • YaTeX-default-pop-window-height
  • YaTeX-dvipdf-command
  • YaTeX-electric-indent-mode
  • YaTeX-fill-inhibit-environments
  • YaTeX-fill-prefix
  • YaTeX-help-file, YaTeX-help-file
  • YaTeX-help-file-private, YaTeX-help-file-private
  • YaTeX-hierarchy-ignore-heading-regexp
  • YaTeX-hilit-pattern-adjustment-private
  • YaTeX-hilit-sectioning-attenuation-rate
  • YaTeX-hilit-sectioning-face
  • YaTeX-inhibit-prefix-letter
  • YaTeX-item-regexp, YaTeX-item-regexp
  • YaTeX-kanji-code
  • YaTeX-math-key-list-private
  • YaTeX-math-sign-alist-private
  • yatex-mode-hook
  • yatex-mode-load-hook
  • YaTeX-need-nonstop
  • YaTeX-nervous, YaTeX-nervous
  • YaTeX-no-begend-shortcut
  • YaTeX-noindent-env-regexp
  • YaTeX-on-the-fly-math-preview-engine
  • YaTeX-on-the-fly-preview-interval
  • YaTeX-package-alist-private
  • YaTeX-prefix
  • YaTeX-ref-default-label-string
  • YaTeX-ref-generate-label-function
  • YaTeX-search-file-from-top-directory
  • YaTeX-sectioning-level
  • YaTeX-sectioning-regexp
  • YaTeX-simple-messages
  • YaTeX-singlecmd-suffix
  • YaTeX-skip-default-reader
  • YaTeX-tabular-indentation
  • YaTeX-template-file
  • YaTeX-uncomment-once
  • YaTeX-use-AMS-LaTeX
  • YaTeX-use-font-lock
  • YaTeX-use-hilit19
  • YaTeX-use-italic-bold
  • YaTeX-use-LaTeX2e
  • YaTeX-user-completion-table
  • YaTeX-verb-regexp
  • アウトライン[あうとらいん]
  • アクセント記号補完[あくせんときこうほかん]
  • インクルード構造[いんくるうとこうそう]
  • インストール[いんすとおる]
  • イメージ補完[いめえしほかん]
  • エラー修正[えらあしゆうせい]
  • NTT-jTeX[えぬていいていいしえいてつく]
  • お絵描きツール起動[おえかきつうるきとう]
  • オンラインヘルプ[おんらいんへるふ]
  • 欧文[おうふん]
  • おまかせ改行[おまかせかいきよう]
  • 環境の末尾へ[かんきようのまつひへ]
  • 勝手にincludeonly[かつてにincludeonly]
  • 環境名の変更[かんきようめいのへんこう]
  • カスタマイズ変数一覧[かすたまいすへんすういちらん]
  • 環境の先頭へ[かんきようのせんとうへ]
  • 環境の削除[かんきようのさくしよ]
  • 括弧入力補助[かつこにゆうりよくほしよ]
  • カーソルジャンプ[かあそるしやんふ]
  • 環境名の補完[かんきようめいのほかん]
  • 環境をマーク[かんきようをまあく]
  • カスタマイズ[かすたまいす]
  • 起動するコマンドを変える[きとうするこまんとをかえる]
  • キーワード検索[きいわあとけんさく]
  • ギリシャ文字補完[きりしやもしほかん]
  • キーアサイン[きいあさいん]
  • 括る[くくる], 括る[くくる]
  • グローバルヘルプ[くろおはるへるふ]
  • 現在のカラム表示[けんさいのからむひようし]
  • 桁揃え[けたそろえ]
  • コマンドヒストリ[こまんとひすとり]
  • ここはどこ?[ここはとこ?]
  • コメントアウト[こめんとあうと]
  • 固定領域のタイプセット[こていりよういきのたいふせつと]
  • 先回りusepackage[さきまわり]
  • 再帰補完[さいきほかん]
  • Σ[しくま]
  • ジャンプ[しやんふ]
  • 出力開始ページ[しゆつりよくかいしへえし]
  • 出力終了ページ[しゆつりよくしゆうりようへえし]
  • 随時補完[すいしほかん]
  • 数式モード[すうしきもおと]
  • 数式記号イメージ補完[すうしききこういめえしほかん]
  • セクション区切り一覧バッファ[せくしよんくきりいちらんはつふあ]
  • 設定例[せつていれい]
  • セクション区切り[せくしよんくきり]
  • その他のコマンド制御[そのたのこまんとせいきよ]
  • タイプセッタ[たいふせつた]
  • タイプセットエラー[たいふせつとえらあ]
  • タイプセッタ起動[たいふせつたきとう]
  • 他パッケージとの連携[たはつけえしとのれんけい]
  • タイプセッタの使い分け[たいふせつたのつかいわけ]
  • 閉じ込める[としこめる]
  • 長いファイルの編集[なかいふあいるのへんしゆう]
  • 入力ファイル分割[にゆうりよくふあいるふんかつ]
  • パラグラフの桁揃え[はらくらふのけたそろえ]
  • 引数の個数を変える[ひきすうのこすうをかえる]
  • ヒストリ[ひすとり]
  • 引数[ひきすう]
  • 複雑なtabular[ふくさつなtabular]
  • プレヴューア[ふれひゆうあ]
  • ブロック[ふろつく]
  • フォント指定子[ふおんとしていし]
  • プライベートヘルプ[ふらいへえとへるふ]
  • プリントアウト[ふりんとあうと]
  • ページ確認省略lpr起動[へえしかくにんしようりやくlprきとう]
  • 変更/削除[へんこう/さくしよ]
  • 他のファイルの手直し[ほかのふあいるのてなおし]
  • ∞[むけんたい]
  • モード切り替え[もうときりかえ]
  • 文字サイズ指定子[もしさいすしていし]
  • やちょう[やちよう]
  • 矢印[やしるし]
  • ユーザ辞書[ゆうさししよ]
  • ラベル自動生成[らへるしとうせいせい]
  • 領域決定規則[りよういきけつていきそく]
  • 論理階層[ろんりかいそう]
  • ローカル辞書[ろおかるししよ]

  • This document was generated on 10 September 2017 using the texi2html translator version 1.52.