next_inactive up previous


Windows用のQfigを使う

岩熊哲夫:Qfig作者

2005/某月/吉日(Ver.1.1)


目次

ダウンロード

ソフトそのものは Vector Design あるいは 私のウェブ・ページ から,ダウンロードできます.

起動と終了


最初のセッティング

配布のアーカイブを解凍し,すべてのファイルを 同じディレクトリ(フォルダ)に置いてください. レジストリは触りません.Qfig.exeを実行してください. 実行できず,何かダイナミック・リンク・ライブラリが無いというメッセージが 表示された場合には,同じアーカイブ内のライブラリ群のアーカイブも解凍し, 中身をすべてQfig.exeと同じディレクトリに置いてください.

最初の最初には図[*]のような設定画面が表示されます. この設定はoptIonボタンを押すことによっていつでも変更できます. 例えば図のように「ヘルプ」のJapaneseをセットしておいてください. オプションは次のような意味です.

Warning:
警告の音設定で,何も設定しないとビープ音.Soundで ある種の音が出ます.さらにVoiceにすると,警告文言が発せられます.
List & Help:
Japaneseをセットすると操作指示を日本語で表示します.
Character Pitch:
これは,図化ソフトNgraphのピッチ(これは 私がいい加減にPostScriptピッチを設定したもの)にするか, 通常のTEXピッチにするかのスィッチで,LATEXを使う方は後者にしておいて ください.
Font Size Expression:
LATEX209用は \xiiptの方で 構いませんが,LATEX2eの場合は \largeにしてください.
Type of Japanese TeX:
アスキーの日本語TEXを使うか,NTTJTEXかの 設定です.
Style File Usage:
アーカイブ中の eepicsup.sty を使うか否かの設定です.塗りつぶしや網掛けのためのコマンドについて eepic.sty を拡張したものです.Solid Arrow Headを設定すると,矢印の矢を 塗りつぶします.

図: 一番最初の立ち上げ画面--各種設定
\includegraphics*[scale=.45]{ini.ps}

いずれの設定も,変更した場合にはMake it so!を押した上で, 右上の$\Box$ $\times$ かEscキーを押して窓を閉じてください. 変更を無視する場合はDisengageです.

設定画面中右上のColorボタンを押すと図[*]の窓が出てきます. 上の画面が描画領域の色と同じものです.この画面を見ながら, 左下のBACKGROUNDのRGBを設定すれば背景色の設定ができ, 右下のOBJECTSのRGBで線の色の設定ができます.ENERGIZEボタンで 設定が有効になります.ENERGIZEボタンを押さなければ設定は 変更されません.この窓も,右上の$\Box$ $\times$ で閉じてください.

図: 色の設定
\includegraphics*[scale=.45]{color.ps}

通常の起動

これは単にQfig.exeを実行するだけです.


終了

[*]のように,種々のコマンド・ボタンは窓の左側に並んでいます. ボタン群下のSeuratの絵のすぐ上にあるeXitを押せば終了します. もちろん窓右上の$\Box$ $\times$ でも終了しますが,eXitを押して終了する場合には

ことになります.それに対し,$\Box$ $\times$ で終わるとこのような措置は取られず, 強制終了になります.

描画途中で止める場合にeXitを押すと,図[*]のような 確認のための窓が出てきます. たった二つの機能しかない窓にしては大きすぎますが, 中央やや右の赤い小窓にメッセージが点滅表示されます. この描画途中での中止の場合は`Self-Destruction?'と表示されます. もしそのまま終了してもいい場合には,Engageを押してください. 終了する前に保存しておきたい場合には,Cancelを押した上で, 適切な処理をしてから終了してください. 描画したものが保存された状態で終了する場合には,確認窓は出てきません.

コマンド・ボタンとキーボード

optIonのIのように,コマンド機能標記の文字列の中に 大文字で下線がついているものは,ボタンをマウスでクリックする代わりに, キーボードのAltとその文字の同時押しでも同機能を実現できます. 例えばAlt+iで「設定変更の窓が開き」ます. さらに,鈎括弧付きのe[X]itのXの場合には, キーボードのShift+Ctrl+Altと同時に該当するキーを 押してください.例えば「終了」の場合には, この三つのキーとxを同時に押せばいいことになります.

窓によってはボタンらしいものが見えないものもあります. 例えば前述の色設定窓のENERGIZEボタンがそれに当たります. こういったボタンは,マウスがその上を通過するときに枠線が発生しますから, もし分からなくなったら,マウスをそれらしい所に移動させてみてください. ちょっと遊びが過ぎたかもしれません.反省.

図: 終了時の確認画面
\includegraphics*[scale=.45]{alert.ps}

図: ヘルプ画面の表示
\includegraphics*[scale=.45]{query.ps}

バージョンとヘルプの表示および座標位置

バージョン情報はwHoで表示されます. 現れた窓はokを押せば消えます.

起動してすぐに,Queryのボタンを押してください. こうすると,図[*]のように, 描画画面上部に一種のヘルプが表示されます. 起動直後のヘルプ窓には,描画における一般的な情報が書いてあります. 一通り目を通してください. この窓は,ヘルプ表示部分の左側のCLOSEで閉じます. ヘルプ窓を表示したまま,左のSeuratの絵の写真部分をダブル・クリックしてみて ください.ちょっと速すぎますかね.Escキーで止めることができます.

図: 各コマンドの操作マニュアル
\includegraphics*[scale=.45]{help.ps}

このヘルプ窓を開けたままであれば,その後例えばZigzagボタンを 押すと,図[*]のように目的とする描画の操作マニュアルが 表示されます.これを見ながら練習すれば,だいたいの描画の仕方は 分かると思います. この同じ図の左側の黄色い楕円で囲った部分に,現在のマウス・カーソルの ある位置が数値で表示されます.また描画画面のすぐ上と左に水色丸で 囲った赤いマーカーが,マウス・カーソルの位置を定規目盛上に(この図では 微妙にずれてしまっていますが)示したものです. 数値の座標値はmm単位,定規の小さい目盛もmmです.

同じ図[*]のヘルプ窓と描画窓の間の水平棒部分の,赤い楕円で 囲んだところに小窓があり, この図の例では`Zigzag Lines'と表示されています. これは現在どのコマンド・ボタンが押されている状態なのかを示しています. この例では,直線描画コマンドの実行中であることを示しています. ときどき,その他の情報もこの小窓に現れることがあります. 例えば何か線を描いた後にFlush!を押してみてください. 再描画なので`Re-Drawn!'と表示されます.

