uni - みる会図書館


検索対象: 月刊 C MAGAZINE 1992年3月号
15件見つかりました。

1. 月刊 C MAGAZINE 1992年3月号

ドキュメント作成支援システム 特集 List 7 参照 初期化 く uni_initialize> ウニを描く く uni draw 〉 ウニを消す く uni_erase> . context uni_initialize . freeze 3 Up: }aFunctions*vFunctions#v Next uni initialize VOid uni_initialize();}p Uni ライブラリを使う場合には , プログラムが起動した時にこの関数を必ず 呼んで下さい . . context uni_draw . freeze 3 prev:*auni_initia Up•.}aFunctions*vFunctions}v Next:*auni_erase*vuni_erase un i _draw lize}vuni_initialize*v #bint uni_draw(int X, int y, int C010r , int attr) ;*p ピクセル座標 (*bx}p, }by}p) に色 \ bcolor \ p , 属性 #battr*p で ウニを描きます . }bcolor#p, \ battr \ p の意味は次の通りです . どうた らこうたら . 描いたウニを消したい時には }buni—erase}vuni_erase%v}p を使って下さい . . context uni_erase . freeze 3 prev : i _eras e}vun i _erase#v Up:*aFunctions}vFunctions}v unl_erase }bint uni_erase(int X, int y) ;*p ピクセル座標 (}bxyp, }by*p) に , #buni_draw*vuni—draw*v}p を用いて書かれたウニを画面上から 消去 します . . context h. title UniLib Reference Manual Te nfo の弱点 TeXinfo にも弱点はあります。 Quick H elp と比較してみればすぐにわかるのて、す が , とにかく画面上て、の表現能力が低いの て、す。文字の強調表示や下線引き , 反転表 示などは普通の端末て、あればて、きます。実 際に UNIX の man て、使われる nroff て、もその 程度のことはやっています。 しかし , info は Emacs という文字をそのま ま表示するしか能力のないエデイタの上て、 使われるものなのて、 , すべてが目に見える テキストになっています。たとえば強調表 示は , このように * 強調 * します 、、 * 〃と、、 * 〃の間にテキストを書くだけ て、す。 もちろん , このようなテキストを表示す るときパーズしなおし , たとえば * の部分は強調表示に直すとか , クロスリフ ァレンスの項目は色を変えるなどの努力を info プラウザの中て、行えば , それなりに美し い画面を作ることも可能て、す。 実際 ,Epoch という Emacs の X ウインドウ インタフェイスを強化したエデイタがあり ます ( これは近い将来リリースされる Emac s 19 版のプロトタイプて、あるともいわれてい ます ) 。この Epoch に含まれている hyper-m an というパッケージを使って info ファイルを 見ると , マルチウインドウを駆使してノー ドごとにウインドウを切って , さらにノー ドへッダやメニュー項目などは色を変えて 表示します。 プリントアウトするときはフォントの切 り換えくらいはて、きますが , 絵や図を入れ ることはて、きません。また , オンラインマ ニュアルのほうに合わせるためか , TeX が 本来持っている数式の整型機能もあえて捨 てています (TeX にエスケープするという技 を使えばて、きることはて、きるのて、すが , うして書いた部分は info て、は見えません ) 。 特集ドキュメント作成支援システム 39 幵 HELP 形式のサンプル ) 形式 List Un i ライブラリ UNILIBRARY Uni ライブラリは MS ー DOS の画面にウニを描くことを可能にするスーパーなラ イブラリセットです . うんぬんかんぬん . & & インストール & & 利用方法 & & ライブラリ詳説 インストール I NSTALL libuni. lib を標準ライブラリディレクトリに置いて下さい . 標準ライブラ リディレクトリとは環境変数 LIB の指すディレクトリです . また , uni. h を標準インクルートディレクトリ ( 環境変数 INCLUDE の指すディ レクトリ ) に置いて下さい . 以上でインストールは完了です . &&Un i ライブラリ & & 利用方法 ライブラリ詳説 利用方法 USAGE ソースプログラム中に Un i ライブラリ関数を呼び出すコード を書き , リンク時に *. obj ファイルに加えて 1 ibun i. 1 i b を指定して下さい . ##HELPCOLOR=WHITE link f00. obj bar. obj libuni. lib

2. 月刊 C MAGAZINE 1992年3月号

