tgif

名前
形式
機能説明
オプション
基本的な機能
グラフィカルオブジェクト
TGIF の子ウィンドウ
非英数字キーバインド
ショートカット
カラーとカラーマップ
ラスタ画像の取り込み
オブジェクトの名前
属性
テレポート / ハイパージャンプ
ハイパースペース
外部アプリケーションの起動
内部コマンド
数式
イメージマップファイルの生成
HTML 出力テンプレート
マイクロソフトウィンドウズ用の EPSI ファイルの作成
オブジェクトのロック
アンドゥ / リドゥ (undo/redo)
ドメイン
ポップアップウィンドウからの名前の選択
EPS ファイルの取り込み
追加フォント
国際文字に関する POSTSCRIPT 文字エンコーディング
正方形の 2 バイトフォント
複数ページの描画
特別な属性
テーブル出力
テーブルによるマージ
MIME TYPES と MAILCAPS
組み上げオブジェクト ( シンボルファイル ) の作成
X11 ピクスマップ (XPM) フォーマット
LATEX 用の図の形式
オブジェクトの接続
X DEFAULT 値
環境変数
ファイル
PROLOG/C のテストドライバ
関連項目
特殊な性質
バグ
著作権 (Copyright)
現状
作者
参考文献

名前

tgif − X11 上の Xlib ベースの対話型 2 次元描画ツール。描画 面の階層的な構成や、複数の描画面の容易な行き来をサポートし ています。そして World-Wide-Web 上のハイパーグラフィックス (またはハイパー構造を持つグラフィックス) のブラウ ザ に も なっています。

形式

tgif [-display displayname] [-fg <color>] [-bg <color>] [-bd <color>] [-rv] [-nv] [-bw] [-reqcolor] [-cwo[+sbwarp]] [-hyper] [-exec <file>] [-dbim {xcin|chinput|xim|kinput2|tgtwb5[,font]}] [-sbim xim] [-usexlib] [-a4] [-listdontreencode] [-version] [-pdfspd | -pdfspd=true | -pdfspd=false ] [-pssetup "<string>" ] [-nomode] [-geometry <geom>] [=<geom>] [{file[.obj]|-merge file1[.obj] file2[.obj] ...}]

または

tgif -print [-eps] [-p] [-ps] [-f] [-text] [-epsi] [-tiffepsi] [-gif] [-png] [-jpeg] [-ppm] [-pbm] [-xpm] [-xbm] [-html] [-pdf] [-netlist] [-display displayname] [-stdout] [-raw[+h[eaderonly]]] [-dosepsfilter [-previewonly]] [-status] [-gray] [-color | -reqcolor] [-adobe | -adobe=<number>/<number> | -adobe=false ] [-dontreencode=<string> | -listdontreencode] [-version | -justversion] [-producedby=<string>] [-page <number>] [-print_cmd "<command>"] [-one_file_per_page] [-pepsc] [-pdfspd | -pdfspd=true | -pdfspd=false ] [-pssetup "<string>" ] [-j2p6_cmd "<command>" ] [-dontcondense | -condensed] [-a4] [-noshowpageineps] [-quiet] [-bop_hook "<string>"] [-eop_hook "<string>"] [-tmp_file_mode "<octal number>"] [-o<dir>] [-exec <file>] [file1[.obj] file2[.obj] ...]

機能説明

tgif は、対話型描画ツールで、これによりユーザは X ウィンド ウ シ ス テム内でオブジェクトを描画し、操作できます。 tgif は、最初の形式では対話形式で動作します。「形式」のセクショ ン の 第 2 の形式では、 -eps, -p, -epsi, -tiffepsi, -gif, -png, -jpeg, -ppm, -pbm, -xpm, -xbm, -html, -pdf, -ps, -f, -text, -netlist options のいずれのオプションも指定されてい なければ、 tgif は (tgif で 生 成 さ れ る) file1.obj, file2.obj 等 を、 ( ウィンドウやフォントを開くことなく) PostScript(TM) ページ記述ファイルとして出力し、lpr(1) へパ イ プします。この出力 (printing) 形式は、tgif ファイルを他 の形式へ変換 (exporting) するための tgif 式のやり方で す。 こ の場合、認識できない他のオプションは、lpr(1) へ送られま す。このモードでは、tgif は昔の prtgif と互換になりま す。 拡張子 .sym を明示的に指定すれば、シンボルファイル (説明は 以下を参照) も印刷できます。

コマンドライン引数 file は、最初に tgif が編集するオブジェ ク トのファイルか URL を指定します。 URL は HTTP か FTP の みをサポートしています。 (URL と WWW に関するより詳しい 話 については、[1] を参照。)

tgif は、純粋に Xlib に基づいています。これは X11R6 でテス トされていて、 3 ボタンマウスを必要とします。

オプション

「形式」のセクションの最初の形式では、以下のコマンドライン 引数が使用できます:

-fg

<color> で前景色を指定

-bg

<color> で背景色を指定

-bd

<color> で境界色を指定

-rv

白黒反転ビデオモードで tgif を起動

-nv

通常のビデオモードで tgif を起動

-bw

tgif をモノクロモードで起動

-reqcolor

Tgif.PrintUsingRequestedColor の X default 値を true に設定した場合と同じ (下記の「X DEFAULT 値」 のセクションを参照) になります。

-cwo

Canvas Window のみを表示します (下記の「TGIF の子ウィンドウ」の セ ク ショ ン を 参 照)。 こ れ は、Tgif.CanvasWindowOnly の X default 値を true にした場合と同じになります。

-cwo+sbwarp

-cwo+sbwarp を使用すると、single-button-warp (左マ ウスボタンをクリックすることでジャンプする) を、テ レポートを有効にするのに使います (下の「テ レ ポー ト/ハイパージャンプ」のセクション参照)。

-hyper

tgif を ハイパースペース モードで起動しま す (下の「ハイパースペース」のセクション参照)。

-exec <file>

tgif の起動後、<file> 内の内部コマンドを実行します (下の「内部コマンド」のセクション参照)。 <file> が 文字列 "-" の場合は tgif は標準入力から内部コマ ン ドを読み込んで実行します。

-dbim method

2 バイトフォントの入力メソッドとして method を使用 します (下の「正方形の 2 バイトフォント」 の セ ク ショ ン参照)。これは、-sbim と一緒に使うことはでき ません。

-sbim method

1 バイトフォントの入力メソッドとして method を使用 します。これは、デッドキーをともなう国際的文字の入 力に X キーボード拡張 (X Keyboard Extension) が 使 わ れている場合に便利でしょう。これは -dbim と一緒 に使うことはできません。

-usexlib

tgif が -DUSE_XT_INITIALIZE 付きでコンパイルされて い る場合、 tgif のセットアップに X Toolkit 初期化 ルーチンが使用されます。このコマンドラインオプショ ン を 使 用 す る と、 tgif に強制的にオプション -DUSE_XT_INITIALIZE を無視させ、 Xlib のみを使用さ せ ます。これは、tgif のシステムリソースファイルが 適切にインストールされないか散らばってインストール されていて、それでそれを無視しないといけない場合に 便利でしょう。

-a4

このオプション は Tgif.PSA4PaperSize の X default 値を true にした場合と同じになります。

-noshowpageineps

こ の オプションは Tgif.ShowPageInEPS の X default 値を true にした場合と同じになります。

-quiet

このオプションを使用した場合、tgif は標 準 メッセージの出力を抑制します。

-listdontreencode=<string>

このオプションを使用した場合、 tgif のコンパイルの 際 に 使 用 さ れ る コ ン パ イ ラ オ プ ショ ン -D_DONT_REENCODE で指定された PostScript フォント 名の一覧を出力します。

「形式」のセクションの 2 番目の形式では、以下のコマンド ラ イン引数が使用できます:

-version

このオプションを使用した場合、 tgif はコマンドライ ンにそのバージョン番号と著作権を表示します。

-justversion

このオプションを使用した場合、 tgif はコマンドライ ンにそのバージョン番号と著作権を表示し、直ちに終了 します。

-nomode

このオプションは Tgif.NoModeWindow の X default 値 を true にした場合と同じになります。

-eps (または -p)

file.eps という名前で、カプセル化 PostScript(TM) ファイル (EPS ファイル) を生成します。このファイル は、\psfig, \epsf, \psfile の仕組みで LaTeX ファイ ルに取り込むことができます (「LATEX 用の図の形式」 のセクション参照)。

-ps (または -f)

file.ps という名前で、 PostScript ファイルを生成し ます。このファイルは PostScript プリンタで lpr(1) で印刷できます。

-text

file.txt という名前で、テキストファイルを生 成します。このテキストファイルは表示されているすべ ての文字列を含み、スペルチェックソフトに渡すことが できます。

-epsi

file.eps という名前で、プレビュー用 ビッ ト マップ画像を含むカプセル化 PostScript (EPS) ファイ ルを生成します。有効なディスプレイにアクセスできな い場合は、tgif は出力に失敗します。

-tiffepsi

file.eps と いう名前で、DOS EPS バイナリファイル ヘッダとそれに続く TIFF 画像を持つ EPS ファイル を 生成します。詳しくは、「マイクロソフトウィンドウズ 用の EPSI ファイルの作成」のセクションを参照してく だ さ い。有効なディスプレイにアクセスできない場合 は、tgif は出力に失敗します。

-gif

file.gif という名前で、GIF ファイルを生成 し ま す。 下 記 の 「X DEFAULT 値」のセクションの Tgif.GifToXpm に関する注意を参照してください。有効 な ディスプレイにアクセスできない場合は、tgif は出 力に失敗します。

-png

file.png という名前で、PNG ファイルを生成 し ま す。 有 効 なディスプレイにアクセスできない場合 は、tgif は出力に失敗します。

-jpeg

file.jpg という名前で、JPEG ファイルを生 成 し ま す。有効なディスプレイにアクセスできない場合 は、tgif は出力に失敗します。

-ppm

file.ppm という名前で、PPM ファイルを生成 し ま す。 有 効 なディスプレイにアクセスできない場合 は、tgif は出力に失敗します。

-pbm

file.pbm という名前で、PBM ファイルを生成 し ま す。 有 効 なディスプレイにアクセスできない場合 は、tgif は出力に失敗します。

-xpm

file.xpm という名前で、 X11 ピクスマップファ イ ル (XPM) を生成します。有効なディスプレイにアク セスできない場合は、tgif は出力に失敗します。

-xbm

file.xbm という名前で、 X11 ビットマップファ イ ル (XBM) を生成します。有効なディスプレイにアク セスできない場合は、tgif は出力に失敗します。

-html

file.gif という名前で GIF ファイルを、そ し て file.html という名前で HTML ファイルを生成しま す。有効なディスプレイにアクセス で き な い 場 合 は、tgif は出力に失敗します。

-pdf

file.gif という名前で GIF ファイルを、そして file.pdf という名前で PDF ファイルを生成します。下 記の「X DEFAULT 値」のセクションの Tgif.PsToPdf に 関する注意を参照してください。

-netlist

file.net という名前と file.cmp という名前のテキ ス トファイルを生成します。 file.net は、netlist の情 報を表の形式で保存しています。最初の行には各列の名 前が、そして各行には (二重引用符で囲まれた) ポート 名が書かれ、カンマ、<TAB> 文字が続き、その後ろにシ グナル名 (これも二重引用符で囲まれている) が続きま す。 file.cmp は、ファイルの構成要素に関する情報が 入っています。各構成要素は、その名前で始まり、その 後ろにその型が続き、その後ろに (<TAB> 文字でインデ ントされて) その構成要素の属性が出力されます。

-stdout

出力をファイルとして生成する代わりに、標準出力に出 力を送ります。

-raw

ファイルの内容を標準出力に吐き出させます。

-raw+h

-raw+h を使い、かつ指定ファイルが HTTP URL の場合、 HTTP ヘッダも標準出力に吐き出されます。

-raw+headeronly

-raw+headeronly を 使い、かつ指定ファイルが HTTP URL の場合、 HTTP ヘッダが標準出力に吐き出さ れ ま す。

-dosepsfilter

こ れ は、tgif を、DOS/Windows EPS ファイルの DOS EPS バイナリファイルヘッタとそれに続く TIFF 画像を 取り除くフィルタとして動作させます。

-previewonly

-dosepsfilter が 指定された場合、-previewonly は tgif を DOS/Windows EPS ファイルの TIFF 画像からプ レビュービットマップを展開するフィルタとして動作さ せます。

-status

このオプションが -raw-raw+h-raw+headeronly の いずれかとともに使われた場合、stderr にステータ ス行を表示させます。

-gray

このオプションは、Tgif.UseGrayScale の X default 値を true にした場合と同じになります (「X DEFAULT 値」のセクション参照)。

-color (または -reqcolor)

カラーで印刷するには、-color-reqcolor のいずれ か の オ プ ショ ン が 使 用 で きます。両者の違い は、-reqcolor が Tgif.PrintUsingRequestedColor の X default 値を true にした場合と同じことになるのみ です (「X DEFAULT 値」のセクション参照)。

-adobe (または -adobe=<number>/<number> -adobe=false)

このオプ ショ ン は、Tgif.UsePsAdobeString の X default 値を指定することと同じになります。

-dontreencode=<string>

こ の オプションは、Tgif.DontReencode の X default 値を指定することと同じになります。

-producedby=<string>

このオプションは、Tgif.ProducedBy の X default 値 を指定することと同じになります。

-page

指定されたページ (<number> で指定) を出力し ます。

-print_cmd

このオプションは、Tgif.PrintCommand の X default 値を指定することと同じになります。

-one_file_per_page

各ページを別々のファイルとして出力します。

-pepsc

EPS コメントを保持します。 tgif-4.0.11 か らは EPS コメントは常に保持されますので、このコ マ ンドラインオプションは現在は非推奨です。

-nolandpdfspd

このコマンドラインオプションは、tgif-4.1.42 以降は 非推奨となっています。これは、-nopdfspd と解釈され ます。

-pdfspd (または -pdfspd=true -pdfspd=false)

-pdfspd か -pdfspd=true が指定された場合、 PDF ファイルの出力時の一時的な PostScript ファイル、ま た は PostScript ファ イ ル の 出力時の最終的な PostScript ファイルに "setpagedevice" が生成されま す。 -pdfspd=false が指定された場合、 PDF ファイル の出力時の一時的な PostScript ファイ ル、 ま た は PostScript ファイルの出力時の最終的な PostScript ファイルには "setpagedevice" は生成されません。 こ のオプションは、Tgif.PdfSetPageDevice の X default 値を上書きします。

-pssetup

このオプショ ン は、Tgif.AdditionalPSSetup の X default 値を指定することと同じになります。

-j2p6_cmd

こ のオプションは、Tgif.JpegToPpm6 の X default 値 を指定することと同じになります。

-dontcondense

このオプション は、Tgif.DontCondensePSFile の X default 値を true にした場合と同じになります。

-condensed

こ の オ プ ションは、Tgif.DontCondensePSFile の X default 値を false にした場合と同じになります。

-bop_hook-eop_hook

これらのオプ ショ ン は、Tgif.PSBopHook と Tgif PSEpsHook の X default 値を指定することと同じにな ります。

-tmp_file_mode

このオプションは、Tgif.TmpFileMode の X default 値 を指定することと同じになります。

-o

このオプションを指定しない場合、出力ファイル (eps, ps など) は入力ファイルと同じディレクトリ に 作 られます。 -o<dir> を指定した場合、出力ファイル は <dir> で指定しされたディレクリに作られます。

-merge file1 file2 ...

このオプションは、file1.obj, file2.obj, 等を一つの マルチページファイルに連結します。

基本的な機能

tgif がサポートする基本的 (primitive) なオブジェクトは、長 方形、楕円、角の丸い長方形、円弧、折れ線、多角形、スプライ ン開曲線、スプライン閉曲線、文字列、X11 ビットマップ画像、 特定の形式の X11 ピクスマップ画像、そ し て カ プ セ ル 化 PostScript ファイル (EPS) です。 (tgif が描くスプライン曲 線は、 Bezier 曲線では ない ことに注意してください。) 複数 のオブジェクトをグループ化して、一つの グループ オブジェク トにすることもできます。一つの基本的なオブジェクト、または 一つのグループオブジェクトから、一つの アイコン オブジェク ト、または一つの シンボル オブジェクトをユーザコマンドを通 して作成できます。

tgif の オブジェクトは、2 つの形式のファイルで保存されま す。 .obj という拡張子を持つファイル (以後 オブ ジェ ク ト ファイルと言う) はオブジェクトのファイルで、 .sym という拡 張子を持つファイル (以後 シンボル ファイルと言う) は一つの ‘‘組み上げ’’ オブジェクトを特定します。 .obj ファイル間を 移動 (または ハイパージャンプ) するため にテレポート メカニズムが用意されています。組み上 げ オ ブ ジェ クトは、オブジェクトの 表現 部分と定義 部分 (これは空 もありうる) からできています。 tgif は ‘‘ボトムアップ’’ 式 の 階層的な描画の構成を、組み上げオブジェクトを描画内に ‘‘ 例示する’’ 機能を用意することでサポートしていま す。 tgif は、任意のオブジェクトにユーザがある特定されていないサブシ ステムの 表現 を作ることを許すことで、描画の ‘‘トップダ ウ ン’’ 指 定 も サ ポー トしています。いずれの型のファイル も、Prolog の fact の形式で保存されます。描画を解 釈 す る Prolog のコードを書くこともできます ! (ユーザがそのような コードを作ることを許しています。詳しくは、「PROLOG/C の テ ス トドライバ」のセクション参照。) Prolog エンジンは、これ 以降の節では ドライバ と呼ばれています。 (他の形式のドライ バ、例えば C で書かれたものも許されています。)

非文字列オブジェクトに、文字列ベースの 属性 を付けることが できます。組み上げオブジェクトの表現部分で指定された 属 性 は、そのオブジェクトが例示的である場合は取り外せません。詳 細は「属性」のセクションを参照してください。

