yatex

diff docs/qanda @ 84:73cba5ddd111

Converted from RCS of yatex
author yuuji
date Sun, 27 Sep 2009 13:04:14 +0000
parents 1b172d26b55e
children 39548ee6e881
line diff
     1.1 --- a/docs/qanda	Thu May 01 13:38:27 2003 +0000
     1.2 +++ b/docs/qanda	Sun Sep 27 13:04:14 2009 +0000
     1.3 @@ -4,7 +4,9 @@
     1.4  %% C-u C-x $ とすると質問項目だけ表示されます。C-x $ で元に戻ります。
     1.5  %%
     1.6  
     1.7 -(新項目:・font-lock はどうやって使えばいいんでしょ?
     1.8 +(新項目:・RefTeXは使えますか?
     1.9 +	・自分で定義したカウンタを\ref補完でのラベル候補対象として認識させたい
    1.10 +	・font-lock はどうやって使えばいいんでしょ?
    1.11  	・XEmacsでも色は着きますか?
    1.12  	・{\it }内部では斜体に {\bf }では太字になるという噂を聞いたんですが…)
    1.13  
    1.14 @@ -277,6 +279,96 @@
    1.15  	を .emacs に入れてみましょう。
    1.16  	
    1.17  	
    1.18 +・RefTeXは使えますか?
    1.19 +	
    1.20 +	使っている人はいるみたいですから使えるんじゃないでしょうか。でも
    1.21 +	ですね、野鳥の \ref 補完があれば、RefTeXなんぞ要らないと思います
    1.22 +	よ。これからは\label{}はいちいち自分では作らずにいきなり[prefix]
    1.23 +	s で \ref を打ち込みましょう。勝手にラベルを打てそうなところを探
    1.24 +	して勝手にラベルを打ってその名前を\refに入れてくれます。\ref補完
    1.25 +	は \label{} と \ref{} 両方同時に補完入力します。
    1.26 +	
    1.27 +	でですね、\ref補完の方がしょぼいと思うなら改良しますよ。「RefTeX
    1.28 +	の方が色がついてかっちょええ」という問題以外ならすぐに頑張ります。
    1.29 +	
    1.30 +・自分で定義したカウンタを\ref補完でのラベル候補対象として認識させたい
    1.31 +	
    1.32 +	おお、これは高度な質問でござるよ。ちみすごいね。え、質問の意味が
    1.33 +	分からん? じゃLaTeXのおべんきょーから。
    1.34 +	
    1.35 +	たとえば、プログラムリストなんかには図表と同じように番号を付けた
    1.36 +	い。そゆときあるっしょ。そういうときには定理型環境を newtheorem 
    1.37 +	で定義するですよ。たとえば、セクション番号に連動してつくようなプ
    1.38 +	ログラムリスト環境を作りたいとしましょ−。そしたらこうします。
    1.39 +	
    1.40 +	\newtheorem{Program}{リスト}[section]
    1.41 +	
    1.42 +	こうすると \begin{Program} ... \end{Program} とするとタイプセッ
    1.43 +	ト結果が
    1.44 +	
    1.45 +		リスト 2.4.1 ...
    1.46 +	
    1.47 +	なんてなるわけですな。かっちょえー。さて、このままだとこの2.4.1 
    1.48 +	という番号を\refで引っ張るためには\labelを作らないとあかんわけで
    1.49 +	すよ。でもどうせ自分で環境を定義するならlabelも自動的に定義しちゃ
    1.50 +	うようなマクロを定義しちゃった方が御便利なわけですよ。 もっとい
    1.51 +	うと独自に定義したカウンタのどの位置に \label を打たせるかを野鳥
    1.52 +	に判断させるためのパターンを書くのはものすごくむずかしいので、ラ
    1.53 +	ベルを定義するためのマクロのパターンを教えた方がやりやすいわけで
    1.54 +	す。ということで、暗黙でラベルも打たせるような環境を定義すると、
    1.55 +	こんな感じ。
    1.56 +
    1.57 +	\newenvironment{program}[1]{
    1.58 +	\begin{table}[tbp]
    1.59 +	\begin{Program}\filename{#1}\nopagebreak[4]\label{#1}\end{Program}
    1.60 +	\nopagebreak[4]
    1.61 +	\begin{breakbox}\small
    1.62 +	}{
    1.63 +	\end{breakbox}
    1.64 +	\end{table}
    1.65 +	}
    1.66 +	
    1.67 +	この小文字 program 環境は
    1.68 +	
    1.69 +	\begin{program}{foo.c}
    1.70 +	\begin{verbatim}
    1.71 +	#include <stdio.h>
    1.72 +	\end{verbatim}
    1.73 +	\end{program}
    1.74 +	
    1.75 +	みたいにするとタイプセット結果が
    1.76 +	
    1.77 +		リスト 2.4.1 foo.c
    1.78 +		┌──────────────┐
    1.79 +		│#include <stdio.h>          │
    1.80 +		└──────────────┘
    1.81 +	
    1.82 +	てな具合になるわけですよ。おおかちょええ。さて、小文字program環
    1.83 +	境のマクロ定義を良く見ると環境に渡した foo.c はそのまま
    1.84 +	\label{#1} でラベルとして自動的に打たれることになる。あ、pLaTeX 
    1.85 +	のラベルは日本語もOKよ。で、その暗黙のうちに打たれたラベル名を野
    1.86 +	鳥に教えるというのがスマートなやり方です。これを定義するのが変数
    1.87 +	YaTeX::ref-labeling-regexp-alist-private なり。これには
    1.88 +	
    1.89 +	(正規表現 . ラベル名のグループ番号)
    1.90 +	
    1.91 +	という組(consセル)がたくさん集まったリストを定義する。たとえば、
    1.92 +	上記のprogram環境の第1引数を拾わせるには
    1.93 +	
    1.94 +	(setq YaTeX::ref-labeling-regexp-alist-private
    1.95 +	      '(("\\\\begin{program}{\\([^}]+\\)}" . 1)))
    1.96 +	
    1.97 +	とします。program環境の第一引数の部分の正規表現が
    1.98 +	
    1.99 +		{\\([^}]+\\)}
   1.100 +	
   1.101 +	の部分で、\\( \\) のグループ化された正規表現 [^}]+ つまり、閉じ
   1.102 +	中括弧以外の文字が続くところ、がラベル名として取り出せるわけです。
   1.103 +	ということで、上記のようなLaTeXマクロの定義と
   1.104 +	YaTeX::ref-labeling-regexp-alist-private の定義で無事、自分なり
   1.105 +	のカウンタとそのラベル名を\ref補完に取り込めるわけです。最初は面
   1.106 +	倒臭いけど、一度定義しちゃえば一生モノでっせ!
   1.107 +	
   1.108  ■Mule2 関連
   1.109  ・Mule2+hilit19を使っている時に数式が暗くて良く読めない。
   1.110  	
   1.111 @@ -493,7 +585,7 @@
   1.112  	Emacs.Font: fontset-tt
   1.113  	
   1.114  	これにより、やはり野鳥が自動的に和文 italic, bold フォントを検索
   1.115 -	し、
   1.116 +	し、画面表示上の見映えを変えるようにしてくれます。
   1.117  	
   1.118  	Windowsではもっとフォント環境が充実しているのでより簡単に設定で
   1.119  	きるのではないかと思いますが、私はそのやり方を知りません。ご存知
   1.120 @@ -556,8 +648,8 @@
   1.121  	  n や p でごちゃごちゃやります。
   1.122  	
   1.123  	こんな感じですかね。
   1.124 -	あとは、イメージ補完、数式モード自動判定なんてのもAUCにはありま
   1.125 -	せん。
   1.126 +	あとは、イメージ補完、数式モード自動判定、先回りusepackageなんて
   1.127 +	のもAUCにはありません。
   1.128  	
   1.129  ・なんで構成ファイルがいまさらSJISなの? だっせー。
   1.130  	
   1.131 @@ -572,13 +664,6 @@
   1.132  	慮してしまう可能性を考えると、やはり野鳥はSJISであり続けるべきだ
   1.133  	と思います。
   1.134  	
   1.135 -	Emacs20の一部のバージョンで、文字列に漢字を含むEmacs-Lispファイ
   1.136 -	ルをバイトコンパイルすると化けてしまうものがあるのは知っています
   1.137 -	が、それはEmacs20の非です。しかしそれはいずれ直されるであろうバ
   1.138 -	グであり、Emacs20を使いこなしているヴェテランのちょっとした手間
   1.139 -	を軽減するためにJISコードなどに変更して、Emacs初心者に対する益を
   1.140 -	失いたくありません。
   1.141 -	
   1.142  	そういうわけで、野鳥ではダサくても嫌いでも、SJISを使います。
   1.143  	
   1.144  ・メイリングリストはないんですか?