基本的な描画

直線と曲線,閉じた図形

直線と曲線はそれぞれZigzagおよびcurVeで描くことができます. このボタンを押した後,描画窓中での連続する左クリックごとの位置を 線で結んで行き,右クリックが最終点の決定になります.曲線の場合は, この最終点の決定で(極めて適当な)曲線が描画されます. 閉じた図形の場合は,Polygonあるいはcls cUrvを使います. この場合は最終点の右クリックで,始点と終点を結んでしまいます.

以上の四つのコマンドでたいていの図形は描けますが,正確に直角を持つ 四角形が必要な場合には,boXを使います. 最初の左クリックと次の右クリックを対角点とする四角形が描画されます. 右クリックの前にゆっくり[*]左クリックを続ければ,この四角形に 三種類の濃度の網掛けを設定できます.4回クリックすると網掛け無しに 戻ります.

画面上で鉛直あるいは水平な線は,Shiftを押しながらマウスを動かせば 引くことができます.しかしそういう正確な線を描きたい場合には 後述の第[*]節で紹介するDOS窓版の利用をお薦めします. また,マウスではなく,キーボード上の矢印キーでも位置を決めることができます. 通常は0.25 mmピッチでしか動きませんが,Ctrlを押しながらで あれば1 mmピッチで動かすことができます. 矢印キーを使っている場合には,左右クリックの代わりに, スペースキーとリターンキーを使う方が便利でしょう.ただし 描画中のテンポラリな点が画面に残りますので,後述のFlush!を押して 再描画させてください.

図: 円弧描画の三つのステップ
\includegraphics*[scale=.45]{arc.ps}

円・円弧と楕円

円はCircleを押した後,最初の左クリックが中心位置,次の 右クリックが円弧上の点を決定します.また楕円はEllipseを 押した後,最初の左クリックと次の右クリックで囲まれた四角形の中に フィットする楕円を描きます.

円弧の場合にはArcを押してください. そして図[*]のように, 円弧の弦の片方の位置が最初の左クリックです.次の左クリック位置に 弦のもう片方が位置します.あとは,その二点を通る円弧が補助的に 表示されますから,最後の右クリックで,欲しい円弧上の一点を決定します.

図: 文字列入力窓
\includegraphics*[scale=.45]{string.ps}

文字列

文字列を入力するにはStringを押してください. そうすることによって図[*]のような入力窓が現れます. フォントのサイズは10 pt, 12 ptの二種類. フォント種の英数字はRoman, Italic, Bold, Bold Italic の四種類, 漢字は明朝とゴチックの二種類が選べます. 上部のSTRINGの右にある入力窓に文字列を入れ, 左下のSET STRINGを押せば, 描画画面上の位置決め状態になります.適当な位置で左クリックすれば, そこに文字列が確定入力されます. 文字列入力窓は$\Box$ $\times$ を押して閉じてください.

ただし,パソコンにそれ相当のフォント[*]が 存在していない場合には, 必ずしも上述の六種類のフォントが選べるとは限りません. 利用できるフォント種数は入力窓の右下に数字で表示されています.