tgif はいくつか違った形式の出力を生成できます。デフォル ト で は 出力は PostScript (カラー PostScript) であり、それは /tmp/Tgifa* という名前 (mktemp() の呼び出しによって 生 成) の ファイルとして作られます。ここで * は数字で、このファイ ルは lpr(1) にパイプされます。 Choice Window (tgif の ウィ ン ドウの名前については、「TGIF の子ウィンドウ」のセクショ ンを参照) にレーザープリンタアイコンが表示されている場合に は、 これが行われます。この出力を、 .ps という拡張子のファ イルにリダイレクトすることもできます。 Choice Window に PS ア イ コ ンが表示れている場合は、これが行われます。 Choice Window に PDF アイコンが表示されている場合は、出力が .pdf という拡張子を持つファイルとして生成されます。デフォルトで は、 tgif は PS ファイルから PDF ファイル に 変 換 す る、 ghostscript(1) パッケージに含まれる ps2pdf(1) を呼び出しま す。 Choice Window に LaTeX (または EPSI) アイコンが表示さ れ ている場合は、出力は \ps という拡張子を持つファイルとし て生成されます。このファイルはカプセル化 PostScript (ま た は、 カ プ セ ル 化 PostScript Interchange) 形式で、これは \psfig\epsf の仕組みで LaTeX 文書に含ませることがで き ま す (訳注: これはやや古い記述で、現在は \includegraphics を使用すべきです)。これについては、後で述べます。 EPS と EPSI 形式の違いは、 EPSI ファイルがプレビュービットマップ 画像を含むことだけです。しかし、プレビュービットマップ画像 を生成するには時間がかかります。そのプレビュービットマップ をどのように使用するかを知らないツールに EPS/EPSI ファイル を取り込む場合、 EPSI 形式を使わないようにすれば時間を節約 できます。 Choice Window に T アイコンが表示されてい る 場 合、 出 力は、 .txt という拡張子のファイルとして生成されま す。このファイルは、表示されるすべての文字列を含むテキスト ファ イルで、例えばスペルチェッカーで利用できます。 Choice Window に x11bm (X11 ビットマップ) アイコンが表示されて い て、 かつカラー出力が選択されて いない 場合、tgif は出力を .xbm という拡張子のファイルとして生成しま す。 こ の 出 力 は、X11 ビットマップ形式です。しかしChoice Window に x11bm アイコンが表示されていて、かつカラー出力が選択されて い る 場 合 ( キー ボー ド コ マ ンド ^#k によって; ここで ^ は <Control>、 # は <Meta> または <Alt> キー) は、tgif は出力 を .xpm という拡張子のファイルとして生成しますが、この出力 は X11 ピクスマップ形式です (この XPM 形式のバージョンは、 Tgif.XPmOutputVersion の X default 値の設定に依存します)。 X11 ビットマップファイル、ある形式の X11 ピクスマップ ファ イ ル (tgif で生成されるようなもの; 詳細は「X11 ピクスマッ プ (XPM) フォーマット」のセクションを参照)、 GIF ファ イ ル、 カプセル化 PostScript (EPS) は、 tgif の中に 取り込む ことができ、 tgif の基本的 (primitive) なオブジェクトと し て 表 現 で きます。他のラスタ形式のファイル (例えば JPEG, TIFF など) も、外部ツールで X11 ピクスマップファイルに変換 できる場合は tgif に取り込むことができます。詳細は、「ラス タ画像の取り込み」のセクションを参照してください。

tgif の描画は、letter サイズの用紙 (8.5 インチ× 11 インチ) で印刷されるようにサポートされています。 tgif では、横置き (landscape) も縦置き (portrait) もサポートされています。縮 小 (または拡大) は、縮小/拡大率を設定するキーボードコマン ド #% で制御できます。コンパイル時に (Imakefile ま た は Makefile.noimake 内で) コンパイルフラグ -DA4PAPER が定義さ れていた場合、出力は A4 用紙 (ほぼ 8.25 インチ× 11.7 イ ン チ) で印刷されるようにサートされます。

グラフィカルオブジェクト

一つの オブジェクト ファイル (.obj) 内のオブジェクトは、基 本的 (primitive) なオブジェクト、グループオブジェクト、 ア イ コン オブジェクトのいずれかです。一つの シンボル ファイ ル (.sym) は、一つのオブジェクトファイルに許される任意個の オブジェクト、および丁度一つの シンボル オブジェクトを持つ ことができます。 ( シ ン ボ ル ファ イ ル は、 組 み 上 げ (building-block) オブジェクトを指定していることを思い出し てください。) シンボルファイル内のシンボルオブジェクトは、 組 み上げオブジェクトの 表現 (representation) 部分で、シン ボルファイルの残りの部分は、組み上げオブジェクトの定義部分 です。シンボルオブジェクトは、それ以外のオブジェクトと区別 するために、点線の外枠でハイライトされています。組み上げオ ブジェクトが例示的 (instantiated) である場合、そのファイル のシンボル部分は、グラフィックエディタにコピーされ、それは 組み上げオブジェクトのアイコンになります。

tgif のすべてのオブジェクトは、移動、二重化、削除、回転、 反転、斜行変形できます。しかし、非伸縮テキストモードでは、 テキストオブジェクトは伸縮できません。テキストオブジェクト に対しては、それが伸縮、回転、斜行変形されたものでな け れ ば、それを水平方向に反転すると文字列の位置合わせも変化しま すが、垂直方向の反転では何も変わりません。

tgif は、32 種類の塗り潰しパターン、32 種類のペ ン パ ター ン、 7 種類のデフォルトの線幅、折れ線と開スプライン曲線に 4 種類の線スタイル (真っ直ぐ (plain)、先頭に矢先、後尾に矢 先、 両 端に矢先)、 9 種類の点線パターン、3 種類の位置合わ せ、4 種類の文字スタイル (ローマン (立体)、イタリック ( 斜 体)、 ボールド (太字)、ボールドイタリック (斜体太字))、 11 種類のデフォルトの文字サイズ (75dpi フォントに は 8, 10, 12, 14, 18, 24, 100dpi フォントには 11, 14, 17, 20, 25, 34) 5 種類のデフォルトフォント (Times, Courier, Helvetica, New-Century-Schoolbook, Symbol)、 11 種類のデフォルトカ ラー (赤紫、赤、緑、青、黄色、ピンク、水色、青灰色、 白、 黒、 黒 板 色) を サ ポー ト し て い ま す。 ま た、Tgif.MaxLineWidths, Tgif.LineWidth#, Tgif.ArrowWidth#, Tgif.ArrowHeight# の X default 値を使うことで、線幅の追加 ができますし、 Tgif.FontSizes の X default 値を使 う こ と で、文字サイズの追加が、 Tgif.AdditionalFonts の X default 値を使うことで、フォントの追加ができます。デフォルトのフォ ン トが有効でない場合、 Tgif.HasAlternateDefaultFonts とそ れに関連する X default 値を指定することで、デフォ ル ト の フォ ン ト を 別 な も の に 置 き 換 えることもできます。 Tgif.MaxColors と Tgif.Color# の X default 値を使 う こ と で、 色 の 追 加 が 行 え ます。色の追加は、Edit Menu から AddColor() を選択することでも行えます。

tgif のコマンドは、たいていは、ポップアップメニューか ら、 または適当な英数字以外のキーを打つことのいずれかで利用でき ます。任意のオブジェクトを変更するすべての操作はア ン ドゥ (undo) とリドゥ (redo) が行えますが、ズームやスクロール、 またはテキストオブジェクトが選択されていない場合のフォント の変更などのコマンドは undo できません。 undo, redo の履歴 のバッファサイズは、 Tgif.HistoryDepth の X default 値を使 うことで設定できます。

TGIF の子ウィンドウ

このセクションでは tgif のウィンドウについて説明します。

Top Window

現在のドメインと tgif が見ているファイルの名前を表 示します。このウィンドウでのマウスクリップとキー押 しでは何も起きません。

Menubar Window

こ のウィンドウは、Top Window の真下にあります。そ こから、任意のマウスボタンでプルダウンメニューが起 動 しますが、キーを押しても何も起きません。 Layout Menu から HideMenubar() を選択すると、このウィンド ウ は 見 え な く な り ま す。 Layout Menu から ShowMenubar() を選択すると (下の Canvas Window か ら 起動できます)、このウィンドウは見えるようになり ます。

View, Text, Graphics のプルダウンメニューはカスケー ド (訳注: すべての項目が子プルダウンメニューを持つ 状態を指しているよう) なので、ピン留め できません ( 詳細はサブセクション Popup Menus 参照)。

Message Window

こ れは、Menubar Window のすぐ下の左に置かれていま す。 (訳注: これは version 3.X 以前の tgif に関 す る 記 述 で、 4.X 以降は Message Window と Choice Window は左右逆の配置になっ て い ま す。) こ れ は、tgif のメッセージを表示します。このウィンドウ でマウス左ボタンをクリックするとメッセージを下に向 かってスクロールし、マウス右ボタンをクリックすると 上に向かってスクロール、マウス中ボタンのクリックや ド ラッ グで、どこでマウスがクリックされたかによっ て、メッセージヒストリのその場所へスクロール し ま す。 マウス左/右ボタンのクリックのときに <Shift> ( または <Control>) キーが押されていれば、それは 左/ 右のスクロールになります。

Panel (Choice) Window

こ れは、Messeage Window の右に置かれていて (訳注: version 3.X 以前の tgif では、Message Window と Choice Window は、今のと左右逆でした)、そこには tgif の現在の状態に影響を与えるアイコン (tgif の 「アイコンオブジェクト」と混同しないように) の集合 があります。上から下、左から右の順に、それらは、現 在の描画モードの表示、ページスタイル (縦置き、横置 き)、 編 集 (edit; 以 下 参 照)、 出 力 モー ド (print/export)、拡大率、移動/伸縮モード (強制 また は非強制)、角の丸い長方形の半径、文字の回転、 ペー ジ 番号か行/列、ページレイアウトモード (積み上げか タイル貼りか)、水平方向の整列設定 (L C R S -)、 垂 直 方 向の整列設定 (T M B S -)、フォント、文字サイ ズ、一つのテキストオブジェクト内のテキストの 行 間 隔、 文字列位置合わせ、形 (shape; 以下参照)、伸縮/ 非伸縮テキストモード、点線パターン、線スタイル、折 れ線かスプラインか補間スプラインか、線幅、塗り潰し パターン、ペンパターン、色、スペシャル ( 以 下 参 照)、 となっています。 (訳注: これらも version 3.X 以前の tgif の話で、今は多少違っています。)

さらに、現在の tgif の状態を表示させたい 場 合 は、 Choice Window のアイコンを現在の状態に変えるこもで きます。各アイコンは、tgif の個々の状態変数に関連し て います。アイコンの上でマウス左ボタンをクリックす ると、そのアイコンに関連する状態変数の値が前方に 周 期 的に変化し、マウス右ボタンをクリックすると後方に 変化します。アイコンの上でマウス中ボタンをドラッ グ すると、通常は下の Canvas Window に関する Main Menu 内のエントリに関連するポップアップメニューを生成 し ま す。 ( 上 で 述 べ た ‘‘edit’’, ‘‘shapre’’, ‘‘special’’ アイコンはダミーアイ コ ン で、 Choice Window 内で ‘‘edit’’, ‘‘shapre’’, ‘‘special’’ のメ ニューにアクセスできるようにしているものです。左 や 右 のマウスクリックでは応答しません。) マウス中ボタ ンのドラッグに対する反応は、拡大、半径、垂直間隔 の ア イコンでは違っています。左、または上にマウスをド ラッグすると拡大率は上昇しますが、半径や垂直間隔 は 減 少し、右、または下にドラッグすると逆の結果になり ます。

Canvas Window に選択されたオブジェクトがある場 合、 マ ウスに対する行為は、選択されたオブジェクトの新た に選択したモードへの変更を引き起こしますが、この 場 合 現在の選択は、マウス中ボタンが使われてた場合は変 更しない (Tgif.StickyMenuSelection の X default 値 が true でない場合) ことに注意してください

水 平、 垂直方向の整列設定は、キーボードコマンド ^l を発行したときに、オブジェクト (または頂点集合) を 他 に合わせてどのように整列させるか、キーボードコマ ンド ^t を発行したときに、個々のオブジェクト (ま た は 個 々 の頂点) を格子に対してどのように整列させる か、キーボードコマンド #l を発行したとき に、 オ ブ ジェ クトや頂点を他のものに対して空間的にどのように 分散させるか、そして、キーボードコマンド ^#u を発行 し たときに、各アイコンをどのように古いアイコンと置 き換えさせるか、を決定します。水平方向の整 列 設 定 (alignment) は、 左 (L)、中央 (C)、右 (R)、等間隔 (S)、無視 (-) のいずれかで、垂直方向の整列設定 は、 上 (T)、真ん中 (M)、下 (B)、等間隔 (S)、無視 (-) の いずれかです。整列操作では、等間隔 (S) と無 視 (-) の 設 定 は同じ効果を持ち、等間隔設定はオブジェクト を、任意の隣同士のオブジェクトの間隔がすべて等し く な るように分散させます。頂点モードでは、無視以外の 設定は選択された頂点を等間隔にします。これらを理 解 する最も良い方法は、実際に試してみることです。

テ キストの行間隔は、文字列の編集時にリターンキーを 打ったときに追加される垂直方向の距離を決定しま す。 ユー ザがその値を、次の行が現在の行と重なるくらいの 負の値に設定しようとしても、そのような設定は許可 さ れ ません (この距離は現在のフォントとフォントサイズ に依存します)。

Canvas Window

これは描画領域です。マウスへの行為の結果は、現在の 描画モードによって決定されます。 tgif-4.x より前の 版では、マウス右ボタンをドラッグすると Mode Menu が生成されますが、これは、 tgif-4.x ではデフォルト で無効となっていて、これは Tgif.Btn3PopupModeMenu の X default 値を使って有効にできます。

描画モードには (Mode Menu に現れる順番で言えば)、選 択モード、テキストモード、長方形モード、角指定の 楕 円 モー ド、 中心指定の楕円モード、端指定の円周モー ド、折れ線 (開スプライン) モード、多角形 (閉スプ ラ イ ン) モード、円弧 (中心が先) モード、円弧 (端点が 先) モード、角の丸い長方形モード、フリーハンドの 折 れ線 (開スプライン) モード、頂点選択モード、回転/斜 行変形モードがあります。描画モードが長方形 か 楕 円 か、角の丸い長方形であるときに <Shift> キーを押した 場合は、それぞれ正方形、正円、角の丸い正方形が描 画 されます。マウス中ボタンをドラッグすると、Main Menu が生成されます。

選択モードでは、マウス左ボタンによるオブジェクト の 選 択、移動、伸縮、変形が行えます (ダブルクリックで 頂点モードで選択されたすべてのオブジェクトの選択 が ‘‘ 解除’’) されます。一つのオブジェクトが選択されて いるとき、それはそれを囲む枠の角、または頂点上に 現 れ る小さな正方形 (ここではハンドルと呼びます) で明 示化されます (Tgif.HandleSize の X default 値でハン ドルのサイズはカスタマイズできます)。ハンドルの一つ をドラッグすることで、選択されたオブジェクトの伸縮/ 変 形が行えます。選択されたオブジェクトを移動するに は、ハンドルをドラッグせず、代わりにオブジェクト の 別 の部分をドラッグします。例えば、オブジェクトが中 空の長方形 (塗り潰しは NONE でペンは NONE 以外) の 場 合、その長方形を選択するには、その長方形の枠線上 でマウス左ボタンをクリックします。その長方形を移 動 す るには、マウス左ボタンで長方形の枠線をドラッグし ます。その長方形が塗り潰されている場合 (塗り潰し が NONE 以外)、長方形内部の任意の場所をドラッグすれば それを移動できます。

今はまだ選択されていないオブジェクト 上 で <Shift> キー を押したままマウス左ボタンをクリックすると、そ のオブジェクトが既に選択されたオブジェクトのリス ト に 追加されます。その同じ行為は、既に選択されたオブ ジェクトを選択解除にするのにも使われます。オブ ジェ ク トを伸縮するとき (折れ線、多角形オブジェクトの変 形以外で)、伸縮の 後 で <Shift> キーを押すとそれ は 比 率 を変えない伸縮 (基本的には相似伸縮が行われる) の有効化を開始します。非伸縮テキストモードでは、 テ キストオブジェクトは伸縮も相似伸縮もできません。

<Shift> キーが押されているときにマウス中ボタンをダ ブルクリック、またはクリックすると、テレポート ( ま た は 移動)、外部コマンドの起動、内部コマンドの実行 の仕組みが有効になります。詳細は、「テレポート/ハイ パー ジャ ン プ」、「外部アプリケーションの起動」、 「内部コマンド」のセクションを参照してください。 テ レ ポートは外部コマンドの起動よりも優先的で、外部コ マンドの起動は内部コマンドの実行よりも優先的で す。 文 字描画モードでは、文字列編集領域の内部で <Cntrl> キーを押したままマウス中ボタンをドラッグすると、 文 字列編集領域が移動します。

選 択されたオブジェクトを移動するのには、矢印キーも 使えます。しかし、オブジェクトが選択されていない 場 合 は、矢印キーを使うと描画領域が少しずつスクロール します。 <Control> キーを押して矢印キーを使うと、ス クリーン全体がスクロールします。

頂 点選択モードでは、マウス左ボタンで頂点を選択し移 動します。頂点選択モードが有効なとき、選択されて い る トップレベルの折れ線/開スプライン、多角形/閉スプ ラインのオブジェクトのみが頂点の操作に関する資格 が あ り ま す。このモードでは、資格のあるすべてのオブ ジェクトの頂点が小正方形で明示化されます。(上で説明 し たオブジェクトの選択と同じ仕組みによって) 頂点を 選択すると、それは ’+’ の印で二重に明示化されます。 こ れら二重に明示化されている頂点に有効な操作は、移 動、削除、整列化 (そのそれぞれへ) 、分散 ( 等 間 隔 に)、 格 子への整列化、です。選択された頂点の移動に は、矢印キーも使えます。

オブジェクトは (キーボードコマンド #< を 使っ て) ロッ クできます。ロックされたオブジェクトは灰色のハ ンドルで表示され、それらは移動、伸縮、反転、回 転、 斜 行変形ができません。オブジェクトがグループ化され ている場合、その構成要素の一つがロックされ て い れ ば、 結果としてのグループオブジェクトもロックされま す。ロックされたオブジェクトは、色、フォント、ペ ン 等 の性質は変更できますし、それらを削除することもで きます。

現在の移動/伸縮モードが強制型 (キーボードコマ ン ド #@ で有効/無効にできる) である場合、トップレベルの 折れ線は以下のように振舞います。移動操作では、一 つ の 折れ線の両方の端点が移動させられるオブジェクトの 内側に入っている場合、折れ線全体が移動されます。 そ う でなくて、一つの端点のみが移動させられるオブジェ クトの内側に入っている場合は、その端点が移 動 し ま す。 移動する端点の隣の頂点も水平、あるいは垂直に移 動できます。最後の線分が水平、または垂直で あ る 場 合、 その隣の頂点は最後の線分の方向が保持されるよう に移動されます。伸縮操作 (変形ではない) では、折 れ 線 の一つの端点が移動させられるオブジェクトの内側に ある場合、その端点が移動します。端点の隣の頂点 も、 上に説明したのと同じ規則で移動します。

描 画 モー ドがテキストにセットされると (垂直バーの カーソルが表示される)、マウス左ボタンで選択されたテ キ ス ト が編集モードに入ります。マウス左ボタンをド ラッグ、または <Shift> キーを押したままマウス左ボタ ン をクリックすると、テキストの部分文字列がハイライ ト表示されます。ダブルクリックは、単語の選択にな り ま す。編集モードでは、押したキーは入力文字列である と見なされ、矢印キーは現在の入力位置の移動として 使 わ れます。 <ESC> キーの後でキーを押すと、bit 7 (訳 注: いわゆる 8 ビット目) がオンになります。これによ り、 非 ASCII (国際) 文字が入力できるようになりま す。 xfd(1) を使えば、各 ASCII 文字に対する国際文字 が 何であるかを見ることができます。 Symbol フォント に対しては、積分記号、偏微分記号、著作権記号のよ う な 記号はすべてのこの範囲で見つけることができます。 X11 ではサポートされていても、PostScript ではサポー ト されない文字もあります。これらの文字は tgif では 許可されません。編集されているテキストがオブジェ ク トの属性である場合、 <Meta><Tab> でカーソルを次の見 える属性へ移動でき、 <Shift><Tab> でカーソルを前 の 見える属性へ移動できます。

描 画モードが、多角形描画 (閉スプラインではなく) で <Shift> キーが押されている場合は、多角形はゴムひ も 状に自分で閉じられます。

折 れ線、開スプラインを書くのにフリーハンド描画モー ドを使うことができます。すべての中間点は、(折 れ 線 モー ドではマウスボタンをクリックするのに対して) マ ウスの移動によって指定されます。 2 つ目の端点は、マ ウスボタンを放すことで指定されます。

( テ キ ス トモードを除く) すべての描画モードでは、 <ESC> キーを押すと現在のオブジェクトの描画 ( 生 成) がキャンセルされます。

マ ウス中ボタンは、常に tgif ポップアップメニューを 生成します。 <Shift> キーを押したままマウス右ボタン を クリックすると、描画モードが 選択 に変わります。 <Control> か <Meta> キーを押したままキーを押す ( こ れは制御文字も生成しますので、非英数字 キー押し、と 呼ばれます) と、これはコマンドと扱われます。その 割 り 当てについては次のセクションで要約します。ユーザ は、非英数字キーコマンドの機能を実行する単一キー コ マ ンドを定義することもできます。詳細は、「ショート カット」のセクションで説明します。

Scrollbars

垂直/水平スクロールバー内でマウス左ボタンをク リッ ク す る と、キャンバスウィンドウが下/右に少しスク ロールし、マウス右ボタンをクリックすると逆方向にス クロールします。 (ファイル名やドメイン名を選択する ポップアップウィンドウのスクロールバーも同様の挙動 で す。) (訳注: いずれも version 3.X 以前の挙動。) <Shift> キーを押したままクリックすると、ウィンドウ サイズ分スクロールします。マウス中ボタンをクリック かドラッグすると、スクロールバー内のその灰色領域に 対応する位置へスクロールします。 (Canvas Window の 左上の角は、実際のページの左上の角からある内部単位 の 0 以上の倍数分だけ少し離れていることを tgif は 要求します。)

Rulers

ルーラ (定規) は、マウスを追いかけます。その上での マ ウ スクリック、キー押しでは何も起こりません (訳 注: いずれも version 3.X 以前の挙動で、4.X では 格 子単位が変化します)。ページの縮小/拡大率が 100% で あれば、メートル法格子系を使用している場合はルーラ の目盛はセンチメートルに対応し、ヤード法格子系を使 用している場合はインチに対応します。ページの縮 小/ 拡大率が 100% でない場合は、目盛の印は上に述べた単 位には対応しません (これは既知の問題として考慮され ています)。

Interrupt/Hyperspace Window

こ の ウィンドウは Message Window のすぐ下で、水平 ルーラの左にあります (訳注: version 3.X 以前 の 場 合)。 Tgif.IntrCheckInterval の X default 値が正の 値の場合、 Canvas Window が再描画されるときに中 断 アイコンが表示されます。中断アイコンが表示されてい るときにユーザがこのウィンドウをクリックす る と、 tgif はオブジェクトの再描画を中断します。 (Open() か Push() のいずれかにより) ファイルを開いていると きにこれが行われると、オブジェクトの描画を中止しま すが、ファイルの読み込みは続けます (ファイルの読み 込みは中断しません)。

tgif が現在 ハイパースペース モード (詳細は、下の 「ハイパースペース」のセクションを参照してください) に ある場合、中断アイコンが表示されていないときは宇 宙船アイコンが表示されます。このウィンドウ内で任 意 の ボタンをクリックすると、 tgif はハイパースペース モードに入るか抜け出るかを切り替えます。

Page Control Window

Page Control Window は、水平スクロールバーの左にあ り ます。このウィンドウは、現在のページモードが タ イル貼り (tiled) ページモードにセットされている 場 合 は 空 で す。 現 在 のページモードが 積み上げ型 (stacked) ページモードの場合、このウィンドウのタブ 子ウィンドウ内に各ページのタブが作られ、マウス左ボ タンをそのタブの上でクリックすると、対応するページ へ移動します。マウス中ボタンをクリックすると、Page Menu が現れます。描画中のページ数が多すぎてすべ て の ページのタブを表示できない場合は、 Page Control Window の左側にあるアイコンでタブ子ウィンドウを ス ク ロールできます。 1 つ目のアイコンをクリックする と、最初のタブが見えるようにスクロールし、 4 つ 目 のアイコンをクリックすると、最後のタブが見えるよう にスクロールします。 2 つ目のアイコンをクリック す る と、最初のタブの方へ一つスクロールし、 3 つ目の アイコンをクリックすると、最後のタブの方へ一つスク ロールします。

Status Window

こ の ウィンドウは、水平スクロールバーの下にありま す。これは、マウスボタンが押し下げられたときにどん な動作が行われるのかを表示しています。メニューがプ ルダウン、あるいはポップアップされると、このウィン ドウは、メニューの項目が選択された場合にどんな動作 が行われるのかを表示します。これは、その他の状態情 報も表示します。この上でのマウスクリック、キー押し では何も 起 こ り ま せ ん。 Layout Menu か ら HideStatus() を選択すると、このウィンドウは非表示 となり、 Layout Menu から ShowStatus() を選択す る と、このウィンドウは表示されます。

こ のウィンドウがマウスボタンの状態を表示していると きは、デフォルトではそれは右手用のマウスを仮定し て います。 gif.ReverseMouseStatusButtons の X default 値を true とすると、その状態表示は (左手用のマウ ス が使われているように) 反対になります。

Popup Menus

マウスドラッグによりメニューがポップアップしたとき に、水平方向にそれを十分遠くまでドラッグ (それに必 要 な距離は、Tgif.MainMenuPinDistance の X default 値の設定で決まります) すると、メニューを ピン留 め できます。ピン留めされたメニュー内でマウス右ボタン をクリックすると、そのメニューは消え、ピン留めされ た メ ニュー内でマウス左ボタンをドラッグすると、メ ニュー の 位 置 が 再 び 移 動 し ま す (Tgif.TitledPinnedMenu の X default 値が true に セットされている場合を除いて。これがセットされてい ると、マウス左ボタンはマウス中ボタンと同じ機能を果 たします)。マウス中ボタンをそのメニュー内でク リッ クすると、マウスの真下にある項目が機能します。

非英数字キーバインド

tgif で行えるほとんどの操作は、非英数字キーを使って行えま す (ポップアップメニュー、またはショートカットキーからのみ 有 効 な 操 作 も い く つ かはあります)。このセクションで は、<Control> や <Meta> キーを押してのキーストロークで実行 できる操作を要約します。以下の記述では、‘‘^’’ は <Control> キーを、‘‘#’’ は <Meta> キーを表します。 (tgif と一緒に 配 布される ‘‘keys.obj’’ ファイルにも同じ情報が書かれています が、それは別の形に構成されています。このファイ ル は、tgif で見ることができ、適切にインストールされていれば、この文書 の 「ファ イ ル」 の セ ク ショ ン で 述 べ ら れ て い る ‘‘tgificon.obj’’ ファイルと同じディレクトリに見つけること ができます。) (訳注: 以下の記述は古い版のもので、現在は 変 更されている可能性があります。)

^a

すべてを選択 ^b

選択したオブジェクトを背後に送る ^c

選択したオブジェクトをカットバッファにコピー ^d

選択したオブジェクトを二重化 ^e

描画モードの保存/復帰 ^f

選択したオブジェクトを手前に送る ^g

選 択 したオブジェクトをグループ化 (そのグループオブ ジェクトは手前に) ^i

組み上げオブジェクトの例示 ^k

上位レベルにポップで戻り (または帰り) シンボルファ イ ルを閉じる (^v の逆) ^l

選択したオブジェクトを現在の整列設定に従って整列化 ^n

新しい名前のないオブジェクトファイルを開く ^o

編集するためにオブジェクトファイルを開く ^p

現ページを印刷 (または XBM, XPM, GIF, HTML, PDF, EPS, PS の形式で出力) ^q

tgif の終了 ^r

ページの再描画 ^s

現在のオブジェクト/シンボルファイルを保存 ^t

選択したオブジェクトを現在の整列設定 に 従っ て 格 子 (grid) に整列化 ^u

選択したオブジェクトのグループを解除 ^v

カットバッファから貼り付け (paste) ^w

描画モードをテキストに変更 ^x

選択したオブジェクトをすべて削除 ^y

ドメインを変更 ^z

ドライバに抜け出す ^,

左にスクロール ^.

右にスクロール ^-

指定したコマンドで現在のページを出力

#a

テキストオブジェクトを非テキストオブジェクトに属性と して付属 (attach) #b

ドライバに抜け出す #c

反時計回りに選択したオブジェクトを回転 #d

格子サイズを減少 #e

トークンを選択した折れ線の上に送る #f

選択した折れ線をフラッシュ #g

格子点を表示する/しない #h

選択したオブジェクトを水平方向に反転 #i

格子サイズを増加 #j

選択したオブジェクトの属性名を隠す #k

描画モードを「選択」に変更 #l

選択したオブジェクトを現在の整列設定に従って分布 #m

選択したオブジェクトの属性の移動/位置合わせ #n

選択したオブジェクトの属性名をすべて表示 #o

縮小表示 (zoom out) #p

現在のファイルに .obj や .sym ファイルを取り込む #q

描画モードを「折れ線/開スプライン」に変更 #r

描画モードを「長方形」に変更 #s

ドライバに抜け出す #t

選択したオブジェクトの属性をすべて取り外す #u

undo #v

選択したオブジェクトを垂直方向に反転 #w

時計回りに選択したオブジェクトを回転 #x

ドライバに抜け出す #y

ドライバに抜け出す #z

拡大表示 (zoom in) #9

ユーザ指定の円弧を生成 (12 時の位置が 0 度) #0

選択したオブジェクトを現在の設定に従って更新 #,

上にスクロール #.

下にスクロール #-

選択したオブジェクトのすべての属性を表示 #[

オブジェクトの左側に整列 #=

オブジェクトの水平中央に整列 #]

オブジェクトの右側に整列 #{

オブジェクトの上側に整列 #+

オブジェクトの垂直中央に整列 #}

オブジェクトの下側に整列 #"

選択した多角形を正多角形化 (元のバウンディングボッ ク スに合うように) #%

縮小印刷 (< 100% の場合) または拡大印刷 (> 100% の場 合) の割合の設定 #:

デフォルトの拡大率へ #‘

ページ全体が見えるように全体を縮小表示 #~

選択したオブジェクトを新しいファイルに保存 #;

選択したビットマップ/ピクスマップオブジェクトをカット と拡大 #_

選択したオブジェクトを水平方向にくっつける #|

選択したオブジェクトを垂直方向にくっつける ##

テキストオブジェクトを一文字のテキストオブジェクトに 分解 #^

SaveOrigin() でセットする原点にスクロール #@

強制/非強制移動 (伸縮) モードのトグルスイッチ #$

描画モードを「頂点の選択」へ変更 #&

選択したオブジェクトを現在の整列設定に従って紙に整列 #*

redo #(

EPS ファイルを取り込む #)

選択したオブジェクトを X,Y スケール因子を指定し て ス ケーリング #<

選択したオブジェクトをロック (移動、伸縮、反転、回転 は不可能) #>

選択したオブジェクトのロックを解除

^#a

選択した折れ線、スプラインに点を追加 ^#b

文字スタイルをボールドに変更 ^#c

位置合わせ文字列をセンタリングに変更 ^#d

選択した折れ線、スプラインから点を削除 ^#e

描画モードを「角丸長方形」に変更 ^#f

選択したビットマップオブジェクトを白黒反転 ^#g

グリッド単位の移動モードのトグルスイッチ ^#h

選択したオブジェクトのすべての属性を隠す ^#i

選択したオブジェクトをアイコン化 ^#j

選択したアイコンオブジェクトをグループ化 ^#k

出力のカラーか白黒かの選択 ^#l

位置合わせ文字列を左合わせに変更 ^#m

選択したオブジェクトをシンボル化 ^#n

選択したシンボルオブジェクトをグループ化 ^#o

文字スタイルをローマン体に変更 ^#p

文字スタイルをボールド-イタリックに変更 ^#q

描画モードを「閉曲線/閉スプライン」に変更 ^#r

位置合わせ文字列を右合わせに変更 ^#s

新しい名前でファイルを保存 ^#t

文字スタイルをイタリックに変更 ^#u

選択したオブジェクトのアイコン表現を更新 ^#v

描画モードを「楕円」に変更 ^#w

多角形/スプラインのトグルスイッチ ^#x

色々な出力ファイルフォーマットの間を巡回 ^#y

組み上げ (アイコン) オブジェクトの定義部分に挿入 ( ま たは編集) ^#z

描画モードを「円弧」に変更 ^#.

X11 ビットマップファイルを取り込む ^#,

X11 ピクスマップファイルを取り込む ^#-

格子単位のインチ/センチメートルのトグルスイッチ ^#=

最後の検索 (Find) コマンドを繰り返し

ショートカット

ユーザは、コマンドを実行させる非英数字キー押しの機能を実行 する一文字の ショートカット キーを定義 で き ま す。 こ れ は、Tgif.ShortCuts の X default 値を使うことで行います。 ( これらのショートカットキーは、描画モードがテキストモードに セッ ト されて いない 場合にのみ有効です)。 Tgif.ShortCuts は、いくつかの項目のリストで、個々の項目はキー (大文字小文 字は区別する) とコマンドの割り当てを指定します。項目同士は 空白で分離し、各項目は以下のように解釈されます。項目は KEY と COMMAND のふたつの部分からなり、これらは文字 ’:’ で連結 されます。その KEY 部分の書式は、:<Key>x, !<Key>x, <Key>x (ここで、文字 ’x’ は例として使われています。さらに、部分文 字列 <Key> は、それが完全にここに現れている形のまま綴ら な け ればいけません) のいずれかです。最初の 2 つの書式は同等 で、これらは x の 小文字 を指定しています。 3 番目の 書 式 は、’x’ と ’X’ の両方の文字を指しています。 COMMAND 部分 は、tgif のポップアップメニューの文字列から空白文字を取 り の ぞ いたもの (例外は以下に記します) にマッチする文字列で す。これは、以下の例で説明します。 Edit Menu に以下のよ う なエントリが 2 つありますが、

"Delete

^x"
"SelectAll

^a"

こ れ ら は、<Control>x が Delete() コマンドを有効に、 <Control>a が SelectAll() コマンドを有効にすることを意味し て い ま す。 よっ て、これら Delete() と SelectAll() が、 ショートカット指定の COMMAND 部分に使える名前です。この 例 を 完 成 させると、以下の行で小文字の ’x’ が Delete() に、 ´a’ と ’A’ が SelectAll() に割り当てられるようになります:

Tgif.ShortCuts:

!<Key>x:Delete() \n\

<Key>a:SelectAll()

さらなる例については、X default ファイルのサンプルで あ る tgif.Xdefaults を参照してください。tgif 配布物に含まれてい ます。

ここに、COMMAND がメニュー項目のコマンド名には一致していな い 例 外 を 一覧として紹介します。左側のエントリは、正式な COMMAND 名、右側はそのコマンドに対応する、ポップアッ プ メ ニューに現れる文字列のリストです。

CyclePrintFormat()

Printer, LaTeXFig, RawPSFile, XBitmap, TextFile, EPSI, GIF/ISMAP, TiffEPSI, NetList ToggleBW/ColorPS()

BlkWhtPS, ColorPS ToggleGridSystem()

EnglishGrid, MetricGrid ToggleMapShown()

ShowBit/Pixmap, HideBit/Pixmap ToggleUseGrayScale()

UseGrayScale, NoGrayScale ToggleMoveMode()

ConstMove, UnConstMove ToggleShowMeasurement()

ShowMeasurement, HideMeasurement

ToggleLineType()

(advances between different curved shapes) ScrollPageUp()

(scroll up a window full) ScrollPageDown()

(scroll down a window full) ScrollPageLeft()

(scroll left a window full) ScrollPageRight()

(scroll right a window full) FreeHandMode()

(change the drawing mode to freehand poly/open-spline) CenterAnEndPoint()

(move an endpoint of a polyline object to the center of another object) ToggleNamedAttrShown(<x>=)

(toggle name shown for the attribute <x>) ToggleSmoothHinge()

(convert smooth to hinge and hinge to smooth points) ToggleShowMenubar()

ShowMenubar, HideMenubar ToggleShowStatus()

ShowStatus, HideStatus ToggleShowMode()

ShowMode, HideMode ToggleOneMotionSelMove()

OneMotionSelMove, ClickSelClickMove ToggleHyperSpace()

GoHyperSpace, LeaveHyperSpace ImportOtherFileType(<x>)

(import using a filter named <x>) BrowseOtherType(<x>)

(browse using a filter named <x>) PrintSelectedObjs()

(print selected objects)

上 の一覧以外にも、以下のものも有効な COMMAND 名です (それ が持つ意味は明らかでしょう): ScrollLeft(), ScrollRight(), ScrollUp(), ScrollDown(), SelectMode(), DrawText(), DrawBox(), DrawOval(), DrawPoly(), DrawPolygon(), DrawRCBox(), DrawArc(), SelectVertexMode()。

カラーとカラーマップ

多くの X の環境では、同時には 256 色のみが表示できます。こ のような環境では、あるアプリケーションが 128 色を必要と し て、 他のアプリケーションが異なる色を全部で 129 色必要とし た場合は、両方のアプリケーションが必要とするすべての色を同 時 に 表 示することはできません。 X は、この問題を各アプリ ケーションが自分自身のカラーマップ (プライベートカラーマッ プとして知られる) を使用できるようにすることで解決していま す。各プライベートカラーマップは、最高 256 色を持つこと が で き ますし、プライベートカラーマップを使いたくないアプリ ケーション用には、共有のカラーマップ (shared colormap) も あります。プライベートカラーマップを使用する場合の主な問題 は、プライベートカラーマップを利用するアプリケーショ ン の 中、 あるいは外に切り替わったときに、ユーザが カラーマップ のフラッシュ として知られる現象を目にすることです。

tgif は、最初は共有カラーマップを使用し、共有カラーマッ プ で利用できる色より多くのものが必要となったときに自動的にプ ライベートカラーマップを使用します。しかし tgif が余分な色 を必要としなくなった場合には、自動的には共有カラーマップを 使用するようには戻りません。それは、余分な色を使用する操作 を undo する必要があるからです。 undo バッファのオブジェク トを必要と し な く なっ た 場 合 は、 Edit Menu か ら FlushUndoBuffer() を選択して undo バッファをフラッシュでき ます。このとき、tgif はカラーマップのフラッシュ現象を避 け る た めに、共有カラーマップを使うことを試みます。よく XPM や GIF オブジェクトを使用する場合は、以下の X default 値を 設 定することで <Shift>f キーを FlushUndoBuffer() 操作に割 り当てることができ、そして XPM/GIF オブジェクトを削除し た ときに <Shift>f キーを使ってそのカラーマップのエントリを復 帰することができます。

Tgif.ShortCuts: !<Key>F:FlushUndoBuffer()

プライベートカラーマップを使用しても、一度には 256 色ま で しか利用できませんから、2 つの 256 色 GIF ファイルを、何ら かの方法でそれらの色が 1 つの 256 色カラーマップに当てはま るように減らすことができなけれあ、それら同じ描画内に取り込 むことはできません。これは、ディザ という手法を通して行 う こ と ができます。それについては、下の「ラスタ画像の取り込 み」のセクションに書かれています。

ラスタ画像の取り込み

tgif がデフォルトでサポートするラスタ画像形式 は、XBM と XPM 形式です。他の形式のカラーのラスタ画像ファイルを取り込 む目的で、tgif は、 XPM でない形式のファイルを XPM ファ イ ルに変換する外部ツールを使って動作できます。ポピュラーなラ スタ形式の変換ツールは、 pbmplus(1) (netpbm(1) としても 知 ら れる) ツール群です。これは、以下のコマンドで GIF ファイ ル (例えば "foo.gif") を XPM ファイル (例え ば "foo.xpm") に変換できます (giftopnm は netpbm 内のもので、 pbmplus 内 にある以前のバージョンのものは giftoppm と呼ばれてい ま し た):

giftopnm foo.gif | ppmtoxpm > foo.xpm

tgif で 動作させる場合は、GIF ファイル名は tgif が与え、 ppmtoxpm の出力は tgif がパイプ経由で直接読み込み ま す の で、 上のコマンド列は以下の形式を含む X default 値で置き換 えられます (これが Tgif.GifToXpm X default 値のデフォル ト の設定になっているかもしれません):

giftopnm %s | ppmtoxpm

"%s" は GIF ファイル名に置き換えられます。上は フィルタ と して参照されます。

他の型 の ラ ス タ 画 像 ファ イ ル を 取 り 込 む に は、 Tgif.MaxImportFilters と Tgif.ImportFilter# の X default 値に追加するフィルタを指定することで可能となります。以下は JPEG フィルタを追加する例です:

Tgif.MaxImportFilters: 1
Tgif.ImportFilter0: \n\
JPEG-222 jpg;jpeg \n\
djpeg -gif -colors 222 %s | \n\
giftopnm | ppmtoxpm

上の "JPEG-222" は、与えるフィルタの名前です (空白文字を入 れてはいけません)。 "jpg;jpeg" は、ありうるファイル拡張 子 の セ ミコロン区切りでの指定です。それ以降はフィルタ指定で す。 djpeg(1) プログラムは、libjpeg 配布物に含まれていて、 こ れは JPEG ファイルを GIF ファイルに変換します。上のフィ ルタでは、出力を最大 222 色に制限もしています。 (222 は 任 意 に選べますが、多くの XPM ファイルはある ‘‘標準’’ である 32 色を使用するので、このままにしておくといいでしょう。)

こ の フィ ル タ を 呼 び 出 す に は、File Menu か ら ImportOtherFile() か BrowseOther() コマンドを選択します。 これは、利用可能なフィルタの名前 (例えば "JPEG-222") の 一 覧 を 持つダイアログボックスを出します。フィルタを選択する と、tgif は File Menu か ら ImportXPixmap() や BrowseXPixmap() コマンドを呼び出したのと同様の動作に移りま す。

一つの描画中では、256 色しか利用できない (上の「カラーとカ ラー マッ プ」 の セ ク ショ ン 参 照) の で、 上 の 例 は、BrowseOther() コマンドには適 切 で は あ り ま せ ん。 BrowseOther() がうまく動作するようにするには、標準色の集合 のみを使用する ディザ された画像を表示するディザリング を 使 う の がいいでしょう。以下の例は、pbmplus/netpbm ツール キットの ppmdither を使用しています:

Tgif.MaxImportFilters: 2
Tgif.ImportFilter0: \n\
JPEG-222 jpg;jpeg \n\
djpeg -gif -colors 222 %s | \n\
giftopnm | ppmtoxpm
Tgif.ImportFilter1: \n\
JPEG-dithered jpg;jpeg \n\
djpeg -gif %s | \n\
giftopnm | ppmdither | ppmtoxpm

JPEG 画像の処理をする場合は、ImportOtherFile() を 選 択 し て、 そして 222 色を得るために "JPEG-222" を選択すればいい でしょうし、 JPEG 画像を参照する場合は、BrowseOther() を選 択して、そして "JPEG-dithered" を選択すればいいでしょう。

オブジェクトの名前

一つのオブジェクトが、"name" (大文字小文字は区別される) と いう名前の一つの属性 (詳細は、下の「属性」のセクションを参 照) を持つ場合、その属性の値部分は、そのオブジェクトの 名 前 となります。合成オブジェクトの部分オブジェクトは、パ ス を 使って名前付けできます。例えば、 <t>!<s1>!<s2>!... で、 ここで <t> はトップレベルオブジェクトの名前で、直 接 <s1> を 含 んでいて、これはまた直接 <s2> を含み、といった具合で す。 !* は、現在選択されているオブジェクトを参照します (複 数のオブジェクトが選択されている場合、積み上げ順で最も上の オブジェクトが使われます)。 !*<s1>!<s2> は、現在選択されて いるオブジェクトのサブオブジェクト <s1> のサブオブジェクト <s2> の名前です。

以下は、まだ 完全には サポートされていません (現時点 で は #<page> 形式のみがサポートされています)。 tgif ファイル内 のすべてのオブジェクトは、 #<page>!<path> という記法を使う こ と に よっ て 一 意 に 名前をつけることができます。ここ で、<page> はページの名前を指定する文字列か、またはペー ジ 番 号を指定する #<number> のいずれかです。 <path> は、前の 段落で述べたものです。一つのオブジェクト o1 が、同じファイ ル (# の前にはファイル名、URL が指定されていない) 内で他の オブジェクト o2 で参照され、 <page> が省略されている場合、 o1o2 と同じページになくてはなりません。 # の前にファイ ル名か URL が指定されていて、かつ <page> が省略されてい る 場合は、 o1 は最初のページになくてはなりません。

属性

属性は、name=value または value の形式の文字列で、これらは 現在の描画、または任意の文字列ではないオブジェクトのいずれ か に 付属します。現在の描画に付属する属性は、ファイル属性 と呼ばれ、その他は 正則属性 と呼ばれます。属性は以下のよう な場合を除いて、それらのオブジェクトに付属させたり取り外せ たりできます:

組み上げオブジェクトファイルのシンボルオブジェク ト に 現れる属性は、組み上げオブジェクトが例示的である 場合は取り外せません。この属性は、アイコンオブ ジェ ク トの ‘‘遺伝’’ 属性であると見なされます。 (実際に あるアイコンオブジェクトの遺伝的な属性を取り外す 必 要 が あ る場合、そのアイコンオブジェクトは Special Menu 内の UnMakeIconic() を使ってそれをグループオブ ジェ クトにすることで ‘‘非アイコン化’’ でき、それに よりその属性を取り外すことができます。)

ファイル属性は、常に表示されません。正則属性に関し て は、 ユーザには属性のどの部分を表示させるか、という制御が与えら れていますが、属性全体を非表示にもできますし、その名前だけ を 非 表 示 にもできます (#m, #n, #j, #-, ^#h 等の Special Menu のコマンドによって行えます)。

テレポート / ハイパージャンプ

tgif は .obj や .sym ファイルの間を行ったりきたり (travel) する仕組みを提供しています。あるオブジェクトの上で <Shift> キーを押したままマウス中ボタンをクリックすると (またはその オ ブジェクトをダブルクリックすると)、 tgif はそのオブジェ クトの (デフォルトでは) warp_to または href という名前の属 性を探します。 warp_tohref の唯一の違いは、 warp_to 属 性の値には自動的に ".obj" が追加され、 href 属性の値はその まま使われる、ということです。 (warp_to は、現在は非推奨で あることに注意してください。これは互換性の目的で今で も サ ポートしています。) そのような属性が見つかった場合、その属 性値が 移動 先の .obj ファイルの名前であると解釈されます。 (tgif が ハイパースペース モードである場合、左マウスボタン のクリックが同じ効果を持ちます。) そのオブジェクトに複数の href 属性が存在し、そして色が異なる場合、 tgif は Choice Window に現れている現在の色と同じ色を持つ方を使います。 現 在 の ファイルが修正されている場合、次のファイルへの移動前 に、ユーザにそのファイルを保存するか問い合わせます。 href 属 性の値部分が文字 ’/’ で始まっている場合は、その値は絶対 的なファイル名であるとして扱われ、そうでなければ相対 的 な ファイル名として扱われます。

ハイパースペース

tgif は、.obj ファイル間の移動を楽にするハイパースペース モードを提供します。 Navigate Menu から GoHyperSpace() を 選択することで、ハイパースペースモードに入ります。ハイパー スペースモードでは、 Message Window の下の小さなウィンドウ に 小さな宇宙船が表示されます。リモート URL が開かれている 場合も、自動的にハイパー ス ペー ス モー ド に 入 り ま す (Tgif.AutoHyperSpaceOnRemote の X default 値が false に設 定されていない場合)。

ハイパースペースモードでは、あるオブジェクトが ホットリ ン ク であると見なされます。カーソルがこれらのオブジェクトの 一番上に置かれている場合、それはポインタから手に変わります が、それは左マウスボタンのクリックがある動作を呼び出すこと を意味します。一つのオブジェクトは、それが「テレポート/ ハ イパージャンプ」、「外部アプリケーションの起動」、「内部コ マンド」のいずれかのセクションに書かれている属性を含んでい る場合にホットリンクとなります。

ハイパースペースモードは、描画モードが変更したとき、あるい は Navigate Menu から LeaveHyperSpace() を選択したときに終 了します。

外部アプリケーションの起動

tgif は、外部アプリケーションを起動する仕組みを提供してい ます。あるオブジェクトの上で <Shift> キーを押したままマ ウ ス中ボタンをクリックすると (またはそのオブジェクトの上でダ ブルクリックすると)、 tgif はそのオブジェクトの (デフォ ル ト では) launch という名前の属性を探します。そのような属性 が見つかれば、その属性の値の部分を実行する sh(1) コマン ド と 見 な します。上の「テレポート/ハイパージャンプ」のセク ションで説明したのと同じ色のルールが適用されます。そのコマ ン ド が文字 ’&’ で終わっていれば、 tgif はそれ自身を fork し (そのときに実際に行われることは、コンパイル時にコンパイ ラ フラグ _BACKGROUND_DONT_FORK が定義されているかどうかに 依存します)、コマンドは子プロセスとして実行されます。そ う で ない場合は、このコマンドの実行には popen() が使用されま す (この場合、そのコマンドがハングアップすると、そのコマン ドを終了させる方法はないので、 tgif はそこから復帰できなく なります)。そのコマンドで、同じオブジェクトの他の属性の 値 を利用することもできます。その書式は $(attr) で、attr は、 他の属性の名前です。

例えば、man(1) 関数を実行した い 場 合、 箱 を 一 つ 書 い て、"title=tgif" の一行を入れ、他の文字行を "launch=xterm -rw -e man $(title)" のように入れ、これら 3 つのオブジェク トをキーボードコマンド ^a で全部選択し、キーボードコマンド #a でその箱に文字列を付属 (attach) させ、そして、その箱 ( ま たはその文字列) の上で <Shift> キーを押したままマウス中 ボタンをクリックすることで man(1) コマンドを実行させます。 よ り綺麗にしたければ、その箱を X11 ピクスマップのオブジェ クトで置き換え、 ´launch’ 属性は見えないようにし、 ´title’ 属性はセンタリングしてその名前をキーボードコマンド #m で見 えないようにできます。

セキュリティを考慮して、ハイパースペース モード で は、 デ フォルトでは外部アプリケーションの起動はできないようになっ ています ( こ れ は、Tgif.AllowLaunchInHyperSpace の X default 値 の 設定で変更できます)。もし ハイパースペース モードでコマンドの起動に出会った場合は、そのコマンドが表示 され、ユーザにそのコマンドを実行するかどうかを問い合わせま す。

内部コマンド

Tgif は、内部コマンドを実行する仕組みを提供しています。 あ る オブジェクトの上で、 <Shift> キーを押したままマウス中ボ タンをクリックする (またはそのオブジェクトの上でダブ ル ク リックする) と、 tgif はそのオブジェクトの exec という名前 (デフォルト) の属性を探し、そのような属性が見つ かっ た 場 合、属性の値の部分を実行する内部コマンドのリスト (セミコロ ン区切り) であると解釈します。上の「テレポート/ ハ イ パー ジャンプ」のセクションに書かれているのと同じ色の規則が適用 されます。コマンドは通常以下のような形式を取ります:

<cmd_name> ( <arg1>, <arg2>, ..., <argN> )

コマンドの引数は、文字列か数値です。文字列引数は二重引用符 で囲む必要があります。数値引数は、数値か "$(x)" の形式の文 字列で、ここで x は他の属性の名前です (この形式は置き換 え と して参照されます)。文字列引数にも置き換え形式を入れるこ とができます。ただし、置き換えは 1 段しか行われないこと に 注 意 してください (内部コマンドの集まりは、宣言言語ではな く、単なるスクリプト言語だと見るべきです)。

ある属性をある内部コマンドで参照する場合、その属性の名前は <obj_name>.<string> の形式とできます。ここで、<obj_name> は上の「オブジェクトの名前」のセクションで指定された形式で あ る必要があり、 <string> は英数字と下線 (’_’) の文字のみ が使用できます。属性名の最初の 2 文字が "!." である場 合、 属 性 名の残りの部分はファイル属性の名前を意味し、最初の 2 文字が "!*" である場合、残りの部分は現在選択されているオブ ジェクトの属性の名前を意味します (複数のオブジェクトが選択 されている場合、積み上げ順で最上位のオブジェクトが使用され ます)。

"//" で始まる行は、コメントとして扱われることに注意してく ださい。

以下の内部コマンドがサポートされています:

launch(<attr_name>)

<attr_name> で指定された属性の値を、実行する sh(1) コマンドと解釈します。詳細は、上の「外部アプリケー ションの起動」のセクションを参照してください。

exec(<attr_name>)

<attr_name> で指定された属性の値を、実行する内部コ マンドと解釈します。これはサブルーチン呼び出しと同 等です。内部コマンドは、その属性を含む最上位の状況 で実行されることに注意してください。

mktemp(<str>,<attr_name>)

こ の コマンドは、唯一つのファイル名を生成します。 <str> 引数は、例えば "/tmp/TgifXXXXXX" のような テ ンプレート文字列で、少なくとも 2 つの "/" が含まれ ている 必 要 が あ り ま す。 mktemp() の 結 果 は、<attr_name> で指定された属性の値として保存され ます。詳細は、C ライブラリ関数 mktemp(3C) のオンラ イ ンマニュアルを参照してください (tgif をコンパイ ラオプション -D_USE_TMPFILE を付 けてコンパイル し た場合は、代わりに tempnam(3S) が使用されます)。

create_file_using_simple_template(<template>,<output>,<str>,<attr_name>)

<template> で指定されたファイルに対して <str> に一 致する行を検索します。そのような行が見つかっ た 場 合、 その行を <attr_name> で指定された属性の値で置 き換えます。その結果は、<output> で指定された ファ イルに出力されます。

update_eps_child(<eps_file_name>)

これは、実行中のオブジェクトが合成オブジェクトであ る場合にのみ機能します。そのオブジェクトが取りこま れ た EPS (カプセル化 PostScript) オブジェクトを成 分に持つ場合、それは、<eps_file_name> で指定された EPS ファイルで置き換えられます。そのオブジェクトが EPS の部分オブジェクトを含んでいない場合、一 つ の EPS 部分オブジェクトが作成されます。

update_xbm_child(<xpm_file_name>)

これは、実行中のオブジェクトが合成オブジェクトであ る場合にのみ機能します。そのオブジェクトが取りこま れた XBM (X11 ビットマップ) オブジェクトを成分に持 つ場合、それは、<xbm_file_name> で指定され た XBM ファイルで置き換えられます。そのオブジェクトが XBM の部分オブジェクトを含んでいない場合、一つ の XBM 部 分 オ ブ ジェ ク ト が 作 成 さ れ ま す。 update_xpm_child(<xpm_file_name>) これは、実行中の オブジェクトが合成オブジェクトである場合にのみ機能 します。そのオブジェクトが取りこまれた XPM (X11 ピ ク ス マッ プ) オブジェクトを成分に持つ場合、それ は、<xpm_file_name> で指定された XPM ファイルで 置 き 換えられます。そのオブジェクトが XPM の部分オブ ジェクトを含んでいない場合、一つの XPM 部 分 オ ブ ジェクトが作成されます。

delete_eps_child(<obj_name>)

これは、<obj_name> という名前のオブジェクト が合成オブジェクトである場合にのみ機能し ま す。 そ の オ ブ ジェクトが EPS (カプセル化 PostScript) オブジェクトを成分に持つ場合 は それが削除され、そのオブジェクトが EPS の部 分オブジェクトを含んでいない場合は何も行 わ れません。

delete_xpm_child(<obj_name>)

これは、<obj_name> という名前のオブジェクト が合成オブジェクトである場合にのみ機能し ま す。 そのオブジェクトが XPM (X11 ピクスマッ プ) オブジェクトを成分に持つ場合はそれが 削 除 さ れ、そのオブジェクトが XPM の部分オブ ジェクトを含んでいない場合は何も行われま せ ん。

delete_xbm_child(<obj_name>)

これは、<obj_name> という名前のオブジェクト が合成オブジェクトである場合にのみ機能し ま す。 そのオブジェクトが XBM (X11 ビットマッ プ) オブジェクトを成分に持つ場合はそれが 削 除 さ れ、そのオブジェクトが XBM の部分オブ ジェクトを含んでいない場合は何も行われま せ ん。

flip_deck(<times>,<frames_per_second>,<style>)

こ れは、実行中のオブジェクトが合成オブジェ クトで、かつその合成オブジェクトのすべて の 部 分 オブジェクトが X11 ビットマップか X11 ピクスマップオブジェクトで、同じ位置、同 じ サ イ ズ を持っている場合にのみ機能します。 <times> 引数には、その画像の束をめくる回 数 を指定し、これは数値または文字列 "infinite" (無限) のいずれかです。 <frames_per_second> 引 数は、1 から 60 までの数値である必要があ ります。 <style> 引数は、"linear" ま た は "ping_pong" のいずれかです。このコマンドの 実行中は、マウスボタンクリックやキーク リッ ク に よ るコマンドの実行はすべて中止されま す。

read_file_into_attr(<file_name>,<attr_name>)

このコマンドは、ファイルを属性に読みこみ ま す。 <file_name> 引数は、例えば "/tmp/foo" のようなファイル名を意味します。ファイル の 内 容が、<attr_name> で指定した属性の値とし て読み込まれます。そのファイルが読み込み 用 と して開けなかった場合は、その属性値は空文 字列がセットされます。

write_attr_into_file(<attr_name>,<file_name>)

このコマンドは、属性の値をファイルに書き 出 し ま す。 <file_name> 引 数 は、 例えば "/tmp/foo" のようなファイル名を意味します。 <attr_name> で 指 定 し た 属 性 の 値 を <file_name> に書き出します。

append_attr_into_file(<attr_name>,<file_name>)

このコマンドは、属性の値をファイルに追加 し ま す。 <file_name> 引 数 は、 例 え ば "/tmp/foo" のようなファイル名を意味します。 <attr_name> で 指 定 し た 属 性 の 値 を <file_name> に追加します。

select_obj_by_name(<obj_name>)

このコマンドは、 選 択 ハ ン ド ル な し に <obj_name> という名前のオブジェクトを選択し ます。オブジェクト名の指定方法について は、 上 の「オブジェクトの名前」のセクションを参 照してください。

select_top_obj()

このコマンドは、選択ハンドルなしに最上位 の オ ブジェクトを選択します。現在のページにオ ブジェクトが一つもなければ、このコマンド は 失敗します。

delete_selected_obj()

こ のコマンドは選択されたすべてのオブジェク トを削除します。オブジェクトが一つも選択 さ れていなければ、このコマンドは失敗します。

unselect_all_obj()

こ のコマンドは、選択されているすべてのオブ ジェ ク ト の 選 択 を 解 除 し ま す。 select_obj_by_name() を使う場合は、最後にこ のコマンドを使わなければいけません。

move_selected_obj_relative(<dx>,<dy>)

このコマンドは、選択されたオブジェクト を、 x 方向に絶対的な単位で <dx>、y 方向に絶対的 な単位で <dy> だけ移動します。

repeat(<cmd_attr_name>,<times>)

このコマンドは <cmd_attr_name> 属性内の内部 コマンドを <times> 回実行します。

hyperjump(<attr_name>)

こ の コ マンドは、<attr_name> 属性内にある ファイル名か URL 名に瞬間移動 (テレポー ト) します。

make_cgi_query(<dest_attr_name>,<url_name>,<list_attr_name>)

こ の コマンドは、<dest_attr_name> 属性内に Common Gateway Interface (CGI) 形式 の URL を作成します。 <url_name> は CGI サーバスク リプトの名前で、 <list_attr_name> は、そ の 値 がコンマ区切りの属性名の一覧であるような 属性の名前です。例えば、あるオブジェクト が 以下の属性を持っているとき:

attr_list=last_name,first_name
last_name=Cheng
first_name=Bill
final_url=
exec=make_cgi_query(final_url,
http://bourbon.usc.edu:8001/cgi-bin/test-cgi,
attr_list)

このオブジェクトを実行すると、以下の文字列が final_url に作成されます:

http://bourbon.usc.edu:8001/cgi-bin/test-cgi?last_name=Cheng&first_name=Bill

対応する CGI サーバスクリプト "test-cgi" を last_name と first_name の引数付きで実行する ために、これに続いて hyperjump(final_url) を 呼び出すことができます。

CGI スクリプトに関する詳細については、[2] を 参照してください。

wait_click(<cursor_name>,<grab>,<attr_name>)

このコマンドは、<cursor_name> カーソルを 表 示 し、ユーザがマウスボタンをクリックするの を待ちます。 <cursor_name> が文字列 NULL ( 大 文 字 と小文字は区別する) である場合は、 カーソルは変わりません。 <Btn1> がクリッ ク さ れ た 場 合、 コ マ ン ドは終了し、 1 が <attr_name> に置かれます。 <Btn2> がク リッ ク された場合は 2 が <attr_name> に置かれ、 以下同様です。 <grab> が TRUE (大文字と小文 字 は 区別する) とセットされた場合は、 tgif がマウスカーソルのイベントを占有します。 有 効 な <cursor_name> は、<X11/cursorfont.h> にあります (接頭辞 XC_ を取り除く)。

sleep(<cursor_name>,<ms_interval>)

このコマンドは、<cursor_name> カーソルを 表 示し、 <ms_interval> ミリ秒間経過するのを待 ちます。 <cursor_name> が文字列 NULL (大 文 字 と小文字は区別する) の場合、カーソルは変 化しません。このコマンドは、任意のマウス ク リッ ク、 またはキー入力で中止 (そして終了) で き ま す。 有 効 な <cursor_name> は、<X11/cursorfont.h> にあります (接頭辞 XC_ を取り除く)。

begin_animate()

このコマンドは、(ダブルバッファを使った) ア ニ メー ショ ン列を始めるのに使われます。デ フォルトでは、tgif は undo/redo の準備を し て いることに注意してください。よって、長い アニメーション列に対しては、 undo/redo の記 録 が多くのメモリを使ってしまいます。そのよ うな場合、このコマンドの前に disable_undo() (以下に記述) を実行するべきです。

end_animate()

こ のコマンドは、アニメーション列を終了する のに使われます。

set_redraw(<true_or_false>)

このコマンドは、tgif が アニメーション モー ド (begin_animate() でオンになる) のとき に、 <true_or_false> が FALSE (大文字と小文 字 は区別する) であれば、一時的に再描画を不 許可にし ま す。 移 動 コ マ ン ド の 前 に shuffle_obj_to_top() ま た は shuffle_obj_to_bottom() コマンドが使われ て い れ ば、 set_redraw(FALSE) と set_redraw(TRUE) は、 shuffle_obj_to_top() や shuffle_obj_to_bottom() コマンドの、それ ぞれ直前、直後に使用するべきです。

set_selected_obj_color(<color_str>)

このコマンドは、選択されたオブジェクトの 色 を <color_str> に変更します。オブジェクトが 選択されていな い 場 合 は、 現 在 の 色 が <color_str> に変更されます。

set_selected_obj_fill(<fill_index>)

こ のコマンドは、選択されたオブジェクトの塗 り潰しパターンを <fill_index> のものに変 更 します。この <fill_index> は、0 (塗り潰しな し) から 31 までの数値でなければい け ま せ ん。 オブジェクトが選択されていない場合は、 現在の塗り潰しパターンが <fill_index> の も のに変更されます。

set_selected_obj_pen(<pen_index>)

こ のコマンドは、選択されたオブジェクトのペ ンを <pen_index> のもの に 変 更 し ま す。 <pen_index> は、0 (ペンなし) から 31 までの 数値でなければいけません。オブジェクトが 選 択 さ れ て い な い 場 合 は、現在のペンが <pen_index> のものに変更されます。

set_selected_obj_line_width(<width>,<arrow_w>,<arrow_h>)

このコマンドは、選択されたオブジェクトの 線 の 幅、 矢 先 の 幅、矢先の高さを、それぞれ <width>, <arrow_w>, <arrow_h> に変 更 し ま す。 <arrow_w> か <arrow_h> が -1 の場合 は、それぞれ矢先の幅、矢先の高さを変更し ま せ ん。 オ ブジェクトが選択されていない場合 は、現在の線幅の組が、 <width>, <arrow_w>, <arrow_h> に最も近い組のものに変更されます (この近さは、線幅の違いを矢先の幅、高さの違 いの 10 倍であると勘定して測ります)。

set_selected_obj_spline(<spline_type>)

こ のコマンドは、選択されたオブジェクトのス プラインの型を <spline_type> に変更し ま す が、 これは、straight, spline, interpolated のいずれかです。オブジェクトが選択されて い な い 場 合 は、 現 在 の ス プラインの型が <spline_type> に変更されます。

set_selected_obj_arrow(<arrow_type>)

このコマンドは、選択されたオブジェクトの 矢 の 型 を <arrow_type> に変更しますが、これ は、 none, right, left, double のいずれかで す。 オブジェクトが選択されていない場合は、 現在の矢の型が <arrow_type> に変更 さ れ ま す。

set_selected_obj_dash(<dash_index>)

こ のコマンドは、選択されたオブジェクトの破 線の型を <dash_index> のものに変更 し ま す が、これは 0 (実線) から 8 の間でなくてはい けません。オブジェクトが選択されていない 場 合 は、現在の破線の型が <dash_index> のもの に変更されます。

set_selected_obj_trans_pat(<trans_pat>)

このコマンドは、<trans_pat> が 0 の場合は、 選 択されたオブジェクトが不透明パターンを持 つように、 <trans_pat> が他の数値の場合は、 選 択されたオブジェクトが透明化パターンを持 つように変更します。オブジェクトが選択さ れ て い な い場合は、 <trans_pat> が 0 の場合 は、現在の塗り潰しパターン、ペンパターン が 不透明に、 <trans_pat> が他の数値の場合は、 それらが透明にされます。

set_selected_obj_rcb_radius(<rcb_radius>)

このコマンドは、選択されたオブジェクトの 丸 角 の 長 方 形 (rcbox) の 角の円の半径を <rdb_radius> に変更しますが、それは 4 以 上 で なければいけません。オブジェクトが選択さ れていない場合は、現在の丸角長方形の角の 円 の半径が <rcb_radius> に変更されます。

set_selected_text_vspace(<vspace>)

こ のコマンドは、選択されたオブジェクトの文 字列の縦方向の間隔を <vspace> に変 更 し ま す。 オブジェクトが選択されていない場合は、 現在の文字列の縦方向の間隔が <vspace> に 変 更されます。

set_selected_text_just(<justification>)

こ のコマンドは、選択されたオブジェクトの文 字列の位置合わせを <justification> に変更し ますが、それは left, center, right のいずれ かです。オブジェクトが選択されていない場 合 は、 現 在 の 文 字 列 の 位 置 合 わ せ が <justification> に変更されます。

set_selected_text_font(<ps_font_name>)

このコマンドは、選択されているオブジェク ト の フォ ントと文字スタイルを <ps_font_name> にマッチするものに変 更 し ま す。 有 効 な <ps_font_name> の例は、 Properties Menu か ら CopyProperties() を選択すれば見ること が できます。 text font の下にリストされている 項目が有効な <ps_font_name> です。オブ ジェ ク トが一つも選択されていない場合は、現在の フォントと文字スタイルが <ps_font_name> に マッ チするものに変更されます。マッチするも のが見つからなければ、このコマンドは失敗 し ます。

set_selected_text_style(<textstyle>)

こ のコマンドは、選択されているオブジェクト の文字スタイルを <textstyle> に変更します。 こ こで <textstyle> は、r (ローマン体), b ( ボールド体), i (イタリック体), bi (ボールド イ タリック体) のいずれかです。オブジェクト が一つも選択されていない場合は、現在の文 字 スタイルが <textstyle> に変更されます。

set_selected_text_size(<size>)

こ のコマンドは、選択されたオブジェクトの文 字サイズを <size> に変更します。 <size> が 部 分文字列 "pt" で終わっている場合、文字サ イズの代わりにポイントサイズが使用 さ れ ま す。 Size Menu にそのようなサイズが見つから ない場合、 Size Menu の最も近いサイズが使用 さ れます。オブジェクトが一つも選択されてい ない場合、現在の文字サイズが <size> かま た はそれに最も近いサイズに変更されます。

set_selected_text_underline(<underline>)

このコマンドは、<underline> が 0 の場合は、 選択されたオブジェクトの文字の下線 を 削 除 し、 <underline> がそれ以外の値の場合は、選 択されたオブジェクトの文字に下線を つ け ま す。 オブジェクトが一つも選択されていない場 合、現在の文字の下線がそれに応じて変更さ れ ます。

inc(<attr_name>,<expr>)

こ のコマンドは、<attr_name> を式 <expr> の 値だけ増やします。 <attr_name> と <expr> の 値 は、どちらも整数でなくてはいけません。式 に関する詳細については、「数式」のセク ショ ンを参照してください。

dec(<attr_name>,<expr>)

こ のコマンドは、<attr_name> を <expr> だけ 減らします。 <attr_name> と <expr> の値は、 どちらも整数でなくてはいけません。

shuffle_obj_to_top(<obj_name>)

このコマンドは、<obj_name> を一番上に移動し ます。 <obj_name> が部分オブジェク ト の 場 合、 これはその同等レベルのものに対して相対 的に一番上に引き上げられます。このコマン ド は アニメーションで有用で、選択したフレーム (部分オブジェクト) を一番上に出すことができ ます。

shuffle_obj_to_bottom(<obj_name>)

このコマンドは、<obj_name> を一番下に移動し ます。 <obj_name> が部分オブジェク ト の 場 合、 これはその同等レベルのものに対して相対 的に一番下に降ろされます。このコマンドは ア ニ メーションで有用で、選択したフレーム (部 分オブジェクト) を一番下に降ろすことがで き ます。

disable_undo()

こ のコマンドは、undo/redo の記録を真っさら にし、 undo を無 効 化 し ま す ( そ し て undo/redo の情報の記録を停止します)。元のヒ ストリの深さは、別に保存されます。このコ マ ン ドは長いアニメーション列の前に使用すべき です。

enable_undo()

このコマンドは、disable_undo() コマンドで別 に 保存されていてたヒストリの深さを復帰し、 undo/redo を有効化します。こ の コ マ ン ド は、disable_undo() を呼び出した後、それが不 要になった後に使用すべきです。

get_drawing_area(<ltx_attr>,<lty_attr>,<rbx_attr>,<rby_attr>)

このコマンドは、現在の描画領域の絶 対 座 標 を、指定された属性に保存します。 <ltx_attr> は左上角の X 座標を保存し、 <lty_attr> は左 上 角 の Y 座標を、 <rbx_attr> は右下角の X 座標、 <rby_attr> は右下角の Y 座標をそれぞ れ保存します。

get_selected_obj_bbox(<ltx_attr>,<lty_attr>,<rbx_attr>,<rby_attr>)

こ のコマンドは、選択されたオブジェクトのバ ウンディングボックスの絶対座標を、指定さ れ た 属性に保存します。 <ltx_attr> は左上角の X 座標を保存し、 <lty_attr> は左上角の Y 座 標 を、 <rbx_attr> は 右 下角の X 座標、 <rby_attr> は右下角の Y 座標をそれぞれ保 存 し ます。バウンディングボックスは、そのすべ ての線の幅が 0 であるとして計算されます。

get_named_obj_bbox(<obj_name>,<ltx_attr>,<lty_attr>,<rbx_attr>,<rby_attr>)

このコマンドは、<obj_name> の名前のオブジェ ク トのバウンディングボックスの絶対座標を、 指定された属性に保存します。 <ltx_attr> は 左上角の X 座標を保存し、 <lty_attr> は左上 角の Y 座標を、 <rbx_attr> は右下角の X 座 標、 <rby_attr> は右下角の Y 座標をそれぞれ 保存します。バウンディングボックスは、そ の す べ ての線の幅が 0 であるとして計算されま す。

move_selected_obj_absolute(<ltx>,<lty>)

このコマンドは、選択されたオブジェクトの 左 上角を (<ltx>,<lty>) へ移動します。

assign(<attr_name>,<expr>)

こ のコマンドは、<expr> を <attr_name> で指 定される属性へ割り当てます。 <expr> は、 数 値 と し て評価されるものでなければなりませ ん。

strcpy(<attr_name>,<string>)

このコマンドは、<string> を <attr_name> で 指定される属性へコピーします。

copy_string_to_cut_buffer(<string>)

このコマンドは、<string> をカットバッファに コピーします。

strcat(<attr_name>,<string>)

このコマンドは、<string> を <attr_name> で 指定される属性へ追加します。

while(<expr>,<cmd_attr_name>)

こ のコマンドは、<expr> が 0 と評価されるま で、 <cmd_attr_name> の内部コマンドを実行し 続けます。

if(<expr>,<then_cmd_attr_name>,<else_cmd_attr_name>)

<expr> が 0 と 評 価 さ れ れ ば、<else_cmd_attr_name> の内部コマンドを実 行 し、その他の場合は、<then_cmd_attr_name> の 内 部 コ マ ン ド を 実 行 し ま す。 <then_cmd_attr_name> や <else_cmd_attr_name> は文字列 NULL (大文 字 と 小文字は区別する) でもよく、その場合は対 応する動作は何も行われません。

get_current_file(<attr_name>)

このコマンドは、現在のファイルのフルパス 名 を <attr_name> に保存します。

get_current_export_file(<attr_name>)

こ のコマンドは、出力 (print/export) ファイ ルのフルパス名を <attr_name> に保存します。

get_current_dir(<attr_name>)

こ の コ マ ン ド は、 現在のディレクトリを <attr_name> に保存します。

getenv(<attr_name>,<env_var_name>)

このコマンドは、<env_var_name> の名前の環境 変数を <attr_name> に保存します。

strlen(<attr_name>,<string>)

こ の コ マ ンドは、<string> の文字の個数を <attr_name> に割り当てます。

substr(<attr_name>,<string>,<start_index>,<length>)

こ の コ マ ン ド は、 文 字 列 <string> の <start_index> 番目の文字から始まる <length> 個の文字を <attr_name> 内にコピーします。な お、<start_index> は、最初の文字を 0 番目と 考えます。

strstr(<attr_name>,<string>,<sub_string>)

こ のコマンドは、文字列 <string> 内に最初に 見つかる部分文字列 <sub_string> を 探 し、 <sub_string> と そ の 残 り の 文 字 列を <attr_name> にコピーします。

strrstr(<attr_name>,<string>,<sub_string>)

このコマンドは、文字列 <string> 内に最後 に 見 つ か る部分文字列 <sub_string> を探し、 <sub_string> と そ の 残 り の 文 字 列 を <attr_name> にコピーします。

unmake_selected_obj_iconic()

こ の コ マンドは、既に少なくとも一つのオブ ジェクトが選択されていなければいけない、 と い う 点 を 除 け ば、 Special Menu から UnMakeIconic() を選択するのと同じ効果を持ち ます。

hyperjump_then_exec(<attr_name>,<attr_name_to_exec>)

こ の コマンドは、属性 <attr_name> 内にある ファイル名、または URL 名に移動し、その新し いファイル内の属性 <attr_name_to_exec> で指 定される内部コマンドを実行します。

show_attr(<attr_name>)

このコマンドは、属性 <attr_name> を見えるよ うにします。

hide_attr(<attr_name>)

このコマンドは、属性 <attr_name> を見えない ようにします。

show_attr_name(<attr_name>)

このコマンドは、属性 <attr_name> の名前部分 をを見えるようにします。

hide_attr_name(<attr_name>)

このコマンドは、属性 <attr_name> の名前部分 をを見えないようにします。

show_value(<attr_value>)

このコ マ ン ド は、 名 前 が 空 で、 値 が <attr_value> であるような属性を見えるように します。

hide_value(<attr_value>)

このコ マ ン ド は、 名 前 が 空 で、 値 が <attr_value> であるような属性を見えないよう にします。

get_attr_bbox(<ltx_attr>,<lty_attr>,<rbx_attr>,<rby_attr>,<attr_name>)

このコマンドは、属性 <attr_name> のバ ウ ン ディ ングボックスの絶対座標を指定された属性 に保存します。 <ltx_attr> は左上角の X 座標 を保存し、 <lty_attr> は左上角の Y 座標を、 <rbx_attr> は右下角の X 座 標、 <rby_attr> は右下角の Y 座標をそれぞれ保存します。バウ ンディングボックスは、そのすべての線の幅 が 0 であるとして計算されます。

size_selected_obj_absolute(<abs_w>,<abs_h>)

の コマンドは、幅が <abs_w>、高さが <abs_h> になるように、選択されたオブジェクトの右 下 の角を伸ばします。

このコマンドは、幅が <abs_w>、高さが <abs_h> になる ように、

<obj_name> という名前のオブジェクトの右下の 角を伸ばします。

このコマンドは、タイトルが <title> で、メッセージが <msg> である

メッセージボックスを表示し ま す。 <style> は、"info", "ync", "yn", "stop" のいずれか の文字列です。このメッセージボッ ク ス は、 "info" か "stop" スタイルに対しては OK ボタ ンを表示し、 "ync" スタイ ル に 対 し て は YES/NO/CANCEL ボタンを、 "yn" スタイルに対 しては YES/NO ボタンを表示します。メッ セー ジ ボッ ク スでユーザがボタンをクリックする と、そのボタンの名前が <attr_name> に代入さ れます。ユーザが <ESC> キーを打ってメッセー ジボックスを キャ ン セ ル し た 場 合 は、 <attr_name> には文字列 "CANCEL" がセットさ れます。 <attr_name> が文字列 NULL (大文 字 小 文字は区別する) である場合は、どのボタン をクリックしたのかという情報はどこにも書 き 込まれません。 <title> が文字列 NULL である 場合は、 Tgif がメッセージボックスのタイ ト ルになります。

get_user_input(<attr_name>,<msg1>,<msg2>)

こ のコマンドは、1 行目に <msg1>、 2 行目に <msg2> を持つダイアログボックスを表示 し ま す。 <msg2> が文字列 "USE_CURRENT_DIR" であ る場合、 2 行目には現在のディレクトリを表示 し ます。ユーザは、ダイアログボックス内の行 に入力できますが、それは <attr_name> に保存 されます。ユーザが <ESC> キーを打ってダイア ログボックス を キャ ン セ ル し た 場 合、 <attr_name> には空文字列がセットされます。

このコマンドは、<attr_name>=<attr_value> を選択され たオブジェクトに追加し、

そ の 属性を (<abs_x>,<abs_y>) に置きます。 <attr_name> が文字列 NULL (大文字小文字は区 別 する) である場合、その属性の名前は空文字 列となります。 <abs_x> と <abs_y> の両方 が NULL (大文字小文字は区別する) である場合、 その属性は、オブジェクトの左下角の下に置 か れます。 <attr_name> が "!." で始まっている 場合は、ファイル属性 が追加されます。

delete_attr_from_selected_obj(<attr_name>)

このコマンドは、選択されたオブジェクトか ら <attr_name> という名前の属性を削除します。 <attr_name> が "!." で始まっている場合 は、 ファイル属性 が削除されます。

user_end_an_edge(<attr_name>,<abs_x>,<abs_y>)

こ の コマンドは、折れ線/開スプライン曲線を (<abs_x>,<abs_y>) から開始し、描画モード を 折れ線/開スプライン曲線の描画に変え、ユーザ にその折れ線/開スプライン曲線を終わらせるよ うにします。その終わりの点が type=port とい う属性を持つオブジェクト内 に あ る 場 合、 <attr_name> が文字列 NULL (大文字小文字は区 別する) でなければ、そのオブジェク ト 名 が <attr_name> と いう名前の属性に代入されま す。

user_draw_an_edge(<start_attr_name>,<end_attr_name>)

このコマンドは、描画モードを折れ線/開スプラ イン曲線の描画に変え、ユーザに折れ線/開スプ ライン曲線を描かせま す。 そ の 開 始 点 が type=port という属性を持つオブジェクト内に ある場合、 <start_attr_name> が文字列 NULL (大文字小文字は区別する) でなければ、そのオ ブジェクト名が <start_attr_name> という名前 の属性に代入されます。終了点が type=port と いう属性を持つオブジェクト内にあ る 場 合、 <end_attr_name> が文字列 NULL (大文字小文字 は区別する) でなければ、そのオブジェクト 名 が <end_attr_name> という名前の属性に代入さ れます。

get_a_poly_vertex_absolute(<x_attr_name>,<y_attr_name>,<obj_name>,<index>)

このコマンドは、<obj_name> の <index> 番 目 の 頂 点 の 絶 対 座標を、 <x_attr_name> と <y_attr_name> で指定された属性に保 存 し ま す。 <obj_name> で指定されたオブジェクト は、折れ線/開スプライン曲線か、多角形/閉 ス プ ライン曲線のどちらかのオブジェクトでなけ れ ばいけません。

move_a_poly_vertex_absolute(<obj_name>,<index>,<abs_x>,<abs_y>)

このコマンドは、<obj_name> の <index> 番 目 の頂点を、絶対座標 (<abs_x>,<abs_y>) へ移動 します。 <obj_name> で指定されたオブジェ ク ト は、折れ線/開スプライン曲線か、多角形/閉 スプライン曲線のどちらかのオブジェクトで な ければいけません。

post_attr_and_get_cgi_result(<url_attr>,<query_attr>,<result_attr>)

こ の コ マ ンドは、POST メソッドを使用した HTTP リクエストを生成し ま す。 <url_attr> は、URL (通常は CGI サーバスクリプトの名前) を含む 属 性 の 名 前 で す。 <query_attr> は、POST されるデータを値とする属性の名前 で、 <result_attr> は、その結果を受けとる属 性 の名前です。例えば、オブジェクトが以下の ような属性を持つ場合:

url=http://bourbon.usc.edu:8001/cgi-bin/echo-post
query=Hello World!
result=
exec=post_attr_and_get_cgi_result(url,query,result)

このオブジェクトを実行すると、指定された CGI ス クリプトに "Hello World!" が POST されま す。この場合、そのスクリプトの実 行 の 結 果 は、"Hello World!" をエコーバックするだけで す (他の書式情報と一緒に)。

navigate_back()

このコマンドは、NavigateBack() が Navigate Menu から選択した場合と全く同じ動作を実行し ます。

stop()

このコマンドは、すべての内部コマ ン ドの実行を停止します。

sqrt(<attr_name>,<expr>)

こ の コ マ ン ド は <expr> の 平 方根を <attr_name> に保存します。 <expr> は負で な い 数 値 と評価されるものでなければいけませ ん。

random(<attr_name>)

このコマンドは、C ライブラリ関数 rand() を 使って生成される整数乱数を <attr_name> に保 存します。乱数生成器の種には 0 が使用されま す。

srand48(<use_cur_time_as_seed>)

こ のコマンドは、C ライブラリ関数 drand48() を使 う 乱 数 生 成 器 の 種 を 設 定 し ま す。<use_cur_time_as_seed> が 0 の場合は、 種として 0 を使い、その他の場合は現在時刻を 種として使います。

drand48(<attr_name>)

こ のコマンドは、C ライブラリ関数 drand48() を使って生成される 0.0 から 1.0 の間の浮 動 小数実数を <attr_name> に保存します。

round(<attr_name>,<expr>)

こ の コ マ ン ド は、<expr> の 丸 め値を <attr_name> に保存します。

redraw_obj(<obj_name>)

このコマンドは、<obj_name> が占有する領域を 再描画します。

redraw_drawing_area()

このコマンドは、(Canvas Window を通して見え る) 描画領域全体を再描画します。

itox(<attr_name>,<digits>,<expr>)

このコマンドは、<expr> の 16 進 数 値 を <attr_name> に保存します。 <digits> は 1 以 上 8 以下の値で、これは 16 進数値の最終的な 桁 幅を意味します (左側の空いたところには 0 が埋められます)。

for_i(<attr_name>,<min_val>,<max_val>,<increment>,<cmd_attr_name>)

このコマンドは、以下のコマンド列と同じです:

assign(<attr_name>,<min_val>);
while($(<attr_name>) <= <max_val>,loop)

ここで loop は以下の値です:

exec(<cmd_attr_name>);
inc(<attr_name>,<increment>)

<min_val>, <max_val>, <increment> は、このコ マンドが実行される前に一度だけ評価されること に注意してください。

set_file_not_modified()

このコマンドは、ファイルの更 新 フ ラ グ を false にします。

new_id(<attr_name>)

こ のコマンドは、現在の描画の中で一意的なオ ブジェクト ID を生成し、 <attr_name> に保存 します。

rotate_selected_obj(<angle>)

こ の コ マ ン ドは、選択したオブジェクトを <angle> 度だけ回転します。その際、正の角 は 時計回りを意味します。

call_simple_shortcut(<shortcut_name>)

こ のコマンドは、<shortcut_name> という名前 の、引数を取らないショートカットを呼び出 し ま す。 ショー ト カッ トの詳細については、 「ショートカット」のセクションを参照して く ださい。

call_one_arg_shortcut(<shortcut_name>,<arg>)

こ のコマンドは、<shortcut_name> という名前 の、一つの引数を取るショートカットを呼び 出 し、 そ れに引数 <arg> を渡します。ショート カットの詳細については、「ショートカッ ト」 のセクションを参照してください。

substitute_attr(<attr_name>,<src_attr_name>,<replace_attr_name>,<pattern_str>)

こ のコマンドは、<src_attr_name> で指定され る属性の値部分 の 中 に 現 れ る パ ター ン <pattern_str> を文字列 <replace_attr_name> で置き換え、その結果を <attr_name> で指定し た属性に書き出します。

get_file_size(<attr_name>,<file_name>)

こ のコマンドは、<file_name> で指定したファ イルのサイズを、 <attr_name> で指定した属性 に出力します。

is_file(<attr_name>,<file_name>)

こ のコマンドは、<file_name> で指定したファ イルが存在する場合に "1" を、その他の場合に は "0" を、<attr_name> で指定した属性に出力 します。

index(<attr_name>,<string>,<sub_string>)

このコマンドは、部分文字列 <sub_string> が 文 字列 <string> の中に最初に現れるところを 探し、その 0 ベースでの イ ン デッ ク ス を <attr_name> にコピーします。

rindex(<attr_name>,<string>,<sub_string>)

こ のコマンドは、部分文字列 <sub_string> が 文字列 <string> の中に最後に現れるところ を 探 し、 そ の 0 ベースでのインデックスを <attr_name> にコピーします。

get_number_of_lines_in_attr(<result_attr>,<attr_name>)

このコマンドは、<attr_name> で指定した属 性 の行数をカウントしその値を <result_attr> に 書き出します。

get_line_in_attr(<result_attr>,<attr_name>,<line_number>)

このコマンドは、<attr_name> で指定した属 性 の n 番目の行を <result_attr> にコピーしま す。ここで n は、 <line_number> で指定さ れ る 0 ベースの行番号です。

trim(<attr_name>)

こ のコマンドは、<attr_name> で指定される属 性から、先頭、および最後についている空白 を 削除します。

is_attr(<result_attr>,<attr_name>)

こ のコマンドは、<attr_name> で指定した属性 が存在する場合は "1" を、そうでなければ "0" を、<result_attr> に書き出します。

find_obj_names(<result_attr>,<obj_name>,<attr_name_value>)

こ の コマンドは、<obj_name> で指定したオブ ジェクトの直接の部分オブジェクトすべてを 検 索し、その名前を <result_attr> を書き出しま す。 <obj_name> が空文字列の場合、すべて の トップレベルのオブジェクトを検索します。

<attr_name_value> はそのオブジェクトに対する フィルタを指定します。 <attr_name_value> が 空文字列の場合、適するすべてのオブジェクトが 選 択 さ れ ま す。 <attr_name_value> が "<string>=*" の形式の場合は、 <string> とい う名前の属性を持つオブジェクトが選択さ れ ま す。 <attr_name_value> が "<string>=<value>" の形式の場合は、 <string> という名前で、値が <value> であるような属性を持っているオブジェ クトが選択されます。 <attr_name_value> に 文 字 ’=’ が含まれていない場合、名前が空で、値 が <attr_name_value> に一致するような属性 を 持っているオブジェクトが選択されます。

n 個 の オ ブ ジェ ク ト が 一致した場合、 <result_attr> で指定した属性は n+1 行にな り ます。その 0 行目は n で、<result_attr> の 1 行目から n 行目まではそのオブジェクト名と な ります。そのオブジェクト名を取り出すのには、 内部コマンド get_line_in_attr() が使えます。

tokenize(<result_attr>,<string>,<separator>)

このコマンドは、<string> を、<separator> 文 字で分離されているトークンに切り分け、そ の トー クンを (上の find_obj_names コマンドと 同じやり方で) <result_attr> に書き 出 し ま す。 <separator> は長さ 1 の文字列でなけれ ばいけませんし、スペース、単一引用符、二 重 引 用符のいずれかであってはいけません。トー クンがその分離文字を含む場合は、そのトー ク ン を単一引用符、あるいは二重引用符の組で囲 むことができますが、その場合このコマンド の 実 行 時 にその引用符は自動的に取り除かれま す。

n 個 の トー ク ン が 見 つ かっ た 場 合、 <result_attr> で指定した属性は n+1 行になり ます。その 0 行目は n で、<result_attr> の 1 行 目 か ら n 行目まではそのトークンとなりま す。そのトークンを取り出すのには、内部コマン ド get_line_in_attr() が使えます。

move_attr_relative(<attr_name>,<dx>,<dy>)

こ の コ マンドは、<attr_name> の名前の属性 を、 x 方向に絶対的な単位で <dx>、y 方向 に 絶対的な単位で <dy> だけ移動します。

get_number_of_vertices(<result_attr>,<obj_name>)

こ の コマンドは、<obj_name> で指定したオブ ジェクトの頂点の数を <result_attr> にコピー し ます。指定したオブジェクトは折れ線 (開ス プライン) か、多角形 (閉スプライン) でな け ればいけません。

is_obj_transformed(<result_attr>,<obj_name>)

こ の コマンドは、<obj_name> で指定したオブ ジェクトが変換されている (回転か斜行 変 形) 場 合 は "1"、 そ の 他 の 場 合 は "0" を <result_attr> に書き出します。

make_selected_obj_iconic(<sym_path>)

このコマ ン ド は、Special Menu か ら の MakeIconic() と同様に機能しますが、ユーザに そのアイコン名を問い合わせません。 代 わ り に、 そ の ア イ コ ン のフルパス名の指定に <sym_path> が使われます。

get_tgif_version(<major_attr,minor_attr,patchlevel_attr,build_attr>)

このコマンドは tgif のメジャーバージョン 番 号、 マイナーバージョン番号、パッチレベル、 コンパイル情報を、それ ぞ れ <major_attr>, <minor_attr>, <patchlevel_attr>, <build_attr> に書き出します。ある引数が文字 列 NULL (大文字小文字は区別する) の場合は、 その情報は跳ばされます。

get_tgif_dir(<result_attr>)

こ の コ マ ン ド は、"$HOME/.Tgif" を <result_attr> に 書 き 出しますが、ここで $HOME はユーザのホームディレクトリです。

get_profile_string(<result_attr>,<section>,<key>,<def_value>,<ini_path>)

このコマンドは、<ini_path> のフルパスで指定 し た ファイル内の <section> のセクションか ら、<key> で指定したキーに関連する値を取 得 し、それを <result_attr> で指定した属性に保 存します。指定したキーに関連する値がな かっ た 場合、 <def_value> が <result_attr> に保 存されま す。 <key> が 空 文 字 列 の 場 合、<ini_path> の <section> 内のすべての キー名を (上の find_obj_names コマンドと 同 じ やり方で) <result_attr> に書き出します。 <section> が空文字列の場合、<ini_path> のす べ て のセクション名を (上の find_obj_names コマンドと同じやり方で) <result_attr> に 書 き出します。

write_profile_string(<section>,<key>,<value>,<ini_path>)

このコマンドは、<ini_path> のフルパスで指定 したファイル内の <section> のセクショ ン の <key> で指定したキーに関連する値を <value> に設定します。<key> が空文 字 列 の 場 合、 <ini_path> の <section> 内のすべてのキーと 値の組がクリアされます。 <section> は空文字 列にしてはいけません。

select_additional_obj(<obj_name>)

こ のコマンドは、静かに (ハイライトハンドル なしで) <obj_name> という名前の追加オブジェ ク トを選択します。オブジェクト名の指定に関 しては、「オブジェクトの名前」のセクショ ン を参照してください。

open_file(<file_number>,<file_name>,<file_mode>)

こ の コ マンドは、<file_name> で指定される ファイルを、 <file_mode> で指定したモードで 開 き、 開 い た ファイルをファイル参照番号 <file_number> に 割 り 当 て ま す。 <file_number> は 0 か、3 から 15 までの数字 でなければなりません。ファイル 0 を開くと、 そ れは標準入力を巻き戻し (rewind) します。 モードは、読み込み用には "r"、書き込み用 に は "w"、追加書き込み用には "a" などを指定し ます。ファイルは、常にテキスト (非バイナリ) モードで開きます。

close_file(<file_number>)

こ の コ マ ン ド は、 ファ イ ル 参 照番号 <file_number> に対応するファイルを 閉 じ ま す。 <file_number> は 0 か、3 から 15 まで の数字でなければなりません。

read_file(<file_number>,<result_attr>)

このコ マ ン ド は、 ファ イ ル 参 照 番 号 <file_number> に対応するファイルから 1 行読 み込み、それを <result_attr> で指定した属性 に 保 存します。 <file_number> は 0 (標準入 力) か、3 から 15 までの数字でなければな り ません。

write_file(<file_number>,<string>)

こ の コ マ ン ド は、 ファ イ ル 参 照番号 <file_number> に対応するファイルに <string> を書き出します。 <file_number> は 1 から 15 までの数字でなければなりません。番号 1, 2 はそれぞれ標準出力、標準エラー出力用です。

flush_file(<file_number>)

こ の コ マ ン ド は、 ファ イ ル 参 照番号 <file_number> に対応するファイル を フ ラッ シュ します。 <file_number> は 1 から 15 ま での数字でなければなりません。番号 1, 2 は それぞれ標準出力、標準エラー出力用です。

append_file(<dest_file_name>,<src_file_name>)

こ のコマンドは、<src_file_name> で指定した ファイルを、 <dest_file_name> で指 定 し た ファイルに追加します。

set_output_format(<format>,<color_output>)

こ のコマンドは、出力形式を <format> にセッ トします。 <color_output> が 0 の場合は白黒 出 力 (印刷) モードが、そうでなければカラー 出力 (印刷) モードが使用されます。可能な 出 力 形式の一覧については、 Tgif.WhereToPrint の X default 値を参照してください。

set_export_clip_rect(<ltx>,<lty>,<rbx>,<rby>)

このコマンドは、よそに貼り付けるために切 り 出 す長方形を、左上の角が (<ltx>,<lty>)、右 下の角が (<rbx>,<rby>) であるような長方形領 域になるようにセットします。この <ltx> は真 に <rbx> 未満で、<lty> も真に <rby> 未満 で なければいけません。

import_file(<file_name>,<format>,<ltx>,<lty>)

こ のコマンドは、<file_name> で指定したファ イルを取り込み、 (<ltx>,<lty>) の場所に配置 します。ファイルは、<format> で指定した形式 のものであると見なし ま す が、 そ の 形 式 は、"XBM", "XPM", "GIF", "PNG", "JPEG", "PBM", "PGM", "PPM" か、 あ る い は Tgif.ImportFilter# の X default 値で指定し た名前が指定できます。 <format> が "TGIF" の 場 合 は、 そのファイルはいずれかの tgif ファイルでなくてはなりません。

set_xpm_output_version(<version_number>)

このコマンドは、 X11 ピクスマップの形式で出 力 す る と き に、 XPM のバージョン番号を <version_number> に 設 定 し ま す。 <version_number> は 1 か 3 の値を取ります。

edit_ini_section(<attr_name>,<title>,<section>,<ini_path>)

このコマンドは、<ini_path> で指定したフルパ ス の ファイル内の <section> で指定したセク ションを編集するダイアログボックスを作り ま す。 ユーザがダイアログボックスの OK ボタン を押すと、そのセクションはクリアされてダ イ ア ログボックスの内容がそのファイルに書き戻 され、そして <attr_name> で指定した属 性 に "OK" を代入します。ユーザがダイアログボック スの CANCEL ボタンを押した場合は、ファイ ル は 変更されず、<attr_name> で指定した属性に は "CANCEL" が代入されます。

select_from_ini_section(<attr_name>,<title>,<section>,<ini_path>)

このコマンドは、<ini_path> で指定したフルパ ス の ファイル内の <section> で指定したセク ションから一つの項目を選択する一覧を作り ま す。 何も選択しなければ、<attr_name> で指定 した属性はクリアされますが、そうで な け れ ば、選択されたエントリを <attr_name> で指定 した属性に書き出します。

append_line_into_attr(<attr_name>,<string>)

このコマンドは、<attr_name> で指定した属 性 に、 <string> で指定した行を追加します。

insert_line_into_attr(<attr_name>,<string>,<line_number>)

こ のコマンドは、<attr_name> で指定した属性 の n 番目の行に、 <string> で指定した行を挿 入 します。ここで n は、 <line_number> で指 定する 0 ベースの行番号です。 n は 1 以上で な ければいけません。n が属性内の行数よりも 大きい場合は、自動的に空行が挿入されます。

clear_attr(<attr_name>)

このコマンドは、<attr_name> で指定した属 性 の 属性値をクリアしますが、属性が複数の行を 含んでいる場合は、他のすべての行は削除さ れ ます。

create_text_obj(<abs_x>,<abs_baseline_y>,<string>)

このコマンドは、<string> で指定した文字列を 持 つ テ キ ス ト オ ブ ジェ ク ト を (<abs_x>,<abs_baseline_y>) の場所に作成しま す。

create_box_obj(<abs_ltx>,<abs_lty>,<abs_rbx>,<abs_rby>)

こ の コ マンドは、(<abs_ltx>,<abs_lty>) と (<abs_rbx>,<abs_rby>) で定義される長方形 を 生成します。

create_corner_oval_obj(<abs_ltx>,<abs_lty>,<abs_rbx>,<abs_rby>)

こ の コ マンドは、(<abs_ltx>,<abs_lty>) と (<abs_rbx>,<abs_rby>) で定義される枠を持 つ 楕円 (corner oval) を生成します。

create_center_oval_obj(<abs_x>,<abs_y>,<radius>)

こ のコマンドは、(<abs_x>,<abs_y>) が中心、 半径が <radius> である楕円 (center oval) を 生成します。

create_edge_oval_obj(<abs_ltx>,<abs_lty>,<abs_rbx>,<abs_rby>)

こ の コ マンドは、(<abs_ltx>,<abs_lty>) と (<abs_rbx>,<abs_rby>) を端点とする直径を 持 つ円 (edge circle) を生成します。

create_rcbox_obj(<abs_ltx>,<abs_lty>,<abs_rbx>,<abs_rby>)

こ の コ マンドは、(<abs_ltx>,<abs_lty>) と (<abs_rbx>,<abs_rby>) で定義される角の丸 い 長方形を生成します。

create_arc_obj(<abs_x>,<abs_y>,<radius>,<dir>,<angle1>,<angle2>)

こ の コ マンドは、中心が (<abs_x>,<abs_y>) で、半径、方向、開始角、終了角がそ れ ぞ れ <radius>,<dir>,<angle1>,<angle2> である円弧 を 生 成 し ま す。 <radius>,<dir>,<angle1>,<angle2> は、Edit Menu の CreateObject サ ブ メ ニュー 上 で SpecifyAnArc() コマンドで指定するのと同じ方 法で指定します。 <dir> は "+" か "-" で、"+" は時計回りを意味します。 <angle1> と <angle2> の単位は度で、12 時の方向 を 0 度とします。

create_first_vertex(<abs_x>,<abs_y>)

このコマンドは、折れ線/開スプラインオブジェ ク ト を 生 成 す る た め に、 create_next_vertex(), create_poly_obj() コ マンドと 合 わ せ て 使 用 し ま す。 こ れ は、create_next_vertex(), create_polygon_obj() コマンドと合わせて使用 し、多角形/閉スプラインオブジェクトを生成す ることもできます。このコマンドは、折れ線/開 スプライン、あるいは多角形/閉スプラインオブ ジェクトの開始点を (<abs_x>,<abs_y>) に設定 します。

create_next_vertex(<abs_x>,<abs_y>)

このコマンドは、折れ線/開スプラインオブジェ ク ト を 生 成 す る た め に、 create_first_vertex(), create_poly_obj() コ マンドと 合 わ せ て 使 用 し ま す。 こ れ は、create_first_vertex(), create_polygon_obj() コマンドと合わせて使用 し、多角形/閉スプラインオブジェクトを生成す ることもできます。このコマンドは、折れ線/開 スプライン、あるいは多角形/閉スプラインオブ ジェクトの次の頂点を (<abs_x>,<abs_y>) に設 定します。

create_poly_obj()

このコマンドは、折れ線/開スプラインオブジェ クトを生成するために create_first_vertex(), create_next_vertex() と合わせて使用します。

create_polygon_obj()

このコマンドは、多角形/閉スプラインオブジェ クトを生成するために create_first_vertex(), create_next_vertex() と合わせて使用します。

start_create_group_obj()

こ のコマンドは、グループオブジェクトを生成 するために、 create_group_obj() と合わせ て 使 用します。このコマンドは、グループの開始 をマークします。

create_group_obj()

このコマンドは、グループオブジェクトを生 成 す るために、 start_create_group_obj() と合 わせて使用します。このコマンドは、 最 後 の start_create_group_obj() 呼び出し以後に生成 されたすべてのオブジェクトを一つのグルー プ オブジェクトにグループ化します。

set_allow_interrupt(<true_or_false>)

<true_or_false> が FALSE (大文字小文字は区 別) の場合、このコマンドは、tgif が内部コマ ン ドを実行しているときに、一時的にユーザに よる中断を無効化するのに使用します。中断 が 無 効化されているときにユーザによる中断を受 けとると、 そ れ は キュー に 保 存 さ れ、 <true_or_false> を TRUE (大文字小文字は区 別) にして再び set_allow_interrupt() を呼び だ したときに内部コマンドのその中断を実行し ます。

select_each_obj_and_exec(<attr_name_to_exec>)

このコマンドは、まず選択されているすべて の オ ブジェクトを非選択状態にします。次に現在 の描画中の各オブジェクトを選択状態に変 え、 <attr_name_to_exec> 属性で指定した内部コマ ンドを実行します。このコマンドが、あるオ ブ ジェ クト上でのマウスクリックの結果として実 行された場合は、実行用には現在のページの オ ブ ジェクトしか検索されませんが、このコマン ドをスクリプトファイルから実行した場合 は、 す べてのページのオブジェクトが実行用に検索 されます。

edit_attr_in_text_mode(<attr_name>)

このコマンドを実行すると、tgif はテキスト描 画モードに入り、 <attr_name> で指定した属性 を編集します。

set_file_unsavable()

このコマンドは、現在のファイルを保存でき な いようにするのに使用します。

pstoepsi(<target_eps_path>,<src_ps_path>,<scale>)

このコマンドは、<src_ps_path> の PostScript ファ イルのプレビュービットマップを生成し、 それを <src_ps_path> の前に追加し、その出力 を <target_eps_path> に 保 存 し ま す (<src_ps_path> は変更されません)。 <scale> に 許 さ れ る 値 は 1 か 2 のみです。 Tgif.ExternalPsToEpsi の X default 値 に true が 設 定 さ れていれば、このコマンド は、<scale> が 1 の場合には外部コマンドとし て 単 に "pstoepsi <src_ps_path> <target_eps_path>" を呼び出し、<scale> が 2 の 場 合 に は "pstoepsi -2x <src_ps_path> <target_eps_path>" を呼びだします。このコマ ン ドは、tgif が対話モード (非バッチモード) のときにのみ機能します。

objs_bbox_intersect(<obj1_name>,<obj2_name>,<result_attr>)

こ の コ マ ン ド は、 名 前 <obj1_name>, <obj2_name> のオブジェクトのバウンディング ボッ ク ス が 重 なっ て い る 場 合 に、 <result_attr> で指定した属性に "1" を、その 他の場合には "0" を設定します。

delete_all_attr_from_selected_objs()

このコマンドは、選択したオブジェクトから す べ ての属性を削除します。このコマンドは、コ マンドが外部ファイルから取られたときにの み 使用してください!

数式

内 部コマンドには、引数として数式を許すものがありま す。数式には、中置記法が使用されます。サポートさ れ ている演算子 (およびその優先度) は以下の通りです。

? 1

場合分け 3 項演算子, 例: <条件> ? <真の場 合> : <偽の場合> : 2

場合分け 3 項演算子, 例: <条件> ? <真の場 合> : <偽の場合> || 3

論理的 OR && 4

論理的 AND | 5

ビット毎の OR ^ 5

ビット毎の XOR & 5

ビット毎の AND == 6

等しい != 6

等しくない > 7

より大きい < 7

より小さい >= 7

以上 <= 7

以下 << 8

左シフト >> 8

右シフト + 9

足し算 - 9

引き算 * 10

かけ算 / 10

割り算 // 10

整数の割り算 % 10

余り ! 11

論理的 NOT ~ 11

ビット毎の反転/NOT ) 12

カッコ閉じ ( 13

カッコ

イメージマップファイルの生成

この節では、NCSA イメージマップと CERN クリッカブル イメージファイルを生成する方法について説明しま す。 Tgif.ImageMapFileFormat の X default 値は、 NCSA イ メージマップと CERN クリッカブルイメージファイル の どちらを生成するかを決定します。これらの 2 つの書式 はとても似ているので、ここでは NCSA イメージマッ プ ファ イルを生成する方法のみ説明します。 NCSA イメー ジマップに関するさらなる情報については、 [3] を参照 し てください。 CERN クリッカブルイメージに関するさ らなる情報については、 [4] を参照してください。

イメージマップの 生 成 を 有 効 に す る 場 合 は、 Tgif.GenerateImageMap の X default 値を ‘‘true’’ に セットすべきです。 GIF 形式で出力 (出力に関しては、 「基本的な機能」のセクションを参照) する場合は、XPM ファイル (この処理では最終的には削除されるが) が 最 初 に 生成されます。 (Tgif.InitExportPixelTrim の X default 値で指定される値が余分なピクセルを取り除 く の に使用されます。これらの値は、 tgif が画像全体が どれくらいの大きさであるのかを正確には把握 で き な い、という問題を修正するための抜け道を作ります。)

XPM 画 像 形 式 の バー ジョ ン は、 Tgif.UseXPmVersion1ForImageMap の X default 値 が ‘‘true’’ に 設 定 さ れ て い な け れ ば、 Tgif.XPmOutputVersion の X default 値で指定されたも の に な りますが、それが設定されていれば、強制的に XPM1 形式になります。その後、XPM ファ イ ル を GIF ファ イル (Generic Interchange Format) に変換するた めに、 Tgif.XpmToGif の X default 値で指定された コ マ ン ド が 実 行されます。 GIF ファイルは、NCSA の Mosaic(1) のようなソフトウェアで使用できます。 GIF ファ イ ル 用 の ファ イ ル の 拡 張 子 は、 Tgif.GifFileExtension の X default 値で指定します。 そ の GIF ファ イ ル と と も に、 Tgif.ImageMapFileExtension の X default 値で指定 さ れ る拡張子を持ったイメージマップファイルが生成され ます。イメージマップの内容は、以下のように作られ ま す。

tgif は最初に属性名 href の ファイル属性 を探しま す。その属性値は default URL として書き出されます。 そ のようなファイル属性が見つからなければ、イメージ マップの生成は失敗します。それが見つかっ た 場 合、 ファ イ ル 内のすべてのオブジェクトが検索されます。 href という名前の属性を持つオブジェクトに対しては、 その属性値がイメージマップの method 行に URL として 書き出されます。そのオブジェクトが円でも折れ線、 多 角 形 でもなければ、 rectangle メソッドが使用されま す。

同様の仕組みが、HTML 形式の出力 (print) 時にも使 用 さ れますが、一般的な HTML ファイルとともに、スパイ グラスのクライアントサイドイメージマップ形 式 の イ メージマップが生成される点が違います。 File Menu か ら SetHTMLExportTemplate() して出力する HTML のテン プ レートを指定すれば、カスタマイズされた HTML ファ イルを生成させることもできます。テンプレートファ イ ルの詳細については、以下に述べます。

HTML 出力テンプレート

HTML 出 力 テ ンプレートファイルを File Menu から SetHTMLExportTemplate() で指定すると、 HTML 形式 で の 出力時に、カスタマイズされた HTML ファイルを生成 できます。カスタマイズは、HTML 出力テンプレートファ イ ルに埋め込まれた変数を使用することで行われます。 これらの変数は、HTML 文字エンティティ表記を持ち、そ れ らはすべて "&tgv" で始まり、";" で終わります。以 下の通りです:

&tgvfilename;

この変数は、ファイルの名前 (拡張子は取り 除 く) に置き換えられます

&tgvcurnum;

こ の変数は、現在のページ番号に置き換えられ ます。

&tgvfirstnum;

この変数は、最初のページ番号 (通常は 1) に 置き換えられます。

&tgvlastnum;

こ の変数は、最後のページ番号に置き換えられ ます。

&tgvprevnum;

この変数は、前のページ番号 (巻き戻し あ り) に置き換えられます。

&tgvprevnumnowrap;

こ の 変数は、前のページ番号 (巻き戻しなし) に置き換えられます。

&tgvnextnum;

この変数は、次のページ番号 (巻き戻し あ り) に置き換えられます。

&tgvnextnumnowrap;

こ の 変数は、次のページ番号 (巻き戻しなし) に置き換えられます。

&tgvtitle;

この変数は、そのページ、またはファイルの タ イトリに置き換えられます。

&tgvmapobjs;

こ の変数は、クライアントサイドイメージマッ プのオブジェクト (<AREA> タブで指定され た) に置き換えられます。

例 えば、テンプレートの指定が以下のようであるとする と:

<IMG SRC="&tgvfilename;-&tgvcurnum;.gif"

USEMAP="#p0">

<MAP NAME="p0">
&tgvmapobjs;
<AREA SHAPE="RECT"

COORDS="0,0,&tgvmapwidth;,&tgvmapheight;"

HREF="&tgvfilename;-&tgvnextnum;.html">

</MAP>

PrintOneFilePerPage() でこのテンプレートを出力す る と、 以下のようなものになります (5 ページのファイル "foo.obj" の 2 ページ目に対して):

<IMG SRC="foo-2.gif"

USEMAP="#p0">

<MAP NAME="p0">
<AREA SHAPE="RECT" ...>
...
<AREA SHAPE="RECT" ...>
<AREA SHAPE="RECT"

COORDS="0,0,145,97"

HREF="foo-3.html">

</MAP>

マイクロソフトウィンドウズ用の EPSI ファイルの作成

Microsoft Windows (TM) のアプリケー ショ ン に は、 PostScript の標準的な %%BeginPreview, %%EndImage, %%EndPreview のコメントを認識しないものがあります。 こ の セ ク ションでは、それらが認識するような EPSI ファイルをどのように作成するかについて説明しま す。 この機能は、現在の出力 (print) 形式が TiffEPSI であ る場合に呼びだされます。この場合生成 さ れ る EPSI ファイルは、ファイルの先頭に 30 byte のバイナリ情報 を持ち、ファイルの末尾に一つの TIFF 画像 (これも バ イ ナ リ) を 持 ち ま す。 こ の ファ イ ル は、 %%BeginPreview, %%EndImage, %%EndPreview コメントも 持 ちません。この形式のファイルは、ウィンドウズ以外 では普通は PostScript ファイルとは見なされません。

この機能が有効である場合、 tgif は最初に普通の EPSI ファイルを生成し、その後に X11 ビットマップファイル としてそのファイルの現在の内容をダ ン プ し ま す。 Tgif.XbmToTiff で指定されたコマンドが TIFF 画像を作 成するのに使用され、その画像がその EPSI ファイル の 末尾に追加されます。

オブジェクトのロック

キー ボー ド コマンド #<, #> を使ってオブジェクトを ロック、アンロックすることが可能です。選択された オ ブ ジェクトをロックすると、それには灰色のハンドルが ついて表示されます。ロックされたオブジェクトは、 移 動、 伸縮、反転、回転できませんが、塗り潰しパターン や、幅などの性質は変更できますし、そのオブジェク ト を 削除することもできます。ロックされたオブジェクト が他のオブジェクトとグループ化されている場合、そ の 結 果のグループオブジェクトもロックされます。ロック されたオブジェクトは、他のオブジェクトを整列させ る と きの基準 (アンカー) として使えますが、いずれかの オブジェクトがロックされていれ ば DistributeObjs() コ マンドは使用できません。ロックされたオブジェクト は、頂点選択モードのどんな操作もそれには加わりま せ ん。

アンドゥ / リドゥ (undo/redo)

ほ と んどの操作は、アンドゥ (undo) とリドゥ (redo) ができます。 Tgif.HistoryDepth の X default 値 は undo バッファのサイズを制御します。それが -1 に設定 されると、undo バッファのサイズは無限大となります。 undo バッファは、 (File Menu から) New () か Open() コマンドが実行されたとき、または Edit Menu か ら FlushUndoBuffer() コ マンドが実行されたとき、.sym ファイルから Pop() が実行されたときにフラッシュされ ま す。プライベートカラーマップを使用している場合 ( これはデフォルトカラーマップで新しい色を割り当て る こ と が で きなくなった場合に自動的に行われます)、 FlushUndoBuffer() を実行するとカラーマップをリ セッ ト し よ う と し ま す ( コ ン パ イ ルオプション -DDONT_FREE_COLORMAP が使われていない場合)。

ドメイン

ドメイン は、例示に適したライブラリシンボルの集合で す。 一つのライブラリは、複数の .sym ファイルを持つ 一つのディレクトリとして実装されますので、よって ド メ インはサーチパスとして実装されることになります。 そのサーチパスに、同じファイル名のシンボルがそれ ぞ れ 異なるディレクトリ内にある場合、ユーザの例示には サーチパスの最初のものの方が有効であるとされます。

ドメインの数は、MaxDomains の X default 値 で 指 定 し、ドメインの名前は、DomainPath# の X default 値で 指定します。ライブラリのサーチパスは、csh の環境 変 数 で 指 定します。詳しくは、「X DEFAULT 値」のセク ションを参照してください。

Tgif.DomainInIni を true にセットし、 File Menu の Domain サブメニューから Reload Domain Info From X を選択することで、ドメ イ ン の 情 報 を ファ イ ル ~/.Tgif/domain.ini から読み出すこともできます。

ポップアップウィンドウからの名前の選択

ファ イル名、シンボル名、またはドメイン名を選択した とき、 tgif はユーザにそこから選んでもらうような 適 当 な名前のウィンドウをポップアップします。ユーザは エントリを選択するのにマウスクリックを使うことが で き ます。必要とする名前の選択にキーストロークを使う こともできますが、 tgif はキーストロークを名前に 直 ち にマッチさせようとします。マッチするものが見つか らなかった場合は、そのキーストロークは無視 さ れ ま す。 ^n, ^j, 下矢印キーは選択を 1 エントリ分下に進 め、 ^p, ^k, 上矢印キーは選択を 1 エントリ分上に 進 め ます。 ^f, ^d, または <Control> を押したままの下 矢印キーは選択を 10 エントリ分下に、 ^b, ^u, または <Control> を押したままの上矢印キーは選択を 10 エン トリ分上に進めます。 ´$’ は最後のエントリを、’^’ は 最 初のエントリを選択します。 ^w, ^y はエントリの選 択を解除します。選択したエントリがディレクトリの 場 合 は、 <CR> を打つことでそのディレクトリに移動しま す。そうでなければ、<CR> を打つと選択の処理を 終 了 し、選択されたエントリが返されます。

ファ イルを開く、あるいは取り込むときのファイル名の 選択では、 ´/’ を打つとそれはルートディレクトリへ行 くこと、あるいは URL の指定であると解釈されます。こ の点で、キーストロークの自動的な マッ チ ン グ は、 <TAB> か <CR> を押すまでは一時的に無効化されます。 ファイル名前領域でマウス中ボタンのクリックするこ と でクリップボードからのペーストもできます。

index.obj.obj の自動的な追加 (バージョン 2.16 で導入された) は現在では行われてはおらず、URL は 決 して変更されません。

現 在の選択はポップアップウィンドウの天辺の近くに表 示されます。 BackSpace は、それがカレントディレクト リ を親ディレクトに移動し得るので、注意して使うべき です。

EPS ファイルの取り込み

カプセル化 PostScript (EPS) ファイルは、キーボー ド コ マ ン ド #( を使って取り込むことができます。 EPS ファイルが、プレビュービットマップ (pstoepsi という ツールで生成できます) を持つ場合、tgif はそれを表示 します (そのビッマップ/ピクスマップの表示を無効にす る に は、 Layout Menu の HideBit/Pixmap() が使えま す)。 EPS オブジェクトを .obj または .sym ファイ ル に 保 存 するとき、プレビュービッマップ、および EPS ファイルの PostScript の内容部分のどちらも保存さ れ て は い ま せ ん。ということは、(tgif から、または prtgif を使って) そのファイルを出力 (print) する と きに、その EPS ファイルが元々取り込まれた場所と同じ ところに現れてくれないといけないわけです。

追加フォント

Times, Courier, Helvetica, NewCentury, Symbol fonts 以 外に、 Tgif.AdditionalFonts X default 値を使って 追加フォントを指定できます。 (デフォルトのスク リー ン フォ ントも置き換えできます。詳細は、「X DEFAULT 値」のセクションの Tgif.HasAlternateDefaultFonts の 項 目 を 参照してください。) 各追加フォントには、各 フォントスタイル用の 4 つの部分が必要です ( ロー マ ン、 ボー ル ド、イタリック、ボールドイタリックの順 で)。その各部分は、3 つの文字列を持ち、最初の文字列 は フォントのファミリー、ウェイト、スラント、幅を指 定します (詳細は xfontsel(1) のオンラインマニュアル を参照。以下に述べる第 2 の形式もあります)。 2 番目 の文字列は、フォントのレジストリとエンコーディン グ を 指定します (再び xfontsel(1) を参照)。 (どのフォ ントが有効であるかを見るには xlsfonts(1) を使うこと ができ、そしてその出力から丁度今説明した 2 つの文字 列を取り出すことができます。) 3 番 目 の 文 字 列 は、PostScript フォント名の指定です。

例 え ば、PostScript の ZapfChancery-MediumItalic フォントによる表示用に X の Lucida フォントを使用し た い場合は、 Tgif.AdditionalFonts に以下のように設 定します:

Tgif.AdditionalFonts: \n\
lucida-medium-r-normal \n\
iso8859-1 \n\
ZapfChancery-MediumItalic \n\
\n\
lucida-demibold-r-normal \n\
iso8859-1 \n\
ZapfChancery-MediumItalic \n\
\n\
lucida-medium-i-normal \n\
iso8859-1 \n\
ZapfChancery-MediumItalic \n\
\n\
lucida-demibold-i-normal \n\
iso8859-1 \n\
ZapfChancery-MediumItalic

上記の例は、Lucida フォントの 4 つのフォントスタ イ ルをすべて ZapfChancery-MediumItalic フォントに割り 当てています (Symbol フォントの取り扱いも同様)。

最初の文字列は、文字列の一部に "%d" を持たせるこ と で同一に扱う第 2 の形式の指定も可能です。例えば、最 初の文字列として "lucidasans-%d" のようにしますが、 この場合、実際に使用される X のフォントは、指定文字 列の "%d" をフォントサイズに置き換えたものになり ま す。 エンコーディング文字列 (2 つ目の文字列) は無視 されます (が、与えなければいけません)。フォント名の 接 頭 辞 ( 「X DEFAULT 値」 の セ ク ショ ン の Tgif.FontNamePrefix の項目を参照) も無視されます。

国際文字に関する POSTSCRIPT 文字エンコーディング

ときどき、161 番から 255 番の文字コード (全体) の文 字 に 対 して、同じ PostScript フォントの異なるエン コーディングが必要になることがあります。これは 2 つ の 方 法 で 実 現 で き ま す。 そ の 一 つ は、Tgif.AdditionalDontReencode ( お よ び Tgif.DontReencode) を 使 う こ と で、 も う 一つ は、Tgif.PSFontNeedCharSubs を使うことです。両者 の 違 い は、Tgif.AdditionalDontReencode の 場合は、 PostScript フォントのエンコーディングはスキップされ る こ と で、 Tgif.PSFontNeedCharSubs の 場 合 は、PostScript フォントの文字には特定のエンコーディ ングを与えることが可能です。

ど ちらの場合でも、仮のフォント名 (場所の保持用) を 導入する必要があります例えば、

Tgif.AdditionalFonts: \n\
utopia-medium-r-normal \n\
adobe-fontspecific \n\
UtopiaTmp-Regular \n\
\n\
utopia-bold-r-normal \n\
adobe-fontspecific \n\
UtopiaTmp-Bold \n\
\n\
utopia-medium-i-normal \n\
adobe-fontspecific \n\
UtopiaTmp-Italic \n\
\n\
utopia-bold-i-normal \n\
adobe-fontspecific \n\
UtopiaTmp-BoldItalic
Tgif.PSFontAliases: \n\
UtopiaTmp-Regular=Utopia-Regular \n\
UtopiaTmp-Bold=Utopia-Bold \n\
UtopiaTmp-Italic=Utopia-Italic \n\
UtopiaTmp-BoldItalic=Utopia-BoldItalic

上の例では、4 つの仮の PostScript フォント名が作 ら れています (いずれも共通の接頭辞 "UtopiaTmp" がつい ています)。これらのフォントのエンコー ディ ン グ は adobe-fontspecific で、その使用される X11 フォント に従います。 Tgif.PSFontAliases は、仮の PostScript フォ ント名を、対応する実際の PostScript フォント名 に割り当てます。 (Tgif.PSFontAliases が失敗すると、 UtopiaTmp-Regular の よ うな存在しない PostScript フォント名が PostScript ファイルに現れることにな り ます。)

PostScript フォントのエンコーディングをスキップする には、 Tgif.AdditionalDontReencode X default 値が使 えます。例えば、以下のように指定すると:

Tgif.AdditionalDontReencode: UtopiaTmp

文 字 コー ド 161 か ら 255 の 文字 (全体) は ISO-Latin-1 文字名ではエンコードされ な く な り ま す。ISO-Latin-1 エンコードの文字名の一覧は、以下を 参照してください。
<URL:http://bourbon.usc.edu/tgif/faq/charencode.html#iso8859-1>.

特 定のエンコーディングの PostScript フォントの文字 を置き換え る に は、 Tgif.PSFontNeedCharSubs と Tgif.PSCharSubs_* の X default 値を使います。 (上の ような Tgif.AdditionalFonts と Tgif.PSFontAliases の設定も必要になります。) 以下はその例:

Tgif.PSFontNeedCharSubs: \n\
Utopia-Regular=Foo \n\
Utopia-Bold=Foo \n\
Utopia-Italic=Foo \n\
Utopia-BoldItalic=Foo
Tgif.PSCharSubs_Foo: \n\
exclamdown/Aogonek \n\
AE/Cacute \n\
ecircumflex/eogonek

上 の例では、Tgif.PSFontNeedCharSubs は、文字の置き 換えが必要な仮の PostScript フォント名の一覧と、 そ れ らに対応する TOKEN 名を指定しています。 TOKEN に 割り当てる仮の PostScript フォント名に対して、置 き 換 え が 行 わ れる文字は、 Tgif.PSCharSubs_TOKEN X default 値に指定されます。 Tgif.PSCharSubs_TOKEN の 書式は OLDCHARCODE/NEWCHARNAME の文字列のリストで、 ここで OLDCHARCODE は 10 進、または 8 進形式の文 字 コー ドであり、また NEWCHARNAME は、PostScript 文字 の名前でなければいけません。上の 例 で は、Foo が TOKEN 名 と し て使われています。実際の使用では、 TOKEN 名としては iso8895-2 のようなものがより適切で しょう。 10 進や 8 進コードが許されているので、以下 のものは上と同等です:

Tgif.PSFontNeedCharSubs: \n\
Utopia-Regular=iso8859-2 \n\
Utopia-Bold=iso8859-2 \n\
Utopia-Italic=iso8859-2 \n\
Utopia-BoldItalic=iso8859-2
Tgif.PSCharSubs_iso8859-2: \n\
161/Aogonek \n\
8#306/Cacute \n\
8#312/eogonek

置き換えは、161 から 255 の文字コード (全体) の文字 に対してのみ 起こることに注意してください。

より詳細な情報については、以下を参照してください。
<URL:http://bourbon.usc.edu/tgif/faq/charencode.html#charsubs>.

正方形の 2 バイトフォント

tgif のバージョン 4.0 より、2 バイトフォン ト が サ ポー トされています。ただし、すべての文字が同じ幅、 同じ高さである 2 バイトフォントのみサポートしていま す。 2 バイトフォントは、Tgif.SquareDoubleByteFonts X default 値で指定します。この X default 値の 書 式 は、 上の「追加フォント」のセクションに書かれている Tgif.AdditionalFonts X default 値のものと似ています が、ここでその違いを説明します。各 2 バイトフォント には、各フォントスタイル用の 4 つの部分が必要です ( ロー マン、ボールド、イタリック、ボールドイタリック の順で)。その各部分は、3 つの文字列を持ち、最初の文 字 列 はフォント名を指定します。この文字列には "%d" がその一部分として含まれていなければなりません。 実 際に使用される X のフォントは、指定文字列の "%d" を フォントサイズに置き換えたものになります。 2 番目の 文字列は、"*", "H", "V" のいずれかです。 "V" の場合 は、各文字は 90 度反時計回りに回転され、それ以外 の 場 合 は 文 字 は 回転されません。 3 番目の文字列に は、PostScript フォント名を指定します。

インプットメソッ ド (Tgif.DoubleByteInputMethod X default 値で指定される) を使うと、2 バイト文字列内 に英語 (1 バイト) を混在させることができます。そ の 英 語 部 分 文 字 列 に 使 わ れ る フォ ン ト は、 Tgif.DefaultSingleByteFont X default 値で指定 し ま す。

例 えば、PostScript の GB-Song-Regular フォントの表 示用に X の Song Ti フォント を 使 い た い 場 合、 Tgif.SquareDoubleByteFonts を以下のように指定しま す:

Tgif.DefaultSingleByteFont: Helvetica
Tgif.GBShowFontChar: 271372
Tgif.SquareDoubleByteFonts: \n\
-isas-song ti-*-*-*--%d-*-*-*-*-*-gb2312.1980-0 \n\
* \n\
GB-Song-Regular \n\
\n\
-isas-song ti-*-*-*--%d-*-*-*-*-*-gb2312.1980-0 \n\
* \n\
GB-Song-Regular \n\
\n\
-isas-song ti-*-*-*--%d-*-*-*-*-*-gb2312.1980-0 \n\
* \n\
GB-Song-Regular \n\
\n\
-isas-song ti-*-*-*--%d-*-*-*-*-*-gb2312.1980-0 \n\
* \n\
GB-Song-Regular

上の例では、Song Ti フォントはイタリックやボール ド のような書体を持たず、よってすべての 4 つの部分は同 じになっています。 Tgif.GBShowFontChar の X default 値 は、このフォントが選択されたときに Choice Window 内でこのフォントを表現するのに使われる 2 バイトの 8 進数文字を指定します。

以 下 は、PostScript の Ryumin-Light-EUC-H と Ryumin-Light-EUC-V フォントの表示用に、X JIS フォン トを使用する例:

Tgif.RyuminShowFontChar: 244242
Tgif.SquareDoubleByteFonts: \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
H \n\
Ryumin-Light-EUC-H \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
H \n\
Ryumin-Light-EUC-H \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
H \n\
Ryumin-Light-EUC-H \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
H \n\
Ryumin-Light-EUC-H \n\
\n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
V \n\
Ryumin-Light-EUC-V \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
V \n\
Ryumin-Light-EUC-V \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
V \n\
Ryumin-Light-EUC-V \n\
-jis-fixed-*-*-*--%d-*-*-*-*-*-jisx0208.1983-* \n\
V \n\
Ryumin-Light-EUC-V

複数ページの描画

一 つのオブジェクトファイルは複数のページを含むこと が可能です。複数ページの描画としては、積み 上 げ 型 (stacked) と タイル貼り (tiled) の 2 つのレイアウト モードがサポートされています。積み上げ型 のレイアウ ト モードでは、ページはそれぞれ積み上げられていると 見なされ、よって、一つのオブジェクトは一つのペー ジ にしか現れません。タイル貼り レイアウトモードでは、 ページは大きな論理的なページを形成するようにタイ ル 貼 りされていて、この場合は一つのオブジェクトは複数 の物理ページに同時に存在し得ます。この 2 つのモード の切り替えは、ごくまれなことと考えられるので、 undo できません。物理ページの境界にまたがるオブジェク ト が 存在する場合は、 tgif はタイル貼りレイアウトモー ドから積み上げ型レイアウトモードへの移行を許しま せ ん。 それは、そのオブジェクトがどちらの物理ページに 属するかを決定することができないからです。

ページ番号は、ページ番号オブジェクトを使用するこ と で サポートされています。ページ番号オブジェクトは、 !PAGE_NUM (大文字小文字は区別する) という名前の属性 と、 名 前 部分が見えない (属性の名前を隠すことは、 Special Menu の Attribute サブメ ニュー の 中 か ら Move/JustifyAttr() コマンドを使用することで行えま す) 属性からなる一つのオブジェクトです。その属性 値 は、 どんなページ番号を出力するかを決定します。その 属性値が部分文字列 !(STACKED_PAGE_NUM) を含むなら、 ペー ジレイアウトモードが 積み上げ型 の場合にはその 部分文字列のその部分はページ番号に置き換わ り ま す が、 ページレイアウトモードがタイル貼りであれば、そ の文字列はそのままの形で出力されます。その属性値 が 部 分文字列 !(STACKED_NUM_PAGES) を含むなら、ページ レイアウトモードが 積み上げ型 の場合にはその部分 文 字 列のその部分はページ数に置き換わります。その属性 値 が 部 分 文 字 列 !(TILED_PAGE_ROW)!(TILED_PAGE_COL) を含むなら、ページレイアウトモー ドが タイル貼り の場合にはその部分文字列のその部 分 は、 それぞれ物理ページの列番号、行番号に置き換わり ます。

特別な属性

tgif が認識する特別な属性がいくつか存在します。それ ら をこのセクションに記しますが、これらは大文字小文 字を区別します。

!PAGE_NUM=<page_number>

これは、複数ページ描画中のページ番号を指 定 し ます。詳細は、「複数ページの描画」のセク ションを参照してください。

auto_center_attr

属性名が空でその値が auto_center_attr で あ れ ば、オーナオブジェクトのすべての目に見え る属性が、自動的にオーナオブジェクトの外 枠 の 箱 に 対して相対的にセンタリクングされま す。目に見える属性が複数ある場合は、それ ら は 重なってしまいますので、実際にはあまり意 味がなくなります。この属性は、単純なフ ロー チャートの要素を作成するのに便利です。

unmakeiconic_on_instantiate

シ ンボルオブジェクトの属性が、空の属性名と unmakeiconic_on_instantiate という値を持 つ 場 合、シンボルが例示されているときは以下の コマンドが丁度例示されているアイコ ン オ ブ ジェ ク ト上で実行されます: 1) Special Menu のコマンド UnMakeIconic() を 実 行 し、 2) Arrange Menu のコマンド UnGroup() を実行 し、そして 3) テ キ ス ト オ ブ ジェ ク ト "unmakeiconic_on_instantiate" が削除されま す。この属性は、単純なフローチャートの部 分 を作成するのに便利です。

unmakeiconic_on_instantiate_delete_attrs

シ ン ボ ルオブジェクトの属性が空の属性名と unmakeiconic_on_instantiate_delete_attrs と い う値を持つ場合、シンボルが例示されている ときは、以下のコマンドが丁度例示されてい る ア イ コ ンオブジェクト上で実行されます: 1) Special Menu のコマンド UnMakeIconic() を実 行 し、 2) このオブジェクトのすべての属性を 削除し、 3) Arrange Menu の コ マ ン ド UnGroup() を実行します。この属性は、シンボ ルオブジェクト内に "useful" というオブ ジェ クトのグループを入れるのに便利です。

