MusiXTeX T.112

マクロの用途

楽譜を作成するためのマクロです

作者への哀悼

MusiXTeX の作者である Daniel TAUPIN 氏が亡くなられました. 2003 年 8 月 26 日のことでした. 死因はアルプス登山の最中の事故死でした. ご冥福をお祈りいたします.

関連サイト

インストールの前に

M-Tx をコンパイルするために, p2c が必要です.

インストール方法

  1. インストール前の下準備
    1. FTP Ring Server (Tenbin)から, 以下のファイルをダウンロードする.
    2. 環境変数 COMSPEC がある場合は, インストール作業が終わるまでの間は削除する.
  2. MusiXTeX のインストール
    1. musixtex-T112.tar.gz を展開し, 作成されたディレクトリ musixtex-T112 に移動する (以降, このディレクトリを $MUSIXTEXSRC と表記する.).
    2. $MUSIXTEXSRC/systems/c-source ディレクトリに移り, musixflx を作成し, TeX がインストールされているディレクトリにインストールする. (gcc -O2 -s -o musixflx musixflx.c && install -m 755 musixflx /usr/local/bin && install -m 644 musixflx.1 /usr/local/man/man1)
    3. $TEXMF/tex/generic/musixtex ディレクトリを作成し, $MUSIXTEXSRC/tex ディレクトリの中にあるファイル (拡張子が .sty および .tex になっているもの) をすべて $TEXMF/tex/generic/musixtex にコピーする (musixdoc.sty および musixdoc.tex は不要).
    4. $TEXMF/fonts/source/musixtex ディレクトリを作成し, $MUSIXTEXSRC/mf ディレクトリの中にあるファイル (拡張子が .mf になっているもの) をすべて $TEXMF/fonts/source/musixtex にコピーする.
    5. $TEXMF/fonts/tfm/musixtex ディレクトリを作成し, $MUSIXTEXSRC/tfm ディレクトリの中にあるファイル (拡張子が .tfm になっているもの) をすべて $TEXMF/fonts/tfm/musixtex にコピーする.
  3. MusiX PS のインストール
    1. musixps-0.92.tar.gz を展開し, 作成されたディレクトリ musixps-0.92 に移動する.
    2. $TEXMF/tex/generic/musixtex/misc ディレクトリを作成し, musixps.tex を $TEXMF/tex/generic/musixtex/misc にコピーする.
    3. $TEXMF/fonts/source/musixtex ディレクトリに mxsk.mf をコピーする.
    4. $TEXMF/fonts/tfm/musixtex ディレクトリに mxsk.tfm をコピーする.
    5. $TEXMF/dvips/misc ディレクトリに psslurs.pro をコピーする.
  4. MuisXTeX 用の Type 1 フォントのインストール
    1. musixps-unix.tar.gz を展開し, 作成されたディレクトリ musixps-unix に移動する.
    2. $TEXMF/fonts/type1/musixtex ディレクトリを作成し, pfb ディレクトリの中にあるファイル (拡張子が .pfb になっているもの) をすべて $TEXMF/fonts/type1/musixtex にコピーする.
    3. dvipdfm ディレクトリの中にあるファイル, musix.map$TEXMF/dvipdfm/config ディレクトリにコピーする.
    4. 2 つのファイル $TEXMF/dvipdfm/config/config, $TEXMF/dvipdfm/config/dvipdfmx.cfg にそれぞれ次の行を追加する
      f musix.map
    5. dvips ディレクトリの中にあるファイル, musix.map$TEXMF/dvips/config ディレクトリにコピーする.
    6. ファイル $TEXMF/dvips/config/config.ps に次の行を追加する
      p +musix.map
  5. PMX のインストール
    1. pmx240.zip, pmx2407.zip, pmx2412.zip をこの順番に, 同じディレクトリ展開します. このとき, 同名のファイルは必ず上書きします. また, pmx2412.zip を展開するときは, ディレクトリ構造を無視して展開をします.
    2. 書庫を添加したときに作成されたファイル pmx.tex$TEXMF/tex/generic/musixtex/misc にコピーする.
    3. pmxab.exe および scor2prt.exe を TeX がインストールされているディレクトリにインストールする (install -m 755 -s pmxab.exe scor2prt.exe /usr/local/bin)
  6. M-Tx のインストール
    1. mtx054c.tar.gz を展開し, 作成されたディレクトリ mtx054c に移る.
    2. コンパイルをするために, prepmx/Makefile ファイルを変更する. 私が作成したパッチが 参考になるだろう.
    3. mtx054c/prepmx ディレクトリに移り, make && strip prepmx.exe && make install を実行する.
    4. mtx054c/tex ディレクトリの中身 (拡張子が .sty および .tex になっているもの) をすべて $TEXMF/tex/generic/musixtex/misc にコピーする.
  7. musixlyr のインストール
    1. musixlyr21c.tgz を展開する. デフォルトでは, カレントディレクトリに展開されるので注意.
    2. 展開したファイル群の中に, musixlyr.tex があるので, これを $TEXMF/tex/generic/musixtex/misc にコピーする.