上付き下付きの記号は,例えば`A$^p$'と入力したい場合には`A^p@', また`B$_{min}$'としたい場合には`B_min@'と入力すれば可能です. しかし,こういった数学記号に類した文字列の場合は,Qfig上で 入力するのではなく,第[*]節で述べるように,一旦TEXファイルに 出力してから編集した方が綺麗に仕上がります. このように ^, _, @は特殊記号となりますから, もしこの記号を実際に入力する必要がある場合は \(日本語表示 システム上での \=Yマークです)で回避してください. すなわち,以上の四種類の記号入力はそれぞれ, \^, \_, \@, \\となります.

線の属性

各種図形の線の太さはWidthで三種類, 実線なのか破線なのかはstyLeで四種類選べます. ただし,線の種類については順に,実線・破線・長い破線・一点鎖線のように 描画画面には表示されますが,出力したLATEXファイルによっては,これが 異なります.例えばeepicsup.styを用いたLATEXファイルの場合は, 順に,実線・破線・一点鎖線・ニ点鎖線になります.

グルーピング

描画された図形を,例えばコピーする場合,いくつかの図形を同時に同じ 配置でコピーしたい場合があるかもしれません.その場合にはGroupを 押してください.そして,グルーピングする図形を順に左クリックで 設定していきます.グルーピングする図形がすべて選択されたら, 図形の無いところでダブル・クリックしてください. グルーピング開始からダブル・クリックまでが一組の図形群グループ化に なりますので,複数のグループごとにコピーや移動が行えます. ただし,グルーピング情報はファイルには保存されませんので注意してください.

コピーと移動・回転

図形のコピーはcOpyで,移動はMoveで行います. 一つの図形だけの場合は,その該当図形の節点を一つ左クリックで 選び,目的位置まで移動した後,右クリックでコピー・移動が完了します. 複数の図形を同時に操作したい場合は,前述のグルーピングをしておけば 同様の操作でコピー・移動ができます. あるいは,移動する図形群を囲むように左クリックのままドラッグし, その対象とする図形群の領域をすべて囲んだところでマウスから 一旦指を離します.そのままマウスを移動させると,対象とした図形群も 移動しますので,そのまま目的位置まで動かして 右クリックすることによっても,コピー・移動が行えます. この領域図形操作は,図形の一節点でもその領域内に あるものは対象図形とみなされることに注意してください.

ちなみに,コピーと移動は連続してできるように,その機能は継続されます. もし必要な操作が終わった場合には,マウスを任意の位置でダブル・クリック してください.これで選んだ操作機能はリセットされます. 他のボタンを押したときも,実は同様のダブル・クリックで操作を中断できます.

図形の回転はroTateで行います.ただし,円・楕円(後述の 斜めの楕円と半楕円は除く)・円弧・箱・文字列は回転できません. また回転する元の図形も 保持されますから,この機能は回転コピーになります.roTateを 押すと,描画領域の上横棒部分にANGLE=Pi/\fbox{4~~~~~}と現れます. これは,一回の左クリックで回転する角度の設定小窓です. デフォルトでは$\pi/4$つまり45度になっています.この\fbox{4~~~~~}の 中の数値を適当に変更すれば,任意の角度での回転ができます. 数値は実数でも構いません.また回転は反時計回りです. 角度を設定した後,該当図形の節点にマウス・カーソルを置いて左クリックすると, その選んだ節点を中心にして設定した角度だけ 回転します.ゆっくりと[*]左クリックを続ければ,さらに同じピッチで回転を続けます. 欲しい位置に来たところで右クリックして決定します.

また対称コピーもできます.sYm cpを押した上で該当図形の一節点を選び, 左クリックすればその節点を通る水平軸に対しての対称コピーになり, 右クリックで鉛直軸に対しての対称コピーになります.

矢印の付加

直・曲線や円弧の端点にはaRrowで矢印を付加することができます. 端点で左クリックすればその点に,右クリックすると両端に同時に 矢印が付加されます.既に矢印がある節点で左クリックすると矢印を 削除します.右クリックをすると,両端の矢印状態を反転させます. つまり,両方に矢印がある場合には両方が削除されます.反対側に 矢印が無い場合には,そちらが矢印になって選んだ端の矢印が削除されます.

直・曲線の節点の移動や切除

直・曲線の節点の変更にはNodeを使います.変更したい節点上で 左クリックするとその節点を移動できます.移動先の位置に 持っていった後,再度左クリックすれば位置が決定されます. これに対し,変更節点上で右クリックしてしまうと,その節点は 削除されます.ただし,2点でできた直線の節は削除できません. また3点でできた曲線の端点を削除しても,節の数は3以下にはなりません. その瞬間は直線に見えますが,実は曲線のままです. ですから,再度Nodeを押せば中間にもう一つの新しい節点が 挿入されているのが見え,いずれかの節点を移動させると曲線になります.

編集による図形の変更について

編集における線の属性の変更

図形の形や線の属性や文字列の内容を変更したい場合にはeDitを 使います.このコマンドを用いれば,たいていの図形の形態変更と 文字列の変更ができます. 線の太さや種類といった属性は,該当図形の節点をクリックする 時点でのWidthとstyLeの設定に変更されますので, 注意してください.私自身もこれを忘れて,何度もeDitを し直すことがあります.

直線・曲線

直・曲線および多角形と閉じた曲線の場合には,eDitの左クリックで 真っ直ぐか曲がっているかという属性が交換されます.つまり左クリックで, 直線は曲線に,曲線は直線になります.ゆっくり左クリックを続ければ, これが繰り返されます.

正多角形や斜めの楕円・半楕円

ただし,多角形・曲線・閉じた曲線の場合に限っては, 節点で右クリックをすると異なる結果になります. 多角形を右クリックすると正多角形になります. 閉じた曲線を右クリックすると斜めの楕円になります. 開いた曲線を右クリックすると,半分の楕円になります. 図[*]がその例です.この図は,上の3つの図形をその 下にコピーした上で,下の図形だけをeDitで右クリックして 作りました.

図: 正多角形と斜めの楕円・半楕円
\includegraphics*[scale=.45]{regular.ps}

図: 円柱を描く:半楕円・対称コピー・グルーピング・属性変更
\includegraphics*[scale=.45]{cylin.ps}

この半楕円と斜めの楕円が,個人的には一番欲しかった機能です. このためにこのソフトを作ったと言ってもいいくらいです. というのも,図[*]のような円柱を描く場合に必要だからです. この図では分かり易いように,わざと部品の図形を少し離して置いてあります. まず,この図の半楕円図形AをcurVeとeDitの 右クリックで作ります. 次に,これをsYm cpで水平軸回りに一回,鉛直軸回りにもう一回 対称コピーし,途中の(水平軸対称の)図形は消去します.残った図形, つまり図形Aの点対称の図形を適切な位置まで移動させたのが図形Bです. この図形A, Bを一緒に(グルーピングしてもいいし,領域コピーでもいい) 右の方にコピーします.そして,styLeで 線の属性を破線にした後,図形Aのコピー版をeDitで左クリックを 二度(一度は折れ線になるので,再度で元の曲線に戻す)行えば,図形Dが できます.あとは,線の属性を実線に戻した上で,上下の直線を描画すれば, 見えない部分が破線になった円柱が描けるわけです.

その他の図形の編集

その他の図形をeDitすると

円:
左クリックで選んだ円の半径のみを,右クリックで変更できます.
楕円:
左クリックで選んだ楕円の半径比を,右クリックで変更できます.
円弧:
左クリックで選んだ円弧の再設定です.最初の点が 円弧描画の最初の左クリックに当たります. あとは円弧の描画手順に沿ってください.
箱:
左クリックで選んだ箱の節点を固定したまま,網掛けともう一つの 対角点を設定し直せます.
文字列:
左クリックで文字列を選択すると,文字列入力窓が現れ, その文字列の内容を変更できます.
となります.

図: ファイルへの保存と変換
\includegraphics*[scale=.45]{save.ps}

ファイル・アクセス


保存と変換

描いた図はSaveで保存されます.画面には図[*]のような 窓が現れます.上半分が保存機能部分です.保存する媒体に合わせて, 適切なドライブとディレクトリを選びます.そしてファイル名をQfig original type [.qfg]:の右窓に入力します. 拡張子は入力しなくても構いません. そしてこの窓の左側のSAVEをクリックすれば保存されます. 保存後DONEを押せば,この窓は閉じます. グルーピング情報は保存されませんので注意してください.

保存時に拡大・縮小したい場合は,その下のFACTORで%指定を します.50%から200%までの設定ができます. 別々のファイルにある図形を合体したい場合のサイズ変更などに使えます. 既にあるファイルに重ね書きする場合には,右上のファイル・リストの 該当ファイルをダブル・クリックするだけです. このときは確認の警告が出ますが,OKを押せば 重ね書き,CANCELを押せば中止します.

下半分が変換機能部分です.変換先のフォーマットは六種類

Ngraph:
図化ソフト Ngraphの 旧フリーソフト版Windows Classic Ver.5.45 にmergeする場合です.このソフトはWindowsでも使えます.
PICTEX:
いわゆるPICTEXのスタイル・ファイルを 使ってTEXに利用する場合です.
eepic.sty:
スタイル・ファイル epic.sty のコマンドを,TPIC specialで置き換えて拡張した eepic.sty を用いてLATEXに利用する場合に使います. 網掛けなどDviout for Windowsで拡張したTPICにも 対応させるためには,アーカイブに入れておいた eepicsup.sty を利用します.いずれにしても,Dviドライバ依存のspecialコマンドで 描画することになります.
eepicemu.sty:
ドライバ依存が無いようにした エミュレーションeepicemu.sty を使う場合です.ただし,この出力は見栄えがよくありませんので, 代わりにもう一つの エミュレーションecleepic.sty を使うようにしてください.
curves.sty:
ドライバ依存無しで図形を描く スタイル・ファイルcurves.sty を用いる場合です.eepicemu.styよりはましです.
Xbitmap:
いわゆるXビットマップ形式のファイルを 出力します.TEX以外にウェブ・ページの図にも使えます.
という風になっています. 拡張子を省いたファイル名をOther types [.gra, .tex, .xbm]:の 右の窓に入力し,左のEXPORTを押せば変換・保存されます. 既にあるファイルへの重ね書きは,ファイル・リストのファイル名を ダブル・クリックです. 各フォーマットごとの出力の違いは第[*]節に例示しました.

読み込み

保存してあったファイルからはLoadで読み込みできます. 図[*]のような窓が現れます. ファイル・リストにあるファイル名を左クリックで選択した上で, 窓左側のLOADを押せば新規読み込み,APPENDであれば 現在編集している図形群の上に重ね書きされます. 入力が終了したらDONEで窓を閉じます. ファイル・リストにあるファイル名を ダブル・クリックするとLOADになります.

図: ファイルへからの読み込み
\includegraphics*[scale=.45]{input.ps}

残念ながら,前述の「保存」すなわちQfig original typeの フォーマットで保存されたファイルしか読み込むことはできません. 他のフォーマットに変換したものは読み込めませんので, もし何度も利用したり改訂する図形の場合には,前述の保存で 必ずSAVEしておく必要があります.変換したものを 逆変換する機能はありません.


表: データ・フォーマット
\begin{table*}\vspace*{5mm}
\renewedcommand{baselinestretch}{.7}\small\begin{min...
...瑤ヌ obj%(i%,1)+2 行がひとつの図形データ
\end{verbatim}\end{minipage}\end{table*}



\begin{table*}\renewedcommand{baselinestretch}{.7}\small\begin{minipage}{3cm}
~~...
...番号は obj%(0) に百の位を足して区別した
\end{verbatim}\end{minipage}\end{table*}


\begin{table*}\renewedcommand{baselinestretch}{.7}\small\begin{minipage}{3cm}
~~...
... = VAL(''&H'' + RIGHT$(a$, 2))
とした.\end{verbatim}\end{minipage}\end{table*}

データ・フォーマット

拡張子がqfgのデータも,エディタで直接編集できます. すなわち,座標値や属性を数値で記憶しているだけですから, フォーマットさえ分かればQfigそのものを使わなくても データを作ることは(ま,誰もやらないけど)可能です. そういう意味でDraw系の描画ソフトということになるのでしょうか. なお,データ・フォーマットは 旧いPC98用のQfig のマニュアルには記載されていますが,表[*]にそれを まとめました.

特に円弧を正確に描くような場合は,このデータを直接編集する 必要があります.次に例を示します.描きたかったのは 中心座標が(400, 200)で半径80の円弧です.開始角度が90度で 最後が180度の90度分です.円弧の始点と終点はある程度正確に 入力できますが,中心を与えることは困難なので,例えばそれらしい 描画をしてファイル保存すると

% Output of qfig.bas
 320  400  120  200 
 6  4  2 -1  0  0  0 
 400  120 
 394  194 
 320  200 
 74.24284  1.489892 
 0  3.222497
のようになるかもしれません.上のフォーマットを参照して解釈すると, この例の中心座標は(394, 194)になっていて半径も74.24くらいです. 開始と終点の角度もずれています.そこで,これを
% Output of qfig.bas
 6  4  2 -1  0  0  0 
 400  120 
 400  200  <--- 中心座標の変更
 320  200 
 80  1.570796  <--- 半径と開始角度の変更
 0  3.141593   <--- 終点角度の変更
のように修正すれば,正確な円弧が描けます.


TEXファイルに変換してからの編集

図形番号の確認

網掛けや外形線の細かい設定,さらには, 数学記号の入力などはQfig上ではなく, 一旦TEXファイルに出力したものを編集することで可能になります. どの図形を改訂するかは,TEXファイルの コメント行にある図形番号`% object #'で判断します. 各図形には,描画の順に番号が0から振られています. その番号はnumBerを押した後に,その該当図形のそば, 具体的にはその図形の節点のできるだけそばで左クリックすることにより, 図[*]に赤い楕円で囲った場所,つまり描画窓と コマンド・ボタン窓の間の小窓に表示されます. この例の場合は,現在のカーソルのそばにある図形は#2であり, その次に近い図形が#3であることを示しています.