retracted_arrows

3 つ以上の頂点を持つ折れ線か開スプラインオ ブジェクトに対する属性の名前が空で、その 値 が retracted_arrows である場合は、そのスプ ラインオブジェクトの矢先が一つの頂点を 引っ こませます。

auto_retracted_arrows

こ れは、そのオブジェクトが一つだけ矢先を持 つ補間された開スプラインでなければいけな い こ とを除けば、上の retracted_arrows とほぼ 同じです。そのスプラインオブジェクトは、 強 制的に 3 つの頂点を持たされ、そしてそのスプ ラインオブジェクトの真ん中の頂点は、端の 点 が 移 動 したときに自動的に位置合わせされま す。

auto_exec=<internal_command>

そのようなファイルの属性が存在すれば、そ の ファ イルが開かれたときにその値が実行されま す (内部コマンド hyperjump_then_exec() の実 行の結果としてそのファイルが 開いた場合を除 いて)。

edit_attrs_in_context_menu=...

あ る オ ブ ジェ ク ト が edit_attrs_in_context_menu という名前の属性 を持っている場合、この属性の値 (改行で区 切 られた 2 行目から始まる) は、属性名として扱 われます。その名前の属性は、 Context Menu の Edit Attribute In Editor サブメニューに 置かれます。例えば、オブジェクトが以下の 属 性を持つ場合:

