--- The Detailed Node Listing ---
latexコマンド起動
%#記法
補完入力
section型補完
カーソルジャンプ
変更/削除
カスタマイズ
lisp 変数
野鳥は、GNU Emacs で LaTeX 用の文書を作成する時に jLaTeX などの タイプセットコマンドや、プレヴューアの起動を Emacs 編集画面中から 行えるようにすると共に、拡張性の高い種々の補完機能によりソーステキ ストの編集を支援します。さらに LaTeX コマンドのオンラインヘルプに よりマニュアルを調べる手間を軽減します。
Japanese manual See Top (YaTeX Japanese info).
本マニュアルでは以下の表記を用います。
\begin{環境} 〜 \end{環境}
という形式のLaTeXコマンドを指します。
begin型コマンドを補完入力することをbegin型補完と呼びます。
\section{タイトル}
や\mbox{内容}
のように
引数を取るLaTeXコマンドを指します。
\maketitle
や\tableofcontents
のように引数を取らないLaTeXコマ
ンドを指します。
{\large ...}
や {\tt ...}
のようなフォント/サイズ指定子
を指します。
野鳥の機能を呼び出すためのプリフィクスキー。デフォルトではC-cに割り 当てられているので、特に変更していない場合本マニュアルの [prefix] と いう表記は、C-c と読み換えてください。
\begin{}, \end{}, \section...
などの LaTeX
コマンドの補完入力
(C-c b, C-c s, C-c l, C-c m)
\begin
<->\end
間、
\ref
<->\label
間、
\cite
<->\bibitem
ジャンプ(C-c g)
~/.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
YaTeX-kanji-code
dviprint-command-format
makeindex-command
これらを変更する場合は、やはり~/.emacsにて、たとえば
(setq tex-command "bigjlatex")
のようにしてください。どのような値をセットすれば良いかについては、 All customizable variablesを参照してください。
LaTeXソースの編集中、次のキー入力により、jlatex などのタイプセットプログラ ム(以後タイプセッタと呼ぶ)、プレヴューアなどの起動ができます。
タイプセッタを起動すると、編集ウィンドウが2つに分割され、片方のウィンド ウにタイプセット画面が表示されます。出力されるメッセージと連動しタイプセッ トバッファは自動的にスクロールします。もし、途中でエラーが起こって止まって しまった場合にはタイプセットバッファに移り、(C-x o) タイプセッタの出 している ? プロンプトに対して、x (処理の中断)などの指示を送ることが できます。エラーを修正する場合は、
を入力することにより、タイプセッタがエラーを発生した行に移ることができます。 また、タイプセッタの出力する overfull hbox などのウォーニング行にも対応し ていますので、順次 [prefix] ' を押すことにより、一つ前のウォーニング 発生行にジャンプしていきます。
もし、気になるエラー行があった場合は、タイプセットバッファで、エ ラーの表示されている行にカーソルを合わせスペースキーを押すと LaTeX ソースの対応する行にジャンプします。
ポイントとマークの間、あるいはテキスト中に埋め込んだ %#BEGIN
と
%#END
の間の領域(percent#notation)だけを切り取ってタイプセットすることが
できます。この場合の documentstyle は、単一ファイルの LaTeX ソースの編
集時にはそのファイルの documentstyle が、別ファイルから include している場
合にはメインファイルの documentstyle が自動的に選択されます。指定領域は、
メインファイルのあるディレクトリのtexput.texという臨時ファイルに出
力されますので、上書きには注意してください。
[prefix] t p によりプレヴューアの起動ができます。さらに、もしあな
たが、-remote 機能つきのxdviを利用している場合は [prefix] t s を押す
ことによりカーソル位置の文字列を検索してそのページを表示するようにすでに起
動中のxdviに命令を送ります。これにより、現在編集中の箇所のタイプセット結果
を即座に見ることができます。なお、-remote 機能付きの xdvi は
ftp://ftp.ae.keio.ac.jp/pub/text/xdvi/xdvi-remote
などから入手することができます。
[prefix] t lを押してプリントアウトを指示すると、出力開始/終了ペー ジを聞いてくるので、それぞれに答えます。これを省略したい時は、 universal-argument をつけ、
本文中に %#
ではじまるキーワードを埋め込むことでタイプセッタ起動等
の制御をすることができます。
起動するコマンドを変えたい時は本文中に次のような行を書きます。
%#!jlatex-ntt
NTT jTeX と、ASCII jTeX を使い分けたいような場合に便利でしょう。
また、章毎に別ファイルの .tex を作成している場合で、main.texから
sub.texを \include
しているような時は、sub.texの任意の
位置に次のような行を埋め込みます。
%#!jlatex main.tex
上の例のようにコマンド名だけでなく引数も書いた場合には、全てをそのまま shell に渡すので次のように書けば、ghostview などをプレヴューアに使う時に便 利です。
%#!jlatex main ; dvi2ps main.dvi > main
なお、この行の最後の単語のピリオド以前を「メインファイル」のベース ネームであると仮定します(上の2つの場合どちらもmain)。
[prefix] g (Cursor jump参照) での ファイル間ジャンプを有効に機能させるため、入力ファイル分割時には次のことに 注意して下さい。
\include{chap1/sub}
のように記述。
[prefix] tr の領域指定のタイプセットでは、とくに指定のないかぎり、 C-SPCでマークした位置と、ポイント(カーソル位置)の間を領域とみなしま すが、必ず決まった領域をタイプセットしたい場合は、その領域を
%#BEGIN <渡したい領域> %#END
のように%#BEGIN
と%#END
で囲み、カーソルを「%#BEGIN
以降」
に置いてください。この時の領域決定規則をまとめると次のようになります。
%#BEGIN
というキーワードが
ある場合
%#BEGIN
よりバッファの末尾方向に%#END
というキーワードが見つかっ
た場合。
=>%#BEGIN
から、その %#END
のある位置まで。
%#END
が見つからなかった場合。
=>バッファの最後尾まで。
%#BEGIN
というキーワードが
見つからなかった場合。
=>マーク(C-SPC位置)とポイント(カーソル位置)の間の領域。
tabular 環境を何度も試行錯誤しているような場合は、\begin
の前の行
に %#BEGIN
と書き、\end
の次の行に %#END
と書いておく
と簡単に作表結果をテストすることができます。また、長い .tex ファイルの後半
に %#BEGIN
を書いておけば、前半の部分は無視できます。このBEGINとEND
の消し忘れには十分ご注意下さい。
まず、プリントアウト用コマンド列のフォーマットについて説明します。 コマンド列フォーマットは、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
などとするのも便利かもしれません。
%#
記法編集メニュー
を押します。
!)Edit-%#! B)EGIN-END-region L)Edit-%#LPR
というメニューが出て来るので、%#!
に続くコマンドを変更したい時には
!を、%#LPR
で lpr フォーマットを変えたい時はlを、あらか
じめ設定したリジョンを %#BEGIN
〜 %#END
で括りたい時は、
bを押します。bを選んだ時には、それまでバッファ中に置かれていた
%#BEGIN
, %#END
が自動的に消去されます。
LaTeX での環境名などは、野鳥の補完機能を利用して能率的に入力すること ができます。
\begin{env}...\end{env}
の様な形式の入力の補完をbegin型補完と
呼ぶことにします。begin 型補完は、
で始まります。頻繁に用いられる次の LaTeX 環境の補完は、[prefix] b
に続く次の1文字を入力するだけで、\begin{xxx}...\end{xxx}
を完成
させます。
\begin{center}...\end{center}
\begin{document}...\end{document}
\begin{description}...\end{description}
\begin{enumerate}...\end{enumerate}
\begin{equation}...\end{equation}
\begin{itemize}...\end{itemize}
\begin{flushleft}...\end{flushleft}
\begin{minipage}...\end{minipage}
\begin{tabbing}...\end{tabbing}
\begin{tabular}...\end{tabular}
\begin{table}...\end{table}
\begin{picture}...\end{picture}
\begin{quote}...\end{quote}
\begin{quotation}...\end{quotation}
\begin{flushright}...\end{flushright}
\begin{verbatim}...\end{verbatim}
\begin{verse}...\end{verse}
上記のもの以外の環境名は Emacs の持つインクリメンタルな補完機能を用いて 入力します(上記の環境名も以下の補完入力可能)。
[prefix] b <SPC> と入力すると、最下行のミニバッファに
Begin environment(default document):
と表示されます。ここで、何も入れずにリターンキーのみ押すと、括弧内に出てい
るデフォルトの環境名が入力されますが、適当な環境名を入力すると、
\begin{環境名} … \end{環境名}
が文書中に挿入されます。ミニバッ
ファで環境名を入力するときに、環境名の頭文字を入力し「スペース」をたたくと、
一致する環境名が内部テーブルに存在した場合、正しい環境名に補完されるので、
入力の手間が省けます。内部テーブルに存在しない環境名を入力した時はユーザ専
用のテーブルに登録され、さらにそのテーブルを自動的に、ユーザ辞書(デフォル
トでは ~/.yatexrc)に保存します。
さらに、特定の環境を補完入力した時にはその環境で必ず用いられるエントリを自
動挿入します(例: itemize
環境における\item
など)。挿入されたエ
ントリが不要な場合にはundoによって消去して下さい。
ところで、最初に書いてしまったブロックを後から、itemize 環境の中 に閉じこめたいと思うことがありますが、そのようなときは、あらかじめ 閉じこめたい段落をマークして、begin 型補完の各コマンドの [prefix] の次の『小文字の 'b'』 を『大文字』に変えて起動して下さい。(または、 C-u を先に打ち、universal argument をつけても可能です) 例えばあるパラグラフを description 環境の中に入れたいときは、 そのパラグラフをマークしてから、
とタイプしてください。これは、[prefix] b SPCの補完入力にもあてはまり、 b を大文字に変えて、[prefix] B SPC とタイプすれば、あらかじめ マークしておいたリジョンを、begin と end の環境で括ります。
\section{目的}
のような形式の入力の補完を section 型補完と呼ぶこ
とにします。section 型補完は、
で実行します。[prefix] s を入力するとミニバッファに、
(C-v for view-section) \???{} (default documentstyle):
というプロンプトが現れるので、そこで section のような LaTeX コマ ンド名を入力します。ここでもリターンキーのみで括弧内のデフォルト値が選択さ れるほか、chapterなどのような頻度の高い名称入力にはスペースキーによ る補完機能が有効です。 次に、{}の中身の入力を促す、
\section{???}:
というプロンプトが現れるので、セクションのタイトルなどを入力します。 たとえば、
(C-v for view-section) \???{} (default documentstyle): section \section{???}: 目的
のように入力した場合は、文章中に
\section{目的}
が挿入され、
(C-v for view-section) \???{} (default section): vspace* \vspace*{???}:
のように{}の中身を省略したときは、
\vspace*{}
だけが挿入され、改行はせずカーソルは自動的に中括弧の内側に移動します。
ところで、\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 を用いて個数を指定し直すことで、自動的に辞書中の引数の個数の部分を更新しま す。
また、起動コマンドのsを大文字に変えて起動すると、あらかじめ書 いた文章を section 型コマンドの第一引数として括ります。
高度な使い方になるかもしれませんが、section型補完の引数の入力時にさらに 補完入力を利用することができます(section/large/maketitle型に限る)。section 型コマンドの引数に更に LaTeX コマンドが来る場合にはミニバッファで野鳥の 補完キーを再帰的に入力することで引数の入力も効率的に行なえます。
通常のsection型補完の時にミニバッファでC-vを押すと現在存在するセク
ション区切りコマンド全てを *Sectioning Lines*
というバッファに一覧表
示します(「<<–」のついている行がもっとも近いセクション区切り)。この時ミニ
バッファでC-p, C-n を押すとpart, chapter, ...,
subparagraph のコマンドが論理階層の高さにしたがって上下します。また、
C-v, M-v を押すとセクション区切り一覧バッファがスクロールし、
数字の0〜7を押すとある高さ以上のセクション区切りだけを選んで表
示します(実際にやって見れば分かります)。
*Sectioning Lines*
バッファは、
で作成することができます。このバッファを選択し任意の行でスペースを押すと、
該当するセクション区切りのある本文中の場所にジャンプします。さらに、同バッ
ファで u を押すと、ソーステキストの対応するセクションコマンドが一階
層上がり(例: subsection が section に変わる)、dを押すと一階層下がり
ます。*Sectioning Lines*
バッファにあるセクション区切りの行をマーク
しておいてUを押すとリジョン内のものに対応するソーステキストのセクショ
ンコマンドすべてが一階層上がり、Dを押すと下がります。セクション区切
り一覧バッファで利用できるキーコマンドには以下のものがあります。
{\large }
のような形式の補完を large 型補完と呼ぶことにします。
がlarge型補完の開始です。[prefix] l を押すと、ミニバッファに
{\??? } (default large):
と表示されるので、上記のものと同じ要領で補完入力して下さい。補完候補に用意 されているのは、footnotesize や huge のような文字サイズ指定 子と、bfやdgのようなフォント指定子です。
また、begin型補完の時と同様、先に書いてしまった一連の文章の文字のサイズ を変えたいと思う時がありますが、そのような時は、サイズや大きさを変えたい文 字の範囲をマークしてから、呼び出しキーを [prefix] L と、大文字の L に変えて呼び出せば、そのリジョン全体が、ブレースで囲まれます。
\maketitle
の形式の補完を maketitle 型補完と呼ぶことにします。
で、maketitle 型補完を開始します。補完の要領は今までのものとまったく同じで す。LaTeX 用のコマンド名が補完候補として用意されています。
さて、今まで述べた典型的な LaTeX コマンド形式の補完入力を用いずに、今 入力しようとしている LaTeX コマンドを文書中の任意の位置で随時補完するこ ともできます。LaTeX コマンド(先頭が\で始まる)を入力している途中で、
を入力すれば、全ての補完候補の中から一致するものが選ばれカーソル位置に挿入 されます。
現在開いたままの環境名を自動的に検出し、\end{環境名}
を挿入しま
す。begin 型補完を用いれば環境の閉じ忘れはないのですが、時にはついつい手で
\begin{環境名}
を入れてしまい、悲しい思いをすることがあります。そ
のような時には気にせず続けて文章を入力し、しかるのちに
とすることで、現在開いている環境名で \end{} が補われます。
を押すと、ミニバッファに
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 をつけてキーを押すこ とにより、強制的にイメージ補完に入ることができます。また、この時にどのよう な状態で数式環境内判定に失敗したかをご連絡下さい。
補完入力用の候補は三種類の辞書から構成されています。一つは 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の編集には試行錯誤がつきものです。ある部分を一括でコメントアウト したり、コメントを外したりしたいことがあります。
は、あらかじめ設定したリジョンに対しての操作、
は、カーソルの位置するパラグラフ全体に対しての操作です。なお、ここでいう
「パラグラフ」は (mark-paragraph
) 関数によりマークされる範囲を指し
ます(標準設定でESC hにバインドされている)。なお、既に%
でコメ
ントアウトされているパラグラフに対して繰り返しパラグラフのコメントを使用し
た場合の動作は保証しませんので御注意ください。
さて、文章に対してだけでなく、時には\begin
, \end
自体に対
してもコメントアウトの操作をしたいときがあります。このようなときは、
\begin{}
あるいは \end{}
の行にカーソルを合わせ、
\begin{}
〜\end{}
全てコメントアウト
\begin{}
〜\end{}
全てコメントを外す
とすることで、\begin〜\end
で囲まれる環境全てに対してコメント操作し、
\begin{}
と \end{}
をコメントアウト
\begin{}
と \end{}
のコメントを外す
は、対応する \begin
と \end
2行だけを、コメント操作の対象と
します。リジョンをコメントアウトしようとして、マークを設定したのちにカーソ
ルを移動し[preifx] > を押してもカーソルが \begin{}
の上にあ
ると\begin{}
〜\end{}
モードでコメント機能が働いてしまうの
で注意して下さい。
文書中のいろいろな場所で
を押すことにより、カーソル位置のLaTeXコマンドに対応する場所にジャンプ します。対応関係が存在すると解釈されるコマンドには以下のものがあります。
\begin{}
←→ \end{}
%#BEGIN
←→ %#END
\label{}
←→ \ref{}
\include(\input)
→ 対応するファイル
\bibitem{}
←→ \cite{}
\begin{}
か \end{}
の行で[prefix] gを押すことに
より、対応するend/begin
の行にジャンプします。もちろん対応するものが
ない場合はエラーになります。またこれは、領域固定のための %#BEGIN
と
%#END
のペアに対しても同様に動作します。なお、label/ref
や
cite/bibitem
対応するものが別ファイルにある時は、ジャンプ先となるファ
イルがオープンされていなければなりません。See percent#notation.
メインの .tex ファイルの \include{chap1}
などにカーソルを合わせ、
[prefix] g を押すと、chap1.tex にジャンプします。
また、
を押すと、対応するオブジェクトへのジャンプを別ウィンドウで行います。ただし、
この機能は begin/end
, %#BEGIN/%#END
間のジャンプに対しては
(意味がないと思われるので)機能しないので注意してください。
上記の「画像ファイルの取り込みマクロ」とは、例えば
\epsfile{file=foo}
のような挿絵取り込みコマンドのことで、この行に
カーソルを合わせて[prefix] gを押すとその画像ファイルの元となったファ
イルを対応するお絵描きツールを起動してオープンします。起動するツールの判定
は以下のようになされます。
YaTeX-processed-file-regexp-alist
に定義さ
れている正規表現のいずれかとマッチしたら、ファイル名に相当する部分を
\\(\\)から抜き出して覚えておく(何番目の\\(\\)かは変数の各リストの cdr 部に
入れておく)。マッチしなければ何もしない。
YaTeX-file-processor-alist
に登録されているコマンドが
「%コマンド」 のように書いてあれば強制的に「コマンド ファイル名.拡張子」を
起動。
YaTeX-file-processor-alist
の各リストのcdr部に入って
いる拡張子を「ファイル名」の後ろに足したファイルが存在するか順次調べて、存
在した場合car部に入っているコマンドを起動する。
変数 YaTeX-file-processor-alist
と変数
YaTeX-file-processor-alist
の設定方法についてはそれぞれの変数につい
て describe-variable して説明を読んで下さい。うまく設定すると、画像ファイ
ルにかぎらず、任意の形式のファイルを任意のプロセッサで処理するコマンドを簡
単に呼び出すことができます。
chap1.texのようなサブファイルで、
を押すと、メインファイルの編集バッファに切替えます。もし、メインファイルを オープンしていない場合は、カレントディレクトリから探して自動的にオープンし ます。
さらに現在の環境を単位として機能するコマンドに以下のものがあります。
\begin
)へジャンプ
\end
)へジャンプ
上記のコマンドは通常の[prefix]キーではなくMETAキーをプリフィク スとして機能するのでご注意下さい。
野鳥は補完入力した位置を常にレジスタ 3
に保存しています。
入力途中で如何なるファイルの如何なる位置に行ったとしても、
C-x j 3(jump-to-register
)を使って直ちに最後の補完入力位置に戻
ることができます。
既に入力されている LaTeX コマンドの変更/削除のために以下の機能が用意 されています。
これらのコマンドは、コマンドを起動する場所によって動作を決定するので注意し て下さい。
変更したい LaTeX コマンドにカーソルを合わせて [prefix] c を押すとそのコマンドを補完入力などを用いて手軽に変えることができます。 [prefix] c で変更できるコマンドには以下のものがあります。
begin/end
の環境名
変えたいsection型コマンドの引数がさらに LaTeX コマンドを含む場合は、 その引数を囲む中括弧の上で [prefix] c を押すことで中のコマンドを変更 対象判定から除外することができます。
[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{脚注}です。 本文脚注です。 本文です。 ↑(カーソル位置)
itemize 環境中にある\item
の項目(文章)が複数行に渡る場合に、項
目の先頭を桁揃えしたい場合には、
によって、その item のインデントの深さに応じて fill されます。なお、古い
NTT jTeX を使用している場合には、Lisp 変数NTT-jTeX
をt
にセッ
トして下さい。
このとき、変数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
にない場合には自動的にこれを検出し、
次の指示を仰ぎます。
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}
(???)の部分がどの項目なのかすぐに判断するのは難しいでしょう。こんな時は、
%
にしてダ
ミーの項目並びを作っておくと良いでしょう。
tabular[*], array, itemize, enumerate, tabbing 環境をbegin型補完で入力し た時、または各環境内で
を押すと、その環境に応じた行エントリを次の行に挿入します(begin型補完時に自
動挿入されたエントリが不要な場合は undo によって消去できます)。例えば、
tabular環境では、その環境のカラム数に対応した個数の &
に加え、行末
の \\
を入れます。この時それ以前に \hline
があればそれも付け
加えます。環境とそれに応じて自動入力するものの対応は以下のようになります。
tabular
, tabular*
, array
カラム数-1 だけの &
と \\
。必要に応じて \hline
tabbing
一行目で定義している \=
と同じ個数の \>
。
itemize
, enumerate
, description
, list
\item
または item[]
tabular 環境の例のように、本機能は各環境の一行目の内容を参考にして動作す るので、なるべく二行目以降で呼び出すようにしてください。
もし、その他の環境、例えば foo
、に対しておまかせ改行
を動作
させたい時は、YaTeX-intelligent-newline-foo
という名前の関数を定義
します。定義した関数は、現在の行に改行を挿入した直後の行頭の位置で呼ばれま
す。関数 YaTeX-indent-line
を呼ぶと現在の環境のネストに応じた深さに
インデントされるので、これを呼んでから何かを挿入するようなコードを書くとよ
いでしょう。yatexenv.el内の関数
YaTeX-intelligent-newline-itemize
の定義などを参考にしてください。
で野鳥自身の動作を決定する以下のモードを切り替えます。
修正モードは、開き括弧入力時の処理をコントロールし、修正モードONの時は開き 括弧の入力は開き括弧のみの入力になり、修正モードOFFの時は開き括弧の入力だ けで閉じ括弧まで入力します。デフォルト(起動時)の設定はOFFです。
野鳥数式モードは、変数 YaTeX-auto-math-mode
が nil
の時の
み有効で、このとき;や:を押した時(Image completion参照)に、
どのようなイメージ補完を機能させるか、通常のキーとして機能させるかを手動で
切り替えます。自動判定が遅いマシンではYaTeX-auto-math-mode
nil
にセットし、野鳥数式モードを手動で切り替えると良いでしょう。
使おうとする LaTeX コマンドの用法がよく分からない時は、オンラインヘル プをひきましょう。ヘルプに関するキーには以下のものがあります。
「オンラインヘルプ」は、一般的な LaTeX コマンド(デフォルトでカーソル
位置のコマンド)に対する説明を隣のバッファに表示します。この時参照されるヘ
ルプ用ファイルには「グローバルヘルプ」と「プライベートヘルプ」の二種類があ
り、前者は LaTeX の標準コマンドの主なものの説明を含むファイルで、変数
YaTeX-help-file
の値で指定されます。このファイルは通常公共の場所(デ
フォルトで$EMACSEXECPATH
)に置かれ、誰もがその内容を更新できるように
全員に書き込み権が与えられるべきものです。後者は、非標準もしくは個人的なマ
クロ定義に関する説明が書かれているファイルで、変数
YaTeX-help-file-private
の値で指定されます。こちらはユーザのホームディ
レクトリの下などに置かれます。
「オンラインapropos」は GNU Emacs の apropos と同様、ユーザが指定したキー ワードを説明文に含む項目すべてを隣のバッファに表示します。
もし、調べようとしたLaTeXコマンドに対する説明がヘルプファイル中に見つ からなかった場合は、説明文の入力を求めてくるので、可能であれば参考書などを 調べてそのコマンドの説明を入力してください。もし、なにか標準的なコマンドに 対する説明を書いたならばぜひ私までその説明をお送り下さい。次回の配布に含め たいと思います。
を押すと、そのドキュメントの親ファイルを聞いて来ます。ここで全てのファイル の親となるファイル(デフォルトが示されているので大抵はRETのみ)を入力すると インクルードしている全てのファイルを解析し、インクルード状況を視覚的に表示 します。このバッファでは以下のキー操作が有効です。
ただし、隣のウィンドウのファイルの内容を表示する機能に関しては、対応する ファイルをクローズしてしまうとうまく働きませんのでご注意ください。
gmhist.elとgmhist-mh.el をロードしている場合、プレヴューコ マンドの入力([prefix] tp])、印刷コマンドの入力([prefix] tl)の 時に独立したヒストリを利用できます。それぞれのプロンプトで、M-p を押 すと直前に利用したコマンド文字列をくり返し呼び出すことができます。
min-out.el (outline-minor-mode
) と野鳥を組み合わせて使うこ
とももちろん可能です。設定の方法に関してはyatexm-o.elをご覧ください。
野鳥の動作を制御する種々の変数を独自に設定することにより、補完入 力を起動するキーアサインを変えたり、環境名の補完候補をさらに充実さ せることなどができます。
例えば prefix キーを C-c 以外のキーにしたい場合は、
YaTeX-prefix
に prefix キーにしたいシンボルを定義してください。さら
に、「C-c 英字」というキーバインドは独自の関数が割り当ててあるので使
いたくない。このような時は、YaTeX-inhibit-prefix-letter
を t
に設定することにより、C-c 英字…のバインドが全て、対応するC-c
C-英字…に変わります(ただし、begin型 large型補完の大文字起動によるリジョ
ン指定は可能なままです。これも無効にしたい場合はt
ではなく 1 にセッ
トして下さい。)。
yatex-mode における次の変数がカスタマイズ可能です。~/.emacs で
setq
しておけば、そちらの定義が優先されます。括弧の中はデフォルト値
です。実際に変数の値を変更する場合は M-x describe-variable で
変数の詳細な説明を参照してください。
MS-DOS上で動作する latex コマンドが、エラーにより停止するとき出力するメッ セージ (
"Emergency stop"
)
jlatex コマンドの出力するメッセージの漢字コード.タイプセットバッファ の出力が化ける時は、これを設定する (2, Nemacsでのみ有効)
セクション区切り設定コマンドの正規表現 (
"\\(part\\|chapter\\*?\\|\\(sub\\)*\\(section\\|paragraph\\)\\*?\\)\\b"
)
fill を抑止する環境名のリスト (
'("tabular" "tabular*" "array" "picture" "eqnarray" "eqnarray*" "equation" "math" "displaymath" "verbatim" "verbatim*")
)
数式イメージ補完で用いる (プリフィクスキー . 対応補完テーブル) の alist (
nil
)。補完テーブルの書き方についてはyatexmth.elを参照。
1画面の時にタイプセットバッファを初めて作成する時の高さ。数値で行数、数字 文字列でEmacsウィンドウに対する百分率 (10)
正規表現とそれにマッチするものの論理的意味をシンボルであらわしたものの リスト…のリスト。hilit19 を組み込んでいる時のみ有効。 詳しくは
(assq 'yatex-mode hilit-patterns-alist)
した結果と、変数YaTeX-hilit-pattern-adjustment-default
の値(と場合 によっては hilit19 のドキュメント)を参照せよ。
Hierarchy バッファは通常ファイルヘッダとして、LaTeXのセクション宣言コマン ドの引数を検索し、それがなければコメント行を探すが、その際にヘッダとしては 意味を持たないパターンをこの変数に設定する。デフォルトでは RCS ヘッダとモー ド指定行(-*- xxx -*-)が設定されている。
Non-nil に設定するとsection型コマンドの引数入力時、アドイン関数がなければ ミニバッファでの読み込みをせずに入力を完了させる (
nil
)
色付けが有効な時の
\part
の色 ('(yellow/dodgerblue yellow/slateblue)
)。 リストの第一要素はhilit-background-mode
が'light
の時の、 第二要素は'dark
の時の\chapter
の色で、文字色/背景色 のよ うに指定する。
色付けが有効な時の、
\subparagraph
の色を\chapter
の濃度の何 %薄くしたものにするか ('(15 40)
)YaTeX-hilit-sectioning-face
の項参照。
たとえば、prefix キーとしてESCを使用し、新たな補完候補を格納するファ イルを、~/src/emacs/yatexrc にし、行頭の prefix をタブ文字一つに変 えたいときは、
(setq YaTeX-prefix "\e" YaTeX-user-completion-table "~/src/emacs/yatexrc" YaTeX-fill-prefix " ")
を ~/.emacs に加えます。
また、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
を利用するようにしてください。
変数 yatex-mode-load-hook
で定義する内容が多い時は、
yatexhks.elというファイルを作り、その中に野鳥関連の設定を書く事で、
初期化の時に自動的にロードします。
各種補完時に、環境名やコマンド名に応じたきめ細やかな補完入力機能を実現す
るための関数を作成することができます。この関数の作成方法や、組み込み方法に
関しては、yatexadd.doc
をご覧ください。
野鳥の標準の LaTeX コマンドの辞書には、作者が頻繁に使うものしか登録さ れていません。これは、補完候補に使いそうもないコマンドが存在して、補完した いコマンドを出すまでのストローク数を増やしてしまう事を防止するためです。標 準辞書にないコマンドも、できるだけ補完入力方式を利用し、ユーザ辞書を充実さ せることで、あなたの LaTeX スタイルにあった野鳥へと育っていくことでしょ う。
本プログラムはフリーソフトウェアです。本プログラムを使用して生じたいかな る結果に対しても作者は責任を負わないこととします。転載等に関しては制限いた しません。常識的に扱ってください。また、使用している旨をメイルでお知らせい ただくと、作者は喜んでサポートに励むことでしょう。
苦情、希望、バグ報告、感想等は歓迎いたします。 連絡は yuuji@ae.keio.ac.jp または、 pcs39334@asciinet.or.jp まで(1995年3月現在)。 継続的に使用してくださる方はメイリングリスト「fj野鳥の会」に 是非加入してください。加入方法については本パッケージの docs/qanda ファイルの「その他」の章を御覧ください。
仕様は、予告なく確実に(気分次第で)変更されます:-p。