図: 図形番号の確認
\includegraphics*[scale=.45]{number.ps}

数学用文字列

文字列に数学記号を入れたい場合には,Qfig上ではなく,一旦TEX出力 してからの方が綺麗になります.TEX出力ファイルの中の該当する文字列を 探し出し,その文字列を$マークで挟んだ数学記号で置き換えます. 長い文字列の場合には, 出来上がりの位置がQfig上のそれと若干ずれますが,ほとんどの場合は 気にならない程度でしょう.図[*]$\pi$を表示してみました. ファイルの中身については次の節を参照してください.

図: 網掛け・白塗り
\includegraphics*[scale=.45]{white.ps}
\includegraphics*[scale=.08]{whiteshd.ps}

網掛け・白塗りの重ね方と外形線消去

Qfig上で網掛けができるのは箱だけでした.しかし,任意の 閉じた図形に網掛けをしたり白で塗りつぶしたりするのは,eepicsup.styの スタイル・ファイルで定義したコマンド(Dviout for Windowsで サポートしているTPIC special)で可能になります. この改訂をする場合には,前節のnumBerボタンによって, 改訂する図形の番号を調べておくと便利です. 例えば図[*]の場合は, 左の図のようなQfig上の入力をTEX出力し, そのファイルの

    % object # 0  (line)
    \path (55,100)(28,29)......
    % object # 1  (line)
    \path (96,83)(59,44)(108,26)(96,83)
    % object # 2  (circle)
    \put(153,77){\circle{44.272}}
    % object # 3  (string)
    \put(149,74){{\rm p}}