edit_attrs_in_context_menu=

x
y
z

w=greetings
x=hello
y=world
z=how are you
good-bye

Context Menu の Edit Attribute In Editor サ ブメニューは "x=hello", "y=world", "z=how are you" のみを表示します。

テーブル出力

Special Menu の Table サ ブ メ ニュー か ら ExportToTable() コマンドを選択すると、表計算ソフ ト で 容易に取り込める形式、あるいは次のセクションで記 述する MergeWithTable() コマンドで使用する 形 式 の ユー ザ指定出力ファイルに、選択されたオブジェクトの ある属性が書き出されます。出力ファイルは、文字列 か ら なるの列を含み、 2 つの列は一つの <TAB> 文字で区 切られています。出力ファイルの最初の行には列の名 前 があり、その他のすべての行には値があります。

書き出される属性の名前は、 TABLE_ATTRS という名前 ( ここではこれを !.TABLE_ATTRS と書きます) のファイル 属性 によって指定されます。ファイル属性 TABLE_ATTRS の値は、コ ン マ 区 切 り の 属 性 名 の 列 で す。 ExportToTable() コ マ ン ド を 実行すると、最初に !.TABLE_ATTRS によって指定された属性名が出力ファ イ ル に書き出されます。その後、!.TABLE_ATTRS で指定さ れるリスト内に洗われる属性のすべてが、各選択され て いるオブジェクトに対して出力ファイルに 1 行ずつ書き 出されます。あるオブジェクトが、指定にマッチする 属 性 を一つも持たない場合、それに対応する行は生成され ません。

