UNIX MAGAZINE 1991年6月号

キーフレーズ

UNIX ファイル MAGAZINE etc コマンド ファイルシステム ネットワーク usr システム NIS 1991 Sun Macintosh label dev 実行 passwd widget 場合 ワークステーション クライアント 000 プログラム () 機能 llll SPARC ディレクトリ サーバー tmp lnternet Subject リスト sys nadia ウインドウ include 使用 可能 情報 SNMP オプション then for bin found 必要 NEWS ファイル名 ディスク 出力 計算機 def SunOS root echO string ユーサー 番号 マシン グループ 指定 .com 対応 name アクセス アプリケーション パスワード データ pluto 環境 表示 Motif exit ノード インターフェイス ソフトウェア Widget 利用 proc Usage 管理 SPARCstation ドメイン名 できる 設定 サポート int arguments ラベル メッセージ Message MS-DOS 参照 Transferring lost -3 シリーズ Mar 登録商標

目次

連載 / てくてく rIbX illustration•小沼卓児 26 相互参照についての注意 こでは、相互参照についての注意というより、説明 し足りなかったところについて書くことにします。相互 参照機能は、うつかりした間違し、以外でトラブルが起こ ることはめったにありません。 ラベルをつけるとき ラベルをつける \label コマンドは fragile なコマ ンドてすから、動く引数のなかで使用することはできま せん。ただし、セクション付けコマンドと \caption コマンドをオフ。ション引数なしで指定した場合、引数 は動く引数になりますが、このなかでは特別に使用で きます。 ラベル名を 20 ~ 30 文字ていどの長さにすることも できますが、なるべく短くするようにしてくたさい。と くに多くのラベルを使用するときには、これが重要なポ イントになることもあります。 ラベルについての情報は、 \begin{document} 力、 ら \end{document} までずっとメモリ中に保持され ることになります。あまり長いラベル名をつけると、長 1 日本語 Micr01FfX のマニュアルのなカこ、この間韋いがあります。 コマンド名をうつかり間違えて \ref コマンドを使 ってしまうと、「 4.5 ページ」なんてわすの分からない 出力になってしまいます 1 。 140 捜してみてくたさい。 さのふんたけの貴重なメモリが消費されてしまい ます。 参照するとき \ref コマンドも fragile なコマンドてす。 ふつう \ref コマンドも \pageref コマンドも、番 号だけを出力するようになっています。したがって、前 後には「ページ」「表」「章」などの単語力要になりま す。このとき、不自然な位置で改行しないように十分に 注意してください。たとえば、入力ファイルカ飲のよう になっていたとします。 \pageref{caution1}R—ジにある 図 \ref{cautionl} を参照してください このようなときにページ番号と「ページ」、図番号と 「図」とのあいだで改行が起こらないようにするのです。 次のようにすればいいてすね ( というのは分力、っている のてすが、じつは私自身はやっていなし \mbox{\pageref{cautionl} ページ } にある \mbox{ 図 \ref{cautionl}} を参照してください 次のような方法もあります。 The figure-\ref{cautionl} on page-\ref{cautioni} illustrates it . チルダ ( ~ ) は、そこて敏行せすに単語間スペースを 空ける特殊文字てす。 おわひ 前回、私は大きな間違いを書し、てしまいました。 \footnote コマンドの引数は、動く引数ではあ りません。ですから、 \label コマンドや \ref コマンドは \footnote の引数のなかでも問題な く使えます。 \footnote に似てし、ますが、 \thanks コマンド の引数は動く引数です。 警告メッセージ 3 つ "LaTeX Warning" で始まるメッセージは、 IATEX の警告メッセージです。相互参照に関する警告メッセー ジが 3 つありますから、まとめて説明しておきます。 UNIX MAGAZINE 1991.6

連載 / てくてく 26 eqnarray 環境の場合、それぞれの数式を区切る \ \ を境にして参照番号カ飲の番号に変わります。 ・ table 環境の \caption コマンド→表番号 table 環境の \ capt 土 0 Ⅱコマンドの引数に \label コマンドを指定すると、ラベルには表番号が割り当 てられます。 table 環境の \caption コマンドより後ろに指定さ れた \label コマンドに対しても、参照番号は表番 号になります。 ・ figure 環境の \caption コマンド→図番号 境の \caption コマンドの引数に \label コマンドを指定すると、ラベルには図番号が割り当 てられます。 表番号と同様に、 \caption コマンドより後ろに \label コマンドがあるとき、 figure 環境内であ れよ参照番号が図番号になります。 enumerate 環境→リストの項目番号 enumerate 環境のなかで \label コマンドを使う と、ラベルには項目番号が割り当てられます。 ・ \footnote コマンド→脚注番号 \footnote コマンドの引数のなかに \label コマ ンドを指定すると、ラベルには脚注番号が割り当て られます。 ・上記以外のテキスト中→章や節の番号 これら以外の場所で \label コマンドを使うと、そ のセクション番号を参照するようになります。 最初の例でも、セクション付けコマンドの引数のな かでなくても、コマンドの直後などに \label コマ ンドを指定すれば、セクション番号を参照すること はできたのでした。 細かい話になりますが、 figure 環境や table 環境 の \caption コマンドの月リ、 enumerate 環境の最 初の \item コマンドの月リに \label コマンドカ : あ れま、これも参照番号がセクション番号になります。 いままでこの連載で説明したことはありませんが、 \newtheorem というコマンドを使うと、番号管理をと もなう環境が定義できます。 \newtheorem コマンドで 作成した環境の内部で \label コマンドを使用したと きにも、その環境の番号になります。 UNIX MAGAZINE 1991.6 次の例では、 enumerate 環境のなかで \label コ マンドを使用し、項目番号を参照しています。これが 2 回目以降のい T の結果であることは、もう言わなく ても分かります牙 スポンジ・ケーキを上手につくるには \begin{enumerate} \item\label{en:flr} 小麦粉をよくふるう \item\label{en:egg} 卵か新鮮てある \item\label{en:wht} 卵白をしつかり泡立てる \item\label{en:msr} 計量をしつかリおこなう \end{enumerate} ことが大事てす。 \ref{en:wht} は、 卵黄が混ざってしまうとうまくいきません。 くいきません。 ことが大事です。 3 は、卵黄が混ざってしまうとうま 計量をしつかりおこなう 卵白をしつかり泡立てる 卵が新鮮である 小麦粉をよくふるう スポンジ・ケーキを上手につくるには 4. 3. 2. 1. 眠っているあいだに胃のなかに食物があると脂肪の 42 ペーシ 詳しくは 42 ページを参照してください 脂肪 \ label { ( fat , } の原因となリます。 眠っているあいだに胃のなかに食物があると 参照してください。 詳しくは \pageref{'fat'}R—シを を参照することができます。 えば、ラベルをブナたテキストが出力されたページ番号 \ref コマンドの代わりに \pageref コマンドを使 ペーシの参照 原因となります。 139

連載 / てくてく価び 26 \ref コマンドの位置には「 ? ? 」が出力されています ね。 I*TEX は定義されていないラベルがあると、この ような警告メッセージを画面に表示し、 \ref コマンド の位置に「 ? ? 」を出力します。 しかし nothing というラベルは、たしカこ定義した はずです。おかしいですねえ Rerun to get cross-references right 前回お話しした目次では、最初の I 'FfX で目次ファ イルを作成し、 2 度目のい TFfX で目次を出力するよう になっていました。 相互参照も同じように、最初の INIbX でラベルの 定義をおこない、 2 度目の I*TEX で \ref コマンド で参照した位置にラベルに対応する番号を出力します。 つまり、前回 IMbX を実行したときの結果にもとづし、 て、出力される参照番号が決まるナです。 ラベルと番号との対応を保持しているのは、 aux ファ イルです。最初のの実行時には \label コマ ンドで定義されているラベルをどんどん aux ファイル に書き込んでいきます。途中に \ref コマンドがある と、 "LaTex warning' を表示し、参照番号の代わり 「 ? ? 」を出力していきます。 2 度目の I ?X の実行時には、 aux ファイルの内容 をもとに \ref コマンドの位置に正しい参照番号を出力 してくれます。 もちろん 2 度目の T の実行中にも \label コ マンドは、ラベルと番号の対応を aux ファイルに書ぎ 込んでいきます。そのとき、前回にはなかったラベル が定義されていたり、前回と今回とで番号が変わって しまったラベルがあると、最後に次のような警告メッ セージを表示します。 LaTeX Warning : Labe1 (s) may have changed. Rerun tO get cross—references right この警告メッセージは、「どこかの相互参照の番号が 実際とは違っているかもしれません」と注意していま す。この警告メッセージが表示されたときには、同し 入力ファイルに対してもう 1 度獰 TEX を実行してくだ さい。 138 さきほどハ Tj さを実行したときにも、最後にこの警 告メッセージが表示されており、もう 1 度 I*TEX を 実行するように言っていましたれ もう 1 度 I 1 度目のハさの実行の最後の警告メッセージは、 新しいラベルが定義されたために表示されたのでしょ う。ということは、いまは「Ⅱ。 t 五土 ng 」という名前の ラベルが定義されて、 aux ファイルに登録されている 同じファイルにもう 1 度ハ TEX を実行します。 This is TeX, C Version 2 .99 (kame . tex Chapt er 1. [ 1 ] Chapter 2. [ 2 ] (kame . aux) Output vritten on kame. dvi ( 2 pages , Transcript vritten 0 Ⅱ kame ・ 10g. ほら、もう最初のような警告メッセージは表示され ないでしよう ? 出力にも、正しい番号が出力されます。 2.3 何も思いつかない日 今日は何も思いつかない日。空は青いし、気温も 暑すぎず、寒すぎず。 こはどこ ? 「こ一 は 2.3 節だよ」誰かが答えた。 参照てきる番号 I*TEX の相互参照では、セクション番号たけではな く、図表番号や enumerate 環境の番号なども扱うこ とができます。 ラベルにどの番号が割り当てられるカ寸よ、 \label コ マンドの指定位置によって決まります。 equation 環境→数式番号 equation 環境や eqnarray 環境など、数式番号カ : 出力される環境のな力に \label コマンドを指定す ると、ラベルには数式番号が割り当てられます。 UNIX MAGAZINE 1991.6