A>helpmake /e /ounilib. hlp unilib. qhs そしてこれを見るには , A>qh -d unilib.hlp unilibrary とすれば OK て、す。 ELP 最近パソコン通信を漁っていておもしろ いソフトウェアを見つけました。 TTHELP といい , 戸田隆さんという方が作ったもの て、す。 TTHELP もハイバーテキストのヘル プシステムて、す。まず画面を見てみましよ Fig. 19 がその画面て、す。例によって Uni ライプラリて、す。 TTHELP も ( 当然という か ) 紙に出すことは考えていないシステム て、 , ヘルプファイルを直接人手て、書いて , それをそのまま TTHELP を使って見るよう になっています。 List 8 は Uni ライプラリを TTHELP 形式 て、書いたものて、す。 TTHELP は他ノードへのリンク (TeXin fo 用語をそのまま使うことにします ) を , テ キスト本体とは別に書いて , カーソルのロ キーを使ってそのノードに定義されている ( 場合によっては複数の ) リンクの中からひ とつ選んて、ジャンプします。つまり話題の 流れとは別の所からジャンプ先を選ばなけ ればならないわけて、す。 ノードの構造化を支援する機能もとくに 持っていないということもあいまって , TT HELP を使っていると「ここはどこ , 私は誰」 と迷子になってしまうことが多いような気 がしました。 TTHELP は TeXinfo や Quick Help に比べるとずっと簡単なシステムて、す から , ある程度は仕方ないかもしれません TTHELP のもうひとつ大きな特徴にモノ クロ画像を表示て、きるということがありま すが , 今回は , テキストべースのヘルプシ ステムを紹介するという趣旨からモノクロ 画像表示機能の解説は割愛し , そのような 機能があるとだけ書いておきます。 38 C MAGAZINE 1992 3 ム I ら , 寄付金を支払う「義務」はありません。 に大分パソコン通信アマチュア研究協会「 C OARA 」会員の方々 ! 2. 通信ネット上で , 私の質問や相談などに 応じて下さった心優しい方々 ! 3. ご使用後に「なんじゃー このタコソフ ト」とこ・立腹の方々い なお寄付金を払って下さった奇特な方は , その後 ver. に xx のバージョンアップを継続 : 的に受けることができます。この場合 , 再 ・度の寄付金はもちろん不要です。 : 寄付金送金先 大分銀行本店普通預金 NO. 1655577 戸田プロクション ですただし次の条件に該当する方々な 考えている「 980 円ソフト構想」に基づくもの : くださいませ ( 彎 ) にの金額は , 私が常々 寄付金 980 円を戸田プロダクションにお支払 : のつも ~ り - です→ , = ・ - もしもお気に召したなら , このプログラムは基本的に「シェアウェア」 ( その実体は戸田隆 ) が所有します。なお , TTHELP の著作権は , 戸田プロダクション 連の部分を抜き出し , 紹介します 9 います。ドキュメントからシェアウェア関 「 FSHARE 」フォーラムにアップロードされて ェアで , パソコン通信では , NlFTY-Serve の TTHELP( 付録ディスクに収録 ) はシェアウ コラ List Quick Help のサンプル . context UniLibrary Uni ライブラリ Un i ライプラリは MS-DOS の画面にウニを描くことを可能にするスーパーなラ イブラリセットです . うんぬんかんぬん . 参照 ・インストール方法 く lnstallation> く HowtoUse> 使い方 関数について く Functions 〉 . ref lnstallation, HowtoUse, Functions . context lnstallation . freeze 3 を標準インクルートディレクトリ ( 環境変数 \ bINCLUDE \ p の指すディレクトリ ) に置 ラリディレクトリとは環境変数 \ bLIB \ p の指すディレクトリです . また , 、 #buni. h#p' 、 \ blibu ⅲ . lib \ p ' を標準ライブラリディレクトリに置いて下さい . 標準ライブ Next:#aHowtoUse#vHowtoUse}v インストール方法 Up:}aUniLibrary#vUniLibraryYv いて下さい . 以上でインストールは完了です . . context HowtoUse . freeze 3 利用方法 Up: }aUniLibrary*vUniLibrary}v lnstallation#vlnstallation#v Next :YaFunctions}vFunctions}v Prev:Ya ソースプログラム中に Uni ライブラリ関数 ( く Functions > 参照 ) を呼び出 すコードを書き , リンク時に、 *. obj' ファイルに加えて 、 \ blibuni. li p ' を指定して下さい . 1 ink f00. obj bar. obj 1 ibuni. lib#p . context Functions . freeze 3 ライブラリ詳説 Up:*aUniLibrary*vUniLibrarY}V Prev :}aHowtoUse}vHowtoUseYv Un i ライブラリで提供されるライブラリ関数を説明します . これらの関数を 使う場合には , ソースファイルの頭で下のように \ buni. h \ p を取り込んで下さ #include く uni. h>}p

3. 月刊 C MAGAZINE 1992年3月号

