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|-letter}] [-listdontreencode] [-version] [-pdfspd | -pdfspd=true | -pdfspd=false ] [-pssetup "<string>" ] [-tgwb2 [-rmcastlibdir <directory> | -rmcastlibpath <path>]] [-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] [-svg] [-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] [{-a4|-letter}] [-noshowpageineps] [-quiet] [-bop_hook "<string>"] [-eop_hook "<string>"] [-tmp_file_mode "<octal number>"] [-patterndir "<xbm directory>"] [-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, -svg のいずれのオプションも指定されていな ければ、 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 にした場合と同じになります。

-letter

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

-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.pdf という名前で PDF ファイルを生成しま す。下記の 「X DEFAULT 値」 の セ ク ショ ン の Tgif.PsToPdf に関する注意を参照してください。

-netlist

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

-svg

file.svg という名前の SVG ファイルを生成しま す。 下 記 の 「X DEFAULT 値」 の セ クションの Tgif.EpsToTmpSvg と Tgif.TmpSvgToSvg に関する注 意 を参照してください。

-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 値を指定することと同じになります。

-tgwb2

このコマンドラインオプションは、tgif の Tangram Whiteboard 機能を有効にし ま す。 こ れ に は、librmcast.so (信頼できる IP マルチキャストライ ブラリ) が必要です。rmcast ライブラリの場所は、 コ マ ンドラインのオプション引数 -rmcastlibdir で指定 できますが、その代わりにコマンドラインのオプション 引数 -rmcastlibpath を使って rmcast ライブラリのフ ルパスを指定することもできます。 (rmcast ライブ ラ リ は Linux マシン上でのみ広範囲にテストされている ことに注意してください。)

-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 値 を指定することと同じになります。

-patterndir

このオプ ショ ン は、Tgif.CustomPatternDir の 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 値を使 う こ と で、 色 の追加が行えます。色の追加は、Properties Menu から AddColor() や ChooseColor() を選択することでも行えます。起 動 時 の 色 の 選 択 は、 以下の X default 値でも行えます: Tgif.ColorFromXPixmap, Tgif.UseStdPalette8, Tgif.UseStdPalette27, Tgif.UseStdPalette64, Tgif.UseStdPalette216, Tgif.UseMobileWebSafePalette, Tgif.UseOpenOfficeGalaxyPalette, Tgif.UseOpenOfficeGooglePalette, Tgif.AdditionalColors。

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 のすぐ下の右に置かれていま す。これは、tgif のメッセージを表示しま す。 こ の ウィンドウでマウス左ボタンをクリックするとメッセー ジを下に向かってスクロールし、マウス右ボタン を ク リックすると上に向かってスクロール、マウス中ボタン のクリックやドラッグで、どこでマウスがクリックされ た か によって、メッセージヒストリのその場所へスク ロールします。マウス左/右ボタンのクリックのとき に <Shift> (または <Control>) キーが押されていれば、 それは左/右のスクロールになります。

Panel (Choice) Window

これは、Messeage 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, structured の いずれかです。オブジェクトが選択されていない 場 合 は、 現在のスプラインの型が <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> がそれ以外の値の場合は、選択されたオブジェクトの文 字に下線をつけます。オブジェクトが一つも選択されて いない場合、現在の文字の下線がそれに応じて変更され ます。

set_selected_text_overline(<overline>)

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

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> になる ように、選択されたオブジェクトの右下の角を伸ばしま す。

size_named_obj_absolute(<obj_name>,<abs_w>,<abs_h>)

こ のコマンドは、幅が <abs_w>、高さが <abs_h> にな るように、 <obj_name> という名前のオブジェクトの右 下の角を伸ばします。

message_box(<attr_name>,<msg>,<title>,<style>)

こ のコマンドは、タイトルが <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> に は空文字列がセットされます。

add_attr_to_selected_obj(<attr_name>,<attr_value>,<abs_x>,<abs_y>)

こ のコマンドは、<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 という属性を持 つオブジェクト内にある場合、 <end_attr_name> が 文 字 列 NULL (大文字小文字は区別する) でなければ、そ のオブジェクト名が <start_attr_name> という名前 の 属 性に代入されます。終了点が type=port という属性 を持つオブジェクト内にある場合、 <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() が使え ま す。

find_obj_names_on_all_pages(<result_attr>,<attr_name_value>)

このコマンドは、これがすべてのページのトップレベル オブジェクトのみ検索する こ と を 除 け ば、 上 の find_obj_names() と ほ ぼ 同 じ で す。 その結果 は、<result_attr> に書き出されます。多ページファイ ル に つ いては、トップレベルオブジェクト名 <name> は、 ##<page_num>!<name> の形式で <result_attr> に 書き出されます。単一ページファイルでは、このコマン ド は find_obj_names(<result_attr,"",<attr_name_value>) と完全に同じに振舞います。

tg2_find_obj_names_on_all_pages(<result_attr>,<attr_name_value>)

このコマンドは、多ページファイルについてはトップレ ベルオブジェクト名 <name><name>_Page<page_num> の形式で <result_attr> に書き出されることを除い て は、 上 の find_obj_names_on_all_pages() と同じで す。

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()

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

random_permute_lines_in_attr(<attr_name>)

このコマンドは、<attr_name> で指定した属性の行の順 番をランダムに変更します。

数式

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

? 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.GBConvFromUTF8: iconv -f utf8 -t gb2312 Tgif.GBUConvToUTF8: iconv -f gb2312 -t utf8
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 進数文字を指定します。 Tgif.GBUConvFromUTF8 の X default 値は、UTF8 エンコード の 文字列を GB フォントでテキストオブジェクトにペーストすると きに実行するコマンドを指定します。 Tgif.GBUConvToUTF8 の X default 値は、コピー操作の際に選択した文字列 (GB フォント の) をクリップボードにコピーする前に UTF8 形式に変換ときに 実行されるコマンドを指定します。

以 下 は、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.DefaultLatin1FontCharEncoding: STRING

Tgif は、4 つ のデフォルトのフォント、"times", "courier", "helvetica", "new century schoolbook" を使用します。デフォルトでは、これらのフォントの文 字エンコーディングは iso8859-1 です。これらの フォ ン トは、通常可変サイズで、古い Linux システムには あらかじめインストールされています。最近 の Linux システムではそうではなく、あらかじめインストールさ れているこのエンコードのフォントのサイズの種類は多 くなく、可変サイズのインストール済みのこれらのフォ ントは iso10646-1 エンコード (ユニコード) のもので す。この X default 値は、この 4 つのデフォルトフォ ントに対して、 (iso10646-1 のような) 異なる文字 エ ン コー ドを指定するのに使用します。この X default 値は、他のフォント や Tgif.AddtionalFonts の X default 値で指定したフォントには適用されません。デ フォルトの値は iso8859-1 です。

Tgif.HasAlternateDefaultFonts: [true,false]

この X default のデフォルト値は false です。これが ‘‘false’’ にセットされていると、tgif は iso8859 の レジストリ、 ASN1 エンコーディングのスクリーンフォ ン ト ( そ れが Tgif.DefaultFontCharEncoding の X default 値で上書きされていない場合) で、名前の一部 に "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
Courier-Bold
Courier-Oblique
Courier-BoldOblique
Helvetica
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.DefaultColor が、この X default 値よりも 優先されることに注意してください。

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 に設定する必要があ り ます。最近のウィンドウマネージャは、普通アプリケー ションに自分自身のアイコンウィンドウを描画すること を 許 しませんので、 tgif がそのようなウィンドウマ ネージャで動作している場合はこの X default 値は 意 味がありません。デフォルトは false です。

Tgif.UseWMIconPixmap: [true,false]

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

Tgif.DontShowVersion: [true,false]

これを ‘‘true’’ とセットすると、 tgif のバージョン が 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: (obsolete)

こ れを ‘‘true’’ にセットすると、開/閉スプライン曲 線の描画、移動、伸縮にはスプラインのゴム紐を使用し ます。 (そのスプライン曲線にかなり多くの頂点がある 場合は、これは嫌がられるでしょう。) デフォル ト は true です。 tgif-4.2 では structured スプラインオ ブジェクトが追加されているために、この X default 値は現在は非推奨です。

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.0 (基本的に、白でないものはすべて黒にな る) です。

Tgif.EPSIThresholdPreviewBitmap: [true,false]

こ れを ‘‘true’’ にセットすると、EPSI 形式で出力す るときに、プレビュービットマップのビットを ON にす る か OFF にするかを決めるのに単純なしきい値法を使 用します。デフォルトは false です。

Tgif.EPSIPreviewBitmapThreshold: NUMBER

これは、EPSI 形式で出力するときに、プレビュー ビッ ト マップのビットを ON にするか OFF にするかを決め る単純なしきい値 (threshold) アルゴリズムで用い ら れるしきい値を指定します。 NUMBER は 0 から 1 の間 でな け れ ば な り ま せ ん。 デ フォ ル ト の 値 は、Tgif.EPSIThresholdPreviewBitmap が true なら 0.5、 Tgif.EPSIThresholdPreviewBitmap が false な ら 1.0 (基本的に、白でないものはすべて黒になる) で す。

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] 又 は [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.TiffToXbm: 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" です。 bggen(1) は xv(1) パッケージに含まれてい る ことに注意してください。

Tgif.BggenToPpm6: STRING

STRING には、ImageProc Menu から RunBggen() を選択 したときに実行される、 PPM ファイルを生成するコ マ ン ド を指定します。 STRING は、部分文字列 %s を 2 つ含む 必要があり、最初の %s はユーザが指定した 文 字 列に置き換えられ、 2 つ目の %s は、画像の大きさ 情報 (geometry) に置き換えられます。デフォル ト は "bggen %s -g %s" です。 bggen(1) は xv(1) パッケー ジに含まれていることに注意してください。

Tgif.LittleEndianPpm6: [true,false]

これを ‘‘true’’ にセットすると、65535 の maxval を 使用する PPM (または PGM) 画像ファイルの読み込み時 には、それを little endian であるとみなします ( そ れ ら の 画 像形式の規格は big endian となっていま す)。

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: (obsolete)

この X default 値は、これが Xtoolkit と衝突する の で、 tgif-4.2 か らは非推奨となっていて、これは Tgif.WMIconPixmap という名前に変更されています。

Tgif.WMIconPixmap: 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 の起動時に追加色を指 定 す る の に Tgif.AdditionalColors の X default 値が使えます。

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 を ‘‘false’’ にすると、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.EpsToTmpSvg: STRING

EPS ファイルから SVG ファイルへの変換は、2 つの 段 階 で行われ、最初は EPS ファイルを一時ファイルへ、 そしてその一時ファイルを SVG ファイルへ変 換 し ま す。 デ フォ ル ト で は、 一 時ファイルの形式には uniconvertor(1) 形式が使われます。ここで指定 す る STRING は、最初の段階のコマンドですが、それは部分 文字列 %s を 2 つ含む 必要があり、それらは、そ れ ぞ れ EPS ファイルと一時ファイルのフルパス名に置き 換えられます。デフォルトは

pstoedit -dt -f sk "%s" "%s"

です。

Tgif.TmpSvgToSvg: STRING

この X デフォルト値は、上の Tgif.EpsToTmpSvg と 組 み 合わせて使います。 STRING には、変換の 2 番目の 段階のコマンドを指定しますが、それは部分文字列 %s を 2 つ含む 必要があり、それらは、それぞれ一時ファ イルと SVG ファイルのフルパス名に置き換え ら れ ま す。デフォルトは

uniconvertor "%s" "%s"

です。

Tgif.TmpSvgFileExtension: STRING

STRING には、EPS ファイルから SVG ファイルに変換す る際の、中間ファイルで使用されるファイルの拡張子を 指定します。デフォルトは "sk" です。

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.@@@ConvFromUTF8: STRING

STRING には、現在のフォントが @@@ にマッチする名前 を 持つ 2 バイトフォントであるときに、テキストオブ ジェクトにペーストする際に UTF8 エンコード文字列を 変換するのに使用するコマンドを指定します。設定例は 「正方形の 2 バイトフォント」のセクションを参照 し てください。

Tgif.@@@ConvToUTF8: STRING

STRING には、選択文字列 (そのフォントが @@@ にマッ チする名前を持つ 2 バイトフォントであるとき) を ク リップボードにコピーするときに UTF8 形式の文字列に 変換する際に使用するコマンドを指定します。設定例は 「正 方形の 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.PpmToGif: STRING

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

Tgif.PpmToPng: STRING

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

Tgif.PpmToJpeg: STRING

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

Tgif.Ppm6ToXpm3: STRING

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

Tgif.PpmQuantize: STRING

STRING には、PPM ファイルの色数を指定した数に減 色 す る の に 使 用するコマンドを指定します。 STRING は、(1) 減色する数に置き換えられる %d と (2) PPM ファイルのフルパス名に置き換えられる %s の部分文字 列を含む 必要があり ます。デフォルト は "pnmquant %d %s" です。

Tgif.PpmFSQuantize: STRING

STRING には、Floyd-Steinberg ハーフトーンアルゴリ ズムを利用して PPM ファイルの色数を指定した数に 減 色 す る のに使用するコマンドを指定します。 STRING は、(1) 減色する数に置き換えられる %d と (2) PPM ファイルのフルパス名に置き換えられる %s の部分文字 列を含む 必要があり ます。デフォルト は "pnmquant -fs %d %s" です。

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: (obsolete)

この X default 値は、tgif-4.2.3 からは非推奨です。 現 在は <Cntrl>x は Cut コマンドに割り当てられてい ます。 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.PngToPpm6: STRING

STRING には、PNG ファイルを P6 形式の PPM ファイル に 変 換 す る の に使用するコマンドを指定します。 STRING は、部分文字列 %s を含む 必要があり、これは PNG ファイルのフルパス名に置き換えられます。デフォ ルトは

pngtopnm "%s"

です。

Tgif.ObjectShadowOffsets: X_OFFSET,Y_OFFSET

これらの数値は、オブジェクトの一般的な影を生成する ときにずらすピクセル数を指定します。一つの値だけを 与えた場合は、X と Y のずらし値は同じ値にセット さ れます。デフォルトの値は、いずれも 2 です。

Tgif.ObjectShadowColor: COLORSTRING

これは、オブジェクトの一般的な影に使用される色を指 定します。デフォルトの値は "#c0c0c0" です。

Tgif.IgnoreObjectShadowInfoInFile: [true,false]

これを ‘‘false’’ にセットすると、ファイルに保存 さ れ た オ ブ ジェ ク ト の 一 般 的 な 影の情報は、 Tgif.ObjectShadowOffsets と Tgif.ObjectShadowColor の設定を上書きします。デフォルトは true です。

Tgif.ReportMissingFonts: [true,false]

こ れを ‘‘true’’ にセットすると、tgif の起動時に見 つからなかった X のフォントを terminal に出力し ま す。デフォルトは false です。

Tgif.CustomPatternDir: STRING

STRING には、カスタマイズした塗り潰しパターン、ペ ンパターンを含むディレクトリを指定します。このディ レクトリには、任意の大きさのビットマップにエンコー ドされている有効 な XBM ファ イ ル を pat#.xbm (3<=#<=31) のような名前で置き、それがデフォルトパ ターンの # 番に置き換わります。

Tgif.EnableTrueColorImages: [true,false]

これを ‘‘true’’ にセットすると、TrueColor ディスプ レ イ 上 では PPM と JPEG オブジェクトは 24-bit カ ラーを使用します。これを有効にするに は、Tgif を zlib をサポートする形でコンパイルする必要がありま す。デフォルトは true です。

Tgif.AutoRotatePivot: [true,false]

これを ‘‘true’’ にセットすると、ユーザ指定の回転軸 (pivot) は 無効になります。デフォルトは false で す。

Tgif.RightMargin: STRING

STRING には、右 margin (余白) を指定 し ま す。 右 margin に は 単 位をつける必要があります (単位は "pixel", "in", "cm" のい ず れ か)。 デ フォ ル ト は、Tgif.GridSystem が "English" ならば "1 in"、 Tgif.GridSystem が "Metric" なら "2.5 cm" です。

Tgif.EnableRightMargin: [true,false]

これを ‘‘true’’ にセットすると、文字列を入力すると き に 右 margin が一つ使われます。これは、完全な右 margin ではありません。これは、テキストオブジェ ク ト が 変 形 さ れ て お ら ず、 テキストは左合わせ (left-justified) で、テキストカーソルが上付きか 下 付 き 文 字 の 中 に は なく、拡大 (zoom) もなく、 Tgif.EditTextSize が使われてない場合にのみ有 効 で す。デフォルトは false です。

Tgif.NoOrientationIfPdfSetPageDevice: [true,false]

こ れを ‘‘true’’ にセットすると、PS/EPS/PDF ファイ ルに出力するときに、 "setpagedevice" が有効な場 合 に PostScript ファイル内に "%%Orientation:" 行を生 成しません。上の Tgif.PdfSetPageDevice を参照して ください。デフォルトは false です。

Tgif.PNGExportHasTransparentColor: [true,false]

これを ‘‘true’’ にセットすると、PNG 形式に出力する と き に、 Tgif.PNGExportTransparentColor の X default 値に指定した色を透明化します。デフォルトは false です。

Tgif.PNGExportTransparentColor: COLORSTRING

これには、PNG 形式に出力するときに、透明化するため の色を指定します。デフォルトでは、デフォルトの背景 色になります。

Tgif.PpmToPngWithTransparentColor: STRING

STRING には、PPM ファイルを透明色つき PNG ファイル に 変 換 す る の に使用するコマンドを指定します。 STRING は、部分文字列 %s を丁度 2 つ含む 必要が あ り、 これらはそれぞれ透明化色と PPM ファイルのフル パス名に置き換えられます。デフォルト は "pnmtopng -transparent ’%s’ ’%s’" です。

Tgif.EnableThresholdFloodReplaceColor: [true,false]

これを ‘‘true’’ にセットすると、しきい値ベースの塗 り潰し (Flood Fill) と色置換 (Replace Color) を 使 用します。デフォルトは false です。

Tgif.FloodReplaceColorThreshold: RED_THRESH,GREEN_THRESH,BLUE_THRESH

し き い 値 ベースの塗り潰し (Flood Fill) と色置換 (Replace Color) において、ピクセルを選択した後、選 択したピクセルトとほぼ同じ色を持つピクセルの色も変 えられます。その類似性は、3 つのしきい値で定 義 さ れ、 そ の値はそれぞれ 0 から 255 までの値 (端も含 む) です。デフォルトの値はいずれも 15 です。

Tgif.UseStdPalette8: [true,false]

これを ‘‘true’’ にセットすると、起動時の色に標準的 な 8 パレットを使用します。これらの色は赤、緑、青 の各成分値がそれぞれ 0x00 と 0xff のいずれかである 8 種 類 のすべての組み合わせに対応します。この X default 値を使用すると、Tgif.AdditionalColors の X default 値は tgif の起動時に追加色を指定するのに使 われます。デフォルトは false です。

Tgif.UseStdPalette27: [true,false]

これを ‘‘true’’ にセットすると、起動時の色に標準的 な 27 パレットを使用します。これらの色は赤、緑、青 の各成分値がそれぞれ 0x00, 0x80, 0xff のいずれかで ある 27 種類のすべての組み合わせに対応します。この X default 値を使用すると、Tgif.AdditionalColors の X default 値は tgif の起動時に追加色を指定するのに 使われます。デフォルトは false です。

Tgif.UseStdPalette64: [true,false]

これを ‘‘true’’ にセットすると、起動時の色に標準的 な 64 パレットを使用します。これらの色は赤、緑、青 の各成分値がそれぞれ 0x00, 0x55, 0xaa, 0xff のいず れ か である 64 種類のすべての組み合わせに対応しま す。 こ の X default 値 を 使 用 す る と、Tgif.AdditionalColors の X default 値は tgif の起動時に追加色を指定するのに使われます。デフォル トは false です。

Tgif.UseStdPalette216: [true,false]

これを ‘‘true’’ にセットすると、起動時の色に標準的 な 216 パレットを使用します。これらの色は、可搬 な Web セーフカラー (Mobile Web-safe color) として知 られる赤、緑、青の各成分値がそれぞれ 0x00, 0x33, 0x66, 0x99, 0xcc, 0xff のいずれかである 216 種類の すべての組み合わせに対応します。この X default 値 を 使 用すると、Tgif.AdditionalColors の X default 値は tgif の起動時に追加色を指定するのに使わ れ ま す。デフォルトは false です。

Tgif.UseMobileWebSafePalette: [true,false]

これは、Tgif.UseStdPalette216 と同じです。

Tgif.UseOpenOfficeGalaxyPalette: [true,false]

こ れ を ‘‘true’’ に セットすると、起動時の色に OpenOffice Galaxy パレット (53 色) を使用しま す。 こ の X default 値 を 使 用 す る と、Tgif.AdditionalColors の X default 値 は tgif の起動時に追加色を指定するのに使われます。デフォル トは false です。

Tgif.UseOpenOfficeGooglePalette: [true,false]

これを ‘‘true’’ にセットすると、 起 動 時 の 色 に OpenOffice Google パレット (80 色) を使用します。 こ の X default 値 を 使 用 す る と、Tgif.AdditionalColors の X default 値は tgif の起動時に追加色を指定するのに使われます。デフォル トは false です。

Tgif.AdditionalColors: COLOR1, COLOR2 ...

Tgif.ColorFromXPixmap, Tgif.UseStdPalette8, Tgif.UseStdPalette27, Tgif.UseStdPalette64, Tgif.UseStdPalette216, Tgif.UseMobileWebSafePalette, Tgif.UseOpenOfficeGalaxyPalette, Tgif.UseOpenOfficeGooglePalette のいず れ か の X default 値を使用した場合、この X default 値を使っ て起動時の追加色を指定できます。色名にはスペースが 含まれることもありますので、色名はカンマで区切らな ければいけません。

Tgif.DefaultColor: COLORSTRING

これには、適当な色が見つからなかった場合のデフォル ト 色 を指定します。これは、Tgif.DefaultColorIndex の X default 値に優先します。この X default 値を指 定 しないと、Tgif.DefaultColorIndex がデフォルト色 を決定します。

Tgif.GifToPpm6: STRING

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

giftopnm "%s"

です。

環境変数

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 ([email protected])
<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>.