となっていた部分を
    % object # 0  (line)
    \shade[0.2]\path (55,100)(28,29)......
    % object # 1  (line)
    \shadingwithoutoutline
    \shade[0.7]\path (96,83)(59,44).......
    \outlinedshading
    % object # 2  (circle)
    \whiten\put(153,77){\circle{44.272}}
    % object # 3  (string)
    \put(149,74){{\rm $\pi$}}
としたものです.この例で分かるように,白で塗りつぶすような 場合には,描画する順番も重要になります.予めそれを考えながらQfigで 作成しなければなりません.ちょっと面倒です.各コマンドの意味は

\shade[0.2]: 次の閉じた図形を0.2の濃度で網掛け. 濃度は0から1までの数値.
\shadingwithoutoutline: 外形線無しにする.
\outlinedshading: 外形線有りに戻す.
\whiten: 白で塗りつぶす.
\blacken: 黒で塗りつぶす.\shade[1]と同じ.
となります.

描画補助

削除

図形ごとに削除するにはKillを用います. グループ化された図形をKillすると,そのグループ全体の 複数の図形が一度に削除されます. この削除は確認を求めませんので,注意して実行してください. 元に戻す機能は(ユーザの多くから要望はありますが,面倒なので)付いて おりません.

すべての図形はZap!で消去されます.確認画面が現れ, そのメッセージは`Clear All Memory?'になります. これへの対処は第[*]節で述べたのと同じです.

再描画

マウスではなくキーボードの矢印キーなどで描画した場合や, まだ残っているバグのせいで描画画面に黒い筋がたくさん残ってしまったような 場合には,Flush!で再描画してください.多分,綺麗になると思います.

図: プレビューと描画窓の移動
\includegraphics*[scale=.45]{preview.ps}

グリッド表示

マウス・カーソルを正確な位置に置くための補助としてGridを押せば, 描画画面に等間隔の格子を表示することができます.このGridを 押すたびに格子のメッシュ幅が2 mm, 5 mm, 1 cmと粗く なりますが,1 cmグリッド以上にはならず,グリッド無しに戻ります.

A4サイズ・プレビューと描画窓の移動

描画画面は最大でA4サイズ($800\times 600$のモニター画面でのフル表示で, 描画画面が幅21 cm,高さ28.5 cmの領域にアクセスできます)で, このサイズでの図形プレビューはViewに よって別窓に表示されます(図[*]). 図中の黄色い楕円内の,プレビュー画面中にあるコマンド小窓は 移動可能です.MOVABLE CMD BOXにマウスを合わせ,左クリックしたまま ドラッグしてもらえば,この窓内の任意の位置に移動できます. この小窓のOFFを押すと,プレビュー画面は消えます. プレビューしたままで,元の描画画面に図形を加えても,そのままでは プレビュー画面には反映されません.新しく加えた図形をプレビュー画面に 表示するには,このコマンド小窓内のBEAM-UPを押します.

逆に言うと,描画画面の窓はこのA4領域全体を一度に カバーすることができません. そのため,大きくなった図形を扱う場合には,A4サイズの領域の中で 描画画面の窓の方を上下左右に移動させなければなりません. 図[*]中に 赤い楕円で囲ったニ箇所にあるボタンでその移動が可能になります. 描画画面左にある\fbox{DECK$n$}$n$階: $n=1$, 2, 3, 4)のボタンで 上下移動ができます.1階が最上部で,4階が最下部です. また描画画面上部にある二つのボタン,\fbox{PORT} side(左舷)と\fbox{STARBOARD} side(右舷)が左右の移動に使われます. 大きな図形を描いたり窓の外にコピーしたりして,このボタンの位置と プレビュー画面を比べてみれば,どうなっているかは分かると思います.

各種設定

オプション設定

オプション設定はoptIonで行います. その中身の詳細については第[*]節に述べた通りです.

デフォルトの設定

各種設定で,このQfigオリジナルのデフォルトに戻すには, ファイル`Qfig.ini'を消去してしまうのが一番簡単です.

