From 59aa260e9d95e9aa3ad62a8c0c8d14832ea282db Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 7 Apr 2016 17:20:40 +0000 Subject: pmx 2.74, pmx2pdf binary gone (20feb16) git-svn-id: svn://tug.org/texlive/trunk@40308 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/generic/pmx/pmx.tex | 158 ++++++++++++++++++++++++------ 1 file changed, 126 insertions(+), 32 deletions(-) (limited to 'Master/texmf-dist/tex/generic') diff --git a/Master/texmf-dist/tex/generic/pmx/pmx.tex b/Master/texmf-dist/tex/generic/pmx/pmx.tex index 80131a498cc..3dcd94e4391 100644 --- a/Master/texmf-dist/tex/generic/pmx/pmx.tex +++ b/Master/texmf-dist/tex/generic/pmx/pmx.tex @@ -3,8 +3,10 @@ %% pmx.tex %% %% %% %%%%%%%%%%%%%%%%%%%%%%% -\def\pmxversion{2.7}\def\pmxdate{3 April 13} - +\ifx\pmxversion\undefined\else\endinput\fi +\def\pmxversion{2.74}\def\pmxdate{4 Feb 20} +% 2.73 4 Feb 16 Fix \pmxclefsym to include \smalltreblelowoct +% 2.73 Added \pmxlyr command. % 2.619 At movement break, directly set \nbinstruments in \newmovement; % probably don't need \newnoi any more. % (2.619a) Added \resetlyrics in \newmovement. @@ -37,9 +39,16 @@ % 1 July inserted stuff for hairpins % 31 May 99 Redefined \smno % -\ifx\pmxnewclefs\undefined\else\endinput\fi \immediate\write10% -{PMX, a Preprocessor for MusiXTeX, Version\space\pmxversion a\space<\pmxdate>}% +{PMX, a Preprocessor for MusiXTeX, Version\space\pmxversion b\space<\pmxdate>}% +% Check for MusiXTeX version. TeX generates an error, not an ordinary +% \end, because the \ifnum is not completed. +\ifnum\mxvernumber<121\immediate\write16{ } +\immediate\write16{****************} +\immediate\write16{! STOPPING TeX because MusiXTeX Version = \mxvernumber} +\immediate\write16{ while PMX 2.71+ requires at least 121} +\immediate\write16{****************} +\immediate\write16{ }\end{document}\fi % \edef\catcodeat{\the\catcode`\@}\catcode`\@=11 % @@ -70,7 +79,8 @@ \newtoks\pmxclefsym \def\pmxclef#1#2{\ifnum#1=0\def\pmxclefsym{\smalltrebleclef}\else\ifnum#1<5% \def\pmxclefsym{\smallaltoclef}\else\ifnum#1=7\def\pmxclefsym{\smalltrebleclef}% -\else\def\pmxclefsym{\smallbassclef}\fi\fi\fi% +\else\ifnum#1=8\def\pmxclefsym{\smalltreblelowoct}% +\else\def\pmxclefsym{\smallbassclef}\fi\fi\fi\fi% % Adjust height here for older clef default heights. \reflect#2\ifolder\ifnum#1=0\advance\reflect-2\else\ifnum#1<5\advance\reflect-4% \else\advance\reflect-6\fi\fi\fi% @@ -94,7 +104,8 @@ % %\def\Gshl#1{\off{-#1pt}\tinynotesize}% %\def\Gshr#1{\normalnotesize\off{#1pt}}% -\def\segnoo#1#2{\zcharnote{#2}{\kern#1pt\musicsmallfont\char"56}} +\def\segnoo#1#2{\zcharnote{#2}{\kern#1pt\musicsmallfont\char"56}}% +\def\ssegno#1{\zcharnote{#1}{\musictinyfont\char86}}% % % Some ornaments... % @@ -207,8 +218,9 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt %\font\BIGfont=cmbx10 scaled\magstep4 %\font\Bigfont=cmbx10 scaled\magstep2 \font\xtrfont=cmsy10 -\font\BIGfont=\fontid bx10 scaled\magstep4 -\font\Bigfont=\fontid bx10 scaled\magstep2 +% Definitions deleted per Bob Tennent's request 150726 +%\font\BIGfont=\fontid bx10 scaled\magstep4 +%\font\Bigfont=\fontid bx10 scaled\magstep2 \font\tempo=\fontid bx12% \font\dyn=\fontid bx10% \fi\fi @@ -319,21 +331,25 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt % \smallaccid% % -% Put in a new time signature +% Put in a new time signature. Modified 151226 % \def\newtimes#1% {\ifnum#1=0% \n@wbar\writ@newclefs\advance\barsinlin@\@ne% +% +% Added 151216 +% \wbarno@x\Writ@newsigns% \advance\n@skip0.3\afterruleskip\widthtyp@\@ne\t@rmskip% - \Writ@meters\addspace\afterruleskip% + \Writ@meters\lastbarpos\lin@pos\addspace\afterruleskip% \else\ifnum#1=1% \alaligne \else + \wbarno@x% % -% Start new page +% Added 151226 % - \wbarno@x% +\addspace\afterruleskip % % -0.7 gave too much space before meter. % @@ -409,9 +425,13 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt \kern-3.2\Interligne\kern-\parindent\kern-\afterruleskip% \kern-\sign@skip% \vbox{\vskip#1\Interligne -\ifx\relax#2\relax\else{\Bigtype\leftlines{#2}}\fi\vskip#3\Interligne% -\ifx\relax#4\relax\else{\BIGtype\centerlines{#4}}\fi\vskip#5\Interligne% -\ifx\relax#6\relax\else{\Bigtype\rightlines{#6}}\fi\vskip#7\Interligne}}% +% Next 3 lines replaced at Bob Tennent's request 150726 +%\ifx\relax#2\relax\else{\Bigtype\leftlines{#2}}\fi\vskip#3\Interligne% +%\ifx\relax#4\relax\else{\BIGtype\centerlines{#4}}\fi\vskip#5\Interligne% +%\ifx\relax#6\relax\else{\Bigtype\rightlines{#6}}\fi\vskip#7\Interligne}}% +\ifx\relax#2\relax\else{\bigtype\leftlines{#2}}\fi\vskip#3\Interligne% +\ifx\relax#4\relax\else{\BIgtype\centerlines{#4}}\fi\vskip#5\Interligne% +\ifx\relax#6\relax\else{\bigtype\rightlines{#6}}\fi\vskip#7\Interligne}}% % % Slashes on stems % @@ -733,31 +753,41 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt \ifx\volta@startcor\undefined \else\advance\y@ii\cut@v\fi% \advance\y@ii-#2pt\advance\y@ii-#3pt\kern-#3pt% \kern-\h@lf\y@ii\lrlap{#1}\kern\h@lf\y@ii\kern#3pt}% +% +% mbrest mods 151226. Changed # of args in mbrest from 3 to 1; +% changed pmx271 accordingly +% 160103 back to 3 args +% +\def\mbgap{\qsk\hqsk}% \def\mbrest#1#2#3{% +\CenterBar{\ccn{9}{\meterfont#1}}{#2}{#3}% \CenterBar{% -\ifnum #1<10\raise 9\internote\lrlap{\meterfont #1}\fi% \ifcase #1% \relax% -%\or\lrlap{\pause\off{\qn@width}}% -\or\pausc% -%\or\lrlap{\PAuse\off{\txt@ff}}% -\or\PAusc% -\or\lrlap{\PAuse\qsk\pause\off{\qn@width}}% -\or\lrlap{\PAUSe\off{0.5\txt@ff}}% -\or\lrlap{\PAUSe\qsk\pause\off{\qn@width}}% -\or\lrlap{\PAUSe\qsk\PAuse\off{\txt@ff}}% -\or\lrlap{\PAUSe\qsk\PAuse\qsk\pause\off{\txt@ff}\off{\qn@width}}% -\or\lrlap{\PAUSe\qsk\PAUSe\off{\txt@ff}}% -\or\lrlap{\PAUSe\qsk\PAUSe\qsk\pause\off{\txt@ff}\off{\qn@width}}% -\else\def\vertpart{\hbox{\vrule width.6pt height1.5\internote depth1.5\internote}}% -\raise\f@ur\internote\hbox{% -\vertpart\hbox{% -\advance\y@ii-\cut@v\advance\y@ii-\volta@startcor\advance\y@ii-\volta@endcor% +\or\cpause% 1 +\or\cPAuse% 2 +\or\cPAuse\mbgap\cpause% 3 +\or\cPAUSe% 4 +\or\cPAUSe\mbgap\cpause% 5 +\or\cPAUSe\mbgap\cPAuse% 6 +\or\cPAUSe\mbgap\cPAuse\mbgap\cpause% 7 +\or\cPAUSe\mbgap\cPAUSe% 8 +\or\cPAUSe\mbgap\cPAUSe\mbgap\cpause% 9 +\else +\def\vertpart{\hbox{\vrule width.6pt height1.5\internote depth1.5\internote}}% +\raise4\internote\hbox{\vertpart% \vrule width0.7\y@ii height.5\internote depth.5\internote% -\kern-0.35\y@ii\raise5\internote\lrlap{\meterfont #1}\kern0.35\y@ii}% \vertpart}% \fi}{#2}{#3}}% % +% 151226 Redefine \xchangecontext to add in \afterruleskip +% +\def\xchangecontext{\n@wbar\writ@newclefs + \wbarno@x\Writ@newsigns\Writ@meters\lastbarpos\lin@pos\addspace\afterruleskip}% +% +% 151227 Define \ccoda so it positions like any other ornament +% +\def\ccoda{\n@iv85\@Char}% \def\pcaesura#1#2{\raise#1\internote\hbox{% \rlap{\kern.5\noteskip\kern#2\qn@width\musixchar79}}}% \def\pbreath#1#2{\zcharnote6{\raise#1\internote\hbox{% @@ -776,4 +806,68 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt \roffset{#2}{\zcharnote0{\raise#1\internote\hbox{\varline0{6pt}{20}}}}}% \def\arpgu#1{\arpg{#1}{.8}}% % +% \pmxlyr command, see Usage afer \endinput. Dirk Laurie 2016-01-24 +% The unrolled loops are necessary because \assignlyricshere must have +% a raw string literal as argument. +\def\pmxlyr#1{% +\ifnum\noinstrum@nt=1% + \ifnum\noport@@=1% + \if@pmx@nextvoice\setlyrics{I1P1V2}{#1}\assignlyricshere{I1P1V2}% + \else\setlyrics{I1P1V1}{#1}\assignlyricshere{I1P1V1}\fi\fi% + \ifnum\noport@@=2% + \if@pmx@nextvoice\setlyrics{I1P2V2}{#1}\assignlyricshere{I1P2V2}% + \else\setlyrics{I1P2V1}{#1}\assignlyricshere{I1P2V1}\fi\fi\fi% +\ifnum\noinstrum@nt=2% + \ifnum\noport@@=1% + \if@pmx@nextvoice\setlyrics{I2P1V2}{#1}\assignlyricshere{I2P1V2}% + \else\setlyrics{I2P1V1}{#1}\assignlyricshere{I2P1V1}\fi\fi% + \ifnum\noport@@=2% + \if@pmx@nextvoice\setlyrics{I2P2V2}{#1}\assignlyricshere{I2P2V2}% + \else\setlyrics{I2P2V1}{#1}\assignlyricshere{I2P2V1}\fi\fi\fi% +\ifnum\noinstrum@nt=3% + \ifnum\noport@@=1% + \if@pmx@nextvoice\setlyrics{I3P1V2}{#1}\assignlyricshere{I3P1V2}% + \else\setlyrics{I3P1V1}{#1}\assignlyricshere{I3P1V1}\fi\fi% + \ifnum\noport@@=2% + \if@pmx@nextvoice\setlyrics{I3P2V2}{#1}\assignlyricshere{I3P2V2}% + \else\setlyrics{I3P2V1}{#1}\assignlyricshere{I3P2V1}\fi\fi\fi% +\ifnum\noinstrum@nt=4% + \ifnum\noport@@=1% + \if@pmx@nextvoice\setlyrics{I4P1V2}{#1}\assignlyricshere{I4P1V2}% + \else\setlyrics{I4P1V1}{#1}\assignlyricshere{I4P1V1}\fi\fi% + \ifnum\noport@@=2% + \if@pmx@nextvoice\setlyrics{I4P2V2}{#1}\assignlyricshere{I4P2V2}% + \else\setlyrics{I4P2V1}{#1}\assignlyricshere{I4P2V1}\fi\fi\fi% +}% +% +% Definition for \lyrlink&\at, used with pmxlyr strings with '~'and '@' +% +\def\lk{\lyrlink}% +\def\at#1{\lyrraisehere{#1\internote}}% + \catcode`\@=\catcodeat +\endinput + +Usage: + \pmxlyr{TEXT} (assigns TEXT as lyrics in the current context) + +In PMX, enter the command with a trailing backslash. Starting at PMX 2.73, +"TEXT" on a music line is equivalent to \pmxlyr{TEXT}. + +Spaces and hyphens separate TEXT into syllables. An underscore between +words combines syllables from different words into a single syllable. + +TEXT may contain any TeX macro, in particular: + \space Space character that does not separate syllables + \lyrhyphenchar Hyphen that does not separate syllables + {\empty} Invisible syllable (for notes that get no lyrics) + +\pmxlyr uses the unexpanded contents of TEXT when looking for the +syllable splitters, e.g. \def\mylyrics{many words of poetry} followed +by \pmxlyr{\mylyrics} will put all those words on one note. + +For more information on what is acceptable in TEXT, consult mxlyrdoc.pdf. + +Limits: Lyrics are recognized only on the first two staves of instruments +1 to 4. Elsewhere they are ignored. + -- cgit v1.2.3