FG Draw TIPS

はじめに

ここではFG Drawのちょっとした使い方を書いていこうかと思います。 (≒機能として実装できなかった事項を、使い方で強引にカバーするページ)

Computer ModernフォントをFG Drawで使用する

Computer ModernとはTeXでデフォルトとして使われているフォントです。 TeXの文章中に埋め込む画像を作成することを考えたとき、本文の数式と同じフォントを使いたいということがあるかと思います。

FG Drawでは以下の2つの手順を行うことにより、Computer ModernをFG Draw内で利用、またComputer Modernフォントを含むeps画像を(dvipdfmxを用い)PDF化できるようになります。

Computer ModernフォントをFG Draw内で使用する

FG DrawはOS内に"cmr10","cmb10","cmmi10","cmmib10"という名前のTrue Typeフォントがインストールされている場合にこれを使用可能としています。FG Drawを起動して全体のプロパティの「ステージ」のフォント選択ボックスにおいてcmr10が選べない場合、これらのフォントはインストールされていないと思われます。

まずはhttp://www.ring.gr.jp/pub/text/CTAN/fonts/cm/ps-type1/bakoma/ttf/より"cmr10.ttf","cmb10.ttf","cmmi10.ttf","cmmib10.ttf"の4つをダウンロードして下さい。(ここでダウンロードできるフォントはBaKoMaフォントといい、Basil K. Malyshev氏が作成したComputer ModernのTrue Typeフォントです)。あとはこの4つのフォントをお使いのOSにインストールして下さい。

方法はフォントのインストール(Windows 7/Vista/XP/2000/ME)(Adobe)等を参考に。

またその他DTPソフトにおいてComputer Modernフォントを使う方法が次のページに載っています。参考:TeXの数式をDTPソフトに - TeX Wiki

出力したeps画像をLaTeXで利用する

上の作業によりFG DrawでComputer Modernフォントを含む図のepsが出力できるようになります。しかしFG Drawはフォントの埋め込みを行わないため、このeps画像をTeX文書に添付してdvipdfmx経由でPDF化しようとするとエラー(またはフォントの代替)が起こり上手くいきません。

これを回避するためには、GhostScript内にcmr10等のtype1フォントのインストール、及びFG Drawが出力するepsにおけるフォント名"/CMR10"との関連づけが必要になります。

なおTeX LiveによってTeX環境を構築した場合、すでに関連づけが終わっている可能性があります(ただしTeX Live導入後TeXworksを用い文書を作成する場合、pdfLaTeXがデフォルトになっていると思うので、divpdfmxを使用する場合はTeXworks/設定/Windows - TeX Wikiなどを参考に設定を行って下さい)。

ここからはPCにインストールされているLateXのバージョン、GhostScriptのバージョンそしてインストール時の設定によってやり方が変わってくると思います。ここではpLaTeX2e,GhostScriptバージョン8.54という自分の環境で成功したやり方を書きたいと思います。(その他のバージョンでこれから書く方法では失敗する場合、「GhostScript Type1」等のキーワードで検索をかけるとやり方が出てくる可能性があります)

【手順】

LaTeXのtype1フォントが置かれているフォルダから"cmr10.pfb","cmb10.pfb","cmmi10.pfb","cmmib10.pfb"の4つのファイルをコピーします。(私の環境ではC:>usr>local>share>texmf>fonts>type1>blueskyにありました)

次にこのコピーしたファイルを順に"CMR10","CMB10","CMMI10","CMMIB10"とファイル名を変更します(注意:拡張子付けず)。

あとはこの4つのファイルをGhostScriptのフォントフォルダ(私の環境ではC:>gs>gs8.54>Resource>Font)に設置すれば作業完了です。GhostScriptを起動してFG Drawが出力したcmr10フォントのepsが読み込めるか確かめてみて下さい。

複雑な数式が埋め込まれたeps画像を作成する

ここではFG Drawに加えLateXなどの外部プログラムを利用して、集合記号や総和記号、花文字など複雑な数式(TeXの数式モードによる数式)が埋め込まれたepsファイルを作成する方法を書きたいと思います。

ここでの方法は上の項目で解説した「Computer Modernフォントのインストール」を必要としません。またLaTeXのPicture環境を利用して文字列を埋め込むため、FG Draw側でフォントを指定しても、できる図は必ずLaTeX側で指定されたフォントになります(デフォルトではComputer Modernフォント)。

1.FG Drawで数式の命令を含む図を作成する

まずはFG Drawにて以下のような図を作成して下さい。

今回用いる「EPS+TeX出力」ではフォント情報、斜体・太字などの属性が無くなるので、フォントをArialなどのサンセリフ体にし、bold,italicのチェックを外しておくと見やすくなるかと思います。またmainの部分だけしか出力されないため、各文字オブジェクトは上付き文字部分と下付き文字部分を空白にしておいて下さい。

この図に対し「EPS+TeX出力」を行うと、「文字のないepsファイル」と「左のepsと文字情報をpicture環境で重ねたtexファイル」が出力されます。上の例だと次のようなtexファイルとなります。つまりFG Drawの各文字オブジェクトがTeXの文章ひとかたまりに置き換わり、それをTeXの機能において文字オブジェクトがあった座標と同じ座標に置くという仕組みです。

なので文字オブジェクトとしてLaTeXにおいてエラーとなる文字列($\hoge$など)を入力するとtexファイルをdviファイルにする過程でエラーが発生します。

これをdviにし、dvipdfmxによってPDF化すると次のようなPDFファイルができます。

図が小さい状態で出力されているのは、LaTeXの文字サイズの指定を最大限活かすためです。FG Drawにおいて文字サイズは自由に決められますが、LaTeXの文字サイズは\tiny〜\Hugeまでの10種類に限られています。従って文字の大きさが変わったり位置が多少ずれる可能性があることに注意して下さい。

文字の位置に関して更に注意があります。上のキャプチャ画像では文字オブジェクト「x」と「$x$」において各xの横の位置が$分だけずれています。しかし出力されたPDFファイルではほぼ横の位置が揃っています。

これは$がtexにおいて数式モードに入る記号と認識されているためです、同様に\inなどの命令の分だけ文字が想定とずれる可能性があります。各文字列の左下の座標はどちらの図でも一致するので、それを基準に上手く調整を行って下さい。

この作業を経てフォントが埋め込まれたPDFの図の作成をすることができました。このままでも他のtexファイルがこのPDFを取り込むことは可能です。

2.上のPDFファイルをEPSファイルに変換する

PDFからEPSファイルへの変換はXpdfというプログラムの中に入っているpdftopsを使います。

pdftopsの入手はXpdf:Downloadにある"Precompiled binaries"からx86,Windowsの項目にあるxpdf-win-3.03.zipをダウンロードして解凍して下さい。その中にpdftops.exeがあるかと思います。

pdftops.exeと変換したいPDFファイル(sample.pdfとします)をコマンドプロンプトのカレントディレクトリにコピーします。そしてコマンドプロンプトに、

pdftops -eps sample.pdf sample.eps

と打ち込むとsample.epsが出力されます。

これで複雑な数式が埋め込まれたepsファイルが出来たのですが、このままだとepsファイルのBoundingBoxの指定がおかしく凄く余白の大きいファイルになっている可能性があります。

これを回避するには下の参考リンクに書かれた方法か、次の手順3を行って下さい。

参考:epsやpdfから他の形式に変換する(Windows) - yrgnah_yatsのブログ

3.EPSファイルをアウトライン化したEPSファイルにする

上のEPSからBoundingBoxが元のサイズで指定されたEPSファイルを作成します。それにはeps2epsを用います。

eps2epsはGhostScriptに付属のコマンドなので、GhostScriptがインストールされている環境ならおそらく使えると思います。コマンドプロンプトにおいて先ほどと続けて、

eps2eps -r10000 sample.eps sample2.eps

と入力して下さい。これでコマンドプロンプトのカレントディレクトリに目的のファイルとなるsample2.epsが出力されたはずです。

eps2epsは各パーツをアウトライン化して再度epsファイルを作り出す物です。文字もアウトライン化される(形だけ残る)のでこのepsファイルを取り込んだpdfファイルにおいては文字が選択出来なくなっています。

sampleのPDF

またコマンド中の-r10000はこれが無いと変換前のepsファイルにおける小さな文字がアウトラインではなくビットマップに置き換わる可能性があるので、それを防ぐために加えられています。

一部が欠けた楕円を描きたい

下のキャプチャ画像のように部分的に欠けた楕円を描く方法です。

後から設置された図形が常に上に来ることを利用します。

最初に欠けてない楕円を設置→その上から枠線あり、内部を非透明で背景色と同じ色にした図形をかぶせ、位置と大きさを調整→枠線を透明に。

以上の手順で一部分が欠けた楕円が完成します。

面の上に文字を重ねたい

FG Drawにおいて文字オブジェクトは常に面オブジェクトの上に置かれるため、基本的に重ねることは可能です。しかしただ普通に重ねると面の種類が斜線やクロスの際に少し見づらいと感じるかも知れません。

上の一部が欠けた楕円を描く方法に近いやり方を行います。

面の上に枠線と内部が面の背景色と同じとなる「頂点」を設置します。その後頂点の大きさを適当なものとし、その上に文字を重ねればOKです。

図形オブジェクトは常に一番下にくる仕様なため面の上には置けない……ということが「頂点」を使う理由です。だいぶバッドノウハウ気味ですが。

辺と頂点の間に少し隙間があるグラフを描く

下のキャプチャ画像のように辺と頂点の間に少し隙間があるグラフを描く方法です。

最初に隙間が空いてない目的のグラフを描きます。これをグラフAとします。