部分的な設定変更でoptIonでは行えないものがいくつかあり,それは ファイル`Qfig.ini'の直接編集で可能になります. 各設定の意味は`Qfig.ini'内に記述されていますが,変更する可能性の 高いものだけを補足しておきます.括弧内の数字はデフォルトです.

MaxObject (255):
$\mbox{図形の最大数}-1$です.
MaxNode (31):
$\mbox{直・曲線の最大節点数}-1$であり, 一つの文字列の最長文字数です.
Arrow Head Proportion:
矢印の寸法補正関係です.
長さ:
矢そのものの長さを $0.25\mbox{ mm} \times
\left\{\mbox{arrowhead(8)}\right.$ $\left. \mbox{} + \mbox{darrowhead(1.5)} \times \mbox{線の太さ}\right\}$と する.
矢の傾き:
矢を付ける線に対する矢そのものの 角度を $\pi/\mbox{narrowdirect(9)}$とする.
矢の傾き補正(円弧端):
円弧の場合の矢を 若干内向きに $\pi/\mbox{narcarrowd(30)}$だけ補正する.

その他


DOS 窓版 Qfig

マウス操作ではなかなか正確には位置決めができないので,例えば ある程度正確にmm単位で水平・鉛直の直線を引きたい場合には, このWindows版は使いづらいでしょう.そんなときは IBM-PC 用(DOS窓版) のバージョン1.00, 1.1aの二つがダウンロードして利用できます. 私はv.1.00の方をもっぱら使っています.文字列以外はデータに互換性が ありますので,まずこれで大半を描画した上でファイル保存し, それをWindows版に渡し,文字列を入れたり微調整をしたりしています. このDOS窓版を使う場合,以下のことに注意してください.

