yuuji@74: %% yuuji@74: %% Q and A on YaTeX yuuji@74: %% yuuji@74: %% C-u C-x $ とすると質問項目だけ表示されます。C-x $ で元に戻ります。 yuuji@74: %% yuuji@74: yuuji@80: (新項目:・RefTeXは使えますか? yuuji@387: ・bibtexとlatexとかを交互にかけるのが面倒なんですけど yuuji@80: ・自分で定義したカウンタを\ref補完でのラベル候補対象として認識させたい yuuji@74: ・{\it }内部では斜体に {\bf }では太字になるという噂を聞いたんですが…) yuuji@74: yuuji@74: ■インストール関連 yuuji@74: ・マニュアルのインストール yuuji@74: yuuji@74: Emacsのインストールされている場所の info ディレクトリにyatexj ファ yuuji@74: イルをコピーし、同じディレクトリにある dir というファイルに次の yuuji@74: 行を足します。 yuuji@74: yuuji@74: * YaTeX: (yatexj). Yet Another tex-mode for Emacs. (Japanese). yuuji@74: yuuji@74: (あとは M-x info として m yatex で野鳥のマニュアルを選択して読み yuuji@74: ます。?を押すと info の使い方が出て来ます。) yuuji@74: yuuji@74: ・Meadowつこてるんすが make って叩いても何も起きないです〜 yuuji@74: yuuji@74: makeはバイトコンパイルのために利用しているだけなのでやらなくても yuuji@74: 構いません。makeのないMeadowユーザの最短インストールは以下の通り yuuji@74: です。 yuuji@74: 1 Meadowのsite-lispディレクトリに yatex*.tar.gz を展開す yuuji@74: る。これを読んでる段階では別のディレクトリに展開している可能 yuuji@74: 性が高いので、その場合はディレクトリごと移動してしまって下さ yuuji@74: い。 yuuji@74: 2 install ファイルに書いてあるように ~/.emacs にautoloadと yuuji@74: load-path, auto-mode-alist の設定を書く。 yuuji@74: yuuji@74: ・まだしたっぱなので Info ディレクトリに書き込む権利がないっすう… yuuji@74: yuuji@387: rootにしてもらいましょう。それがだめなときは以下のようにして個人 yuuji@387: 所有の Info ディレクトリをEmacsに認識させましょう。 yuuji@74: yuuji@74: (setq Info-default-directory-list yuuji@74: (cons "自分のInfoディレクトリ" yuuji@74: Info-default-directory-list)) yuuji@74: yuuji@74: ・LaTeXのヘルプファイルがないといわれる。 yuuji@74: yuuji@387: もし公共の場所に置く権限がない時は、ホームディレクトリの下のどこ yuuji@387: かに置いて、変数 YaTeX-help-file にそのファイル名を設定して下さ yuuji@387: い。 yuuji@74: yuuji@74: ■操作関連 yuuji@74: ・間違って変なLaTeXコマンドを学習させてしまった。 yuuji@74: yuuji@74: ホームディレクトリ、またはカレントディレクトリにできている yuuji@74: .yatexrc に間違って学習したコマンドを含む行があるはずですから、 yuuji@74: その行を削除、あるいは正しいコマンドに書き直してから C-x C-s で yuuji@74: .yatexrc をセーブし、C-x k でクローズします。元のLaTeX編集バッファ yuuji@74: に戻ったことを確認してから M-x YaTeX-reload-dictionary とする yuuji@74: と、書き換えた .yatexrc が現在のバッファに反映されます。 yuuji@74: yuuji@74: ・リジョンを指定してコメントアウトしようとしたのにうまくいかない。 yuuji@74: yuuji@74: おそらくカーソルが \begin{}, \end{} の行に乗っているのだと思いま yuuji@74: す。一行上か下によけて C-c > してください。 yuuji@74: yuuji@74: ・タイプセットの時に親ファイルを聞かれて、その時に間違えてしまった。 yuuji@74: yuuji@74: C-x C-v RET でもう一度子ファイルを読み直すか、 yuuji@74: C-u C-c ^ で親ファイルをもう一度入力してください。 yuuji@74: yuuji@74: ・Demacsでタイプセットエラーがでた時にtypesetバッファがうまく表示されない。 yuuji@74: yuuji@74: Demacs 1.2.0 で子プロセスが1以上の errorlevel を返した場合、この yuuji@74: ような症状が起きる事があります。jlatex をバッチファイルから呼ぶ yuuji@74: ようにし、その末尾で必ず errorlevel 0 を返すダミーのコマンドを呼 yuuji@74: ぶようにします。 yuuji@74: yuuji@74: ・「\underline{\makebox[4em][l]{x y}{\tt z}}」 などを手軽に入力したい。 yuuji@74: yuuji@74: section型補完の引数をミニバッファで入力する時にも再帰的に種々の yuuji@74: 補完機能が使えます。表題のコマンド列を補完入力したものが以下の例 yuuji@74: です。 yuuji@74: プロンプト キー入力 yuuji@74: C-c s und SPC RET yuuji@74: \underline{???}: C-c s makeb SPC RET yuuji@74: Width: 4em RET yuuji@74: makebox position (`lr'): - l RET yuuji@74: \makebox{???}: x y RET yuuji@74: \underline{???}: \makebox[4em][l]{x y} C-c l tt RET yuuji@74: \underline{???}: \makebox[4em][l]{x y}{\tt } z RET yuuji@74: yuuji@74: ・「\footnote{ほげほげ}」と書いたけど\footnote{}を取り払いたい。 yuuji@74: yuuji@74: \footnote の部分にカーソルを合わせて C-c k としてください。 yuuji@74: \footnote{} の部分だけ選んで消去します。 yuuji@74: 全部いらない場合は C-u C-c k とします。 yuuji@74: yuuji@74: ・「ほにゃらら」の部分を\footnoteにしたい。 yuuji@74: yuuji@74: 「ほにゃらら」の部分をマークして C-c S footnote RET などとします。 yuuji@74: (Sは大文字) yuuji@74: yuuji@74: ・いまある verbatim 環境を verbatim* 環境にしたい。 yuuji@74: yuuji@74: \begin{verbatim} か \end{verbatim} の行で、C-c c します。 yuuji@74: yuuji@74: ・指定領域を \verb で囲みたい。 yuuji@74: yuuji@74: 残念ながら \verb は maketitle 型なので該当する機能はありません。 yuuji@74: ただ C-c $ が領域を $ で括る事を利用して次のようにできます。 yuuji@74: . . yuuji@74: ここからここまでを \verb にする yuuji@74: \verbここからここまでを \verb にする (\verbを入れる) yuuji@74: ↑(C-@) (「こ」の位置でマーク) yuuji@74: \verbここからここまでを \verb にする ($でくくる) yuuji@74: ↑C-c $ yuuji@74: \verb$ここからここまで$を \verb にする (完成) yuuji@74: yuuji@74: ・子ファイルを編集していて typeset-region をやる時に子ファイルの上の方で yuuji@74: 定義してあるコマンドも読んで欲しい。 yuuji@74: yuuji@74: 章毎に複数メンバーでファイルを編集する時に子ファイルだけで通用す yuuji@74: るマクロを子ファイルの上の方で定義している場合には、typeset yuuji@74: region をする時にそれらの行も必要になって来ます。こういう場合は、 yuuji@74: 子ファイルのマクロ定義の行の末尾に %#REQUIRE をつけることで臨時 yuuji@74: タイプセットファイルの先頭にその行がコピーされます。 yuuji@74: yuuji@74: さらに孫ファイルがあった場合を考えてみましょう。 yuuji@74: +-- main.tex --+ +---- sub.tex ----+ +-- subsub.tex --+ yuuji@74: | : | |%#jlatex main | |%#jlatex main | yuuji@74: |\include{sub} | |\include{macros} | |..... | yuuji@74: | : |←| : |←|%#BEGIN | yuuji@74: | : | | : | |この辺を | yuuji@74: | : | +-----------------+ |タイプセット | yuuji@74: +--------------+ ↑ |したい | yuuji@74: +-- macros.tex ---+ |%#END | yuuji@74: |\def\foo{bar} | |: | yuuji@74: |\def\hoge{hero} | +----------------+ yuuji@74: +-----------------+ yuuji@74: yuuji@74: このような場合 sub.tex の \include{macros} の行を以下のように変 yuuji@74: えます。 yuuji@74: \include{macros} %#REQUIRE yuuji@74: yuuji@74: さらに subsub.tex のどこかに以下のような行を加えます。 yuuji@74: yuuji@74: %#REQUIRE \include{macros} yuuji@74: yuuji@74: %#REQUIRE が行頭にある時はそれより後ろの部分が臨時ファイルにコピー yuuji@74: されます。これにより、全体をタイプセットする時、または sub.tex, yuuji@74: subsub.tex いずれかを typeset-region する時どちらにおいてもかな yuuji@74: らず一度だけ macros.tex がインクルードされることになります。 yuuji@74: yuuji@74: ・直前に入れた \foo{引数だよ} の「引数だよ」をもう一回使いたい。 yuuji@74: yuuji@387: ミニバッファで \foo{???}: と聞かれた時に M-p (ESC p)を yuuji@74: 押すと今まで入力した文字の履歴を逆方向にたどって表示します。M-n yuuji@74: と押すと順方向にたどります。これらの入力履歴は begin 型補完、 yuuji@74: section 型補完、プレヴューア起動、プリントアウトコマンド起動それ yuuji@74: ぞれに対し独立に設定されます。 yuuji@74: yuuji@74: ・ref←→label間ジャンプで存在するはずのref/labelにジャンプしない。 yuuji@74: yuuji@74: C-c g とだけ打つと対応するref/labelの前方検索から始めます。 yuuji@74: C-u C-c g と打つと後方検索から始めます。続けて \ref を検索するよ yuuji@74: うな場合は C-s (C-r) を二回続けて押しインクリメンタルサーチの連 yuuji@74: 続検索機能を利用します。もしジャンプ先が別ファイルにある時は、そ yuuji@74: のファイルをあらかじめオープンしておく必要があります。C-c d の yuuji@74: YaTeX-display-hierarchy は全てのファイルを一気にオープンするため yuuji@74: にも使えます。 yuuji@74: yuuji@74: ・fill-paragraph や auto-fill で行末に%が付いちゃう。 yuuji@74: yuuji@74: TeX version 2 ベースのNTT-jTeXでは日本語のパラグラフの各行頭をイ yuuji@74: ンデントして書くとその分スペースが余計に入った印刷イメージになっ yuuji@74: てしまいます。それを回避するために行末に % を付ける必要がありま yuuji@74: す。野鳥ではインデントされたテキストをNTT版でも入力できるように yuuji@74: 「行末%」の面倒をみています。でもバグってる可能性ありありなので、 yuuji@74: 行末以外に % が出るなどの現象を発見したらご連絡ください。 yuuji@74: yuuji@74: ・itemize環境の中のitemizeのインデントが深すぎやしませんか? yuuji@74: yuuji@74: でしょ? 某K君があのほうがいいって言って、TABを打っては一人酔いし yuuji@74: れているのでので、そうしたんですが、私は気に入りません(←まだ根 yuuji@74: に持ってる)。「深すぎる!」という方は、内側の\begin{itemize} の行 yuuji@74: 末でTABを打ってください。なぬ、今度は浅すぎる? さてトイレ行こ。 yuuji@74: yuuji@74: ・いつも雛型として使っている template.tex を簡単に入れたい yuuji@74: yuuji@387: ~/work/template.tex に置きましょう。置き場所を変えたい場合は yuuji@387: (setq YaTeX-template-file "~/hogehoge/fugafuga.tex") yuuji@387: のようにして変更できます。 yuuji@74: yuuji@74: ・bibtexとlatexとかを交互にかけるのが面倒なんですけど yuuji@74: yuuji@387: yatex1.76からラベルやbibtexでの文献番号不整合を自動的に検知して、 yuuji@387: 再処理が必要なときは自動的に再起動するようになりました(auto rerun)。 yuuji@387: ほとんどの場合、野鳥の auto rerun で対処できるはずです。ただし、 yuuji@387: 以下で述べるlatexmkを利用する場合は重複処理になるため野鳥の yuuji@387: auto rerun を無効化してください。無効化は yuuji@387: (setq YaTeX-typeset-auto-rerun nil) yuuji@387: します。 yuuji@74: yuuji@387: 同じ目的のツールに latexmk というツールがあります。これは、.tex, yuuji@387: .bib, .idx などのファイル間の依存関係を調べ、自動的に bibtex, yuuji@387: makeindex, platex などを必要な順序で必要な回数起動してくれます。 yuuji@387: これをインストールし、各ドキュメントの先頭に yuuji@387: yuuji@387: %#!latexmk yuuji@387: yuuji@387: などと書いてタイプセッタとして latexmk を指定することで利用でき yuuji@387: ます。なお、latexmk は CTAN サイトにあります。 yuuji@387: (http://www.ctan.org/pkg/latexmk/) yuuji@74: yuuji@74: ・タイプセットとプレヴューでキーが違うのが面倒ですね? yuuji@74: yuuji@74: そういうことを感じるということは、もしかして、プレヴューアを起動 yuuji@74: して確認したのちに、いちいちプレヴューアを終了させたりしてますか? yuuji@74: UNIXでもWindowsでもそんなことは普通しなくていいんです。一度起動 yuuji@74: したプレヴューアは常駐させておけば、表でLaTeXソースをタイプセッ yuuji@74: トすれば、次回プレビューアの窓を選択したときに勝手にリロードして yuuji@74: くれます。プレビューアを毎回終了させるとフォントのロードなどオー yuuji@74: バーヘッドが大きいので、是非常駐させましょう。意外にそのことを教 yuuji@74: えてもらってない人がいるようなので書いてみました。 yuuji@74: yuuji@74: 結局のところほとんど [prefix] tj のタイプセットのみで用件は終わ yuuji@74: ります。また、もしbibtexなど、他の関連コマンドを繰り返し利用する yuuji@74: ような場合は、前項で紹介した latexmk コマンドを利用するというの yuuji@74: がスマートな解決策です。結局のところ、ほとんど [prefix] tj と打っ yuuji@74: て仕事を進めることになります。 yuuji@74: yuuji@74: ・fillがうまく行かないなあ yuuji@74: yuuji@74: デフォルトのインデンテーション(TABを押すと移動するカラム)と違う yuuji@74: パラグラフをfillしようとするとうまく行きません。auto-fill をONに yuuji@74: して文章を入力していればこの問題は起きないはずです。もし、他のと yuuji@74: ころからコピーした段落で、デフォルトのインデンテーションと違う段 yuuji@74: 落ができてしまった場合は、 yuuji@74: yuuji@74: (1)行頭で C-x . (fill-prefixをキャンセルする) yuuji@74: (2)インデンテーションを揃えたい範囲をマークする yuuji@74: (3)M-C-\ する。 yuuji@74: yuuji@74: という操作でデフォルトのインデンテーションに揃えることができます。 yuuji@74: もし、デフォルトとは違う深さでfillしたい場合は、行の最初の非空白 yuuji@74: 文字にカーソルを合わせて M-q してください。 yuuji@74: yuuji@74: ・Win95/WinNTでタイプセッタなど外部プロセスが呼べない yuuji@74: yuuji@74: shellを変更していないならとりあえず、 yuuji@74: (setq shell-command-option "\\/c") yuuji@74: を .emacs に入れてみましょう。 yuuji@74: yuuji@74: UNIX系のshell(sh, bash, tcsh, zsh等)を使っている場合は、 yuuji@74: (setq shell-command-option "-c") yuuji@74: を .emacs に入れてみましょう。 yuuji@74: yuuji@74: yuuji@80: ・RefTeXは使えますか? yuuji@80: yuuji@80: 使っている人はいるみたいですから使えるんじゃないでしょうか。でも yuuji@80: ですね、野鳥の \ref 補完があれば、RefTeXなんぞ要らないと思います yuuji@80: よ。これからは\label{}はいちいち自分では作らずにいきなり[prefix] yuuji@80: s で \ref を打ち込みましょう。勝手にラベルを打てそうなところを探 yuuji@80: して勝手にラベルを打ってその名前を\refに入れてくれます。\ref補完 yuuji@80: は \label{} と \ref{} 両方同時に補完入力します。 yuuji@80: yuuji@80: でですね、\ref補完の方がしょぼいと思うなら改良しますよ。「RefTeX yuuji@80: の方が色がついてかっちょええ」という問題以外ならすぐに頑張ります。 yuuji@80: yuuji@80: ・自分で定義したカウンタを\ref補完でのラベル候補対象として認識させたい yuuji@80: yuuji@80: おお、これは高度な質問でござるよ。ちみすごいね。え、質問の意味が yuuji@80: 分からん? じゃLaTeXのおべんきょーから。 yuuji@80: yuuji@80: たとえば、プログラムリストなんかには図表と同じように番号を付けた yuuji@80: い。そゆときあるっしょ。そういうときには定理型環境を newtheorem yuuji@80: で定義するですよ。たとえば、セクション番号に連動してつくようなプ yuuji@80: ログラムリスト環境を作りたいとしましょ−。そしたらこうします。 yuuji@80: yuuji@80: \newtheorem{Program}{リスト}[section] yuuji@80: yuuji@80: こうすると \begin{Program} ... \end{Program} とするとタイプセッ yuuji@80: ト結果が yuuji@80: yuuji@80: リスト 2.4.1 ... yuuji@80: yuuji@80: なんてなるわけですな。かっちょえー。さて、このままだとこの2.4.1 yuuji@80: という番号を\refで引っ張るためには\labelを作らないとあかんわけで yuuji@80: すよ。でもどうせ自分で環境を定義するならlabelも自動的に定義しちゃ yuuji@80: うようなマクロを定義しちゃった方が御便利なわけですよ。 もっとい yuuji@80: うと独自に定義したカウンタのどの位置に \label を打たせるかを野鳥 yuuji@80: に判断させるためのパターンを書くのはものすごくむずかしいので、ラ yuuji@80: ベルを定義するためのマクロのパターンを教えた方がやりやすいわけで yuuji@80: す。ということで、暗黙でラベルも打たせるような環境を定義すると、 yuuji@80: こんな感じ。 yuuji@80: yuuji@80: \newenvironment{program}[1]{ yuuji@80: \begin{table}[tbp] yuuji@80: \begin{Program}\filename{#1}\nopagebreak[4]\label{#1}\end{Program} yuuji@80: \nopagebreak[4] yuuji@80: \begin{breakbox}\small yuuji@80: }{ yuuji@80: \end{breakbox} yuuji@80: \end{table} yuuji@80: } yuuji@80: yuuji@80: この小文字 program 環境は yuuji@80: yuuji@80: \begin{program}{foo.c} yuuji@80: \begin{verbatim} yuuji@80: #include yuuji@80: \end{verbatim} yuuji@80: \end{program} yuuji@80: yuuji@80: みたいにするとタイプセット結果が yuuji@80: yuuji@80: リスト 2.4.1 foo.c yuuji@80: ┌──────────────┐ yuuji@80: │#include │ yuuji@80: └──────────────┘ yuuji@80: yuuji@80: てな具合になるわけですよ。おおかちょええ。さて、小文字program環 yuuji@183: 境のマクロ定義を良く見ると環境に渡した foo.c はそのまま自動的に yuuji@183: \label{#1} でラベルとして打たれることになります。あ、pLaTeX yuuji@80: のラベルは日本語もOKよ。で、その暗黙のうちに打たれたラベル名を野 yuuji@80: 鳥に教えるというのがスマートなやり方です。これを定義するのが変数 yuuji@80: YaTeX::ref-labeling-regexp-alist-private なり。これには yuuji@80: yuuji@80: (正規表現 . ラベル名のグループ番号) yuuji@80: yuuji@80: という組(consセル)がたくさん集まったリストを定義する。たとえば、 yuuji@80: 上記のprogram環境の第1引数を拾わせるには yuuji@80: yuuji@80: (setq YaTeX::ref-labeling-regexp-alist-private yuuji@80: '(("\\\\begin{program}{\\([^}]+\\)}" . 1))) yuuji@80: yuuji@80: とします。program環境の第一引数の部分の正規表現が yuuji@80: yuuji@80: {\\([^}]+\\)} yuuji@80: yuuji@80: の部分で、\\( \\) のグループ化された正規表現 [^}]+ つまり、閉じ yuuji@80: 中括弧以外の文字が続くところ、がラベル名として取り出せるわけです。 yuuji@80: ということで、上記のようなLaTeXマクロの定義と yuuji@80: YaTeX::ref-labeling-regexp-alist-private の定義で無事、自分なり yuuji@80: のカウンタとそのラベル名を\ref補完に取り込めるわけです。最初は面 yuuji@80: 倒臭いけど、一度定義しちゃえば一生モノでっせ! yuuji@80: yuuji@74: ■Mule2 関連 yuuji@74: ・Mule2+hilit19を使っている時に数式が暗くて良く読めない。 yuuji@74: yuuji@74: hilit19.el のデフォルトのカラーリングが暗すぎるせいです。 yuuji@74: 以下のコードを ~/.emacs や yatexhks.el などに入れてください。 yuuji@74: (if (and (featurep 'hilit19) (eq hilit-background-mode 'dark)) yuuji@74: (hilit-translate yuuji@74: string 'mediumspringgreen yuuji@74: formula 'khaki yuuji@74: label 'yellow-underlined)) yuuji@74: yuuji@74: ・font-lock はどうやって使えばいいんでしょ? yuuji@74: yuuji@74: 1.69以降では、XEmacs-21, Emacs-21, Emacs-20 において利用できます。 yuuji@74: 野鳥起動前に (require 'font-lock) しておいてください。 yuuji@74: ただし、font-lock のドキュメントをみると「パターンは一行内で指定し yuuji@74: てね」とあるので本来行とは無関係な論理的構造範囲で色付を行なうため yuuji@74: には設計されていません。これを回避するため、野鳥では仕様外のパター yuuji@74: ン指定を行ない論理構造範囲での色付をさせています。したがって、将来 yuuji@74: font-lock が仕様を変えたら簡単に色付がうまく行かなくなる可能性を大 yuuji@74: いに持っています。hilit19からの乗り換えを考えている場合は、いつで yuuji@74: も元に戻れるようにしておいた方がよいかもしれません。 yuuji@74: yuuji@74: ・XEmacsでも色は着きますか? yuuji@74: yuuji@74: font-lock を利用して下さい。野鳥起動前にあらかじめ font-lock をロー yuuji@74: ドしておきます。 yuuji@74: 以前、野鳥が font-lock 未対応だった時代に入れた yuuji@74: yuuji@74: (put 'yatex-mode 'font-lock-defaults 'tex-mode) yuuji@74: yuuji@74: という記述は **削除** してください。野鳥独自の色づけ規則により、ユー yuuji@74: ザー辞書に登録してあるマクロや、section型マクロの引数を数えて光ら yuuji@74: せるなどの特長があります。 yuuji@74: yuuji@74: ・Meadowでも font-lock な色は着きますか? yuuji@74: yuuji@74: つくことはつくんですが、2000年現在の公式版Meadow-1.10はでは yuuji@74: 光りそうなLaTeXマクロを手で入力すると光る範囲の検出がおかしくなっ yuuji@74: てエラーが発生することがあります。新しい Meadow では本家Emacsと yuuji@74: 同様普通に動くであろうことを期待して、この件に関しては対処しませ yuuji@74: ん。光らないだけで実害はないので、気にしないか、あるいは次の yuuji@74: Meadow が登場するまで hilit19 を利用して下さい。 yuuji@74: yuuji@74: ・\it をイタリック表示できませんか?(Mule2) yuuji@74: yuuji@74: まず、普段使用しているサイズの斜体フォントを探します。 yuuji@74: *scratch* バッファで、 yuuji@74: (set-face-font 'italic "-*-*-medium-i-*--*-*-*-*-*-*-*-*") yuuji@74: と打ち C-j してみる(かなり時間がかかる!!)。No matches found なら yuuji@74: (set-face-font 'italic "-*-*-medium-o-*--*-*-*-*-*-*-*-*") yuuji@74: を試します。 yuuji@74: どちらでもマッチするものがなかったらあきらめましょう。(;_;)/~ yuuji@74: 大抵何かフォント名が出て来るはずです。例えば、16dotフォントを yuuji@74: 使っている場合であれば、 yuuji@74: "-schumacher-clean-medium-i-normal--8-80-75-75-c-80-iso8859-1" yuuji@74: が、14dotフォントを使っている場合なら、 yuuji@74: "-adobe-courier-medium-i-normal--12-120-75-75-m-0-iso8859-1" yuuji@74: などが返って来るので、これを用いて yuuji@74: (set-face-font 'italic yuuji@74: "-schumacher-clean-medium-i-normal--8-80-75-75-c-80-iso8859-1") yuuji@74: あるいは yuuji@74: (set-face-font 'italic yuuji@74: "-adobe-courier-medium-i-normal--12-120-75-75-m-0-iso8859-1") yuuji@74: のような記述を yatexhks.el などに入れます。 yuuji@74: yuuji@74: 以上で \it, \em, \sl の中身が斜体表示されるはずです。ただし、16 yuuji@74: ドットフォントの場合、pixelサイズが16のものがない可能性が高いの yuuji@74: で、幅はあっていても周りの16ドットフォントよりずいぶん小さいもの yuuji@74: が表示される場合がほとんどです。14ドットフォントを用いている場合 yuuji@74: はかなりましです。 yuuji@74: yuuji@74: ■カスタマイズ関連 yuuji@74: ・C-c b i とかは滅多に使わないので C-c b だけで補完入力になって欲しい。 yuuji@74: yuuji@74: ~/.emacs などで (setq YaTeX-no-begend-shortcut t) として下さい。 yuuji@74: yuuji@74: ・開き括弧を入れると勝手に閉じられちゃうのが調子悪い。 yuuji@74: yuuji@74: しばらく使うとこちらの方が便利だと感じると思います。もしそれでも yuuji@74: 肌に合わない時は、C-c w m で常に修正モードをONにして使って下さい。 yuuji@74: 変数 YaTeX-close-paren-always の値を nil にセットすると起動時か yuuji@74: ら括弧の自動クローズをOFFにします。 yuuji@74: yuuji@74: ・; を押すと変なのがでて来たりする。 yuuji@74: yuuji@74: カーソル位置が数式環境であると判定されて、数式環境用イメージ補完 yuuji@74: が起動しています。もしTeXでエラーが出ない数式を組んでいるにもか yuuji@74: かわらず野鳥の ; が数式環境判定を誤るようなら、作者まで御連絡下 yuuji@74: さい。なお、誤判定が起きた場合、; 自身を入力するには ; を二回押 yuuji@74: し、; をイメージ補完prefixとして動作させるには C-u ; と押します。 yuuji@74: yuuji@74: ・newenvironmentした環境のオプション引数を入力させたい。 yuuji@74: yuuji@74: yatexadd.doc を参照してください。それでも今一つピンと来ない時は yuuji@74: yatexgen.doc を参照し、M-x YaTeX-generate などを利用してください。 yuuji@74: yuuji@74: ・\foo を最初3個の引数をとるマクロとして定義し、あとで4個に変えたのに、 yuuji@74: section型補完は \foo の補完時に3個までしか引数を聞いてくれない。 yuuji@74: yuuji@74: C-u 4 C-c s と4個の引数であると言う情報を与えてください。引数の yuuji@74: 個数情報はいつでも変更可能です。 yuuji@74: yuuji@74: ・アドイン関数(引数型)を作ったのに2個目以降の引数の補完関数が呼ばれない。 yuuji@74: yuuji@74: \foo{x}{y}{z}のような3個の引数をとるコマンドの引数型アドイン関数 yuuji@74: を作ったとすると、一度 C-u 3 C-c s foo として \foo の引数が3個で yuuji@74: あることを辞書に学習させる必要があります。 yuuji@74: yuuji@74: ・自作のアドイン関数がyatexaddに上書きされてしまう。 yuuji@74: yuuji@74: 以前は個人のアドイン関数を個人のyatexadd.elに入れることにしてい yuuji@74: ましたが、現在は個人のアドイン関数はyatexhks.elに入れることを前 yuuji@74: 提としています。yatexhks.elは野鳥初期化の最後に読み込まれるため、 yuuji@74: 標準のyatexadd.elの定義などを上書きすることができます。 yuuji@74: yuuji@74: ・newenvironmentしたmylist環境でおまかせ改行を使いたい。 yuuji@74: yuuji@74: infoマニュアルのおまかせ改行のところを見て下さい。基本的には yuuji@74: YaTeX-intelligent-newline-mylist という名前の関数を定義すればOK yuuji@74: です。ただ例えば、\item だけを挿入したい、つまりitemize環境のお yuuji@74: まかせ改行と全く同じで良いというのなら、 yuuji@74: yuuji@74: (fset 'YaTeX-intelligent-newline-mylist yuuji@74: 'YaTeX-intelligent-newline-itemize) yuuji@74: yuuji@74: と書くと効率的です。 yuuji@74: yuuji@74: ・数式モードでskkを自動offにするには? yuuji@74: yuuji@74: canna や wnn では、$や数式環境を補完入力した時に日本語入力モード yuuji@74: がoffになります。skkでも同様の機能を生かしたい時には、 yuuji@74: yuuji@74: (setq skk-mode-hook yuuji@74: '(lambda () yuuji@74: (if (eq major-mode 'yatex-mode) yuuji@74: (define-key skk-map "$" 'YaTeX-insert-dollar) yuuji@74: (define-key skk-map "$" 'skk-self-insert)) yuuji@74: (define-key skk-map "\C-x$" yuuji@74: 'skk-display-code-for-char-at-point))) yuuji@74: yuuji@74: を .emacs などに入れておいて下さい。 yuuji@74: yuuji@74: ・{\it }内部では斜体に {\bf }では太字になるという噂を聞いたんですが… yuuji@74: yuuji@74: GNU Emacs20 (on X)では簡単に設定できます。 yuuji@74: (おそらくXEmacsでも有効) yuuji@74: yuuji@74: Xのデフォルトだと16ドットを使っている人が多いのですが、何故か英 yuuji@74: 字フォントは16ドットが充実していず、ちゃんとした斜体字フォントが yuuji@74: ありません。ということでそのままでは快適なフォント生活が送れませ yuuji@74: ん。幸い Mule の総本山である電総研でこれらのフォントを用意してく yuuji@74: れているので、これを利用しましょう。一番楽なのは16ドットの外国語 yuuji@74: フォントをインストールする手でしょうから、これについて説明します。 yuuji@74: yuuji@74: まず、ftp.etl.go.jp の /pub/mule 以下にある intlfonts- yuuji@74: というファイルを探します。これが各国語のフォントです。 yuuji@74: intlfonts-split/ というディレクトリがあり、ここにはフォ yuuji@74: ントサイズによってファイルをまとめたアーカイブが置いてあるので、 yuuji@74: 例えば 16dots.tar.gz をGETします。そして以下のようにインストール yuuji@74: します。 yuuji@74: % tar zxpf 16dots.tar.gz yuuji@74: % cd intlfonts- yuuji@74: % ./configure --prefix=/usr/local/emacs \ yuuji@74: --enable-compress=gzip --with-bdf=no yuuji@74: # make install yuuji@74: % xset fp+ /usr/local/emacs/share/emacs/fonts yuuji@74: yuuji@74: configureに渡すインストールPATHのprefixなどのオプションは環境に yuuji@74: 合わせ適宜変更して下さい。続いて、Xのリソース定義ファイル yuuji@74: (.Xdefautsまたは.Xresources)に、 yuuji@74: yuuji@74: Emacs.Fontset-0: -*-fixed-medium-r-normal--16-*-*-*-*-*-fontset-normal yuuji@74: Emacs.Fontset-1: -*-fixed-bold-r-normal--16-*-*-*-*-*-fontset-normal yuuji@74: Emacs.Fontset-2: -*-fixed-medium-i-normal--16-*-*-*-*-*-fontset-normal yuuji@74: Emacs.Fontset-3: -*-fixed-bold-i-normal--16-*-*-*-*-*-fontset-normal yuuji@74: Emacs.Font: fontset-normal yuuji@74: yuuji@74: と書きましょう。これで、Emacs20で斜体、太字が使えるようになりま yuuji@74: す。もし、これらのフォントが利用できるようなら野鳥はこれを自動検 yuuji@74: 出し \it, \bf の内部のフォントとします。ただし、これは英字のみで yuuji@74: す。 yuuji@74: yuuji@74: ・では{\it }とか{\bf }で漢字の見栄えを変えるのは無理なんですか? yuuji@74: yuuji@74: 可能です(Emacs20 & Emacs21 on X)。 yuuji@74: yuuji@74: 日本語の場合は intlfonts だけでなく、X-TTなどのTrueTypeフォント yuuji@74: ドライバが必要になります。XFree86 4.0 以降の場合はおそらくそのま yuuji@74: ま利用できていることでしょう。XF86 3 の場合は yuuji@74: http://X-TT.dsl.gr.jp/index-ja.html などを参照して X-TT をインス yuuji@74: トールしましょう。フリーの日本語フォント、渡辺フォント(明朝)、和 yuuji@74: 田研フォント(ゴシック)をTrueType形式に変換したものがあるので、こ yuuji@74: れらもインストールします。リコーやDynaLabなどの商用フォントを購 yuuji@74: 入しても利用できます。ここではその手順は省略し、既にX上で yuuji@74: TrueType フォントが利用できる環境が整っていると仮定します。Xのリ yuuji@74: ソース定義ファイルを以下のように修正します。 yuuji@74: yuuji@74: Emacs.Fontset-0: -*-fixed-medium-r-normal--16-*-*-*-*-*-fontset-tt,\ yuuji@74: japanese-jisx0208:-*-fixed-medium-r-normal-*-16-*-jisx0208* yuuji@74: Emacs.Fontset-1: -*-fixed-bold-r-normal--16-*-*-*-*-*-fontset-tt,\ yuuji@74: japanese-jisx0208:-wadalab-*-bold-r-normal-*-0-*-jisx0208* yuuji@74: Emacs.Fontset-2: -*-fixed-medium-i-normal--16-*-*-*-*-*-fontset-tt,\ yuuji@74: japanese-jisx0208:-watanabe-*-medium-o-normal-*-0-*-jisx0208* yuuji@74: Emacs.Fontset-3: -*-fixed-bold-i-normal--16-*-*-*-*-*-fontset-tt,\ yuuji@74: japanese-jisx0208:-wadalab-*-bold-i-normal-*-0-*-jisx0208* yuuji@74: Emacs.Font: fontset-tt yuuji@74: yuuji@74: これにより、やはり野鳥が自動的に和文 italic, bold フォントを検索 yuuji@80: し、画面表示上の見映えを変えるようにしてくれます。 yuuji@74: yuuji@74: Windowsではもっとフォント環境が充実しているのでより簡単に設定で yuuji@74: きるのではないかと思いますが、私はそのやり方を知りません。ご存知 yuuji@74: の方がいらしたら教えて頂ければ幸いです。 yuuji@74: yuuji@74: ■その他 yuuji@74: ・AUCほげほげを使ってる友達を改宗させたいのですが…。 yuuji@74: yuuji@74: まあええやん、ちょっとぐらい不便でも人間なんとか我慢できます。 yuuji@74: なにそれでも改宗させたいとな。嬉しいことをおっしゃる。 yuuji@74: じゃあ、次のようなデモを見せましょう。 yuuji@74: (あらかじめ ~/.emacs で (setq YaTeX-create-file-prefix-g t) yuuji@74: しておいて下さい) yuuji@74: * \begin{itemize} yuuji@74: \item ほげほげ yuuji@74: \end{itemize} yuuji@74: という環境を作っておいて、 yuuji@74: 「う〜ん、やっぱenumerateがいいな、うりゃ」といって yuuji@74: カーソルを\beginか\endに合わせて [prefix] c で enumerate に変 yuuji@74: 更します。続いて、 yuuji@74: 「やっぱりここはセンタリングでしょ、おりゃ」といって yuuji@74: 環境全体をマーク(ESC C-@)して [prefix] B(大文字) してcenter環 yuuji@74: 境に括り入れます。 yuuji@74: 「じゃあpreviewしてみよっか、でもこの部分だけでいいやね」と yuuji@74: いってもっぺんcenter環境全体をマーク(ESC C-@)して yuuji@387: [prefix] % B してcenter環境を %#BEGIN〜%#ENDで括ってから yuuji@74: 領域タイプセットします。[prefix] t r。 yuuji@74: 「さてpreviewじゃ」 yuuji@74: といいつつ [prefix] t p します。 yuuji@74: 「ほほう、よし、表を書こう」と言って、 yuuji@74: enumerate環境の後ろにtabular環境を作ります。 yuuji@74: 「まあ3列くらいかな」といいつつデフォルトの質問には全てリター yuuji@74: ンだけで答えます。すると & & \\ が勝手に挿入されるので適当に埋 yuuji@74: めます。 yuuji@74: 「はい、次の行」 yuuji@74: と言いながら ESC RET します。また適当に埋めて yuuji@387: 今度は [prefix] t e で隣のバッファに on-the-fly preview を出し、 yuuji@387: 表の中味を書き換えては自動的に隣のpreview画像が書き変わる様を yuuji@387: 眺めます。 yuuji@387: 続いて、center環境の外に『この表は重要ネ〜』と書きます。 yuuji@74: 「うむ、『重要』にはアンダーラインを引こう」 yuuji@74: といって『重要』をリジョン指定して [prefix] S(大文字) で yuuji@387: underline を補完入力し、悩んだふりをして yuuji@74: 「やっぱアンダーラインはやめ」と言いながら yuuji@74: \underline または { か } にカーソルを合わせて [prefix] k して yuuji@387: \underline{} を消します。さらに悩むふりをして yuuji@74: 「やっぱセンタリングは要らんかもしれんなあ…」と言いつつ yuuji@74: \end{center} にカーソルを合わせて [prefix] . を押します。 yuuji@387: すると \begin{center}, \end{center} に % がつきます。 yuuji@74: 「うむ、やっぱりセンタリングはぽいっ」と言って yuuji@74: \end{center}の行で [prefix] k をおして begin/end 対を消します。 yuuji@74: 「さて、ファイルがでかくなって来たので分割するか」と言って yuuji@387: \include{foo} などを [prefix] s で補完入力します。 yuuji@74: 「じゃあ foo.tex を作らなきゃ…」と言って [prefix] g します。 yuuji@74: foo.tex が勝手に作られるので適当にごちゃごちゃ書いて yuuji@74: [prefix] t j でタイプセットします。 yuuji@74: 「ほ〜ら、foo.tex の親ファイルがさっきのファイルだって分かって yuuji@74: るでしょ?」と説明します。[prefix] ^ で親ファイルに戻ります。 yuuji@74: 「あ〜れ、おれこのソースをいくつに分割してたんだっけ?」 yuuji@74: とすっとぼけながら [prefix] d でincludeツリーを表示させて yuuji@74: n や p でごちゃごちゃやります。 yuuji@74: yuuji@74: こんな感じですかね。 yuuji@80: あとは、イメージ補完、数式モード自動判定、先回りusepackageなんて yuuji@387: のもアドバンテージでしょう。 yuuji@74: yuuji@74: ・なんで構成ファイルがいまさらSJISなの? だっせー。 yuuji@74: yuuji@74: このファイルがSJISで書かれているということが分かるあなたは、野鳥 yuuji@74: の構成ファイルがJISだろうがEUCだろうが対処できるはずです。しかし yuuji@74: SJISで生活している人には分かりません。Meadowや Mule for win32 な yuuji@74: らEUCでも読めるんじゃないの? と感じるかもしれませんが、Meadow な yuuji@74: どを使いはじめた人の中からは、「pLaTeX+野鳥が便利そうだ」という yuuji@74: ことがきっかけになっているという嬉しい報告も聞きます。そういう人 yuuji@74: にとってEUCやJISは得体の知れない手間のかかる面倒なファイルでしか yuuji@74: ありません。彼らがTeXやEmacsなどの素晴らしい世界に触れる目前で遠 yuuji@74: 慮してしまう可能性を考えると、やはり野鳥はSJISであり続けるべきだ yuuji@74: と思います。 yuuji@74: yuuji@74: そういうわけで、野鳥ではダサくても嫌いでも、SJISを使います。 yuuji@74: yuuji@74: ・メイリングリストはないんですか? yuuji@74: yuuji@74: っていう質問項目があるくらいだからあります。「野鳥」およびそのVz yuuji@74: への移植版「雷鳥」(by KATSURAGAWA, Naoki)、Wzへの移植版「白鳥」 yuuji@74: (by TAKENAKA, Hiroshi)、Hidemaruへの移植板「飛鳥」(by YASUDA yuuji@74: Haruyuki)、xyzzyへの移植版「花鳥」(by MAEDA Manabu) に関する情報 yuuji@74: 交換のためのメイリングリスト「fj野鳥の会」がそれです。 yuuji@74: yuuji@74: To: yatex@yatex.org yuuji@74: Subject: subscribe yuuji@74: ----- yuuji@74: たぐでーし。 yuuji@74: 明けましておめでとうございまーす。 yuuji@74: yuuji@74: のようにメイルを送れば加入できます。手続きは全て自動で行われ、登 yuuji@74: 録が完了すると確認とともに、参加/休止/脱会等の制御コマンドの利用 yuuji@127: 方法が返送されます。是非参加して一緒に野鳥/雷鳥/白鳥/飛鳥/花鳥を yuuji@127: 育ててください。なお、自己紹介の文が無い場合一見加入したように見 yuuji@127: えますが、自動的に登録解除しますので御注意下さい。 yuuji@74: yuuji@74: ・野鳥の最新情報は? yuuji@74: yuuji@74: もしあなたが、WWWにアクセスできるなら、 yuuji@74: http://www.yatex.org/ yuuji@74: を覗いてみて下さい。このなかの、「yatex-current」というリンクを yuuji@74: たどると最新版の野鳥を入手することができます。ただし、正式リリー yuuji@74: ス版ではなく、作者がデバッグ中だったりして正常に動作しない可能性 yuuji@74: があるので、current版の利用はとくに「デバッグに協力する」という yuuji@74: 心構えでの利用をお願いします。 yuuji@74: yuuji@127: yatex-currentは全ファイルを毎回取得する必要があるので非効率です。 yuuji@127: YaTeXのソースコードのMercurialリポジトリを利用し、効率的かつ安全 yuuji@127: に更新を行なって下さい。Mercurialをインストール後、以下のように yuuji@127: して開発版に追随します。 yuuji@127: yuuji@474: hg clone https://www.yatex.org:/hgrepos/yatex yuuji@127: yuuji@127: で、リポジトリ全体を取得します。開発ブランチは dev なので yuuji@127: yuuji@127: cd yatex yuuji@127: hg up -C dev yuuji@127: yuuji@127: して切り替えます(リリース用ブランチは default)。以後は、同ディレ yuuji@127: クトリで定期的に yuuji@127: yuuji@127: hg pull -uv yuuji@127: yuuji@127: すれば更新のみを取得します。このディレクトリをEmacsの load-path yuuji@127: に加えてしまってもよいでしょう。 yuuji@127: yuuji@74: ・とにかくわかりませーん! yuuji@74: yuuji@74: まず質問の前に yatex-current(上述) を試してみて下さい。既に直面 yuuji@74: した問題が解決されているかもしれません。それでもだめなら質問しま yuuji@74: しょう。 yuuji@74: 回答を得るまでの早い順に yuuji@74: yuuji@74: ・近くにいる詳しい人に聞く yuuji@74: ・メイリングリストに質問を出す yuuji@74: yuuji@74: でしょうか。お好きな方法でどうぞ。 yuuji@74: yuuji@74: ・このファイルを C-u C-x $ してQを眺めて項目選んで C-x $ しても変な所にいく。 yuuji@74: yuuji@74: ↑なっちゃいますよね? とりあえずQuestionのところで mark しておい yuuji@74: て C-x $ したあと C-x C-x してますが(mule2だとこんな苦労しなくて yuuji@74: 済むようです)。 yuuji@74: yuuji@74: Local Variables: yuuji@74: mode: indented-text yuuji@74: fill-column: 72 yuuji@74: fill-prefix: " " yuuji@74: End: