FontForge でフォントを変更するためのスクリプトの書き方

FontForge はインタプリタを内蔵しているので、フォントを変更するためのスクリプトを書くことができます。

スクリプトの起動

スクリプトを指定して FontForge をコマンドラインから起動したときはウィンドウは表示されず、スクリプトが終了した時にプログラムの終了となります。

$ fontforge -script scriptfile.pe {fontnames}

FontForge は、シェルが自動的にスクリプトを渡すようなインタプリタとして使うこともできます。 スクリプトファイルが実行可能になるように
    $ chmod +x scriptfile.pe
として、それらのファイルの先頭の行に
    #!/usr/local/bin/fontforge
(または、システム上で FontForge が置かれているどこか別の場所) を書き加えることにより、     $ scriptfile.pe {fontnames}
と打つだけでスクリプトを起動できるようになります。

FontForge に標準入力からスクリプトを読み込ませたい場合は、“-”を標準入力を表すファイル名として使用することができます。 (もし FontForge を X11 無しで作成した場合、コマンドラインに何も指定しなければ、FontForge はスクリプトを標準入力から読もうと試みます。)

また、FontForge を使用中に、ファイル(F)スクリプトを実行(X)... メニューを用いてスクリプトを起動することもできますし、頻繁に用いるスクリプトをプリファレンスダイアログで登録してメニューから直接起動可能なように設定することもできます。

スクリプト言語により、フォント表示画面のメニューに見られる機能の多くを使用することができます。 現在のところ (将来もそうでしょうが) 全ての対象にアクセスできるわけではありません。 (もし何か欠けている機能があったら作者に知らせてください。それを追加しましょう)。 スクリプト言語は曲線からグリフを組み立てるコマンドを提供する物ではなく、グリフに対する高レベルな修正を可能にするための物です。

環境変数 PFAEDIT_VERBOSE が定義されている場合 (値を設定する必要はなく、定義するだけで十分です) FontForge は、スクリプトを実行するごとにその内容を標準出力に書き出します。

一般的に言って、作者はこの機能を例えばラテン文字フォントを入力としてキリル文字のグリフを含むように拡張するような作業に役立つことを思い描いています。この場合、スクリプトはこのような物になるでしょう:

スクリプト言語

スクリプトの構文は、C とシェルコマンドを混ぜ合わせた物にかなり似ています。 各ファイルは手続きに対応します。 シェルスクリプトと同様に、スクリプトファイルに渡された引数は $1, $2, …, $n という識別子で用いることができます。 $0 はスクリプトそれ自身です。 $argc は引数の個数を表します。 $argv[<式>] の形で、コマンドの引数を配列としてアクセスすることができます。

項は以下のいずれかを取ることができます。