楽譜を作成するためのマクロです
MusiXTeX の作者である Daniel TAUPIN 氏が亡くなられました. 2003 年 8 月 26 日のことでした. 死因はアルプス登山の最中の事故死でした. ご冥福をお祈りいたします.
M-Tx をコンパイルするために, p2c が必要です.
musixtex-T112.tar.gz を展開し,
作成されたディレクトリ musixtex-T112 に移動する
(以降, このディレクトリを $MUSIXTEXSRC と表記する.).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)musixps-0.92.tar.gz を展開し,
作成されたディレクトリ musixps-0.92 に移動する.musixps-unix.tar.gz を展開し,
作成されたディレクトリ musixps-unix に移動する.musix.map を
$TEXMF/dvipdfm/config ディレクトリにコピーする.$TEXMF/dvipdfm/config/config,
$TEXMF/dvipdfm/config/dvipdfmx.cfg
にそれぞれ次の行を追加する
f musix.map
musix.map を
$TEXMF/dvips/config ディレクトリにコピーする.$TEXMF/dvips/config/config.ps
に次の行を追加する
p +musix.map
pmx240.zip, pmx2407.zip,
pmx2412.zip をこの順番に,
同じディレクトリ展開します.
このとき, 同名のファイルは必ず上書きします.
また, pmx2412.zip を展開するときは,
ディレクトリ構造を無視して展開をします.pmx.tex を
$TEXMF/tex/generic/musixtex/misc にコピーする.pmxab.exe および scor2prt.exe を
TeX がインストールされているディレクトリにインストールする
(install -m 755 -s
pmxab.exe scor2prt.exe /usr/local/bin)mtx054c.tar.gz を展開し,
作成されたディレクトリ mtx054c に移る.prepmx/Makefile ファイルを変更する.
私が作成したパッチが
参考になるだろう.make && strip prepmx.exe
&& make install を実行する.musixlyr21c.tgz を展開する. デフォルトでは,
カレントディレクトリに展開されるので注意.musixlyr.tex
があるので, これを
$TEXMF/tex/generic/musixtex/misc にコピーする.ここまでの作業を全て終えたら mktexlsr を実行する.
特になし. 他のパッケージもインストールするのなら,
リハッシュ (C シェル系や zsh なら rehash コマンド.
B シェル系なら hash -r コマンド) をしておきましょう.
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 を作成できない場合に有効です.