Ich lerne PMX für MusixTex und stehe vor einem Problem: forrtl: schwerwiegend (64): Eingabekonvertierungsfehler, Einheit -5, Datei intern formatiert lesen

Ich lerne PMX für MusixTex und stehe vor einem Problem: forrtl: schwerwiegend (64): Eingabekonvertierungsfehler, Einheit -5, Datei intern formatiert lesen

Was mache ich falsch? Nur um das klarzustellen: Meine Verwirrung rührt daher, dass es keine offensichtlichen Zeilennummern und Positionen gibt, die auf die Stelle in der Beispieldatei verweisen würden, an der ein Fehler aufgetreten ist.

Ich habe eine PMX-Bat-Datei von Seite 11 des Handbuchs übernommen Typesetting music with PMX, Version 2.821 / May 2013 by Cornelius C. Noackund sie an meine MikTex-Setup-Pfade angepasst.

:::::::::::::::::::::::: 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 ::::::::::::::::::::

Dann habe ich ein Haydn-Beispiel von Seite 14 desselben Handbuchs in eine Datei haydn.pmxin ANSI-Kodierung kopiert/eingefügt:

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

und führte schließlich die Bat-Datei für dieses Beispiel aus. Das Ergebnis waren die folgenden Fehler:

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

Nach Abschluss des Vorgangs haydn.pmlwird die folgende Datei erstellt:

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

und eine Datei , die nur eine Zeile mit 5 Leerzeichen pmxaerr.datenthält :0

 0

Antwort1

Das Beispiel ist tatsächlich falsch, es fehlen einige Kommentarzeichen in den ersten Zeilen. Das erste, was pmxman in der Datei erwartet, ist eine Liste von Zahlen, die den Variablen nstavesusw. entsprechen. In diesem Beispiel beginnt diese Liste mit 4 4 4 4 0 6. Alle Zeilen davor müssen mit auskommentiert werden %, ebenso die Zeilen, die mit npickupund beginnen npages. Hier ist eine korrekte Datei und ihre Ausgabe

Beispielausgabe

% 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

Ich schlage vor, dass Sie den Autor des Tutorials kontaktieren und auf diesen Fehler hinweisen. Generell wäre es nett, wenn das pmxDokument und das Einführungsmaterial ein wirklich kurzes, einfaches Beispiel enthalten würden, das man zuerst ausprobieren könnte, so wie es @darthbin in den Kommentaren gefordert hat. Vielleicht wäre ein solches Beispiel

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

Wo

1 1 4 4 4 4 0 0 

bedeutet ein Notensystem pro System, ein Instrument, 4/4-Takt gedruckt als 4/4 mit 0 Schlägen im Auftakt und Tonartvorzeichen 0, also ohne Kreuze oder Bs. Zeile 2

1 1 20 0.12 

sagt 1 Seite mit 1 System, Notengröße 20und einem Einzug von 0.12für das erste System.
Zeile 3 ist der Name des Instruments, Zeile 4 tsagt, es ist ein Violinschlüssel. Die ./Zeile sagt, die Ausgabe soll in das aktuelle Verzeichnis geschrieben werden. Schließlich c2 g4+ e /folgt der Notentakt, der mit einem C-Minimum beginnt und zu einem G-Violett aufsteigt, gefolgt von einem E-Violett.

Beispielausgabe

Meine Installation (Texlive) verfügt über einen Befehl pmx2pdf, der dies in eine Datei für Sie verarbeitet pdf.

verwandte Informationen