version 0.54 [2017/08/17]
MusiXTeXではスラー・タイはフォントによって描かれます。従ってフォントがない曲線は描けず、長いスラーでは継ぎ目が入るので汚くなりがちです。
そこで、「より美しく、より柔軟に」スラー・タイを描くために、MetaPostの力を借りてスラー・タイをPostScriptで描く拡張パッケージを製作しました。
以下の記述でスラーという場合、特に断りがない限りスラーとタイの両方を含むものとします。MusiXTeXの核心部分ではスラーとタイの区別はないためです。
\curve{h}{i}{j}
は対応が不完全で \midslur{h}
相当の機能となります。
\count
、\write
、\read
を各1)
music
環境でも使えます。
doc
ディレクトリ
musixpss_ja.html
musixpss_en.html
musixpss_it.html
musixpss.tex
musixpss.mp
musixpss.exe
musixpss.c
gpl-2.0.txt
※可読ファイル (html, tex, mp, c) はすべてCRLF改行(MS-DOSスタイル)にしています。
\special{PSfile=...}
によるPostScript画像の取り込みに対応したdviドライバ
supp-pdf.tex
および supp-mis.tex
。角藤版ではpdfTeXの配布に含まれています。
musixpss.tex
を、TeXが入力ファイルとして認識できるディレクトリに置いてください。とりあえずは作成中の楽譜と同じところに置けば大丈夫です。常用するならば、例えば $TEXMF/tex/generic/musixtex/misc/
に置けば良いでしょう。
C:\w32tex\share\texmf-dist/tex/generic/musixtex/misc
musixpss.mp
を、MetaPostが入力ファイルとして認識できるディレクトリに置いてください。とりあえずは作成中の楽譜と同じところに置けば大丈夫です。常用するならば、例えば $TEXMF/metapost/musixtex/misc/
に置けば良いでしょう。
musixpss.exe
を PATH
が設定されているディレクトリに置きます。実際にはMusiXTeX本体のインストールの時に musixflx.exe
を置いたのと同じディレクトリに置くと良いでしょう。
musixpss.c
を44-45行目を修正の上、適当にコンパイルし(例: gcc -Wall -O2 musixpss.c -o musixpss
)、実行ファイルを適切な場所に置いてください。
ここでは、処理するMusiXTeX楽譜ソースファイルが foo.tex
であるとします。
foo.tex
を作ります。
\input musixtex.tex
の次に、 \input musixpss.tex\relax
の1行を加えます。
このとき、tex foo
musixflx foo
tex foo
No file foo.slu.1.mps.
といったメッセージが画面に表示されます。また、通常の foo.mx1
foo.mx2
foo.dvi
に加えてスラーの各種パラメータが書かれた foo.slu
というファイルができます。
musixpss.exe
を実行します。
musixpss foo
これにより、 foo.slu
からMetaPostソースファイル foo.mp
が生成されます。コマンドラインに拡張子指定があってもなくても強制的に .slu
と見なされます。
mpost foo
MetaPostの起動コマンドはシステムにより、 mp
である場合もあります。終了すると、 foo.slu.1.mps
foo.slu.2.mps
... というように、個々のスラーの描画命令を含んだEPSファイルがスラーの数だけ生成されます。
tex foo
今回は No file foo.slu.1.mps.
などという表示は出なくなり、dviファイルにスラーを取り込む \special
が書き込まれます。
なお、楽譜を変更してタイプセットし直す場合、基本的には foo..slu.1.mps
などのEPSファイルは消さなくても大丈夫です。特に foo.mx2
と foo.slu
の内容が両方とも変化しないような変更ならば、MusiXTeXを1回実行するだけで良い場合があります。
ただし、スラーの数や形が変わるような変更で、MusiXTeXの第1パスからやり直す場合は、通常モードおよびpdfTeX専用モード(次項参照)ではこれらEPSファイルを消しておくと、第2パスの処理速度が上がります。
このパッケージは様々な環境に対応するために、3種類の基本動作モードを持っています。
\psslurmode{general}
:通常モード(デフォルト)
\psslurmode{dvips}
:dvips/dvipdfm最適化モード
\psslurmode{pdftex}
:pdfTeX専用モード
何も指定しない場合は通常モードになります。特に理由がなければ、通常モードをお使いください。
dvips/dvipdfm最適化モードは、内部の処理が非常に簡素であるため高速にタイプセットできるほか、位置決め精度がよい、手順の第6パスが不要になる、等の利点があります。ただし、LaTeX2eレベルでdvips互換をうたっていても低レベルの命令が完全互換でないDVIware(dviout)では、正しい結果が得られなくなります。お使いのdviドライバで通常モードと同じ出力が得られることを確認の上ご使用ください。
pdfTeX専用モードはその名のとおりです。pdfTeX(ver.1.10a-devel以降)で使えます。
これら以外のDVIware(xdvi等)に対応することも考えられますが作者にはその環境がありませんので、情報提供とベータテストにご協力をお願いいたします。
バージョン0.52で、自動選択モードを追加しました。組版エンジンが普通のTeXかpdfTeXかをマクロが検出し、適切な動作モードを自動選択します。それ以外の動作は選択された基本モードと同じです。
\psslurmode{auto-pdftex-general}
: 通常モードとpdfTeX専用モードの自動切り換え
\psslurmode{auto-pdftex-dvips}
: dvips/dvipdfm最適化モードとpdfTeX専用モードの自動切り換え
※LaTeX2eのgraphicx packageに
動作モード 通常モード dvips最適化モード pdfTeX専用モード 通常・pdfTeX自動切換 dvips・pdfTeX自動切換え 一般のDVIware※ OK 可否はDVIwareにより異なる NG OK 可否はDVIwareにより異なる dvips/dvipdfm(x) OK OK NG OK OK pdfTeX NG NG OK OK OK [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
tex foo
musixflx foo
tex foo
musixpss foo
mpost foo
tex foo
%DVIWARE% foo
全5パス
+ dvipsまたはdvipdfm(x)
tex foo
musixflx foo
tex foo
musixpss foo
mpost foo
dvips foo
(ordvipdfm(x) foo
)全6パス
+ Acrobat Reader
pdftex foo
musixflx foo
pdftex foo
musixpss foo
mpost foo
pdftex foo
(AcroRd32) foo
operation mode 通常・pdfTeX自動切換 dvips・pdfTeX自動切換え code \input musixtex
\input musixpss
\psslurmode{auto-pdftex-general}%\input musixtex
\input musixpss
\psslurmode{auto-pdftex-dvips}%
\psslurthickadj
というマクロを任意の実数に再定義すると、スラーの太さがデフォルトの \psslurthickadj
倍になります。例えば \def\psslurthickadj{2.5}
とするとデフォルトの2.5倍の太さになります。
このパッケージを読み込んだ状態で、何らかの理由によりPS化スラーでなくフォントによるスラーを使いたい場合、楽譜ソースファイルの任意の場所で、PS化スラーと従来のフォントによるスラーを切り替えることができます。
\enablepsslurM
\disablepsslurM
海外ユーザーから「中間EPSファイルを削除できるようにして欲しい」との要望が多くあり、実装しました。また、通常モードおよびpdfTeX専用モードで、楽譜を変更してMusiXTeXの第1パスからタイプセットし直す場合のEPSファイル一括削除にも利用できます。
musixpss -clean foo.slu
(ファイル名の .slu
は無くても構いません)または同じことですが
musixpss foo.slu -clean
とすると、すべての中間EPSファイル
foo.slu.1.mps
, foo.slu.2.mps
, ...foo.slu.n.mps
を削除します。ただし、実装は手抜きであり、環境によっては意図に反して本来必要なファイルを削除してしまうかもしれませんので、サポートプログラムのソースファイルを検討の上、注意して使用してください。
このパッケージの著作権は作者にあります。使用条件はGNU GPL ver.2またはそれ以降に準拠したフリーソフトウェアとします。同梱の gpl-2.0.txt
ファイルを参照して下さい。作者はこのパッケージに対して当面の間GNU GPL ver.2を判断基準としますが、このパッケージの一部を別のプログラムへ組み込む際に最新のGNU GPL ver.3への移行を妨げるものではありません。GNU GPL ver.2の邦訳は http://www.opensource.jp/gpl/gpl.ja.html などから得られますが、現在GNU GPLはver.3が最新版として頒布されているためver.2の邦訳の取得永続性については保証されないものと考えられます。
gpl-2.0.txt
または http://www.gnu.org/.
Hiroaki MORIMOTO <CQX05646
(atmark) nifty
(dot) com
>
Luigi Cataldi氏には、pdfTeXにおける動作確認と、説明書のイタリア語への翻訳(v0.51.1、v0.53)をしていただきました。ここに感謝いたします。
\special{epsfile=...}
から special{PSfile=...}
へ変更。オリジナルのdvipsで動作可能になるとともに、dvioutの仕様にも配慮した。
.slu
ファイル名の拡張子の扱いを無視から補完に変更。
\midslur h
や \curve hij
を指定したときに動作がおかしくなる場合があるのを修正。
\islurd...
で始まる(下向き)スラーで \midslur h
を指定すると上下裏返しになるのを修正。
\isluru0...\midslur{-5}\tslur0
)にしたときの挙動をオリジナルに近づけた(完全ではない)。
\invertslur
, \Tslurbreak
, \Islur[u|d]break
)に対応。
\midslur h
の h
が大きい場合にぎくしゃくしていたのを改善。曲線の内部パラメータを変更。また、「ペンのねじり」がスラーの向きに合うように修正。
\special{PSfile=...}
)に座標を書き込まないか書き込むか)を指定できるようにし( \psslursimplepositioning[true|false]
)、これを仕様として公開した。
\psslurorgemu[true/false]
)。
\musicsize
)に合わせて、スラーの太さが変わるようにした。
.slu
ファイル読み込み時にパラメータの不足をチェックするようにした。
\psslurthickadj
)
\psslursimplepositioning[true|false]
を廃止し、新たに \psslurmode{general|dvips|pdftex}
で指定するようにした。
musixpss.mp
に独立させた。
musixpss.tex
の行末処理( %
でコメント化)の不備を修正。
foo.slu
にパラメータを書き出さないようにした。
*.mps
) 取り込み仕様に適合させた。これにより、outputtemplate
をサポートしない古い MetaPost では動作しない。そのような古いシステムでは version 0.53 を使ってください。
\Check@staff
への対応
Copyright (C) 2001-2017 Hiroaki MORIMOTO (Kuuku).
ご意見やバグレポ等歓迎いたします。'TeX-music Mailing List'(英語)または直接e-mailにてお知らせください。