X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tex%2Flilyponddefs.tex;h=d9e298bc1ed3d39f57e79ce4db4f1d11a73f9f6c;hb=05eb1cca1ff8c27bf2e0de35a28042995570390a;hp=30d2d34c1af7d91ed1f67d2213866d0593c0779c;hpb=0d2593e4ef1f3d1eb6994223f1de8f6c8fbcd066;p=lilypond.git diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 30d2d34c1a..d9e298bc1e 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -2,10 +2,17 @@ %% 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} \ifundefined{EndLilyPondOutput} @@ -14,233 +21,73 @@ \fi \SkipLilydefs +% 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\mdef#1#2{\def#1{\mchar{#2}}} -\def\mchar#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{\mchar{#2}}{#3}}} -\def\vertcenter#1{\vbox to 0pt{\vss #1\vss}} +% The feta characters +\input feta20.tex -\def\mathdef#1#2{\def#1{\mathchar{#2}}} -\def\mathchar#1{\mathfont\char#1} +\font\fetasixteen=feta16 +\def\fetafont{\fetasixteen} +\def\fetachar#1{\hbox{\fetasixteen#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\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 -\newcount\n -\newdimen\balkheight -\newdimen\notewidth -\newdimen\noteheight -\newdimen\staffrulethickness -\newdimen\interstaffrule - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% set fonts and primary dimensions -\def\musixtwentydefs{ - \font\textfont=cmr10 - \font\meterfont=cmbx12 - \font\slurufont=xslu20 - \font\slurdfont=xsld20 - \font\slurhfont=xslz20 - \font\hslurufont=xslhu20 - \font\hslurdfont=xslhd20 - \font\hslurhfont=xslhz20 - \font\musicfnt=musix20 - \font\musicdraw=musixsps - \font\italicfont=cmti10 - \font\dynfont=cmbxti10 scaled \magstep1 - \font\mathfont=cmsy10 - \balkheight=20pt - \notewidth=6pt - \noteheight=5pt - \staffrulethickness=0.4pt - \musixcalc -} - - -\def\musixsixteendefs{ - \font\textfont=cmr8 - \font\meterfont=cmbx12 - \font\italicfont=cmti8 - \font\slurufont=xslu16 - \font\slurdfont=xsld16 - \font\slurhfont=xslz20 % sigh - \font\hslurufont=xslhu16 - \font\hslurdfont=xslhd16 - \font\hslurhfont=xslhz20 - \font\musicfnt=musix16 - \font\dynfont=cmbxti12 - \font\musicdraw=musixsps - \font\mathfont=cmsy8 - \balkheight=16pt - \staffrulethickness=0.4pt - \notewidth=5pt - \noteheight=4pt - \musixcalc -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% do derivative calcs - -\def\musixcalc{ - \interlinedist=\fontdimen5\musicfnt - \smallspace=.3\interlinedist - \interstaffrule=\balkheight - \divide\interstaffrule by 4 -} -% dynamics take extra kerning -\def\dyn{\dynfont} -\def\kdynf{\dynfont f\kern-.1ex} -\def\kdynm{\dynfont m\kern-.15ex} -\def\kdynp{\dynfont p\kern-.15ex} - - -\def\dynp{\dynfont p} -\def\dynpp{\dynp\kdynp} -\def\dynppp{\dynpp\kdynp} -\def\dynmp{\dynfont m\kdynp} -\def\dynmf{\dynfont m\kdynf} -\def\dynf{\dynfont f} -\def\dynff{\dynf\kdynf} -\def\dynfff{\dynff\kdynf} - - -\input taupindefs - -\mathdef\cup{91} % \cup -\mathdef\wedge{94} % \wedge -\mathdef\striepke{0} % heu? - -%% custom characters --- this should go: add to (meta!) font -% \def\myheel{\kern-.5ex\vbox{\cup}\kern-.5ex} -% \def\mytoe{\kern-.5ex\vbox{\wedge}\kern-.5ex} -\def\myheel{\vbox{\cup}} -\def\mytoe{\vbox{\wedge}} -% \def\mystriepke{\kern-1.1ex\vbox{\hbox{\kern-.05em\striepke}}\kern-1.1ex} -\def\mystriepke{\kern-1.8ex\vbox{\hbox{\kern-.05em\striepke}}\kern-1.8ex} - -\def\heel{\vbox{\myheel}} -\def\toe{\vbox{\mytoe}} -\def\backorfront{\mystriepke} - -\def\bheel{\vbox{\myheel\mystriepke}} -\def\btoe{\vbox{\mytoe\mystriepke}} -\def\fheel{\vbox{\mystriepke\myheel}} -\def\ftoe{\vbox{\mystriepke\mytoe}} -\def\heeltoe{\vbox{\myheel\mytoe}} -\def\toeheel{\vbox{\mytoe\myheel}} -%% - -\def\emptybar{} - -\def\thinbar{\vrule height\balkheight width 1.6\staffrulethickness} % TODO parametric. -\def\thickbar{\vrule height\balkheight width 2\smallspace} -\def\maatstreep{\thinbar} - -%? what-s wrong with rightalign? -\def\finishbar{\rightalign{\thinbar\kern\smallspace\thickbar}} - -\def\repeatstopbar{\hss\rightalign{\repeatcolon\hskip2\smallspace\thinbar\hskip\smallspace\thickbar}} -\def\repeatstartbar{\hbox{\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}} -\def\repeatstopstart{\hbox{\repeatcolon\kern2\smallspace\thinbar\kern\smallspace\thickbar\kern\smallspace\thickbar\kern\smallspace\thinbar\kern2\smallspace\repeatcolon}} -\def\doublebar{\hbox{\thinbar\hskip\smallspace\thinbar}} - -%compatibility -\def\repeatbar{\repeatstopbar} -\def\startrepeat{\repeatstartbar} -\def\repeatbarstartrepeat{\repeatstopstart} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% parametric symbols -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\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 numbers -\def\generalmeter#1#2{\botalign{\vbox to0.5\balkheight{\vss \meterfont#1}% - \nointerlineskip - \vbox to 0.5\balkheight{\vss\meterfont #2}}} - -% stacked horizontal lines -\def\lines#1#2#3{% - \vbox{\kern-\interstaffrule - \n=0\nointerlineskip% - \loop\ifnum\n<#1\advance\n by1% - \kern\interstaffrule - \nointerlineskip - \vbox to 0pt{\hrule height #3 width#2% - \vss}\nointerlineskip - \repeat - }} +% Attempt to keep lilypiecetitle together with the piece: -%% -% Ugh. Need to redo this. Wish we had PS. % -\def\toplines#1{ % why space needed here? - \topalign{\hbox{\kern-\notewidth\lines{#1}{1.6\notewidth}{1.6\staffrulethickness}}}} - -\def\botlines#1{ % idem ditto - \botalign{\hbox{\kern-\notewidth\lines{#1}{1.6\notewidth}{1.6\staffrulethickness}}}} - +% TODO: figure this out. % -% a staffsymbol with #1 lines, width #2 -% bottom at baseline -\def\linestafsym#1#2{\leftalign{\botalign{\lines{#1}{#2}{\staffrulethickness}}}} -\def\stem#1#2{\vrule height#2 depth-#1} +\def\myfilbreak{} %\par\vfil\penalty200\vfilneg} -\def\placebox#1#2#3{% - \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}% -} +\ifundefined{lilypondpaperinterscorelinefill} + \def\lilypondpaperinterscorelinefill{0} +\else + \def\lilypondpaperinterscorelinefill{1} +\fi -\def\beamslope#1#2{{\count0=#2\advance\count0 by#1\musicfnt\char\count0}} -\def\rulesym#1#2{\vrule height #1 width #2} -\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\settext#1{\textfont #1} -\def\setitalic#1{\italicfont #1} -\def\setdynamic#1{\dynfont #1} - -% 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\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 -% redefine if not happy with interline spacing -% -\def\interstaffline{% - \vskip 10pt +\def\EndLilyPondOutput{% + \vskip 0pt plus \lilypondpaperinterscorelinefill00 fill\csname bye\endcsname } -\def\interscoreline{\beauty} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% big fat marks, if errors are detected. -\def\columnerrormark{\placebox{-5pt}{0pt}{\bf C!}} -\def\scorelineerrormark{\placebox{0pt}{-10pt}{\bf L!}} +\def\postheader{} + +% 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% +\else + \message{[footer empty]} + \csname% + nolilyfooter\texsuffix\endcsname +\fi +\newdimen\outputscale +\endinput