テーブルによるマージ

Special Menu の Table サ ブ メ ニュー か ら MergeWithTable() コマンドを選択すると、選択されたオ ブジェクトは、テーブル (表データ) ファイル (前セ ク ショ ン で説明した出力ファイルと同じ書式のファイル) で、積み上げ型 ページレイアウトモードを持つ新しい複 ペー ジ 描画を生成するように マージ (PC では メール マージ としても知られている) します。

その選択されたオブジェクトは書式情報を含み、テー ブ ル ファイルの各データ行が複製されるようなテンプレー トとしても使われます。その複製の属性がテーブルの 列 の 名前にマッチする場合、その属性値は、テーブルファ イルの値にセットされます。その複製は、最初に水平 方 向に埋めていかれます。

テ ンプレートオブジェクトでは、8 つの属性を指定する 必要があります。それらはすべて大文字と小文字は区 別 さ れ ま す。そのうち、距離を測るものは、インチ単位 ("in")、センチメータ単位 ("cm")、またはピクセル単位 (単位指定なし) で指定できます。

PAPER_WIDTH

これは、紙の幅を指定します。

PAPER_HEIGHT

これは、紙の高さを指定します。

LEFT_MARGIN

これは、紙の左端からの距離を指定しま す。

TOP_MARGIN

これは、紙の上端からの距離を指定しま す。

H_PITCH

これは、複製の左端の間の距離を指定し ます。

V_PITCH

これは、複製の上端の間の距離を指定し ます。

NUM_COLS

これは、次の行に下がる前に、水平方向 にタイル貼りする複製の個数を指定しま す。

NUM_ROWS

これは、次のページに移動する前に、垂 直方向にタイル貼りする複製の個数を指 定します。

各 複製が生成され、テーブルファイルからのデータで埋 められ、そして配置された後、その exec という名前 の 属性が実行されます (EXEC_AFTER_MERGE という名前の属 性が指定されていない場合。指 定 さ れ て い れ ば、 EXEC_AFTER_MERGE 属性値の名前の属性が代わりに実行さ れます)。 EXEC_AFTER_MERGE 属性値の名前の属性がない 場 合は、何も実行されません。 (コマンドの実行に関す る詳細については、「内部コマンド」のセクションを 参 照 してください。) テーブルデータに関連する属性から 他の属性を構築するのに、 exec コマンドを使うこと が できます。

名 前が空で、値が文字列 USER_PLACEMENT であるような 属性は、ユーザに複製の場所を問い合わせます ( オ ブ ジェ ク ト 名は、そのオブジェクトが配置されたときに Status Window に表示されます)。この場合、8 つの配置 属性は無視されます。

名前が空で、値が文字列 STRIP_DOUBLE_QUOTES であるよ うな属性は、二重引用符で囲まれているデータフィー ル ドが取り除かれます。

MIME TYPES と MAILCAPS

ある URL が HTTP サーバ名である場合、その HTTP サー バはその URL で参照されるリモートファイルに沿ってそ の URL の Content-type を tgif に送ります。その Content-type は、ファイルのタイプ/サブタイプのよ う な 情報を持ち、さらに追加のフィールドを含む場合があ ります。ファイルが tgif ファイルでない場合は、そ の ファイルを見るのに以下の仕組みが利用されます。

最 初に、そのファイル用に外部ビューワが指定されてい るかどうかを見るために X default 値が検索されます。 詳 細 は、 下 の 「X DEFAULT 値」 のセクションの Tgif.@@@Viewer を参照してください。それが一つもマッ チしなければ、タイプ/サブタイプは MIME-types ファイ ルのエントリに対して検索し ま す。 デ フォ ル ト の MIME-types ファイルは、ユーザのホームディレクトリに ある .mime.types です。そのデフォルトの MIME-types ファ イ ル を 上書きする方法については、「X DEFAULT 値」のセクションの Tgif.MimeTypesFile を参照して く だ さい。 MIME-types ファイルの各行の最初のフィール ドは、タイプ/サブタイプの情報です。その MIME-types ファ イ ルのタイプ/サブタイプにマッチするものがあれ ば、それに従って MailCap ファイルが参照されます。

MailCap ファイルの各行は、各フィールドがセミコロ ン で分離されています。最初のフィールドはタイプ/サブタ イプを指定し、第 2 フィールドは、そのタイプ/サブ タ イプに一致するファイルを見るためのビューコマンド を 指定しています。 tgif に対しては、そのビューコマ ン ド は部分文字列 %s を一つ含む必要があり、これはその URL のローカルでのコピーファイルに置き換わりま す。 tgif では、追加フィールドとして %t%{} のみがサ ポートされていて、multipart の MIME-type はサポート されていません。リモートファイルのタイプ/サブタイプ 情報は、 MailCap ファイルに対して検索されます。マッ チ するものが見つかれば、対応するビューコマンドが実 行されます。マッチするものが見つからなくて、かつ そ の リ モー トファイルのタイプが application, audio, image, video のいずれかであれば、そのファイルが保存 さ れ、 外 部ビューワは起動されません。その他の場合 は、リモートファイルは純粋なテキストファイルであ る と 見なされ、 tgif はそのテキストを見るためにテキス トオブジェクトを作成します。

MailCap ファイルは、(それが定 義 さ れ て い れ ば) MAILCAP 環境変数で指定された (コロンで分離されて) ファイルです。 MAILCAP が定義されていなければ、ユー ザ のホームディレクトリの .mailcap ファイルが使用さ れます。

MIME は RFC1521 で指定 さ れ て い る Multipurpose Internet Mail Extensions で、 MAILCAP は RFC1524 で 指定されています。

組み上げオブジェクト ( シンボルファイル ) の作成

ここでは、階層的な 設 計 を 用 い て の 組 み 上 げ (building-block) オブジェクトの定義方法を、段階的に 紹介します。

1)

組 み 上 げ オ ブ ジェ ク ト の 表 現 (representation) 部分を描画し、そのすべてを 一緒にグループ化し、これをグループオブ ジェ クトと選択します。

2)

マウス中ボタンでメインメニューをポップ アップし、 ‘‘Special’’ を選択します。そして 次 の ポッ プ アッ プ メ ニュー か ら ‘‘MakeSymbolic’’ を選択します。すると選択さ れ たオブジェクトが一つのシンボルとなり、境 界が点線になります。

3)

個々の文字列を属性に入力し、そのシン ボ ルオブジェクトとそのシンボルに付属 (attach) させる文字列すべてを選択し、そのシンボル に 属性を付属させるために #a (Attach) を打ちま す。

4)

(このステップは必須ではありません。) 組 み 上げオブジェクトの定義部分を作成します。 例として、ファイル ‘‘flip-flop.sym’’ を見て ください。そのファイルを見るには、最初に ^i (Instantiate) を打って ‘‘flip-flop’’ を例示 (instantiate) させます。ポップアップウィン ドウから flip-flop を選択し、 flip-flop を 配 置 し、 そのシンボルファイルを見るために flip-flop を選択して ^v (Push) を打ちます。

5)

そのファイルを名前をつけて保存します。 現在のライブラリパスがカレントディレクト リ (または ’.’) を含んでいる場合、今作ったシン ボルは ^i を打って例示可能にした方がいい で しょう。

X11 ピクスマップ (XPM) フォーマット

tgif は、ここに記す条件を見たす X11 ピクスマップし か取り込めません。その X11 ピクスマップのフォーマッ ト は、 1 (XPM1) か 3 (XPM3) のいずれかです。 XPM3 のフォーマットはそのサブセットのみがサポートされ て いて、すなわち、その色指定の key フィールドは ’c’ ( カラービジュアルを意味する) でなければいけませ ん。 XPM1 フォーマットのファイルを生成するツール (それら は XPM3 をサポートするように更新されているでしょう) と して、 pbmplus (または netpbm): ビットマップ、ピ クスマップを変換するフリーソフト群 (xv と一緒に使え ば ピ ク ス マップオブジェクトの色を操作できます)、 xgrabsc: 他のフリーソフ ト、 な ど が あ り ま す。 xloadimage も XPM1 ファイルを表示できます。 XPM3 フォーマットのファイルを生成できるツールとして、 例 えば、 xsnap(1) や sxpm(1) があります。色文字列とし て指定される個々の色に対して、それぞれ一つのカ ラー セ ルが割り当てられます。その割り当てに失敗すると、 その色文字列には現在の色が使われます。最初の色文 字 が バッ ク クォー ト (‘) か 空 白 の 場 合、 Tgif.GuessXPmBgColor の X default 値が ‘‘true’’ に セットされていれば、それに対応する色は、tgif window の 背景 色で置き換えられます。 (この仕様は、ピク ス マップが通常表示と反転表示 (reverse video) の両方で ‘‘正しく’’ 見えるようにするために作られました。) 以 下 は、(XPM1 フォーマットの) とても小さいピクスマッ プファイルの例です。

#define arrow_format 1
#define arrow_width 5
#define arrow_height 3
#define arrow_ncolors 3
#define arrow_chars_per_pixel 1
static char *arrow_colors[] = {
"‘", "Black", "a", "red", "b", "yellow"
};
static char *arrow_pixels[] = {
"‘a‘‘‘",
"aabbb",
"‘a‘‘‘"
};

LATEX 用の図の形式

ここでは、LaTeX ファイル用の図を作成する方法、最 初 は \psfig (または \epsf) special の仕組みに関するも の、そして次に psfile special の仕組みに関するも の を 紹介します。 (psfile の仕組みはお勧めしません。) (訳注: 現在はいずれの仕組みもだいぶ古 く、 LaTeX2e で \includegraphics 命令を使うべきです。) 両方のサ ンプルが、tgif の配布に含まれる ‘‘example.tex’’ に あります。

tgif ファイルを、LaTeX 文書中に \psfig または \epsf special の仕組みで入れる よ う に ( カ プ セ ル 化 PostScript (EPS) の形式で) 出力するには、ますパネル ウィンドウで LaTeX の形式を選択し (レーザープリンタ ア イコン上でマウス左ボタンをクリック)、それから ^p をタイプしてカプセル化 PostScript ファイルを生成 し ま す。 ファイル名が ‘‘an-sr-flip-flop.obj’’ であれ ば、 生 成 さ れ る LaTeX の 図 の ファ イ ル は ‘‘an-sr-flip-flop.eps’’ という名前になります。この ファイルは、LaTeX 文書中に以下のようにして入れる こ とができます。

\input{psfig}
\begin{figure*}[htb]
\centerline{\psfig{figure=an-sr-flip-flop.eps}}
\caption{An SR flip-flop. \label{fig:an-sr-flip-flop}}
\end{figure*}

\epsf の仕組みを使う別な方法は、以下の通りです。

\input{epsf}
\begin{figure*}[htb]
\centerline{\epsffile{an-sr-flip-flop.eps}}
\caption{An SR flip-flop. \label{fig:an-sr-flip-flop}}
\end{figure*}

上の \centerline コマンドは、画像をセンタリングしま す。 LaTeX 文書中に複数の tgif の画像を入れる場合、 psfig マクロ (\input{psfig} か \input{epsf}) は、 \begin{document} 文の直後に一度だけ入れます。

カ プセル化 PostScript ファイルが利用できない場合、 psfile special の仕組みは、以下のようにして使用しま す。 こ の 場 合、LaTeX は、 そ の 画像の外枠の箱 (bounding box) を知ることができないので、これがちょ う ど 合 うように何らかの方法が必要になります。以下 は、その手順の一つです。まず、画像をページの真ん 中 に 来るようにします (例えば縦置きのページの幅は 8.5 インチで、よってページの真ん中は 4.25 インチのと こ ろ) それから画像の一番上のオブジェクトを、ページの 一番上から約 1/4 インチのところに合わせます。パネル ウィ ンドウの LaTeX フォーマットを選択し、 LaTeX の 形式で出力 (print) します。 psfig の仕組みで利用 す る よ う に .eps の拡張子を持つファイルが生成されま す。このファイルは以下のようにして LaTeX 文書に取り 込めます。

\begin{figure*}[htb]
\special{psfile="an-sr-flip-flop.eps" hoffset=-40}
\rule{0in}{1.1in}
\caption{An SR flip-flop. \label{fig:an-sr-flip-flop}}
\end{figure*}

上の \rule{0in}{1.1in} は、1.1 インチの高さの表示さ れない箱を指定し、それは an-sr-flip-flop の画像の全 体の高さとなります。

オブジェクトの接続

回路 CAD の世界では、アイコンオブジェクトは電子部品 を表現でき、線分のオブジェクトは 2 つの電子部品のピ ン の 組 の接続を表現できます。一つの部品が移動する と、その部品を結んでいる導線の終点も部品とともに 移 動 します。 tgif は、制限はありますが、このような機 能をまねることができます。

tgif で は、 接 続 (connection) は、 信 号 名 (signal_name) へ のマッチングで表現されます。導線 (wire) は、属性 type=tgWire と属性名 signal_name を 持つ折れ線オブジェクトとして定義されます。ピン の定 義はもっと複雑で、それは次の段落で説明します。 2 つ の ピン (pin) が、その属性 signal_name に対して同じ 値を持つ場合、それらは接続していると見なされます ( そ れらは、見かけ上導線につながっている必要はありま せん)。

ピン オブ ジェ ク ト は、 属 性 type=port と、 signal_namename という名前の属性を持つ必要があ ります。しかし、そのような属性を持つすべて の オ ブ ジェ クトがピンであるとは限りません。加えて、ピンオ ブジェクトは、以下のいずれかでなければなりません:

(1)

一つのトップレベルのシンボルオブジェク トか一つのアイコンオブジェクト

または:

(2)

owner シンボルオブジェクトかアイコンオ ブジェクトのすぐ下の部分オブジェクト。ま た は:

(3)

属性 type=tgBroadcastWire を持つ owner グループオブジェクトのすぐ下の部分オブ ジェ クト。

上 の (2) では、 owner オブジェクトは name という名 前も持つ必要があり、他のシンボルオブジェクトやア イ コ ンオブジェクトの部分オブジェクトであってはなりま せん。その owner オブジェクトが一つのグループ オ ブ ジェ クトのサブオブジェクトである場合、そのグループ オブジェクトの name 属性は無視されます。

上の (3) では、一つの折れ線オブジェクトと、あ る フ ロー ティングポートオブジェクトが選択された場合に、 グルー プ オ ブ ジェ ク ト は、 Special Menu の PortsAndSignals サ ブ メ ニュー 内 に あ る ConnectPortsToBroadcastWire() コマンドを使って生 成 できます。

ピン オブジェクトは、つながった見た目とつながってい ない見た目の両方を持ち得ます。つながった見 た 目 と は、 属性 view=conn,FILL,PEN の部分オブジェクトで、 つながらない見た目とは、属性 view=disconn,FILL,PEN の部分オブジェクトです。ここで、FILL と PEN は 0 か ら 31 (包括的) までの数値です。その値は Fill Menu と Pen Menu のパターンに対応します。通常は、0 か 1 のみを使用すべきでしょう。ピンオブジェクト の 属 性 signal_name を空文字列から空でない文字列に変更する と、つながらない見た目に対応する部分オブジェクト の ペ ン と塗り潰しを 0 (NONE を意味) にセットし、つな がった見た目に対応する部分オブジェクトのペンと塗 り 潰 しを、つながった見た目の view 属性で指定された値 に設定します。ピンオブジェクトの属性 signal_name を 空 でない文字列から空文字列に変更すると、つながった 見た目に対応する部分オブジェクトのペンと塗り潰し を 0 にセットし、つながらない見た目に対応する部分オブ ジェクトのペンと塗り潰しを、つながらない見 た 目 の view 属性で指定された値に設定します。

Special Menu の PortsAndSignals サブメニューから ConnectTwoPortsByAWire() コマンドを使って接続を生成 で きます。ピンが他のオブジェクトの一部分である場合 は、そのオブジェクトは空でない値の name 属性も持 つ 必要があることに注意してください。 2 つのピンがこの コマンドで接続さ れ て い る 場 合、 そ の ピ ン の signal_name 属性とその導線が同じ値を持つように設定 されます。

tgif に は、MoveMode Menu の 強 制 移 動 モー ド (constrained move mode) を使うことで、部品を移動し たときに端点を移動することが実装されています (詳 細 は 「X DEFAULT 値」 の セ ク ショ ン の Tgif.ConstrainedMove を参照してください)。見た目 に は つながってはいない「つながった」導線は、強制移動 モードでもつながった部品に合わせて自動的には伸び な い ことに注意してください。導線オブジェクトが削除さ れたときにも、つながったピンの signal_name 属性は変 化 しません (それらは実際に "つながっていない" ため です)。

X DEFAULT 値

Tgif.Geometry:x高さ+X+Y

Tgif.IconGeometry: +X+Y

Tgif.Foreground: 色文字列

デフォルトの前景色は Black (黒) です。

Tgif.Background: 色文字列

デフォルトの背景色は White (白) です。

Tgif.BorderColor: 色文字列

指定しなければ、前景色が使用されます。

Tgif.ReverseVideo: [on,off]

白黒ターミナルでは、白黒反転ビデオ (reverse video) が ‘‘オン’’ のときは背景が黒になりま す。カラーターミナルでは、白黒反転ビデオ が ‘‘ オン’’ のときは背景は Tgif.Foreground で 指定した色になります。デフォルトは オ フ で す。

Tgif.InitialFont: [Times,Courier,Helvetica,NewCentury,Symbol]

こ れは、初期フォントを指定します。デフォル トは Courier です。

Tgif.InitialFontStyle: [Roman,Bold,Italic,BoldItalic]

これは、初期フォントスタイルを指定しま す。 デフォルトは Roman です。

Tgif.InitialFontJust: [Left,Center,Right]

こ れ は、 初 期 フォ ン ト 位 置 合 わ せ (justification) を指定します。デフォルト は Left です。

Tgif.InitialFontDPI: [75,100]

非推奨。

Tgif.InitialFontSizeIndex: [0,1,2,3,4,5]

非推奨。

Tgif.InitialFontSize: NUMBER