開発した経緯と環境

開発は,N88BASICでお絵描きプログラムを作って遊んだのが最初です. その後,ワープロなるものがパソコンで使えるようにはなったものの, 数式を入力するのが面倒だということが判明しました. 幸い,東北大学の学内のネットワーク上での回りの環境にとても影響を 受け,LATEXを使うようになりました.主に学内の電子掲示板のお世話に なりました.

その頃はソフトが高価で あったこともあり,LATEXで書いた論文などへのグラフや絵を どうするかという問題にぶち当たりました.これまた幸いなことに, 東北大学ではNgraphGraph-Pというものが広く流布されて おり,これをLATEXに組み込むことができるようになりました. あとは絵だけです.

そこで,先に作っていたN88BASICのプログラムをQuick BASICに 移植し,LATEXコマンドを含むファイルを出力するようにしました. その頃は某社のPC98なるものがマジョリティであったこともあり, 最初のQfigはIBM互換機では使えませんでした. 幸い,某電気会社の外国人の方がこれをIBM互換機用のQuick BASICで 作り直してくださいました.前節で紹介したv.1.00, 1.1aがそれです. 特にv.1.1aは彼ら独自の改良が含まれており,LATEX2eへの 拡張もあり,ファンクション・キーの機能も 一つあたり3機能になっています

その後,私自身がWindowsをようやく使うようになり,PC98版の プログラムをVisual BASICに移植したのが, 現バージョンのQfigです.

図: PICTEXフォーマット
\includegraphics*[scale=.1]{q-pictex.ps}
図: curves.styを用いた出力
\includegraphics*[scale=.1]{q-curves.ps}

LATEX2eを使っている場合の注意点

基本設定optIonのFont Size Expressionで, うっかり \xiiptを利用する設定をしたままTEXファイル出力をすると, ファイルの文字列情報の部分に \xpt, \xiiptというLATEX209の コマンドが存在します.このままLATEX2eでコンパイルすると エラーになりますから,プリアンブル部に例えば

     \let\xpt\null
     \let\xiipt\null
という設定を入れてください.LATEX2eで直にフォント・サイズを 指定する場合,どうしたらいいのかを私が理解していないので, 今は10 ptなら何もせず,12 pt文字の場合は \largeが出力されるように なっています.このあたりについては,各自で工夫してください.

図: eepicsup.styを用いた出力(推奨)
\includegraphics*[scale=.1]{q-eepics.ps}
図: eepic.styのエミュレーション
\includegraphics*[scale=.1]{q-eepemu.ps}

図: eepic.styのもう一つのエミュレーション: ecleepic.styの利用
\includegraphics*[scale=.1]{q-eclemu.ps}
図: Ngraphにmergeした場合の画面
\includegraphics*[scale=.38]{q-ngraph.ps}

図: Qfigで作った絵をNgraphにmergeし(左図), それをさらにLATEX(eepicsup.sty) 化したもの(右図)
\includegraphics*[scale=.38]{qf-ng.ps}
\includegraphics*[scale=.05]{qf-ng-tx.ps}


出力フォーマット間の相違

[*]節で説明した六種類の変換の結果を, アーカイブに入れた例`qfig3ple.qfg'のデータを用いて 比較してみましょう.

[*]:
いわゆるPICTEXを 用いた場合です.Dviドライバには依存しません. コンピュータの処理速度がかなり速くなったので,以前は重くて 敬遠されていたPICTEXも短時間で処理が できるようになっており,Dviドライバ依存を嫌う場合には 有益かもしれません.
[*]:
スタイル・ファイル curves.sty を用いた例です. 一部の(凹な)曲線がスムーズではありませんが, これは常に生じるとは限りません. 曲線を描くときに節点同士をあまり離さないようにすれば回避できると 思います.これもDviドライバ非依存です.
[*]:
スタイル・ファイル eepicsup.sty を利用したものです. これが一番のお薦めですが,DviドライバがTPIC specialを 理解できる場合にのみ使えます.ドライバ依存です. 回転や網掛けについての拡張TPIC specialが, 現在よく用いられているドライバのDviout for Windowsには 組み込まれています. このような拡張を用いないのであればeepicsup.styは必要無く, eepic.sty で処理できます.
[*]:
eepic.styの エミュレーションをするスタイル・ファイル eepicemu.sty を用いた場合の例で,矢印が少しずれていますが原因不明. またQfigのバグで, 網掛けのコマンドを出力してしまっています.eepicemu.styを用いる 場合には,プリアンブルに
     \let\shade\null
という行を入れてください.でも,ずれは直らないので使わない方がいいでしょう. その代わりに次のスタイル・ファイルを使ってください.

図: Xbmファイルを`bitmap.sty'で利用する
\includegraphics*[scale=.12]{bitmap.ps}