ます。 NODENAME はこのノードの名前て、す。 ほかのノードからこのノードへジャンプす るときは NODENAME を使ってノードを指 定します。当然 , 同じノード名がひとつの マニュアルに複数現れてはいけません。 NE XT, PREV, UP は次 / 前 / 上のリンク先ノ ード名を記述しますが , 詳しくは次て、説明 します。 Fig. 21 info プラウザを使ったプリントアウト例 ・第 1 : 章 Uni ・ラ・イ : フ・・ラリ Uni ライプラリは MS-DOS の画面にウニを描くことを可能にするスーバーなライプラリセットです . うんぬんかんめん . 1.1. インストール方法 、 libuni . li を標準ライプラリディレクトリに置いて下さい . 標準ライプラリディレクトリとは 環境変数い B の指すディレクトリです . また . 、 uni .2 を標準インクルートディレクトリ ( 環境変数 INCLUDE の指すディレクトリ ) に置い て下さい . 以上でインストールは完了です . 1.2. 利用方法 ソースプログラム中に Uni ライプラリ関数 ( 参照 ) を呼び出すコードを書き . リンク時に、☆ . ob 引 フ ァイルに加え、 libuni . lib' を指定して下さい . link f00. 0bj bar. obj libuni. lib 1.3. ライプラリ詳説 Uni ライプラリで提供されるライプラリ関数を説明します . これらの関数を使う場合には . ソース ファイルの頭で下のように、 uni .2 を取り込んで下さい . #include く uni. h 〉 4 情報をノード単位に分けただけて、はどう しようもなく , それをお互いにリンクして ノード間を歩き回れるようにしなければな りません。 finfo て、は , ノード間の接続関係が全体と して木構造を成すことを前提にしています。 また , それを前提にした命令がいくつかあ ります。木構造とはつまり , 話題が階層的 に構成されているということて、 , 私たちが 本やレポートを書くときには当たり前のよ うにやっていることて、す。 木構造の中て、 , ある / ードの上 ( 親 ) に当 たるノードを「上」ノードといいます。また , 同じ階層て、次にあるノードを「次」ノードと 前にあるノードを「前」ノードといい ます。前節の @node 定義のところに出てき た NEXT, PREV, UP はおのおの次 / 前 / 上 のノードを指定するものて、す。 info プラウザ は次 / 前 / 上のノードに移るためのコマンド を持っています ( info プラウザの使い方は後 述 ) 。 これだけて、はわかりにくいと思うのて、 , Uni ライプラリのノード構造を図にしてみま した (Fig. 24 ) 。 List 8 のおのおののノード の次 / 前 / 上リンクと対照してみてください さて , @node 定義には自分の「下」 , つま り自分の下から技分かれしているノードを 定義する欄がありません。これは , 自分の 下のノードの数はひとっとは限らず , @no de 命令のところに一度に書けないためて、 す。下ノードへのリンクを書くには「メニュ 44 C MAGAZINE 1992 3 ドの構成 1.3.1. uni_initialize VOid uni—initialize ( ) : Uni ライプラリを使う場合には . プログラムが起動した時にこの関数を必す呼んで下さい . 1.3.2. uni draw int uni—draw(int x. int y, int C010r. int attr) : ピクセル座標 ( x , y ) に色 C010r . 属性 attr でウニを描きます . C010 て . attr の意味は次の 通りです . どうたらこうたら . 描いたウニを消したい時には uni—erase ( 2 ( 1.3.3. ) 参照 ) を使って 下さい . 1.3.3. uni_erase int uni_erase (int X. int y) : ピクセル座標 ( x . Y ) に . uni—draw ( 2 ( 1.3.2. ) 参照 ) を用いて書かれたウニを画面上から消去 します . 1.4. 索引 I NCLU DE 2 ( 1 . 1 . LIB 2 ( 1 . 1 . MS-DOS Uni ライプラリ libuni. lib 2 ( 1 . 1. ) . 2 ( 1 . 2 . uni. h 2 ( 1. 1. ) . 2 ( 1 . 3. uni_draw 2 ( 1.3.2. unr_erase 2 ( 1 . 3.3. uni_initialize 2 ( 1 . 3.1. インストール 2 ( 1 . 1 . ライプラリ関数 2 は . 3. り 利用方法 2 ( 1 . 2. リンク 2 ( 1 . 2. 目 ~ 欠 第 1 章 Uni ライプラリ インストール方法 . 1 ・ 1 ・ . 2. 利用方法 . 1 ライプラリ詳説 1.3 ・ 3.1. uni initialize 1. . 3.2. uni_draw . 1 3.3. uni_erase 1 . 4. 索引 . 1 . つ」っ 0 ワ」ワ】っ】ワ 1 0 こワ」

4. 月刊 C MAGAZINE 1992年3月号

List 8 つまり TeXinfo は , 派手な , つまり字に色 をつけたり反転したりあるいは図を入れた りといったドキュメントを作ることを苦手 とします。逆にいえば , 派手さが必要ない 専門的なプログラムのマニュアル ( GNU のソ フトウェアは総じて専門的て、すね ) を書くた めのものて、あるということがて、きます。 とはいえ , このように表示能力が貧弱て、 あることによる利点もあります。それはポ ータビリティが極めて高いという点て、す。 たとえば MS ー DOS 上て、も簡単に動かすこと がて、きますし , またマクロ機能を持った工 デイタて、あればマクロを作れば工デイタの 中から info ファイルを見ることもて、きます。 実際に今月の付録ディスクの中には , Br ief のマクロて、書かれた info プラウザが入っ ています。自分の好きな環境の上て、使える ということはヘルプシステムとしては重要 て、す。 ##HE LPC OLOR=GREEN & & Uni ライブラリ & & インストール & & ライブラリ詳説 ライブラリ詳説 FUNCTIONS Un i ライプラリで提供されるライブラリ関数を説明します . これらの関数を 使う場合には , ソースファイルの頭で下のように un i. h を取り込んで下 ##HE LPCOLOR =WH IT E #include く uni. h> ##HELPCOLOR =GREEN &&uni initialize & & izdraw &&un i_erase & & Uni ライブラリ & & インストール & & 利用方法 unl_initialize UNI_INITIALIZE ##HELPCOLOR=WHITE void uni initialize(); ##HE LPCOLORZGREEN プログラムが起動した時にこの関数を必ず Un i ライブラリを使う場合には , 呼んで下さい . &&uni_initialize &&un i_d raw &&uni erase & & Uni ライブラリ & & 利用方法 uni_draw UN I_DRAW ##HELPC OLOR =WH ITE int C010r , int attr) : int uni draw(int x, int Y, ##HELPC OLOR=GR EEN ピクセル座標 ( x , y ) に色 C010r , 属性 attr でウニを描きます . C010r , attr の 意味は次の通りです . どうたらこうたら . 描いたウニを消したい時には uni—erase を使って下さい . &&uni initialize &&un i d raw &&uni erase & & Uni ライブラリ & & インストール & & 利用方法 um_erase UN I_ERA SE ##HELPCOLOR=WHITE int uni_erase(int x, int y) : ##HE LPCOLOR =GR EEN ピクセル座標 ( x , y) に , uni ー draw を用いて書かれたウニを画面上から消去し ます . &&uni initialize &&un i _d raw &&uni erase & & Uni ライブラリ & & インストール & & 利用方法 fin 0 TeXinfo の概論はこれくらいにして , 具体 的な話を始めましよう。 finfo は , MS-DOS て、使うために作られた TeXinfo 整形プログラ ムて、す。 finfo は ( 何と ! ) すべて perl て、書かれ ています。内部のことについてはあとて、述 finfo も , TeXinfo と同様に info ファイルと プリントアウト両方を作ることがて、きます。 どちらの場合ても finfo は fin を裏て、起動しま す (finfo は fin と info から作った合成語て、す ) 。 fin は MS-DOS て、広く使われているテキスト 整形プログラムて、す ( 付録ディスクに efin に 合わせて収録 ) 。 fin は TeX に比べるとずっと軽いシステム なのて、小さな計算機にもインストールする ことがて、きるて、しよう。プリントアウトの 品質は fin の品質というわけて、すが , 正直に いって TeX て、出力したものと比べるとその 差は歴然としています。しかし , ノヾソコン て使われている一般的なワープロて、出力し 40 C MAGAZINE 1992 3