こ れは、開始フォントのサイズを指定します。 デフォルトは 14 です。 NUMBER の後 に す ぐ "pt" ("pt" と NUMBER の間にはスペースを入れ ない) を指定する別の形式も許されています。

Tgif.MsgFontSizeIndex: [0,1,2,3,4,5]

非推奨。

Tgif.MsgFontSize: NUMBER

これは、メッセージ/メニュー/ポッ プ アッ プ ウィ ンドウで使用されるフォントのサイズを指 定します。デフォルトは 14 です。

Tgif.RulerFontSize: NUMBER

これは、ルーラウィンドウで使用されるフォ ン ト のサイズを指定します。デフォルトは 10 で す。

Tgif.DefaultFontSize: NUMBER

これは、フォントサイズの要求が満たされな い 場 合に使用されるフォントのサイズを指定しま す。このサイズは、 tgif が使用する すべての フォントに対して存在する 必要があります。デ フォルトは 14 です。

Tgif.FontSizes: NUMBER1 NUMBER2, ...

これは、フォントサイズ列を指定し ま す。 デ フォルトは、8 10 11 12 14 17 18 20 24 25 34 です。 NUMBER の後にす ぐ "pt" ("pt" と NUMBER の間にはスペースを入れない) を指定す る別の形式も許されています。 14 が指定さ れ た フォントサイズ列に含まれない場合は、初期 フォ ン ト サ イ ズ を 指 定 す る た め に Tgif.InitialFontSize も使用してください。

Tgif.AdditionalFonts: FONT_SPEC1 FONT_SPEC2 ...

Times, Courier, Helvetica, NewCentury, Symbol フォントに加えて、追加のフォントをこ こ に指定できます。詳細は、「追加フォント」 のセクションを参照してください。

Tgif.FontNamePrefix: [-*, *]

これは、tgif が X サーバにリクエストを作 る と きに使用される接頭辞を指定します。デフォ ルトは -* です。あいまいな (つまり文字 - で 始 まらない) フォント名を持つフォントもあり ます。これらのフォントを使用する場合は、 こ の X default 値を * と設定できます。

Tgif.HasAlternateDefaultFonts: [true,false]

こ の X default のデフォルト値は false で す。これが ‘‘false’’ にセットさ れ て い る と、tgif は iso8859 のレジストリ、 ASN1 エ ンコーディングのスクリーンフォントで、名 前 の 一 部に "times", "courier", "helvetica", "new century schoolbook", "symbol" が含まれ るものを探しますが、 X サーバによっては、こ のようなフォントをサポートしていないかも し れ ません。そのような場合に、この X default 値は、ユーザ指定の ス ク リー ン/PostScript フォ ン ト を tgif に使用させるのに使われま す。この X default 値 が ‘‘true’’ の 場 合、tgif は Tgif.<ps_font_name> という形式 の追加の X default 値を 探 し ま す。 こ こ で、<ps_font_name> は以下の文字列のいずれか です:

Times-Roman
Times-Bold
Times-Italic
Times-BoldItalic
Courier-Roman
Courier-Bold
Courier-Oblique
Courier-BoldOblique
Helvetica-Roman
Helvetica-Bold
Helvetica-Oblique
Helvetica-BoldOblique
NewCenturySchlbk-Roman
NewCenturySchlbk-Bold
NewCenturySchlbk-Italic
NewCenturySchlbk-BoldItalic
Symbol

X default の対応する値は、その文字列に "%d" を含む必要があり、この文字列 "%d" はフォント が要求されたときにそのフォントサイズで置き換 え ら れ ま す。 例 え ば 以 下 の 行 は、 Tgif.HasAlternateDefaultFonts が ‘‘true’’ の 場 合、 Times スクリーンフォントの代わりに Times New Roman スクリーンフォントを、 Times PostScript フォ ン ト の 代 わりに Bookman PostScript フォントを使用します:

Tgif.Times-Roman: *-times new roman-medium-r-*--%d-*,Bookman-Light
Tgif.Times-Bold: *-times new roman-bold-r-*--%d-*,Bookman-Demi
Tgif.Times-Italic: *-times new roman-medium-i-*--%d-*,Bookman-LightItalic
Tgif.Times-BoldItalic: *-times new roman-bold-i-*--%d-*,Bookman-DemiItalic

右側のフォント指定に、正しい位置にすべ て の ダッ シュが書かれたものを要求する X サーバも あることを注意してください。

Tgif.DefaultCursor: [x_cursor,arrow,...]

これは、選択時のカーソルを指定します。そ の カーソルの有効な名前は、 <X11/cursorfont.h> にあるエントリ (から XC_ 接頭辞を取り除いた も の) です。デフォルトは arrow (斜め矢印) です。

Tgif.DrawCursor: [x_cursor,arrow,...]

これは、オブジェクトを描画するときに使わ れ る カーソルを指定します。そのカーソルの有効 な名前は、 <X11/cursorfont.h> にあるエン ト リ (から XC_ 接頭辞を取り除いたもの) です。 デフォルトは、Tgif.DefaultCursor と同 じ で す。

Tgif.DragCursor: [x_cursor,arrow,...]

こ れは、ドラッグ時に使われるカーソルを指定 します。そのカーソル の 有 効 な 名 前 は、 <X11/cursorfont.h> にあるエントリ (から XC_ 接頭辞を取り除いたもの) です。デ フォ ル ト は、hand2 (手の形) です。

Tgif.VertexCursor: [x_cursor,arrow,...]

こ れは、頂点選択モードで使われるカーソルを 指定します。そのカーソルの有効な 名 前 は、 <X11/cursorfont.h> にあるエントリ (から XC_ 接頭辞を取り除いたもの) です。デ フォ ル ト は、plus (十字) です。

Tgif.FreeHandCursor: [x_cursor,arrow,...]

こ れは、フリーハンドの描画モードで使われる カーソルを指定します。そのカーソルの有効 な 名 前は、 <X11/cursorfont.h> にあるエントリ (から XC_ 接頭辞を取り除いたもの) です。 デ フォルトは、pencil (鉛筆) です。

Tgif.RubberBandColor: 色文字列

これは、ゴムひも化で使用される色 (XOR) を指 定します。デオフォル ト の 色 は、 前 景 色 (foreground) と同じです。

Tgif.MaxColors: NUMBER

こ れ は、色数の最大値を指定します。 Color0 から ColorMax まで (Max は NUMBER-1) の X default 値が参照されます。 NUMBER がデフォ ルトの 11 より大きい場合、 Color11 か ら ColorMax までが、すべて X default 値に存在 する 必要があります。デフォルト色のリストに つ いては、「グラフィカルオブジェクト」のセ クションを参照してください。

Tgif.Color#: 色文字列

これは、色番号と色との対応を指定します。

Tgif.DefaultColorIndex: NUMBER

これは、ある色が見つからなかった場合に使 用 さ れ る デフォルト色の番号を指定します。デ フォルトは 0 です。

Tgif.ShortCuts: ITEM1 ITEM2 ...

ITEM は、キー (大文字小文字は区別され る で しょ う) と非英数字キーコマンドの対応を指定 します。詳細は、「ショートカット」 の セ ク ションを参照してください。

Tgif.MaxLineWidths: NUMBER

こ れ は、 線 幅 の 最 大 数 を指定します。 LineWidth0 か ら LineWidthMax ま で、 ArrowWidth0 か ら ArrowWidthMax まで、 ArrowHeight0 から ArrowHeightMax ま で の (Max は NUMBER-1) の X default 値が参照され ます。 NUMBER がデフォルトの 7 より大きい場 合、 LineWidth7 から LineWidthMax まで、 ArrowWidth7 か ら ArrowWidthMax ま で、 ArrowHeight7 から ArrowHeightMax までが、す べて X default 値に存在する 必要が あ り ま す。 X default 値に指定されていないそれらの 値が、いくつかデフォルト値として使 わ れ ま す。

Tgif.DefaultLineWidth: NUMBER

こ れ は、 初期線幅の 番号 を指定します。デ フォルトは 0 です。

Tgif.LineWidth#: NUMBER

これは、線幅を指定します。デフォルトの線 幅 は、1, 2, 3, 4, 5, 6, 7 です。

Tgif.ArrowWidth#: NUMBER

こ れは、円弧、開スプラインオブジェクト用の 矢先の横幅 (矢が水平に置かれていると き の) を 指 定 します。デフォルトの矢幅は、8, 10, 12, 14, 18, 20, 22 です。

Tgif.ArrowHeight#: NUMBER

これは、円弧、開スプラインオブジェクト用 の 矢 先 の高さ (矢が水平に置かれているときの) の半分を指定します。デフォルトの矢高 は、3, 4, 5, 6, 7, 8, 9 です。

Tgif.MaxDomains: NUMBER

こ れは、ドメインの最大数を NUMBER で指定し ま す。 DomainPath0,DomainPath1,...,DomainPathM (M=NUMBER-1) がすべて X default 値として 存 在する必要があります。

Tgif.DomainPath#: DOMAINSTRING

こ れは、ドメイン番号と、ドメイン名、そして ドメイン関連するパスの対応を指定します。 各 ド メインには、一つの DomainPath# X default 値が定義されている必要があります。ここで、# は そ の ド メ イン番号です。ドメイン番号は 0,1,...,MAXDOMAINS-1 で、 MAXDOMAINS は 上 の MaxDomain X default 値で設定される値で す。 MaxDomain X default 値と DomainPath# X default 値は、ドメインを使う際には共に必要 になります。

文字列 DOMAINSTRING は、記号 ’:’ で区切ら れ る文字列からなります。最初の文字列はドメイン の名前です。残りの文字列は、例示コマンドが実 行 さ れるときにシンボルファイルが検索される ディレクトリ (詳細は「組み上げオブジェクトの 作 成」 の セ ク ショ ン参照) を指定していま す。DOMAINSTRING 指定のもう一つの見 方 で す が、最初の文字列 (ドメイン名を指定) と最初の ’:’ 記号を削除 す る と、 DOMAINSTRING は csh(1) の PATH 環境変数の形式になります。例 えば、最初は ラ イ ブ ラ リ ディ レ ク ト リ /tmp/tgif/symbols で、それからカレントディレ クトリという形で、シンボルファイルを探すシン ボ ル パ スをドメイン DEFAULT 用に指定する場 合、DOMAINSTRING には以下の値をセットする こ とになります:

DEFAULT:/tmp/tgif/symbols:.

Tgif.DefaultDomain: NUMBER

これは、tgif の起動時のデフォルトドメインを 指定します。デフォルトの値は 0 です。

Tgif.PrintCommand: COMMAND

これは、PostScript ファイルの印刷時に使用さ れ る印刷コマンドを指定します。デフォルトは lpr(1) で (訳注: 多分 System V 系の場 合 は lp)、例えば lpr -h -Pprintername のように設 定できます COMMAND が %s という部分文字列を 含 んでいる場合、その %s は、印刷コマンドに 通常送られる PostScript ファイルのフルパ ス 名に置き換えられます。 COMMAND が %s を持た ないときは、COMMAND %s と同じことを行 い ま す。これは、tgif がコマンドラインオプション -print なしで起動した場合のみ機能することに 注 意 し てください。これは、以下の例のよう に、tgif の PostScript ファイルが送られる前 に、 プリンタにフォントファイルを送るのに利 用できます:

cat /somewhere/sansfex.pfa %s | lpr -Pmyprinter

Tgif.WhereToPrint: STRING

これは、印刷 (print) の出力先、あるいは変換 (export) の形式 を 指 定 し ま す。 STRING は、Printer, EPS, PS, Bitmap, Text, EPSI, GIF, HTML, PDF, WinEPSI, PNG, JPEG, PPM, NetList のいずれかです。デフォルトは EPS で す。

Tgif.PrintDirectory: PATH

これは、出力先がプリンタでない場合の印刷 出 力 先のディレクトリを指定します。デフォルト は空文字列で、これはその出力が現在のファ イ ル が存在するディレクトリに行くことを意味し ます。

Tgif.NoTgifIcon: [true,false]

これを ‘‘true’’ とセットすると、tgif はそれ 自 身のアイコンウィンドウを使用しません。こ の場合、以下の Tgif.UseWMIconPixmap も true に 設 定 す る 必要があります。デフォルトは false です。

Tgif.UseWMIconPixmap: [true,false]

これを ‘‘true’’ とセットすると、 tgif は 標 準 的 な アイコンピクスマップ画像を使用しま す。この場合 Tgif.NoTgifIcon は無視さ れ ま す。デフォルトは true です。

Tgif.DontShowVersion: [true,false]

こ れ を ‘‘true’’ とセットすると、 tigf の バージョンが tgif ウィンドウの最上部に表 示 されなくなります。デフォルトは true です。

Tgif.XBmReverseVideo: [true,false]

こ れを ‘‘true’’ とセットすると、X11 ビット マップファイルを取り込むときに白黒反転操 作 を行います。デフォルトは false です。

Tgif.AskForXBmSpec: [true,false]

こ れを ‘‘true’’ とセットすると、X11 ビット マップファイルを取り込むときに拡大率と位 置 情 報をユーザに問い合わせます。その指定の書 式は MAG=WxH+X+Y で、MAG は拡大率、 W と H は そ れ ぞ れ 幅 と 高さを意味し、位置指定 は、+X+Y, +X-Y, -X+Y, -X-Y のいずれかが使え ます。デフォルトは false です。

Tgif.AskForXPmSpec: [true,false]

こ れを ‘‘true’’ とセットすると、X11 ピクス マップファイルを取り込むときに拡大率と位 置 情 報 を ユーザに問い合わせます。指定の書式 は、AskForXBmSpec のものと全く同じです。 デ フォルトは false です。

Tgif.StripEPSComments: (obsolete)

PS のコメントを取り除くことは常によいとは限 らないことが知られて い る の で、 こ の X default 値は、tgif-4.0.11 では非推奨です ( 常に false に設定すべきです)。

Tgif.GuessXPmBgColor: [true,false]

これを ‘‘true’’ にセットすると、最初の色 文 字列が ’ ’ (空白文字) かその最初の色を 背景 色 であるとして扱います。これは、そ の X11 ピ クスマップファイルの指定された色が、現在 の背景色に変更されることを意味し ま す。 デ フォ ル トは false です。 (このデフォルトは tgif-2.7.2 より前では true でした。こ の X default は 互換性の理由で残されていますか ら、非推奨であると考えてください。)

Tgif.XPmOutputVersion: NUMBER

これは、X11 ピクスマップ形式で出力すると き の XPM バージョン番号を指定します。 NUMBER は 1 か 3 のいずれかです。デフォルトは 1 で す。

Tgif.XPmInXGrabSCFormat: [true,false]

Tgif.XpmOutputVersion が 1 にセットされてい る場合にこれをセットすると、 X11 ピクスマッ プ出力を xgrabsc が生成するものと似たものに します。デフォルトは false です。

Tgif.UseGrayScale: [true,false]

これが ‘‘true’’ の場合、タイル貼りに対し て は 出力のスピードアップのためにグレイスケー ル (灰色階調) を使用します。デフォ ル ト は false です。

Tgif.AutoPanInEditText: [true,false]

こ れを ‘‘true’’ にセットすると、文字列編集 モードのときに文字列カーソルが常に表示さ れ る よ う に画面の自動的な移動が行われます ( カーソルが紙の左、あるいは上の端にあると き を除いて)。これは遅いサーバではオフにした方 がいいかもしれません。デフォルトは true で す。

Tgif.PercentPrintReduction: NUMBER

これは、出力の縮小/拡大率の初期値を指定しま す。デフォルトは 100 です。

Tgif.ConstrainedMove: [true,false]

これは、初期移動モードを指定します。これ を ‘‘true’’ に設定すると、あるオブジェクトの移 動/伸縮により、そのオブジェクト内に端点を持 つ すべての折れ線、または開スプライン曲線の 端点が移動します。端点の隣の頂点も移動で き ま す。詳細は、「特殊な性質」のセクションを 参照してください。デフォルトの値は false で す。

Tgif.DoubleQuoteDoubleQuote: [true,false]

こ れが ‘‘true’’ にセットされている場合、二 重引用符文字はその前に二重引用符文字がつ い て出力されます。これが ‘‘false’’ にセットさ れている場合、二重引用符文字はその前に バッ ク ス ラッ シュ文字がついて出力されます。デ フォルトは false です。

Tgif.GridSystem: [English,Metric]

これは、格子の刻みの単位系に関する初期値 を 設 定します。デフォルトは English (イギリス 式) です (訳注: English はインチ、Metric は メートル法)。

Tgif.InitialGrid: NUMBER

こ れは、初期格子サイズを指定します。イギリ ス式の単位系の場合、NUMBER は -2, -1, 0, +1, +2 のいずれかで、これは格子サイズがそれ ぞれ 1/32, 1/16, 1/8, 1/4, 1/2 インチである こ と を 意味します。メートル法の単位系の場 合、NUMBER は -1, 0, +1, +2 のいずれか で、 こ れ は格子サイズがそれぞれ 1mm, 2mm, 5mm, 1cm であることを意味します。デフォルトの 値 は 0 です。

Tgif.DropObsIconAttrWhenUpdate: [true,false]

こ れ を ‘‘true’’ に セッ ト す る と、UpdateSymbols コマンドを実行し た と き に、 確認なしに非推奨のアイコン属性を落とし ます。これを ‘‘false’’ にセットすると、ある ポッ プアップウィンドウが非推奨のアイコン属 性をどうするかを指定するようユーザに問い 合 わせます。デフォルトは false です。

Tgif.UseRecentDupDistance: [true,false]

こ れ を ‘‘true’’ にセットすると、二重化 (duplicate) と移動 (move) コマンドの組み 合 わ せによって作られた、最も最近の位置の変化 を新しい二重化コマンドで使用します。それ 以 外 の場合は、二重化の配置にはデフォルトの距 離を使用します。デフォルトは true です。

Tgif.SplineTolerance: NUMBER

これは、スプライン描画の寛容度を指 定 し ま す。 これが小さい値であるほど、より滑らかな スプラインを生成します。デフォルトは 9 です (最小は 3 で最大は 13 です)。

Tgif.SplineRubberband: [true,false]

これを ‘‘true’’ にセットすると、開/閉スプラ イン曲線の描画、移動、伸縮にはスプライン の ゴ ム紐を使用します。 (そのスプライン曲線に かなり多くの頂点がある場合は、これは嫌が ら れるでしょう。) デフォルトは true です。

Tgif.Synchronize: [on,off]

こ の X default 値を ‘‘on’’ にセットする と、XSynchronize が呼び出されます。デフォル トは off です。

Tgif.DoubleClickUnIconify: [true,false]

こ れ を ‘‘true’’ にセットすると、アイコン ウィンドウの非アイコン化にダブルマ ウ ス ク リッ クを使います (このモードでは、アイコン ウィンドウは単一のマウスクリックやドラッ グ を無視します)。デフォルトは false です。

Tgif.MainMenuPinDistance: NUMBER

こ れは、ポップアップメニューがピン留めされ るまでに、そのメニューをユーザがドラッグ し ないといけない水平方向の距離 (ピクセル単位) を指定します。デフォルトは 80 です。(ポップ アッ プメニューのピン留めを望まないならば、 これをスクリーン幅より大きな値にセットす る と いいでしょう。) 左マウスボタンのドラッグ によって、ピン留めされた ポッ プ アッ プ メ ニュー を移動できますし、そのポップアップメ ニュー上での右ボタンクリックによって、そ の メニューを消すことができます。

Tgif.DoubleClickInterval: NUMBER

こ れは、一つのダブルクリックと認識されるた めの、 2 回のマウスクリックの時間間隔の限度 (ミリ秒単位) を指定します。デフォルトは 300 です。

Tgif.HandleSize: NUMBER

これは、オブジェクトのハイライト化で使用 さ れ る ハ ンドルのサイズ (の半分) を指定しま す。 2 から 6 までの値が許されています。 デ フォルトは 3 です。

Tgif.HistoryDepth: NUMBER

こ れは、undo/redo 用のバッファのサイズを指 定します。負の値は、バッファの制限がない こ とを意味します。デフォルトは -1 です。

Tgif.SaveTmpOnReturn: [true,false]

こ れ を ‘‘true’’ にセットすると、 tmpmodel は、ドライバに戻る前に自動的に保存 さ れ ま す。 そうでなければ、どんなファイルも自動的 には一切保存されません。デフォルト は true です。

Tgif.ImportFromLibrary: [true,false]

こ れ を ‘‘true’’ にセットすると、取り込む .obj, .sym, X ビットマップ (XBM)、X ピク ス マッ プ (XPM)、EPS ファイルを、現在のドメイ ンで指定されたライブラリディレクトリから 検 索 します。それ以外の場合は、現在のディレク トリが起点として使われます。デフォ ル ト は false です。

Tgif.WarpToWinCenter: [true,false]

こ れ を ‘‘true’’ にセットすると、マウスを ポップアップウィンドウの中心に移動します ( 訳 注: 例えばメッセージダイアログボックスを 立ち上げたときなどに)。それ以外の場合は、マ ウ ス は 移動しません。デフォルトは true で す。

Tgif.SaveCommentsInSaveNew: [true,false]

これを ‘‘true’’ にセットすると、新たに作 成 し たファイルには "%%" 形式のコメントを保存 します。デフォルトは true です。

Tgif.CanvasWindowOnly: [true,false]

これを ‘‘true’’ に セッ ト す る と、Canvas Window のみを表示します (ある種の ‘‘デモ’’ モードです)。デフォルトは false です。

Tgif.UsePsAdobeString: [true,false,NUMBER_1/NUMBER_2]

これを ‘‘true’’ にセット す る と、PS, EPS ファ イ ル の 最 初の行は、 "%!PS-Adobe-2.0 EPSF-1.2" となります。これを ‘‘false’’ に セッ トすると、それは "%!" だけになります。 あな た の 環 境 で は PS-Adobe 文 字 列 が、(Transcript の ような) ドキュメントマ ネージャを混乱 さ せ る 場 合 は、 こ れ を ‘‘false’’ にセットしてください。 3 番目の形 式 を 使 用 す る と、 最 初 の 行 は "%!PS-Adobe-NUMBER_1 EPSF-NUMBER_2" となり ます。デフォルトは false です。

Tgif.HalfToneBitmap: [true,false]

これを ‘‘true’’ にセットすると、X11 ビッ ト マッ プ 形 式 で 出 力 す る と き に、 Floyd-Steinberg ハーフトーン法を使 用 し ま す。これは、描画が X11 ピクスマップオブジェ クトを含む場合に有用です。 デ フォ ル ト は false です。

Tgif.ThresholdBitmap: [true,false]

こ れを ‘‘true’’ にセットすると、X11 ビット マップ形式で出力するときに、ビットを ON に するか OFF にするかを決めるのに単純なしきい 値法を使用します。 Tgif.HalfToneBitmap が true のときは、この X default 値は無視され ます。デフォルトは false です。

Tgif.BitmapThreshold: NUMBER

これは、Floyd-Steinberg ハーフトーンアル ゴ リズムと、単純なしきい値 (threshold) アルゴ リズムのいずれかで用いられるしきい値を指 定 し ます。 NUMBER は 0 から 1 の間でなければ なりません。この X default 値は、X default 値 Tgif.HalfToneBitmap, Tgif.ThresholdBitmap のいずれか一方が true に セッ ト さ れ て い る場合のみ有効です。 Tgif.HalfToneBitmap が true の場合はデ フォ ルトの値は 0.5 で、 Tgif.ThresholdBitmap が true の場合はデフォルトの値は 1 です (基 本 的に、白でないものはすべて黒になる)。

Tgif.GroupedTextEditable: [true,false]

これを ‘‘false’’ にセットすると、描画モード がテキストモードになったときに、トップレ ベ ル テ キ ストオブジェクトとトップレベルオブ ジェクトの属性のみが編集可能となります。 こ れ を ‘‘true’’ にセットすると、テキストオブ ジェクトと属性は、それらがどこにあろうと 編 集できます。デフォルトは false です。

Tgif.DefaultEPSScaling: NUMBER

こ れは、PS、EPS 画像を取り込むときに適用さ れる拡大率を指定します。下の「特殊な性 質」 の セクションでも述べている通り、 tgif は 1 インチを 128 ピクセルとして扱 い ま す が、 PostScript では 1 インチを 72 ポイントとし て扱います。よって、PostScript の実サイズ画 像 と したいならば、このパラメータを 1.7778 (=128/72) にセットするといいで しょ う。 デ フォルトの値は 1 です。

Tgif.IntrCheckInterval: NUMBER

これは、tgif が中断用のチェックの前に描画さ れていたオブジェクトの数を指定します (訳注: Canvas Window の再描画の際に用いられるよ う)。これを 0 以下にセットしている場合 は、 中 断 は許可されません。デフォルトの値は 10 です。

Tgif.TiledPageScaling: NUMBER

これは、タイル貼りページモードでの複数 ペー ジ の描画を印刷するときに使用される拡大率を 指定します。大抵の PostScript プリンタ は、 ペー ジ 全 体を描画領域として使用しませんの で、この数値を 1 に設定すると切れた出力とな る可能性があります。デフォルトの値は 0.9 で す。

Tgif.TGIFPATH: STRING

これは、下の「ファイル」のセクションで述 べ る、 ファイルを探すためのディレクトリを指定 します。環境変数 TGIFPATH は、このオプ ショ ン を上書きします。デフォルトの値は、コンパ イルオプション TGIF_PATH で指定したも の で す。

Tgif.TGIFICON: STRING

これは、tgif がアイコン化されたときに表示さ れるオブジェクトファイル名を指定します。 そ れが文字 / から始まっている場合は絶対パスが 使用され、その他の場合は、アイコンファイ ル の 実 際 のパスは $TGIFPATH/STRING となりま す。ここで、TGIFPATH は X default か環境 変 数 のいずれかを用いて定義されるものです。デ フォルトの値は ‘‘tgificon.obj’’ です。

Tgif.StickyMenuSelection: [true,false]

これを ‘‘true’’ にセットすると、オブジェ ク ト のパターン/線幅/線種等をメニューを用いて 変更したときに、対応するパターン/線幅/線 種 等 が現在選択しているものになります。デフォ ルトは true です。

Tgif.PSBopHook: STRING

これを指定すると、プリンタ、または PS ファ イ ルへの出力の際に、各ページの最初に以下の PostScript 行を追加します:

userdict /STRING known { STRING } if

このオプションは、PostScript にとても詳し い 人 の み が 使 用すべきでしょう。 (STRING は "tgif-bop-hook" と設定することを勧めます。そ れは、これが dvips(1) のような既に存在するソ フトと名前が衝突しないからです。)

Tgif.PSEopHook: STRING

これを指定すると、プリンタ、または PS ファ イ ルへの出力の際に、各ページの最後に以下の PostScript 行を追加します:

userdict /STRING known { STRING } if

このオプションは、PostScript にとても詳し い 人 の み が 使 用すべきでしょう。 (STRING は "tgif-eop-hook" と設定することを勧めます。そ れは、これが dvips(1) のような既に存在するソ フトと名前が衝突しないからです。)

Tgif.MinimalEPS: [true,false]

これを ‘‘false’’ にセットすると、EPS の出力 で は %%Pages, %%DocumentFonts, %%EndComments, %%BeginProlog, %%EndProlog, %%Page, %%Trailer, %%EOF といったコメントが 生成されます。これらのコメントは、ある種 の ‘‘ドキュメントマネージャ’’ を混乱させる場合 があります。 よっ て、Tgif.UsePsAdobeString が 指定されていなければデフォルトは true に なっています (そして Tgif.UsePsAdobeString が指定されていればデフォルトは false になっ ています)。

Tgif.InitialPrintInColor: [true,false]

これを ‘‘true’’ とセットすると、起動時に は カ ラー出力 (印刷) モードが有効になります。 白黒 PS/EPS/EPSI 出力モードでは 白 という色 も 黒として印刷されることに注意してください (背景色 のみが白として印刷されます)。デフォ ル トは true です (コマンドラインオプション -print を使った場合を除いて)。

Tgif.InitialShowGrid: [true,false]

これを ‘‘false’’ にすると、起動時には格子の 表 示は無効になります。デフォルトは true で す。

Tgif.InitialSnapOn: [true,false]

これを ‘‘false’’ にすると、起動時には格子に 沿 う挙動 (snap to grid) は無効になります。 デフォルトは true です。

Tgif.NoMenubar: [true,false]

これを ‘‘true’’ にセットすると、最 初 に メ ニュー バーを一つも表示しません。デフォルト は false です。

Tgif.NoStatusWindow: [true,false]

これを ‘‘true’’ にセットす る と、 最 初 に Status Window を一つも表示しません。デフォ ルトは false です。

Tgif.ReverseMouseStatusButtons: [true,false]

これは ‘‘true’’ にセットすると、マウスの 左 ボ タンと右ボタンの状態を取り替えます。これ は、‘‘左手用マウス’’ を使用しているときに使 うといいでしょう。デフォルトは false です。

Tgif.MinimalMenubar: [true,false]

これを ‘‘false’’ にセット す る と、Menubar Window のメニュー項目はメインポップアップメ ニューと同じになります。これはより多くの ス ペー スを必要とします。これを ‘‘true’’ にす る と、Page, PageLayout, HoriAlign, VertAlign, MoveMode Menu は View カスケード メニューに折り畳まれて、 Font, TextStyle, TextSize Menu は Text カスケードメニューに 折 り 畳 ま れ て、 LineDash, LineStyle, LineType, LineWidth, Fill, Pen Menu は Graphic カスケードメニューに折り畳 ま れ ま す。 (訳注: View, Text , Graphic のカスケー ドメニューがあるのは tgif-3.X で、 tgif-4.X で は そ のようなメニューはありません。) デ フォルトは true です。

Tgif.ColorBgInPrintingColorPS: [true,false]

これを ‘‘true’’ にセット す る と、 カ ラー PostScript 出力を生成するときにその背景色と してウィンドウの背景色を使用します。これ を ‘‘false’’ にセットすると、背景色は一切使用 しません。デフォルトは false です。

Tgif.ScrollBarWidth: NUMBER

これは、スクロールバーの幅を指定 し ま す。 NUMBER は 2 から 16 の間でなければなりませ ん。デフォルトは 16 です。

Tgif.InitialPaperSize: STRING

STRING は、紙の幅と高さの初期値を指定 し ま す。 STRING は "<width> x <height>" の形式 です。 <width> と <height> は、数値の直後に "in" (インチ) か "cm" (センチメータ) をつけ たものです。<width> と <height> を分ける " x " も必須です。 A4PAPER が Makefile で定義 されていれば、デフォルト の 値 は "21cm x 29.7cm" ですが、そうでなければデフォルトの 値は "8.5in x 11in" です。

Tgif.UpdateChildUsingAlignment: [true,false,no_overlap]

これを ‘‘true’’ か ‘‘no_overlap’’ にセッ ト す る と、 内部コマンド update_eps_child(), update_xbm_child(), update_xpm_child() を実 行したときに、 EPS/XBM/XPM 部分オブジェクト を配置するのに現在の水平方向、垂直方向の 整 列設定を使用します。水平方向の整列設定が L, C, R, S, - の場合、部分オブジェクトをそれぞ れ 親オブジェクトの左、中央、右、中央、左に 整列化します。垂直方向の整列設定が T, M, B, S, - の場合、この X default を ’no_overlap’ にセットした場合は部分オブジェクトを、そ れ ぞ れ親オブジェクトの前、中段、後ろ、中段、 後ろに整列化し、この X default を ‘‘true’’ に セットした場合はそれぞれ上、中段、下、中 段、後ろに整列化します。この X default を ‘‘false’’ にセットすると、部分オブジェクト は親オブジェクトの左で後ろに整列化しま す。 デフォルトは false です。

Tgif.GenerateImageMap: [true,false]

こ れを ‘‘true’’ にセットすると、GIF 形式を 出力するときに、 NCSA イメージ マッ プ か CERN クリッカブルイメージ ファイルを生成し ます。この場 合、 以 下 の X default 値 Tgif.XpmToGif, Tgif.ImageMapFileExtension, Tgif.GifFileExtension, Tgif.ImageMapFileFormat, Tgif.UseXPmVersion1ForImageMap が参照されま す。 その他の場合はこれらは無視されます。詳 細は「イメージマップファイルの生成」のセ ク ショ ン を 参 照 してください。デフォルトは false です。

Tgif.XpmToGif: STRING

STRING は、XPM ファイルを GIF ファイルに 変 換 す る の に 使 わ れるコマンドを指定しま す。STRING は、部分文字列 %s を含む 必要 が あり、これは XPM ファイルのフルパス名に置き 換えられます。デフォルトは "xpmtoppm %s | ppmtogif" です。

Tgif.ImageMapFileExtension: STRING

STRING は、イメージマップファイルの拡張子を 指定します。デフォルトは "map" です。

Tgif.GifFileExtension: STRING

STRING は、GIF ファイルの拡張子を指定 し ま す。デフォルトは "gif" (小文字) です。

Tgif.ImageMapFileFormat: [NCSA,CERN]

STRING は、NCSA イメージマップか CERN ク リッカブルイメージ形式のいずれかを指定し ま す。デフォルトは、NCSA イメージマップ形式を 意味する NCSA です。

Tgif.UseXPmVersion1ForImageMap: [true,false]

この X default を設定すると、上の X default 値 Tgif.XpmToGif の設定に依存して変わりま す。これを ‘‘true’’ に セッ ト す る と、X default 値 Tgif.XPmOutputVersion の設定にか かわらず XPM1 ファイルが作成され ま す。 デ フォルトは true です。

Tgif.UsePaperSizeStoredInFile: [true,false]

こ れを ‘‘true’’ とセットすると、紙サイズ情 報は、その開いたファイルに保存されている も のを使用します。デフォルトは true です。

Tgif.OneMotionSelMove: [true,false]

こ れを ‘‘true’’ にセットすると、一つのオブ ジェクトを一つの動作で選択して移動するこ と が できます。デフォルトは false です (訳注: オブジェクトの移動には、選択と移動にそれ ぞ れマウスクリックが必要です)。

Tgif.TiffEPSI: (obsolete)

tgif-4.0 から TiffEPSI は出力形式としてサ ポートされていますので、この X default は非 推奨となっています。

Tgif.XbmToTiff: STRING

STRING は、XBM ファイルを TIFF ファイルに変 換するのに使われるコマンドを指定 し ま す。 STRING は、部分文字列 %s を 1 つ、あるいは 2 つ含む 必要があり、最初の %s は XBM ファ イ ルのフルパス名に置き換えられ、オプション である 2 つ目の %s は生成する TIFF 画像のフ ル パ ス 名に置き換えられます。デフォルトは "xbmtopbm %s | pnmtotiff -none > %s" です。

