MusixTex 用の PMX を学習していて、問題に直面しています: forrtl: 重大 (64): 入力変換エラー、ユニット -5、ファイル内部フォーマット読み取り

MusixTex 用の PMX を学習していて、問題に直面しています: forrtl: 重大 (64): 入力変換エラー、ユニット -5、ファイル内部フォーマット読み取り

何が間違っているのでしょうか? 明確に言えば、私の混乱は、エラーが発生したサンプル ファイル内の場所を示す明らかな行番号と位置が不足していることに起因しています。

マニュアルの 11 ページから PMX bat ファイルを借りてTypesetting music with PMX, Version 2.821 / May 2013 by Cornelius C. Noack、自分の MikTex セットアップ パスに合わせて調整しました。

:::::::::::::::::::::::: runpmx.bat ::::::::::::::::::::::::
Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\pmxab.exe" %1.pmx
if errorlevel 1 goto pmxerr
if exist %1.pml del %1.pml
if exist %1.mx2 del %1.mx2
if exist %1.mx1 del %1.mx1
if exist pmxaerr.dat del pmxaerr.dat
::
Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\etex.exe" %1.tex
if errorlevel 1 goto texerr
::
Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\musixflx.exe" %1.mx1
::
Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\etex.exe" %1.tex
if errorlevel 1 goto texerr
if exist %1.log del %1.log
::
Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\dvips.exe" %1.dvi
if errorlevel 1 goto dvierr
if exist %1.log del %1.log
::
@rem Call C:\Programme\GhostScript\Ghostgum\gsview\gsview32.exe %1.ps
::
goto :end
:::::::::::::::::::
:: error exits :
::
:pmxerr
echo.
echo PMX has found errors when processing %1.pmx !
echo.
pause
goto :end
::
:texerr
echo.
echo TeX has found errors when processing %1.tex !
echo check %1.log for details.
echo.
pause
goto :end
::
:dvierr
echo.
echo *** dvips had errors ! ***
echo.
pause
::
:end
:::::::::::::::::::: end of runpmx.bat ::::::::::::::::::::

次に、同じマニュアルの 14 ページから Haydn のサンプルをコピーして、haydn.pmxANSI エンコードのファイルに貼り付けました。

F.J.\ Haydn, Quartet op.76, no.2, bars 1--4
PREAMBLE:
nstaves ninstr mtrnuml mtrdenl mtrnump mtrdenp
4 4 4 4 0 6
npickup nkeys
0 -1
npages nsystems musicsize fracindent
1 1 16 .08
Violoncello
Viola
Violin II
Violin I
batt
./
% BODY:
% HEADER:
Tc
F.J. Haydn
Tt
String Quartet op. 76, No.2
h
Allegro
Abep
w170m
% begin of music input -
% bar 1
d82 Df o. d+ o. d o. d o. r d o. d o. d o. /
f83 Df o. f o. f o. f o. r f o. f o. f o. /
r8 a83 Df o. a o. a o. r a o. a o. a o. /
a24 Df d- /
% bar 2
r8 d o. d o. d o. r e o. e o. e o. /
r8 g o. g o. g o. r g o. g o. g o. /
r8 b o. b o. b o. r cs o. c o. c o. /
e2 a- /
% bars 3-4
f8 s e f cs s d4 a | b2 s a4 s o. r Rb /
a2 t a4 t .cs- | d8 s e f d s e4 o. r /
d8 s cs d e s e s d c s a1+ s g s | f s g f e s d8 o. d o. cs4 r /
d8 s cs d e s g s f e s a | d4- zd+ cn1 s b a gs s a4 o. r /
% end of PMX source file

そして最後に、そのサンプルに対して bat ファイルを実行しました。その結果、次のエラーが発生しました。

I:\LaTeX\MusixTex\work>pmx.cmd haydn

I:\LaTeX\MusixTex\work>Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\pmxab.exe" haydn.pmx
 This is PMX, Version 2.7  , 3 Apr 13
 Opening haydn.pmx

 Starting first PMX pass
forrtl: severe (64): input conversion error, unit -5, file Internal Formatted Read

I:\LaTeX\MusixTex\work>if errorlevel 1 goto pmxerr

