X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tex%2Flilyponddefs.tex;h=c47267cead9fb9e7586fc7ab9ef42f6d2bd8ec4c;hb=b7553de4f9a40dae86ebcb7211cab86eee2a7efe;hp=292022e096a17c4bd397b311d31de8b029b3d20c;hpb=c28b7449566ddc75d12902b8396092a2941016f1;p=lilypond.git diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 292022e096..c47267cead 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -2,10 +2,23 @@ %% 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} +% The feta characters +\input feta20.tex + +\font\fetasixteen=feta16 +\def\fetafont{\fetasixteen} +\def\fetachar#1{\hbox{\fetasixteen#1}} + +% 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} \ifundefined{EndLilyPondOutput} @@ -14,230 +27,64 @@ \fi \SkipLilydefs -\ifundefined{mudelacopyright} - \def\mudelacopyright{\copyright\ \number\year} -\fi -\ifundefined{LilyIdString} - \def\LilyIdString{Lily was here} +% 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\musicdef#1#2{\def#1{\musicchar{#2}}} -\def\musicchar#1{\musicfnt\char#1} -\def\rationalmultiply#1*#2/#3{\multiply #1 by #2 \divide #1 by #3} - - -\def\maccentraise#1#2{\dimen0=\noteheight - \rationalmultiply\dimen0*#2% - \raise\dimen0\hbox{#1}} -\def\maccentdef#1#2#3{\def#1{\maccentraise{\musicchar{#2}}{#3}}} -\def\vertcenter#1{\vbox to 0pt{\vss #1\vss}} - -\def\musicmathdef#1#2{\def#1{\musicmathchar{#2}}} -\def\musicmathchar#1{\musicmathfont\char#1} - -\def\topalign#1{\vbox to 0pt{#1\vss}} \def\botalign#1{\vbox to 0pt{\vss #1}} - -\def\centeralign#1{\hbox to 0pt{\hss#1\hss}} \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 -\newdimen\balkheight -\newdimen\notewidth -\newdimen\noteheight -\newdimen\staffrulethickness -\newdimen\interstaffrule -\newdimen\dist - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% set fonts and primary dimensions -% ugh -\def\musixtwentydefs{ - \balkheight=20pt - \notewidth=7.15pt - \noteheight=5pt - \musixtwentyfonts - \font\textmusic=cmmi12 - \musixcalc -} - -\def\musixsixteendefs{ - \balkheight=16pt - \notewidth=5.93pt - \noteheight=4pt - \musixsixteenfonts - \font\textmusic=cmmi10 - \musixcalc -} - -\def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}} -\def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}} -\def\textflat{\raise.2ex\hbox{\mus\char"5B}} - - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% do derivative calcs - -% FIXME: should read from TFM/AFM/fetalog -% - -% this has to be synced with the font definition -\def\musixcalc{ - \interlinedist=\fontdimen5\musicfnt - \smallspace=.3\interlinedist - \interstaffrule=\balkheight - \divide\interstaffrule by 4 - % [D.K.Roush & J.S.Gourlay] say this should be 0.072 - % We know better - \staffrulethickness=0.1\interlinedist - \stemthickness=\staffrulethickness -} - -% stacked numbers; may be overruled in fetdefs -\def\generalmeter#1#2{\vbox to 0pt{\vss\hbox{\meterfont - #1}\nointerlineskip - \hbox{\meterfont #2}\vss}} - -% stacked horizontal lines - -\input dyndefs - -\input taupindefs -%\input eglerdefs - - -\def\emptybar{} - -\def\defaultthinbar{\thinbar{\balkheight}} -\def\defaultthickbar{\thickbar{\balkheight}} -%? what-s wrong with rightalign? -\def\repeatstopbar{\hss\rightalign{\repeatcolon\hskip2\smallspace\defaultthinbar\hskip\smallspace\defaultthickbar}} -\def\repeatstartbar{\hbox{\defaultthickbar\kern\smallspace\defaultthinbar\kern2\smallspace\repeatcolon}} -\def\repeatstopstart{\hbox{\repeatcolon\kern2\smallspace\defaultthinbar\kern\smallspace\defaultthickbar\kern\smallspace\defaultthickbar\kern\smallspace\defaultthinbar\kern2\smallspace\repeatcolon}} - -%compatibility -\def\repeatbar{\repeatstopbar} -\def\startrepeat{\repeatstartbar} -\def\repeatbarstartrepeat{\repeatstopstart} - -\def\vruler#1{{% - \def\wid{\dimen0}% - \def\inc{\dimen1}% - \wid=#1pt - \inc=\wid - \divide\inc by #1 - \divide\wid by 2 - \here=-\wid - \loop\ifdim\here<\wid\advance\here by\inc - \hbox to0pt{\vbox to0pt{\vss\hrule width2pt height 0.05pt\kern\here}\hss}% - \repeat% -}} -\def\hruler#1#2{\hbox{% - \def\wid{\dimen0}% - \def\here{\dimen3}% - \wid=#1pt - \divide\wid by 2 - \here=-\wid - \loop\ifdim\here<\wid\advance\here by #2 - \hbox to0pt{\kern\here\vrule width0.05pt height 1pt depth 1pt\hss}% - \repeat% -}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% 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}}} +% Attempt to keep lilypiecetitle together with the piece: +\def\myfilbreak{\par\vfil\penalty200\vfilneg} -\def\pianobrace#1{{\musicdraw\char#1}} -\def\slurcharh#1{{\slurhfont\char#1}} -\def\slurcharu#1{{\slurufont\char#1}} -\def\slurchard#1{{\slurdfont\char#1}} -\def\hslurcharh#1{{\hslurhfont\char#1}} -\def\hslurcharu#1{{\hslurufont\char#1}} -\def\hslurchard#1{{\hslurdfont\char#1}} +% stacked horizontal lines +\ifundefined{lilypondpaperinterscoreline} + \def\lilypondpaperinterscoreline{16} +\fi +\ifundefined{lilypondpaperinterscorelinefill} + \def\lilypondpaperinterscorelinefill{0} +\else + \def\lilypondpaperinterscorelinefill{1} +\fi -\def\stem#1#2{\hbox{\kern -.5\stemthickness - \vrule width\stemthickness height#2 depth-#1}} +\def\interscoreline{\vskip\lilypondpaperinterscoreline pt plus % + \lilypondpaperinterscorelinefill fill} \def\placebox#1#2#3{% - \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}% -} - - -\def\brace#1{\count0=148\advance\count0 by #1\musicdraw\char\count0} -\def\crescendosym#1{\count0=84\advance\count0 by #1\musicdraw\char\count0} -\def\decrescendosym#1{\count0=116\advance\count0 by #1\musicdraw\char\count0} -\def\rulesym#1#2{\dimen0=#1% - \vrule height .5\dimen0 depth .5\dimen0 width #2} -\def\settext#1{\normaltextfont #1} -\def\setitalic#1{\italicfont #1} -\def\setdynamic#1{\dynfont #1} + \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 -% 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\EndLilyPondOutput{% + \vskip 0pt plus \lilypondpaperinterscorelinefill00 fill\csname bye\endcsname } - - -\def\interscoreline{\vskip 16pt} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% 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}} - \def\postheader{} -\ifundefined{documentclass} - \footline={\ifnum\pageno=1 - {\smalltextfont\mudelacopyright\hfil \LilyIdString - }\else{\hfil\the\pageno\hfil}\fi -}\else - %% FIXME - \def\ps@plain{ - \renewcommand{\@oddhead}{}% - \renewcommand{\@evenfoot}{}% - \renewcommand{\@evenhead}{}% - \renewcommand{\@oddfoot}{\ifnum\thepage=1 - {\hfil \LilyIdString - }\else{foo\hfil\the\pageno\hfil}\fi}} - \def\ps@empty{ - \renewcommand{\@oddhead}{}% - \renewcommand{\@evenfoot}{}% - \renewcommand{\@evenhead}{}% - \renewcommand{\@oddfoot}{\ifnum\thepage=1 - {\hfil \LilyIdString - }\else{foo\hfil\the\pageno\hfil}\fi}} -\fi +% need to do some stuff to turn pagenumbering off +% they seriously mess up your fragments. -% debugging stuff: -% \vbox to 0pt{\vskip .5cm \hruler{48}{3pt}\vss} +\ifx\csname nolilyfooter\endcsname\relax + \message{[footer defined]}% + \csname lilyfooter\texsuffix\endcsname% +\else + \message{[footer empty]} + \csname% + nolilyfooter\texsuffix\endcsname +\fi +\newdimen\outputscale +\endinput