Tgif.EPSIExportExtension: STRING

STRING は、EPSI ファイルの出力に使われる ファイルの拡張子を指定します。デフォルト は "eps" です。

Tgif.HotListFileName: STRING

STRING は、ホットファイルリストを保存するの に使われるファイルのフルパス名を指 定 し ま す。 デフォルトでは、このファイルはユーザの ホームディレクトリの .Tgif_hotlist となりま す。

Tgif.@@@Viewer: STRING

STRING は、ファイルの拡張子が @@@ であるリ モート URL 用の外部ビュー ワ を 指 定 し ま す。STRING には 3 種類の形式があります。ま ず、"NONE" を指定した場合は、そういうリモー ト ファイルに会ったときは tgif はユーザの指 定したディレクトリにそのファイルを保存し ま す。 例 え ば、.gz ファイルは保存したい場合 は、以下のように指定します:

Tgif.gzViewer: NONE

次に、STRING が文字列 %S (S は大文字) を含む 場 合は、 %S はその URL に置き換えられます。 例えば、.html ファイルは xmosaic で見たい 場 合は、以下のように指定します:

Tgif.htmlViewer: xmosaic %S

そ し て、STRING が %s (S は小文字) を含む場 合、そのリモートファイルをユーザの指定 し た ディレクトリに保存し、そしてあるツールで表示 します。例えば、.gif ファイルは xv で見た い 場合は、以下のように指定します:

Tgif.gifViewer: xv %s

この仕組みは、上の「MIME TYPES と MAILCAPS」 のセクションで書かれている仕組みに優先するこ とに注意してください。

Tgif.AutoHyperSpaceOnRemote: [true,false]

こ れを ‘‘false’’ にセットすると、tgif がリ モート URL を訪れたときにハイパース ペー ス モー ド に 入りません。デフォルトは true で す。

Tgif.AllowLaunchInHyperSpace: [true,false]

これを ‘‘true’’ とセットすると、tgif が リ モー ト URL を訪れたときにハイパースペース モードでアプリケーションを起動することが 可 能 になります。しかし、そのアプリケーション が破壊的なダメージを与えるものかもしれま せ ん ので、これは潜在的に非常に危険です。よっ て、これを false とセットすることを強く推奨 します。デフォルトは false です。

Tgif.CanChangeAttrColor: [true,false]

こ れを ‘‘true’’ とセットすると、属性の色は それがあるオブジェクトに付属 (attach) し た と き に変化できます。デフォルトは false で す。

Tgif.MimeTypesFile: STRING

STRING は、MIME-types ファイルのフルパス 名 を指定します。tgif は MIME-types ファイルの type/subtype フィールドしか使用せず、その他 の フィー ル ド は 無視します。デフォルトの MIME-types ファイルは、ユーザのホームディレ クトリの .mime.types です。

Tgif.LocalRGBTxt: STRING

あ る シ ス テ ムの色を置き換えたい人がいれ ば、STRING に、サーバの色を調べる前に最初に 調 べるファイルのフルパス名を指定することが できます。そのファイルは、ファイル rgb.txt と 同じ書式のファイルでなければいけません。 すなわち、各行には 4 つのフィールドがあり、 最初の 3 つのフィールドはその色の赤、緑、青 の成分で、 4 番目のフィールドはその色の名前 です。色の成分は、0 から 255 の値 (0 と 255 も含む) でなければいけません。

Tgif.PrintUsingRequestedColor: [true,false]

これを ‘‘true’’ にセットすると、印刷され る カラー PostScript ファイルは X サーバが返す 色の代わりに リクエストされた 色 (requested color) を使用します。デフォルトは false で す。

Tgif.ShowMeasurement: [true,false]

これを ‘‘true’’ にセットすると、カーソル の 位 置と描画/ドラッグ/伸縮されているオブジェ クトの幅と高さを表示します。デフォ ル ト は false です。

Tgif.ShowMeasurementUnit: STRING

STRING は、位置情報カーソルの表示に使用され る単位を指定します。これには 2 つの基本的な 書 式 が あ り、一つは単語 "pixel", "inch", "cm" のいずれかですが、他にも基本的な単位と し て知られているものがあります。もう一つの 形式は、NUM BASIC-UNIT/NEW-UNIT で、ここ で NUM は数値、 BASIC-UNIT は基本的な単位の一 つ、NEDW-UNIT は任意の文字 列 で す。 例 え ば、"0.1 cm/mm" は、新たな表示単位として "mm" を定め、それは 1 "mm" が 0.1 cm である こ とを意味しています。 "50 pixel/cm" は "1 cm/cm" と同等で、 "128 pixel/inch" は "1 inch/inch" と同等です。デフォルトは pixel です。

Tgif.PageStyleLandscape: [true,false]

これを ‘‘true’’ とセットすると、tgif はラン ド ス ケー プモードになります。デフォルトは false です。

Tgif.QueryZoomInPoint: [true,false] or [always,no_select,no_query,never]

これを ‘‘true’’ (または ‘‘always’’) と セッ ト す る と、ズームイン (拡大表示) するとき に、その中央点の選択をユーザに問い合わせ ま す。これを ‘‘no_select’’ とセットすると、オ ブジェクトが一つも選択されていない場合に の み、 ズームイン時に中央点の選択をユーザに問 い合わせます。これを ‘‘no_query’’ とセッ ト す る と、 マウス位置がズームイン点となりま す。この場合、メニュー選択を使っている と、 う れしくない位置にズームされてしまいます。 デフォルトは false (または never) です。

Tgif.GZipCmd: STRING

STRING は、.obj ファイルを gzip (圧縮) する の に使用するコマンドを指定します。そのコマ ンドは、出力を stdout (標準出力) に生成する も のでなければなりません。そのコマンドが部 分文字列 %s を含む場合、 %s は .obj ファ イ ル の一時的なコピーのフルパス名に置き換えら れます。デフォルトは "gzip -c" です。

Tgif.GUnZipCmd: STRING

STRING は、圧縮された tgif ファイル (拡張子 .obj.gz または .sym.gz) を tgif ファイルに unzip (解凍) するのに使用するコマンドを指定 します。そのコマンドは、出力を stdout (標準 出力) に生成するものでなければなりませ ん。 そのコマンドが部分文字列 %s を含む場合、 %s は圧縮されたファイルの一時的なコピーのフ ル パ ス 名 に 置 き換えられます。デフォルトは "gunzip -c" です。

Tgif.HttpProxy: STRING

STRING は、HTTP プロクシサーバのホスト名 と ポー ト 番 号 を 指 定 します。指定の書式は <host>:<port> です。:<port> を省略した場 合 は、 80 がデフォルトポート番号として使用さ れます。環境変数 http_proxy は、 こ の X default に優先します。デフォルトでは、HTTP プロクシサーバは使用しません。

Tgif.FtpProxy: STRING

STRING は、FTP プロクシサーバのホスト 名 と ポー ト 番 号 を 指 定 します。指定の書式は <host>:<port> です。:<port> を省略した場 合 は、 21 がデフォルトポート番号として使用さ れます。環境変数 ftp_proxy は、 こ の X default に優先します。デフォルトでは、FTP プロクシサーバは使用しません。

Tgif.InitialArrowStyle: [NONE,RIGHT,LEFT,DOUBLE]

これは、折れ線/開スプライン/円弧の矢先の ス タ イ ル の初期値を指定します。デフォルトは RIGHT です。

Tgif.ShowPageInEPS: [true,false]

これを ‘‘true’’ にセットすると、EPS また は EPSI ファ イ ル 用 に PostScript コマンド showpage が生成されます。デフォルトは true です。

Tgif.MaxNavigateCacheBuffers: NUMBER

こ れは、リモートファイルをキャッシュ (通信 を最小化するために) するのに割り当てるこ と が できるキャッシュバッファの個数を指定しま す。 NUMBER は 0 以上でなければいけません。 デフォルトは 40 です。

Tgif.NumberFileInPrintOnePage: [true,false]

こ れを ‘‘true’’ にセットすると、積み上げ型 の複数ページ描画 (例えば file.obj) に対して Print Menu から PrintOnePage を選択したとき に、適当な拡張子を持つ file_N が生成され ま す。 ここで、N は選択されたページ番号に対応 します。デフォルトは false です。

Tgif.OneMotionTimeout: NUMBER

Tgif.OneMotionSelMove が true にセットさ れ た 場合、オブジェクトの移動は、マウスを押し て放すまでの間の経過時間がこの X default で 指 定したタイムアウト値 (ミリ秒単位) よりも 小さい場合は、なんらかの選択をしていると 見 なされます。デフォルトは 200 です。

Tgif.MinMoveInterval: NUMBER

Tgif.OneMotinSelMove が false にセットされ た場合、オブジェクトの移動は、マウスを押 し て放すまでの間の経過時間がこの X default で 指定した間隔 (ミリ秒単位) よりも小さい場 合 は、 な ん らかの選択をしていると見なされま す。デフォルトは 0 です。

Tgif.GifToXpm: STRING

STRING は、GIF ファイルを XPM ファイルに 変 換 す る の に 使 わ れるコマンドを指定しま す。STRING は、部分文字列 %s を含む 必要 が あり、これは GIF ファイルのフルパス名に置き 換えられます。デフォルトは "giftopnm %s | ppmtoxpm" です。

Tgif.InitExportPixelTrim: LEFT_NUMBER,TOP_NUMBER,RIGHT_NUMBER,BOTTOM_NUMBER

こ れ ら の数値は、印刷、あるいは XBM, XPM, GIF 形式での出力時に取り除く (trim) ピク セ ル 数を指定します。これらの値を使用すること で、 tgif が全体の画像が正確にどれくらい の 大 きさなのかを認識できない、という特別な問 題を修正するような逃げ道を作りだせます。 デ フォルトの値はすべて 0 です。

Tgif.QuantizingLevels: NUMBER

Sharpen() のようないくつかの画像関数は、畳 み込み演算を使用し、 tgif が扱えない 256 色 を 超 え る 色 を持つ画像を作り得ます。この NUMBER は、そのような状況が起きたときにそこ ま で減色する色数を指定します。デフォルトは 222 です。

Tgif.RotateCursor: [x_cursor,arrow,...]

これは、回転モードで使われるカーソルを指 定 し ま す。 カー ソ ル 名 と し て 使 えるの は、<X11/cursorfont.h> 内のもの (XC_ という 接 頭 辞 を 取っ たもの) です。デフォルトは crosshair です。

Tgif.ColorLayers: [true,false]

これを ‘‘true’’ にセットすると、個々の色 が 異 なる層にあると見なされ、それらを個別にオ ン/オフできるようになります。ある色の層をオ フにすると、その層内の基本的 (primitive) な オブジェクトは表示されなくなります。グ ルー プ オブジェクトは、そのすべての構成要素のオ ブジェクトが表示されなくなったときにのみ 表 示 さ れなくなります。デフォルトは false で す。

Tgif.TiffToXbmCmd: STRING

STRING は、TIFF ファイルを XBM ファイルに変 換 するのに使われるコマンドを指定します。こ のコマンドは、MS-Windows アプリケーションで 生 成された EPSI ファイルを取り込むときに使 用されます。 STRING は、部分文字列 %s を 含 む 必要があり、これは TIFF ファイルのフルパ ス名に置き換えられ ま す。 デ フォ ル ト は "tifftopnm %s | pgmtopbm | pbmtoxbm" です。

Tgif.DefFixedWidthFont: STRING

STRING は、Status Window やメニュー、ダイア ロ グボックスなどでデフォルトフォントとして 使われるフォントを指定します。デフォルト は "-*-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1" です。

Tgif.DefFixedWidthRulerFont: STRING

STRING は、水平、垂直のルーラウィンドウ (定 規) で 使用されるフォントを指定します。デ フォ ル ト は "-*-courier-medium-r-normal-*-10-*-*-*-*-*-iso8859-1" です。

Tgif.MenuFont: STRING

STRING は、メニューで使用されるフォントを指 定します。この X default が指定されていなけ れば、メニューにはデフォルトフォントが使 用 されます。

Tgif.BoldMsgFont: STRING

STRING は、ボタンやダイアログボックスで使用 されるボールド (太字) フォントを指 定 し ま す。 こ の X default が指定されていなくて Tgif.MenuFont が指定されていれば、 こ れ は Tgif.MenuFont の 値 を 取 り ます。この X default も Tgif.MenuFont も指定されていなけ れ ば、ボールドメッセージにはデフォルトフォ ントが使用されます。

Tgif.MsgFont: STRING

STRING は、Status Window とダイアログボック ス で使用される細字フォントを指定します。こ の X default が指定されていなければ、それら の メッセージにはデフォルトフォントが使用さ れます。

Tgif.BggenToXpm: STRING

STRING は、ImageProc Menu か ら RunBggen() が選択されたときに X11 ピクスマップ画像を生 成するのに実行されるコマンドを指定しま す。 STRING は、部分文字列 %s を 2 つ含む 必要が あり、最初の %s はユーザが指定した文字列 に 置き換えられ、 2 つ目の %s は画像のサイズ情 報 (geometry) に置き換えられます。デフォ ル ト は "bggen %s -g %s | ppmquant 64 | ppmtoxpm" です。

Tgif.DefaultErrorDiffuseLevels: R_NUMBER G_NUMBER B_NUMBER

これら *_NUMBER は、ImageProc Menu か ら ReduceToDefaultColors() や DefaultErrorDiffuse() を選択したときに使 わ れる、赤 (R)、緑 (G)、青 (B) のビット数をそ れ ぞ れ 指 定 し ま す。 こ れ ら の 値 は、ReduceToDefaultColors() と DefaultErrorDiffuse() の方法用の色の量子 化 で 使われるデフォルトの色集合を決定します。 R_NUMBER+G_NUMBER+B_NUMBER は 8 以下で、 か つ個々の数値は 0 以上でなければなりません。 デフォルトは 2 2 2 です。

Tgif.MaxImportFilters: NUMBER

これは、画像を取り込む際のフィルタの登録 最 大 数 を 指 定します。それらは X default で ImportFilter0 から ImportFilterMax として照 会 できます。ここで、Max は NUMBER-1 です。 デフォルトは 0 です。

Tgif.ImportFilter#: FILTERSTRING

これは、画像を取り込む際のフィルタ を 指 定 し、FILTERSTRING は 3 つの部分 (スペース区 切り) から成ります。最初の部分はフィルタ の 名 前で、それはスペースを含むことはできませ ん。 2 番目の部分は、セミコロン区切りのファ イルの拡張子です。 3 番目の部分は、特定の名 称の外部ファイル形式を X11 ピクスマップ画像 に 変換する実際のフィルタコマンドです。詳細 は、「ラスタ画像の取り込み」のセクション を 参照してください。

Tgif.ShowFileNameOnBrowse: [true,false]

こ れ を ‘‘true’’ とセットすると、File Menu から BrowseXBitmap() や BrowseXPixmap(), BrowseOther() が選択されたときにファイル名 を表示します。デフォルトは true です。

Tgif.HtmlFileExtension: STRING

STRING は、HTML 形式で出力するときに使用 さ れ るファイルの拡張子を指定します。デフォル トは "html" です。

Tgif.GenerateHtmlHref: [true,false]

これを ‘‘true’’ とセットすると、HTML 形式の 出力の際に、href 属性値が解析されます。その 値が .obj ファイルを参照している場合、そ れ は HTML ファイルの拡張子を持つように変更さ れます。これを ‘‘false’’ とセットすると、そ の ような変換は一切行われません。デフォルト は true です。

Tgif.RotationIncrement: NUMBER

これは回転角の増分の初期値を度の単位で指 定 します。デフォルトは 45 です。

Tgif.PSA4PaperSize: [true,false]

こ れを ‘‘true’’ にセットし A4 サイズの紙を 指定すると、以下の行が PS/EPS/EPSI ファイル に追加されます ("%%EndComments" の前に):

%%DocumentPaperSizes: a4

デフォルトは false です。

Tgif.ShapeShadowSpec: STRING

STRING は、図形の影を作る水平方向、垂直方向 のずらし幅の初期値を指定します。その両方 の 値 が 0 の場合は、図形には影がつけられませ ん。影つきで図形を作る場合、背景の塗り潰 し パターン (Fill Menu の最初の列の 3 番目のパ ターン) を与えるのが通常は最も良い結果を 生 みます。デフォルトは "0,0" です。

Tgif.StretchableText: [true,false]

こ れを ‘‘true’’ とセットすると、伸縮テキス トモードが初期モードになります。デフォル ト は true です。

Tgif.EditTextSize: NUMBER

こ れは、存在するテキストオブジェクトを編集 する際に使われるテキストサイズを指 定 し ま す。NUMBER は 0 か、または 4 から 34 までの 値 (4,34 も含む) のいずれかでなければなりま せ ん。NUMBER が 0 の場合、存在するテキスト オブジェクト内の実際のテキストサイズを使 い ま す。 編 集 時 の テ キ ス ト サ イズの値 は、Properties Menu から SetEditTextSize() を 選 択 することで後で変更することも可能で す。デフォルトは 0 です。

Tgif.IconPixmap: STRING

STRING は、tgif のデスクトップアイコンと し て 使用される XBM あるいは XPM ファイルのパ スを指定します。 STRING が / から始まってい る 場 合 は絶対パスが使用され、その他の場合 は、アイコンファ イ ル の 実 際 の パ ス は $TGIFPATH/STRING と な り ま す。 こ こ で、TGIFPATH は X default か環境変数のい ず れ か を 用 い て定義されるものです。この X default は、Tgif.UseWMIcon が true にセット さ れているときに有効です。デフォルトの値は ‘‘tgificon.xbm’’ です (これは tgif にコンパ イルされて組み込まれています)。

Tgif.TmpFileMode: NUMBER (OCTAL)

こ れ は、 一時的なファイル、および出力する ファイルのファ イ ル モー ド を 指 定 し ま す。NUMBER は 8 進数でなければいけませ ん。NUMBER が 0 の場合は、ファイルモード の 設 定動作は一切行われません。この値が指定さ れている場合 (それが 0 であっても)、それ は コ ンパイルオプション PSFILE_MOD を上書きし ます。デフォルト値はありません。

Tgif.TitledPinnedMenu: [true,false]

これを ‘‘true’’ にセットすると、ピン留め さ れ たメニューはタイトルバーを持ち、ピン留め されたメニュー内でメニュー項目を選択する の に 左ボタンを使います。デフォルトは true で す。

Tgif.ColorFromXPixmap: STRING

STRING は、初期色をロードするのに使わ れ る XPM ファ イ ル のパスを指定します。この X default を 指 定 す る と、X default 値 Tgif.Color# は、いずれも無視されます。

Tgif.VectorWarpSoftness: NUMBER

これは、ImageProc Menu から VectorWarp() を 選択したときに使用する柔らかさの値を指定 し ます。VectorWarp() は指定したベクトルによっ てユーザをある X11 ピクスマップオブジェクト 内 のピクセルにワープさせます。影響領域のサ イズはこの値で制御でき、それは 1.0 から 4.0 の 間である必要があります。大きい値は、より 大きい影響領域を意味します。デフォルトの 値 は 2.0 です。

Tgif.ChangePropertiesOfAttrs: [true,false]

こ れを ‘‘true’’ にセットすると、オブジェク トの特性 (フォント、フォントサイズ、色など) を 変更すると、そのオブジェクトに付属する属 性の特性も同じ方法で変更します。デフォル ト は false です。

Tgif.ShiftForDiagMouseMove: [true,false]

こ れを ‘‘true’’ にセットすると、あるマウス の移動は 45 度の倍数に制限されます。デ フォ ルトは true です。

Tgif.UseRecentForDiagMouseMove: [true,false]

こ れを ‘‘true’’ にセットすると、移動距離の 基準用のアンカーとして使われるオブジェク ト は、複数のオブジェクトが ... するときのアン カー と し て 使 用 さ れ ま す。 こ れ は、Tgif.UseRecentDupDistance と Tgif.ShiftForDiagMouseMove の両方が true の と き のみ機能します。デフォルトは false で す。

Tgif.FlushColormapOnOpen: [true,false]

これを ‘‘true’’ にセットすると、新しい ファ イ ルを開いたときにカラーマップをフラッシュ し、tgif の初期色を再読み込みします。デフォ ルトは false です。

Tgif.TransparentPattern: [true,false]

こ れを ‘‘true’’ にセットすると、最初に塗り 潰しとペンパターンを透明化します。デフォ ル トは false です。

Tgif.DontReencode: STRING

iso8859-1 エ ンコードでないフォントに対し て、font の非 ASCII 部分 (7 bit 目がオン の 文字) は、デフォルトでそれが iso8859-1 エン コードであるかのように再エンコード化され ま す。 あるフォントに対してこれが望ましくない 場合、そのようなフォントの PostScript フォ ン ト 名 の最初の部分を STRING に入れること で、その再エンコード化を迂回することがで き ま す。 STRING はコロン区切りで各フィールド を 並 べ ま す。 例 え ば STRING が "Times:Courier:Helvetica" で あ れ ば、 "Times", "Courier", "Helvetica" で 始 ま る PostScript フォントが再エンコード化されませ ん。 (この X default は、コンパ イ ル 時 に -D_DONT_REENCODE で指定したフォントを上書き することに注意してください。) 例に つ い て は、 「国際文字に関する POSTSCRIPT 文字エン コーディング」のセクションも参照してくだ さ い。

Tgif.AdditionalDontReencode: STRING

Tgif.DontReencode ( あるいはコンパイル時に -D_DONT_REENCODE で指定したフォント) に追加 したければ、この X default を使用してくださ い。 こ の STRING は 基 本 的 に Tgif.DontReencode ( あるいはコンパイル時に -D_DONT_REENCODE で指定したフォント) で指定 した STRING に連結されます。

Tgif.UnsignedInXBmExport: [true,false]

こ れ を ‘‘true’’ にセットすると、出力する XBM ファイルで char の代 わ り に unsigned char を 使用します。デフォルトは false で す。

Tgif.CommentInBitmapExport: [true,false]

これを ‘‘true’’ にセットすると、出 力 す る XBM, XPM ファイルの先頭に空の RCS ヘッダ コ メント行を追加します。デフォルトは false で す。

Tgif.ShowFontSizeInPoints: [true,false]

こ れを ‘‘true’’ にセットすると、フォントサ イズがポイントサイズ単位で表示されます。 デ フォルトは false です。

Tgif.DontCondensePSFile: [true,false]

デフォルトでは、tgif が生成する PS/EPS ファ イルは凝縮 (condense) されています ( 訳 注: ス ペース、改行等を詰めてサイズを減らすが可 読性が悪くなる)。この X default を ‘‘true’’ にすると、tgif は凝縮 PS/EPS ファイルを生成 しません。デフォルトは true です。

Tgif.StripCondensedPSComments: (obsolete)

PS のコメントを取り除くことは常によいとは限 ら な い こ と が 知 られているので、この X default 値は、tgif-4.0.11 では非推奨です ( 常に false に設定すべきです)。

Tgif.PdfFileExtension: STRING

STRING は、PDF 形式の出力時に使われるファイ ルの拡張子を指定します。デフォルトは "pdf" です。

Tgif.PsToPdf: STRING

STRING は、PS ファイルを PDF ファイルに変換 するのに使われる コ マ ン ド を 指 定 し ま す。STRING は、部分文字列 %s を 2 つ含む 必 要があり、これらはそれぞれその PS ファイ ル と PDF ファイルのフルパス名に置き換えられま す。デ フォ ル ト は "ps2pdf %s %s" で す。("epstopdf" を 使 い たければ、これを "epstopdf %s --outfile=%s" と設定してみてく ださい。)

Tgif.3DLook: [true,false]

これを ‘‘false’’ にセットすると、ウィンドウ とボタンの 3D 装飾を一切使用しま せ ん。 デ フォルトは true です。

Tgif.XpmDeckToGifAnim: STRING

STRING は、GIF ファイルのリストを GIF アニ メーションファイルに変換するのに使われる コ マ ンドを指定します。 STRING は、部分文字列 %s を含む 必要はありません。デフォ ル ト は "gifsicle -lforever --delay 10" です。 gifsicle の ホー ム ペー ジ は <URL:http://www.lcdf.org/gifsicle/> です。 この X default 値を、"whirlgif -loop -time 10" とすることもできます。 whirlgif のホー ム ペー ジ は <URL:http://www.msg.net/utility/whirlgif/> です。

Tgif.GifAnimExplode: STRING

STRING は、GIF アニメーションファイルをその 構成要素の GIF ファイルに分解するのに使われ るコマンドを指定します。 STRING は、部分 文 字列 %s を含む 必要はありません。構成要素の GIF ファイルは以下のようなファイル名で す。 ア ニ メー ショ ン GIF ファ イルの名前が "foo.gif" の場合、個々 の GIF ファ イ ル は、"foo.gif.0", "foo.gif.1" 等となります。 デフォルトは "gifsicle -eU" です。 gifsicle の ホー ム ペー ジ は <URL:http://www.lcdf.org/gifsicle/> です。

Tgif.Btn3PopupModeMenu: [true,false]

これを ‘‘true’’ と セッ ト す る と、Canvas Window で 右マウスボタン押したときに Mode Menu を生成します。デフォルトは false で す。

Tgif.ScriptFraction: NUMBER

こ れは、標準的な文字列のサイズに対する相対 的な上付き/下付き文字のサイズを指定します。 こ の値は 0.2 から 0.8 の間でなければいけま せん。デフォルトの値は 0.6 です。

Tgif.DeleteNextCharWithDelKey: [true,false]

これを ‘‘true’’ とセットすると、テ キ ス ト モー ドで Delete キーを押したときにカーソル の右にある文字を削除します。デフォ ル ト は true です。

Tgif.SquareDoubleByteFonts: FONT_SPEC1 FONT_SPEC2 ...

tgif の version 4.0 より、2 バイトフォント がサポートされています。しかし、2 バ イ ト フォ ントは、全ての文字が同じ幅と高さを持つ フォント (等幅フォント) しかサポートされ て い ま せん。詳細は「正方形の 2 バイトフォン ト」のセクションを参照してください。

Tgif.DefaultSingleByteFont: STRING

( 下 の X default 値 Tgif.DoubleByteInputMethod で指定される) 入 力メソッドを使って、英数字 (1 バイト) 部 分 文字列を 2 バイト文字列の中に入れることがで きます。この X default 値は、その英数字部分 文 字 列 に使われるフォントを指定します。デ フォルトは Times です。

Tgif.@@@ShowFontChar: OCTAL STRING

OCTAL STRING は、フォントの選択時に Choice Window 内に表示される 2 バイトフォントのサ ンプルに使われる文字を 8 進表記で指定 し ま す。 @@@ は、その 2 バイトフォントの名前に 置き換えます。例は、「正方形の 2 バイトフォ ント」のセクションを参照してください。

Tgif.DoubleByteInputMethod: STRING

こ れは、2 バイトフォント用の入力メソッドを 指定します。現在は以下の値をサポートして い ま す: "xcin", "chinput", "kinput2", "xim", "tgtwb5"。ただし、xcin-2.5 以上を使用する場 合は、 "xcin" の代わりに "xim" を使用してく ださい。入力メソッド "tgtwb5" は Tgif に 組 み 込まれていて、追加パラメータとして文字を 選択するときに使用される Big5 X フォント 名 を指定できます ("tgtwb5" の後に ",FONTNAME" を追加します)。 FONTNAME を指定しなかった場 合 は、 "-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0" が使用されます。詳細は、「正方形の 2 バイト フォント」のセクションを参照してください。

Tgif.UseNKF: [true,false]

これを ‘‘true’’ とセッ ト す る と、Network Kanji Filter (NKF) を使用します。デフォルト は false です。

Tgif.CopyAndPasteJIS: [true,false]

これを ‘‘true’’ とセットすると、文字列の コ ピー/ペーストのときに JIS から EUC への変換 も行われます。デフォルトは false です。

Tgif.PreeditType: [overthespot,root]

これを ‘‘overthespot’’ とセットすると、2 バ イト文字変換が over-the-spot 形式 (訳注: 入 力を行っているその場所での変換) で行われ ま す。 デ フォ ルトは root です (訳注: ルート ウィンドウでの変換)。

Tgif.Lang: STRING

これは locale を指定します。環境変 数 LANG はこの設定を上書きします。

Tgif.Modifiers: STRING

これは locale modifier を指定します。環境変 数 XMODIFIERS はこの設定を上書きします。

Tgif.ConvSelection: STRING

これは、kinput2 の文字列の変換に使用され る セ レクションを指定します。デフォルトの値は _JAPANESE_CONVERSION です。

Tgif.VisibleGridInSlideShow: STRING

これを ‘‘true’’ にセットすると、ス ラ イ ド ショー モードで格子 (grid) を表示します。デ フォルトは false です。

Tgif.SmoothScrollingCanvas: [off,jump,smooth]

これを ‘‘smooth’’ にセット す る と、Canvas Window のスクロールが滑らかになります。しか し、スクロールの開始時に画像のキャッシュ の た め の遅延が起こり得ます。これを ‘‘jump’’ にセットすると、Canvas Window のスクロー ル は ジャ ンプ的になります。これを ‘‘off’’ に セットすると、Canvas Window のス ク ロー ル は、マウスボタンを放すまで Canvas Window を 変更しません。デフォルトは jump です。

Tgif.LightGrayColor: COLORSTRING

これは、ボタンやメニューなどの背景で使用 さ れ る色を指定します。デフォルトは gray75 で す。

Tgif.DarkGrayColor: COLORSTRING

これは、ボタンやメニューなどの影に使用さ れ る 色 を 指定します。デフォルトは gray50 で す。

Tgif.DefaultObjectBackground: COLORSTRING

これは、オブジェクトの背景に使用される色 を 指 定します。デフォルトでは、デフォルトの背 景色を使用します。

Tgif.UseImagePixelsForTrueColorExport: [true,false]

これを ‘‘true’’ にセットすると、出力され る XPM/GIF ファイルの色テーブルは、 TrueColor ビジュアルの実画像ピクセルから取得 さ れ ま す。デフォルトは false です。

Tgif.DialogboxUse3DBorder: [true,false]

これを ‘‘false’’ とセットすると、ダイアログ ボックスは 3D の境界を持ち ま せ ん。 こ れ は、X-Win32 のような X サーバで使用すべきも ので、それは既に 3D の境界を持っているか ら です。デフォルトは true です。

Tgif.MenuFontSet: STRING

こ の X default 値は、tgif がコンパイラオプ ション ENABLE_NLS をつけてコンパイルされ た 場 合 に の み 使用されます。 STRING は、メ ニューで使用されるフォントのリストを指定 し ま す。 STRING に ‘‘none’’ を指定すると、メ ニューフォントセットを使用しないことにな り ま す。 デ フォ ル ト は、 "-*-helvetica-medium-r-normal--12-*-*-*-*-*-*-*,-*-*-medium-r-*--12-*-*-*-*-*-*-*" です。

Tgif.MsgFontSet: STRING

こ の X default 値は、tgif がコンパイラオプ ション ENABLE_NLS をつけてコンパイルされ た 場 合にのみ使用されます。 STRING は、ステー タスメッセージで使用されるフォントのリス ト を 指定します。 STRING に ‘‘none’’ を指定す ると、メッセージフォントセットを使用しな い こ と に な り ま す。 デ フォ ル ト は、 "-*-helvetica-medium-r-normal--12-*-*-*-*-*-*-*,-*-*-medium-r-*--12-*-*-*-*-*-*-*" です。

Tgif.BoldMsgFontSet: STRING

こ の X default 値は、tgif がコンパイラオプ ション ENABLE_NLS をつけてコンパイルされ た 場 合 に のみ使用されます。 STRING は、メッ セージボックスで使用されるフォントのリス ト を 指定します。 STRING に ‘‘none’’ を指定す ると、ボールドメッセージフォントセットを 使 用 し な い こ とになります。デフォルトは、 "-*-helvetica-bold-r-normal--12-*-*-*-*-*-*-*,-*-*-medium-r-*--12-*-*-*-*-*-*-*" です。

Tgif.BoldMsgFontDoubleByte: [true,false]

こ の X default 値は、tgif がコンパイラオプ ション ENABLE_NLS をつけてコンパイルされ た 場 合にのみ使用されます。メッセージボックス で使用する文字列が 2 バイト文字を含む可能性 が ある場合は、この X default 値を ‘‘true’’ とセットすべきです。デフォルトは false で す。

Tgif.LocaleDir: STRING

こ の X default 値は、tgif がコンパイラオプ ション ENABLE_NLS をつけてコンパイルされ た 場 合にのみ使用されます。 STRING は、locale ディレクトリのフルパス名を指定します。

Tgif.PsRegMarksInTiledPageMode: [true,false]

これを ‘‘true’’ にセットすると、タイル貼 り ページモードで PS/EPS ファイルを印刷/出力す るときに、クッピング領域を定義する角に小 さ な クロスヘア (訳注: 照準用の十字線) が描か れます。クロスヘアの灰色の強度は、X default 値 Tgif.PsRegMarksGray で決定します。デフォ ルトは false です。

Tgif.PsRegMarksGray: NUMBER

これは、Tgif.PsRegMarksInTiledPageMode が true にセットされているときに使用されるクロ スヘアの灰色強度を指定します。デフォルト の 値は 0.95 です。

Tgif.PSFontAliases: PSFONTALIAS_SPEC1 PSFONTALIAS_SPEC2 ...

異 なるエンコーディングの代用などの目的で、 フォントエイリアスを使用することが で き ま す。 詳 細は、「国際文字に関する POSTSCRIPT 文字エンコーディング」のセクションを参照 し てください。

Tgif.DomainInIni: [true,false]

こ れ を ‘‘true’’ にセットすると、ファイル ~/.Tgif/domain.ini からドメインの情報を読み 込み、 File Menu の Domain サブメニューのす べてのメニュー項目を有効にします。デフォ ル トは false です。

Tgif.UndoRedoRestoreDrawingMode: [true,false]

こ れ を ‘‘true’’ にセットすると、undo/redo 操作の直前の描画モードを、 undo/redo 操作の 後 に 復 帰 (restore) します。デフォルトは true です。

Tgif.MenuRowsBeforeScroll: NUMBER

