最近TeX/METAFONTの動作環境をDOSからWindows95に移行しました。 ソースを修正してはMETAFONTを実行してできた紋章を見る…。 これを繰り返すのに、エディタ(Mule for Windows)とDOS窓を交互にクリックするのがうっとうしいので、 MuleからMETAFONTを呼び出せないかと考えました。 幸い、YaTeXというLaTeX入力支援環境があって、TeXを呼び出す機能がついているので、 MEAFONTを呼び出せるように改造できないかと思い、とりあえず作ってみたのが「yamf」です。
ひとまず正式公開といたします。ご意見・ご感想などいただければ幸いです。
yamfの動作環境は以下のとおりです。
これ以外の環境で「動いた」「動かなかった」「修正したら動いた」という方、 レポートお待ちしております。
(setq load-path (cons "c:/mule/site-lisp/yamf" load-path))
(autoload 'yamf-mode "yamf" "METAFONT additive for YaTeX" t)
(setq auto-mode-alist (cons '("\\.mf$" . yamf-mode) auto-mode-alist))
(setq yamf-mf-command "mf \\\\mode=%m; input") (setq yamf-mf-with-display-command "mf \\\\mode=%m; screenchars; input") (setq yamf-shell-command-option "\\/C")UNIX(csh)だとこうするのがいいでしょうか。 (Windowsでシェルにtcshを使うときもこの設定で動きます)
(setq yamf-mf-command "mf '\\mode=%m;' input") (setq yamf-mf-with-display-command "mf '\\mode=%m;' 'screenchars;' input") (setq yamf-shell-command-option "-c")
(setq yamf-mf-mode "cx") (setq yamf-mf-resolution 300)BJ10vなんかだと次のようになります。
(setq yamf-mf-mode "bjtenex") (setq yamf-mf-resolution 360)
(setq yamf-proof-mode "proof") (setq yamf-proof-resolution 2602)
(setq yamf-mf-display-switch 1)この変数がnilだとオンラインディスプレイを使いません。 tにすると常にオンラインディスプレイを使います。 数値1にすると、後述する「1文字作成」のときだけオンラインディスプレイを使います。
(setq yamf-mfput-file "mftemp.mf")
(setq yamf-pk-directory "$TEXMF/fonts/pk/%m/local") (setq yamf-tfm-directory "$TEXMF/fonts/tfm/local")
拡張子が「.mf」のファイルを読み込むと自動的にyamfのモードになります。 エコー領域に「Welcome to yamf mode」と表示されるはずです。
現在実装されているキー操作は次のとおりです。
C-c m | 現在のバッファ全体に対してMETAFONTを実行する。 |
C-c c | 1文字作成: 現在カーソルのあるところで定義されている1文字に対して METAFONTを実行する。 |
C-c i | できたフォントをインストールする。tfmファイルを yamf-tfm-directoryにコピーし、 gfファイルはpkフォーマットに変換してyamf-pk-directoryに置く。 |
C-c v | ゲラ刷り |
C-c DEL | METAFONTが生成したファイルを削除する。 |
C-c h | ヘルプです。(現在はあまり役に立ちません) |
作成中のフォントを使ったサンプル文書をタイプセットするために、 次のような機能もあります。 これらの機能を使うには、後述の「ソースファイル内での設定」を 行う必要があります。
C-c j | TeXを実行する。 |
C-c p | プレビューする。 |
C-c l | 印刷する。 |
METAFONTのソースファイルの中に次のような特殊なコメントを書いておくことによって、 yamfの動作を制御できます。いずれも、行頭に空白を入れずに書いてください。
%#! | METAFONTを実行するコマンドライン |
%#ENDPREAMBLE | プリアンブルの終わり(後述) |
%#POSTAMBLE | ポストアンブルの始まり(後述) |
%#TEXFILE | サンプル文書のファイル名 |
%#TEXCOMMAND | サンプル文書をタイプセットするコマンドライン |
%#PREVIEW | サンプル文書をプレビューするコマンドライン |
%#LPR | サンプル文書を印刷するコマンドライン |
作成中のフォントの中の1文字だけを試しにMETAFONTで処理してみるには、 C-c c キーを使います。この機能は、編集中のファイルのうち、
をつなぎあわせて一時ファイルに書き出し、METAFONTで処理します。
したがって、mode_setup;やマクロの定義のある行の下に%#ENDPREAMBLEを挿入し、
byeのある行の上に%#POSTAMBLEを挿入しておく必要があります。
本プログラムはフリーソフトウェアです。 本プログラムを使用したことによるいかなる結果に対しても作者は責任を負いません。
ご意見・ご感想・ご質問・バグ報告・転載の希望などはてんてば (JAC01617_AT_nifty.ne.jp←「_AT_」を「@」に変えてください)宛メールにてお願いします。
本プログラムはYaTeXの機能の一部を利用していますが、 YaTeXのパッケージに付属するものではありません。 本プログラムに関する質問などをYaTeXの作者の広瀬さんや「fj野鳥の会」に送らないようお願いします。