X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tex%2Flilyponddefs.tex;h=467f5639951c6118cbba7060c057a05af1f12b25;hb=9d9e2e5637e06d98245c3395b58207ec173e7e7d;hp=6a0bffc9e87448ed8bc2ce947ae982a7a9efff76;hpb=eda80c892401a0ffdb89988395d8c44b533ce4da;p=lilypond.git diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 6a0bffc9e8..467f563995 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -2,7 +2,7 @@ %%% %%% source file of the GNU LilyPond music typesetter %%% -%%% (c) 1998--2004 Jan Nieuwenhuizen +%%% (c) 1998--2007 Jan Nieuwenhuizen %%% Han-Wen Nienhuys %%% Mats Bengtsson %%% @@ -195,9 +195,16 @@ %% As a safety guard, don't produce auxiliary files. \nofiles - \usepackage[\lilypondpaperinputencoding]{inputenc} + %% FIXME: workaround non-existent TeX.def. + \def\TeXdef{TeX}\ifx\TeXdef\lilypondpaperinputencoding + \usepackage[latin1]{inputenc} + \else + \usepackage[\lilypondpaperinputencoding]{inputenc} + \fi \pagestyle{empty} + \usepackage{color} + \lilypondifundefined{lilypondclassic} {%% If not in `classic' mode, undo LaTeX's page layout settings %% since LilyPond does the layout by itself. @@ -254,50 +261,32 @@ \special{header=music-drawing-routines.ps} \gdef\lilypondspecial{}} -%% Put the argument into a box which has zero height and depth (the -%% \vss forces the latter -- TeXbook, page 80). -%% -\gdef\topalign#1{ - \vbox to 0pt{ - \hbox{#1} - \vss}} - -%% Put the argument into a box which has zero width. -%% -\gdef\leftalign#1{ - \hbox to 0pt{ - #1 - \hss}} - %% The most used macro in LilyPond output. Put #3 into a zero-width box %% which is moved to the right by #1 (scaled by \outputscale) and moved -%% up by #2 (also scaled by \outputscale). Note that negative values for -%% #2 change the depth of the box defined by \leftalign, not the height. +%% up by #2 (also scaled by \outputscale). %% \gdef\lyitem#1#2#3{ - \raise#2\outputscale \leftalign{ - \kern#1\outputscale - #3}} - -%% All LilyPond music data is enclosed in this macro (as fifth argument). -%% The data is first put into a box with zero height and depth which is -%% then moved to the right by #1 and moved down by #2. After this, it is -%% put into a zero-width box, giving it a height #4 (and depth zero). -%% Finally, the box is raised so that its true height is exactly the -%% distance from one baseline to the next. + \raise #2\outputscale \hbox to 0pt { + \kern #1\outputscale + #3 + \hss}} + +%% All LilyPond music data is enclosed in this macro (as third argument). +%% The data (which consists of boxes with zero width) gets an artificial +%% width of #1 and a height of #2. The resulting box is then centered +%% vertically along the x-height of the current font. %% -%% Parameters #1 to #4 are scaled by \outputscale. +%% Parameters #1 and #2 are scaled by \outputscale. %% -\gdef\lybox#1#2#3#4#5{ - \lytempdim\baselineskip - \advance\lytempdim -#4\outputscale - \raise\lytempdim - \vbox to #4\outputscale{ - \leftalign{ - \kern #1\outputscale - \lower #2\outputscale \topalign{ - #5}} - \vss}} +\gdef\lybox#1#2#3{ + \lytempdim #2\outputscale + \lytempdim -0.5\lytempdim + \advance\lytempdim 1ex + \leavevmode + \raise \lytempdim \hbox to #1\outputscale { + %% Convert depth of #3 into height only. + \vbox to #2\outputscale {\hbox{#3}\vss} + \hss}} %% Produce a black bar (width #2, depth #3, height #4) with a vertical %% offset #1. Everything is scaled by \outputscale. @@ -328,13 +317,51 @@ %% %% (Don't remove the spaces after the arguments to \input!) %% -\lilypondifundefined{lilypondpostscript} - {\lilypondifundefined{pdfoutput} - {\input lily-ps-defs } - {\pdfoutput = 1 - \input lily-pdf-defs }} - {} - +% +%% In teTeX-3.0, latex is actually pdfetex, and we need +%% ifpdf.sty to determinine if we are really *tex or pdf*tex. +% +%% \input ifpdf.sty +% +%% However, ifpfd.sty is too smart for LilyPond, so we copy the +%% logic here. Using \input ifpdf.sty is a no-op when using latex, +%% and the \ifpdf switch is needed before \documentclass, using +%% \usepackage{ifpdf} is not an option. +% +\input lily-ps-defs + +% barfs with texi +% Runaway argument? +%{ +%! Forbidden control sequence found while scanning use of \lilypondfirst. +% +% \par +% +% \newif +%l.330 {\newif +% \ifpdf +%? +% +%% +%\lilypondifundefined{lilypondpostscript} +% {\newif\ifpdf +% \ifx\pdfoutput\undefined +% \else +% \ifx\pdfoutput\relax +% \else +% \ifcase\pdfoutput +% \else +% \pdftrue +% \fi +% \fi +% \fi +% \ifpdf +% {\input lily-pdf-defs } +% \else +% {\input lily-ps-defs } +% \fi} +% {} +% %% Restore newline functionality (disabled to avoid \par). %% \endlinechar \lilyponddefsELC