yuuji@271: \def\lang{jp} % -*- texinfo -*- for Texinfo V.3.1 yuuji@271: \input texinfo yuuji@271: @setfilename yatexj yuuji@271: @settitle Yet Another tex-mode for Emacs yuuji@272: @direntry yuuji@272: * YaTeX: (yatexj). Yet Another tex-mode for Emacs (Japanese). yuuji@272: @end direntry yuuji@271: yuuji@271: @iftex yuuji@271: @c @syncodeindex fn cp yuuji@271: @c いつも忘れるのでここに書いとくか。 yuuji@271: @c C-l C-c n でノード入れ yuuji@271: @c ノードいじったら C-l C-u C-n 全部のノード更新 C-l C-u C-e yuuji@271: @c メニュー増やしたら C-l C-u C-m 全部のメニュー更新 C-l C-u C-a yuuji@271: @c フォーマットするときは C-l C-e C-b yuuji@517: @c Last modified Sat Jan 6 23:49:50 2018 on firestorm yuuji@271: @syncodeindex vr cp yuuji@271: @end iftex yuuji@271: yuuji@271: @titlepage yuuji@271: @sp 10 yuuji@271: @center yuuji@271: @subtitle Yet Another tex-mode for emacs yuuji@271: @title 『野鳥』 yuuji@271: @subtitle // YaTeX // yuuji@471: @author @copyright{} 1991-2017 by HIROSE, Yuuji [yuuji@@yatex.org] yuuji@271: @end titlepage yuuji@271: yuuji@271: @node Top, Intro, (dir), (dir) yuuji@271: @comment node-name, next, previous, up yuuji@271: yuuji@271: @menu yuuji@271: * Intro:: はじめに yuuji@271: * Terminology:: マニュアル参照上の注意 yuuji@271: * Main features:: 主な機能 yuuji@271: * Installation:: インストール yuuji@271: * Invocation:: プロセス起動 yuuji@517: * %#notation :: yuuji@271: * Completion:: 補完入力 yuuji@271: * Local dictionary:: ローカル辞書 yuuji@271: * Commenting out:: コメントアウト yuuji@271: * Cursor jump:: カーソルジャンプ yuuji@271: * Modifying/Deleting:: LaTeXコマンドの変更/削除 yuuji@271: * Filling:: 桁揃え yuuji@271: * Includeonly:: 勝手に includeonly yuuji@271: * What column:: カラム位置ガイド yuuji@271: * Intelligent newline:: おまかせ改行 yuuji@271: * Usepackage cheker:: 先回りusepackage yuuji@271: * Changing mode of YaTeX:: 野鳥動作モード変更 yuuji@271: * Online help:: LaTeXオンラインヘルプ yuuji@271: * Inclusion hierarchy browser:: ファイル分割階層構造の表示 yuuji@271: * Cooperation with other packages:: 他パッケージとの連携 yuuji@271: * Customizations:: カスタマイズ yuuji@271: * Etc:: その他 yuuji@271: * Copying:: 取り扱い yuuji@271: * Concept Index:: 索引 yuuji@271: yuuji@271: @end menu yuuji@271: yuuji@271: @node Intro, Terminology, Top, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter はじめに yuuji@271: @cindex Demacs yuuji@271: @cindex Mule yuuji@271: @cindex LaTeX yuuji@271: @cindex やちょう[やちよう] yuuji@271: yuuji@271: 野鳥は、GNU Emacs で La@TeX{} 用の文書を作成する時に pLa@TeX{} などの yuuji@271: タイプセットコマンドや、プレヴューアの起動を Emacs 編集画面中から yuuji@271: 行えるようにすると共に、拡張性の高い種々の補完機能によりソーステキ yuuji@271: ストの編集を支援します。さらに La@TeX{} コマンドのオンラインヘルプに yuuji@271: よりマニュアルを調べる手間を軽減します。 yuuji@271: yuuji@271: English manual @xref{Top, , , yatexe,YaTeX English info}. yuuji@271: yuuji@271: @node Terminology, Main features, Intro, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 本マニュアル参照上の注意 yuuji@271: yuuji@271: 本マニュアルでは以下の表記を用います。 yuuji@271: yuuji@271: @itemize @bullet yuuji@271: @item yuuji@271: begin型コマンド yuuji@271: yuuji@271: @code{\begin@{環境@} 〜 \end@{環境@}}という形式のLaTeXコマンドを指します。 yuuji@271: begin型コマンドを補完入力することをbegin型補完と呼びます。 yuuji@271: yuuji@271: @item yuuji@271: section型コマンド yuuji@271: yuuji@271: @code{\section@{タイトル@}}や@code{\mbox@{内容@}}のように yuuji@271: 引数を取るLaTeXコマンドを指します。 yuuji@271: yuuji@271: @item yuuji@271: maketitle型コマンド yuuji@271: yuuji@271: @code{\maketitle}や@code{\tableofcontents}のように引数を取らないLaTeXコマ yuuji@271: ンドを指します。 yuuji@271: yuuji@271: @item yuuji@271: large型コマンド yuuji@271: yuuji@271: @code{@{\large ...@}} や @code{@{\tt ...@}} のようなフォント/サイズ指定子 yuuji@271: を指します。 yuuji@271: yuuji@271: @item @kbd{[prefix]} yuuji@271: yuuji@271: 野鳥の機能を呼び出すためのプリフィクスキー。デフォルトでは@kbd{C-c}に割り yuuji@271: 当てられているので、特に変更していない場合本マニュアルの @kbd{[prefix]} と yuuji@271: いう表記は、@kbd{C-c} と読み換えてください。 yuuji@271: @end itemize yuuji@271: yuuji@271: @node Main features, Installation, Terminology, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 主な機能 yuuji@271: yuuji@271: @itemize @bullet yuuji@271: @item タイプセッタやプレヴューアなどの編集画面からの起動(@kbd{C-c t}) yuuji@271: @item カーソル位置によらない固定リジョンの部分タイプセット yuuji@271: @item \includeonlyのワンタッチ更新 yuuji@271: @item エラー箇所への自動ジャンプ(@kbd{C-c '}) yuuji@271: @item @code{\begin@{@}, \end@{@}, \section...} などの La@TeX{} yuuji@271: コマンドの補完入力 yuuji@271: (@kbd{C-c b}, @kbd{C-c s}, @kbd{C-c l}, @kbd{C-c m}) yuuji@271: @item 既に入力したテキストを環境やコマンド引数の中に取り込む括り補完 yuuji@392: (リジョン指定後に通常補完キー) yuuji@271: @item セクション区切り入力時の文書構造アウトライン表示 yuuji@271: @item セクションコマンドの一括シフト (@ref{view-sectioning}) yuuji@271: @item 補完辞書の学習 yuuji@271: @item La@TeX{} の環境やコマンドに応じたガイド付き引数入力 yuuji@271: @item 野鳥にないガイド付き引数入力関数の自動生成(@file{yatexgen.el}) yuuji@271: @item La@TeX{} コマンドの削除/変更(@kbd{C-c k}, @kbd{C-c c}) yuuji@271: @item ファイル間、@code{\begin}<->@code{\end}間、 yuuji@271: @code{\ref}<->@code{\label}間、 yuuji@271: @code{\cite}<->@code{\bibitem}ジャンプ(@kbd{C-c g}) yuuji@271: @item 一括コメントアウト/アンコメントアウト yuuji@271: (@kbd{C-c >}, @kbd{C-c <}, @kbd{C-c ,}, @kbd{C-c .}) yuuji@271: @item アクセント記号/数式環境用コマンド/ギリシャ文字の入力支援 yuuji@271: (@kbd{C-c a}, @kbd{;}, @kbd{/}) yuuji@271: @item tabular/array環境のカラム位置ガイド yuuji@271: @item 標準的 La@TeX{} コマンドのオンラインヘルプ(@kbd{C-c ?}, @kbd{C-c /}) yuuji@271: @item ドキュメントのインクルード構造の視覚的表示とバッファ切り替え yuuji@271: (@kbd{C-c d}) yuuji@271: @item 補完入力したマクロに応じて必要な \userpackage を入れてくれる先回り yuuji@271: userpackage yuuji@271: @item \labelを打つことはもう忘れよう! refやcite補完入力で自動生成します yuuji@471: @item 画像ファイルのドラッグ&ドロップによる自動 \includegraphics yuuji@271: @end itemize yuuji@271: yuuji@271: @node Installation, Invocation, Main features, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 起動法 yuuji@271: @cindex Install yuuji@271: @cindex インストール[いんすとおる] yuuji@271: @cindex .emacs yuuji@271: @cindex auto-mode-alist yuuji@271: @cindex autoload yuuji@271: @section 野鳥起動のための設定 yuuji@271: yuuji@271: ~/.emacsに下の2項目を加えます。 yuuji@271: yuuji@271: @lisp yuuji@271: (setq auto-mode-alist yuuji@271: (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist)) yuuji@271: (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t) yuuji@271: @end lisp yuuji@271: yuuji@271: 次に野鳥の emacs-lisp ファイル群を置くディレクトリを load-path に加えます。 yuuji@271: たとえば、 @file{~/src/emacs/yatex}に置くのであれば、 yuuji@271: yuuji@271: @lisp yuuji@271: (setq load-path (cons (expand-file-name "~/src/emacs/yatex") load-path)) yuuji@271: @end lisp yuuji@271: yuuji@271: @noindent yuuji@271: などとします。 yuuji@271: yuuji@271: 以上の設定により、拡張子が .tex であるファイルを編集すると自動的に野鳥が yuuji@271: ロードされます。野鳥が正常に起動できたときはモードラインの表示が「やてふ」 yuuji@271: に変わります。 yuuji@271: yuuji@271: @section タイプセッタ/プレヴューア環境の設定 yuuji@271: yuuji@271: 利用する外部プログラムに関する以下の変数を確認し、必要なら正しい値に変更 yuuji@271: します。 yuuji@271: @table @code yuuji@271: @item tex-command yuuji@271: @dots{} 起動するタイプセッタのコマンド名 yuuji@271: @item dvi2-command yuuji@271: @dots{} 起動するプレヴューアのコマンド名 yuuji@271: @item NTT-jTeX yuuji@271: @dots{} 改行+インデントによって、タイプセット後の字間が空いてしま yuuji@271: うのを抑制する場合にtにする(古いNTT-jTeXで顕著に現れる)。具体的には、 yuuji@271: fillするときに各行の終わりに%を付加するようになる。 yuuji@271: @item YaTeX-kanji-code yuuji@271: @dots{} 文書を作成する時の漢字コード yuuji@271: @item dviprint-command-format yuuji@271: @dots{} ファイルの印刷に使われるコマンド列の書式 yuuji@329: @item YaTeX-dvipdf-command yuuji@329: @dots{} DVIをPDFに変換するコマンド yuuji@271: @end table yuuji@271: yuuji@271: これらを変更する場合は、やはり@file{~/.emacs}にて、たとえば yuuji@271: @lisp yuuji@271: (setq tex-command "pdflatex") yuuji@271: @end lisp yuuji@271: のようにしてください。どのような値をセットすれば良いかについては、 yuuji@271: @ref{All customizable variables}を参照してください。 yuuji@271: yuuji@271: yuuji@271: @node Invocation, %#notation , Installation, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter latexコマンド起動 yuuji@271: @cindex prefix key yuuji@271: @cindex C-c yuuji@271: @cindex タイプセッタ[たいふせつた] yuuji@271: @cindex プレヴューア[ふれひゆうあ] yuuji@271: @cindex jlatex yuuji@271: @cindex platex yuuji@271: @cindex プリントアウト[ふりんとあうと] yuuji@271: yuuji@271: LaTeXソースの編集中、次のキー入力により、platex などのタイプセットプログラ yuuji@271: ム(以後タイプセッタと呼ぶ)、プレヴューアなどの起動ができます。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] t j yuuji@271: @dots{} タイプセッタ(platex)起動 yuuji@271: @item [prefix] t r yuuji@271: @dots{} タイプセッタ起動(領域指定) yuuji@271: @item [prefix] t e yuuji@392: @dots{} 部分タイプセット&プレヴュー yuuji@392: (ポイント位置の段落、環境または数式モードのみをタイプセットして yuuji@392: 隣のバッファに組版結果の画像を出す) yuuji@271: @item [prefix] t k yuuji@271: @dots{} 動作中のタイプセッタの停止 yuuji@271: @item [prefix] t b yuuji@271: @dots{} jbibtex起動 yuuji@271: @item [prefix] t i yuuji@271: @dots{} makeindex起動 yuuji@271: @item [prefix] t d yuuji@271: @dots{} タイプセット完了後dvipdfmx起動 yuuji@271: @item [prefix] t p yuuji@271: @dots{} プレヴューア起動 yuuji@271: @item [prefix] t l yuuji@271: @dots{} lpr(プリントアウト用)コマンド起動 yuuji@271: @item [prefix] t s yuuji@271: @dots{} xdvi -remote でのサーチ yuuji@271: @end table yuuji@271: yuuji@271: @menu yuuji@271: * Calling typesetter:: タイプセッタ起動 yuuji@271: * Calling previewer:: プレヴューア起動 yuuji@271: * Print out:: プリントアウト用コマンドの起動 yuuji@271: @end menu yuuji@271: yuuji@271: @node Calling typesetter, Calling previewer, Invocation, Invocation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section タイプセッタ起動 yuuji@271: @cindex タイプセッタ起動[たいふせつたきとう] yuuji@271: @cindex タイプセットエラー[たいふせつとえらあ] yuuji@271: @cindex エラー修正[えらあしゆうせい] yuuji@271: yuuji@271: タイプセッタを起動すると、編集ウィンドウが2つに分割され、片方のウィンド yuuji@271: ウにタイプセット画面が表示されます。出力されるメッセージと連動しタイプセッ yuuji@271: トバッファは自動的にスクロールします。もし、途中でエラーが起こって止まって yuuji@271: しまった場合にはタイプセットバッファに移り、(@kbd{C-x o}) タイプセッタの出 yuuji@271: している ? プロンプトに対して、@kbd{x} (処理の中断)などの指示を送ることが yuuji@271: できます。エラーを修正する場合は、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] ' yuuji@271: @itemx (prefix+アポストロフィ) yuuji@271: @dots{} 直前のエラー発生行へジャンプ yuuji@271: @end table yuuji@271: yuuji@271: を入力することにより、タイプセッタがエラーを発生した行に移ることができます。 yuuji@271: また、タイプセッタの出力する overfull hbox などのウォーニング行にも対応し yuuji@271: ていますので、順次 @kbd{[prefix] '} を押すことにより、一つ前のウォーニング yuuji@271: 発生行にジャンプしていきます。 yuuji@271: yuuji@271: もし、気になるエラー行があった場合は、タイプセットバッファで、エ yuuji@271: ラーの表示されている行にカーソルを合わせスペースキーを押すと La@TeX{} yuuji@271: ソースの対応する行にジャンプします。 yuuji@271: yuuji@271: @subsection 領域タイプセット yuuji@271: yuuji@271: ポイントとマークの間、あるいはテキスト中に埋め込んだ @code{%#BEGIN} と yuuji@271: @code{%#END}の間の領域(@ref{%#notation})だけを切り取ってタイプセットすることが yuuji@271: できます。この場合メインファイルのプリアンブルが一時ファイルの yuuji@271: プリアンブルとして使われます。したがってプリアンブルにないマクロ定義が yuuji@271: 領域内にあるとエラーになります。領域タイプセットを使う場合、 yuuji@271: 必ずマクロ定義はプリアンブル(@code{\begin@{document@}}より前)に置くよう yuuji@271: にして下さい。一時ファイルはメインファイルのある yuuji@271: ディレクトリの@file{texput.tex}という名前で出力されるので、 yuuji@271: 上書きには注意してください。 yuuji@271: yuuji@271: @subsection 環境タイプセット yuuji@271: yuuji@271: @kbd{[prefix] te} を押すと、ポイント位置の最も内側の環境、または数式モー yuuji@392: ド内の場合はその数式モード全体、あるいは環境がなければその段落が自動的に yuuji@392: 領域選択されて、領域タイプセットを呼び出します。 yuuji@392: tabular環境や数式モードで複雑なものを作っている場合は確かめたい部分だけを yuuji@392: 確認できるので便利です。Emacsが画像表示可能な場合は、 yuuji@392: 部分タイプセットの結果を画像化して隣のウィンドウに表示します。また、 yuuji@392: 特定の環境で呼び出した場合は、環境内の文字を書き換える度に自動的に yuuji@392: プレビュー画像を更新します(on-the-flyプレヴュー)。 yuuji@392: 自動表示されない場合はプレヴューアで @file{texput.dvi} yuuji@392: を開いたままにしておけば修正と確認が素早くできるでしょう。 yuuji@392: yuuji@392: 画像プレヴューの場合の大きさ(解像度)はデフォルトで200dpi(数式は300dpi)です。 yuuji@392: dpiを変えたい場合はLaTeXソースのどこかに yuuji@392: @code{%#PREVIEWDPI 150} yuuji@392: のようにdpi値を書いてください。 yuuji@271: yuuji@271: @node Calling previewer, Print out, Calling typesetter, Invocation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section プレヴューア起動 yuuji@271: @kbd{[prefix] t p} によりプレヴューアの起動ができます。さらに、もしあな yuuji@271: たが、-remote 機能つきのxdviを利用している場合は @kbd{[prefix] t s} を押す yuuji@271: ことによりカーソル位置の文字列を検索してそのページを表示するようにすでに起 yuuji@271: 動中のxdviに命令を送ります。これにより、現在編集中の箇所のタイプセット結果 yuuji@271: を即座に見ることができます。 yuuji@271: yuuji@271: @c なお、-remote 機能付きの xdvi は yuuji@271: @c @code{ftp://ftp.ae.keio.ac.jp/pub/text/xdvi/xdvi-remote} yuuji@271: @c などから入手することができます。 yuuji@271: yuuji@271: @node Print out, , Calling previewer, Invocation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section プリントアウト yuuji@271: yuuji@271: @kbd{[prefix] t l}を押してプリントアウトを指示すると、出力開始/終了ペー yuuji@271: ジを聞いてくるので、それぞれに答えます。これを省略したい時は、 yuuji@271: universal-argument をつけ、 yuuji@271: yuuji@271: @cindex 出力開始ページ[しゆつりよくかいしへえし] yuuji@271: @cindex 出力終了ページ[しゆつりよくしゆうりようへえし] yuuji@271: yuuji@271: @table @kbd yuuji@271: @item C-u [prefix] t l yuuji@271: @dots{} ページ確認省略lpr起動 yuuji@271: @end table yuuji@271: @cindex ページ確認省略lpr起動[へえしかくにんしようりやくlprきとう] yuuji@271: yuuji@271: @noindent yuuji@271: のように起動してください。 yuuji@271: yuuji@271: @node %#notation , Completion, Invocation, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter %#記法 yuuji@271: yuuji@271: 本文中に@code{%#}ではじまるキーワードを埋め込むことでタイプセッタ起動等 yuuji@271: の制御をすることができます。 yuuji@271: yuuji@271: @menu yuuji@271: * Changing typesetter:: タイプセット用コマンドの変更 yuuji@271: * Splitting input files:: 入力ファイル分割 yuuji@271: * Fix region for typesetting:: 領域の固定 yuuji@517: * Special Filtering Region:: yuuji@271: * lpr format:: プリントアウトコマンド用フォーマット yuuji@271: * Controlling which command to invoke:: その他の起動コマンド制御 yuuji@517: * Editing %# notation:: yuuji@271: @end menu yuuji@271: yuuji@271: @node Changing typesetter, Splitting input files, %#notation , %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section タイプセット用コマンド変更 yuuji@271: yuuji@271: 起動するコマンドを変えたい時は本文中に次のような行を書きます。 yuuji@271: yuuji@271: @cindex 起動するコマンドを変える[きとうするこまんとをかえる] yuuji@271: yuuji@271: @example yuuji@271: %#!jlatex-ntt yuuji@271: @end example yuuji@271: yuuji@271: NTT jTeX と、ASCII jTeX を使い分けたいような場合に便利でしょう。 yuuji@271: yuuji@271: @cindex タイプセッタの使い分け[たいふせつたのつかいわけ] yuuji@271: yuuji@271: @node Splitting input files, Fix region for typesetting, Changing typesetter, %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 入力ファイル分割 yuuji@271: yuuji@271: また、章毎に別ファイルの .tex を作成している場合で、@file{main.tex}から yuuji@271: @file{sub.tex} を @code{\include}しているような時は、@file{sub.tex}の任意の yuuji@271: 位置に次のような行を埋め込みます。 yuuji@271: yuuji@271: @example yuuji@271: %#!platex main.tex yuuji@271: @end example yuuji@271: yuuji@271: @cindex 入力ファイル分割[にゆうりよくふあいるふんかつ] yuuji@271: yuuji@271: 上の例のようにコマンド名だけでなく引数も書いた場合には、全てをそのまま yuuji@271: shell に渡すので次のように書けば、ghostview などをプレヴューアに使う時に便 yuuji@271: 利です。 yuuji@271: yuuji@271: @cindex ghostview yuuji@271: yuuji@271: @example yuuji@271: %#!platex main && dvi2ps main.dvi > main yuuji@271: @end example yuuji@271: yuuji@271: なお、この行の最後の単語のピリオド以前を「メインファイル」のベース yuuji@271: ネームであると仮定します(上の2つの場合どちらも@file{main})。 yuuji@271: この行に記述した、@code{%f}はメインファイル名に、 yuuji@271: @code{%r} はメインファイルの拡張子を取り除いた部分に置換されます。 yuuji@271: ただし、@code{%f,%r}を利用した場合、初回タイプセット時に必ずメインファイル yuuji@271: 名の入力を促されます。 yuuji@271: yuuji@271: @kbd{[prefix] g} (@ref{Cursor jump}参照) での yuuji@271: ファイル間ジャンプを有効に機能させるため、入力ファイル分割時には次のことに yuuji@271: 注意して下さい。 yuuji@271: yuuji@271: @enumerate yuuji@271: @item yuuji@271: サブディレクトリを作って、その中にサブファイルを置くことはできるが yuuji@271: サブディレクトリのサブディレクトリには置けない。 yuuji@271: @item yuuji@271: メインファイルからサブディレクトリ内のファイルを include する時には、 yuuji@271: 相対パス指定を用いて、 yuuji@271: @code{\include@{chap1/sub@}}のように記述。 yuuji@271: @item yuuji@271: メインファイルが一つ上のディレクトリにある場合も、サブファイルには yuuji@271: %#!platex main.tex のように記述する(../mainではない)。 yuuji@271: @end enumerate yuuji@271: yuuji@271: yuuji@271: yuuji@271: @node Fix region for typesetting, lpr format, Splitting input files, %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 領域の固定 yuuji@271: @cindex 固定領域のタイプセット[こていりよういきのたいふせつと] yuuji@271: @cindex %#BEGIN yuuji@271: @cindex %#END yuuji@271: yuuji@271: @kbd{[prefix] tr} の領域指定のタイプセットでは、とくに指定のないかぎり、 yuuji@271: @kbd{C-SPC}でマークした位置と、ポイント(カーソル位置)の間を領域とみなしま yuuji@271: すが、必ず決まった領域をタイプセットしたい場合は、その領域を yuuji@271: yuuji@271: @example yuuji@271: %#BEGIN yuuji@271: <渡したい領域> yuuji@271: %#END yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: のように@code{%#BEGIN}と@code{%#END}で囲み、カーソルを「@code{%#BEGIN}以降」 yuuji@271: に置いてください。この時の領域決定規則をまとめると次のようになります。 yuuji@271: yuuji@271: yuuji@271: @enumerate yuuji@271: @item yuuji@271: カーソル位置よりバッファの先頭方向に@code{%#BEGIN}というキーワードが yuuji@271: ある場合 yuuji@271: yuuji@271: @enumerate yuuji@271: @item yuuji@271: @code{%#BEGIN}よりバッファの末尾方向に@code{%#END}というキーワードが見つかっ yuuji@271: た場合。 yuuji@271: @result{}@code{%#BEGIN} から、その @code{%#END} のある位置まで。 yuuji@271: @item yuuji@271: @code{%#END} が見つからなかった場合。 yuuji@271: @result{}バッファの最後尾まで。 yuuji@271: @end enumerate yuuji@271: @cindex 領域決定規則[りよういきけつていきそく] yuuji@271: yuuji@271: @item yuuji@271: カーソル位置よりバッファの先頭方向に @code{%#BEGIN} というキーワードが yuuji@271: 見つからなかった場合。 yuuji@271: @result{}マーク(@kbd{C-SPC}位置)とポイント(カーソル位置)の間の領域。 yuuji@271: @end enumerate yuuji@271: yuuji@271: tabular 環境を何度も試行錯誤しているような場合は、@code{\begin}の前の行 yuuji@271: に @code{%#BEGIN} と書き、@code{\end} の次の行に @code{%#END} と書いておく yuuji@271: と簡単に作表結果をテストすることができます。また、長い .tex ファイルの後半 yuuji@271: に @code{%#BEGIN} を書いておけば、前半の部分は無視できます。このBEGINとEND yuuji@271: の消し忘れには十分ご注意下さい。 yuuji@271: @cindex 長いファイルの編集[なかいふあいるのへんしゆう] yuuji@271: yuuji@517: @node Special Filtering Region, lpr format, Fix region for typesetting, %#notation yuuji@517: @section 自動外部フィルタ yuuji@517: yuuji@517: たとえば、テキストファイルから画像を生成するようなツールに与えるソースを yuuji@517: La@TeX{}ソース中に埋め込み、その部分だけをツールの標準入力に渡すことができ yuuji@517: ます。そのためには以下のようなソースを文書中に書きます。 yuuji@517: yuuji@517: @example yuuji@517: %#BEGIN FILTER{foo.pdf}{blockdiag -T %t -o %o} yuuji@517: \if0 yuuji@517: --- yuuji@517: ....blah blah blah... yuuji@517: ....blah blah blah... yuuji@517: ....blah blah blah... yuuji@517: --- yuuji@517: \fi yuuji@517: %#END yuuji@517: @end example yuuji@517: yuuji@517: この領域内で @kbd{[prefix] t e} をタイプすると、この例であればblahのある3行が yuuji@517: 外部コマンド @code{"blockdiag -T pdf -o foo.pdf"} の標準入力に渡され、 yuuji@517: 結果として foo.pdf が生成されます。この特別なブロックは yuuji@517: @kbd{[prefix] tb} の環境補完で、@code{.blockdiag} のようなピリオドで始まる yuuji@517: 特殊環境名を入力することで自動的に挿入されます。 yuuji@517: yuuji@271: @c @node Require, lpr format, Fix region for typesetting, %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: yuuji@271: @node lpr format, Controlling which command to invoke, Fix region for typesetting, %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section lprフォーマット yuuji@271: @cindex lprふぉーまっと[lprふおおまつと] yuuji@271: @cindex lprフォーマット[lprふおおまつと] yuuji@271: @cindex lpr format yuuji@271: yuuji@271: まず、プリントアウト用コマンド列のフォーマットについて説明します。 yuuji@271: コマンド列フォーマットは、3つの Lisp 変数によって表現されます。デ yuuji@271: フォルトの dvi2ps 用のフォーマットを例に説明します。 yuuji@271: yuuji@271: @table @code yuuji@271: @item (1)dviprint-command-format yuuji@271: @code{"dvi2ps %f %t %s | lpr"} yuuji@271: yuuji@271: @item (2)dviprint-from-format yuuji@271: @code{"-f %b"} yuuji@271: yuuji@271: @item (3)dviprint-to-format yuuji@271: @code{"-t %e"} yuuji@271: @end table yuuji@271: yuuji@271: 実際にプリントアウトする時は、(1)中の %s がファイル名に置き換えられ、%f が yuuji@271: (2)の内容、%t が(3)の内容に置き換えられます。その際に(2)の文字列中の %b は yuuji@271: 「出力開始ページ」、(3)の文字列中の %e は「出力終了ページ」に置き換えられ yuuji@271: ます。もし、ページを指定しない時には、%f, %t 両方とも無視されます。 yuuji@271: yuuji@271: この、dviprint-command-format を臨時に変えたい時は、La@TeX{} の yuuji@271: ソーステキスト中の任意の場所に、 yuuji@271: yuuji@271: @example yuuji@271: %#LPR dvi2ps %f %t %s | 4up -page 4 | texfix | lpr -Plp2 yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: のように書いて下さい。プリントアウトするページ範囲をいちいち聞かせないよう yuuji@271: にする時に yuuji@271: yuuji@271: @example yuuji@271: %#LPR dvi2ps %s | lpr yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: などとするのも便利かもしれません。 yuuji@271: yuuji@271: @node Controlling which command to invoke, Editing %# notation, lpr format, %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section その他の起動コマンド制御 yuuji@271: @cindex その他のコマンド制御[そのたのこまんとせいきよ] yuuji@271: yuuji@271: La@TeX{} 文書に関連するコマンドは以下の %# 記法で指定することができます。 yuuji@271: yuuji@271: @table @code yuuji@410: @item %#PREVIEW yuuji@410: @dots{} Command line for DVI viewing ([prefix] t p) yuuji@271: @item %#BIBTEX yuuji@271: @dots{} makeindexを行なうコマンドライン([prefix] t b) yuuji@271: @item %#MAKEINDEX yuuji@271: @dots{} bibtexを行なうコマンドライン([prefix] t i) yuuji@329: @item %#DVIPDF yuuji@329: @dots{} DVIからPDF変換を行なうコマンドライン([prefix] t d) yuuji@410: @item %#LPR yuuji@410: @dots{} 印刷用のコマンドライン([prefix] t l) yuuji@410: @item %#PDFVIEW yuuji@410: @dots{} PDFファイルを見るためのコマンドライン yuuji@410: @item %#IMAGEDPI yuuji@410: @dots{} 即時プレヴュー(on-the-fly preview)用の画像のDPI yuuji@271: @end table yuuji@271: yuuji@271: 行頭がこれらのキーワードで始まる行をLa@TeX{}文書の先頭付近に書いておけば、 yuuji@271: それで指定したコマンドを起動できます。 yuuji@271: yuuji@271: @node Editing %# notation, , Controlling which command to invoke, %#notation yuuji@271: @comment node-name, next, previous, up yuuji@271: @section %#記法自体の編集 yuuji@271: @cindex %#記法自体の編集[%#きほうしたいのへんしゆう] yuuji@271: yuuji@271: 以上のような@code{%#}で始まる各種制御記法を編集するためには yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] % yuuji@271: @dots{} @code{%#}@var{記法編集メニュー} yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を押します。 yuuji@271: yuuji@271: @example yuuji@271: !)Edit-%#! B)EGIN-END-region L)Edit-%#LPR yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: というメニューが出て来るので、@code{%#!}に続くコマンドを変更したい時には yuuji@271: @kbd{!}を、@code{%#LPR}で lpr フォーマットを変えたい時は@kbd{l}を、あらか yuuji@271: じめ設定したリジョンを @code{%#BEGIN} 〜 @code{%#END} で括りたい時は、 yuuji@271: @kbd{b}を押します。@kbd{b}を選んだ時には、それまでバッファ中に置かれていた yuuji@271: @code{%#BEGIN}, @code{%#END} が自動的に消去されます。 yuuji@271: @cindex lprフォーマットの変更[lprふおおまつとのへんこう] yuuji@271: yuuji@271: @node Completion, Local dictionary, %#notation , Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 補完入力 yuuji@271: yuuji@271: La@TeX{} での環境名などは、野鳥の補完機能を利用して能率的に入力すること yuuji@271: ができます。 yuuji@271: yuuji@271: @menu yuuji@392: * begin型補完:: yuuji@392: * section型補完:: yuuji@392: * large型補完:: yuuji@392: * maketitle型補完:: yuuji@271: * Arbitrary completion:: 随時補完 yuuji@392: * end補完:: yuuji@271: * Accent mark completion:: アクセント記号補完 yuuji@271: * Image completion:: 数式記号イメージ補完 yuuji@271: * Greek letter completion:: ギリシャ文字補完 yuuji@392: * Inserting parens:: yuuji@271: @end menu yuuji@271: yuuji@271: @node begin型補完, section型補完, Completion, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section begin型補完 yuuji@271: @cindex begin型補完[beginかたほかん] yuuji@271: @cindex 環境名の補完[かんきようめいのほかん] yuuji@271: @cindex prefix b yuuji@271: yuuji@271: @code{\begin@{env@}...\end@{env@}}の様な形式の入力の補完をbegin型補完と yuuji@271: 呼ぶことにします。begin 型補完は、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] b yuuji@271: @dots{} begin 型補完開始(標準では @kbd{C-c b}) yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: で始まります。頻繁に用いられる次の La@TeX{} 環境の補完は、[prefix] @kbd{b} yuuji@271: に続く次の1文字を入力するだけで、@code{\begin@{xxx@}...\end@{xxx@}}を完成 yuuji@271: させます。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] b c yuuji@271: @dots{} @code{\begin@{center@}...\end@{center@}} yuuji@271: @item [prefix] b d yuuji@271: @dots{} @code{\begin@{document@}...\end@{document@}} yuuji@271: @item [prefix] b D yuuji@271: @dots{} @code{\begin@{description@}...\end@{description@}} yuuji@271: @item [prefix] b e yuuji@271: @dots{} @code{\begin@{enumerate@}...\end@{enumerate@}} yuuji@271: @item [prefix] b E yuuji@271: @dots{} @code{\begin@{equation@}...\end@{equation@}} yuuji@271: @item [prefix] b i yuuji@271: @dots{} @code{\begin@{itemize@}...\end@{itemize@}} yuuji@271: @item [prefix] b l yuuji@271: @dots{} @code{\begin@{flushleft@}...\end@{flushleft@}} yuuji@271: @item [prefix] b m yuuji@271: @dots{} @code{\begin@{minipage@}...\end@{minipage@}} yuuji@271: @item [prefix] b t yuuji@271: @dots{} @code{\begin@{tabbing@}...\end@{tabbing@}} yuuji@271: @item [prefix] b T yuuji@271: @dots{} @code{\begin@{tabular@}...\end@{tabular@}} yuuji@271: @item [prefix] b ^T yuuji@271: @dots{} @code{\begin@{table@}...\end@{table@}} yuuji@271: @item [prefix] b p yuuji@271: @dots{} @code{\begin@{picture@}...\end@{picture@}} yuuji@271: @item [prefix] b q yuuji@271: @dots{} @code{\begin@{quote@}...\end@{quote@}} yuuji@271: @item [prefix] b Q yuuji@271: @dots{} @code{\begin@{quotation@}...\end@{quotation@}} yuuji@271: @item [prefix] b r yuuji@271: @dots{} @code{\begin@{flushright@}...\end@{flushright@}} yuuji@271: @item [prefix] b v yuuji@271: @dots{} @code{\begin@{verbatim@}...\end@{verbatim@}} yuuji@271: @item [prefix] b V yuuji@271: @dots{} @code{\begin@{verse@}...\end@{verse@}} yuuji@271: @end table yuuji@271: yuuji@271: 上記のもの以外の環境名は Emacs の持つインクリメンタルな補完機能を用いて yuuji@271: 入力します(上記の環境名も以下の補完入力可能)。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] b @key{SPC} yuuji@271: @dots{} begin 型補完入力 yuuji@271: @end table yuuji@271: yuuji@271: @kbd{[prefix] b @key{SPC}} と入力すると、最下行のミニバッファに yuuji@271: yuuji@271: @example yuuji@271: Begin environment(default document): yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: と表示されます。ここで、何も入れずにリターンキーのみ押すと、括弧内に出てい yuuji@271: るデフォルトの環境名が入力されますが、適当な環境名を入力すると、 yuuji@271: @code{\begin@{環境名@} … \end@{環境名@}}が文書中に挿入されます。ミニバッ yuuji@271: ファで環境名を入力するときに、環境名の頭文字を入力し「スペース」をたたくと、 yuuji@271: 一致する環境名が内部テーブルに存在した場合、正しい環境名に補完されるので、 yuuji@271: 入力の手間が省けます。内部テーブルに存在しない環境名を入力した時はユーザ専 yuuji@271: 用のテーブルに登録され、さらにそのテーブルを自動的に、ユーザ辞書(デフォル yuuji@271: トでは @file{~/.yatexrc})に保存します。 yuuji@271: yuuji@271: さらに、特定の環境を補完入力した時にはその環境で必ず用いられるエントリを自 yuuji@271: 動挿入します(例: @code{itemize}環境における@code{\item}など)。挿入されたエ yuuji@271: ントリが不要な場合にはundoによって消去して下さい。 yuuji@271: @cindex ユーザ辞書[ゆうさししよ] yuuji@271: yuuji@271: @subsection 既に書いたテキストを環境で括る yuuji@271: yuuji@271: ところで、最初に書いてしまったブロックを後から、itemize 環境の中 yuuji@271: に閉じこめたいと思うことがありますが、そのようなときは、あらかじめ yuuji@271: 閉じこめたい段落をマークして、begin 型補完の各コマンドの @kbd{[prefix]} yuuji@271: の次の『小文字の 'b'』 を『大文字』に変えて起動して下さい。(または、 yuuji@271: @kbd{C-u} を先に打ち、universal argument をつけても可能です) yuuji@271: @cindex ブロック[ふろつく] yuuji@271: @cindex 閉じ込める[としこめる] yuuji@271: yuuji@271: 例えばあるパラグラフを description 環境の中に入れたいときは、 yuuji@392: そのパラグラフをマークしてから、補完機能を呼び出してください(description yuuji@392: 環境の場合は @kbd{[prefix] b D})。 yuuji@392: yuuji@392: 選択された領域を括ります。ただしこれは @code{transient-mark-mode} が t yuuji@392: (Emacsの標準)になっている場合のみで、普段 yuuji@392: @code{transient-mark-mode} を @code{nil} にしている場合は、 yuuji@392: 補完キー前に @code{universal-argument} 指定(@kbd{C-u}) yuuji@392: をタイプしてから @kbd{[prefix] b D} など、補完キーを yuuji@392: タイプすれば括り補完になります。 yuuji@392: なおEmacs22以降であれば @code{transient-mark-mode} 無効時も yuuji@392: @code{set-mark-command} (@kbd{C-space})の連打で一時的に yuuji@392: @code{transient-mark-mode} が有効になります。 yuuji@392: yuuji@271: yuuji@271: @node section型補完, large型補完, begin型補完, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section section型補完 yuuji@271: @cindex section型補完[sectionかたほかん] yuuji@271: @cindex prefix s yuuji@271: yuuji@271: @code{\section@{目的@}} のような形式の入力の補完を section 型補完と呼ぶこ yuuji@271: とにします。section 型補完は、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] s yuuji@271: @dots{} section 型補完 yuuji@271: @end table yuuji@271: yuuji@271: yuuji@271: で実行します。@kbd{[prefix] s} を入力するとミニバッファに、 yuuji@271: yuuji@271: @example yuuji@271: (C-v for view-section) \???@{@} (default documentclass): yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: というプロンプトが現れるので、そこで @samp{section} のような La@TeX{} コマ yuuji@271: ンド名を入力します。ここでもリターンキーのみで括弧内のデフォルト値が選択さ yuuji@271: れるほか、@samp{chapter}などのような頻度の高い名称入力にはスペースキーによ yuuji@271: る補完機能が有効です。 次に、@{@}の中身の入力を促す、 yuuji@271: yuuji@271: @example yuuji@271: \section@{???@}: yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: というプロンプトが現れるので、セクションのタイトルなどを入力します。 yuuji@271: たとえば、 yuuji@271: yuuji@271: @example yuuji@271: (C-v for view-section) \???@{@} (default documentclass): section yuuji@271: \section@{???@}: 目的 yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: のように入力した場合は、文章中に yuuji@271: yuuji@271: @example yuuji@271: \section@{目的@} yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: が挿入され、 yuuji@271: yuuji@271: @example yuuji@271: (C-v for view-section) \???@{@} (default section): vspace* yuuji@271: \vspace*@{???@}: yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: のように@{@}の中身を省略したときは、 yuuji@271: yuuji@271: @example yuuji@271: \vspace*@{@} yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: だけが挿入され、改行はせずカーソルは自動的に中括弧の内側に移動します。 yuuji@271: yuuji@271: @menu yuuji@517: * 2個以上の引数をとる section型コマンド:: yuuji@271: * Enclose section-type command:: 括り補完 yuuji@271: * Recursive completion:: 再帰補完 yuuji@271: * view-sectioning:: セクション区切りのアウトライン表示 yuuji@271: * label-generation:: ラベル自動生成 yuuji@271: @end menu yuuji@271: yuuji@271: @node 2個以上の引数をとる section型コマンド, Enclose section-type command, section型補完, section型補完 yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection 2個以上の引数をとる section型コマンド yuuji@271: @cindex 引数[ひきすう] yuuji@271: yuuji@271: ところで、@samp{\addtolength@{\topmargin@}@{8mm@}} などのように、引数を二つ yuuji@271: 以上取る La@TeX{} コマンドがあります。このようなコマンドの補完入力には、 yuuji@271: section 型補完呼び出しに引数を付けてください。例えば上の@samp{addtolength} yuuji@271: の例であれば、引数2を指定します。つまり、 yuuji@271: yuuji@271: @example yuuji@271: C-u 2 [prefix] s (または、ESC 2 [prefix] s) yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: と section 型補完を呼び出した後、 yuuji@271: yuuji@271: @example yuuji@271: (Ctrl-v for view-section) \???@{@} (default vspace*): addtolength yuuji@271: \addtolength@{???@}: \topmargin yuuji@271: Argument 2: 8mm yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: のように入力してください。最初の addtolength の部分と、第一引数である yuuji@271: \topmargin の入力は当然スペースによる補完入力が可能です。ユーザ辞書に登録 yuuji@271: される La@TeX{} コマンドには、この引数の数も学習されるので、最初の補完の時 yuuji@271: 引数の数を指定して起動しておけば、以後の補完時には、記憶された個数だけ引数 yuuji@271: を聞いて来るようになります。あとで引数の個数を変えたい時は、再び @kbd{C-u} yuuji@271: を用いて個数を指定し直すことで、自動的に辞書中の引数の個数の部分を更新しま yuuji@271: す。 yuuji@271: @cindex 引数の個数を変える[ひきすうのこすうをかえる] yuuji@271: yuuji@271: yuuji@271: @node Enclose section-type command, Recursive completion, 2個以上の引数をとる section型コマンド, section型補完 yuuji@271: @subsection 既に書いたテキストを括る yuuji@271: @cindex 括る[くくる] yuuji@271: yuuji@392: また、section型補完機能の呼び出し時に領域選択状態にしておくと yuuji@392: 領域内のテキストを section 型コマンドの第一引数として括ります。 yuuji@392: これも普段 @code{transient-mark-mode} を @code{nil} にしている場合は yuuji@392: @kbd{C-u} のあとに補完キーをタイプすれば強制的に括り補完になります。 yuuji@392: yuuji@271: yuuji@271: @node Recursive completion, view-sectioning, Enclose section-type command, section型補完 yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection 再帰補完 yuuji@271: @cindex 再帰補完[さいきほかん] yuuji@271: yuuji@271: 高度な使い方になるかもしれませんが、section型補完の引数の入力時にさらに yuuji@271: 補完入力を利用することができます(section/large/maketitle型に限る)。section yuuji@271: 型コマンドの引数に更に La@TeX{} コマンドが来る場合にはミニバッファで野鳥の yuuji@271: 補完キーを再帰的に入力することで引数の入力も効率的に行なえます。 yuuji@271: yuuji@271: @node view-sectioning, label-generation, Recursive completion, section型補完 yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection セクション区切りのアウトライン表示 yuuji@271: @cindex アウトライン[あうとらいん] yuuji@271: yuuji@271: 通常のsection型補完の時にミニバッファで@kbd{C-v}を押すと現在存在するセク yuuji@271: ション区切りコマンド全てを @code{*Sectioning Lines*}というバッファに一覧表 yuuji@271: 示します(「<<--」のついている行がもっとも近いセクション区切り)。この時ミニ yuuji@271: バッファで@kbd{C-p}, @kbd{C-n} を押すと@samp{part}, @samp{chapter}, ..., yuuji@271: @samp{subparagraph} のコマンドが論理階層の高さにしたがって上下します。また、 yuuji@271: @kbd{C-v}, @kbd{M-v} を押すとセクション区切り一覧バッファがスクロールし、 yuuji@271: 数字の@kbd{0}〜@kbd{7}を押すとある高さ以上のセクション区切りだけを選んで表 yuuji@271: 示します(実際にやって見れば分かります)。 yuuji@271: yuuji@271: @code{*Sectioning Lines*}バッファは、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item M-x YaTeX-section-overview yuuji@271: @dots{} セクション区切り一覧バッファを生成 yuuji@271: @end table yuuji@271: yuuji@271: @cindex セクション区切り一覧バッファ[せくしよんくきりいちらんはつふあ] yuuji@271: で作成することができます。このバッファを選択し任意の行でスペースを押すと、 yuuji@271: 該当するセクション区切りのある本文中の場所にジャンプします。さらに、同バッ yuuji@271: ファで @kbd{u} を押すと、ソーステキストの対応するセクションコマンドが一階 yuuji@271: 層上がり(例: subsection が section に変わる)、@kbd{d}を押すと一階層下がり yuuji@271: ます。@code{*Sectioning Lines*}バッファにあるセクション区切りの行をマーク yuuji@271: しておいて@kbd{U}を押すとリジョン内のものに対応するソーステキストのセクショ yuuji@271: ンコマンドすべてが一階層上がり、@kbd{D}を押すと下がります。セクション区切 yuuji@271: り一覧バッファで利用できるキーコマンドには以下のものがあります。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item SPC yuuji@271: @dots{} 対応するソース行へジャンプ yuuji@271: @item . yuuji@271: @dots{} 対応するソース行を表示 yuuji@271: @item u yuuji@271: @dots{} カーソル位置に対応するセクションコマンドを一階層上げる yuuji@271: @item d yuuji@271: @dots{} カーソル位置に対応するセクションコマンドを一階層下げる yuuji@271: @item U yuuji@271: @dots{} マークしたセクションコマンドを一階層上げる yuuji@271: @item D yuuji@271: @dots{} マークしたセクションコマンドを一階層上げる yuuji@271: @item 0〜6 yuuji@271: @dots{} レベル n 以下のセクションコマンドを隠して表示 yuuji@271: @end table yuuji@271: yuuji@271: @cindex 論理階層[ろんりかいそう] yuuji@271: @cindex セクション区切り[せくしよんくきり] yuuji@271: @cindex ジャンプ[しやんふ] yuuji@271: yuuji@271: @node label-generation, , view-sectioning, section型補完 yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection ラベル自動生成 yuuji@271: @cindex ラベル自動生成[らへるしとうせいせい] yuuji@271: yuuji@271: @code{\ref@{@}} や @code{\cite@{@}} マクロをsection型補完で入れた場合 yuuji@271: 参照先となり得るものを全て探してメニューにして選択できます。参照先には yuuji@271: @code{\label@{@}}をつけておく必要はありません。もしあれば、そのラベルを yuuji@271: 使い、なければその場で参照先に@code{\label@{@}}を作らせてくれます。 yuuji@271: ラベル名を考えるのは苦痛に感じるものです。全てのカウンタにラベルを yuuji@271: つけるのもたいへんです。もうラベル名に何をつけるか、ラベルをつけるかつけま yuuji@271: いか、などということは忘れましょう! yuuji@271: yuuji@471: ラベルを打つべき項目の選択の際には、可能性のあるすべてのカウンタが表示され yuuji@471: ます。これを「数式のみ」のように種別で絞りたいときは以下のキーコマンドが yuuji@471: 利用できます。 yuuji@471: @table @kbd yuuji@471: @item M-a yuuji@471: @dots{} 絞り込みを解除してすべてのカウンタを表示 yuuji@471: @item M-c yuuji@471: @dots{} キャプションのみを表示 yuuji@471: @item M-e yuuji@471: @dots{} 番号のつく数式のみを表示 yuuji@471: @item M-i yuuji@471: @dots{} 番号つき箇条書のみを表示 yuuji@471: @item M-s yuuji@471: @dots{} セクションのみを表示 yuuji@471: @item M-m yuuji@471: @dots{} その他のカウンタのみを表示 yuuji@471: @end table yuuji@471: yuuji@271: @node large型補完, maketitle型補完, section型補完, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section large型補完 yuuji@271: @cindex large型補完[largeかたほかん] yuuji@271: @cindex prefix l yuuji@271: yuuji@271: @code{@{\large @}} のような形式の補完を large 型補完と呼ぶことにします。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] l yuuji@271: @dots{} large 型補完開始 yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: がlarge型補完の開始です。@kbd{[prefix] l} を押すと、ミニバッファに yuuji@271: yuuji@271: @example yuuji@271: @{\??? @} (default large): yuuji@271: @end example yuuji@271: yuuji@271: yuuji@271: と表示されるので、上記のものと同じ要領で補完入力して下さい。補完候補に用意 yuuji@271: されているのは、@samp{footnotesize} や @samp{huge} のような文字サイズ指定 yuuji@271: 子と、@samp{bf}や@samp{dg}のようなフォント指定子です。 yuuji@271: @cindex 文字サイズ指定子[もしさいすしていし] yuuji@271: @cindex フォント指定子[ふおんとしていし] yuuji@271: yuuji@271: @subsection 既に書いた文字を括る yuuji@271: @cindex 括る[くくる] yuuji@271: yuuji@271: また、begin型補完の時と同様、先に書いてしまった一連の文章の文字のサイズ yuuji@271: を変えたいと思う時がありますが、そのような時は、サイズや大きさを変えたい文 yuuji@392: 字の範囲をマークしてからlarge型補完を呼んでください。 yuuji@271: yuuji@271: @node maketitle型補完, Arbitrary completion, large型補完, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section maketitle型補完 yuuji@271: @cindex maketitle型補完[maketitleかたほかん] yuuji@271: @cindex prefix m yuuji@271: yuuji@271: @code{\maketitle} の形式の補完を maketitle 型補完と呼ぶことにします。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] m yuuji@271: @dots{} maketitle 型補完開始 yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: で、maketitle 型補完を開始します。補完の要領は今までのものとまったく同じで yuuji@271: す。La@TeX{} 用のコマンド名が補完候補として用意されています。 yuuji@271: yuuji@271: @node Arbitrary completion, end補完, maketitle型補完, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 随時補完 yuuji@271: @cindex 随時補完[すいしほかん] yuuji@271: @cindex prefix SPC yuuji@271: yuuji@271: さて、今まで述べた典型的な La@TeX{} コマンド形式の補完入力を用いずに、今 yuuji@271: 入力しようとしている La@TeX{} コマンドを文書中の任意の位置で随時補完するこ yuuji@271: ともできます。La@TeX{} コマンド(先頭が\で始まる)を入力している途中で、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] SPC yuuji@271: @dots{} 随時補完 yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を入力すれば、全ての補完候補の中から一致するものが選ばれカーソル位置に挿入 yuuji@271: されます。 yuuji@271: yuuji@271: @node end補完, Accent mark completion, Arbitrary completion, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section end補完 yuuji@271: @cindex end補完[endほかん] yuuji@271: @cindex prefix e yuuji@271: yuuji@271: 現在開いたままの環境名を自動的に検出し、@code{\end@{環境名@}}を挿入しま yuuji@271: す。begin 型補完を用いれば環境の閉じ忘れはないのですが、時にはついつい手で yuuji@271: @code{\begin@{環境名@}} を入れてしまい、悲しい思いをすることがあります。そ yuuji@271: のような時には気にせず続けて文章を入力し、しかるのちに yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] e yuuji@271: @dots{} end 補完 yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: とすることで、現在開いている環境名で \end@{@} が補われます。 yuuji@271: yuuji@271: @node Accent mark completion, Image completion, end補完, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section アクセント記号補完 yuuji@271: @cindex アクセント記号補完[あくせんときこうほかん] yuuji@271: @cindex prefix a yuuji@271: @cindex 欧文[おうふん] yuuji@271: yuuji@271: 欧文のアクセント記号(@code{\`@{o@}}など)を入力する時は、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] a yuuji@271: @dots{} アクセント記号入力 yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を押すと、ミニバッファに yuuji@271: yuuji@271: @example yuuji@271: 1:` 2:' 3:^ 4:" 5:~ 6:= 7:. u v H t c d b yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: というメニューが出て来るので、数字、または対応する記号/英字を入力 yuuji@271: して下さい。すると編集バッファに、 yuuji@271: yuuji@271: @example yuuji@271: \`@{@} yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: が現われ、カーソルが@{@}内に位置するので、さらに一文字入力する事で、 yuuji@271: yuuji@271: @example yuuji@271: \`@{o@} yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: が完成され、カーソルは@{@}の外に戻ります。 yuuji@271: yuuji@271: @node Image completion, Greek letter completion, Accent mark completion, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 数式記号イメージ補完 yuuji@271: @cindex 数式記号イメージ補完[すうしききこういめえしほかん] yuuji@271: @cindex イメージ補完[いめえしほかん] yuuji@271: @cindex ; yuuji@271: @cindex 数式モード[すうしきもおと] yuuji@271: @cindex 矢印[やしるし] yuuji@271: @cindex Σ[しくま] yuuji@271: @cindex leftarrow yuuji@271: @cindex ∞[むけんたい] yuuji@271: yuuji@271: 主に数式モードで使用される、矢印やΣなどの記号を擬似的に表現するキー入力 yuuji@271: で、La@TeX{} コマンドを入力できます。これは野鳥自身の「数式モード」でのみ yuuji@271: 動作します。野鳥はカーソルが@TeX{}の数式環境の中にある時に@kbd{;}や、 yuuji@271: @kbd{:}に特殊な機能を持たせます。 yuuji@271: yuuji@271: さて、例えば、←(leftarrow)をASCII文字だけで表現する場合、一般的には「<-」 yuuji@271: のようにしますが、これを利用して、数式記号イメージ入力モードで yuuji@271: @code{\leftarrow}を入力するには、@kbd{;}(セミコロン)を打ってから@kbd{<-}と yuuji@271: 入力します。同様に、長い矢印←-(long-leftarrow) をASCII文字だけで表現する yuuji@271: 場合「<--」とするので、@code{\longleftarrow}を入力するためには、@kbd{;<--} yuuji@271: と入力します。あるいは無限大記号をASCII文字だけで表現する時は「oo」のよう yuuji@271: にすることから、@code{\infty} を入力する時は、@kbd{;oo}とキー入力します。 yuuji@271: yuuji@271: これらの操作をまとめると次のようになります。 yuuji@271: yuuji@271: @example yuuji@271: INPUT 入力される La@TeX{} コマンド yuuji@271: ; < - @code{\leftarrow} yuuji@271: ; < - - @code{\longleftarrow} yuuji@271: ; < - - > @code{\longleftrightarrow} yuuji@271: ; o @code{\circ} yuuji@271: ; o o @code{\infty} yuuji@271: @end example yuuji@271: yuuji@271: yuuji@271: yuuji@271: いずれの場合も、イメージ入力を行っている途中で望みのものがバッファ yuuji@271: に表示されたなら、そこでイメージ入力を止めて次の編集動作に移っても yuuji@271: 構いません。 yuuji@271: yuuji@271: @cindex ;自身[;ししん] yuuji@271: 数式環境中で@samp{;}自身を入力するには@kbd{;;}のようにします。イメージ yuuji@271: 入力の途中でTABを押すと、それまで入力した文字で始まるもの一覧が表示されま yuuji@271: す。ここで目的の La@TeX{} コマンドまでカーソルを移動し再度TABを押すことで yuuji@271: その La@TeX{} コマンドがバッファに挿入されます。 yuuji@271: yuuji@271: どのキー入力にどの記号が対応しているか全て知りたい時は、@kbd{;}を押した yuuji@271: 直後にTABを押してください。以下の例は、@kbd{;<}と押した後にTABを押したもの yuuji@271: です。 yuuji@271: yuuji@271: @example yuuji@271: KEY LaTeX sequence sign yuuji@271: < \leq ≦ yuuji@271: << \ll 《 yuuji@271: <- \leftarrow ← yuuji@271: <= \Leftarrow <= yuuji@271: @end example yuuji@271: yuuji@271: 左から[入力キー]、[対応する La@TeX{} コマンド]、[(擬似)記号図示]、と yuuji@271: いう順でメニューが出て来るので、よく使うものを覚えておくと良いでしょ yuuji@271: う。ものによってはASCII文字で表現することが困難なので、あまり覚え yuuji@271: やすいキー並びではないものがあるでしょうから、そのような場合は yuuji@271: \maketitle 型補完で入力するか、以下に述べる対応表の設定を行って単 yuuji@271: 純なキー並びのものを設定すると良いでしょう。 yuuji@271: yuuji@271: 入力キーと La@TeX{} コマンド、記号の対応表を個人的に設定したい場合は yuuji@271: Emacs-Lisp 変数 @code{YaTeX-math-sign-alist-private} に定義してください。 yuuji@271: その内容とデフォルトのものを合わせたものが対応表として使用されます(private yuuji@271: の方が優先される)。なお、この変数の構造については @file{yatexmth.el} を参 yuuji@271: 照してください。 yuuji@271: @cindex YaTeX-math-sign-alist-private yuuji@271: yuuji@392: @node Greek letter completion, Inserting parens, Image completion, Completion yuuji@271: @comment node-name, next, previous, up yuuji@271: @section ギリシャ文字補完 yuuji@271: @cindex ギリシャ文字補完[きりしやもしほかん] yuuji@271: @cindex : yuuji@271: yuuji@271: もう一つ、数式環境中で@kbd{:}を押すとギリシャ文字入力モードに入ります。 yuuji@271: @kbd{:}を押した直後に@kbd{a}を押すと@code{\alpha}が、@kbd{g} を押すと yuuji@271: @code{\gamma}が、などアルファベットに対応したギリシャ文字が挿入されます。 yuuji@271: 操作方法は;の数式記号補完とまったく同じです。まずは@kbd{:}の直後に yuuji@271: TABを押してどのアルファベットにどのギリシャ文字が対応しているか調べてみて yuuji@271: ください。 yuuji@271: yuuji@271: @kbd{;}と@kbd{:}を数式環境中で押しているにもかかわらず、イメージ補完が働 yuuji@271: かない場合は、@kbd{C-u ;}のように universal-argument をつけてキーを押すこ yuuji@271: とにより、強制的にイメージ補完に入ることができます。また、この時にどのよう yuuji@271: な状態で数式環境内判定に失敗したかをご連絡下さい。 yuuji@271: yuuji@392: @node Inserting parens, , Greek letter completion, Completion yuuji@392: @section 括弧入力補助 yuuji@392: @cindex 括弧入力補助[かつこにゆうりよくほしよ] yuuji@392: yuuji@392: 3種類ある括弧 () {} [] の開き括弧を入れたときに閉じ括弧を自動的に入れます。 yuuji@392: @code{\} の直後にの @code{[} を入れると行を分けてインデントを揃え、 yuuji@392: 数式入力に備えます。その他 La@TeX{} のマクロに応じて括弧の釣合の取れた yuuji@392: 状態に導きます。開き括弧そのものを1つだけ入れたいときは @kbd{C-q} で yuuji@392: クォート入力するか、@kbd{[prefix] w m} で修正モードをOFFにしてください。 yuuji@392: yuuji@392: 領域選択してから開き括弧を入れるとその領域をその種類の括弧で括ります。 yuuji@392: yuuji@271: @node Local dictionary, Commenting out, Completion, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter ローカル辞書 yuuji@271: @cindex ローカル辞書[ろおかるししよ] yuuji@271: @cindex .yatexrc yuuji@271: yuuji@271: 補完入力用の候補は三種類の辞書から構成されています。一つは yuuji@271: @file{yatex.el}に組み込まれた「標準辞書」、もう一つはユーザが個人的に常用 yuuji@271: するコマンドを保存する「ユーザ辞書」、そしてもうひとつはあるディレクトリで yuuji@271: のみ有効なコマンドを保存する「ローカル辞書」です。 yuuji@271: yuuji@271: 補完入力時に新しい単語を入れた場合に、その単語をどの辞書に入れるか聞いて yuuji@271: 来ます。 yuuji@271: yuuji@271: @example yuuji@271: `foo' is not in table. Register into: U)serDic L)ocalDic N)one D)iscard yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: というプロンプトに対し、@kbd{u}と答えると「ユーザ辞書」を、@kbd{l}と答える yuuji@271: とローカル辞書を更新し、@kbd{n}と答えると辞書ファイルは更新せず現在のEmacs yuuji@271: セッションのみ有効な単語とし、@kbd{d}と答えると新たな単語を学習せずに捨て yuuji@271: ることになります。 yuuji@271: yuuji@271: もし、ローカル辞書の機能はいらず、全てユーザ辞書の更新のみでよいと言う場 yuuji@271: 合には@file{~/.emacs}などで、 yuuji@271: @cindex YaTeX-nervous yuuji@271: yuuji@271: @lisp yuuji@271: (setq YaTeX-nervous nil) yuuji@271: @end lisp yuuji@271: yuuji@271: @noindent yuuji@271: として下さい。 yuuji@271: yuuji@271: @node Commenting out, Cursor jump, Local dictionary, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter コメントアウト yuuji@271: @cindex コメントアウト[こめんとあうと] yuuji@271: @cindex prefix < yuuji@271: @cindex prefix > yuuji@271: @cindex prefix . yuuji@271: @cindex prefix , yuuji@271: yuuji@271: yuuji@271: La@TeX{}の編集には試行錯誤がつきものです。ある部分を一括でコメントアウト yuuji@271: したり、コメントを外したりしたいことがあります。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] > yuuji@271: @dots{} リジョンを % でコメントアウト yuuji@271: @item [prefix] < yuuji@271: @dots{} リジョンの % のコメントを外す yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: は、あらかじめ設定したリジョンに対しての操作、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] . yuuji@271: @dots{} 現在のパラグラフをコメントアウト yuuji@271: @item [prefix] , yuuji@271: @dots{} 現在のパラグラフのコメントを外す yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: は、カーソルの位置するパラグラフ全体に対しての操作です。なお、ここでいう yuuji@271: 「パラグラフ」は (@code{mark-paragraph}) 関数によりマークされる範囲を指し yuuji@271: ます(標準設定で@kbd{ESC h}にバインドされている)。なお、既に@code{%}でコメ yuuji@271: ントアウトされているパラグラフに対して繰り返しパラグラフのコメントを使用し yuuji@271: た場合の動作は保証しませんので御注意ください。 yuuji@271: yuuji@271: さて、文章に対してだけでなく、時には@code{\begin}, @code{\end} 自体に対 yuuji@271: してもコメントアウトの操作をしたいときがあります。このようなときは、 yuuji@271: @code{\begin@{@}} あるいは @code{\end@{@}} の行にカーソルを合わせ、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] > yuuji@271: @dots{} @code{\begin@{@}}〜@code{\end@{@}} 全てコメントアウト yuuji@271: @item [prefix] < yuuji@271: @dots{} @code{\begin@{@}}〜@code{\end@{@}} 全てコメントを外す yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: とすることで、@code{\begin〜\end}で囲まれる環境全てに対してコメント操作し、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] . yuuji@271: @dots{} @code{\begin@{@}} と @code{\end@{@}} をコメントアウト yuuji@271: @item [prefix] , yuuji@271: @dots{} @code{\begin@{@}} と @code{\end@{@}} のコメントを外す yuuji@271: @end table yuuji@271: yuuji@271: は、対応する @code{\begin} と @code{\end} 2行だけを、コメント操作の対象と yuuji@271: します。リジョンをコメントアウトしようとして、マークを設定したのちにカーソ yuuji@271: ルを移動し@kbd{[preifx] >} を押してもカーソルが @code{\begin@{@}} の上にあ yuuji@271: ると@code{\begin@{@}}〜@code{\end@{@}}モードでコメント機能が働いてしまうの yuuji@271: で注意して下さい。 yuuji@271: yuuji@271: @node Cursor jump, Modifying/Deleting, Commenting out, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter カーソルジャンプ yuuji@271: @cindex カーソルジャンプ[かあそるしやんふ] yuuji@271: @cindex prefix g yuuji@271: yuuji@271: yuuji@271: @menu yuuji@517: * 対応オブジェクトへのジャンプ:: yuuji@517: * お絵描きツール起動:: yuuji@517: * メインファイルへのジャンプ:: yuuji@517: * 環境を単位としたジャンプ:: yuuji@517: * 最後の補完位置へのジャンプ:: yuuji@271: @end menu yuuji@271: yuuji@271: @node 対応オブジェクトへのジャンプ, お絵描きツール起動, Cursor jump, Cursor jump yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 対応オブジェクトへのジャンプ yuuji@271: yuuji@271: 文書中のいろいろな場所で yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] g yuuji@271: @dots{} 対応するオブジェクトにジャンプ yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を押すことにより、カーソル位置のLa@TeX{}コマンドに対応する場所にジャンプ yuuji@271: します。対応関係が存在すると解釈されるコマンドには以下のものがあります。 yuuji@271: yuuji@271: @itemize @bullet yuuji@271: @item @code{\begin@{@}} ←→ @code{\end@{@}} yuuji@271: @item @code{%#BEGIN} ←→ @code{%#END} yuuji@271: @item 画像ファイルの取り込みマクロ → 対応するviewer/お絵かきツール起動 yuuji@271: @item @code{\label@{@}} ←→ @code{\ref@{@}} yuuji@271: @item @code{\include(\input)} → 対応するファイル yuuji@271: @item @code{\bibitem@{@}} ←→ @code{\cite@{@}} yuuji@271: @end itemize yuuji@271: yuuji@271: @code{\begin@{@}} か @code{\end@{@}} の行で@kbd{[prefix] g}を押すことに yuuji@271: より、対応する@code{end/begin}の行にジャンプします。もちろん対応するものが yuuji@271: ない場合はエラーになります。またこれは、領域固定のための @code{%#BEGIN} と yuuji@271: @code{%#END} のペアに対しても同様に動作します。なお、@code{label/ref}や yuuji@271: @code{cite/bibitem}対応するものが別ファイルにある時は、ジャンプ先となるファ yuuji@271: イルがオープンされていなければなりません。@xref{%#notation}. yuuji@271: メインの .tex ファイルの @code{\include@{chap1@}} などにカーソルを合わせ、 yuuji@271: @kbd{[prefix] g} を押すと、@file{chap1.tex} にジャンプします。 yuuji@271: yuuji@271: また、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] 4 g yuuji@271: @dots{} 別ウィンドウで対応オブジェクトにジャンプ yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を押すと、対応するオブジェクトへのジャンプを別ウィンドウで行います。ただし、 yuuji@271: この機能は @code{begin/end}, @code{%#BEGIN/%#END} 間のジャンプに対しては yuuji@271: (意味がないと思われるので)機能しないので注意してください。 yuuji@271: yuuji@271: @node お絵描きツール起動, メインファイルへのジャンプ, 対応オブジェクトへのジャンプ, Cursor jump yuuji@271: @comment node-name, next, previous, up yuuji@271: @section お絵描きツール起動 yuuji@271: @cindex お絵描きツール起動[おえかきつうるきとう] yuuji@271: yuuji@271: 上記の「画像ファイルの取り込みマクロ」とは、例えば yuuji@271: @code{\epsfile@{file=foo@}} のような挿絵取り込みコマンドのことで、この行に yuuji@271: カーソルを合わせて@kbd{[prefix] g}を押すとその画像ファイルの元となったファ yuuji@271: イルを対応するお絵描きツールを起動してオープンします。起動するツールの判定 yuuji@271: は以下のようになされます。 yuuji@271: yuuji@271: @enumerate yuuji@271: @item yuuji@271: カレント行が変数 @code{YaTeX-processed-file-regexp-alist} に定義さ yuuji@271: れている正規表現のいずれかとマッチしたら、ファイル名に相当する部分を yuuji@271: \\(\\)から抜き出して覚えておく(何番目の\\(\\)かは変数の各リストの cdr 部に yuuji@271: 入れておく)。マッチしなければ何もしない。 yuuji@271: @item yuuji@271: 行末に、変数 @code{YaTeX-file-processor-alist} に登録されているコマンドが yuuji@271: 「%コマンド」 のように書いてあれば強制的に「コマンド ファイル名.拡張子」を yuuji@271: 起動。 yuuji@271: @item yuuji@271: なければ、変数 @code{YaTeX-file-processor-alist} の各リストのcdr部に入って yuuji@271: いる拡張子を「ファイル名」の後ろに足したファイルが存在するか順次調べて、存 yuuji@271: 在した場合car部に入っているコマンドを起動する。 yuuji@271: @item yuuji@271: 以上どれかにマッチしなければあきらめる。 yuuji@271: @end enumerate yuuji@271: yuuji@271: yuuji@271: 変数 @code{YaTeX-file-processor-alist} と変数 yuuji@271: @code{YaTeX-file-processor-alist} の設定方法についてはそれぞれの変数につい yuuji@271: て describe-variable して説明を読んで下さい。うまく設定すると、画像ファイ yuuji@271: ルにかぎらず、任意の形式のファイルを任意のプロセッサで処理するコマンドを簡 yuuji@271: 単に呼び出すことができます。 yuuji@271: yuuji@271: @node メインファイルへのジャンプ, 環境を単位としたジャンプ, お絵描きツール起動, Cursor jump yuuji@271: @comment node-name, next, previous, up yuuji@271: @section メインファイルへのジャンプ yuuji@271: yuuji@271: @file{chap1.tex}のようなサブファイルで、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] ^ yuuji@271: @dots{} メインファイルにジャンプ yuuji@271: @item [prefix] 4 ^ yuuji@271: @dots{} 別ウィンドウでメインファイルにジャンプ yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を押すと、メインファイルの編集バッファに切替えます。もし、メインファイルを yuuji@271: オープンしていない場合は、カレントディレクトリから探して自動的にオープンし yuuji@271: ます。 yuuji@271: yuuji@271: @node 環境を単位としたジャンプ, 最後の補完位置へのジャンプ, メインファイルへのジャンプ, Cursor jump yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 環境を単位としたジャンプ yuuji@271: yuuji@271: さらに現在の環境を単位として機能するコマンドに以下のものがあります。 yuuji@271: yuuji@271: @cindex 環境の先頭へ[かんきようのせんとうへ] yuuji@271: @cindex 環境の末尾へ[かんきようのまつひへ] yuuji@271: @cindex 環境をマーク[かんきようをまあく] yuuji@271: @cindex M-C-a yuuji@271: @cindex M-C-e yuuji@271: @cindex M-C-@@ yuuji@271: @table @kbd yuuji@271: @item M-C-a yuuji@271: @dots{} 環境の先頭(@code{\begin})へジャンプ yuuji@271: @item M-C-e yuuji@271: @dots{} 環境の末尾(@code{\end})へジャンプ yuuji@271: @item M-C-@@ yuuji@271: @dots{} 環境全体をマーク yuuji@271: @end table yuuji@271: yuuji@271: 上記のコマンドは通常の@kbd{[prefix]}キーではなく@kbd{META}キーをプリフィク yuuji@271: スとして機能するのでご注意下さい。 yuuji@271: yuuji@271: @node 最後の補完位置へのジャンプ, , 環境を単位としたジャンプ, Cursor jump yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 最後の補完位置へのジャンプ yuuji@271: yuuji@271: 野鳥は補完入力した位置を常にレジスタ @code{3}に保存しています。 yuuji@271: 入力途中で如何なるファイルの如何なる位置に行ったとしても、 yuuji@271: @kbd{C-x j 3}(@code{jump-to-register})を使って直ちに最後の補完入力位置に戻 yuuji@271: ることができます。 yuuji@271: yuuji@271: @node Modifying/Deleting, Filling, Cursor jump, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 変更/削除 yuuji@271: @cindex 変更/削除[へんこう/さくしよ] yuuji@271: @cindex prefix c yuuji@271: @cindex prefix k yuuji@271: yuuji@271: 既に入力されている La@TeX{} コマンドの変更/削除のために以下の機能が用意 yuuji@271: されています。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] c yuuji@271: @dots{} カーソル位置の La@TeX{} コマンドの変更 yuuji@271: @item [prefix] k yuuji@271: @dots{} カーソル位置の La@TeX{} コマンドの削除 yuuji@271: @end table yuuji@271: yuuji@271: yuuji@271: これらのコマンドは、コマンドを起動する場所によって動作を決定するので注意し yuuji@271: て下さい。 yuuji@271: yuuji@271: @menu yuuji@271: * Changing LaTeX command:: La@TeX{} コマンドの変更 yuuji@271: * Killing LaTeX command:: La@TeX{} コマンドの削除 yuuji@271: @end menu yuuji@271: yuuji@271: @node Changing LaTeX command, Killing LaTeX command, Modifying/Deleting, Modifying/Deleting yuuji@271: @comment node-name, next, previous, up yuuji@271: @section La@TeX{} コマンドの変更 yuuji@271: yuuji@271: 変更したい La@TeX{} コマンドにカーソルを合わせて @kbd{[prefix] c} yuuji@271: を押すとそのコマンドを補完入力などを用いて手軽に変えることができます。 yuuji@271: @kbd{[prefix] c} で変更できるコマンドには以下のものがあります。 yuuji@271: yuuji@271: @itemize yuuji@271: @item @code{begin/end} の環境名 yuuji@271: @item section型コマンドのコマンド名 yuuji@271: @item section型コマンドの引数 yuuji@271: @item section型コマンドのオプションパラメータ([]で囲まれたもの) yuuji@271: @item large型コマンド yuuji@271: @item (イメージ補完で入力可能な)数式モード専用のmaketitle型コマンド yuuji@271: @end itemize yuuji@271: yuuji@271: 変えたいsection型コマンドの引数がさらに La@TeX{} コマンドを含む場合は、 yuuji@271: その引数を囲む中括弧の上で @kbd{[prefix] c} を押すことで中のコマンドを変更 yuuji@271: 対象判定から除外することができます。 yuuji@271: yuuji@271: @cindex 環境名の変更[かんきようめいのへんこう] yuuji@271: yuuji@271: @node Killing LaTeX command, , Changing LaTeX command, Modifying/Deleting yuuji@271: @comment node-name, next, previous, up yuuji@271: @section La@TeX{} コマンドの削除 yuuji@271: yuuji@271: @kbd{[prefix] k} は起動する位置により yuuji@271: 次のような動作を行います。 yuuji@271: @cindex 環境の削除[かんきようのさくしよ] yuuji@271: yuuji@271: yuuji@271: @example yuuji@271: 起動位置 動作 yuuji@271: \begin, \endの行 @code{\begin\end}ペアの削除 yuuji@271: %#BEGIN, %#END の行 %#BEGIN,%#ENDペアの削除 yuuji@271: section型コマンドの上(中) section型コマンドの削除 yuuji@271: フォント指定括弧の上 フォント指定の削除 yuuji@271: 括弧の上 対をなす括弧の削除 yuuji@271: @end example yuuji@271: yuuji@271: yuuji@271: @code{\begin, \end} および @code{%#BEGIN, %#END} を削除する場合、 yuuji@271: @code{\begin, \end} や @code{%#BEGIN, %#END} の存在する行は yuuji@271: まるごと削除されるので、それらの一行に @code{\begin} などを二つ以上連ねて yuuji@271: 書かないように注意してください。 yuuji@271: 上記のものはすべて本文を囲う「容器」を削除するように働きますが、 yuuji@271: universal-argument (@kbd{C-u}) を打った後で@kbd{[prefix] k}をタイプすると、 yuuji@271: それぞれの「容器」に含まれる「中身」も一気に削除します。以下の例を参考にし yuuji@271: て下さい。 yuuji@271: yuuji@271: @example yuuji@271: 元のテキスト: [prefix] k C-u [prefix] k yuuji@271: 本文\footnote@{脚注@}です。 本文脚注です。 本文です。 yuuji@271: ↑(カーソル位置) yuuji@271: @end example yuuji@271: yuuji@271: @node Filling, Includeonly, Modifying/Deleting, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 桁揃え yuuji@271: @cindex 桁揃え[けたそろえ] yuuji@271: yuuji@271: @section itemの桁揃え yuuji@271: @cindex itemなどの桁揃え[itemなとのけたそろえ] yuuji@271: @cindex prefix i yuuji@271: yuuji@271: itemize 環境中にある@code{\item}の項目(文章)が複数行に渡る場合に、項 yuuji@271: 目の先頭を桁揃えしたい場合には、 yuuji@271: yuuji@271: @c @table @kbd yuuji@271: @c @item [prefix] i yuuji@271: @c @dots{} itemの桁揃え yuuji@271: @c @end table yuuji@271: yuuji@271: @table @kbd yuuji@271: @item M-q yuuji@271: @dots{} 桁揃え yuuji@271: @end table yuuji@271: @cindex NTT-jTeX[えぬていいていいしえいてつく] yuuji@271: yuuji@271: @noindent yuuji@271: によって、その item のインデントの深さに応じて fill されます。なお、古い yuuji@271: NTT jTeX を使用している場合には、Lisp 変数@code{NTT-jTeX}を@code{t}にセッ yuuji@271: トして下さい。 yuuji@271: yuuji@271: @cindex YaTeX-item-regexp yuuji@271: このとき、変数@code{YaTeX-item-regexp}の値(標準では @code{"\\\\item"})を yuuji@271: 項目指定コマンドの正規表現として検索に使用します。itemize 環境で、独自のコ yuuji@271: マンドを定義して項目を列挙している場合(例えば@code{\underlineitem})は、 yuuji@271: @file{~/.emacs} で次のように指定して下さい。 yuuji@271: yuuji@271: @lisp yuuji@271: (setq YaTeX-item-regexp yuuji@271: "\\(\\\\\\(sub\\)*item\\)\\|\\(\\\\underlineitem\\)") yuuji@271: @end lisp yuuji@271: yuuji@271: yuuji@271: この変数の指定の仕方がよく分からない場合は、独自の項目列挙コマンドの名前を yuuji@271: @code{@code{"\item"}で始まるものにして下さい(例えば"\itembf"})。 yuuji@271: yuuji@271: 野鳥の @kbd{M-q} では @code{\item} を環境に応じて以下のように「ハングイン yuuji@271: デント」します。 yuuji@271: yuuji@271: @example yuuji@271: itemize, enumerate環境: yuuji@271: >\item[ほげほげ] 英語では、特に意味のない単語を `foo' であらわしま yuuji@271: > すが、これの日本語版ともいえる単語が「ほげほげ」 yuuji@271: > です。 yuuji@271: description環境: yuuji@271: > \item[へろへろ] 「ほげほげ」をでたらめが単語として使った時に、第 yuuji@271: > 2のでたらめな単語として「へろへろ」が使われることが多 yuuji@271: > いようです。 yuuji@271: @end example yuuji@271: yuuji@271: @section パラグラフの桁揃え yuuji@271: @cindex パラグラフの桁揃え[はらくらふのけたそろえ] yuuji@271: @cindex M-q yuuji@271: yuuji@271: itemize環境以外でのパラグラフの桁揃え(fill)は、基本的に他のモードと同じ yuuji@271: ように機能しますが、verbatim環境や、tabular環境など桁揃えをすると悲惨な状 yuuji@271: 況になるような環境中では機能しません。また、\verb で括ってあるものは決して yuuji@271: 行分割されません(変数 @code{YaTeX-verb-regexp} で制御) )。さらに、一時的に yuuji@271: インデントの深さを変えてある箇所では、そのインデントの先頭で@kbd{M-q}を押 yuuji@271: すことにより fill-prefix をいちいち変更しなくて桁揃えができます。 yuuji@271: yuuji@271: yuuji@271: @node Includeonly, What column, Filling, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 勝手にincludeonly yuuji@271: @cindex 勝手にincludeonly[かつてにincludeonly] yuuji@271: @cindex includeonly yuuji@271: yuuji@271: ファイルを分割して文章を入力している時には、メインファイル中に yuuji@271: yuuji@271: @example yuuji@271: \includeonly@{現在編集中のファイル名@} yuuji@271: @end example yuuji@271: yuuji@271: @noindent yuuji@271: のように書いておくことで、タイプセットの時間を節約できますが、ちょっと他の yuuji@271: ファイルを手直ししたい時には yuuji@271: @cindex 他のファイルの手直し[ほかのふあいるのてなおし] yuuji@271: yuuji@271: @example yuuji@271: \includeonly@{ちょっと手直ししたいファイル名@} yuuji@271: @end example yuuji@271: yuuji@271: yuuji@271: と書き直さなければならず手間がかかります。野鳥では現在編集しているファイル yuuji@271: 名がメインファイルの@code{\includeonly}にない場合には自動的にこれを検出し、 yuuji@271: 次の指示を仰ぎます。 yuuji@271: yuuji@271: @example yuuji@271: A)dd R)eplace %)comment? yuuji@271: @end example yuuji@271: yuuji@271: yuuji@271: 現在編集中のファイルを @code{\includeonly} のリストに加えたい時には@kbd{a} yuuji@271: を、現在編集中のファイルだけを @code{\includeonly} にしたい時は@kbd{r}を、 yuuji@271: @code{\includeonly} の行をコメントアウトして無効化したい時には、@kbd{%}を yuuji@271: それぞれ押して下さい。 yuuji@271: yuuji@271: @node What column, Intelligent newline, Includeonly, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter ここはどこ? yuuji@271: @cindex ここはどこ?[ここはとこ?] yuuji@271: @cindex prefix & yuuji@271: @cindex 複雑なtabular[ふくさつなtabular] yuuji@271: yuuji@271: 項目数の多い tabular などをたくさん書いていると下の方の行で、いま書いて yuuji@271: いる桁がどこに対応するのかわからなくなってしまうことがあります。例えば、以 yuuji@271: 下のような tabular において、 yuuji@271: yuuji@271: @example yuuji@271: \begin@{tabular@}@{|c|c|c|c|c|c|c|c|@}\hline yuuji@271: 氏名&所属&〒&住所&電話&FAX&帰省先&帰省先電話\\ \hline yuuji@271: 矢上二郎 & 6 & 223 & 横浜市港北区日吉 & xxx-yyy & yuuji@271: zzz-www & トンガ & 9876-54321 \\ yuuji@271: 日吉小僧 & 2 & \multicolumn@{2@}@{c|@}@{教えない@} yuuji@271: &&&(???) yuuji@271: \\ \hline yuuji@271: \end@{tabular@} yuuji@271: @end example yuuji@271: yuuji@271: yuuji@271: (???)の部分がどの項目なのかすぐに判断するのは難しいでしょう。こんな時は、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] & yuuji@271: @dots{} 現在のカラム表示 yuuji@271: @end table yuuji@271: @cindex 現在のカラム表示[けんさいのからむひようし] yuuji@271: yuuji@271: @noindent yuuji@271: を押すとカーソル位置のカラムがどの項目に該当するかをミニバッファに表示しま yuuji@271: す。tabular/array環境の第1行目を項目名の並びとみなして対応するものを探しま yuuji@271: す。もし項目名として別のものを表示して欲しい場合は、行頭を@code{%}にしてダ yuuji@271: ミーの項目並びを作っておくと良いでしょう。 yuuji@271: yuuji@271: @node Intelligent newline, Usepackage cheker, What column, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter おまかせ改行 yuuji@271: @cindex おまかせ改行[おまかせかいきよう] yuuji@271: @cindex &入力[&にゆうりよく] yuuji@271: yuuji@271: tabular[*], array, itemize, enumerate, tabbing 環境をbegin型補完で入力し yuuji@271: た時、または各環境内で yuuji@271: yuuji@271: @table @kbd yuuji@271: @item ESC RET yuuji@271: @dots{} おまかせ改行 yuuji@271: @end table yuuji@271: yuuji@271: yuuji@271: を押すと、その環境に応じた行エントリを次の行に挿入します(begin型補完時に自 yuuji@271: 動挿入されたエントリが不要な場合は undo によって消去できます)。例えば、 yuuji@271: tabular環境では、その環境のカラム数に対応した個数の @code{&} に加え、行末 yuuji@271: の @code{\\} を入れます。この時それ以前に @code{\hline} があればそれも付け yuuji@271: 加えます。環境とそれに応じて自動入力するものの対応は以下のようになります。 yuuji@271: yuuji@271: @itemize yuuji@271: @item @code{tabular}, @code{tabular*}, @code{array} yuuji@271: yuuji@271: カラム数-1 だけの @code{&} と @code{\\}。必要に応じて @code{\hline} yuuji@271: yuuji@271: @item @code{tabbing} yuuji@271: yuuji@271: 一行目で定義している @code{\=} と同じ個数の @code{\>}。 yuuji@271: yuuji@271: @item @code{itemize}, @code{enumerate}, @code{description}, @code{list} yuuji@271: yuuji@271: @code{\item} または @code{item[]} yuuji@271: @end itemize yuuji@271: yuuji@271: tabular 環境の例のように、本機能は各環境の一行目の内容を参考にして動作す yuuji@271: るので、なるべく二行目以降で呼び出すようにしてください。 yuuji@271: yuuji@271: もし、その他の環境、例えば @code{foo}、に対して@code{おまかせ改行}を動作 yuuji@271: させたい時は、@code{YaTeX-intelligent-newline-foo} という名前の関数を定義 yuuji@271: します。定義した関数は、現在の行に改行を挿入した直後の行頭の位置で呼ばれま yuuji@271: す。関数 @code{YaTeX-indent-line} を呼ぶと現在の環境のネストに応じた深さに yuuji@271: インデントされるので、これを呼んでから何かを挿入するようなコードを書くとよ yuuji@271: いでしょう。@file{yatexenv.el}内の関数 yuuji@271: @code{YaTeX-intelligent-newline-itemize} の定義などを参考にしてください。 yuuji@271: yuuji@271: yuuji@271: @node Usepackage cheker, Changing mode of YaTeX, Intelligent newline, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 先回りusepackage yuuji@271: @cindex 先回りusepackage[さきまわり] yuuji@271: yuuji@271: begin型、section型、maketitle型、いずれかのLaTeX2eマクロを補完入力すると、 yuuji@271: そのマクロの利用に外部パッケージを必要とする場合、そのパッケージを yuuji@271: 本文中で @code{\usepackage@{@}} しているかどうかを調査し、もししていなければ yuuji@271: プリアンブルに対応するパッケージを引数にした @code{\usepackage} 文を yuuji@271: (確認後に)挿入します。 yuuji@271: yuuji@271: ただしこの機能が働くためには、パッケージ名とその中で定義されているマクロ yuuji@271: 群をalistの形式で変数 @code{YaTeX-package-alist-private} に設定しておく必 yuuji@271: 要があります。 yuuji@271: yuuji@271: @node Changing mode of YaTeX, Online help, Usepackage cheker, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 野鳥の動作モード切り替え yuuji@271: @cindex モード切り替え[もうときりかえ] yuuji@271: @cindex prefix w yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] w yuuji@271: @dots{} 野鳥動作モード切り替えメニュー yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: で野鳥自身の動作を決定する以下のモードを切り替えます。 yuuji@271: yuuji@271: @itemize @bullet yuuji@271: @item 修正モード yuuji@271: @item 野鳥数式モード yuuji@271: @end itemize yuuji@271: yuuji@271: 修正モードは、開き括弧入力時の処理をコントロールし、修正モードONの時は開き yuuji@271: 括弧の入力は開き括弧のみの入力になり、修正モードOFFの時は開き括弧の入力だ yuuji@271: けで閉じ括弧まで入力します。デフォルト(起動時)の設定は@emph{OFF}です。 yuuji@271: yuuji@271: 野鳥数式モードは、変数 @code{YaTeX-auto-math-mode} が @code{nil} の時の yuuji@271: み有効で、このとき@kbd{;}や@kbd{:}を押した時(@ref{Image completion}参照)に、 yuuji@271: どのようなイメージ補完を機能させるか、通常のキーとして機能させるかを手動で yuuji@271: 切り替えます。自動判定が遅いマシンでは@code{YaTeX-auto-math-mode} yuuji@271: @code{nil}にセットし、野鳥数式モードを手動で切り替えると良いでしょう。 yuuji@271: yuuji@271: yuuji@271: @node Online help, Inclusion hierarchy browser, Changing mode of YaTeX, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter オンラインヘルプ yuuji@271: @cindex オンラインヘルプ[おんらいんへるふ] yuuji@271: @cindex apropos yuuji@271: @cindex キーワード検索[きいわあとけんさく] yuuji@271: @cindex prefix ? yuuji@271: @cindex prefix / yuuji@271: yuuji@271: 使おうとする La@TeX{} コマンドの用法がよく分からない時は、オンラインヘル yuuji@271: プをひきましょう。ヘルプに関するキーには以下のものがあります。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] ? yuuji@271: @dots{} オンラインヘルプ yuuji@271: @item [prefix] / yuuji@271: @dots{} オンラインapropos yuuji@271: @end table yuuji@271: yuuji@271: @section オンラインヘルプ yuuji@271: @cindex グローバルヘルプ[くろおはるへるふ] yuuji@271: @cindex プライベートヘルプ[ふらいへえとへるふ] yuuji@271: @cindex YaTeX-help-file yuuji@271: @cindex YaTeX-help-file-private yuuji@271: yuuji@271: 「オンラインヘルプ」は、一般的な La@TeX{} コマンド(デフォルトでカーソル yuuji@271: 位置のコマンド)に対する説明を隣のバッファに表示します。この時参照されるヘ yuuji@271: ルプ用ファイルには「グローバルヘルプ」と「プライベートヘルプ」の二種類があ yuuji@271: り、前者は La@TeX{} の標準コマンドの主なものの説明を含むファイルで、変数 yuuji@271: @code{YaTeX-help-file}の値で指定されます。このファイルは通常公共の場所(デ yuuji@271: フォルトで@code{$EMACSEXECPATH})に置かれ、誰もがその内容を更新できるように yuuji@271: 全員に書き込み権が与えられるべきものです。後者は、非標準もしくは個人的なマ yuuji@271: クロ定義に関する説明が書かれているファイルで、変数 yuuji@271: @code{YaTeX-help-file-private}の値で指定されます。こちらはユーザのホームディ yuuji@271: レクトリの下などに置かれます。 yuuji@271: yuuji@271: @section オンラインapropos yuuji@271: yuuji@271: 「オンラインapropos」は GNU Emacs の apropos と同様、ユーザが指定したキー yuuji@271: ワードを説明文に含む項目すべてを隣のバッファに表示します。 yuuji@271: yuuji@271: もし、調べようとしたLa@TeX{}コマンドに対する説明がヘルプファイル中に見つ yuuji@271: からなかった場合は、説明文の入力を求めてくるので、可能であれば参考書などを yuuji@271: 調べてそのコマンドの説明を入力してください。もし、なにか標準的なコマンドに yuuji@271: 対する説明を書いたならばぜひ私までその説明をお送り下さい。次回の配布に含め yuuji@271: たいと思います。 yuuji@271: yuuji@271: @node Inclusion hierarchy browser, Cooperation with other packages, Online help, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter インクルード構造ブラウザ yuuji@271: @cindex インクルード構造[いんくるうとこうそう] yuuji@271: @cindex prefix d yuuji@271: yuuji@271: 複数のファイルに分割しているドキュメントを書いている場合、 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item [prefix] d yuuji@271: @dots{} インクルード構造ブラウズ yuuji@271: @end table yuuji@271: yuuji@271: @noindent yuuji@271: を押すと、そのドキュメントの親ファイルを聞いて来ます。ここで全てのファイル yuuji@271: の親となるファイル(デフォルトが示されているので大抵はRETのみ)を入力すると yuuji@271: インクルードしている全てのファイルを解析し、インクルード状況を視覚的に表示 yuuji@271: します。このバッファでは以下のキー操作が有効です。 yuuji@271: yuuji@271: @table @kbd yuuji@271: @item n yuuji@271: @dots{} 次の行に移動し対応するファイルを隣のバッファに表示 yuuji@271: @item p yuuji@271: @dots{} 上の行に移動し対応するファイルを隣のバッファに表示 yuuji@271: @item N yuuji@271: @dots{} 同じインクルードレベルの次のファイルに移動 yuuji@271: @item P yuuji@271: @dots{} 同じインクルードレベルの前のファイルに移動 yuuji@271: @item j yuuji@271: @dots{} 次の行に移動 yuuji@271: @item k yuuji@271: @dots{} 上の行に移動 yuuji@271: @item u yuuji@271: @dots{} 一代親にあたるファイルに移動 yuuji@271: @item . yuuji@271: @dots{} カーソル位置のファイルを隣のバッファに表示 yuuji@271: @item SPC yuuji@271: @dots{} 隣のバッファの対応ファイルをスクロールアップ yuuji@271: @item DEL, b yuuji@271: @dots{} 隣のバッファの対応ファイルをスクロールダウン yuuji@271: @item < yuuji@271: @dots{} 隣のバッファの対応ファイルの先頭を表示 yuuji@271: @item > yuuji@271: @dots{} 隣のバッファの対応ファイルの末尾を表示 yuuji@271: @item ' yuuji@271: @dots{} (@kbd{<}や@kbd{>}の後で)元の表示位置に戻る yuuji@271: @item RET, g yuuji@271: @dots{} カーソル位置のファイルを隣のバッファでオープン yuuji@271: @item mouse-2 yuuji@271: @dots{} RETと同じ(ウィンドウ使用時のみ) yuuji@271: @item o yuuji@271: @dots{} 隣のウィンドウに移動 yuuji@271: @item 1 yuuji@271: @dots{} 他のウィンドウを消す yuuji@271: @item - yuuji@271: @dots{} ブラウズウィンドウを小さくする yuuji@271: @item + yuuji@271: @dots{} ブラウズウィンドウを大きくする yuuji@271: @item ? yuuji@271: @dots{} ヘルプ表示 yuuji@271: @item q yuuji@271: @dots{} 表示前の状態に戻る yuuji@271: @end table yuuji@271: yuuji@271: ただし、隣のウィンドウのファイルの内容を表示する機能に関しては、対応する yuuji@271: ファイルをクローズしてしまうとうまく働きませんのでご注意ください。 yuuji@271: yuuji@271: @node Cooperation with other packages, Customizations, Inclusion hierarchy browser, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 他パッケージとの連携 yuuji@271: @cindex 他パッケージとの連携[たはつけえしとのれんけい] yuuji@271: yuuji@271: @section gmhist yuuji@271: @cindex gmhist yuuji@271: @cindex コマンドヒストリ[こまんとひすとり] yuuji@271: @cindex ヒストリ[ひすとり] yuuji@271: yuuji@271: @file{gmhist.el}と@file{gmhist-mh.el} をロードしている場合、プレヴューコ yuuji@271: マンドの入力(@kbd{[prefix] tp]})、印刷コマンドの入力(@kbd{[prefix] tl})の yuuji@271: 時に独立したヒストリを利用できます。それぞれのプロンプトで、@kbd{M-p} を押 yuuji@271: すと直前に利用したコマンド文字列をくり返し呼び出すことができます。 yuuji@271: yuuji@271: @section min-out yuuji@271: @cindex min-out yuuji@271: yuuji@271: @file{min-out.el} (@code{outline-minor-mode}) と野鳥を組み合わせて使うこ yuuji@271: とももちろん可能です。設定の方法に関しては@file{yatexm-o.el}をご覧ください。 yuuji@271: yuuji@271: @node Customizations, Etc, Cooperation with other packages, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter カスタマイズ yuuji@271: @cindex カスタマイズ[かすたまいす] yuuji@271: @cindex キーアサイン[きいあさいん] yuuji@271: yuuji@271: 野鳥の動作を制御する種々の変数を独自に設定することにより、補完入 yuuji@271: 力を起動するキーアサインを変えたり、環境名の補完候補をさらに充実さ yuuji@271: せることなどができます。 yuuji@271: yuuji@271: @menu yuuji@271: * Lisp variables:: lisp 変数 yuuji@271: * Add-in functions:: 付加関数(アドイン関数) yuuji@271: @end menu yuuji@271: yuuji@271: @node Lisp variables, Add-in functions, Customizations, Customizations yuuji@271: @comment node-name, next, previous, up yuuji@271: @section lisp 変数 yuuji@271: @cindex prefixキー変更[prefixきいへんこう] yuuji@271: yuuji@271: 例えば prefix キーを @kbd{C-c} 以外のキーにしたい場合は、 yuuji@271: @code{YaTeX-prefix}に prefix キーにしたいシンボルを定義してください。さら yuuji@271: に、「@kbd{C-c 英字}」というキーバインドは独自の関数が割り当ててあるので使 yuuji@271: いたくない。このような時は、@code{YaTeX-inhibit-prefix-letter} を @code{t} yuuji@271: に設定することにより、@kbd{C-c 英字…}のバインドが全て、対応する@kbd{C-c yuuji@271: C-英字…}に変わります(ただし、begin型 large型補完の大文字起動によるリジョ yuuji@271: ン指定は可能なままです。これも無効にしたい場合は@code{t}ではなく 1 にセッ yuuji@271: トして下さい。)。 yuuji@271: yuuji@271: @menu yuuji@271: * All customizable variables:: カスタマイズ変数一覧 yuuji@271: * Sample definitions:: カスタマイズ変数設定例 yuuji@271: * Hook variables:: hook変数 yuuji@271: * Hook file:: hook用ファイル yuuji@271: @end menu yuuji@271: yuuji@271: @node All customizable variables, Sample definitions, Lisp variables, Lisp variables yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection カスタマイズ変数一覧 yuuji@271: @cindex カスタマイズ変数一覧[かすたまいすへんすういちらん] yuuji@271: yuuji@271: yatex-mode における次の変数がカスタマイズ可能です。@file{~/.emacs} で yuuji@271: @code{setq} しておけば、そちらの定義が優先されます。括弧の中はデフォルト値 yuuji@271: です。実際に変数の値を変更する場合は @kbd{M-x describe-variable} で yuuji@271: 変数の詳細な説明を参照してください。 yuuji@271: yuuji@271: @defvar YaTeX-prefix yuuji@271: yatex-mode 中のプリフィクスキー (@kbd{\C-c}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-inhibit-prefix-letter yuuji@271: prefix キーの直後のキーバインドで @kbd{英字} のものを @kbd{C-英字} に変更 yuuji@271: (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-fill-prefix yuuji@271: 本文を書く時の行頭に挿入する接頭辞すなわち fill-prefix (@code{""(nil)}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-user-completion-table yuuji@271: 学習したLa@TeX{}コマンド保存ファイル名 (@code{"~/.yatexrc"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-kanji-code yuuji@271: 文書を作成する時の漢字コード yuuji@271: nil=既存のコードのまま 0=no-conversion 1=Shift JIS, yuuji@271: 2=JIS, 3=EUC, 4=UTF-8 (2 (MS-DOSでは1)) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar tex-command yuuji@271: La@TeX{}タイプセッタコマンド名 (@code{"platex"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar dvi2-command yuuji@271: プレヴューアコマンド名 (@code{"xdvi -geo +0+0 -s 4"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar dviprint-command-format yuuji@271: dviファイルの印刷に使われるコマンド式 (@code{"dvi2ps %f %t %s | lpr"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar dviprint-from-format yuuji@271: 上の@code{%f}に相当する開始ページ指定書式、@code{%b} が開始ページ番号に変 yuuji@271: わる (@code{"-f %b"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar dviprint-to-format yuuji@271: @code{%t} に相当する終了ページ指定書式、@code{%e}が終了ページ番号に変わる yuuji@271: (@code{"-t %e"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar makeindex-command yuuji@271: makeindexコマンド (@code{"makeindex"} (MS-DOSでは@code{"makeind"})) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-dvipdf-command yuuji@271: dviをPDFに変換するコマンド (@code{"dvipdfmx"}) yuuji@271: @end defvar yuuji@271: yuuji@379: @defvar YaTeX-on-the-fly-preview-interval yuuji@392: @kbd{[prefix] t e}で環境即時previewをする場合の変換処理までの yuuji@379: 無操作時間(秒) (0.9) yuuji@379: @code{nil} の場合は即時プレヴューをしない。 yuuji@379: @end defvar yuuji@379: yuuji@392: @defvar YaTeX-on-the-fly-math-preview-engine yuuji@392: @kbd{[prefix] t e}で数式環境を即時previewする時に用いるエンジン yuuji@392: (latex-math-previewが利用可能なときは latex-math-preview-expression を呼ぶ yuuji@392: @code{'YaTeX-typeset-environment-by-lmp} yuuji@392: そうでないときは内蔵関数を呼ぶ @code{'YaTeX-typeset-environment-by-builtin}) yuuji@392: @end defvar yuuji@392: yuuji@336: @defvar YaTeX-cmd-gimp yuuji@336: GIMPを起動するコマンド (code{"gimp"}) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-tgif yuuji@336: tgifを起動するコマンド (code{"tgif"}) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-inkscape yuuji@336: Inkscapeを起動するコマンド (code{"inkscape"}) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-dia yuuji@336: Diaを起動するコマンド (code{"dia"}) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-ooo yuuji@336: OpenOffice.orgまたはLibreOfficeを起動するコマンド (code{"soffice"}) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-gs yuuji@336: Ghostscriptを起動するコマンド (code{"gs"}) yuuji@336: @end defvar yuuji@363: @defvar YaTeX-cmd-dvips yuuji@363: dvipsを起動するコマンド(環境によってはpdvipsなど) (code{"dvips"}) yuuji@363: @end defvar yuuji@363: @defvar YaTeX-cmd-displayline yuuji@363: displaylineを起動するコマンド yuuji@363: (code{"/Applications/Skim.app/Contents/SharedSupport/displayline"}) yuuji@363: @end defvar yuuji@336: @defvar YaTeX-cmd-edit-ps yuuji@336: PostScriptファイルを編集するコマンド (変数code{"YaTeX-cmd-gimp"}の値) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-edit-pdf yuuji@336: PDFファイルを編集するコマンド (変数code{"YaTeX-cmd-ooo"}の値) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-edit-ai yuuji@336: .aiファイルを編集するコマンド (変数code{"YaTeX-cmd-inkscape"}の値) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-edit-svg yuuji@336: SVGファイルを編集するコマンド (変数code{"YaTeX-cmd-inkscape"}の値) yuuji@336: @end defvar yuuji@336: @defvar YaTeX-cmd-edit-images yuuji@336: その他画像ファイルを編集するコマンド (変数code{"YaTeX-cmd-gimp"}の値) yuuji@336: @end defvar yuuji@336: yuuji@271: @defvar YaTeX-need-nonstop yuuji@271: @code{\nonstopmode@{@}}を自動的に付加するか (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar latex-warning-regexp yuuji@271: latexコマンドの出力するウォーニング行の正規表現 (@code{"line.* [0-9]*"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar latex-error-regexp yuuji@271: 同じくエラー行の正規表現 (@code{"l\\.[1-9][0-9]*"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar latex-dos-emergency-message yuuji@271: MS-DOS上で動作する latex コマンドが、エラーにより停止するとき出力するメッ yuuji@271: セージ (@code{"Emergency stop"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar latex-message-kanji-code yuuji@271: タイプセッタの出力するメッセージの漢字コード.タイプセットバッファ yuuji@271: の出力が化ける時は、これを設定する (2, Nemacsでのみ有効) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar NTT-jTeX yuuji@271: 古いNTT-j@TeX{}使用時のようにインデントした行の先頭と前の行の yuuji@271: (タイプセット後の)字間が空いてしまうのを嫌う場合は@code{t}にする yuuji@271: (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-item-regexp yuuji@271: itemの桁揃えの時に用いる、itemの正規表現 (@code{"\\\\(sub\\)*item"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-verb-regexp yuuji@271: verbコマンドの正規表現。先頭の\\\\はつけない (@code{"verb\\*?\\|path"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-nervous yuuji@271: ローカル辞書を用いる時 @code{t} (@code{t}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-sectioning-regexp yuuji@271: セクション区切り設定コマンドの正規表現 yuuji@271: (@code{"\\(part\\|chapter\\*?\\|\\(sub\\)*\\(section\\|paragraph\\)\\*?\\)\\b"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-fill-inhibit-environments yuuji@271: fill を抑止する環境名のリスト yuuji@271: (@code{'("tabular" "tabular*" "array" "picture" "eqnarray" "eqnarray*" "equation" "math" "displaymath" "verbatim" "verbatim*")}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-uncomment-once yuuji@271: 領域uncommentで行頭の複数の@code{%}を全て削除するか (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-close-paren-always yuuji@271: 開き括弧の入力で常に閉じ括弧を入力する (@code{t}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-auto-math-mode yuuji@271: 数式モードの切り替えを自動的に行う (@code{t}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-math-key-list-private yuuji@271: 数式イメージ補完で用いる (プリフィクスキー . 対応補完テーブル) の yuuji@271: alist (@code{nil})。補完テーブルの書き方については@file{yatexmth.el}を参照。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-default-pop-window-height yuuji@271: 1画面の時にタイプセットバッファを初めて作成する時の高さ。数値で行数、数字 yuuji@271: 文字列でEmacsウィンドウに対する百分率 (10) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-help-file yuuji@271: 共用ヘルプファイル (@file{$doc-directory/../../site-lisp/YATEXHLP.jp}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-help-file-private yuuji@271: 個人用ヘルプファイル (@file{"~/YATEXHLP.jp"}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-no-begend-shortcut yuuji@271: @kbd{[prefix] b ??} のショートカットを使わず、@kbd{[prefix] b} だけで補完 yuuji@271: 入力に入る (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-hilit-pattern-adjustment-private yuuji@271: 正規表現とそれにマッチするものの論理的意味をシンボルであらわしたものの yuuji@271: リスト…のリスト。hilit19 を組み込んでいる時のみ有効。 yuuji@271: 詳しくは @code{(assq 'yatex-mode hilit-patterns-alist)} yuuji@271: した結果と、変数 @code{YaTeX-hilit-pattern-adjustment-default} の値(と場合 yuuji@271: によっては hilit19 のドキュメント)を参照せよ。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-sectioning-level yuuji@271: LaTeXのセクション単位宣言コマンドとその論理的高さのalist。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-hierarchy-ignore-heading-regexp yuuji@271: Hierarchy バッファは通常ファイルヘッダとして、LaTeXのセクション宣言コマン yuuji@271: ドの引数を検索し、それがなければコメント行を探すが、その際にヘッダとしては yuuji@271: 意味を持たないパターンをこの変数に設定する。デフォルトでは RCS ヘッダとモー yuuji@271: ド指定行(-*- xxx -*-)が設定されている。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-skip-default-reader yuuji@271: Non-nil に設定するとsection型コマンドの引数入力時、アドイン関数がなければ yuuji@271: ミニバッファでの読み込みをせずに入力を完了させる (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-create-file-prefix-g yuuji@271: @code{\include}などで @kbd{prefix g}した時に、ジャンプ先が存在しないファイ yuuji@271: ルであってもオープンする (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-simple-messages yuuji@271: 各種補完時のメッセージ出力を簡素化する (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-hilit-sectioning-face yuuji@271: 色付けが有効な時の @code{\part} の色 yuuji@271: (@code{'(yellow/dodgerblue yellow/slateblue)})。 yuuji@271: リストの第一要素は @code{hilit-background-mode} が @code{'light} の時の、 yuuji@271: 第二要素は @code{'dark} の時の @code{\chapter} の色で、文字色/背景色 のよ yuuji@271: うに指定する。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-hilit-sectioning-attenuation-rate yuuji@271: 色付けが有効な時の、@code{\subparagraph} の色を @code{\chapter} の濃度の何 yuuji@271: %薄くしたものにするか (@code{'(15 40)}) @code{YaTeX-hilit-sectioning-face} yuuji@271: の項参照。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-use-AMS-LaTeX yuuji@271: AMS-LaTeX を使用する場合は @code{t} に設定する (@code{nil}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-use-LaTeX2e yuuji@271: LaTeX2e を使用する場合は @code{t} に設定する (@code{t}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-template-file yuuji@271: 新規ファイル作成時に自動挿入するファイル名 (@code{~/work/template.tex}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-search-file-from-top-directory yuuji@271: inputするファイルを探すときの基準ディレクトリをmainファイルのあるディレクト yuuji@271: リにするか (@code{t}) yuuji@271: @end defvar yuuji@271: @defvar YaTeX-use-font-lock yuuji@271: ソースの色づけパッケージとして font-lock を利用するかどうか yuuji@271: (@code{(featurep 'font-lock)}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-use-hilit19 yuuji@271: ソースの色づけパッケージとして hilit19 を利用するかどうか yuuji@271: (@code{(featurep 'hilit19)}) yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-use-italic-bold yuuji@271: italic, boldフォントを野鳥が探すかどうか (Emacs20以降なら@code{t}) yuuji@271: font-lock利用時のみ有効。 yuuji@271: (@code{(featurep 'hilit19)} yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-singlecmd-suffix yuuji@271: 全てのmaketitle型コマンドの補完入力直後に挿入する文字列。 yuuji@271: @code{"@{@}"} などがお勧め。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-package-alist-private yuuji@271: LaTeX2eのパッケージ名とその中に含まれるマクロのリスト。 yuuji@271: 適切に設定しておくと本文入力時にマクロを補完入力すると yuuji@271: そのマクロに必要なパッケージを usepackage するか自動的に検査してくれる。 yuuji@271: していなければ \usepackage を自動追加することもできる。 yuuji@271: リストは yuuji@271: @lisp yuuji@271: '((パッケージ名1 yuuji@271: (補完タイプ マクロのリスト……) yuuji@271: (補完タイプ マクロのリスト……)) yuuji@271: (パッケージ名2 yuuji@271: (補完タイプ マクロのリスト……) yuuji@271: (補完タイプ マクロのリスト……))………) yuuji@271: @end lisp yuuji@271: という形式にする。補完タイプは @code{env, section, maketitle} のどれか。 yuuji@271: 具体例は変数 @code{YaTeX-package-alist-default} yuuji@271: の値参照。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-tabular-indentation yuuji@271: tabular/array 環境で現在行の先頭位置が表の第Nカラムのときは yuuji@271: 標準インデント位置から N*YaTeX-tabular-indentation 桁下げた yuuji@271: インデントにする。 yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-noindent-env-regexp yuuji@271: 別の環境内にあっても \begin@{@} が行頭から始まるべき環境名の正規表現。 yuuji@271: verbatim環境などを指定する。 yuuji@271: @end defvar yuuji@271: yuuji@409: @defvar YaTeX-electric-indent-mode yuuji@409: Emacs 24.4 で導入された改行時の、自動インデントをどうするか。 yuuji@409: この値がそのまま electric-indent-local-mode に渡される。 yuuji@409: -1でoff。 yuuji@409: @end defvar yuuji@409: yuuji@271: @defvar YaTeX-ref-default-label-string yuuji@271: \ref@{@} のラベル補完でラベル未設定のものに自動的に生成する yuuji@271: ラベル名の書式。strftime(3)関数に似た日付ベースで指定する。 yuuji@271: 利用できる書式は以下のとおり。 yuuji@271: %y -> 西暦下二桁, %b -> 月の英名, %m -> 月(1〜12) yuuji@271: %d -> 日, %H -> 時, %M -> 分, %S -> 秒, yuuji@271: %qx -> アルファベットで26進数化した yymmdd. yuuji@271: %qX -> アルファベットで26進数化した HHMMSS. yuuji@271: デフォルトは "%H%M%S_%d%b%y" yuuji@271: @end defvar yuuji@271: yuuji@271: @defvar YaTeX-ref-generate-label-function yuuji@271: \ref@{@}のラベル名自動生成のときに使う関数のシンボル。 yuuji@271: デフォルトは標準の YaTeX::ref-generate-label 関数が割り当ててある。 yuuji@271: 引数を2つ取る関数を定義して、この変数にセットするとその関数を呼んだ yuuji@271: 結果をデフォルトのラベル名候補とする。設定例: yuuji@271: @lisp yuuji@271: (setq YaTeX-ref-generate-label-function 'my-yatex-generate-label) yuuji@271: (defun my-yatex-generate-label (command value) yuuji@271: (and (string= command "caption") yuuji@271: (re-search-backward "\\\\begin@{\\(figure\\|table\\)@}" nil t) yuuji@271: (setq command (match-string 1))) yuuji@271: (let ((alist '(("chapter" . "chap") yuuji@271: ("section" . "sec") yuuji@271: ("subsection" . "subsec") yuuji@271: ("figure" . "fig") yuuji@271: ("table" . "tbl")))) yuuji@271: (if (setq command (cdr (assoc command alist))) yuuji@271: (concat command ":" value) yuuji@271: (YaTeX::ref-generate-label nil nil)))) yuuji@271: @end lisp yuuji@271: @end defvar yuuji@271: yuuji@271: @node Sample definitions, Hook variables, All customizable variables, Lisp variables yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection カスタマイズ変数設定例 yuuji@271: @cindex 設定例[せつていれい] yuuji@271: yuuji@271: たとえば、prefix キーとして@kbd{ESC}を使用し、新たな補完候補を格納するファ yuuji@271: イルを、@file{~/src/emacs/yatexrc} にし、行頭の prefix をタブ文字一つに変 yuuji@271: えたいときは、 yuuji@271: yuuji@271: @lisp yuuji@271: (setq YaTeX-prefix "\e" yuuji@271: YaTeX-user-completion-table "~/src/emacs/yatexrc" yuuji@271: YaTeX-fill-prefix " ") yuuji@271: @end lisp yuuji@271: yuuji@271: @noindent yuuji@271: を @file{~/.emacs} に加えます。 yuuji@271: yuuji@271: @node Hook variables, Hook file, Sample definitions, Lisp variables yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection hook変数 yuuji@271: @cindex hook変数[hookへんすう] yuuji@271: @cindex yatex-mode-hook yuuji@271: @cindex yatex-mode-load-hook yuuji@271: yuuji@271: また、hook 変数 @code{yatex-mode-hook}, @code{yatex-mode-load-hook} を用 yuuji@271: 意しています。すべての yatex-mode のバッファで作用させたいものは、 yuuji@271: @code{yatex-mode-hook} に記述し、@file{yatex.el} をロードする時だけ作用さ yuuji@271: せたいものは@code{yatex-mode-load-hook} に記述します。例えば、 yuuji@271: @code{outline-minor-mode} を利用する場合、それぞれのバッファで yuuji@271: @code{outline-minor-mode} を有効にしたいので、@code{yatex-mode-hook} を次 yuuji@271: のように設定します。 yuuji@271: yuuji@271: @lisp yuuji@271: (setq yatex-mode-hook yuuji@271: '(lambda () (outline-minor-mode t))) yuuji@271: @end lisp yuuji@271: yuuji@271: yuuji@271: 逆に、独自のキー定義を行いたい時などは、@code{yatex-mode-load-hook} を利用 yuuji@271: します。例えば、begin 型補完において、 document や、enumerate 以外の環境名 yuuji@271: もショートカットキーで入れたいなどという時は、次のようにします。以下の例は、 yuuji@271: @kbd{[prefix] ba} で @code{\begin@{abstract@}}, @code{\end@{abstract@}} を yuuji@271: 挿入します。 yuuji@271: yuuji@271: @lisp yuuji@271: (setq yatex-mode-load-hook yuuji@271: '(lambda() (YaTeX-define-begend-key "ba" "abstract"))) yuuji@271: @end lisp yuuji@271: yuuji@271: なお、新たなキーの定義には、関数 @code{YaTeX-define-key} yuuji@271: @code{YaTeX-define-begend-key}を利用するようにしてください。 yuuji@271: yuuji@271: @node Hook file, , Hook variables, Lisp variables yuuji@271: @comment node-name, next, previous, up yuuji@271: @subsection hook用ファイル yuuji@271: yuuji@271: 変数 @code{yatex-mode-load-hook} で定義する内容が多い時は、 yuuji@271: @file{yatexhks.el}というファイルを作り、その中に野鳥関連の設定を書く事で、 yuuji@271: 初期化の時に自動的にロードします。 yuuji@271: yuuji@271: yuuji@271: @node Add-in functions, , Lisp variables, Customizations yuuji@271: @comment node-name, next, previous, up yuuji@271: @section 付加関数(アドイン関数) yuuji@271: yuuji@271: 各種補完時に、環境名やコマンド名に応じたきめ細やかな補完入力機能を実現す yuuji@271: るための関数を作成することができます。この関数の作成方法や、組み込み方法に yuuji@271: 関しては、@code{yatexadd.doc} をご覧ください。 yuuji@271: yuuji@271: @node Etc, Copying, Customizations, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter その他 yuuji@271: yuuji@271: 野鳥の標準の La@TeX{} コマンドの辞書には、作者が頻繁に使うものしか登録さ yuuji@271: れていません。これは、補完候補に使いそうもないコマンドが存在して、補完した yuuji@271: いコマンドを出すまでのストローク数を増やしてしまう事を防止するためです。標 yuuji@271: 準辞書にないコマンドも、できるだけ補完入力方式を利用し、ユーザ辞書を充実さ yuuji@271: せることで、あなたの La@TeX{} スタイルにあった野鳥へと育っていくことでしょ yuuji@271: う。 yuuji@271: yuuji@271: @node Copying, Concept Index, Etc, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @chapter 取り扱い yuuji@271: yuuji@271: 本プログラムはフリーソフトウェアです。本プログラムを使用して生じたいかな yuuji@271: る結果に対しても作者は責任を負わないこととします。転載等に関しては制限いた yuuji@271: しません。常識的に扱ってください。また、本プログラムに含まれるコードを利用 yuuji@271: すること、改造することも自由に行なって構いませんが、流用することにより契約 yuuji@271: 締結の必要が生じる場合、私はいかなる契約も締結しません。具体的にはGPLへの yuuji@271: サインはしませんので、GNUに寄贈するものを作っている場合私の作品から取り込 yuuji@271: んだコードを流用すると苦労するかもしれません。いかなるコード流用も拒否しま yuuji@271: せんが契約締結は辞退します。 yuuji@271: yuuji@271: 苦情、希望、バグ報告、感想等は歓迎いたします。 yuuji@472: 連絡は yuuji@@yatex.org まで(2017年9月現在)。 yuuji@271: 継続的に使用してくださる方はメイリングリスト「fj野鳥の会」に yuuji@271: 是非加入してください。加入方法については本パッケージの @file{docs/qanda} yuuji@271: ファイルの「その他」の章を御覧ください。 yuuji@271: yuuji@271: 仕様は、予告なく確実に(気分次第で)変更されます:-p。 yuuji@271: yuuji@271: @flushright yuuji@271: 広瀬雄二 yuuji@271: @end flushright yuuji@271: yuuji@271: @node Concept Index, , Copying, Top yuuji@271: @comment node-name, next, previous, up yuuji@271: @unnumbered 索引 yuuji@271: @printindex cp yuuji@271: yuuji@271: @c カスタマイズ変数索引を索引と分離する場合にはコメントアウトを外す!!! yuuji@271: @c @node Variable Index yuuji@271: @c @comment node-name, next, previous, up yuuji@271: @c @unnumbered カスタマイズ変数索引 yuuji@271: @c @printindex vr yuuji@271: yuuji@271: @contents yuuji@271: yuuji@271: @bye yuuji@271: yuuji@271: @c Local Variables: yuuji@271: @c fill-column: 74 yuuji@271: @c fill-prefix: nil yuuji@272: @c buffer-file-coding-system: sjis yuuji@271: @c End: yuuji@271:  yuuji@271: Tag table: yuuji@271:  yuuji@271: End tag table