ここまでの作業を全て終えたら mktexlsr を実行する.

インストール後の設定

特になし. 他のパッケージもインストールするのなら, リハッシュ (C シェル系や zsh なら rehash コマンド. B シェル系なら hash -r コマンド) をしておきましょう.

MusiXTeX にまつわる Makefile の例

MusiXTeX は, その性質上, 何回も TeX コンパイルをし, その間に中間ファイルを処理する必要がでてくる. これを手動で行うとどうしてもミスがでるので, Makefile に依存を書くのが賢い方法と思われる.

以下に, Makefile の例を掲載した. 参考にして欲しい. コピーして利用する場合は, HTML の都合上, 水平タブを半角スペース 8 個にしてあるので, 適宜, 置換をすること.

# DEFS

SHELL = /bin/sh

MTX = prepmx
PMX = pmxab
TEX = tex
MUSIXFLX = musixflx
DVIPS = dvips
DVIPDF = dvipdfmx
PSPDF = ps2pdf

# SUFFIX RULES

.SUFFIXES: .mtx .pmx .tex .mx1 .mx2 .dvi .ps .pdf

.mtx.pmx:
        $(MTX) $<

.pmx.tex:
        -rm -f $(<:.pmx=.mx1) $(<:.pmx=.mx2)
        $(PMX) $<

.tex.mx1:
        -rm -f $(<:.tex=.mx2)
        $(TEX) $<

.mx1.mx2:
        $(MUSIXFLX) $<

.tex.dvi:
        $(TEX) $<

.dvi.ps:
        $(DVIPS) $<

.dvi.pdf:
        $(DVIPDF) $<

# OBJS

sf_OBJECTS = sf.mx1 sf.mx2
sf_LOGS = sf.pml sf.log
sf_DOCS = sf.tex sf.dvi sf.ps sf.pdf #sf.pmx
# mt-x から作成する場合は sf.pmx も含める

# COMPILE Rules

all: sf.dvi

ps: sf.ps
pdf: sf.pdf
pspdf: sf-pspdf

clean: 
        -rm -f $(sf_OBJECTS)

distclean:
        -rm -f $(sf_OBJECTS) $(sf_LOGS) $(sf_DOCS)

#sf.pmx: sf.mtx # mt-x から作成する場合は, 行頭の `#' を外す
sf.tex: sf.pmx
sf.mx1: sf.tex
sf.mx2: sf.mx1
sf.dvi: sf.tex sf.mx2
sf.ps: sf.dvi
sf.pdf: sf.dvi

sf-pspdf: sf.ps
        $(PSPDF) $<

これは, sf.pmx から譜面を作成する場合の例です. コマンド引数なしの場合は DVI ファイルを作成した部分で終わります. 引数に ps を指定すると, DVI ファイルから PS ファイルを作ります. 引数に pdf を指定すると, DVI ファイルから PDF ファイルを作ります. 引数に pspdf を指定すると, DVI ファイルから一旦 PS ファイルを作り, PS ファイルから PDF ファイルを作ります. これは, 一部の PMX ファイルが DVI から直接 PDF を作成できない場合に有効です.