yatex

annotate docs/qanda @ 566:2ef9f21dd13b

Add note on YaTeX::usepackage-alist-default
author HIROSE Yuuji <yuuji@gentei.org>
date Thu, 24 Jan 2019 15:19:32 +0900
parents 025522852e1d
children ba4891b3fcf0
rev   line source
yuuji@74 1 %%
yuuji@74 2 %% Q and A on YaTeX
yuuji@74 3 %%
yuuji@74 4 %% C-u C-x $ とすると質問項目だけ表示されます。C-x $ で元に戻ります。
yuuji@74 5 %%
yuuji@74 6
yuuji@80 7 (新項目:・RefTeXは使えますか?
yuuji@387 8 ・bibtexとlatexとかを交互にかけるのが面倒なんですけど
yuuji@80 9 ・自分で定義したカウンタを\ref補完でのラベル候補対象として認識させたい
yuuji@74 10 ・{\it }内部では斜体に {\bf }では太字になるという噂を聞いたんですが…)
yuuji@74 11
yuuji@74 12 ■インストール関連
yuuji@74 13 ・マニュアルのインストール
yuuji@74 14
yuuji@74 15 Emacsのインストールされている場所の info ディレクトリにyatexj ファ
yuuji@74 16 イルをコピーし、同じディレクトリにある dir というファイルに次の
yuuji@74 17 行を足します。
yuuji@74 18
yuuji@74 19 * YaTeX: (yatexj). Yet Another tex-mode for Emacs. (Japanese).
yuuji@74 20
yuuji@74 21 (あとは M-x info として m yatex で野鳥のマニュアルを選択して読み
yuuji@74 22 ます。?を押すと info の使い方が出て来ます。)
yuuji@74 23
yuuji@74 24 ・Meadowつこてるんすが make って叩いても何も起きないです〜
yuuji@74 25
yuuji@74 26 makeはバイトコンパイルのために利用しているだけなのでやらなくても
yuuji@74 27 構いません。makeのないMeadowユーザの最短インストールは以下の通り
yuuji@74 28 です。
yuuji@74 29 1 Meadowのsite-lispディレクトリに yatex*.tar.gz を展開す
yuuji@74 30 る。これを読んでる段階では別のディレクトリに展開している可能
yuuji@74 31 性が高いので、その場合はディレクトリごと移動してしまって下さ
yuuji@74 32 い。
yuuji@74 33 2 install ファイルに書いてあるように ~/.emacs にautoloadと
yuuji@74 34 load-path, auto-mode-alist の設定を書く。
yuuji@74 35
yuuji@74 36 ・まだしたっぱなので Info ディレクトリに書き込む権利がないっすう…
yuuji@74 37
yuuji@387 38 rootにしてもらいましょう。それがだめなときは以下のようにして個人
yuuji@387 39 所有の Info ディレクトリをEmacsに認識させましょう。
yuuji@74 40
yuuji@74 41 (setq Info-default-directory-list
yuuji@74 42 (cons "自分のInfoディレクトリ"
yuuji@74 43 Info-default-directory-list))
yuuji@74 44
yuuji@74 45 ・LaTeXのヘルプファイルがないといわれる。
yuuji@74 46
yuuji@387 47 もし公共の場所に置く権限がない時は、ホームディレクトリの下のどこ
yuuji@387 48 かに置いて、変数 YaTeX-help-file にそのファイル名を設定して下さ
yuuji@387 49 い。
yuuji@74 50
yuuji@74 51 ■操作関連
yuuji@74 52 ・間違って変なLaTeXコマンドを学習させてしまった。
yuuji@74 53
yuuji@74 54 ホームディレクトリ、またはカレントディレクトリにできている
yuuji@74 55 .yatexrc に間違って学習したコマンドを含む行があるはずですから、
yuuji@74 56 その行を削除、あるいは正しいコマンドに書き直してから C-x C-s で
yuuji@74 57 .yatexrc をセーブし、C-x k でクローズします。元のLaTeX編集バッファ
yuuji@74 58 に戻ったことを確認してから M-x YaTeX-reload-dictionary とする
yuuji@74 59 と、書き換えた .yatexrc が現在のバッファに反映されます。
yuuji@74 60
yuuji@74 61 ・リジョンを指定してコメントアウトしようとしたのにうまくいかない。
yuuji@74 62
yuuji@74 63 おそらくカーソルが \begin{}, \end{} の行に乗っているのだと思いま
yuuji@74 64 す。一行上か下によけて C-c > してください。
yuuji@74 65
yuuji@74 66 ・タイプセットの時に親ファイルを聞かれて、その時に間違えてしまった。
yuuji@74 67
yuuji@74 68 C-x C-v RET でもう一度子ファイルを読み直すか、
yuuji@74 69 C-u C-c ^ で親ファイルをもう一度入力してください。
yuuji@74 70
yuuji@74 71 ・Demacsでタイプセットエラーがでた時にtypesetバッファがうまく表示されない。
yuuji@74 72
yuuji@74 73 Demacs 1.2.0 で子プロセスが1以上の errorlevel を返した場合、この
yuuji@74 74 ような症状が起きる事があります。jlatex をバッチファイルから呼ぶ
yuuji@74 75 ようにし、その末尾で必ず errorlevel 0 を返すダミーのコマンドを呼
yuuji@74 76 ぶようにします。
yuuji@74 77
yuuji@74 78 ・「\underline{\makebox[4em][l]{x y}{\tt z}}」 などを手軽に入力したい。
yuuji@74 79
yuuji@74 80 section型補完の引数をミニバッファで入力する時にも再帰的に種々の
yuuji@74 81 補完機能が使えます。表題のコマンド列を補完入力したものが以下の例
yuuji@74 82 です。
yuuji@74 83 プロンプト キー入力
yuuji@74 84 C-c s und SPC RET
yuuji@74 85 \underline{???}: C-c s makeb SPC RET
yuuji@74 86 Width: 4em RET
yuuji@74 87 makebox position (`lr'): - l RET
yuuji@74 88 \makebox{???}: x y RET
yuuji@74 89 \underline{???}: \makebox[4em][l]{x y} C-c l tt RET
yuuji@74 90 \underline{???}: \makebox[4em][l]{x y}{\tt } z RET
yuuji@74 91
yuuji@74 92 ・「\footnote{ほげほげ}」と書いたけど\footnote{}を取り払いたい。
yuuji@74 93
yuuji@74 94 \footnote の部分にカーソルを合わせて C-c k としてください。
yuuji@74 95 \footnote{} の部分だけ選んで消去します。
yuuji@74 96 全部いらない場合は C-u C-c k とします。
yuuji@74 97
yuuji@74 98 ・「ほにゃらら」の部分を\footnoteにしたい。
yuuji@74 99
yuuji@74 100 「ほにゃらら」の部分をマークして C-c S footnote RET などとします。
yuuji@74 101 (Sは大文字)
yuuji@74 102
yuuji@74 103 ・いまある verbatim 環境を verbatim* 環境にしたい。
yuuji@74 104
yuuji@74 105 \begin{verbatim} か \end{verbatim} の行で、C-c c します。
yuuji@74 106
yuuji@74 107 ・指定領域を \verb で囲みたい。
yuuji@74 108
yuuji@74 109 残念ながら \verb は maketitle 型なので該当する機能はありません。
yuuji@74 110 ただ C-c $ が領域を $ で括る事を利用して次のようにできます。
yuuji@74 111 . .
yuuji@74 112 ここからここまでを \verb にする
yuuji@74 113 \verbここからここまでを \verb にする (\verbを入れる)
yuuji@74 114 ↑(C-@) (「こ」の位置でマーク)
yuuji@74 115 \verbここからここまでを \verb にする ($でくくる)
yuuji@74 116 ↑C-c $
yuuji@74 117 \verb$ここからここまで$を \verb にする (完成)
yuuji@74 118
yuuji@74 119 ・子ファイルを編集していて typeset-region をやる時に子ファイルの上の方で
yuuji@74 120 定義してあるコマンドも読んで欲しい。
yuuji@74 121
yuuji@74 122 章毎に複数メンバーでファイルを編集する時に子ファイルだけで通用す
yuuji@74 123 るマクロを子ファイルの上の方で定義している場合には、typeset
yuuji@74 124 region をする時にそれらの行も必要になって来ます。こういう場合は、
yuuji@74 125 子ファイルのマクロ定義の行の末尾に %#REQUIRE をつけることで臨時
yuuji@74 126 タイプセットファイルの先頭にその行がコピーされます。
yuuji@74 127
yuuji@74 128 さらに孫ファイルがあった場合を考えてみましょう。
yuuji@74 129 +-- main.tex --+ +---- sub.tex ----+ +-- subsub.tex --+
yuuji@74 130 | : | |%#jlatex main | |%#jlatex main |
yuuji@74 131 |\include{sub} | |\include{macros} | |..... |
yuuji@74 132 | : |←| : |←|%#BEGIN |
yuuji@74 133 | : | | : | |この辺を |
yuuji@74 134 | : | +-----------------+ |タイプセット |
yuuji@74 135 +--------------+ ↑ |したい |
yuuji@74 136 +-- macros.tex ---+ |%#END |
yuuji@74 137 |\def\foo{bar} | |: |
yuuji@74 138 |\def\hoge{hero} | +----------------+
yuuji@74 139 +-----------------+
yuuji@74 140
yuuji@74 141 このような場合 sub.tex の \include{macros} の行を以下のように変
yuuji@74 142 えます。
yuuji@74 143 \include{macros} %#REQUIRE
yuuji@74 144
yuuji@74 145 さらに subsub.tex のどこかに以下のような行を加えます。
yuuji@74 146
yuuji@74 147 %#REQUIRE \include{macros}
yuuji@74 148
yuuji@74 149 %#REQUIRE が行頭にある時はそれより後ろの部分が臨時ファイルにコピー
yuuji@74 150 されます。これにより、全体をタイプセットする時、または sub.tex,
yuuji@74 151 subsub.tex いずれかを typeset-region する時どちらにおいてもかな
yuuji@74 152 らず一度だけ macros.tex がインクルードされることになります。
yuuji@74 153
yuuji@74 154 ・直前に入れた \foo{引数だよ} の「引数だよ」をもう一回使いたい。
yuuji@74 155
yuuji@387 156 ミニバッファで \foo{???}: と聞かれた時に M-p (ESC p)を
yuuji@74 157 押すと今まで入力した文字の履歴を逆方向にたどって表示します。M-n
yuuji@74 158 と押すと順方向にたどります。これらの入力履歴は begin 型補完、
yuuji@74 159 section 型補完、プレヴューア起動、プリントアウトコマンド起動それ
yuuji@74 160 ぞれに対し独立に設定されます。
yuuji@74 161
yuuji@74 162 ・ref←→label間ジャンプで存在するはずのref/labelにジャンプしない。
yuuji@74 163
yuuji@74 164 C-c g とだけ打つと対応するref/labelの前方検索から始めます。
yuuji@74 165 C-u C-c g と打つと後方検索から始めます。続けて \ref を検索するよ
yuuji@74 166 うな場合は C-s (C-r) を二回続けて押しインクリメンタルサーチの連
yuuji@74 167 続検索機能を利用します。もしジャンプ先が別ファイルにある時は、そ
yuuji@74 168 のファイルをあらかじめオープンしておく必要があります。C-c d の
yuuji@74 169 YaTeX-display-hierarchy は全てのファイルを一気にオープンするため
yuuji@74 170 にも使えます。
yuuji@74 171
yuuji@74 172 ・fill-paragraph や auto-fill で行末に%が付いちゃう。
yuuji@74 173
yuuji@74 174 TeX version 2 ベースのNTT-jTeXでは日本語のパラグラフの各行頭をイ
yuuji@74 175 ンデントして書くとその分スペースが余計に入った印刷イメージになっ
yuuji@74 176 てしまいます。それを回避するために行末に % を付ける必要がありま
yuuji@74 177 す。野鳥ではインデントされたテキストをNTT版でも入力できるように
yuuji@74 178 「行末%」の面倒をみています。でもバグってる可能性ありありなので、
yuuji@74 179 行末以外に % が出るなどの現象を発見したらご連絡ください。
yuuji@74 180
yuuji@74 181 ・itemize環境の中のitemizeのインデントが深すぎやしませんか?
yuuji@74 182
yuuji@74 183 でしょ? 某K君があのほうがいいって言って、TABを打っては一人酔いし
yuuji@74 184 れているのでので、そうしたんですが、私は気に入りません(←まだ根
yuuji@74 185 に持ってる)。「深すぎる!」という方は、内側の\begin{itemize} の行
yuuji@74 186 末でTABを打ってください。なぬ、今度は浅すぎる? さてトイレ行こ。
yuuji@74 187
yuuji@74 188 ・いつも雛型として使っている template.tex を簡単に入れたい
yuuji@74 189
yuuji@387 190 ~/work/template.tex に置きましょう。置き場所を変えたい場合は
yuuji@387 191 (setq YaTeX-template-file "~/hogehoge/fugafuga.tex")
yuuji@387 192 のようにして変更できます。
yuuji@74 193
yuuji@74 194 ・bibtexとlatexとかを交互にかけるのが面倒なんですけど
yuuji@74 195
yuuji@387 196 yatex1.76からラベルやbibtexでの文献番号不整合を自動的に検知して、
yuuji@387 197 再処理が必要なときは自動的に再起動するようになりました(auto rerun)。
yuuji@387 198 ほとんどの場合、野鳥の auto rerun で対処できるはずです。ただし、
yuuji@387 199 以下で述べるlatexmkを利用する場合は重複処理になるため野鳥の
yuuji@387 200 auto rerun を無効化してください。無効化は
yuuji@387 201 (setq YaTeX-typeset-auto-rerun nil)
yuuji@387 202 します。
yuuji@74 203
yuuji@387 204 同じ目的のツールに latexmk というツールがあります。これは、.tex,
yuuji@387 205 .bib, .idx などのファイル間の依存関係を調べ、自動的に bibtex,
yuuji@387 206 makeindex, platex などを必要な順序で必要な回数起動してくれます。
yuuji@387 207 これをインストールし、各ドキュメントの先頭に
yuuji@387 208
yuuji@387 209 %#!latexmk
yuuji@387 210
yuuji@387 211 などと書いてタイプセッタとして latexmk を指定することで利用でき
yuuji@387 212 ます。なお、latexmk は CTAN サイトにあります。
yuuji@387 213 (http://www.ctan.org/pkg/latexmk/)
yuuji@74 214
yuuji@74 215 ・タイプセットとプレヴューでキーが違うのが面倒ですね?
yuuji@74 216
yuuji@74 217 そういうことを感じるということは、もしかして、プレヴューアを起動
yuuji@74 218 して確認したのちに、いちいちプレヴューアを終了させたりしてますか?
yuuji@74 219 UNIXでもWindowsでもそんなことは普通しなくていいんです。一度起動
yuuji@74 220 したプレヴューアは常駐させておけば、表でLaTeXソースをタイプセッ
yuuji@74 221 トすれば、次回プレビューアの窓を選択したときに勝手にリロードして
yuuji@74 222 くれます。プレビューアを毎回終了させるとフォントのロードなどオー
yuuji@74 223 バーヘッドが大きいので、是非常駐させましょう。意外にそのことを教
yuuji@74 224 えてもらってない人がいるようなので書いてみました。
yuuji@74 225
yuuji@74 226 結局のところほとんど [prefix] tj のタイプセットのみで用件は終わ
yuuji@74 227 ります。また、もしbibtexなど、他の関連コマンドを繰り返し利用する
yuuji@74 228 ような場合は、前項で紹介した latexmk コマンドを利用するというの
yuuji@74 229 がスマートな解決策です。結局のところ、ほとんど [prefix] tj と打っ
yuuji@74 230 て仕事を進めることになります。
yuuji@74 231
yuuji@74 232 ・fillがうまく行かないなあ
yuuji@74 233
yuuji@74 234 デフォルトのインデンテーション(TABを押すと移動するカラム)と違う
yuuji@74 235 パラグラフをfillしようとするとうまく行きません。auto-fill をONに
yuuji@74 236 して文章を入力していればこの問題は起きないはずです。もし、他のと
yuuji@74 237 ころからコピーした段落で、デフォルトのインデンテーションと違う段
yuuji@74 238 落ができてしまった場合は、
yuuji@74 239
yuuji@74 240 (1)行頭で C-x . (fill-prefixをキャンセルする)
yuuji@74 241 (2)インデンテーションを揃えたい範囲をマークする
yuuji@74 242 (3)M-C-\ する。
yuuji@74 243
yuuji@74 244 という操作でデフォルトのインデンテーションに揃えることができます。
yuuji@74 245 もし、デフォルトとは違う深さでfillしたい場合は、行の最初の非空白
yuuji@74 246 文字にカーソルを合わせて M-q してください。
yuuji@74 247
yuuji@74 248 ・Win95/WinNTでタイプセッタなど外部プロセスが呼べない
yuuji@74 249
yuuji@74 250 shellを変更していないならとりあえず、
yuuji@74 251 (setq shell-command-option "\\/c")
yuuji@74 252 を .emacs に入れてみましょう。
yuuji@74 253
yuuji@74 254 UNIX系のshell(sh, bash, tcsh, zsh等)を使っている場合は、
yuuji@74 255 (setq shell-command-option "-c")
yuuji@74 256 を .emacs に入れてみましょう。
yuuji@74 257
yuuji@74 258
yuuji@80 259 ・RefTeXは使えますか?
yuuji@80 260
yuuji@80 261 使っている人はいるみたいですから使えるんじゃないでしょうか。でも
yuuji@80 262 ですね、野鳥の \ref 補完があれば、RefTeXなんぞ要らないと思います
yuuji@80 263 よ。これからは\label{}はいちいち自分では作らずにいきなり[prefix]
yuuji@80 264 s で \ref を打ち込みましょう。勝手にラベルを打てそうなところを探
yuuji@80 265 して勝手にラベルを打ってその名前を\refに入れてくれます。\ref補完
yuuji@80 266 は \label{} と \ref{} 両方同時に補完入力します。
yuuji@80 267
yuuji@80 268 でですね、\ref補完の方がしょぼいと思うなら改良しますよ。「RefTeX
yuuji@80 269 の方が色がついてかっちょええ」という問題以外ならすぐに頑張ります。
yuuji@80 270
yuuji@80 271 ・自分で定義したカウンタを\ref補完でのラベル候補対象として認識させたい
yuuji@80 272
yuuji@80 273 おお、これは高度な質問でござるよ。ちみすごいね。え、質問の意味が
yuuji@80 274 分からん? じゃLaTeXのおべんきょーから。
yuuji@80 275
yuuji@80 276 たとえば、プログラムリストなんかには図表と同じように番号を付けた
yuuji@80 277 い。そゆときあるっしょ。そういうときには定理型環境を newtheorem
yuuji@80 278 で定義するですよ。たとえば、セクション番号に連動してつくようなプ
yuuji@80 279 ログラムリスト環境を作りたいとしましょ−。そしたらこうします。
yuuji@80 280
yuuji@80 281 \newtheorem{Program}{リスト}[section]
yuuji@80 282
yuuji@80 283 こうすると \begin{Program} ... \end{Program} とするとタイプセッ
yuuji@80 284 ト結果が
yuuji@80 285
yuuji@80 286 リスト 2.4.1 ...
yuuji@80 287
yuuji@80 288 なんてなるわけですな。かっちょえー。さて、このままだとこの2.4.1
yuuji@80 289 という番号を\refで引っ張るためには\labelを作らないとあかんわけで
yuuji@80 290 すよ。でもどうせ自分で環境を定義するならlabelも自動的に定義しちゃ
yuuji@80 291 うようなマクロを定義しちゃった方が御便利なわけですよ。 もっとい
yuuji@80 292 うと独自に定義したカウンタのどの位置に \label を打たせるかを野鳥
yuuji@80 293 に判断させるためのパターンを書くのはものすごくむずかしいので、ラ
yuuji@80 294 ベルを定義するためのマクロのパターンを教えた方がやりやすいわけで
yuuji@80 295 す。ということで、暗黙でラベルも打たせるような環境を定義すると、
yuuji@80 296 こんな感じ。
yuuji@80 297
yuuji@80 298 \newenvironment{program}[1]{
yuuji@80 299 \begin{table}[tbp]
yuuji@80 300 \begin{Program}\filename{#1}\nopagebreak[4]\label{#1}\end{Program}
yuuji@80 301 \nopagebreak[4]
yuuji@80 302 \begin{breakbox}\small
yuuji@80 303 }{
yuuji@80 304 \end{breakbox}
yuuji@80 305 \end{table}
yuuji@80 306 }
yuuji@80 307
yuuji@80 308 この小文字 program 環境は
yuuji@80 309
yuuji@80 310 \begin{program}{foo.c}
yuuji@80 311 \begin{verbatim}
yuuji@80 312 #include <stdio.h>
yuuji@80 313 \end{verbatim}
yuuji@80 314 \end{program}
yuuji@80 315
yuuji@80 316 みたいにするとタイプセット結果が
yuuji@80 317
yuuji@80 318 リスト 2.4.1 foo.c
yuuji@80 319 ┌──────────────┐
yuuji@80 320 │#include <stdio.h> │
yuuji@80 321 └──────────────┘
yuuji@80 322
yuuji@80 323 てな具合になるわけですよ。おおかちょええ。さて、小文字program環
yuuji@183 324 境のマクロ定義を良く見ると環境に渡した foo.c はそのまま自動的に
yuuji@183 325 \label{#1} でラベルとして打たれることになります。あ、pLaTeX
yuuji@80 326 のラベルは日本語もOKよ。で、その暗黙のうちに打たれたラベル名を野
yuuji@80 327 鳥に教えるというのがスマートなやり方です。これを定義するのが変数
yuuji@80 328 YaTeX::ref-labeling-regexp-alist-private なり。これには
yuuji@80 329
yuuji@80 330 (正規表現 . ラベル名のグループ番号)
yuuji@80 331
yuuji@80 332 という組(consセル)がたくさん集まったリストを定義する。たとえば、
yuuji@80 333 上記のprogram環境の第1引数を拾わせるには
yuuji@80 334
yuuji@80 335 (setq YaTeX::ref-labeling-regexp-alist-private
yuuji@80 336 '(("\\\\begin{program}{\\([^}]+\\)}" . 1)))
yuuji@80 337
yuuji@80 338 とします。program環境の第一引数の部分の正規表現が
yuuji@80 339
yuuji@80 340 {\\([^}]+\\)}
yuuji@80 341
yuuji@80 342 の部分で、\\( \\) のグループ化された正規表現 [^}]+ つまり、閉じ
yuuji@80 343 中括弧以外の文字が続くところ、がラベル名として取り出せるわけです。
yuuji@80 344 ということで、上記のようなLaTeXマクロの定義と
yuuji@80 345 YaTeX::ref-labeling-regexp-alist-private の定義で無事、自分なり
yuuji@80 346 のカウンタとそのラベル名を\ref補完に取り込めるわけです。最初は面
yuuji@80 347 倒臭いけど、一度定義しちゃえば一生モノでっせ!
yuuji@80 348
yuuji@74 349 ■Mule2 関連
yuuji@74 350 ・Mule2+hilit19を使っている時に数式が暗くて良く読めない。
yuuji@74 351
yuuji@74 352 hilit19.el のデフォルトのカラーリングが暗すぎるせいです。
yuuji@74 353 以下のコードを ~/.emacs や yatexhks.el などに入れてください。
yuuji@74 354 (if (and (featurep 'hilit19) (eq hilit-background-mode 'dark))
yuuji@74 355 (hilit-translate
yuuji@74 356 string 'mediumspringgreen
yuuji@74 357 formula 'khaki
yuuji@74 358 label 'yellow-underlined))
yuuji@74 359
yuuji@74 360 ・font-lock はどうやって使えばいいんでしょ?
yuuji@74 361
yuuji@74 362 1.69以降では、XEmacs-21, Emacs-21, Emacs-20 において利用できます。
yuuji@74 363 野鳥起動前に (require 'font-lock) しておいてください。
yuuji@74 364 ただし、font-lock のドキュメントをみると「パターンは一行内で指定し
yuuji@74 365 てね」とあるので本来行とは無関係な論理的構造範囲で色付を行なうため
yuuji@74 366 には設計されていません。これを回避するため、野鳥では仕様外のパター
yuuji@74 367 ン指定を行ない論理構造範囲での色付をさせています。したがって、将来
yuuji@74 368 font-lock が仕様を変えたら簡単に色付がうまく行かなくなる可能性を大
yuuji@74 369 いに持っています。hilit19からの乗り換えを考えている場合は、いつで
yuuji@74 370 も元に戻れるようにしておいた方がよいかもしれません。
yuuji@74 371
yuuji@74 372 ・XEmacsでも色は着きますか?
yuuji@74 373
yuuji@74 374 font-lock を利用して下さい。野鳥起動前にあらかじめ font-lock をロー
yuuji@74 375 ドしておきます。
yuuji@74 376 以前、野鳥が font-lock 未対応だった時代に入れた
yuuji@74 377
yuuji@74 378 (put 'yatex-mode 'font-lock-defaults 'tex-mode)
yuuji@74 379
yuuji@74 380 という記述は **削除** してください。野鳥独自の色づけ規則により、ユー
yuuji@74 381 ザー辞書に登録してあるマクロや、section型マクロの引数を数えて光ら
yuuji@74 382 せるなどの特長があります。
yuuji@74 383
yuuji@74 384 ・Meadowでも font-lock な色は着きますか?
yuuji@74 385
yuuji@74 386 つくことはつくんですが、2000年現在の公式版Meadow-1.10はでは
yuuji@74 387 光りそうなLaTeXマクロを手で入力すると光る範囲の検出がおかしくなっ
yuuji@74 388 てエラーが発生することがあります。新しい Meadow では本家Emacsと
yuuji@74 389 同様普通に動くであろうことを期待して、この件に関しては対処しませ
yuuji@74 390 ん。光らないだけで実害はないので、気にしないか、あるいは次の
yuuji@74 391 Meadow が登場するまで hilit19 を利用して下さい。
yuuji@74 392
yuuji@74 393 ・\it をイタリック表示できませんか?(Mule2)
yuuji@74 394
yuuji@74 395 まず、普段使用しているサイズの斜体フォントを探します。
yuuji@74 396 *scratch* バッファで、
yuuji@74 397 (set-face-font 'italic "-*-*-medium-i-*--*-*-*-*-*-*-*-*")
yuuji@74 398 と打ち C-j してみる(かなり時間がかかる!!)。No matches found なら
yuuji@74 399 (set-face-font 'italic "-*-*-medium-o-*--*-*-*-*-*-*-*-*")
yuuji@74 400 を試します。
yuuji@74 401 どちらでもマッチするものがなかったらあきらめましょう。(;_;)/~
yuuji@74 402 大抵何かフォント名が出て来るはずです。例えば、16dotフォントを
yuuji@74 403 使っている場合であれば、
yuuji@74 404 "-schumacher-clean-medium-i-normal--8-80-75-75-c-80-iso8859-1"
yuuji@74 405 が、14dotフォントを使っている場合なら、
yuuji@74 406 "-adobe-courier-medium-i-normal--12-120-75-75-m-0-iso8859-1"
yuuji@74 407 などが返って来るので、これを用いて
yuuji@74 408 (set-face-font 'italic
yuuji@74 409 "-schumacher-clean-medium-i-normal--8-80-75-75-c-80-iso8859-1")
yuuji@74 410 あるいは
yuuji@74 411 (set-face-font 'italic
yuuji@74 412 "-adobe-courier-medium-i-normal--12-120-75-75-m-0-iso8859-1")
yuuji@74 413 のような記述を yatexhks.el などに入れます。
yuuji@74 414
yuuji@74 415 以上で \it, \em, \sl の中身が斜体表示されるはずです。ただし、16
yuuji@74 416 ドットフォントの場合、pixelサイズが16のものがない可能性が高いの
yuuji@74 417 で、幅はあっていても周りの16ドットフォントよりずいぶん小さいもの
yuuji@74 418 が表示される場合がほとんどです。14ドットフォントを用いている場合
yuuji@74 419 はかなりましです。
yuuji@74 420
yuuji@74 421 ■カスタマイズ関連
yuuji@74 422 ・C-c b i とかは滅多に使わないので C-c b だけで補完入力になって欲しい。
yuuji@74 423
yuuji@74 424 ~/.emacs などで (setq YaTeX-no-begend-shortcut t) として下さい。
yuuji@74 425
yuuji@74 426 ・開き括弧を入れると勝手に閉じられちゃうのが調子悪い。
yuuji@74 427
yuuji@74 428 しばらく使うとこちらの方が便利だと感じると思います。もしそれでも
yuuji@74 429 肌に合わない時は、C-c w m で常に修正モードをONにして使って下さい。
yuuji@74 430 変数 YaTeX-close-paren-always の値を nil にセットすると起動時か
yuuji@74 431 ら括弧の自動クローズをOFFにします。
yuuji@74 432
yuuji@74 433 ・; を押すと変なのがでて来たりする。
yuuji@74 434
yuuji@74 435 カーソル位置が数式環境であると判定されて、数式環境用イメージ補完
yuuji@74 436 が起動しています。もしTeXでエラーが出ない数式を組んでいるにもか
yuuji@74 437 かわらず野鳥の ; が数式環境判定を誤るようなら、作者まで御連絡下
yuuji@74 438 さい。なお、誤判定が起きた場合、; 自身を入力するには ; を二回押
yuuji@74 439 し、; をイメージ補完prefixとして動作させるには C-u ; と押します。
yuuji@74 440
yuuji@74 441 ・newenvironmentした環境のオプション引数を入力させたい。
yuuji@74 442
yuuji@74 443 yatexadd.doc を参照してください。それでも今一つピンと来ない時は
yuuji@74 444 yatexgen.doc を参照し、M-x YaTeX-generate などを利用してください。
yuuji@74 445
yuuji@74 446 ・\foo を最初3個の引数をとるマクロとして定義し、あとで4個に変えたのに、
yuuji@74 447 section型補完は \foo の補完時に3個までしか引数を聞いてくれない。
yuuji@74 448
yuuji@74 449 C-u 4 C-c s と4個の引数であると言う情報を与えてください。引数の
yuuji@74 450 個数情報はいつでも変更可能です。
yuuji@74 451
yuuji@74 452 ・アドイン関数(引数型)を作ったのに2個目以降の引数の補完関数が呼ばれない。
yuuji@74 453
yuuji@74 454 \foo{x}{y}{z}のような3個の引数をとるコマンドの引数型アドイン関数
yuuji@74 455 を作ったとすると、一度 C-u 3 C-c s foo として \foo の引数が3個で
yuuji@74 456 あることを辞書に学習させる必要があります。
yuuji@74 457
yuuji@74 458 ・自作のアドイン関数がyatexaddに上書きされてしまう。
yuuji@74 459
yuuji@74 460 以前は個人のアドイン関数を個人のyatexadd.elに入れることにしてい
yuuji@74 461 ましたが、現在は個人のアドイン関数はyatexhks.elに入れることを前
yuuji@74 462 提としています。yatexhks.elは野鳥初期化の最後に読み込まれるため、
yuuji@74 463 標準のyatexadd.elの定義などを上書きすることができます。
yuuji@74 464
yuuji@74 465 ・newenvironmentしたmylist環境でおまかせ改行を使いたい。
yuuji@74 466
yuuji@74 467 infoマニュアルのおまかせ改行のところを見て下さい。基本的には
yuuji@74 468 YaTeX-intelligent-newline-mylist という名前の関数を定義すればOK
yuuji@74 469 です。ただ例えば、\item だけを挿入したい、つまりitemize環境のお
yuuji@74 470 まかせ改行と全く同じで良いというのなら、
yuuji@74 471
yuuji@74 472 (fset 'YaTeX-intelligent-newline-mylist
yuuji@74 473 'YaTeX-intelligent-newline-itemize)
yuuji@74 474
yuuji@74 475 と書くと効率的です。
yuuji@74 476
yuuji@74 477 ・数式モードでskkを自動offにするには?
yuuji@74 478
yuuji@74 479 canna や wnn では、$や数式環境を補完入力した時に日本語入力モード
yuuji@74 480 がoffになります。skkでも同様の機能を生かしたい時には、
yuuji@74 481
yuuji@74 482 (setq skk-mode-hook
yuuji@74 483 '(lambda ()
yuuji@74 484 (if (eq major-mode 'yatex-mode)
yuuji@74 485 (define-key skk-map "$" 'YaTeX-insert-dollar)
yuuji@74 486 (define-key skk-map "$" 'skk-self-insert))
yuuji@74 487 (define-key skk-map "\C-x$"
yuuji@74 488 'skk-display-code-for-char-at-point)))
yuuji@74 489
yuuji@74 490 を .emacs などに入れておいて下さい。
yuuji@74 491
yuuji@74 492 ・{\it }内部では斜体に {\bf }では太字になるという噂を聞いたんですが…
yuuji@74 493
yuuji@74 494 GNU Emacs20 (on X)では簡単に設定できます。
yuuji@74 495 (おそらくXEmacsでも有効)
yuuji@74 496
yuuji@74 497 Xのデフォルトだと16ドットを使っている人が多いのですが、何故か英
yuuji@74 498 字フォントは16ドットが充実していず、ちゃんとした斜体字フォントが
yuuji@74 499 ありません。ということでそのままでは快適なフォント生活が送れませ
yuuji@74 500 ん。幸い Mule の総本山である電総研でこれらのフォントを用意してく
yuuji@74 501 れているので、これを利用しましょう。一番楽なのは16ドットの外国語
yuuji@74 502 フォントをインストールする手でしょうから、これについて説明します。
yuuji@74 503
yuuji@74 504 まず、ftp.etl.go.jp の /pub/mule 以下にある intlfonts-<VERSION>
yuuji@74 505 というファイルを探します。これが各国語のフォントです。
yuuji@74 506 intlfonts-<VERSION>split/ というディレクトリがあり、ここにはフォ
yuuji@74 507 ントサイズによってファイルをまとめたアーカイブが置いてあるので、
yuuji@74 508 例えば 16dots.tar.gz をGETします。そして以下のようにインストール
yuuji@74 509 します。
yuuji@74 510 % tar zxpf 16dots.tar.gz
yuuji@74 511 % cd intlfonts-<VERSION>
yuuji@74 512 % ./configure --prefix=/usr/local/emacs \
yuuji@74 513 --enable-compress=gzip --with-bdf=no
yuuji@74 514 # make install
yuuji@74 515 % xset fp+ /usr/local/emacs/share/emacs/fonts
yuuji@74 516
yuuji@74 517 configureに渡すインストールPATHのprefixなどのオプションは環境に
yuuji@74 518 合わせ適宜変更して下さい。続いて、Xのリソース定義ファイル
yuuji@74 519 (.Xdefautsまたは.Xresources)に、
yuuji@74 520
yuuji@74 521 Emacs.Fontset-0: -*-fixed-medium-r-normal--16-*-*-*-*-*-fontset-normal
yuuji@74 522 Emacs.Fontset-1: -*-fixed-bold-r-normal--16-*-*-*-*-*-fontset-normal
yuuji@74 523 Emacs.Fontset-2: -*-fixed-medium-i-normal--16-*-*-*-*-*-fontset-normal
yuuji@74 524 Emacs.Fontset-3: -*-fixed-bold-i-normal--16-*-*-*-*-*-fontset-normal
yuuji@74 525 Emacs.Font: fontset-normal
yuuji@74 526
yuuji@74 527 と書きましょう。これで、Emacs20で斜体、太字が使えるようになりま
yuuji@74 528 す。もし、これらのフォントが利用できるようなら野鳥はこれを自動検
yuuji@74 529 出し \it, \bf の内部のフォントとします。ただし、これは英字のみで
yuuji@74 530 す。
yuuji@74 531
yuuji@74 532 ・では{\it }とか{\bf }で漢字の見栄えを変えるのは無理なんですか?
yuuji@74 533
yuuji@74 534 可能です(Emacs20 & Emacs21 on X)。
yuuji@74 535
yuuji@74 536 日本語の場合は intlfonts だけでなく、X-TTなどのTrueTypeフォント
yuuji@74 537 ドライバが必要になります。XFree86 4.0 以降の場合はおそらくそのま
yuuji@74 538 ま利用できていることでしょう。XF86 3 の場合は
yuuji@74 539 http://X-TT.dsl.gr.jp/index-ja.html などを参照して X-TT をインス
yuuji@74 540 トールしましょう。フリーの日本語フォント、渡辺フォント(明朝)、和
yuuji@74 541 田研フォント(ゴシック)をTrueType形式に変換したものがあるので、こ
yuuji@74 542 れらもインストールします。リコーやDynaLabなどの商用フォントを購
yuuji@74 543 入しても利用できます。ここではその手順は省略し、既にX上で
yuuji@74 544 TrueType フォントが利用できる環境が整っていると仮定します。Xのリ
yuuji@74 545 ソース定義ファイルを以下のように修正します。
yuuji@74 546
yuuji@74 547 Emacs.Fontset-0: -*-fixed-medium-r-normal--16-*-*-*-*-*-fontset-tt,\
yuuji@74 548 japanese-jisx0208:-*-fixed-medium-r-normal-*-16-*-jisx0208*
yuuji@74 549 Emacs.Fontset-1: -*-fixed-bold-r-normal--16-*-*-*-*-*-fontset-tt,\
yuuji@74 550 japanese-jisx0208:-wadalab-*-bold-r-normal-*-0-*-jisx0208*
yuuji@74 551 Emacs.Fontset-2: -*-fixed-medium-i-normal--16-*-*-*-*-*-fontset-tt,\
yuuji@74 552 japanese-jisx0208:-watanabe-*-medium-o-normal-*-0-*-jisx0208*
yuuji@74 553 Emacs.Fontset-3: -*-fixed-bold-i-normal--16-*-*-*-*-*-fontset-tt,\
yuuji@74 554 japanese-jisx0208:-wadalab-*-bold-i-normal-*-0-*-jisx0208*
yuuji@74 555 Emacs.Font: fontset-tt
yuuji@74 556
yuuji@74 557 これにより、やはり野鳥が自動的に和文 italic, bold フォントを検索
yuuji@80 558 し、画面表示上の見映えを変えるようにしてくれます。
yuuji@74 559
yuuji@74 560 Windowsではもっとフォント環境が充実しているのでより簡単に設定で
yuuji@74 561 きるのではないかと思いますが、私はそのやり方を知りません。ご存知
yuuji@74 562 の方がいらしたら教えて頂ければ幸いです。
yuuji@74 563
yuuji@74 564 ■その他
yuuji@74 565 ・AUCほげほげを使ってる友達を改宗させたいのですが…。
yuuji@74 566
yuuji@74 567 まあええやん、ちょっとぐらい不便でも人間なんとか我慢できます。
yuuji@74 568 なにそれでも改宗させたいとな。嬉しいことをおっしゃる。
yuuji@74 569 じゃあ、次のようなデモを見せましょう。
yuuji@74 570 (あらかじめ ~/.emacs で (setq YaTeX-create-file-prefix-g t)
yuuji@74 571 しておいて下さい)
yuuji@74 572 * \begin{itemize}
yuuji@74 573 \item ほげほげ
yuuji@74 574 \end{itemize}
yuuji@74 575 という環境を作っておいて、
yuuji@74 576 「う〜ん、やっぱenumerateがいいな、うりゃ」といって
yuuji@74 577 カーソルを\beginか\endに合わせて [prefix] c で enumerate に変
yuuji@74 578 更します。続いて、
yuuji@74 579 「やっぱりここはセンタリングでしょ、おりゃ」といって
yuuji@74 580 環境全体をマーク(ESC C-@)して [prefix] B(大文字) してcenter環
yuuji@74 581 境に括り入れます。
yuuji@74 582 「じゃあpreviewしてみよっか、でもこの部分だけでいいやね」と
yuuji@74 583 いってもっぺんcenter環境全体をマーク(ESC C-@)して
yuuji@387 584 [prefix] % B してcenter環境を %#BEGIN〜%#ENDで括ってから
yuuji@74 585 領域タイプセットします。[prefix] t r。
yuuji@74 586 「さてpreviewじゃ」
yuuji@74 587 といいつつ [prefix] t p します。
yuuji@74 588 「ほほう、よし、表を書こう」と言って、
yuuji@74 589 enumerate環境の後ろにtabular環境を作ります。
yuuji@74 590 「まあ3列くらいかな」といいつつデフォルトの質問には全てリター
yuuji@74 591 ンだけで答えます。すると & & \\ が勝手に挿入されるので適当に埋
yuuji@74 592 めます。
yuuji@74 593 「はい、次の行」
yuuji@74 594 と言いながら ESC RET します。また適当に埋めて
yuuji@387 595 今度は [prefix] t e で隣のバッファに on-the-fly preview を出し、
yuuji@387 596 表の中味を書き換えては自動的に隣のpreview画像が書き変わる様を
yuuji@387 597 眺めます。
yuuji@387 598 続いて、center環境の外に『この表は重要ネ〜』と書きます。
yuuji@74 599 「うむ、『重要』にはアンダーラインを引こう」
yuuji@74 600 といって『重要』をリジョン指定して [prefix] S(大文字) で
yuuji@387 601 underline を補完入力し、悩んだふりをして
yuuji@74 602 「やっぱアンダーラインはやめ」と言いながら
yuuji@74 603 \underline または { か } にカーソルを合わせて [prefix] k して
yuuji@387 604 \underline{} を消します。さらに悩むふりをして
yuuji@74 605 「やっぱセンタリングは要らんかもしれんなあ…」と言いつつ
yuuji@74 606 \end{center} にカーソルを合わせて [prefix] . を押します。
yuuji@387 607 すると \begin{center}, \end{center} に % がつきます。
yuuji@74 608 「うむ、やっぱりセンタリングはぽいっ」と言って
yuuji@74 609 \end{center}の行で [prefix] k をおして begin/end 対を消します。
yuuji@74 610 「さて、ファイルがでかくなって来たので分割するか」と言って
yuuji@387 611 \include{foo} などを [prefix] s で補完入力します。
yuuji@74 612 「じゃあ foo.tex を作らなきゃ…」と言って [prefix] g します。
yuuji@74 613 foo.tex が勝手に作られるので適当にごちゃごちゃ書いて
yuuji@74 614 [prefix] t j でタイプセットします。
yuuji@74 615 「ほ〜ら、foo.tex の親ファイルがさっきのファイルだって分かって
yuuji@74 616 るでしょ?」と説明します。[prefix] ^ で親ファイルに戻ります。
yuuji@74 617 「あ〜れ、おれこのソースをいくつに分割してたんだっけ?」
yuuji@74 618 とすっとぼけながら [prefix] d でincludeツリーを表示させて
yuuji@74 619 n や p でごちゃごちゃやります。
yuuji@74 620
yuuji@74 621 こんな感じですかね。
yuuji@80 622 あとは、イメージ補完、数式モード自動判定、先回りusepackageなんて
yuuji@387 623 のもアドバンテージでしょう。
yuuji@74 624
yuuji@74 625 ・なんで構成ファイルがいまさらSJISなの? だっせー。
yuuji@74 626
yuuji@74 627 このファイルがSJISで書かれているということが分かるあなたは、野鳥
yuuji@74 628 の構成ファイルがJISだろうがEUCだろうが対処できるはずです。しかし
yuuji@74 629 SJISで生活している人には分かりません。Meadowや Mule for win32 な
yuuji@74 630 らEUCでも読めるんじゃないの? と感じるかもしれませんが、Meadow な
yuuji@74 631 どを使いはじめた人の中からは、「pLaTeX+野鳥が便利そうだ」という
yuuji@74 632 ことがきっかけになっているという嬉しい報告も聞きます。そういう人
yuuji@74 633 にとってEUCやJISは得体の知れない手間のかかる面倒なファイルでしか
yuuji@74 634 ありません。彼らがTeXやEmacsなどの素晴らしい世界に触れる目前で遠
yuuji@74 635 慮してしまう可能性を考えると、やはり野鳥はSJISであり続けるべきだ
yuuji@74 636 と思います。
yuuji@74 637
yuuji@74 638 そういうわけで、野鳥ではダサくても嫌いでも、SJISを使います。
yuuji@74 639
yuuji@74 640 ・メイリングリストはないんですか?
yuuji@74 641
yuuji@74 642 っていう質問項目があるくらいだからあります。「野鳥」およびそのVz
yuuji@74 643 への移植版「雷鳥」(by KATSURAGAWA, Naoki)、Wzへの移植版「白鳥」
yuuji@74 644 (by TAKENAKA, Hiroshi)、Hidemaruへの移植板「飛鳥」(by YASUDA
yuuji@74 645 Haruyuki)、xyzzyへの移植版「花鳥」(by MAEDA Manabu) に関する情報
yuuji@74 646 交換のためのメイリングリスト「fj野鳥の会」がそれです。
yuuji@74 647
yuuji@74 648 To: yatex@yatex.org
yuuji@74 649 Subject: subscribe
yuuji@74 650 -----
yuuji@74 651 たぐでーし。
yuuji@74 652 明けましておめでとうございまーす。
yuuji@74 653
yuuji@74 654 のようにメイルを送れば加入できます。手続きは全て自動で行われ、登
yuuji@74 655 録が完了すると確認とともに、参加/休止/脱会等の制御コマンドの利用
yuuji@127 656 方法が返送されます。是非参加して一緒に野鳥/雷鳥/白鳥/飛鳥/花鳥を
yuuji@127 657 育ててください。なお、自己紹介の文が無い場合一見加入したように見
yuuji@127 658 えますが、自動的に登録解除しますので御注意下さい。
yuuji@74 659
yuuji@74 660 ・野鳥の最新情報は?
yuuji@74 661
yuuji@74 662 もしあなたが、WWWにアクセスできるなら、
yuuji@74 663 http://www.yatex.org/
yuuji@74 664 を覗いてみて下さい。このなかの、「yatex-current」というリンクを
yuuji@74 665 たどると最新版の野鳥を入手することができます。ただし、正式リリー
yuuji@74 666 ス版ではなく、作者がデバッグ中だったりして正常に動作しない可能性
yuuji@74 667 があるので、current版の利用はとくに「デバッグに協力する」という
yuuji@74 668 心構えでの利用をお願いします。
yuuji@74 669
yuuji@127 670 yatex-currentは全ファイルを毎回取得する必要があるので非効率です。
yuuji@127 671 YaTeXのソースコードのMercurialリポジトリを利用し、効率的かつ安全
yuuji@127 672 に更新を行なって下さい。Mercurialをインストール後、以下のように
yuuji@127 673 して開発版に追随します。
yuuji@127 674
yuuji@474 675 hg clone https://www.yatex.org:/hgrepos/yatex
yuuji@127 676
yuuji@127 677 で、リポジトリ全体を取得します。開発ブランチは dev なので
yuuji@127 678
yuuji@127 679 cd yatex
yuuji@127 680 hg up -C dev
yuuji@127 681
yuuji@127 682 して切り替えます(リリース用ブランチは default)。以後は、同ディレ
yuuji@127 683 クトリで定期的に
yuuji@127 684
yuuji@127 685 hg pull -uv
yuuji@127 686
yuuji@127 687 すれば更新のみを取得します。このディレクトリをEmacsの load-path
yuuji@127 688 に加えてしまってもよいでしょう。
yuuji@127 689
yuuji@74 690 ・とにかくわかりませーん!
yuuji@74 691
yuuji@74 692 まず質問の前に yatex-current(上述) を試してみて下さい。既に直面
yuuji@74 693 した問題が解決されているかもしれません。それでもだめなら質問しま
yuuji@74 694 しょう。
yuuji@74 695 回答を得るまでの早い順に
yuuji@74 696
yuuji@74 697 ・近くにいる詳しい人に聞く
yuuji@74 698 ・メイリングリストに質問を出す
yuuji@74 699
yuuji@74 700 でしょうか。お好きな方法でどうぞ。
yuuji@74 701
yuuji@74 702 ・このファイルを C-u C-x $ してQを眺めて項目選んで C-x $ しても変な所にいく。
yuuji@74 703
yuuji@74 704 ↑なっちゃいますよね? とりあえずQuestionのところで mark しておい
yuuji@74 705 て C-x $ したあと C-x C-x してますが(mule2だとこんな苦労しなくて
yuuji@74 706 済むようです)。
yuuji@74 707
yuuji@74 708 Local Variables:
yuuji@74 709 mode: indented-text
yuuji@74 710 fill-column: 72
yuuji@74 711 fill-prefix: " "
yuuji@74 712 End: