X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tex%2Flilyponddefs.tex;h=ccf820e122aaa5298763b43639d59965d0a68296;hb=7954f8012ca7364a1b369465a56f36f83f247685;hp=bec5af39ffcd2f4e62c8fec5271f5f4b895e87b9;hpb=151617937a431d3db3e94a16db011600acdb4288;p=lilypond.git diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index bec5af39ff..ccf820e122 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -2,11 +2,16 @@ %% include file for LilyPond %% %% this file defines various macros to accomodate lilypond output -%% +%% %% let's not make par before endinput -% + % TeXbook ex 7.7 \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} + + +% If we must make titles, do so, before we're Skipped. +\ifx\mustmakelilypondtitle\undefined\else\makelilypondtitle\fi +\ifx\mustmakelilypondpiecetitle\undefined\else\makelilypondpiecetitle\fi % % skip if included already \def\SkipLilydefs{\endinput} @@ -15,225 +20,78 @@ \def\SkipLilydefs{} \fi \SkipLilydefs -% -\ifundefined{mudelacopyright} - \def\mudelacopyright{\copyright\ \number\year} -\fi -\ifundefined{LilyIdString} - \def\LilyIdString{Lily was here} -\fi + +% need to do some stuff to turn pagenumbering off \ifundefined{documentclass} \input lilypond-plaintex \else \input lilypond-latex \fi -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% macros to shorten other definitions -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\musicmathdef#1#2{\def#1{\musicmathchar{#2}}} -\def\musicmathchar#1{\musicmathfont\char#1} +% The feta characters +\input feta20.tex -\def\topalign#1{\vbox to 0pt{#1\vss}} -\def\botalign#1{\vbox to 0pt{\vss #1}} +\font\fetasixteen=feta16 +\def\fetafont{\fetasixteen} +\def\fetachar#1{\hbox{\fetasixteen#1}} -\def\centeralign#1{\hbox to 0pt{\hss#1\hss}} + +\def\botalign#1{\vbox to 0pt{\vss #1}} \def\leftalign#1{\hbox to 0pt{#1\hss}} -\def\rightalign#1{\hbox to 0pt{\hss#1}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% set up dimensions -\parindent=0pt -\newdimen\smallspace -\newdimen\interlinedist - -\newdimen\stemthickness -\newcount\n %duh. meaningful identifiers. -\newdimen\staffheight -\newdimen\notewidth -\newdimen\noteheight -\newdimen\staffrulethickness -\newdimen\interstaffrule -\newdimen\dist - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% set fonts and primary dimensions -% ugh - -\def\cmrtwenty{ - \font\smalltextfont=cmr8 - \font\textmusic=cmmi12 -} - -\def\cmrsixteen{ - \font\smalltextfont=cmr6 - \font\textmusic=cmmi10 - } -\def\cmrthirteen{ - \font\smalltextfont=cmr6 - \font\textmusic=cmmi9 - } -\def\cmreleven{ - \font\smalltextfont=cmr5 - \font\textmusic=cmmi8 - } - -%%%%%%% -% -\def\musixtwentydefs{ - \twentyfonts - \csname cmrtwenty\texsuffix\endcsname - \musixcalc -} - -\def\musixsixteendefs{ - \sixteenfonts - \csname cmrsixteen\texsuffix\endcsname - \musixcalc - } -\def\musixtwentysixdefs{ - \csname cmrtwentysix\texsuffix\endcsname - \twentysixfonts - \musixcalc - } -\def\musixthirteendefs{ - \thirteenfonts - \csname cmrthirteen\texsuffix\endcsname - \musixcalc -} -\def\musixelevendefs{ - \csname cmreleven\texsuffix\endcsname - \elevenfonts - \musixcalc -} - -\def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}} -\def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}} -\def\textflat{\raise.2ex\hbox{\textmusic\char"5B}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% do derivative calcs - -% this has to be synced with the font definition -\def\musixcalc{ - \staffheight=\mudelapaperbarsize pt - - % ugh. Can extract ex dim from TFM - \interlinedist=\staffheight - \divide\interlinedist by 4 - \notewidth=\mudelapapernotewidth pt - - \smallspace=.3\interlinedist - \interstaffrule=\staffheight - \divide\interstaffrule by 4 - \staffrulethickness=\mudelapaperrulethickness pt - \stemthickness=\staffrulethickness -} - - - -% stacked horizontal lines -\def\interscoreline{\vskip 16pt} -\def\setdynamic#1{\dynfont #1} -\def\setfinger#1{\fingerfont #1} -\def\setnumber#1{\fetanummer #1} -\def\setmark#1{\markfont #1} - -% big fat marks, if errors are detected. -\def\columnerrormark{\placebox{-5pt}{0pt}{\bf C!}} -\def\scorelineerrormark{\placebox{0pt}{-10pt}{\bf L!}} -\def\errormark{{\bf E!}} -\def\unknown{{\bf u}} - -\input dyndefs -\input fetdefs - - - -\def\emptybar{} - -\def\defaultthinbar{\thinbar{\staffheight}} -\def\defaultthickbar{\thickbar{\staffheight}} -%? what-s wrong with rightalign? -\def\repeatstopbar{\rightalign{\repeatcolon\kern2\smallspace\defaultthinbar\kern\smallspace\defaultthickbar}} -\def\repeatstartbar{\hbox{\defaultthickbar\kern\smallspace\defaultthinbar\kern2\smallspace\repeatcolon}} -\def\repeatstopstart{\hbox{\repeatcolon\kern2\smallspace\defaultthickbar\kern\smallspace\defaultthickbar\kern2\smallspace\repeatcolon}} - -%compatibility -%urg -\fetdef\repeatcolon{18} -\def\repeatbar{\repeatstopbar} -\def\startrepeat{\repeatstartbar} -\def\repeatbarstartrepeat{\repeatstopstart} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% parametric symbols -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\doublebar#1{\hbox{\thinbar{#1}\hskip\smallspace\thinbar{#1}}} -\def\thinbar#1{\dimen0=#1% - \vrule height .5\dimen0 depth .5\dimen0 width 1.6\staffrulethickness} % TODO parametric. -\def\thickbar#1{\dimen0=#1% - \vrule height .5\dimen0 depth .5\dimen0 width 2\smallspace} -\def\maatstreep#1{\thinbar{#1}} -\def\startbar#1{\leftalign{\thickbar{#1}\kern\smallspace\thinbar{#1}}} -\def\finishbar#1{\rightalign{\thinbar{#1}\kern\smallspace\thickbar{#1}}} -\def\fatdoublebar#1{\hbox{\phantom{\repeatcolon\kern2\smallspace}\thickbar{#1}\kern\smallspace\thickbar{#1}}} - - - -% ugh -% see e.g. input/test/beam-pos.ly -% -% something's wrong with the aligment; sometimes all symbols -% look to be placed a bit too high (there's an ugly fix for -% the staccato-dot in script.cc) -% but this varies from line to line: it seems that xdvi -% does some rounding; i can't really check this from screen on i -% 600x600 res. -% -\def\rulesym#1#2{\dimen0=#1% - \vrule height .5\dimen0 depth .5\dimen0 width #2} -\def\shiftedrulesym#1#2{\dimen0=#1% - \vrule height .7\dimen0 depth .3\dimen0 width #2} -\def\tinyrulesym#1#2{\dimen0=#1% - \vrule height .1\dimen0 depth .1\dimen0 width #2} -%would be nice for checking alignment -\def\openrulesym#1#2{\dimen0=#1% - \vbox to \dimen0{\vss% - \hbox{\vrule height .1\dimen0 width #2}% - \hbox{\vrule height .2\dimen0 width 0pt}% - \hbox{\vrule height .4\dimen0 width #2}% - \hbox{\vrule height .2\dimen0 width 0pt}% - \hbox{\vrule height .1\dimen0 width #2}% - \vss}} -%\let\rulesym\shiftedrulesym -%\let\rulesym\tinyrulesym -%\let\rulesym\openrulesym - -% the interline symbol. Redefine to remove it. -\def\defaultlineseparator{\vbox{\mussepline\vskip -5pt\mussepline}} -\def\lineseparator{\defaultlineseparator} -\def\beauty{% - \par\vskip 10pt plus 30pt minus 10pt\par - \hskip -5pt\lineseparator - \par\vskip 10pt plus 30pt minus 10pt\par -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\postheader{} + +% Attempt to keep lilypiecetitle together with the piece: % -% macros suck. \ifundefined{nolilyfooter} gives wierd errors from time -% to time. +% TODO: figure this out. % + +\def\myfilbreak{} %\par\vfil\penalty200\vfilneg} + + +\ifundefined{lilypondpaperinterscorelinefill} + \def\lilypondpaperinterscorelinefill{0} +\else + \def\lilypondpaperinterscorelinefill{1} +\fi + +\def\interscoreline{\vskip \lilypondpaperinterscoreline \lilypondpaperunit plus \lilypondpaperinterscorelinefill fill} + +\def\placebox#1#2#3{% + \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}% + +% Are we using PDFTeX? If so, use pdf definitions. +% MiKTeX checks \pdfoutput the wrong way, makes our +% check more complicated. +\ifx\pdfoutput\undefined + \input lily-ps-defs +\else + \ifx\pdfoutput\relax + \input lily-ps-defs + \else + \pdfoutput=1 + \input lily-pdf-defs + \fi +\fi + +\def\EndLilyPondOutput{% +\ifundefined{lilypondpaperlastpagefill}% + \vskip 0pt plus \lilypondpaperinterscorelinefill00 fill +\fi +\csname bye\endcsname} + +% need to do some stuff to turn pagenumbering off +% they seriously mess up your fragments. + \ifx\csname nolilyfooter\endcsname\relax - \message{footer defined}% - \csname lilyfooter\texsuffix\endcsname + \message{[footer defined]}% + \csname lilyfooter\texsuffix\endcsname% \else - \message{page empty!} - \csname nolilyfooter\texsuffix\endcsname + \message{[footer empty]} + \csname% + nolilyfooter\texsuffix\endcsname +\fi + +\ifx\outputscale\undefined + \csname global\endcsname\csname newdimen\endcsname\outputscale \fi +\endinput