Misc. Reference Manual Pages tgif(n) 名前 tgif - X11 上の Xlib ベースの対話型 2 次元描画ツール。描画面 の階層的な構成や、複数の描画面の容易な行き来をサポートしてい ます。そして World-Wide-Web 上のハイパーグラフィックス (また はハイパー構造を持つグラフィックス) のブラウザにもなっていま す。 形式 tgif [-display displayname] [-fg ] [-bg ] [-bd ] [-rv] [-nv] [-bw] [-reqcolor] [-cwo[+sbwarp]] [- hyper] [-exec ] [-dbim {xcin|chinput|xim|kinput2|tgtwb5[,font]}] [-sbim xim] [- usexlib] [-a4] [-listdontreencode] [-version] [-pdfspd | -pdfspd=true | -pdfspd=false ] [-pssetup "" ] [- nomode] [-geometry ] [=] [{file[.obj]|-merge file1[.obj] file2[.obj] ...}] または tgif -print [-eps] [-p] [-ps] [-f] [-text] [-epsi] [- tiffepsi] [-gif] [-png] [-jpeg] [-ppm] [-pbm] [-xpm] [-xbm] [-html] [-pdf] [-netlist] [-display displayname] [-stdout] [-raw[+h[eaderonly]]] [-dosepsfilter [-previewonly]] [- status] [-gray] [-color | -reqcolor] [-adobe | -adobe=/ | -adobe=false ] [- dontreencode= | -listdontreencode] [-version | -justversion] [-producedby=] [-page ] [- print_cmd ""] [-one_file_per_page] [-pepsc] [- pdfspd | -pdfspd=true | -pdfspd=false ] [-pssetup "" ] [-j2p6_cmd "" ] [-dontcondense | -condensed] [- a4] [-noshowpageineps] [-quiet] [-bop_hook ""] [- eop_hook ""] [-tmp_file_mode ""] [- o] [-exec ] [file1[.obj] file2[.obj] ...] 機能説明 tgif は、対話型描画ツールで、これによりユーザは X ウィンドウ シ ステム内でオブジェクトを描画し、操作できます。tgif は、最 初の形式では対話形式で動作します。「形式」のセクションの第 2 の 形 式では、-eps, -p, -epsi, -tiffepsi, -gif, -png, -jpeg, -ppm, -pbm, -xpm, -xbm, -html, -pdf, -ps, -f, -text, -net- list options の いずれのオプションも指定されていなければ、 tgif は (tgif で生成される) file1.obj, file2.obj 等を、(ウィ ン ド ウ やフォントを開くことなく) PostScript(TM) ページ記述 ファイルとして出力し、lpr(1) へパイプ し ま す。 こ の 出 力 (printing) 形式は、tgif ファイルを他の形式へ変換 (exporting) するための tgif 式のやり方です。この場合、認識できない他のオ プションは、lpr(1) へ送られます。このモードでは、tgif は昔の prtgif と互換になります。拡張子 .sym を明示的に指定すれ ば、 シンボルファイル (説明は以下を参照) も印刷できます。 コマンドライン引数 file は、最初に tgif が編集するオブジェク トのファイルか URL を指定します。URL は HTTP か FTP のみをサ Tgif Last change: Version 4.1 Patchlevel 45 以上 1 Misc. Reference Manual Pages tgif(n) ポートしています。(URL と WWW に関するより詳しい話につ い て は、[1] を参照。) tgif は、純粋に Xlib に基づいています。これは X11R6 でテスト されていて、3 ボタンマウスを必要とします。 オプション 「形式」のセクションの最初の形式では、以下のコマンドライン引 数が使用できます: -fg で前景色を指定 -bg で背景色を指定 -bd で境界色を指定 -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 tgif の起動後、 内の内部コマンドを実行します ( 下 の 「内 部 コマンド」のセクション参照)。 が文字列 "-" の場合は tgif は標準入力から内部コマンドを読み込 ん で実行します。 -dbim method 2 バイトフォントの入力メソッドとして method を使用し ま す ( 下の「正方形の 2 バイトフォント」のセクション参照 )。これは、-sbim と一緒に使うことはできません。 Tgif Last change: Version 4.1 Patchlevel 45 以上 2 Misc. Reference Manual Pages tgif(n) -sbim method 1 バイトフォントの入力メソッドとして method を使用し ま す。 こ れ は、デッドキーをともなう国際的文字の入力に X キーボード拡張 (X Keyboard Extension) が使われている 場 合に便利でしょう。これは -dbim と一緒に使うことはできま せん。 -usexlib tgif が -DUSE_XT_INITIALIZE 付きでコンパイルされてい る 場 合、tgif のセットアップに X Toolkit 初期化ルーチンが 使用されます。このコマンドラインオプションを使 用 す る と、 tgif に強制的にオプション -DUSE_XT_INITIALIZE を無 視させ、Xlib のみを使用させます。これは、tgif のシス テ ム リ ソー スファイルが適切にインストールされないか散ら ばってインストールされていて、それでそれを無視しない と いけない場合に便利でしょう。 -a4 このオプションは Tgif.PSA4PaperSize の X default 値 を true にした場合と同じになります。 -noshowpageineps このオプションは Tgif.ShowPageInEPS の X default 値 を true にした場合と同じになります。 -quiet このオプションを使用した場合、tgif は標準メッセージの出 力を抑制します。 -listdontreencode= このオプションを使用した場合、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 ファイルに取り込むこ と Tgif Last change: Version 4.1 Patchlevel 45 以上 3 Misc. Reference Manual Pages tgif(n) ができます (「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 Last change: Version 4.1 Patchlevel 45 以上 4 Misc. Reference Manual Pages tgif(n) を 生成します。有効なディスプレイにアクセスできない場合 は、tgif は出力に失敗します。 -html file.gif という名前で GIF ファイルを、そして file.html と いう名前で HTML ファイルを生成します。有効なディスプ レイにアクセスできない場合は、tgif は出力に失敗します。 -pdf file.gif という名前で GIF ファイルを、そし て file.pdf と い う 名 前 で PDF ファイルを生成します。下記の「X DEFAULT 値」のセクションの Tgif.PsToPdf に関する注意 を 参照してください。 -netlist file.net という名前と file.cmp という名前のテキストファ イルを生成します。file.net は、netlist の情報を表の形式 で保存しています。最初の行には各列の名前が、そして各 行 に は (二重引用符で囲まれた) ポート名が書かれ、カンマ、 文字が続き、その後ろにシグナル名 (これも二重引 用 符で囲まれている) が続きます。file.cmp は、ファイルの構 成要素に関する情報が入っています。各構成要素は、その 名 前 で 始まり、その後ろにその型が続き、その後ろに ( 文字でインデントされて) その構成要素の属性が出力され ま す。 -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 にステータス行を表示 Tgif Last change: Version 4.1 Patchlevel 45 以上 5 Misc. Reference Manual Pages tgif(n) させます。 -gray このオプションは、Tgif.UseGrayScale の X default 値 を true にした場合と同じになります (「X DEFAULT 値」のセク ション参照)。 -color (または -reqcolor) カラーで印刷するには、-color か -reqcolor のいずれか の オ プ ショ ンが使用できます。両者の違いは、-reqcolor が Tgif.PrintUsingRequestedColor の X default 値を true に し た場合と同じことになるのみです (「X DEFAULT 値」のセ クション参照)。 -adobe (または -adobe=/ -adobe=false) このオプションは、Tgif.UsePsAdobeString の X default 値 を指定することと同じになります。 -dontreencode= このオプションは、Tgif.DontReencode の X default 値を指 定することと同じになります。 -producedby= このオプションは、Tgif.ProducedBy の X default 値を指定 することと同じになります。 -page 指定されたページ ( で指定) を出力します。 -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 ファイルの出力時の最終的な Tgif Last change: Version 4.1 Patchlevel 45 以上 6 Misc. Reference Manual Pages tgif(n) PostScript ファイルには "setpagedevice" は生成されま せ ん。 こ の オ プ ショ ン は、Tgif.PdfSetPageDevice の X default 値を上書きします。 -pssetup このオプションは、Tgif.AdditionalPSSetup の X default 値を指定することと同じになります。 -j2p6_cmd このオプションは、Tgif.JpegToPpm6 の X default 値を指定 することと同じになります。 -dontcondense このオプションは、Tgif.DontCondensePSFile の X default 値を true にした場合と同じになります。 -condensed このオプションは、Tgif.DontCondensePSFile の X default 値を false にした場合と同じになります。 -bop_hook と -eop_hook これらのオプションは、Tgif.PSBopHook と Tgif PSEpsHook の X default 値を指定することと同じになります。 -tmp_file_mode このオプションは、Tgif.TmpFileMode の X default 値を 指 定することと同じになります。 -o このオプションを指定しない場合、出力ファイル (eps, ps な ど ) は入力ファイルと同じディレクトリに作られます。 -o を指定した場合、出力ファイルは で指定しさ れたディレクリに作られます。 -merge file1 file2 ... このオプションは、file1.obj, file2.obj, 等を一つのマ ル チページファイルに連結します。 基本的な機能 tgif がサポートする基本的 (primitive) なオブジェクトは、長方 形、楕円、角の丸い長方形、円弧、折れ線、多角形、スプライン開 曲線、スプライン閉曲線、文字列、X11 ビットマップ画像、特定の 形 式 の X11 ピクスマップ画像、そしてカプセル化 PostScript ファイル (EPS) です。(tgif が描くスプライン曲線は、Bezier 曲 線 で はないことに注意してください。) 複数のオブジェクトをグ ループ化して、一つのグループオブジェクトにすることもで き ま す。一つの基本的なオブジェクト、または一つのグループオブジェ クトから、一つのアイコンオブジェクト、または一つのシンボルオ ブジェクトをユーザコマンドを通して作成できます。 tgif のオブジェクトは、2 つの形式のファイルで保存されま す。 .obj という拡張子を持つファイル (以後オブジェクトファイルと 言う) はオブジェクトのファイルで、 .sym という拡張子を 持 つ Tgif Last change: Version 4.1 Patchlevel 45 以上 7 Misc. Reference Manual Pages tgif(n) ファ イル (以後シンボルファイルと言う) は一つの ``組み上げ'' オブジェクトを特定します。 .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 文書に含ませる ことができます (訳注: これはやや古い記述で、現在は \include- graphics を 使用すべきです)。これについては、後で述べます。 EPS と EPSI 形式の違いは、EPSI ファイルがプレ ビュー ビッ ト マップ画像を含むことだけです。しかし、プレビュービットマップ 画像を生成するには時間がかかります。そのプレビュービットマッ プをどのように使用するかを知らないツールに EPS/EPSI ファイル を取り込む場合、EPSI 形式を使わないようにすれば時間を節約 で き ます。Choice Window に T アイコンが表示されている場合、出 力は、 .txt という拡張子のファイルとして生成されます。 こ の ファ イ ルは、表示されるすべての文字列を含むテキストファイル で、例えばスペルチェッカーで利用できます。Choice Window に x11bm (X11 ビッ トマップ) アイコンが表示されていて、かつカ Tgif Last change: Version 4.1 Patchlevel 45 以上 8 Misc. Reference Manual Pages tgif(n) ラー出力が選択されていない場合、tgif は出力を .xbm という 拡 張子のファイルとして生成します。この出力は、X11 ビットマップ 形式です。しかしChoice Window に x11bm アイコンが表示され て いて、かつカラー出力が選択されている場合 (キーボードコマンド ^#k によって; ここで ^ は 、# は ま た は キー) は、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) オブジェクトを指 定していることを思い出してください。) シンボルファイル内のシ ン ボルオブジェクトは、組み上げオブジェクトの表現 (represen- tation) 部分で、シンボルファイルの残りの部分は、組み上げオブ ジェクトの定義部分です。シンボルオブジェクトは、それ以外のオ ブジェクトと区別するために、点線の外枠でハイライトされていま す。組み上げオブジェクトが例示的 (instantiated) である場合、 そのファイルのシンボル部分は、グラフィックエディタにコピーさ れ、それは組み上げオブジェクトのアイコンになります。 tgif のすべてのオブジェクトは、移動、二重化、削除、回転、 反 転、斜行変形できます。しかし、非伸縮テキストモードでは、テキ ストオブジェクトは伸縮できません。テキストオブジェクトに対し ては、それが伸縮、回転、斜行変形されたものでなければ、それを 水平方向に反転すると文字列の位置合わせも変化しますが、垂直方 向の反転では何も変わりません。 tgif は、32 種類の塗り潰しパターン、32 種類のペンパターン、7 種 類のデフォルトの線幅、折れ線と開スプライン曲線に 4 種類の Tgif Last change: Version 4.1 Patchlevel 45 以上 9 Misc. Reference Manual Pages tgif(n) 線スタイル (真っ直ぐ (plain)、先頭に矢先、後尾に矢先、両端に 矢 先)、9 種類の点線パターン、3 種類の位置合わせ、4 種類の文 字スタイル (ローマン (立体)、イタリック (斜体)、ボールド (太 字)、ボールドイタリック (斜体太字))、11 種類のデフォルトの文 字サイズ (75dpi フォントには 8, 10, 12, 14, 18, 24, 100dpi フォ ントには 11, 14, 17, 20, 25, 34) 5 種類のデフォルトフォ ント (Times, Courier, Helvetica, New-Century-Schoolbook, Symbol)、11 種類のデフォルトカラー (赤紫、赤、緑、青、黄色、 ピンク、水色、青灰色、白、黒、黒板色) をサポートしています。 また、Tgif.MaxLineWidths, Tgif.LineWidth#, Tgif.ArrowWidth#, Tgif.ArrowHeight# の X default 値を使うことで、線幅の追加 が できますし、Tgif.FontSizes の X default 値を使うことで、文字 サイズの追加が、Tgif.AdditionalFonts の X default 値を使うこ とで、フォントの追加ができます。デフォルトのフォントが有効で ない場合、Tgif.HasAlternateDefaultFonts とそれに関連す る X default 値を指定することで、デフォルトのフォントを別なものに 置き換えることもできます。Tgif.MaxColors と Tgif.Color# の X default 値を使うことで、色の追加が行えます。色の追加は、Edit Menu から AddColor() を選択することでも行えます。 tgif のコマンドは、たいていは、ポップアップメニューから、 ま た は 適当な英数字以外のキーを打つことのいずれかで利用できま す。任意のオブジェクトを変更するすべての操作はアンドゥ(undo) と リドゥ(redo) が行えますが、ズームやスクロール、またはテキ ストオブジェクトが選択されていない場合のフォントの変更などの コ マンドは undo できません。undo, redo の履歴のバッファサイ ズは、Tgif.HistoryDepth の X default 値を使うことで設定で き ます。 TGIF の子ウィンドウ このセクションでは tgif のウィンドウについて説明します。 Top Window 現在のドメインと tgif が見ているファイルの名前を表示 し ま す。このウィンドウでのマウスクリップとキー押しでは何 も起きません。 Menubar Window このウィンドウは、Top Window の真下にあります。そ こ か ら、 任意のマウスボタンでプルダウンメニューが起動します が、キーを押しても何も起きませ ん。 Layout Menu か ら HideMenubar() を選択すると、このウィンドウは見えなくな ります。Layout Menu から ShowMenubar() を選択すると (下 の Canvas Window から起動できます)、このウィンドウは見 えるようになります。 View, Text, Graphics のプルダウンメニューはカスケード ( 訳 注: すべての項目が子プルダウンメニューを持つ状態を指 しているよう) なので、ピン留めできません (詳細はサブ セ クション Popup Menus 参照)。 Message Window Tgif Last change: Version 4.1 Patchlevel 45 以上 10 Misc. Reference Manual Pages tgif(n) これは、Menubar Window のすぐ下の左に置かれています。 ( 訳 注 : これは version 3.X 以前の tgif に関する記述で、 4.X 以降は Message Window と Choice Window は左右逆の配 置になっています。) これは、tgif のメッセージを表示しま す。このウィンドウでマウス左ボタンをクリックすると メッ セー ジ を 下に向かってスクロールし、マウス右ボタンをク リックすると上に向かってスクロール、マウス中ボタンの ク リッ ク や ドラッグで、どこでマウスがクリックされたかに よって、メッセージヒストリのその場所へスクロー ル し ま す。マウス左/右ボタンのクリックのときに (または ) キーが押されていれば、それは左/右のスク ロー ルになります。 Panel (Choice) Window これは、Messeage Window の右に置かれていて (訳注: ver- sion 3.X 以 前 の tgif では、Message Window と Choice Window は、今のと左右逆でした)、そこには tgif の現在 の 状態に影響を与えるアイコン (tgif の「アイコンオブジェク ト」と混同しないように) の集合があります。上から下、 左 か ら右の順に、それらは、現在の描画モードの表示、ページ スタイル (縦置き、横置き)、編集 (edit; 以下参照)、出 力 モー ド (print/export)、拡大率、移動/伸縮モード (強制ま たは非強制)、角の丸い長方形の半径、文字の回転、ページ番 号か行/列、ページレイアウトモード (積み上げかタイル貼り か)、水平方向の整列設定 (L C R S -)、垂直方向の整列設定 (T M B S -)、フォント、文字サイズ、一つのテキストオブ ジェクト内のテキストの行間隔、文字列位 置 合 わ せ、 形 (shape; 以 下 参照)、伸縮/非伸縮テキストモード、点線パ ターン、線スタイル、折れ線かスプラインか補間スプライ ン か、 線幅、塗り潰しパターン、ペンパターン、色、スペシャ ル (以下参照)、となっています。(訳注: これらも version 3.X 以前の tgif の話で、今は多少違っています。) さらに、現在の tgif の状態を表示させたい場合は、 Choice Window のアイコンを現在の状態に変えるこもできます。各ア イコンは、tgif の個々の状態変数に関連しています。アイコ ン の上でマウス左ボタンをクリックすると、そのアイコンに 関連する状態変数の値が前方に周期的に変化し、マウス右 ボ タ ンをクリックすると後方に変化します。アイコンの上でマ ウス中ボタンをドラッグすると、通常は下の Canvas Window に関する Main Menu 内のエントリに関連するポップアップメ ニューを生成します。(上で述べた ``edit'', ``shapre'', ``special'' ア イコンはダミーアイコンで、Choice Window 内で ``edit'', ``shapre'', ``special'' のメニューにアク セ スできるようにしているものです。左や右のマウスクリッ クでは応答しません。) マウス中ボタンのドラッグに対す る 反 応 は、 拡大、半径、垂直間隔のアイコンでは違っていま す。左、または上にマウスをドラッグすると拡大率は上昇 し ま すが、半径や垂直間隔は減少し、右、または下にドラッグ すると逆の結果になります。 Tgif Last change: Version 4.1 Patchlevel 45 以上 11 Misc. Reference Manual Pages tgif(n) 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 に現れる順番で言えば)、 選 択 モー ド、テキストモード、長方形モード、角指定の楕円モー ド、中心指定の楕円モード、端指定の円周モード、折れ線 ( 開 スプライン) モード、多角形 (閉スプライン) モード、円 弧 (中心が先) モード、円弧 (端点が先) モード、角の丸 い 長 方形モード、フリーハンドの折れ線 (開スプライン) モー ド、頂点選択モード、回転/斜行変形モードがあります。描画 モー ド が 長 方 形か楕円か、角の丸い長方形であるときに キーを押した場合は、それぞれ正方形、正円、角 の 丸 い正方形が描画されます。マウス中ボタンをドラッグする と、Main Menu が生成されます。 Tgif Last change: Version 4.1 Patchlevel 45 以上 12 Misc. Reference Manual Pages tgif(n) 選択モードでは、マウス左ボタンによるオブジェク ト の 選 択、 移 動、 伸縮、変形が行えます (ダブルクリックで頂点 モードで選択されたすべてのオブジェクトの選択が `` 解 除 '') されます。一つのオブジェクトが選択されているとき、 それはそれを囲む枠の角、または頂点上に現れる小さな正 方 形 ( こ こ で は ハ ンドルと呼びます) で明示化されます (Tgif.HandleSize の X default 値でハンドルのサイズは カ ス タ マイズできます)。ハンドルの一つをドラッグすること で、選択されたオブジェクトの伸縮/変形が行えます。選択さ れ た オ ブジェクトを移動するには、ハンドルをドラッグせ ず、代わりにオブジェクトの別の部分をドラッグします。 例 え ば、オブジェクトが中空の長方形 (塗り潰しは NONE でペ ンは NONE 以外) の場合、その長方形を選択するには、そ の 長 方形の枠線上でマウス左ボタンをクリックします。その長 方形を移動するには、マウス左ボタンで長方形の枠 線 を ド ラッ グします。その長方形が塗り潰されている場合 (塗り潰 しが NONE 以外)、長方形内部の任意の場所をドラッグすれば それを移動できます。 今はまだ選択されていないオブジェクト上で キーを 押 したままマウス左ボタンをクリックすると、そのオブジェ クトが既に選択されたオブジェクトのリストに追加 さ れ ま す。 その同じ行為は、既に選択されたオブジェクトを選択解 除にするのにも使われます。オブジェクトを伸縮するとき ( 折 れ 線、 多 角形オブジェクトの変形以外で)、伸縮の後で キーを押すとそれは比率を変えない伸縮 (基本的 に は 相似伸縮が行われる) の有効化を開始します。非伸縮テキ ストモードでは、テキストオブジェクトは伸縮も相似伸縮 も できません。 キーが押されているときにマウス中ボタンをダブ ル ク リック、またはクリックすると、テレポート (または移動 )、外部コマンドの起動、内部コマンドの実行の仕組みが有効 に な ります。詳細は、「テレポート/ハイパージャンプ」、 「外部アプリケーションの起動」、「内部コマンド」のセ ク ショ ンを参照してください。テレポートは外部コマンドの起 動よりも優先的で、外部コマンドの起動は内部コマンドの 実 行 よりも優先的です。文字描画モードでは、文字列編集領域 の内部で キーを押したままマウス中ボタンをドラッ グすると、文字列編集領域が移動します。 選択されたオブジェクトを移動するのには、矢印キーも使 え ま す。しかし、オブジェクトが選択されていない場合は、矢 印キーを使うと描画領域が少しずつスクロールします。 キーを押して矢印キーを使うと、スクリーン全体がス クロールします。 頂点選択モードでは、マウス左ボタンで頂点を選択し移動 し ま す。頂点選択モードが有効なとき、選択されているトップ レベルの折れ線/開スプライン、多角形/閉スプラインのオ ブ ジェ ク ト のみが頂点の操作に関する資格があります。この モードでは、資格のあるすべてのオブジェクトの頂点が小 正 Tgif Last change: Version 4.1 Patchlevel 45 以上 13 Misc. Reference Manual Pages tgif(n) 方形で明示化されます。(上で説明したオブジェクトの選択と 同じ仕組みによって) 頂点を選択すると、それは '+' の印で 二 重に明示化されます。これら二重に明示化されている頂点 に有効な操作は、移動、削除、整列化 (そのそれぞれへ) 、 分散 (等間隔に)、格子への整列化、です。選択された頂点の 移動には、矢印キーも使えます。 オブジェクトは (キーボードコマンド #< を使って) ロッ ク で きます。ロックされたオブジェクトは灰色のハンドルで表 示され、それらは移動、伸縮、反転、回転、斜行変形がで き ま せん。オブジェクトがグループ化されている場合、その構 成要素の一つがロックされていれば、結果としてのグルー プ オ ブジェクトもロックされます。ロックされたオブジェクト は、色、フォント、ペン等の性質は変更できますし、それ ら を削除することもできます。 現在の移動/伸縮モードが強制型 (キーボードコマンド #@ で 有効/無効にできる) である場合、トップレベルの折れ線は以 下のように振舞います。移動操作では、一つの折れ線の両 方 の 端点が移動させられるオブジェクトの内側に入っている場 合、折れ線全体が移動されます。そうでなくて、一つの端 点 の みが移動させられるオブジェクトの内側に入っている場合 は、その端点が移動します。移動する端点の隣の頂 点 も 水 平、 あるいは垂直に移動できます。最後の線分が水平、また は垂直である場合、その隣の頂点は最後の線分の方向が保 持 さ れ る ように移動されます。伸縮操作 (変形ではない) で は、折れ線の一つの端点が移動させられるオブジェクトの 内 側 にある場合、その端点が移動します。端点の隣の頂点も、 上に説明したのと同じ規則で移動します。 描画モードがテキストにセットされると (垂直バーのカー ソ ルが表示される)、マウス左ボタンで選択されたテキストが編 集モードに入ります。マウス左ボタンをドラッグ、 ま た は キー を 押したままマウス左ボタンをクリックする と、テキストの部分文字列がハイライト表示されます。ダ ブ ル クリックは、単語の選択になります。編集モードでは、押 したキーは入力文字列であると見なされ、矢印キーは現在 の 入 力位置の移動として使われます。 キーの後でキーを 押すと、bit 7 (訳注: いわゆる 8 ビット目) がオンにな り ま す。これにより、非 ASCII (国際) 文字が入力できるよう になります。xfd(1) を使えば、各 ASCII 文字に対する国 際 文字が何であるかを見ることができます。Symbol フォントに 対しては、積分記号、偏微分記号、著作権記号のような記 号 は すべてのこの範囲で見つけることができます。X11 ではサ ポートされていても、PostScript ではサポートされない文字 も あります。これらの文字は tgif では許可されません。編 集されているテキストがオブジェクトの属性であ る 場 合、 で カー ソ ル を次の見える属性へ移動でき、 でカーソルを前の見える属性へ移動できます。 描画モードが、多角形描画 (閉スプラインで は な く ) で キーが押されている場合は、多角形はゴムひも状に Tgif Last change: Version 4.1 Patchlevel 45 以上 14 Misc. Reference Manual Pages tgif(n) 自分で閉じられます。 折れ線、開スプラインを書くのにフリーハンド描画モード を 使うことができます。すべての中間点は、(折れ線モードでは マウスボタンをクリックするのに対して) マウスの 移 動 に よっ て指定されます。2 つ目の端点は、マウスボタンを放す ことで指定されます。 (テキストモードを除く) すべての描画モード で は、 キー を押すと現在のオブジェクトの描画 (生成) がキャンセ ルされます。 マウス中ボタンは、常に tgif ポップアップメニューを生 成 し ます。 キーを押したままマウス右ボタンをクリッ クすると、描画モードが選択に変わりま す。 キーを押したままキーを押す (これは制御文字も生成 しますので、非英数字キー押し、と呼ばれます) と、これ は コ マ ン ドと扱われます。その割り当てについては次のセク ションで要約します。ユーザは、非英数字キーコマンドの 機 能 を実行する単一キーコマンドを定義することもできます。 詳細は、「ショートカット」のセクションで説明します。 Scrollbars 垂直/水平スクロールバー内でマウス左ボタンをクリックする と、キャンバスウィンドウが下/右に少しスクロールし、マウ ス右ボタンをクリックすると逆方向にスクロールしま す。 ( ファ イル名やドメイン名を選択するポップアップウィンドウ のスクロールバーも同様の挙動です。) (訳注: い ず れ も version 3.X 以 前の挙動。) キーを押したままク リックすると、ウィンドウサイズ分スクロールします。マ ウ ス 中ボタンをクリックかドラッグすると、スクロールバー内 のその灰色領域に対応する位置へスクロールします。(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 Last change: Version 4.1 Patchlevel 45 以上 15 Misc. Reference Manual Pages tgif(n) れます。中断アイコンが表示されているときにユーザがこ の ウィンドウをクリックすると、tgif はオブジェクトの再描画 を中断します。(Open() か Push() のいずれかにより) ファ イ ルを開いているときにこれが行われると、オブジェクトの 描画を中止しますが、ファイルの読み込みは続けます ( ファ イルの読み込みは中断しません)。 tgif が現在ハイパースペースモード (詳細は、下の 「ハ イ パー スペース」のセクションを参照してください) にある場 合、中断アイコンが表示されていないときは宇宙船アイコ ン が 表示されます。このウィンドウ内で任意のボタンをクリッ クすると、tgif はハイパースペースモードに入るか抜け出る かを切り替えます。 Page Control Window Page Control Window は、水平スクロールバーの左にあり ま す。 こ の ウィンドウは、現在のページモードがタイル貼り (tiled) ページモードにセットされている場合は空です。 現 在のページモードが積み上げ型 (stacked) ページモードの場 合、このウィンドウのタブ子ウィンドウ内に各ページのタ ブ が 作 ら れ、マウス左ボタンをそのタブの上でクリックする と、対応するページへ移動します。マウス中ボタンをク リッ ク すると、Page Menu が現れます。描画中のページ数が多す ぎてすべてのページのタブを表示できない場合は、Page Con- trol Window の左側にあるアイコンでタブ子ウィンドウをス クロールできます。1 つ目のアイコンをクリックすると、 最 初 のタブが見えるようにスクロールし、4 つ目のアイコンを クリックすると、最後のタブが見えるようにスクロールし ま す。 2 つ目のアイコンをクリックすると、最初のタブの方へ 一つスクロールし、3 つ目のアイコンをクリックすると、 最 後のタブの方へ一つスクロールします。 Status Window このウィンドウは、水平スクロールバーの下にあります。 こ れ は、マウスボタンが押し下げられたときにどんな動作が行 われるのかを表示しています。メニューがプルダウン、あ る い はポップアップされると、このウィンドウは、メニューの 項目が選択された場合にどんな動作が行われるのかを表示 し ま す。これは、その他の状態情報も表示します。この上での マウスクリック、キー押しでは何も起こりま せ ん。 Layout Menu から HideStatus() を選択すると、このウィンドウは非 表示となり、Layout Menu から ShowStatus() を選 択 す る と、このウィンドウは表示されます。 このウィンドウがマウスボタンの状態を表示してい る と き は、 デ フォ ルトではそれは右手用のマウスを仮定していま す。gif.ReverseMouseStatusButtons の X default 値 を true とすると、その状態表示は (左手用のマウスが使われて いるように) 反対になります。 Popup Menus マウスドラッグによりメニューがポップアップしたとき に、 Tgif Last change: Version 4.1 Patchlevel 45 以上 16 Misc. Reference Manual Pages tgif(n) 水 平方向にそれを十分遠くまでドラッグ (それに必要な距離 は、Tgif.MainMenuPinDistance の X default 値の設定で 決 ま ります) すると、メニューをピン留めできます。ピン留め されたメニュー内でマウス右ボタンをクリックすると、そ の メ ニューは消え、ピン留めされたメニュー内でマウス左ボタ ンをドラッグすると、メニューの位置が再び 移 動 し ま す (Tgif.TitledPinnedMenu の X default 値が true にセット されている場合を除いて。これがセットされていると、マ ウ ス左ボタンはマウス中ボタンと同じ機能を果たします)。マウ ス中ボタンをそのメニュー内でクリックすると、マウスの 真 下にある項目が機能します。 非英数字キーバインド tgif で行えるほとんどの操作は、非英数字キーを使って行えま す ( ポップアップメニュー、またはショートカットキーからのみ有効 な操作もいくつかはあります)。このセクションで は、 キーを押してのキーストロークで実行できる操作を要約 します。以下の記述では、``^'' は キーを、``#'' は キーを表します。(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 ドメインを変更 Tgif Last change: Version 4.1 Patchlevel 45 以上 17 Misc. Reference Manual Pages tgif(n) ^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% の場合) の割合の設定 #: デフォルトの拡大率へ #` ページ全体が見えるように全体を縮小表示 #~ 選択したオブジェクトを新しいファイルに保存 #; 選択したビットマップ/ピクスマップオブジェクトをカットと 拡大 Tgif Last change: Version 4.1 Patchlevel 45 以上 18 Misc. Reference Manual Pages tgif(n) #_ 選択したオブジェクトを水平方向にくっつける #| 選択したオブジェクトを垂直方向にくっつける ## テキストオブジェクトを一文字のテキストオブジェクトに 分 解 #^ 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 Last change: Version 4.1 Patchlevel 45 以上 19 Misc. Reference Manual Pages tgif(n) のショートカットキーは、描画モードがテキストモードにセットさ れていない場合にのみ有効です)。Tgif.ShortCuts は、いくつかの 項 目のリストで、個々の項目はキー(大文字小文字は区別する) と コマンドの割り当てを指定します。項目同士は空白で分離し、各項 目は以下のように解釈されます。項目は KEY と COMMAND のふたつ の部分からなり、これらは文字 ':' で連結されます。その KEY 部 分 の書式は、:x, !x, x (ここで、文字 'x' は例 として使われています。さらに、部分文字列 は、それが 完 全にここに現れている形のまま綴らなければいけません) のいずれ かです。最初の 2 つの書式は同等で、これらは x の小文字を指定 し ています。3 番目の書式は、'x' と 'X' の両方の文字を指して います。COMMAND 部分は、tgif のポップアップメニューの文字 列 から空白文字を取りのぞいたもの (例外は以下に記します) にマッ チする文字列です。これは、以下の例で説明します。Edit Menu に 以下のようなエントリが 2 つありますが、 "Delete ^x" "SelectAll ^a" これらは、x が Delete() コ マ ン ド を 有 効 に、 a が SelectAll() コマンドを有効にすることを意味して います。よって、これら Delete() と SelectAll() が、ショー ト カッ ト指定の COMMAND 部分に使える名前です。この例を完成させ ると、以下の行で小文字の 'x' が Delete() に、 'a' と 'A' が SelectAll() に割り当てられるようになります: Tgif.ShortCuts: !x:Delete() \n\ a:SelectAll() さらなる例については、X default ファイルのサンプ ル で あ る tgif.Xdefaults を参照してください。tgif 配布物に含まれていま す。 ここに、COMMAND がメニュー項目のコマンド名には一致していない 例外を一覧として紹介します。左側のエントリは、正式な COMMAND 名、右側はそのコマンドに対応する、ポップアップメニューに現れ る文字列のリストです。 CyclePrintFormat() Printer, LaTeXFig, RawPSFile, XBit- map, 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, HideMeasure- ment ToggleLineType() (advances between different curved shapes) ScrollPageUp() (scroll up a window full) ScrollPageDown() (scroll down a window full) Tgif Last change: Version 4.1 Patchlevel 45 以上 20 Misc. Reference Manual Pages tgif(n) 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(=) (toggle name shown for the attribute ) ToggleSmoothHinge() (convert smooth to hinge and hinge to smooth points) ToggleShowMenubar() ShowMenubar, HideMenubar ToggleShowStatus() ShowStatus, HideStatus ToggleShowMode() ShowMode, HideMode ToggleOneMotionSelMove() OneMotionSelMove, ClickSel- ClickMove ToggleHyperSpace() GoHyperSpace, LeaveHyperSpace ImportOtherFileType() (import using a filter named ) BrowseOtherType() (browse using a filter named ) 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 はカ ラーマップのフラッシュ現象を避けるために、共有カラーマップを Tgif Last change: Version 4.1 Patchlevel 45 以上 21 Misc. Reference Manual Pages tgif(n) 使うことを試みます。よく XPM や GIF オブジェクトを使用する場 合は、以下の X default 値を設定することで f キー を FlushUndoBuffer() 操作に割り当てることができ、そして XPM/GIF オブジェクトを削除したときに f キーを使ってそのカラー マップのエントリを復帰することができます。 Tgif.ShortCuts: !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 Tgif Last change: Version 4.1 Patchlevel 45 以上 22 Misc. Reference Manual Pages tgif(n) 上の "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" (大文字小文字は区別される) とい う 名前の一つの属性 (詳細は、下の「属性」のセクションを参照) を持つ場合、その属性の値部分は、そのオブジェクトの名前となり ます。合成オブジェクトの部分オブジェクトは、パスを使って名前 付けできます。例えば、!!!... で、ここ で は トップレベルオブジェクトの名前で、直接 を含んでいて、こ れはまた直接 を含み、といった具合です。!* は、現在選 択 されているオブジェクトを参照します (複数のオブジェクトが選択 されている場合、積み上げ順で最も上のオブジェクトが使われます )。 !*! は、現在選択されているオブジェクトのサブオブ ジェクト のサブオブジェクト の名前です。 Tgif Last change: Version 4.1 Patchlevel 45 以上 23 Misc. Reference Manual Pages tgif(n) 以下は、まだ完全にはサポートされていません ( 現 時 点 で は # 形式のみがサポートされています)。tgif ファイル内のす べてのオブジェクトは、#! という記法を使うこと に よっ て 一 意に名前をつけることができます。ここで、 は ページの名前を指定する文字列か、またはページ番号を指定 す る # のいずれかです。 は、前の段落で述べたもので す。一つのオブジェクト o1 が、同じファイル (# の前にはファイ ル名、URL が指定されていない) 内で他のオブジェクト o2 で参照 され、 が省略されている場合、o1 は o2 と同じページにな く て は なりません。# の前にファイル名か URL が指定されてい て、かつ が省略されている場合は、o1 は最初のページ に なくてはなりません。 属性 属性は、name=value または value の形式の文字列で、これらは現 在の描画、または任意の文字列ではないオブジェクトのいずれかに 付属します。現在の描画に付属する属性は、ファイル属性と 呼 ば れ、その他は正則属性と呼ばれます。属性は以下のような場合を除 いて、それらのオブジェクトに付属させたり取り外せたりできます : 組み上げオブジェクトファイルのシンボルオブジェクトに 現 れ る属性は、組み上げオブジェクトが例示的である場合は取 り外せません。この属性は、アイコンオブジェクトの ``遺伝 '' 属 性 であると見なされます。(実際にあるアイコンオブ ジェクトの遺伝的な属性を取り外す必要がある場合、その ア イ コ ンオブジェクトは Special Menu 内の UnMakeIconic() を使ってそれをグループオブジェクトにすることで ``非アイ コン化'' でき、それによりその属性を取り外すことができま す。) ファイル属性は、常に表示されません。正則属性に関しては、ユー ザには属性のどの部分を表示させるか、という制御が与えられてい ますが、属性全体を非表示にもできますし、その名前だけを非表示 にもできます (#m, #n, #j, #-, ^#h 等の Special Menu のコマン ドによって行えます)。 テレポート/ハイパージャンプ tgif は .obj や .sym ファイルの間を行ったりきた り (travel) す る 仕組みを提供しています。あるオブジェクトの上で キーを押したままマウス中ボタンをクリックすると (またはそのオ ブジェクトをダブルクリックすると)、tgif はそのオブジェクトの (デフォルトでは) warp_to または href という名前の属性を探 し ます。warp_to と href の唯一の違いは、warp_to 属性の値には自 動的に ".obj" が追加され、href 属性の値はそのまま使われ る、 と いうことです。(warp_to は、現在は非推奨であることに注意し てください。これは互換性の目的で今でもサポートしています。 ) そ の よ うな属性が見つかった場合、その属性値が移動先の .obj ファイルの名前であると解釈されます。(tgif がハイパースペース モードである場合、左マウスボタンのクリックが同じ効果を持ちま す。) そのオブジェクトに複数の href 属性が存在し、そして色が 異なる場合、tgif は Choice Window に現れている現在の色と同じ Tgif Last change: Version 4.1 Patchlevel 45 以上 24 Misc. Reference Manual Pages tgif(n) 色を持つ方を使います。現在のファイルが修正されている場合、次 のファイルへの移動前に、ユーザにそのファイルを保存するか問い 合わせます。href 属性の値部分が文字 '/' で始まっている 場 合 は、その値は絶対的なファイル名であるとして扱われ、そうでなけ れば相対的なファイル名として扱われます。 ハイパースペース tgif は、.obj ファイル間の移動を楽にするハイパースペースモー ドを提供します。Navigate Menu から GoHyperSpace() を選択する ことで、ハイパースペースモードに入ります。ハイパース ペー ス モー ドでは、Message Window の下の小さなウィンドウに小さな宇 宙船が表示されます。リモート URL が開かれている場合も、自 動 的 に ハ イ パー ス ペー ス モー ド に 入 り ま す (Tgif.AutoHyperSpaceOnRemote の X default 値が false に設 定 されていない場合)。 ハイパースペースモードでは、あるオブジェクトがホットリンクで あると見なされます。カーソルがこれらのオブジェクトの一番上に 置かれている場合、それはポインタから手に変わりますが、それは 左 マ ウスボタンのクリックがある動作を呼び出すことを意味しま す。一つのオブジェクトは、それが「テレポート/ハイパージャ ン プ」、「外部アプリケーションの起動」、「内部コマンド」のいず れかのセクションに書かれている属性を含んでいる場合にホットリ ンクとなります。 ハイパースペースモードは、描画モードが変更したとき、あるいは Navigate Menu から LeaveHyperSpace() を選択したときに終了し ます。 外部アプリケーションの起動 tgif は、外部アプリケーションを起動する仕組みを提供してい ま す。 あるオブジェクトの上で キーを押したままマウス中 ボタンをクリックすると (またはそのオブジェクトの上でダブルク リッ ク す ると)、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 でその Tgif Last change: Version 4.1 Patchlevel 45 以上 25 Misc. Reference Manual Pages tgif(n) 箱に文字列を付属 (attach) させ、そして、その箱 (またはその文 字 列) の上で キーを押したままマウス中ボタンをクリッ クすることで man(1) コマンドを実行させます。より綺麗にしたけ れ ば、 そ の箱を X11 ピクスマップのオブジェクトで置き換え、 'launch' 属性は見えないようにし、 'title' 属性はセンタリング し て その名前をキーボードコマンド #m で見えないようにできま す。 セキュリティを考慮して、ハイパースペースモードでは、デフォル トでは外部アプリケーションの起動はできないようになっています (これは、Tgif.AllowLaunchInHyperSpace の X default 値の設 定 で 変更できます)。もしハイパースペースモードでコマンドの起動 に出会った場合は、そのコマンドが表示され、ユーザにそのコマン ドを実行するかどうかを問い合わせます。 内部コマンド Tgif は、内部コマンドを実行する仕組みを提供しています。あ る オブジェクトの上で、 キーを押したままマウス中ボタンを クリックする (またはそのオブジェクトの上でダブルクリックする ) と、tgif はそのオブジェクトの exec という名前 (デフォルト) の属性を探し、そのような属性が見つかった場合、属性の値の部分 を実行する内部コマンドのリスト (セミコロン区切り) であると解 釈します。上の「テレポート/ハイパージャンプ」のセクション に 書かれているのと同じ色の規則が適用されます。コマンドは通常以 下のような形式を取ります: ( , , ..., ) コマンドの引数は、文字列か数値です。文字列引数は二重引用符で 囲む必要があります。数値引数は、数値か "$(x)" の形式の文字列 で、ここで x は他の属性の名前です (この形式は置き換えとし て 参 照されます)。文字列引数にも置き換え形式を入れることができ ます。ただし、置き換えは 1 段しか行われないことに注意して く ださい (内部コマンドの集まりは、宣言言語ではなく、単なるスク リプト言語だと見るべきです)。 ある属性をある内部コマンドで参照する場合、その属性の名 前 は . の形式とできます。ここで、 は 上の「オブジェクトの名前」のセクションで指定された形式である 必要があり、 は英数字と下線 ('_') の文字のみが使用で きます。属性名の最初の 2 文字が "!." である場合、属性名の 残 り の 部分はファイル属性の名前を意味し、最初の 2 文字が "!*" である場合、残りの部分は現在選択されているオブジェクトの属性 の名前を意味します (複数のオブジェクトが選択されている場合、 積み上げ順で最上位のオブジェクトが使用されます)。 "//" で始まる行は、コメントとして扱われることに注意してく だ さい。 以下の内部コマンドがサポートされています: launch() Tgif Last change: Version 4.1 Patchlevel 45 以上 26 Misc. Reference Manual Pages tgif(n) で指定された属性の値を、実行する sh(1) コマ ン ドと解釈します。詳細は、上の「外部アプリケーションの 起動」のセクションを参照してください。 exec() で指定された属性の値を、実行する内部コマ ン ド と解釈します。これはサブルーチン呼び出しと同等です。 内部コマンドは、その属性を含む最上位の状況で実行され る ことに注意してください。 mktemp(,) このコマンドは、唯一つのファイル名を生成しま す。 引数は、例えば "/tmp/TgifXXXXXX" のようなテンプレート文 字列で、少なくとも 2 つの "/" が含まれている必要があ り ます。mktemp() の結果は、 で指定された属性の 値として保存されます。詳細 は、 C ラ イ ブ ラ リ 関 数 mktemp(3C) の オ ン ラインマニュアルを参照してください (tgif をコンパイラオプション -D_USE_TMPFILE を付けて コ ンパイルした場合は、代わりに tempnam(3S) が使用されます )。 create_file_using_simple_template(