目次


楽譜のコンパイル

TEX、MusiXTEX、PMX のインストールが終了したら、まずはサンプルをコンパイルしてみましょう。

.pmx ファイルのコンパイル

primavera.pmx
をダウンロードして、適当なディレクトリに保存します。
コンパイルに伴って中間ファイルやログファイルなど多数のファイルが生成されますので、できればそれぞれの楽譜ごとに専用のディレクトリを用意した方がいいでしょう。

コマンドシェル(Windows ならプロンプト)で primavera.pmx を保存したディレクトリに cd して、

pmxab primavera
tex primavera
musixflx primavera
tex primavera

と、順に実行すると、同じディレクトリに primavera.dvi という DVI(DeVice-Independent)ファイルが作られていますね。

pmxab[1].pmx ファイルから MusiXTEX の .tex ファイルを作ります。

残りの 3コマンドは MusiXTEX のコンパイルです。
TEX の計算能力だけでは限界があるので、 TEX で処理 → musixflx で音符の間隔の調整 → TEX で再処理、という 3 パスの工程を経て、楽譜の .dvi ファイルを作製しています。

2回目以降のコンパイルでは、

rm primavera.mx1
(Windows なら del primavera.mx1

tex の前に実行して .mx1 ファイルを削除しておかないと、.pmx ファイルを修正しても、それが .dvi ファイルに反映されません。
これは、tex primavera.mx1 ファイルの有無によって 1パス目か 3パス目かを判断しているからです。
詳細は、MusiXTEX のマニュアルをご覧下さい。

pmx コマンド

実際の楽譜作製では、.pmx ファイルをちょこっと入力/修正する度に頻繁にコンパイルを繰り返すことになります。
その度に、毎回々々上記のコマンドをスペルも順番も間違えずに入力しなければならないのは面倒臭いの一言です。
そこで、上記の 4ステップを 1コマンドで実行してくれて、不要な中間ファイルの削除まで自動でやってくれる、pmx というコマンドがあります。

pmx primavera

で、一連のコンパイルができます。

……と思ったら、PMX 2.5 の Windows 用の配布バイナリの中には、pmx.bat みたいなのは含まれていなかったんですね。
とりあえず、

pmx.bat Win NT 系
pmx.bat Win 9x 系

でよければ、使ってみて下さい。
私の環境に入っている pmx コマンド(Jan Arne Fagertun & Stefan Evert 作)を参考に作ってみました。
オリジナルより使い勝手は落ちますが、ないよりましでしょう。
pmxab.exe をインストールしたディレクトリにでもコピーして下さい。
当然ながら、実行テストはしてない(できない)し、無保証です。
動作がおかしかったら、修正して、私に送って下さいませ。
# Win 9x 系の方は機能限定版です。
# 異常終了の場合も終了コード 0 を返しますので、他のコマンドやバッチから呼び出す場合は注意して下さい。

注意:私家版 pmx.bat では、.pmx の拡張子を入力してはいけません

DVI ファイルの閲覧

(p)xdvi primavera.dvi(Windows なら dviout primavera.dvi)で、primavera.dvi の閲覧ができます。
dviout ならそのまま印刷もできます。

PDF ファイルの作製

dvipdf(m(x)) primavera.dvi

で、PDF(Portable Document Format)ファイルを作製できます。
Ap でポストスクリプトスラーを使っている楽譜の場合、dvipdfm(x) では変換できないようです。
dvipdf は内部で dvips を呼び出しているので、ポストスクリプトスラーも問題なく PDF化できます。

画像ファイルの作製

dvipng primavera.dvi

で、primavera.dvi の各ページの PNG 画像が作製されます。

このままだと、周囲に余白が全くない窮屈な画像になってしまいます。
ImageMagick の convert コマンドを使って、

convert -border 10 -bordercolor white -type grayscale primavera1.png primavera_1.png

として、周辺に 10ピクセルの白の枠を付けて、さらにグレースケールに落とします(これで、画像のファイルサイズがおよそ半分になります)。

dvipng.dvi ファイルを簡便に画像ファイルに変換してくれるので重宝なのですが、Ap を指定してポストスクリプトスラーを使ったファイルは変換できないという欠点があります。
その場合は、dvips を使いましょう。

dvips -pp 1 -E -o primavera1.eps primavera.dvi

とすると、primavera.dvi の 1ページ目が primavera1.eps という EPS(Encapsulated PostScript)ファイルに出力されます。
それを、

convert -density 96x96 -border 10 -bordercolor white -type grayscale primavera1.eps primavera1.png

と、-density 96x96 で解像度(dpi)を指定して primavera1.png に変換してやります。


[1] 何故 pmxab というコマンド名なのかって?
昔は PMX 自体が 2パスで構成されていて、pmxapmxb という 2つのコマンドがあったのを統合したからさ

目次

Last-modified: 2009/12/24

webmaster@pt2k.xii.jp
http://pt2k.xii.jp

Valid HTML 4.01 Strict Valid CSS 2.1