musixpss - MusiXTeXの拡張:MetaPostによるスラーのPostScript化

version 0.51 [2004/02/21]

はじめに

 MusiXTeXではスラー・タイはフォントによって描かれます。従ってフォントがない曲線は描けず,長いスラーでは継ぎ目が入るので汚くなりがちです。
 そこで,「より美しく,より柔軟に」スラー・タイを描くために,MetaPostの力を借りてスラー・タイをPostScriptで描く拡張パッケージを製作しました。
 以下の記述でスラーという場合,特に断りがない限りスラーとタイの両方を含むものとします。MusiXTeXの核心部分ではスラーとタイの区別はないためです。

特徴

難点

このパッケージの内容

※テキストファイルはすべてLF改行(UNIXスタイル)にしています。

必要なもの

以下は必須ではありませんが用意することをお勧めします。

インストール方法

  1. まず,TeX,MusiXTeX,およびMetaPostが動くようになっていることが前提です。
  2. ファイル musixpss.tex を,TeXが入力ファイルとして認識できるディレクトリに置いてください。とりあえずは作成中の楽譜と同じところに置けば大丈夫です。常用するならば,例えば $TEXMF/tex/musixtex/misc/ に置けば良いでしょう。
  3. ファイル musixpss.mp を,MetaPostが入力ファイルとして認識できるディレクトリに置いてください。とりあえずは作成中の楽譜と同じところに置けば大丈夫です。常用するならば,例えば $TEXMF/metapost/musixtex/misc/ に置けば良いでしょう。
  4. OSがWin32の場合,ファイル musixpss.exePATH が設定されているディレクトリに置きます。実際にはMusiXTeX本体のインストールの時に musixflx.exe を置いたのと同じディレクトリに置くと良いでしょう。
    Win32以外のOSをご使用の場合は, musixpss.c を44-45行目を修正の上,適当にコンパイルし,実行ファイルを適切な場所に置いてください。

使い方

ここでは,処理するMusiXTeX楽譜ソースファイルが foo.tex であるとします。

  1. 通常の手順で foo.tex を作ります。
  2. \input musixtex.tex の次に, \input musixpss.tex\relax の1行を加えます。
  3. 通常の手順通り,MusiXTeXの第1から第3パスまでを実行します。
    tex foo
    musixflx foo
    tex foo
    このとき, No file foo.1. といったメッセージが画面に表示されます。また,通常の foo.mx1 foo.mx2 foo.dvi に加えてスラーの各種パラメータが書かれた foo.slu というファイルができます。
  4. (第4パス)サポートプログラム musixpss.exe を実行します。
    musixpss foo
    これにより, foo.slu からMetaPostソースファイル foo.mp が生成されます。コマンドラインに拡張子指定があってもなくても強制的に .slu と見なされます。
  5. (第5パス)MetaPostを実行します。
    mpost foo
    MetaPostの起動コマンドはシステムにより, mp である場合もあります。終了すると, foo.1 foo.2 ... というように,個々のスラーの描画命令を含んだEPSファイルがスラーの数だけ生成されます。
  6. (第6パス)再度TeXを実行します。
    tex foo
    今回は No file foo.1. などという表示は出なくなり,dviファイルにスラーを取り込む \special が書き込まれます。
  7. これでdviファイルが完成しています。DVIwareを実行します。

 なお,楽譜を変更してタイプセットし直す場合,基本的には foo.1 などのEPSファイルは消さなくても大丈夫です。特に foo.mx2foo.slu の内容が両方とも変化しないような変更ならば,MusiXTeXを1回実行するだけで良い場合があります。  ただし,スラーの数や形が変わるような変更で,MusiXTeXの第1パスからやり直す場合は,通常モードおよびpdfTeX専用モード(次項参照)ではこれらEPSファイルを消しておくと,第2パスの処理速度が上がります。

オプション

動作モードの指定

 このパッケージは様々な環境に対応するために,以下の3つ動作モードを持っています。

 何も指定しない場合は通常モードになります。特に理由がなければ,通常モードをお使いください。
 dvips/dvipdfm最適化モードは,内部の処理が非常に簡素であるため高速にタイプセットできるほか,精度がよい,手順の第6パスが不要になる,等の利点があります。ただし,LaTeX2eレベルでdvips互換をうたっていても低レベルの命令が完全互換でないDVIware(dviout)では,正しい結果が得られなくなります。お使いのdviドライバで通常モードと同じ出力が得られることを確認の上ご使用ください。
 pdfTeX専用モードはその名のとおりです。pdfTeX(ver.1.10a-devel以降)で使えます。
 これら以外のDVIware(xdvi等)に対応することも考えられますが作者にはその環境がありませんので,情報提供とベータテストにご協力をお願いいたします。