I:\LaTeX\MusixTex\work>if exist haydn.pml del haydn.pml

I:\LaTeX\MusixTex\work>if exist haydn.mx2 del haydn.mx2

I:\LaTeX\MusixTex\work>if exist haydn.mx1 del haydn.mx1

I:\LaTeX\MusixTex\work>if exist pmxaerr.dat del pmxaerr.dat

I:\LaTeX\MusixTex\work>Call "D:\Program Files (x86)\MiKTeX 2.9\miktex\bin\etex.exe" haydn.tex
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (MiKTeX 2.9)
entering extended mode
! I can't find file `haydn.tex'.
<*> haydn.tex

Please type another input file name:
! Emergency stop.
<*> haydn.tex

No pages of output.
Transcript written on texput.log.
Terminate batch job (Y/N)? y

プロセスが完了すると、次のhaydn.pmlファイルが作成されます。

This is PMX, Version 2.7  , 3 Apr 13 
Opening haydn.pmx                                      
 Starting first PMX pass

5 つのスペースの後にpmxaerr.dat1 行だけ含まれるファイル:0

 0

答え1

この例は確かに間違っています。最初の行のコメント文字がいくつか抜けています。pmxファイルで最初に見るべきものは、変数などに対応する数字のリストです。この例では、このリストはでnstaves始まります4 4 4 4 0 6。これより前の行はすべて でコメントアウトする必要があります%。 および で始まる行も同様です。以下は正しいファイルとその出力です。npickupnpages

サンプル出力

% F.J.\ Haydn, Quartet op.76, no.2, bars 1--4
% PREAMBLE:
% nstaves ninstr mtrnuml mtrdenl mtrnump mtrdenp
4 4 4 4 0 6
% npickup nkeys
0 -1
% npages nsystems musicsize fracindent
1 1 16 .08
Violoncello
Viola
Violin II
Violin I
batt
./
% BODY:
% HEADER:
Tc
F.J. Haydn
Tt
String Quartet op. 76, No.2
h
Allegro
Abep
w170m
% begin of music input -
% bar 1
d82 Df o. d+ o. d o. d o. r d o. d o. d o. /
f83 Df o. f o. f o. f o. r f o. f o. f o. /
r8 a83 Df o. a o. a o. r a o. a o. a o. /
a24 Df d- /
% bar 2
r8 d o. d o. d o. r e o. e o. e o. /
r8 g o. g o. g o. r g o. g o. g o. /
r8 b o. b o. b o. r cs o. c o. c o. /
e2 a- /
% bars 3-4
f8 s e f cs s d4 a | b2 s a4 s o. r Rb /
a2 t a4 t .cs- | d8 s e f d s e4 o. r /
d8 s cs d e s e s d c s a1+ s g s | f s g f e s d8 o. d o. cs4 r /
d8 s cs d e s g s f e s a | d4- zd+ cn1 s b a gs s a4 o. r /
% end of PMX source file

このエラーを指摘してチュートリアルの作者に連絡することをお勧めします。一般的に、pmx@darthbin がコメントで要求したように、ドキュメントと導入資料に最初に試すことができる非常に短い簡単な例が含まれていると便利です。おそらく、そのような例は次のようになります。

1 1 4 4 4 4 0 0 
1 1 20 0.12 
Violin
t
./
% Bars 1
c2 g4+ e /
% End of file

どこ

1 1 4 4 4 4 0 0 

は、システムごとに 1 つの譜表、1 つの楽器、4/4 拍子で 4/4 として印刷され、弱起小節に 0 拍子0、調号 (シャープやフラットなし)を意味します。2 行目

1 1 20 0.12 

1 つのシステム、音楽のサイズ、および最初のシステム20のインデントを含む 1 ページであることを示しています。3 行目は楽器の名前で、4 行目はそれが高音部記号であることを示しています。この行は、出力を現在のディレクトリに配置することを示しています。最後に音楽の小節があり、C の最小値から始まり、G のクロシェットに上昇し、その後 E のクロシェットが続きます。0.12
t./c2 g4+ e /

サンプル出力

pmx2pdf私のインストール (texlive)には、これをファイルに処理するコマンドが付属していますpdf

関連情報