これは、(Font Menu や FontSize Menu のよ う な) ユーザが指定可能なテキストメニューで、 垂直スクロールバーが自動的に使われる前の 行 の 最 大数を指定します。デフォルトの値は 20 です。

Tgif.MenuColsBeforeScroll: NUMBER

これは、(Color Menu のような) ユーザが指 定 可 能なビットマップメニューで、水平スクロー ルバーが自動的に使われる前の行の最大数を 指 定します。デフォルトの値は 26 です。

Tgif.PngToXpm: STRING

STRING は、PNG ファイルを XPM ファイルに変 換するのに使われるコマ ン ド を 指 定 し ま す。STRING は、部分文字列 %s を含む 必要が あり、これは PNG ファイルのフルパス名に置き 換 え られます。デフォルトは "pngtopnm %s | pnmdepth 255 | ppmquant 222 | ppmtoxpm" で す。

Tgif.JpegToXpm: STRING

STRING は、JPEG ファイルを XPM ファイルに変 換するのに使われるコマ ン ド を 指 定 し ま す。STRING は、部分文字列 %s を含む 必要が あり、これは JPEG ファイルのフルパス名に 置 き 換 え られます。デフォルトは "djpeg -gif -color 222 %s | giftopnm | ppmtoxpm" です。

Tgif.PbmToXbm: STRING

STRING は、PBM ファイルを XBM ファイルに変 換するのに使われるコマ ン ド を 指 定 し ま す。STRING は、部分文字列 %s を含む 必要が あり、これは PBM ファイルのフルパス名に置き 換えられます。デフォルトは "pbmtoxbm %s" で す。

Tgif.PgmToXpm: STRING

STRING は、PGB ファイルを XPM ファイルに 変 換 す る の に 使 わ れるコマンドを指定しま す。STRING は、部分文字列 %s を含む 必要 が あり、これは PGM ファイルのフルパス名に置き 換えられます。デフォルトは "ppmtoxpm %s" で す。

Tgif.PpmToXpm: STRING

STRING は、PPM ファイルを XPM ファイルに変 換するのに使われるコマ ン ド を 指 定 し ま す。STRING は、部分文字列 %s を含む 必要が あり、これは PPM ファイルのフルパス名に置き 換えられます。デフォルトは "ppmquant 222 %s | ppmtoxpm" です。

Tgif.XpmToPng: STRING

STRING は、XPM ファイルを PNG ファイルに 変 換 す る の に 使 わ れるコマンドを指定しま す。STRING は、部分文字列 %s を含む 必要 が あり、これは XPM ファイルのフルパス名に置き 換えられます。デフォルトは "xpmtoppm %s | ppmtopng" です。

Tgif.PngFileExtension: STRING

STRING は、PNG ファイルの拡張子を指定しま す。デフォルトは "png" (小文字) です。

Tgif.XpmToJpeg: STRING

STRING は、XPM ファイルを JPEG ファイルに変 換 す る の に 使 わ れるコマンドを指定しま す。STRING は、部分文字列 %s を含む 必要 が あり、これは XPM ファイルのフルパス名に置き 換えられます。デフォルトは "xpmtoppm %s | cjpeg" です。

Tgif.JpegFileExtension: STRING

STRING は、JPEG ファイルの拡張子を指定しま す。デフォルトは "jpg" (小文字) です。

Tgif.ProducedBy: STRING

PS/EPS ファイルを印刷/出力するときに、そ の 出 力 の %%ProducedBy 行 に 書き出されま す。STRING にはあなたの名前と e-mail アドレ ス を 入 れ て く だ さ い。 デ フォ ルトは "(unknown)" です。

Tgif.Editor: STRING

STRING は、属性の編集に使用するテキス ト エ ディ タを指定します。 STRING は、部分文字列 %s を 2 つ含む 必要があり、これらはそれぞれ ウィ ンドウタイトルとそのテキストファイルの フルパス名に置 き 換 え ら れ ま す。 例 え ば、"xemacs -title ’%s’ ’%s’" のようにしま す。デフォルトは "xterm -title ’%s’ -e vi ’%s’" です。

Tgif.GoHyperSpaceInSlideShow: [true,false]

これを ‘‘true’’ にセットすると、tgif がスラ イドショーモードに入ったときに、ハイパー ス ペース モードに入ります。デフォルトは false です。

Tgif.LineWidthIndexInSlideShow: NUMBER

これは、tgif がスライドショーモードのときに 使用する線幅の index を指定します。デフォル トの値は 4 です。

Tgif.MaxRecentFiles: NUMBER

これは、最近使用したファイルの一覧として 記 憶 する最大ファイル数を指定します。デフォル トの値は 10 です。

Tgif.ResetOriginOnAdvancePage: [true,false]

これを ‘‘true’’ にセットすると、tgif はペー ジ が め くられたときにページの左上角にスク ロールします。デフォルトは false です。

Tgif.UseMeasureTooltip: [true,false]

これを ‘‘true’’ にセットすると、カーソル の 位 置と描画/ドラッグ/伸縮されているオブジェ クトの幅と高さをツールチップウィンドウ ( 訳 注: ふきだしのように補足を小さな別ウィンド ウ上で表示するもの) 上に表示します。この X default 値は、Tgif.ShowMeasurement が true の場合にのみ効果を持ちます。デフォ ル ト は false です。

Tgif.MeasureTooltipXFollowMouse: [true,false]

こ れ を ‘‘true’’ にセットすると、位置情報 ツールチップの X 座標は、マウスに追従 し ま す。デフォルトは false です。

Tgif.MeasureTooltipYFollowMouse: [true,false]

こ れ を ‘‘true’’ にセットすると、位置情報 ツールチップの Y 座標は、マウスに追従 し ま す。デフォルトは false です。

Tgif.MeasureTooltipHorizontalPosition: [left,center,right]

位 置 情 報 ツー ル チッ プ の X 座標を左端 (left)、中央 (center)、右端 (right) のい ず れ か に 固 定します。この X default 値は、 Tgif.MeasureTooltipXFollowMouse が false の 場 合 の み効果を持ちます。デフォルトは左端 (left) です。

Tgif.MeasureTooltipVerticalPosition: [top,middle,bottom]

位置情報ツールチップの Y 座標を上端 (top)、 中央 (middle)、下端 (bottom) のいずれかに固 定 し ま す。 こ の X default 値 は、 Tgif.MeasureTooltipYFollowMouse が false の 場合のみ効果を持ちます。デフォルト は 上 端 (top) です。

Tgif.MeasureTooltipVerbose: [true,false]

こ れを ‘‘true’’ にセットすると、ツールチッ プウィンドウにオブジェクトの位置とサイズ に 関 す る 情報を追加表示します。デフォルトは false です。

Tgif.NoMinWinSize: [true,false]

これを ‘‘false’’ にセットすると、パネルウィ ン ドウ全体が常に見えるような最小のウィンド ウサイズを使用します。この設定を 行 う と、 ウィ ンドウマネージャによっては、ウィンドウ をリサイズしたときに変なウィンドウサイズ を 示 すという問題が起こることがあります。これ を ‘‘true’’ に セッ ト す る と、Tgif.MinimalMenubar が true にセットさ れているときにメニューバーが自動的には折 り 返 さ れ ない、という副作用が起こります。デ フォルトは true です。

Tgif.AutoWrapMenubar: [true,false]

これを ‘‘true’’ にセットする と、 メ ニュー バー は 自 動 的 に 折 り 返 さ れ ま す。 Tgif.MinimalMenubar を false にセット す る と、 メニューバーは常に自動的に折り返されま す。デフォルトは false です。

Tgif.AutoEPSPreviewBitmap: [true,false]

これを ‘‘true’’ にセットすると、PS/EPS ファ イ ル を 取り込むときに、そのファイルにプレ ビュービットマップが含まれていな け れ ば、 tgif は自動的にそれを生成します。デフォルト は false です。

Tgif.PsToXbm: STRING

STRING は、PS ファイルを XBM ファイルに変換 す る の に 使 わ れ る コ マンドを指定しま す。STRING は、部分文字列 %s を含む 必要 が あ り、これは PS ファイルのフルパス名に置き 換えられます。上のコマンドは、通常その ファ イ ル内の画像よりもとても大きなファイルを生 成することに注 意 し て く だ さ い。 tgif は、pbmtoepsi がするのと同様の方法で、自動 的に空白を取り除きます。デフォルトは "gs -q -dNOPAUSE -sDEVICE=pbm -sOutputFile=- -- "%s" | pbmtoxbm" です。

Tgif.TmpDirInHomeDir: [true,false]

これを ‘‘true’’ とセットすると、tgif は一時 ディレクトリとして $HOME/.Tgif というディレ クトリを使用し ( 以 下 の X default 値 Tgif.TmpDir が使用されていない場合)、コンパ イラオプション -DTMP_DIR は無視されます。デ フォルトは、-D_TMP_DIR_IN_HOME_DIR コンパイ ラオプションが使用されていれば false で、こ れが使用されて いなければ true です。

Tgif.TmpDir: STRING

STRING は、一時ディレクトリとして使用される ディレクトリを指定します。この X default 値 の 使用は、特に tgif が -DUSE_XT_INITIALIZE つきでコンパイルされ て い て、 環 境 変 数 $XAPPLRESDIR で指定されているディレクトリ検 索パスにある X リソースファイルが使用されて い る場合は、推奨されていません。デフォルト では、tgif は /tmp を一時ディレクトリとして 使用します。

Tgif.ThumbnailGeometry: WIDTHxHEIGHT

この X default はサムネイル画像の大きさを指 定します。デフォルトは 160x120 です。

Tgif.ThumbnailPadding: NUMBER

これは、サムネイル画像につめる余白を指定 し ま す (ピクセル単位)。デフォルトの値は 8 で す。

Tgif.ThumbnailXGap: NUMBER

これは、サムネイル画像の水平方向の間隔を 指 定 し ます (ピクセル単位)。デフォルトの値は 16 です。

Tgif.ThumbnailYGap: NUMBER

これは、サムネイル画像の垂直方向の間隔を 指 定します (ピクセル単位)。デフォルトの値は 0 です。

Tgif.ThumbnailX: NUMBER

これは、サムネイル画像の開始 x 位置を指定し ます (ピクセル単位)。デフォルトの値は 32 で す。

Tgif.ThumbnailY: NUMBER

これは、サムネイル画像の開始 y 位置を指定し ます (ピクセル単位)。デフォルトの値は 32 で す。

Tgif.ShowWireSignalName: [true,false]

これを ‘‘false’’ にセットすると、ポートにつ な い だ ときに tgif は自動的に信号名を配置 し、それを隠します。そうでなければ、信号 名 の 配置とそれを見えるようにするかをユーザに 問い合わせます。デフォルトは true です。

Tgif.LandscapePdfSetPageDevice: (obsolete)

名前が誤解を招くとい う 理 由 で、 こ の X default 値は tgif-4.1.42 で非推奨となってい ます。以下の Tgif.PdfSetPageDevice を参照し てください。

Tgif.PdfSetPageDevice: [true,false]

これを ‘‘true’’ にセットすると、PDF (または PS) ファイルを出力するときに、 ps2pdf(1) を 呼び出す前に (PDF 形式を出力する場合)、生成 する PostScript 内で紙のサイズを指定する の に tgif は PostScript "setpagedevice" コマ ンドを使用します。これは本来は必要ないも の で (ps2pdf のバグだと思います)、将来 ps2pdf が正しく横置き (landscape) の PostScript ファ イルを処理できるようになったら、この X default 値は "setpagedevice" コマンドを オ フにするのに使われることでしょう。

Tgif.DeleteCmdAsCut: [true,false]

こ れ を ‘‘true’’ にセットすると、Edit Menu から Delete を選ぶか、 <Cntrl>x を押した と き に、Delete の代わりに Cut を実行します。 その場合でも通常の Delete は、キーボード の <DEL> キー で 実 行できます。デフォルトは false で す。 Tgif.EnableMouseWheel: [true,false] これを ‘‘false’’ にセットする と、ボタン 4 とボタン 5 のマウスホイール ス ク ロールイベントは無視されます。デフォルト は true で す。 Tgif.Btn2PopupMainMenu: [true,false] これを ‘‘false’’ にセットする と、Canvas Window でのボタン 2 のイベントは Main Menu をプルダウンしなくなります。デ フォルトは true です。

Tgif.NoChoiceWindow: [true,false]

これを ‘‘true’’ に セッ ト す る と、Choice Window と Message Window はいずれも最初は表 示されません。デフォルトは false です。

Tgif.UseXPmVersion1ForXPmDeck: [true,false]

この X default の設定は、上の X default 値 Tgif.XpmDeckToGifAnim の 設定に依存するで しょう。これを ‘‘true’’ にセットすると、X11 ピクスマップオブジェクトの束を GIF アニメー ションファイルに変換するときに、 X default 値 Tgif.XPmOutputVersion の設定にかかわらず XPM1 ファイルが生成されます。デフォル ト は true です。

Tgif.SlideShowWindowOffsets: X_OFFSET,Y_OFFSET

こ れらの数値は、スライドショーモードでの位 置合わせのピクセル数を指定します。一つの 値 だけを与えた場合は、X と Y のずらし値は同じ 値にセットされます。デフォルトの値は、い ず れも 0 です。

Tgif.SlideShowBorderColor: COLORSTRING

こ れは、スライドショーモードの紙の境界の外 の領域に使用される色を指定します。デフォ ル トでは、境界色は背景色と同じです。

Tgif.ConvertToBezierSegments: NUMBER

こ れ は、折れ線/スプラインオブジェクトをベ ジェ曲線に変換するときに使われる折れ線の 数 を指定します。デフォルトの値は 50 です。

Tgif.TickMarkSize: NUMBER

こ れは、折れ線/多角形/スプラインの各頂点に 目印マークをつける場合に、使用され る 目 印 マー クのサイズを指定します。デフォルトの値 は 8 です。

Tgif.NoModeWindow: [true,false]

これを ‘‘true’’ にセットすると、Mode Window (訳注: 左端に縦に並ぶ、各描画モード用のアイ コンからなるウィンドウ) は最初は現れなく な ります。デフォルトは false です。

Tgif.MakeUnsavableInSlideShow: [true,false]

こ れ を ‘‘true’’ にセットすると、スライド ショーモードに入ったときに、現在のファイ ル が保存できないようにします。(現在のファイル が自動ページ番号付けのオブジェクトを含ん で いる場合は、この X default の設定にかかわら ずそのファイルは保存できなくされます。) デ フォルトは false です。

Tgif.SingleByteInputMethod: STRING

こ れ は、1 バイトフォント用のインプットメ ソッドを指定します。現在は、"xim" のみが サ ポートされています。

Tgif.IgnoreSlideShowOffsetsInFile: [true,false]

これを ‘‘false’’ にセットすると、ファイルに 保存されたスライドショーのオフセッ ト 値 が Tgif.SlideShowWindowOffsets の設定を上書き します。デフォルトは true です。

Tgif.ItalicMsgFont: STRING

STRING は、いくつかのボタン内で使われるイタ リッ ク (斜体) フォントを指定します。この X default 値 が 指 定 さ れ て い な く て、Tgif.MenuFont が指定されている場合は、 これは Tgif.MenuFont の値を取ります。この X default 値と Tgif.MenuFont が指定されていな い場合は、イタリックメッセージではデフォ ル トのフォントが使用されます。

Tgif.ItalicMsgFontSet: STRING

こ の X default 値は、tgif がコンパイラオプ ション ENABLE_NLS をつけてコンパイルされ た 場 合 に のみ使用されます。 STRING は、メッ セージボックス内で使用されるフォントのリ ス ト を指定します。 STRING に ‘‘none’’ を指定 すると、イタリックメッセージフォントセッ ト を 使用しないことになります。デフォルトは、 "-*-helvetica-medium-o-normal--12-*-*-*-*-*-*-*,-*-*-medium-r-*--12-*-*-*-*-*-*-*" です。

Tgif.BoldItalicMsgFont: STRING

STRING は、ある文字列で使用されるボールドイ タリック (斜体太字) フォントを指定しま す。 こ の X default 値が指定されていなくて、 Tgif.MenuFont が指定されている場合は、こ れ は Tgif.MenuFont の 値を取ります。この X default 値と Tgif.MenuFont が指定されていな い 場合は、ボールドイタリックメッセージでは デフォルトのフォントが使用されます。

Tgif.BoldItalicMsgFontSet: STRING

この X default 値は、tgif がコンパイラオ プ ショ ン ENABLE_NLS をつけてコンパイルされた 場合にのみ使用されます。 STRING は、ある 文 字 列で使用されるフォントのリストを指定しま す。 STRING に ‘‘none’’ を指定すると、 ボー ル ドイタリックメッセージフォントセットを使 用しないことになります。 デ フォ ル ト は、 "-*-helvetica-bold-o-normal--12-*-*-*-*-*-*-*,-*-*-medium-r-*--12-*-*-*-*-*-*-*" です。

Tgif.ExternalPsToEpsi: [true,false]

これを ‘‘true’’ にセットすると、内部コマ ン ド pstoepsi() の実行は、単に外部の pstoepsi を呼び出すだけになります。 デ フォ ル ト は false です。

Tgif.GsPath: STRING

STRING は、gs (ghostscript) プログラムのフ ルパス名を指定します。デフォルトは "gs" で す ( これは、"gs" の実行ファイルがあなたの PATH に含まれることも意味しています)。

Tgif.CompoundObjWithTextStretchableForPSE: [true,false]

これを ‘‘false’’ にセットすると、全体に渡る 詳 細 なスケール設定コマンド (訳注: Precise Scale Everything; Edit Menu の Transformation サブメニューにあり、全体のス ケールを変更する) を実行するときに、合成 オ ブ ジェクトはそれがテキスト部分オブジェクト を含んでいる場合は、伸縮 されません。この X default 値は、tgif が非伸縮テキストモードの 場合にのみ効果を持ちます。 (tgif が伸縮テキ ストモードのときは、この X default 値は無視 されます。) デフォルトは false です。

Tgif.HideWindowsInSlideShow: [true,false]

これを ‘‘false’’ にセットすると、tgif は ス ラ イドショーモードでもすべてのウィンドウを 表示させたままにします。それ以外の場合 は、 スライドショーモードでは Canvas Window のみ 表示されます。デフォルトは true です。

Tgif.PSDistillerNoImageCompress: [true,false]

これを ‘‘true’’ にセットすると、tgif は、生 成した PostScript ファイル内の画像を ps2pdf のような distiller プログラム (訳注: PDF へ の 変 換 プ ロ グラム) が圧縮 しない ような PostScript コードを生成します。デフォルトは false です。

Tgif.AdditionalPSSetup: STRING

こ れ を 指 定 す ると、STRING で指定された PostScript 行が PostScript ファイル セッ ト アップの最後 (%%EndSetup の直前) に挿入され ます。このオプションは、PostScript にとても 詳 し い 人 の みが使用すべきでしょう。以下 は、distiller プログラムにビットマップ画 像 を圧縮させないように問い合わせる例です:

Tgif.AdditionalPSSetup: \n\
systemdict /setdistillerparams known \n\
{ << /AutoFilterGrayImages false \n\
/AutoFilterColorImages false \n\
/ColorImageFilter /FlateEncode \n\
/GrayImageFilter /FlateEncode \n\
>> setdistillerparams } if

Tgif.PSFontNeedCharSubs: FONTSUB_SPEC1 FONTSUB_SPEC2 ...

FONTSUB_SPEC の 書式は FONTNAME=TOKENNAME で、 FONTNAME は PostScript フォン ト の 名 前、TOKENNAME は X default 値 Tgif.PSCharSubs_TOKENNAME に対する拡張子 の 名 前です。 FONTSUB_SPEC の FONTNAME 部分に マッチするような文字列で始ま る PostScript フォント名に対しては、 tgif は X default 値 Tgif.PSCharSubs_TOKENNAME を読んで、どの 文 字 が 置 き換えされるのかを決定しようとしま す。

iso8859-1 エンコードでないフォントに対し て は、 フォントの非アスキー部分 (文字コードの 7 ビット目がオンのもの) は、 PS 出力が生 成 さ れ る と き に、 デ フォ ル トではそれが iso8859-1 エンコードであるかのように再エ ン コードされます。そうしたくない場合は、7 bit 目がオンの文字を異なる名前の PS 文字で置 き 換 えることができます。例については、「国際 文字に関する POSTSCRIPT 文字エンコーディ ン グ」のセクションも参照してください。

Tgif.PSCharSubs_TOKENNAME: PSCHARSUBS_SPEC1 PSCHARSUBS_SPEC2 ...

TOKENNAME は、X default 値 Tgif.PSFontNeedCharSubs 内 の FONTSUB_SPEC に マッ チ す る ものがある必要があります。 PSCHARSUBS_SPEC の 書 式 は OLDCHARCODE/NEWCHARNAME で、 OLDCHARCODE は 8 進での文字コード、 NEWCHARNAME は使用する PostScript 文字名です。詳細は、「国際文字に 関する POSTSCRIPT 文字エンコーディング」 の セクションを参照してください。

Tgif.DrawTextFuncKey_F#: INTERNAL COMMAND LIST

こ れは、ファンクションキーと一連の内部コマ ンドの関係を指定します。 tgif が文字列描 画 モー ドのときにファンクションキー F# を押す と、対応する一連の内部コマンドが実行され ま す。 tgif は、ファンクションキー F1 から F12 までのみを認識します。

Tgif.PasteFromXSelectionOnly: [true,false]

これを ‘‘false’’ にセットすると、 tgif が X Selections の仕組みでのペーストの実行に失敗 した場合、古いスタイルのペースト (X サー バ か ら直接バイトを持ってくる) を試みます。こ れは主に複数の X サーバとともに使用さ れ ま す。デフォルトは true です。

Tgif.PasteFromSelectionTimeout: NUMBER

こ れは、ペースト操作のタイムアウトの秒数を 指定します。デフォルトの値は 10 です。

Tgif.LengthLimit256InInsertChar: [true,false]

これを ‘‘true’’ にセットすると、文字列の 1 行の最大数が 256 にセットされ、それ以上の追 加の文字は無視されます。デフォルトは false です。

Tgif.JpegToPpm6: STRING

STRING は、JPEG ファイルを P6 形式の PPM ファイルに変換するコマンドを指定 し ま す。 STRING は、 部分文字列 %s を含む 必要があ り、これは JPEG ファイルのフルパス名に置 き 換えられます。デフォルトは、"djpeg -ppm %s" です。

Tgif.ObjectShadowOffsets: X_OFFSET,Y_OFFSET

これらの数値は、オブジェクトの一般的な影 を 生 成 す るときにずらすピクセル数を指定しま す。一つの値だけを与えた場合は、X と Y のず ら し値は同じ値にセットされます。デフォルト の値は、いずれも 2 です。

Tgif.ObjectShadowColor: COLORSTRING

これは、オブジェクトの一般的な影に使用さ れ る 色 を 指 定 し ま す。 デ フォルトの値は "#c0c0c0" です。

Tgif.IgnoreObjectShadowInfoInFile: [true,false]

これを ‘‘false’’ にセットすると、ファイルに 保 存 さ れたオブジェクトの一般的な影の情報 は、 Tgif.ObjectShadowOffsets と Tgif.ObjectShadowColor の設定を上書きしま す。デフォルトは true です。

環境変数

TGIFPATH

この環境変数は、下の「ファイル」のセク ショ ン で説明しているようにファイルを探すための パスを設定します。

TGIFICON

この環境変数は、tgif がアイコン化された場合 に 表示されるオブジェクトファイルの名前を設 定し ま す。 デ フォ ル ト で は、 こ れ は ‘‘tgificon’’ と設定されています。これが / で始まっている場合、その絶対パスが使用さ れ ま すが、そうでなければそのアイコンファイル は $TGIFPATH/$TGIFICON と仮定されます。

TGIF_[Domain]

非推奨。

ファイル

$TGIFPATH/tgificon.obj には、デフォルトの tgif アイ コンが含まれています。

$TGIFPATH/keys.obj には、英数字以外のキーのキーバイ ンドの概要が含まれています。

PROLOG/C のテストドライバ

tgif の配布物に、単純な Prolog ドライバを説明するよ う な 3 つ の Prolog ファイルが含まれています。 tgif.pl には、tgif ファイル (.obj と .sym の 両 方) を 解 析 す る 述 語 (predicate) が書かれています。 frontend.pl には、外部関数インターフェースを通じ て Quintus や SISCtus のような Prolog エンジンと会話す るような述語が書かれています。 frontend.pl を使用す る に は、 ビ ル トするのに frontend11.o が必要です (Makefile から frontend11.o のエントリのコメント を 外 す 必 要 が あ り ます)。最後に、testdrive.pl に は、tgif が Solve (または #s) コマンドでエスケー プ した場合に、現在の描画内のすべてのオブジェクトの ID ファイルをプリントアウトするプログラムが書かれて い ま す。これは、一つの tgif ファイルの構造を調べる良 い方法でもあります (特に、古いバージョンの tgif で 作 成されたファイルとの互換性を維持するために導入さ れたものが複雑であるために、その構造はドキュメン ト 化されていないので)。

と ても単純な C ドライバ testdrive.c も tgif の配布 物に含まれていて、これは同名の Prolog ドライバと 同 じ 機能を果たします。このファイルに含まれる (そして tgif.c にはない) 特別なコードは、メモリ上のオブジェ ク トと属性をどのように横断し、どのように新しいオブ ジェクトを生成し、操作したらよいのか、を説明して い ます

関連項目

latex(1L), lpr(1), ghostscript(1), env(1), X(1), dvips(1), csh(1), pbmplus(1), netpbm(1), djpeg(1), bitmap(1), XPM(1), netpbm(1), xfontsel(1), xlsfonts(1), xgrabsc(1), xloadimage(1), xsnap(1), sxpm(1), xv(1), pstoepsi(1), Mosaic(1), bggen(1), rand(3C), ps2pdf(1)

特殊な性質

任意の ‘‘ドライバに抜ける’’ コマンドが (偶発 的 に) 実 行 さ れ た場合、現在の描画は、それが一つの .obj ファイルであることを示しているならば、その 内 容 が ‘‘tmpmodel.obj’’ に保存され、 tgif はドライバに抜け て、正しく戻ってきます。現在の描画が、一つ の .sym ファ イ ル であることを示している場合は、その内容は ‘‘tmpmodel.sym’’ に保存されますが、 tgif はドライバ には戻りません。

tgif、または (xterm のような) tgif 以外のツールで生 成されたカットバッファに関するペーストの操作は ちゃ ん と動作します。そのカットバッファが tgif で生成さ れたものでは ない 場合、その内容は ASCII 文字列の集 ま りであると扱われ、現在の描画にはテキストオブジェ クトとして挿入されます (そのテキストオブジェクト の 生 成に関しては、テキストオブジェクトに関する現在の 設定が使用されます)。カットバッファが tgif で生成さ れ たもので ある 場合、現在の設定はすべて無視されま す。

フォントサイズは、スクリーン フォントサイズで、これ はスクリーン上で文字列を表示するのに使われる X フォ ントに対応します。これらは印刷出力 (print) では、よ り 小 さ くなります。 24 ポイントの文字列を出力する と、それはほぼ 13.5 ポイントの PostScript 文字列 に 対応します。これは、tgif が 128 ピクセルを 1 インチ と扱い、 PostScript が 72 ポイントを 1 インチと扱う からです。

X11 と PostScript でサポートされている文字は異なる ため、すべての文字、特に X11 ではサポートされている ascii コード 128 から 255 (8 進 \200 から \377) の 文字を tgif がすべて受けつけるとは限りません。さ ら に、 これらの文字のサポートしている部分を出力するた めに、文字コードは再エンコードする必要がありま す。 よって、tgif が他の個人的なフォントをサポートするよ うにハッキングする場合は、再エンコードの仕組みに 注 意する必要があるでしょう。

格 子 (grid) は絶対的なものではなく、スクリーンピク セルで指定され、現在の拡大率に従って縮尺されま す。 例 え ば、 格子が最大の拡大率のときに 16 ピクセルで セットされている場合、ユーザが拡大から戻ってから も オ ブジェクトを 16 スクリーンピクセルだけ増やして描 画、移動、延長できますが、しかしこれは実座標系で は 32 ピクセルに対応します。

垂 直方向の文字列の間隔を負の値に設定した場合、 XOR 操作のため、ハイライトされている文字列はやや妙な 感 じに表示されます。垂直方向の文字列の間隔を 100 より 大、または -100 より小さくした場合、パネルウィン ド ウ が正しくクリアされません。パネルウィンドウをクリ アするには、ユーザが tgif のウィンドウを一 旦 閉 じ て、また立ち上げ直す必要があるでしょう。

「TGIF の子ウィンドウ」のセクションで述べたように、 強制移動モードで選択されていない折れ線の両端点が 移 動 しようとするオブジェクト内にある場合、折れ線全体 も移動してしまいます。これは以下のような点でやや 奇 妙 に感じます。例えば、あるオブジェクトを指し示す線 分を書いた場合、そのオブジェクトを移動するとその 線 分 も ‘‘伸ばす’’ でしょう。しかし、最終的にその線分 のもう一方の端点もそのオブクジェクトの中に入るよ う に 移動しまうと、その後のオブジェクトの移動では、 ( 元の端点だけ移動するのではなく) その線分全体が移 動 し てしまうことになります。移動した端点の近くにある 頂点の移動も、ときどき奇妙に見えます。このような 場 合 に 関 しては、非強制移動モードにスイッチすべきで しょう。

強制移動モードに関する他の特異性は、オブジェクト の 二重化 (duplicate) 後すぐは、強制移動モードは一時的 に使えなくなります。それは、それがこの時点で、 ユー ザ が新しいオブジェクトを求める位置に移動したいだろ うと仮定しているためです。そして、この新し い オ ブ ジェ クトが ‘‘腰を落ちつけた’’ 後のみ、強制移動モー ドは再び利用可能になります。

ロックされたオブジェクトは削除できます。

Edit Menu の PasteFromFile() はファイルを描画内に読 み 込みます。ファイルからのペーストは、通常のペース ト操作とは違いがあり、通常のペーストではタブが自 動 的にスペースに変換されるためにコピーは xterm でのよ うに行われますが、ファイルからのペーストではタブ は 無視されます。

複数ページの描画の出力 (print) 時には、 (オブジェク トを一つも含まないページがあっても) すべてのペー ジ が出力されます。 Page Menu から PrintOnePage() コマ ンドを使用すると、選択されたページ (積み上げ型 ペー ジ レイアウトモードの場合、これは現在のページで、タ イル貼り ページレイアウトモードの場合、見えて い る ペー ジを選択するようにユーザに促します) を出力しま す

tgif はそれ自身のアイコンウィンドウを使うようにセッ ト アッ プ で き ま す (Tgif.NoTgifIcon と Tgif.UseWMIconPixmap の X default 値の両方を false にセットしなければいけません)。しかし、ウィンドウマ ネージャを混乱させる場合があるでしょう。よって、 そ の 影 響が望ましくない場合は、 Tgif.UseWMIconPixmap の X defaults 値を true にするといいでしょう。

バグ

Apple LaserWriter 上で、実線でないペ ン で Courier フォ ン ト を印刷すると問題が起こる場合があるようで す。 (ただし単一文字の印刷は問題ない よ う で す。) PostScript のリファレンスマニュアルで指摘されている ように、 Courier は ‘‘ストロークフォント’’ であり、 よっ てそのような形式のフォントに対しては、文字の形 のパスを作成するのがいつも ‘‘難しい’’ のです。し か し Courier フォントは、 ghostscript(1) や dxpsview では問題ありませんので、この問題がどうすれば修正 で き るのか分かっていません。よって著者は、実線でない ペンを使用する場合は、カラーでの印刷に Courier フォ ントを避けて使用することを勧めます。

矢 先を持つ円弧は、あまり鋭くは見えません (その先は 矢先を持つ開スプラインほどには尖りません)。

高い拡大率では、円弧を伸縮すると丸め誤差のせいで 異 常な振舞いをすることがあります。

ペー ジ の 拡 大/縮小率が 100% ではない場合、 Ruler Windows の印付け (marking) は実際の寸法には対応しま せん。

tgif は今のところまだ ‘‘選択’’ の仕組み (selection mechanism) を使用していませんので、大きなオブジェク ト の コピー/ペーストはうまく動作しないかもしれませ ん。

tgif がクラッシュした場合、現在の 描 画 の 内 容 を ‘‘EmergencySave.obj’’ (現在の描画がシンボルオブジェ クトを指している場合は ‘‘EmergencySave.sym’’) と い う ファイルに保存しようとします。その描画は、たいて いはファイル ‘‘EmergencySave.obj’’ を読み込むことで 復 帰できますが、それでもあるオブジェクトが (プログ ラムのバグにより) くずれてしまったことがクラッ シュ の要因であれば、ファイル ‘‘EmergencySave.obj’’ もく ずれてしまっているかもしれません。

あるアプリケーションを起動しているときに、そのコ マ ンドを文字 ’&’ で終わらせていなくて、そのコマンドが 終了しない場合は、tgif もハングアップするでしょう。 こ の場合、tgif の内容を ‘‘EmergencySave.obj’’ に保 存したければ、 kill(1) コマンドを使って tgif のプロ セスに HUP シグナルを送ってください。

ファ イル exec.c は、AIX のマシン上ではうまくコンパ イルできないかもしれません。その場 合 は、Imakefile か Makefile.noimake の DEFINES に -D_BSD を追加する 必要があるでしょう。

著作権 (Copyright)

著作権に 関 す る 詳 細 に つ い て は、 ファ イ ル ‘‘Copyright’’ を参照してください。

PostScript は、Adobe Systems Incorporated の商標登 録です。

現状

現在の tgif の状況は、tgif の World-Wide-Web ホーム ペー ジ <URL:http://bourbon.usc.edu/tgif/> で取得で きます。

作者

William Chia-Wei Cheng (bill.cheng@acm.org)
<URL:http://merlot.usc.edu/william/usc/>

参考文献

[1]

‘‘A Beginner’s Guild to HTML’’, <URL:http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html>.

[2]

‘‘CGI - Common Gateway Interface’’, <URL:http://www.w3.org/CGI/overview.html>.

[3]

‘‘NCSA Imagemap’’, <URL:http://hoohoo.ncsa.uiuc.edu/docs/tutorials/imagemapping.html>.

[4]

‘‘CERN Clickable Image’’, <URL:http://www.w3.org/hypertext/WWW/Daemon/User/CGI/HTImageDoc.html>.