動作モード 通常モード dvips最適化モード pdfTeX専用モード
一般のDVIware※ OK 可否はDVIwareにより異なる NG
dvips OK OK NG
dvipdfm OK OK NG
pdfTeX NG NG OK
※LaTeX2eのgraphicx packageに [dvips] オプションを指定した場合のdviファイルが正しく表示できるDVIwareなら何でも良い。(例えばdviout)
動作モード 通常モード dvips最適化モード pdfTeX専用モード
ソースファイルの記述 \input musixtex
\input musixpss
\relax
\input musixtex
\input musixpss
\relax
\psslurmode{dvips}%
\input musixtex
\input musixpss
\relax
\psslurmode{pdftex}%
処理手順 全6パス
+ DVIware
  1. tex foo
  2. musixflx foo
  3. tex foo
  4. musixpss foo
  5. mpost foo
  6. tex foo
  7. %DVIWARE% foo
全5パス
+ dvipsまたはdvipdfm
  1. tex foo
  2. musixflx foo
  3. tex foo
  4. musixpss foo
  5. mpost foo
  6. dvips foo
    (or dvipdfm foo)
全6パス
+ Acrobat Reader
  1. pdftex foo
  2. musixflx foo
  3. pdftex foo
  4. musixpss foo
  5. mpost foo
  6. pdftex foo
  7. (AcroRd32) foo

スラーの太さの調整

  \psslurthickadj というマクロを任意の実数に再定義すると,スラーの太さがデフォルトの \psslurthickadj 倍になります。例えば \def\psslurthickadj{2.5} とするとデフォルトの2.5倍の太さになります。

PS化スラーと従来のフォントによるスラーの切り替え

 このパッケージを読み込んだ状態で,何らかの理由によりPS化スラーでなくフォントによるスラーを使いたい場合,楽譜ソースファイルの任意の場所で,PS化スラーと従来のフォントによるスラーを切り替えることができます。

 上手く使うと,Stanislav Kneifl氏のパッケージ(通称'PostScript Slurs Type K')との共存も出来る,かもしれませんが未確認です。

中間EPSファイルの削除機能

 海外ユーザーから「中間EPSファイルを削除できるようにして欲しい」との要望が多くあり,実装しました。また,通常モードおよびpdfTeX専用モードで,楽譜を変更してMusiXTeXの第1パスからタイプセットし直す場合のEPSファイル一括削除にもにも利用できます。

musixpss -clean foo.slu
または同じことですが
musixpss foo.slu -clean

とすると(ファイル名の .slu は無くても構いません),すべての中間EPSファイル foo.1, foo.2, ...foo.n を削除します。ただし,実装は手抜きであり,意図に反していらんもんも削除してしまうかもしれませんので,ソースファイルを検討の上,注意して使用してください。

取り扱い

 このパッケージの著作権は作者にあります。使用条件はGNU GPL ver.2(またはそれ以降)に準拠したフリーソフトウェアとします。同梱の COPYING.txt ファイルを参照して下さい。GNU GPLの邦訳は http://www.gnu.org/japan/ から得られます。

その他

作者

Hiroaki MORIMOTO
mailto: CQX05646@nifty.com

謝辞

Luigi Cataldi氏には,pdfTeXにおける動作確認と,説明書のイタリア語への翻訳をしていただきました。ここに感謝いたします。


更新履歴

version 0.10 [2001/02/10]

version 0.20 [2001/02/23]

version 0.21 [2001/04/30]

version 0.22 [2001/06/15]

version 0.23 [2001/10/17]

version 0.30 [2001/10/21]

version 0.40 [2001/11/03]

version 0.41 [2002/06/01]

version 0.50 [2003/01/05]

version 0.51 [2004/02/21]

TODO:


Copyright (C) 2001-2004 Hiroaki MORIMOTO (Kuuku).
ご意見やバグレポ等歓迎いたします。'TeX-music Mailing List'(英語)または直接e-mailにてお知らせください。
mailto: CQX05646@nifty.com