5. 月刊 C MAGAZINE 1992年3月号

ドキュメント作成支援システム 特集 たものとはいい勝負て、しよう。 finfo のマニュアルは , 付録ディスクに ( も ちろん finfo 形式て、 ) 入っています。詳しい説 明はそちらを参照してください この記事 て、は簡単な使い方についてのみ解説します。 List finfo のサンプル @setfilename foolib @node Top, lnstallation, , (dir) @chapter Uni ライブラリ Uni ライブラリは MS ー DOS の画面にウニを描くことを可能にするスーパーなライ ブラリセットです . うんぬんかんぬん . @cindex MS-DOS @cindex Uni ライブラリ @cindex ウニ @menu * lnstallation: * HOW t0 use: * Functions : @end menu @node lnstal lation, How to use, Top, Top @section インストール方法 @file { libuni. lib } を標準ライブラリディレクトリに置いて下さい . 標準ラ イブラリディレクトリとは環境変数@c 。 de { LIB } の指すディレクトリです . また , @file{uni. h) を標準インクルートディレクトリ ( 環境変数@code{INCLUDE) の指すディレクトリ ) に置いて下さい . 以上でインストールは完了です . @cindex libuni. lib @cindex uni. h @cindex LIB @cindex INCLUDE @cindex インストール @node HOW tO use, Functions, Installation,Top @section 利用方法 ソースプログラム中に Uni ライブラリ関数 (@pxref(uni functions}) を呼び出 すコードを書き , リンク時に@file { *. obj } ファイルに加えて @file { libuni. lib } を指定して下さい . @cindex リンク @cindex libuni. lib @cindex 利用方法 , りようほうほう @example link f00. obj bar. obj libuni. lib @end examp 1 e @node Functions, lndex, How to use, Top @section ライブラリ詳説 Un i ライブラリで提供されるライブラリ関数を説明します . これらの関数を 使う場合には , ソースファイルの頭で下のように@file { uni. h ) を取り込んで下 さい . @cindex uni. h @cindex ライブラリ関数 @example #include く uni. h> @end example @menu * uni_initialize: * uni draw: * unl_erase: @end menu @node uni_initial ize, uni draw, Functions, Functions @subsection uni_initialize @cindex uni_initialize @example VOid uni—initialize(); @end examp 1 e Un i ライブラリを使う場合には , プログラムが起動した時にこの関数を必す 呼んで下さい . @node uni_draw, um_erase, um_initialize, Functions @subsection uni_draw @cindex uni_draw @example 0 と TeXinfo の関係 finfo は TeXinfo を基にしていますが , 実 は多少違いがあります。 TeXinfo には大きく 第 1 版と第 2 版があります。当然 , 第 2 版のほ うが機能が多いのて、すが , finfo は基本的に 第 1 版べースて、す。 第 2 版をサポートすることはメモリさえあ れば可能て、すが , いかんせん MS - DOS 上の perl て、はあまり機能を増やすと動かなくなっ てしまいます。 しかし finfo て、は , とくに TeXinfo て、使い にくいと思える機能について , 一部 , 第 1 版 とも第 2 版とも互換性のないいくつかの拡張 を行っています。 ややこしくなって済みません。どのよう な点て、互換性がないかについては finfo のマ ニュアルに書いてあります。 本稿て、は第 1 版の機能のみを使って finfo の 紹介を行うことにします。したがって , 本 稿のサンプルは finfo て、も , TeXinfo 第 1 版て、 も第 2 版て、も利用て、きるはずて、す。 また , 説明内容もインストール方法や起 動方法などを除けば , TeXinfo と finfo に共 通て、す。 説 詳 ト法ラ ス方ブ ン用イ イ利ラ 、プル て、は具体的なサンプルを使って finfo の説 明をしましよう。例の Uni ライプラリを使う ことにします (List 9 ) 。 ます , これを info 形式に整形したものは L ist 10 て、すが , info ファイルをそのまま見て もほとんど意味がありません。普通は info プ ラウザを使って見ることになりますが , そ の画面が Fig. 20 て、す。これをプリントアウ トすると Fig. 21 のようになります。 特集ドキュメント作成支援システム 41