次にグラフAをCopyしCopyしたグラフをグラフAから離れた位置に置きます。これをグラフBとします。

グラフAの各頂点の大きさを拡大した後、枠線を透明、内部を背景と同じ色にします。

グラフBの辺を取り除き、グラフAにかぶせます。

これにより辺と頂点の間に少し隙間があるグラフを描くことができました。

出力した図をPowerPointで使用する

TIPSというより覚え書きですが。

FG Drawで出力したepsファイルはPowerPointで取り込むことができます。 PowerPointではComputer Modernフォントが使えないので、そのフォントを使用していた場合代替が発生しますが、これも予め上で紹介したようにeps2epsを用いアウトライン化しておくことで回避できます。

しかしPowerPointにおいてepsを取り込む方法は文字や図がギザギザしてしまうため、あまりオススメしません。適当な解像度でビットマップ化するのか、アンチエイリアスが掛かっていないのか理由は解りませんが……。

なのでオススメはTeX環境(dvipdfmx含む)を使ってepsファイルを貼り付けたPDFファイルを作成したのち、それを画面いっぱいに拡大してスクリーンキャプチャを撮るやりかたです。これならPowerPoint上でサイズを縮小しても、画面上で滑らかに表示されるかと思います。

作成したPowerPointファイルを印刷する際に限り、画像の解像度という意味でベクターイメージの利点を損なうことになりますが、なるべく大きなキャプチャ画像を取り込めばそこまで問題では無いかと思います。

loopを描く

FG Drawはバージョン1.11においてloopを描く機能は実装していません(最適なloopの描画とその設定方法について方針が固まっていないためで、固まり次第実装したいと思っています)

現段階では以下の方法が代わりになるかと思います。

最初にloopを加えたい頂点の近くに新しい頂点を設置します。その後2点を指定し選択頂点のプロパティの項目「辺、有向矢印」において辺を追加ボタンを2回押し2重辺を生成します。

そして2つの辺の調節点を移動しloopの形を整えます。2次ベジエ曲線の特徴から2つの調節点と頂点2を一直線に並べると仕上がりが滑らかになります。

最後に頂点2の枠線と内部を透明にすれば完成です。loopを加えたい頂点近くに設置する頂点の数を増やすと、loopの形をより柔軟に決めることができます。

FGDファイル、FGSファイルの関連づけが上手くいかなくなった

ファイルの関連づけはお使いのOSの種類によって異なるかと思います(一例として、FGDファイルを右クリック「プログラムから開く」→「規定のプログラムの選択」→FG Drawを選択し「この種類のファイルを開くときは、選択したプログラムをいつも使う」にチェック後OKボタン)。

しかし一度FGD、FGSファイルの関連づけを行った後に、本ソフトのフォルダを移動したり、バージョンアップに合わせ再インストールを行った後関連づけようとすると上手く関連づけられなくなる可能性があります。

そういう時は「「ファイルを開くプログラムの選択」にプログラムが追加できない | Windows XPのQ&A【OKWave】」や「Yakushima-Tonbo - Vistaでの関連付け」 に書かれているように、レジストリ操作を行うことで解決される可能性があります。

レジストリ操作のため、実行は慎重に行って下さい。

文字オブジェクトの日本語対応について

Ver1.16より文字オブジェクトにおいて日本語を入力することが出来るようになりました。日本語入力に関する注意点をいくつか書こうと思います。

FG Drawでの表示フォントについて

日本語部分のフォントは現在選択することができません。PCに設定されている規定のデバイスフォントで表示されます。日本語以外の部分は従来通り全体プロパティの「ステージ」より変更できます。また、太字指定と斜体指定は日本語部分には反映されません。

eps出力における日本語ついて

日本語を1字以上含むテキストボックスの中身は以下のフォント名で出力されます。

Shift_JIS → /GothicBBB-Medium-RKSJ-H

EUC-JP → /GothicBBB-Medium-EUC-H

UTF8 → /GothicBBB-Medium-UniJIS-UTF8-H

iso-2022 → /GothicBBB-Medium-H

なお日本語が含まれたepsファイルはghostscriptで開いた際に文字化けが起こる可能性があります。

その際はghostscriptの最新版を入れ、cidfmapに以下のような記述をすると文字化けが直るかもしれません。

/GothicBBB-Medium << /FileType /TrueType

/Path (c:/windows/fonts/msgothic.ttc)

/SubfontID 0 /CSI [(Japan1) 3] >> ;

Pathの行で表示に使用するフォントファイルのパスを指定する形になります(PDF作成時の埋め込みにも使われるのでライセンスにはご注意を)

cidfmapはghostscriptをインストールしたフォルダ以下のどこかに存在するかと思います(texlive2012でのインストールの場合C:\texlive\2012\tlpkg\tlgs\libにありました)

制作:Shin Matsushita web site:iff soft e-mail:iff@m42.coreserver.jp