[*]:
Dviウェアに依存しない出力をするための もう一つのエミュレーションの ecleepic.sty を用いた場合です.こちらは \shadeは無視されるだけですから, 入れたままでもうまくいきます.もしDviウェア非依存の ファイルにしたい場合は,このecleepic.styがベストかもしれません.
[*]:
NgraphGraファイル形式で出力し, それを図化ソフトNgraphに,フル・サイズでmergeしたものです. 実験や数値解析の結果をNgraphでグラフにしたとき,その図中に簡単な 解説図をこれで付加できます.ただし,mergeする際に読み込み場所を 適切に設定する必要があります. この例の図をNgraphのデモ図にmergeしたものを図[*]に 示しておきました.
[*]:
変換リストの最後にあるXビットマップにした ファイルを,この形式の図ファイルをLATEXに組み入れるスタイル・ファイル bitmap.sty を用いて出力した例です.これに対し図[*]は, そのファイルを単純にブラウザで表示したものです.

図: ブラウザで見たXビットマップファイル
\includegraphics*[scale=.65]{q-xbm.ps}

以上の各フォーマットの出力は, アーカイブに含めたサンプルのLATEXソース・ファイルを用いてコンパイルできます. ただし,サンプルはLATEX209 用なので,LATEX2eでコンパイルする 場合には,最初の行を \documentclassにするのはもちろん, オプションのスタイル・ファイルは \usepackageで 読み込んでください.

Ngraph との連携

なお,図[*]のように, 旧版NgraphのグラフをLATEXファイル化するには 私のウェブ・ページ にあるibm-pc (in DOS window)用の`Ngraph.Gra to Eepic.TeX in us mode'を 使ってください.Ngraphには,シェア・ウェアのWindows版も あり,その出力をTEX化するソフトもあります.それについては Ngraphのページ をご覧ください.

PDF ファイルへの変換

Dviout for Windowsを 用いるのであれば,図[*]に示したように, スタイル・ファイルeepicsup.styを利用したものがお薦めです. 例えば最終的にpdfファイルにする場合であっても, 文字回転のTPIC special以外であれば, 図もTEXファイルのままdvipdfmで変換できます.

しかし国際論文集などへの投稿時に,このTPIC specialのTEXデータを そのまま送付するのには不安があります. やはりPostScriptファイルにした方がいいかもしれません.そのときは, このDviout for Windowsの画像出力を利用すれば, 他の画像変換ソフトとの連携でPostScript画像ファイルに 変換でき,dvipdfmpdfファイルに組み込むことが可能になります. 実際,このマニュアルそのものがそういう風にして作られています. 私の場合には具体的に

  1. 普通にeepicsup.styを用いて絵をdviファイルにする. 例えばアーカイブにあるサンプル・ソースを使う.
  2. Dviout for Windowsで表示し,OptionSetup ParametersDisplayで,Startの解像度を1に設定し, 表示した絵を,ファイル出力のSave as imageで例えばbmpファイルに 出力する.Divout for Windowsを画像変換に使って しまっています.ごめんなさい.
  3. 適当な画像処理ソフト,例えばInfan Viewで不要な空白をトリムし, それを例えばGimpなどを用いてPostScriptに変換する.
といったステップを用いています.こうすれば,図中の数学文字などの文字を 本文のTEXの文字と同じフォントで表示することができます. 第2ステップの解像度を1にしなかったり,第3ステップでbmpファイルを 縮小したりすると,最後のPostScriptファイルの解像度が悪くなることが ありますので,注意してください. 昨今は,ハード・ディスク容量も十分にあり,また保存もCDやDVDを 用いることが普通になってきていますから,あまりファイル・サイズには 気にせず,高解像度のまま保存しておく方がいいと思います.

この文書について

文書の絵が不鮮明

このpdfファイルをカラー・プリンタに出力した場合には, 文章脇に置いた図中の小さいボタンの文字などが 目を凝らせばどうにか読めるかもしれません.しかし,白黒で プリンタ出力したものは,ほとんど読めないかもしれません. 図中の細かい文字を確認したい場合には, 印刷せずにAcrobat Readerの画面表示のまま 拡大するといいでしょう.

Webリンク

このpdfファイルには,インターネットのURLが埋め込まれています. 例えば次の括弧書きの文字列, 「私が集めたスタイル・ファイルのページ」 のように,水色の四角で囲まれた部分をクリックすると, ブラウザにそのページが表示されます.



Footnotes

...ゆっくり[*]
左クリックを急いでしまうと,ダブル・クリックとみなされてしまいます.
...ただし,パソコンにそれ相当のフォント[*]
MS Sans SerifMS明朝・MSゴチックを使います.
...ゆっくりと[*]
左クリックを急いでしまうと,ダブル・クリックとみなされてしまいます.

next_inactive up previous
bear 平成17年7月12日