6. 月刊 C MAGAZINE 1992年3月号

List 1 0 で下さい . Uni ライブラリを使う場合には , プログラムが起動した時にこの関数を必ず呼ん void uni_initialize() ; uni_initialize File: fOOlib Node: uni_initialize, Prev: Functions, Up: Functions, Next: 特集 eras e un i_draw File: foolib Node: uni_draw, Prev: uni_initialize, Up: Functions, Next: uni_ un i _draw int uni_draw(int x, int y, int C010r , int attr) : ピクセル座標 ( x , y ) に色 C010r , 属性 attr でウニを描きます . co 1 or , at tr の意味は次の通リです . どうたらこうたら . 描いたウニを消したい時には uni —erase (*NOte uni_erase: : ) を使って下さい . Fi le : foolib N0de: uni_erase, prev: uni_erase, unl_erase int uni_erase(int X, int y); ドキュメント作成支援システム などが正しく出力されません。 上走らせないと索引やクロスリファレンス 関係上 , 同じファイルに対して finfo を 2 回以 などを一時ファイルに作りながら作業する なお , プリントアウトするときは , 索引 ルなどは指定する必要はありません。 て、プリンタに出力します。 fin マクロファイ A>fin -p unilib. fin ig. 23 ) 。その上て、 , FINPRT にプリンタの機種を設定します ( F 機種を設定します (Fig. 22 ) 。次に環境変数 まず , 環境変数 FINOUTP にパソコンの 低限必要な初期設定を書いておきます。 Functions : : ) を用いて書かれたウ ピクセル座標 ( x , y ) に , ニを画面上から消去します . File: foolib Node: lndex, 索引 * Un i ライブラリ : Top. * MS-DOS: Top. * LIB: lnstallation. * INCLUDE: lnstallation. Menu : uni draw (*NOte uni Prev: Functions, Up: d raw Top fin ド を使うた ントの書き方 * libuni. lib: lnstallation. * libuni. lib: How to use. * uni. h: lnstallation. uni. h: Functions. uni_draw: uni_draw. unl_erase: unl erase. uni initialize: uni_initialize. * インストール : lnstallation. * ウニ : Top. * ライブラリ関数 : Functions. * 利用方法 : How to use. リンク : How to use. unilib. fin というファイルを生成するのて、 , て、プリントアウトを生成します。実際には A > perl -s finfo. が -p unilib. x リはファイル名を unilib. x て、あるとします ) 。 て、 info ファイルを生成します ( Uni ライプラ A> perl -s finfO. unilib. x 以上のソフトウェアを準備し , その上て、 , してしまいます。 ップに失敗すると finfo は何もいわずに終了 量は十分に確保しておいてください。スワ ップ先 ( RAM ディスクや EMS て、しよう ) の容 ためにスワップ量も膨大て、す。 rswap のスワ しかし , finfo が巨大なプログラムて、ある こからプリンタに出力するのは自分て、 fin 第リ n ー - を r 当第 : を : れ凱第地 ( れ h ) う場合には . ソー アイルの頭て・下のよっに・い :. n ' を取りんて・下さい . . されるライプラリ数を説明します . - ・れらの関数を使 物ーライフ・ラソ ライプラリ詳説 自 : f@llb ~ めお : F c い 85. Prev: 、 0 リ第い第 : 18 , ! 斌 : : 面 Fig. 20 info プラウサの実行画面 ていただけばいいのて、すが , ここて、も , 最 は fin のマニュアル ( 付録ディスク収録 ) を見 を使って行う必要があります。 fin の使い方 finfo て、基本となるのは , 情報を小単位に 分けることて、す。これはハイバーテキスト ドキュメントの基本て、すが , finfo て、は ( そし て TeXinfo て、も [ 用語は TeXinfo のものをそ のまま使っています ] ) , この小単位のこと を「ノード」と呼びます。ノードの間を渡り 歩く ( リンクする ) 手段を与えることて、 , ノ ードからノードへと素早く移れるようにす るというのがハイバーテキストの基本的な 考え方て、す。 1 ノードにどのような文章を , またどれく らいの文章を書くかにはとくに決まりはあ りませんが , 大体の相場はあります。プロ グラム言語やライプラリのマニュアルを書 いているときは , 大体 1 関数 / 1 手続きの説明 finfo のソースファイルの書き方を簡単に 説明しましよう。 4 れる @node まて、がひとつのノードを形成し という行を書きます。この行から , 次に現 @node NODENAM, NEXT, PREV, UP 定義するには , 手続きの検索も簡単になります。 を 1 ノードに書きます。そうすることて、関数 / ノードを 特集ドキュメント作成支援システム 43

7. 月刊 C MAGAZINE 1992年3月号

Li st 9 方法 int uni_draw(int x, int y, int C010r , int attr); @end example ピクセル座標 (@code { x ) , @code{y)) に色@code{color}, 属性@code{attr) で ウニを描きます . @code{color}, @c。de { attr } の意味は次の通りです . どうた らこうたら . 描いたウニを消したい時には @code{uni-erase)(@pxref{uni-erase)) を使って下さい . @node um_erase, , uni_erase, Functions @subsection uni_erase @cindex uni_erase @example int uni_erase(int X, int y) : @end example ピクセル座標 ()c 。 de { x } , @code(y)) に @code{uni-draw) (@pxref{uni-draw)) を用いて書かれたウニを画面上から消去します . @node lndex, , Functions, Top @section 索引 @printindex cp finfo は単一のプログラムて、はなく ,finfo. pl という perl スクリプトを中心にいくっかの プログラムを組み合わせて動きます。必要 なのは finfo. pl, sortind. pl, infosp. pl それに perl(' 91 年 9 月号付録ディスク収録 ) と fin, rswap(' 91 年 9 月号付録ディスク収録 ) て、す。 まず rswap はあらかじめ常駐させておいてく ださい。次に perl と fin を PATH ディレクト ー置ぎますまそーーし Cfin 0. p のに てある , 各種ディレクトリ / プログラム名を 変更します。 $finfo dir ' *usr*local*info' $perlcommand perl.exe ” fin. exe $fincommand $finfo dir は sortind. pl が置かれているディ レクトリ名 , $perlcommand, $fincomma nd はおのおの perl と fin の名前て、すが , この ふたつは普通このままて、よいて、しよう。 finfo. pl は非常に大量のメモリを消費しま す。必要メモリ量は整形テキストの量にも よりますが , 520K バイトは必要て、す。普通 の使用条件下て、これだけ空いていることは あまりないて、しようから , デバイスドライ バや常駐プログラムをいくっか切り離す必 要があるかもしれません。 さらに , finfo. pl は中から fin や sortind. pl を ( つまり perl の中から perl をさらに ) 呼び出し ます。 finfo 単独て、すらメモリが苦しいのて、 すから , その中からプログラムを呼び出す ためには , 起動時に finfo の本体をメモリか ら追い出す必要があり , そのためのスワッ パを利用します。 こて、は ' 91 年 9 月号に収録した rswap を使 います。 rswap は常駐スワッパて、 , 子プロセ スを起動するとき親プロセスの専有してい るメモリをディスクや EMS 上に追い出しま す。 perl のような大きなプログラムの中か らて、も子プロセスを起動することがて、きる ようになるというありがたいプログラムて、 す。 42 C MAGAZINE 1992 3 LiSt List 9 を info 形式に整形したもの FiIe: foolib Node: Top, Up: (dir), Next: lnstallation Un i ライブラリ Uni ライプラリは MS ー DOS の画面にウニを描くことを可能にするスーパーライブラ リセットです . うんぬんかんぬん . * Menu: * lnstallation: * HOW tO use: * Functions : 説 ル詳 ト法ラ ス方ブ ン用イ イ利ラ FiIe: foolib Node: lnstallation, prev: Top, Up: Top, Next: How to use インストール方法 、 libuni. lib' を標準ライブラリディレクトリに置いて下さい . 標準ライブラリ ディレクトリとは環境変数 LIB の指すディレクトリです . また , 、 uni. h' を標準インクルートディレクトリ ( 環境変数 INCLUDE の指すディ レクトリ ) に置いて下さい . FiIe: foolib Node: 日 ow to use, prev: lnstallation, Up: Top, Next: Functions 利用方法 ソースプログラム中に Uni ライブラリ関数 ( * Note uni functions::) を呼び出す コードを書き , リンク時に、 *. obj ' ファイルに加えて、 libuni. lib ' を指定して下 さい . link f00. obj bar. obj libuni. lib FiIe: foolib Node: Functions, prev: How to use, Up: Top, Next: lndex ライブラリ詳説 Uni ライブラリで提供されるライブラリ関数を説明します . これらの関数を使 う場合には , ソースファイルの頭で下のように、 uni. h ' を取り込んで下さい . #include く uni. h> * Menu: unl_initialize: uni draw: * un l—erase:

8. 月刊 C MAGAZINE 1992年3月号

特集 くなど ) を行って画面上に表示します。 ドキュメント作成支援システム いう整形プログラムに通すと , 画面上て、表 現て、きるせいいつばいの整形 ( たとえば紙の 上て、はイタリックになるところは下線を引 . SH NAME List un 1 . nf man マクロて書かれたマニュアルの例 . TH UNILIB 3 initialize, uni_draw, . SH SYNOPSIS . B void uni_initialize() ; un 1 eras e Uni List 6 は man マクロて、書かれたマニュアル の例て、すにれは Uni ライプラリ ( ? ) というラ library functions int attr) : . B ” int uni_draw(int x, int y . f i . B int uni_erase(int x, int y} ; int C010r , Uni 1 ibrary is an ultra super library set that enables on the standard include directory(the directory where the . B uni. h points tO. And put .B LIB the environment variable on the standard 1 ibrary directory, which is the directory . B libuni. lib Pu t . SH INSTALLATION to write Unis on MS-DOS screen. programmers where environment variable . B INCLUDE points tO. That's a11. . SH USAGE When you write programs that cal 1 Uni . B 1 ibun i. 1 ib when linking. For example. . B 1 ink f00. obj bar. obj libuni. lib . SH FUNCTIONS Here is the detailed listing of Uni functions. When you use them inc lude . B uni. h functions, at the beginning of your file as following. add . B #include く uni. h> . TP . B VOid uni_initialize(); Cal 1 this once when the program started. . TP . B "int uni draw(int x, int y, int C010r , Write an Uni at pixel coordinate ( int attr) ; ) , with C010r . I C010r , and attribute . I attr. The meaning . I C010r and . I attr is following. . I etc. Use . B uni_erase when you want . TP of tO erase UniS. . B int unl_erase(int x, int y); Erase UniS wri tten on pixel coordinage ) with previous . B uni_draw call. イプラリについて説明したものて、す ) 。 List 6 は英語て、書かれていますが , これは UNIX の man が日本語に対応していなかったため にやむなくそうしただけて、す。以降の例て、 は日本語て、書きます。 man を troff を使って 紙に出すと Fig. 17 のようになります。 UNIX の man システムが ( 少なくとも MS ー DOS と比べれば ) 先見的だったのは , まず マニュアルを電子媒体て、提供したという点 て、す。今のようにディスクが安くなるとマ ニュアルに数十メガバイト使ってもあまり もったいないとは感じませんが , man が採用 された当時としてはかなり画期的だったと 思います。 そして第二の点としては , マニュアルフ ァイルからプリントアウト (troff) / オンライ ンマニュアル ( nr 。 ff ) 両方を生成する機構を 用意したことて、す。オフラインドキュメン トとオンラインドキュメントにはおのおの 利点 , 欠点があります。オンラインドキュ メントには情報の検索に計算機の助けを借 りることがて、きるという自明な利点があり ますが , 頭から順番に読むのならオフライ ンドキュメントのほうが速く読める上に疲 労も少なく , プリントアウトされていれば , どこて、て、も読めます。 同じ man ファイルからオンラインマニュ アル / プリントアウト両方が生成て、きること て、 , マニュアルを書く人の労力が減るとい うのはもちろんて、すが , 読む側にとっても 内容が同じて、あることがわかっているとい うのは利点て、す。 特集ドキュメント作成支援システム 35 際の説明はオフラインマニュアルて、行って の項目を参照せよ〃などと書いてあって , 実 見てみると、、オフラインマニュアルの XXXX これらのプログラムのオンライン man を にはオンラインマニュアルは存在しません。 cc ( パーサ生成器 ) などの大きなプログラム て、あることて、す。実際 , ⅵ ( 工デイタ ) , ya 大きなドキュメントを読むのは非常に苦痛 とつのべタテキストになってしまうために す。それは , ドキュメントが全体としてひ しかし , UNIX の man には限界がありま

9. 月刊 C MAGAZINE 1992年3月号

います。 また , 関連しますが , 索引を作る機能も , 少なくとも UNIXman の習慣としては持っ ていません。索引のないマニュアルは , と くに大きなものになると , 極めて使いにく e infO いのは皆さんご存じて、しよう。 36 C MAGAZINE 1992 3 はそれほど複雑なファイル形式て、はないの は見ることは困難て、した (info ファイル自身 しよう ) ために , info ファイルは MS-DOS て、 聞きますが , やはり MS ー DOS には過負担て、 S - DOS て、は動かない ( 最近動いたというも た。 Emacs は巨大なソフトウェアなのて、 M info マクロを使って見るために作られまし フトウェアのひとって、ある GNU Emacs の テキストとして見えます ) 。 lnfo は GNU のソ 確には所々に意味不明の制御情報の入った キストを見るツールて、は利用て、きません ( 正 ストて、ある ) のて、 ,type や more など通常のテ ルは構造を持っている ( つまりハイバーテキ アルを info ファイルと呼びます。 info ファイ TeXinfo から生成されたオンラインマニュ info ファイル いった一般の整形プログラムの仕事を行い 振り , クロスリファレンス , 索引の作成と トアウトを作成する際には章 / 節番号の割り ルはハイバーテキストて、す。また , プリン だし , man とは違い , オンラインマニュア とプリントアウトの両方を生成します。た とつのファイルからオンラインマニュアル TeXinfo も , UNIX の man と同じようにひ たて、しよう。 を全部 man て、書いていたら頭が爆発してい ソフトウェアがあり , それらのマニュアル とくに , GNU には Emacs や gcc など巨大な たような不満が動機にあることは確かて、す。 ムて、す。 TeXinfo が作られたとして上に書い ントに用いられるドキュメント記述システ TeXinfo は GNU ソフトウェアのドキュメ Fig. 17 tro 幵でプリントアウトした UN Ⅸの man UNILIB(3) NAME C LIBRARY FUNCTIONS UNILIB ( 3 ) 山一ⅲ通 a ⅱ ze , uni_draw, - Uni library functions SYNOPSIS VOid uni_initialize(); int uni draw(int x, int y, int CO ら int attr); int uni—erase(int int y) ; Erase Ums written on pixel coordinage ( ) ) with preuous uni_draw call. int uni_erase(int X, int y); UniS. The meaning of co わ′ and is following. c. Use un i_erase when you want 【 0 erase Write an Uni at pixel coordinate ( ズ . ) ) , with color co わら and attribute int uni_draw(int X, int y, int ( 0 r , int attr); CaIl this 02C when the p 「 og 「出 n 【 ed VOid uni_initialize(); #include <uni. h> yo file following. Here is the detaled lisung of Uni functions. When you use them include uni. h at the beginning of FUNCTIONS link 「 8. obj bar. obj libuni.lib When you wnte programs that call Uni functions, add libuni.lib when linking. Fo 「 example. USAGE That's all. variable INCLUDE 矼 LIB 9. And put uni. h on the standard include dirwtory(the 山「 where the environment Put libuni.lib 側 the standard library di 祀は 0 , which is 山 e di 「い where the environment variable INSTALLATION Um library is a library set that enables programmers write Unis on MS-DOS screen. て , 多少強力なマクロ機能を持ったエディ タて、あれば info プラウザを作ることは十分可 能て、す。実際に今月号のディスクには Brie f 工デイタ用の info プラウザが入っていま す。しかし Emacs 以外のエデイタて、 info を見 るためのマクロはあまり見かけませんて、し しかし , 最近スタンドアロンて、動く info 閲 覧プログラム (infoi ラウザ。このプログラ ムの名前自身 info といいます。 MS-DOS て、 は info. exe) が公開されました。 UNIX 上て、 Emacs を立ち上げることなく info ファイルを 見るために作られたものて、すが , このプログ ラムを MS-DOS に移植することて、 , MS-D OS て、も手軽に info ファイルを見ることがて、 きるようになりました。 TeXinfo ファイルから info ファイルを作る のは比較的単純な変換て、すが , これも従来 は GNU Emacs の texinfmt というマクロを 使ってのみ行うことがて、きました。つまり MS-DOS て、は info ファイルを作ることはて、 きませんて、した (info ファイルを直接工ディ タなどて、書くという技はありますが , テキ ストを整形したり , 索引を作ったりするの は大変て、す ) 。しかし , inf07•ラウザ (info. e xe ) の公開と同時に , C て、書かれた makeinf 0 という TeXinfo → info 変換プログラムも公 開され , 必ずしも Emacs を使わなくても Te Xinfo ファイルから info ファイルを作成する ことがて、きるようになりました。 ただし , makeinfo は , 日本語に対応して いないという点 , かなりメモリを消費する

10. 月刊 C MAGAZINE 1992年3月号

ドキュメント作成支援システム 特集 Fig. 24 ノード構成図 凡例 前 / 次参照 上参照 Top Uni ライプラリは MS-DOS の画 面にウニを書くことを可能にする b : ノードの先頭へジャンプする ます。さらに回キーを押すと info プラウザ ラウザの由来について説明します。 inf07•ラウザは UNIX 用に書かれたものを のチュートリアルが始まります。詳しくは ノード間移動 Thorsten Ohl 氏が IBM-PC 用に移植しまし それらを参照してください。なお , n : 「次」ノード ( 木構造の中で同じ階層で次 あげたコマンドは info. exe, Emacs info モ 、 0 にあるノード ) に移動する ードに共通て、す。 ただ , この移植は , とくに画面制御部分 p: 「前」ノードに移動する に VRA に直接書き込むなど IBM ー PC に依 info の終了 , ヘルプなど u : 「上」ノードに移動する 存したコードがあったのて、 , その部分を本 d : 最上位ノードに移動する まず大事なのが info の終了方法やヘルプて、 来の UNIX の termcap を用いたものに戻すこ m : メニューからひとつ項目を選んでジャン とて、 , termcap さえ用意すればすべての MS す。 プする。現ノードにメニューがなけれ q : info を終了する。 info. exe は十回で ー DOS マシンて、動くようにしたものて、す ( te ばならない も終了できる rmcap とは端末制御コード ( 工スケープシー f : クロスリファレンスの指す先のノードに ? ・簡単なヘルプの表示 ケンス ) を設定ファイルに記述することて、機 ジャンプする。現ノードにクロスリフ 種に依存せずに画面制御を行う機構て、すが , h : チュートリアルを始める ァレンスがなければならない 今回は詳しい解説は行いません ) 。 ノード内移動 ディスクに収録した termcap ファイルは ng そのほか ⅲ fo プラウザは一度にひとつのノードを画 工デイタのものなのて、 , 今すて、に ng を使っ 直前にいたノードに戻る ている方はすぐに利用することがて、きるて、 面に表示します。ノード内て、表示位置を移 すための命令て、す。 しよラ。 termcap を含めたインストール方法 1 , 2 , 3 , 4 , 5 : メニューの 1 , 2 , 3 , 4 , 5 番目の項目を選んでジャンプする " ( スペース ) 現ノードが 1 画面に収まら などは info. exe ノヾッケージの中にすべて書い s . 文字列を探す ないとき , 1 画面分前方へスクロールす てあるのて、ここて、は省略します。 g : 指定した名前のノードに直接ジャンプす こて、リファレンスとして info のコマンド る + 回 , [ 呵 : 1 画面分後方へスクロー をすべてあげておきます。 info プラウザの中 る て、ロキーを押せば簡単なヘルプが表示され ルする 凵 特集 ドキュメント作成支援システム 47