ernacs 入門 5 行目の、、@ sma Ⅱ b 。。 k 〃は、デフォルトよりすこし小さ めの本にします。 texinfo の印刷の標準サイズは、 8.5x 1 linch ( ほば A4 判 ) ですが、この指定があると 7 x 9. 25inch(IiIt B5 判 ) になります。 6 行目のゞ@setchapternewpage od 卍は、章の先頭 を奇数ベージから書き出す指定です。ツにやさしい〃運 動を実践していて、白紙を出すと始末書ものだという会社 ではこの行を削除してください。 X による整形、 1 回目 いよいよ texinfo. texinfo を整形しましよう。 Nemacs からでも jtex を使うことはできますが、ここではシェル上 で実行させます。 あなたのサイトで X がインストールされていること を確認してから、 % Jtex texinfo. texinfo を実行してください。 texinfo. dvi 、 texinfo. cp 、 texinfo. fn 、そのほかにも FI X 関連のファイルがいくっかできま す。 図 37 索引ファイルのソート ・ソート前の索引ファイル ( te 刈 nfo. 叩 ) 表ー索引ファイルのカテゴリーと拡張子 カテゴリー 概念 (Concept) 関数 (Function) 変数 (Variab1e) プログラム (Program) キーワード (Key) データ型 (Data Type) 索引ファイル 拡張子 をソートして出力します。ソート後のファイルの名前は、 texindex は X が出力した索引ファイルを読み、内容 を使ってソートしてやりましよう。 Nemacs とともに提供されるシェルコマンド texindex のままではちょっと使いものになりません。そこで、 これらの索引は残念ながらソートされていないので、そ からです。索引のカテゴリーは、全部で 6 不頁あります俵 は、 texinfo では索引をカテゴリーごとに分けて出力する これらは索引ファイルです。索引ファイルが複数個あるの texinfo. cp や texinfo. fn は見慣れないファイルですが、 \entry {Overview 0f Texinf0}{3}{Overview 0f Texinf0} \entry {Texinfo overviev}{3}{Texinfo overview} \entry {Characteristics Of the lnfO file}{4}{Characteristics Of the lnfO file} \entry {InfO file characteristics}{4}{lnf0 file characteristics} \entry {Printed manual characteristics}{5}{Printed manual characteristics} \entry {Characteristics , printed manua1}{5}{Characteristics, printed manual} {Genera1 syntactic conventions}{6}{Genera1 syntactic conventions} {Syntactic conventions}{6}{Syntactic conventions} \entry \entry UNIX MAGAZINE 1992.11 \entry {Catching nistakes}{77} \entry {Catching 、 e て ro て s vith TeX Formatting}{80} \entry {Catching -errors vith InfO Formatting}{77} \initial {C} \entry {Bu11ets , inserting}{65} \entry {Breaks 洫 a paragraph}{54} \entry {Breaks in a ユ ine}{53} \entry {Braces , inserting}{63} \entry {Beginning 1ine Of a Texinfo fi1e}{16} \entry {Beginning a Texinf0 fi1e}{15} \entry {Bad1y referenced nodes}{83} \initial {B} \entry {{\sf \char ' 100}-Command Syntax}{87} \initial {{\sf \char ' 100 } } ・ソート後の索引ファイル (texinfo.cps)
ernacs 入門 山だってもう怖くはありません ( 図 28 ) 。シェル・スクリプ 実際の変更方法は、 トを仕掛けておけば ( 図 29 ) 、思い残すことなく・・ ・ info ディレクトリの dir ファイルを読み込んで編集 女の子 : ねー、飲みにいかない ? ・ lnfo なりの流儀で変更 僕 : いいとも ) の 2 通りがありますが、ここでは lnfo 流で対処しましょ そして数分後・・ つ。手順は次のとおりです。 t 算機 : file system full. file system full. file sys- 1. まず lnfo を起動して (dir)T 叩ノードを表示する。 ・・も一、ほんまに誰かおらへんのお。ディス tem full. ・ 1 気または、 lnfo-directory コマンドで (dir) Top ノード クが溢れたんやで。なんとかして一な、ぶんぶん。 へ移動する。 2. lnfo バッフアの編集許可をもらう。 dir ファイルにドキュメントを登録 3. lnfo-edit コマンドを実行して、バッフアを編集状態に やっと仕上げの第 3 段階に到達できました。最後は lnfo する。 の大親分ノード (dir)T 叩に挨拶して、新しいドキュメン 4. dir ファイルにメニューを追加する。 トを子分にしてもらいましよう。これはとっても簡単で、 5. lnfo-cease-edit コマンドを実行して、編集モードを 図 30 のように dir ファイルの、 抜ける。 * Menu: The 1ist of これから説明する操作は、 1 や 1' 以外は lnfo のノードを よりも後ろに、周囲を真似てメニュー項目を追加してくだ 編集する一般的なガ去です。ドキュメントを追加するとき はかりでなく、普通のノードの編集にも利用してください。 図 29 texinfo から info を自動作成する状態 % sh texinf02info *. texinfo Formatting Inf0 file . Formatting InfO file : /usr/lib/emacs/info/vehicle Formatting Inf0 file ... done . Wrote /usr/lib/emacs/info/vehicle 一三日 図 30 ( dir ) Top へ新しいドキュメントを登録する Fi1e : dir N0de : Top This is the top Of the INFO tree This (the Directory node) gives a menu Of major topics ・ Typing returns here , 可 exits , " ? " lists a11 INFO commands, "h" glves a primer for first¯timers , "mTexinfo く Return>" visits Texinfo topic , et c . PLEASE ADD DOCUMENTATION TO THIS TREE. (See INFO topic first. ) * Menu: The 1ist Of maJOr topics beglns 0 Ⅱ the next line. * lnfo : (info) . Documentation brovsxng system. * Emacs : (emacs) . The extensible self—documenting text editor. * Nemacs: (nemacs) . Japanese Of Emacs. * Texinfo: (texinfo) . With 0 取 e source file , make either a printed manual (through TeX) or an InfO file (through texinfo) . Fu11 documentation in this menu item . * Vehic1e : (vehicle) . Verious vehicles . 120 UNIX MAGAZINE 1992 ユ 1
書込み権限のない、 /usr/lib/emacs/info になっていました。むむ、いつのまに・ その謎を解くには、禁断の ( ! ? ) texinf 。ファイルの中身 に触れなくてはなりません。図 26 は vehicle. texinfo の 最初の部分ですが、 3 行目に、、@setfilename /usr/lib/ emacs/info/vehicle" と書かれた行があります。これが info ファイルに変換したときのファイル名 ( パス名 ) の指 定です。この texinfo を書いた人は、 info ファイルを置く info ディレクトリをご丁寧にも絶対パスで指定していた @setfilename vehicle のです。この部分を、 @c —*—texinfo—*— 1 \input texinfo 図 26 vehicle. texinfo ファイルの先頭部分 すが、 texinfo-format-buffer が処理しているあいだは、ほ Nemacs を起動して、 1 っすつ手で実行してもいいので ルする場合を考えてみましよう。 ファイルに変換して、決まったディレクトリにインストー ときには意外と便利です。大量の texinfo ファイルを info filename" の指定ですが、 Nemacs をバッチモードで使う よけいなお世話って気がしないでもないゞ@ set- info ファイルの作成を自動化する 2 段階も終了です。 き、あとのコピーはシェルでおこないましよう。これで第 でも今回はとりあえす適当なディレクトリに保存してお にしておけば、万事解決です。 emacs 入門 //\/ N かのコマンドを実行できません。これではすっかり夜も更 けて、せつかくの、 「ねー飲みにいかない ? 」 ってお誘いも、 「え、まだ仕事があるの。そりゃ残念ね。じゃ、バイバイ」 って羽目に・ 時間を有効に使うためにも、 こは Nemacs のバッチ モードで自動化しましよう。シェル上で Nemacs を起動 するときに、図 27 のように指定してください。 -batch はバッチモード、つまり、 、、ウインドウを開かずに、指定されたコマンドだけ実行し は、 を実行してもらいます。 ・ save-buffer ・ texinfo-format-buffer -f は、 Nemacs に実行してもらう関数の指定で、 ことを指示しています。 て終了する〃 Nemacs のバッチ技さえ憶えれは、 texinfo ファイルの す。 info ファイルは自動的に info ディレクトリに保存されま でさきほどの@setfⅡename が活かされて、できあがった vehicle. texinfo は、読み込むファイルの指定です。 2 .com/ent %**start Of header (This is f0 て running Texinfo 0 Ⅱ a region. ) UNIX MAGAZINE 1992 ユ 1 done nemacs —batch $f —f texinfo—format—buffer —f save—buffer do for f in $ * # This is s e11 script translating texinfo tO infO # FILE : texinf02info # ! /bin/sh 図 28 texinfo ファイルをバッチタ里するシェル・スクリプト % nemacs —batch vehicle. texinfo ¯f texinfo—format—buffer ¯f save¯buffer 図 27 texinfo ファイルから inf0 ファイルを自動生成する 4 3 @setfilename /usr/lib/emacs/info/vehicle 119
ennacs 入門 /. / 、、、、、ノ ' N 図 36 texinfo. texinfo のヘッダ部分 7 .com/ent %**end Of header (This is for running Texinf0 on a region ・ ) @setchapternewpage 0dd @smallbook 4 @settitle Texinfo 1 . 1 @setfilename /ara/texinfo .com/ent %**start 0f header (This is for running Texinfo on a regxon. ー ) @c —*—texinfo—*— \input texinfo 6 5 3 2 1 始まりません。例として Nemacs に付属のドキュメント tex ⅲ f 。 . tex ⅲ f 。の印刷を目標にしてみましよう。まず、シ ェルで tex コマンドを実行します ( ドキュメントが日本語 の場合を考え、ここでは jtex コマンドを使っています ) 。 % jtex texinfo. texinfo This is JTeX, Vers10n ! I can't find file 'texinfo . tex' 1.1 \input texinfo @c —*—texinfo—*— P1ease type another input file name : おや、なんかファイルが足りないらしく、受け付けても らえませんでした。 それもそのはず。 texinfo ファイルには X の知らない 命令が書かれているのです。そこで、これを X の代わり に解釈して翻訳する人が必要となりますが、この翻訳者が X のマクロファイルである texinfo. tex4 です。 では、改めて texinfo ファイルを印刷するまでの手順を 書き出してみましよう。 る。 6. 明 X の専用ドライバを使って、 d ⅵファイルを印刷す dvi ファイルの最終版を手に入れる。 5. もう 1 度 texinfo ファイルを jtex に通し、印刷用の 4. インデックス・ファイルをソートする。 ルと印刷用の dvi ファイルを作る。 3. texinfo ファイルを jtex に通し、インデックス・ファイ 2. texinfo ファイルを自分のサイト用に書き換える。 1. texinfo. tex ( マクロファイル ) をインストールする。 UNIX MAGAZINE 1992 ユ 1 ん。整形に失敗したら頑張って正しい ( ! ? ) texinf 。 . tex を搜してください。 ジョンがあるようなので、手許の texinfo ファイルと一致しないかもしれませ 4 texinfo. tex は、配布テープの man / ディレクトリにあります。でも各種のバー いいでしよう。でも、通常は Nemacs をインストールした 置くか、 texinfo ファイルと同しディレクトリに置いても (/usr/lib/tex/macros や /usr/local/lib/tex/macro s ) に texinfo. tex は、 X のマクロのあるディレクトリ ときに、な X のマクロ用ディレクトリにコピーされるの で、一般ューザーは気にしなくてもすみます。 texinfo ファイルのカスタマイス 123 刷したマニュアルに付けるタイトルです。 ァイルの名前の指定ですね。 4 行目の、、@settitle" は、印 3 行目の、、@setfilename" は、すでに説明した info フ 早合点して消してしまわないでください。 解釈するので、、、こんなコメントは要らないだろう〃なんて と、、 % * * end of header" をへッダ部分の範囲指定だと ドにしたり、 2 行目と 7 行目の、、 % * * startofheader" をメジャーモードとして解釈し、バッフアを texinfo モー —*—texinfo—*— 1 行目の、 でも、 Nemacs はこのファイルを読み込んだときには、 解釈し、整形とは関係がありません。 行目の、、@c 。 mment 〃はどちらも、 X はコメントとして で始まります。たとえば、 1 行目の、、@c" や 2 行目と 7 texinfo ファイルで特別な意味を示すコマンドは、、、@ク 使いたいときには、後ろのファイル名を変更してください。 す。もし、あなたが明 X に精通していて、独自のマクロを は、ヾマクロとして texinfo. tex を読み込む〃という指定で \input texinfo めに、一部変更してあります ) 。 1 行目の、 図 36 は texinfo. texinfo の最初の部分です ( 説明のた した修正方法についてだけ説明しましよう。 こでは印刷の大まかな体裁を変更するための、ちよと ください。 れば、 lnfo で表示される texinfo ドキュメントを読んで とにします。 texinfo ファイルのフォーマットを知りたけ うになりますが、この連載ではそこまでは踏み込まないこ に構成を変更したり、自分で texinfo ファイルを書けるよ texinfo ファイルのフォーマットを知っていれば、自由
emacs 入門 とりあえす、 % lpr —d texinfo. dvi を試してみてください。 もしこれで失敗しても、がっかりするのはまだ早い。 texpr 、 texout 、 dvi2ps 、そのほか名則の一部に tex とか M-x lnfo M-x lnfo M-x lnfo M-x lnfo M-x lnfo 、 x lnfo M-x lnfo M-x lnfo M-x lnfo M-x lnfo mfO コマ / ・今回出てきたコマンドー覧 M-x info 0 ′い M-x M-x M-x M-x M-x lnfo lnfo lnfo lnfo lnfo (C-h i) -help (h) -next (n) -prev (p) -up 恒 ) —menu m —follov-reference (f) —search (s) -goto—node (g) —directory (d) -last ( 1 ) —fifth—menu—item ( 5 ) —forth—menu—item ( 4 ) —third—menu—item ( 3 ) —second—menu—item ( 2 ) —first—menu—item ( 1 ) M-x scroll-up ( く SPC 〉 ) M-x scroll—dovn ((DEL 〉 ) M-x beginning—of—buffer (b 、 . ) M-X lnfo—edit(e) M-x lnfo-cease—edit (C-c C-c) 、 4- x lnfo—validate M-x lnfo-exit (q) 、 'Nemacs の起動時のオプショノ M-x texlnfo—format—buffer mexinfo バツアアのコ ~ マン lnfo—enable—edit Emacs 変鉄 —batch -f 関数名 工ル・コマ冫 tex 、 jtex texindex lpr texpr 、 texout 、 126 dvi2ps dvi とかが付いているコマンドをひととおり調べてみるの もよいでしよう。 最後に、 texinfo を印刷するまでの一連の入力操作を図 ( あらい・みちこ ASTEC) 38 にまとめておきました。図 39 は実際の印刷マニュアル 5 番目のメニューが指すノードへ移動 4 番目のメニューが指すノードへ移動 3 番目のメニューが指すノードへ移動 2 番目のメニューが指すノードへ移動 1 番目のメニューが指すノードへ移動 子のノードへ移動 親のノードへ移動 前のノードへ移動 次のノードへ移動 lnf 。の使い方を説明するノードへ移動 lnfo システムの起動 の一部です。 UNIX MAGAZINE 1992 ユ 1 TFfX のプリンタドライバ名 UNIX の標準的なプリンタ出力コマンド の索引をソートする のファイルを整形する 指定された関数を実行する バッチ処理の指定 texinfo ファイルを info ファイルに変換する lnfo ノードの編集の許可 / 不許可を設定 lnfo システムの終了 info ファイルの正当性を調べる lnf 。ノードの編集モードを終了する lnfo バッフアを編集モードにする ノードの先頭へ移動する ノードを逆スクロールする ノードをスクロールする リファレンス先のノードへ移動 ノードをまたぐ文字検索 ( 正規表現 ) 指定したノードへ移動 lnfo の一番上のノード (dir)Top へ移動 これまでのノードの移動を逆向きに戻る
図幻 infO ファイルと texinfo ファイ丿レ lnfo file: vehicle, ・ info ファイル Fi1e: vehicle NOde: TOP, prev: (dir) ThiS file documents venous vehicles . from file: vehicle . tex produced by texinfo—format—buffer 輪のない乗り物 * がない : : * 報がある : ・輸がある乗り物 Fi1e: vehicle N0de: 輪がない , Up . ・ t exinfo ファイル Top, , Up. Next : (dir) 輪がある \input texinfo @c —*—texinfo—*— This file documents verious vehicles . @ifinfo @end iftex @f ina1 out @iftex .com/ent %**end Of header (This is for running Texinfo on a region ・ ) set chapt ernevpage 0dd @smallbook @settitle Vehic1e 1 . 0 @setfilename /usr/lib/emacs/info/vehicle .com/ent %**start Of header (This is fO て running Texinfo 0 Ⅱ a reglon. ) @center @tit1efont{Vehic1e} @sp 11 @titlepage @end ifinfo @sp 4 @center by M. Arai @sp 2 @center Edition 1 . 0 @sp 2 @center Sep 1992 @end titlepage (dir) , @node Top , .com/ent node—name , @menu (dir) next , 輪のない乗り物 * 輪がない : : * 輪がある : : 輪がある乗り物 @end menu 報がない , 輪がある , @node .com/ent node—name , , preVIOtlS , , Top prevxous , up 図 22 (dir)Top ノードに書かれた Texinfo のメニュー項目 * Texinfo: (texinfo) . With one source file , make either a printed manual (through TeX) or an lnfo file (through texinfo) . F Ⅱ 11 documentation in this menu item UNIX MAGAZINE 1992 ユ 1 emacs 入門 ,// 、、、 v/ 117
図引 (dir)Top ノード i le : d i r NOde: Top This is the top Of the INFO tree This (the Directory れ 0d0 ) gives a menu of major topics. Typing "d" returns here, ー q" exits, ” ? ” lists a11 INFO corrrnands, “Ⅳ 価 ☆ lnfo: (info) . D0052 れ t io れ browsing system. ☆ Henu: The list Of れ旧 jo ー topics 0 れ the next line. - PLEASE ADD WC 【屑日打 ATION TO THIS TREE. (See INFO topic first. ) etc . gives a primer fO 「 first-timers, "mTexinfo く Return>" visits TexinfO topic, emacs 入門 /,へ〉/ ” ? ” lists a11 INFO conrnands, "h" Typing "d" returns here, "q" exits, This (the Directory node) gives a menu Of 第旧」 or topics. This is the top 0f the INFO tree N0de: Top äile: dir 図 32 f0 ー edit を実行したときの旧 fO / ヾッファ ☆ lnfo: (info) . bocumentation browsing system. ☆ Henu: The list Of major topics begins 0 れ the next li れ e. - PLEASE ADD @CUMÜITATION TO THIS TREE. (See INFO topic first . ) etc . gives a primer fO 「 first-timers. "mTexinfo く Return>" visits Texinfo topiC' ☆ Emacs: ( 旧 cs ) . ☆ Nemacs: ( れ emacs ) . ☆ Texinfo: (texinfo) . 丁 he extensible 921f - docu れれ ting text editor. Japanese version Of EmacS. ☆ Emacs: ( 印 nacs ) . ☆ Nemacs: (nemacs) . ☆ Texinfo: (texinfo) . The 0 t 円虐 ible self-documenting text editO 「 . Japanese version Of E 第 C . With 0 れ e source file, make either a pri れ ted manual (through TeX) or an lnfo file (through texinfo) . Fu11 d001 第れ tation in this nenu item. ☆ Vehic1e: (vehicle) . Verious vehicles. Loading info ... done ます、 ( dir ) T 叩ノードへ移動し ( 図 31 ) 、新しいドキュ メントをメニューの先頭に追加したいのですが、 lnfo バッ ね。 が示すとおり、 read-only です。これでは編集できません フアはモードライン、 次は、 lnfo-edit コマンドの実行です。 lnfo バッフアで を実行してください。これで、編集許可がとれました。 Eva1 : (setq lnfo—enable—edit t) く CR> M—X そこで、編集を始める前に、 てあります。もちろん、デフォルトでは nil です。 lnfo-enable-edit 変数が nil なら編集できないようにし ので、間違って編集したらさあ大変。そこで安全のために、 lnfo が呼び出すドキュメントは、みんなで共有している うには下準備が必要です。 通に編集できるようになります。ただ、このコマンドを使 lnfo ー edit を実行するとバッフアが編集モードになり、普 そこで用意されているのが lnfo ー edit コマンドです。 しまいます。 てしまうし、適当な文字を入力すれば、、ピー〃と叱られて lnfo モードなので、く SPC 〉文字を入力すればスクロールし ん。バッフアへ書き込めるようになっても、あいかわらす すればすむのでしようか。いいえ、そうは問屋が卸しませ では、 toggle-read-only コマンドで編集できるように UNIX MAGAZINE 1992 ユ 1 を叩くか、 edit の、 With 0n0 source file, make either a printed manual (through TeX) or an lnfO file (through texinfo) . Full d00 Ⅳれ t 合 tion in this rnenu item. ☆ GDB 4.5 : (gdb. info) . The source-level C debugger ・ Editing: Ty ト沼 C—C C-C t0 return t0 infO M—X lnfo—edit を実行してください。図 32 はそのときの状態です。モード ラインとエコー行のメッセージを見てください。モードラ インの左端に出ていた、 マークはなくなりましたね。これでバッフアが read ー only ではなくなりました。 ほかにも、あちこち変更されています。 ノヾッフアの種類 NInfo → ノヾッファ名 (dir)Top メジャーモード lnfo → NEmac s *info* lnfo Edit ただし、 . マイナーモードの Narrow モードは変わらな いので、カーソルはカレントノードを越えられません。 工コー行には、 「 lnfo へ戻るには C-c C-c を叩け」 というメッセージが出ていますね。これは心に留めておき ましよう。 次はいよいよメニューの追加です。ドキュメント名とフ ァイル名を適切な場所に追加してください ( 図 33 ) 。ここで 書き間違えると、 lnfo は正しく動いてくれません。 (dir) T 叩ノードにはあまり関係がないのですが、 、、間違っていないかな〃 と不安になったら、 lnfo-validate コマンドを利用してく ださい。このコマンドはノードのつながり方や、クロス・ リファレンスを表すポインタの整合性を自動的にチェッ クしてくれます。 正しければ工コー行に、 121
emacs 入門 図 33 vehicle ドキュメントのメニューを追加 Fi1e: dir NOde: Top This is the top of the INFO tree This (the Directory node) gives a menu of major topics . Typing "d" returns here, "q" exits, ” ? " lists a11 INFO conmands, "h ・ ☆ lnfo: ( i れ fO ) . れ tatiO れ browsing system. ☆ Menu: The list Of major topics 0 れ the next line. PLEASE ADD WCUMnqTATION TO THIS TREE. (See INFO topic first . ) 0t0. eives a primer for first-timers, "mTexinfo く Return>" visits Texinfo topic, 図 34 lnfo-validate コマンドでみつかったエラーを表示 node node node node node node " 八輪車” , invalid Up: 輪がある ”ニ輪車第 invalid Up: 輪がある ニ輪車髫 invalid Previous : 輪がある 輪がない " invalid Next : 輸がある ” top ” , invalid menu item 輪がある : 輪がある 肩車ー , Dup1icate node—name ☆ Emacs: (emacs). ☆ N は cs : (nemacs). ☆ Texinfo: (texinfo) . The exte れ sible self-docurenting text editor. Japa れ ese version Of 新は cs. With 0n2 source file, make either a printed manual (through TeX) or an InfO file (through texinfo) . Fu11 documentation in this rrenu item. ☆ Vehic1e: (vehicle) . Verious vehicles . - Ⅱ E 口に よい Ed い FiIe appears valid と表示さ不審な点があれは図 34 のように * prob- lems ⅲ info fine * バッフアに忠告が表小されます。 新しいメニューを追加したら、メッセージに出たお言葉 にしたがってすみやかに、℃ー c C-c" (M-x lnfo-cease- edit ) しましよう。途中でファイルを保存するかどうか訊か れるので、ディレクトリを確認して返事をしてください。 これですべての作業は終了です。 lnfo で存分に vehicle ドキュメントを楽しんでください。図 35 に一連の入力操 作をまとめました。 122 (dir)Top ノードへ vehicle メニューを追加する M—x lnfo—cease—edit M—x lnfo—edit Eva1 : (setq lnfo-enable-edit t) M—X Eva1—expression M—X lnfo—directory 5. (dir)Top に vehicle を登録する M—x save—buffer 4. vehicle をセープする " vehicle ファイルができる M—x texinfo—format—buffer 3. texinfo ファイルから info ファイルへ変換する Find file: vehicle . texinfo M—x find-file 2. ファイルを読み込む % nemacs 1. Nemacs を起動する 図 35 texinfo を info ドキュメントにする手順 た文書整形システムの明 X を使います。その柔軟性がもて texinfo をプリンタで印刷するには、 Knuth 先生か作っ V 印刷マニュアルができるまで はやされて、 UNIX の世界ではもうすっかりお馴染みです ね。実際の操作やコマンドについては、この連載の第 6 回 ( 1991 年 7 月号 ) も参考にしてください。 texinfo から印刷マニュアルへ texinfo のソースを印刷したマニュアルにするまでには、 かなり困難な道のりがあります。 texinfo を info に変換す るときには Nemacs のなかだけに閉しられていて、ほか のシステムの助けを必要としませんでした。しかし、 tex ⅲ - fo を印刷するには、 X というこれまた複雑で巨大なシス テムに頼らなけれはなりません。さらに、 ・システムのインストールが難しい ・プリンタの種類によって印刷方法が異なる などの問題以外に、組織によっては制度上の壁があるかも しれません。たとえば、 Nemacs 管理者 : このファイルを "I X のディレクトリに 置きたいのですが。 事務担当者 : では、まずこちらの申請書に、担当者の名前 と日付、申請事項と理由、ファイル名、ファイルサイ ズ、ディレクトリ名を記入していただいて、申請者、担 当者、課長、部長の印を押して提出してください。 Nemacs 管理者 : はあ。で、いっ許可が出るんですか ? 事務担当者 : 2 週間の掲示後、賛否を投書していただい て、そののち部長会議で決裁されます。 Nemacs 管理者 : 部長会議っていつ開かれるんですか ? 事務担当者 : 毎月 5 日です。 Nemacs 管理者 : ( げつ、 1 カ月後ゃんけ ) あの一、いつも X を管理してた xx さんは ? 事務担当者 : 人事異動で転勤になりましたので、いまは総 務が管理を引き継いでいます。 まあ、実際にはこれほど悲惨ではないでしようが・ とにかく、 texinfo ファイルを X に通さなくては何も 0 UNIX MAGAZINE 1992.11
図 3 届 0 を起動した直後のバッファ Gile: dir NOde : TOP This is the top Of the INFO tree This (the Directory node) gives a menu Of major topics. Typing い d ” returns here, q" exits, " ? ” lists a11 INFO cortrnands' “Ⅳ ☆ 1 れ fO : (info) . browsing system. ☆ Henu: The list Of major topics l*gins on the next line. PLEASE ADD mCtME*TATION TO THIS TREE. (See INFO topic first. ) etc . gives a primer for first-timers, "mTexinfo く Return>" visits Texinfo topic, ☆ Emacs: ( e 第温。 s ) . ☆ Nemacs: (nernacs) . ☆ Texinfo: (texinfo) . The extensible self-documenting text editO 「 . Japanese vers iO れ Of Emacs. With 0 れ e source file, make either a printed manual (through TeX) or an lnfO file (through texinfo) . 目を凝らしてバッフアを見つめると、 分のウインドウが現れれば一安心。 で lnfo システムを起動してください。図 3 のような大親 M—x info Loading i れ fO... done Verious vehicles . ☆ Vehic1e: (vehicle) . Full documentation i れ this menu item. と書かれています。 lnfo バッフアのなかで h を叩くと、い はれ」 「あんさん、 lnfo は初心者やって ? ほなら、、 h 〃を叩きな ノードの関係 になれるありがたいノードです。 力すれば、、、いつのまにやら lnfo はばっちりクという状態 などと指示か書かれていて、言われるがままに 1 っすっ入 ・どこそこまで移動してから m を叩け ・次は p を叩け でいってしまいます。このノードでは、 ま、どのノードにいようと、、、言いなり学習ノード〃へ飛ん ・ドキュメントが書かれているファイルの名前 が書かれています。これらは、 Fi1e: vehicle N0de: 肩車 , Up: らおましないの文字列、 フアの上のほうに目を向けましよう。 1 行目には、なにや 図 4 は、 (vehcle) 第車〃ノードの内容です。ますバッ て、もうすこし手許を見回してみましよう。 てみましよう〃と書くところですが、今回は踏みとどまっ いつもならここで、、、しゃあ h を叩いて、言いなりになっ UNIX MAGAZINE 1992 ユ 1 ・ノード名 emacs 入門 図 4 ノードの表示例 康 le : vehicle Node: 肩車 , Up: 論かない , Next: ロ車 肩車 ☆☆☆☆ 黻 2 てく第れ掖やに 3 ー。硬 曽制カ、あリ、通常は小学生まててあるか、二人羽などの年物」限のない特 肩車かつぎ慣れにし吾了しあれは独リ赴く旅をしぞ思う 読みメらす 来てし ! 告たかわいいわか子かいるのに、なんて遠くへ単身赴任して ・記Ⅱュ・ 1 c' に ・次のノード名 ・親のノード名 ・カレントノードは、、肩車ク ・ドキュメントのファイル名は、、 vehicle つまり、この例では、 を表しています。 ノード名 ・次のノードは、、ロ車〃 ・親のノードは輪がない〃 prevlous : ですね。 があれば、前のノードの名前を表しています。 けてみましよう。左から順に 、バッフアの下のはうにあるモードラインに目を向 NInfo (vehicle) (JJJ—・ 肩車 ノヾッフアは read—only Nemacs の InfO システム ファイル vehicle を表示中 カレントノード名 漢字コドの指定 メジャーモードは lnfo Narrow) マイナーモードは N 矼 ro スですね。 Narrow モードの働きを説明する前に、 lnfo シ となっています。最後の Narrow モードは、ニューフェイ 107 ードが続きます。ファイルヘッダやそれぞれのノードは特 ヘッダがあります。ファイルヘッダの後ろには、複数のノ ⅲ fo ファイルの先頭には、通常は表示されないファイル トについてお話ししましよう。 ステムが扱うドキュメント ( info ファイル ) のフォーマッ
emacs 入門 もとのファイルの名前の拡張子の最後に、、 s 〃を付けたもの ・ソートされた索引を使って印刷 です。 ・クロス・リファレンスの解決 たとえば、 texinfo. cp を texindex に通すと、 texinfo. cps というファイルが出力されます ( 図 37 ) 。索引ファイル をおこないます。 が複数あるなら、 プリンタへ出力 % texindex texinfo . ? ? X の d ⅵファイルを、プリンタへ送れは印刷マニュア で、ソート済み索引がいっきに作れます。 ルが手に入ります。でも、計算機環境やプリンタの種類に よっては、しつはこれが最大の間題かもしれません。 X による整形、 2 回目 プリンタの種類ごとにプリンタドライバが必要だし、特 それでは、もう 1 回 texinfo. texinfo を X に通しまし 殊なプリンタや、さまざまな種類のプリンタを使っている サイトでは、特別なコマンドを自分で用意しなければなら ないかもしれません。 「なんで 2 回も」 UNIX の流儀にしたがっているサイトでは、シェル上で と思うかもしれませんが、 2 回目は、 、、 lpr -d" を実行すれば印刷できるかもしれません。自分の サイトがどのような環境なのかよく分からない場合には、 0 図 38 texinfo ファイルを印刷する手順 1. texinfo ファイルを 1b,X に通す % jtex texinfo. texinfo 2. 索引をソートする % texindex texinfo . ? ? 3. 2 回目の TbX の実行 % jtex texinfo. texinfo 4. DVI ファイルをプリンタへ出力する % lpr -d texinfo. dvi ・・・・・・ UNIX システムに登録されているドライバを使う あるいは、 % dvi2ps texinfo. dvi ー 1pr ・・ PostScript プリンタに出力する 図 39 印刷したマニュアルの一部 表紙 索引 本文 1. 0 0 「ⅵを w 0 「 Texinfo Command lndex Texinfo ト ( ト記′、 0 い 125 UNIX MAGAZINE 1992 ユ 1