X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tex%2Ftitledefs.tex;h=9894742ba4cba42386f790fb0f038e988fb1d5a2;hb=4a9571d15d8fc3d9e8309e3400fecccfd23144a3;hp=876dff52139b82896293b82a6144872a22e83d7c;hpb=3d59b15cfcb500305c85f2f58d708e09c81a6b95;p=lilypond.git diff --git a/tex/titledefs.tex b/tex/titledefs.tex index 876dff5213..9894742ba4 100644 --- a/tex/titledefs.tex +++ b/tex/titledefs.tex @@ -1,81 +1,195 @@ +% titledefs.tex % -% ideally, we should create a LaTeX/TeX class -% for setting music in different sizes. +% LilyPond titling for LaTeX % -% Version 0.1 +% Note: % -\input lilyponddefs -\def\EndLilyPondOutput{\endinput} +% Defining a value, but leaving it empty: +% \def\lilypondfoo{} +% makes LaTeX break on the \\ in: +% \ifx\lilypondfoo\undefined\else{\lilypondfoo\\}\fi % -\def\thetitle{} -\def\thesubtitle{} -\def\thecomposer{} -\def\thearranger{} -\def\theinstrument{} -\def\theopus{} -\def\thepiece{} -\def\themetre{} -\def\thepoet{} -% -% duh. LaTeX has a \title too. -\renewcommand*{\title}[1]{\def\thetitle{#1}} -\newcommand*{\subtitle}[1]{\def\thesubtitle{#1}} -\newcommand*{\composer}[1]{\def\thecomposer{#1}} -\newcommand*{\arranger}[1]{\def\thearranger{#1}} -\newcommand*{\instrument}[1]{\def\theinstrument{#1}} -\newcommand*{\opus}[1]{\def\theopus{#1}} -\newcommand*{\piece}[1]{\def\thepiece{#1}} -\newcommand*{\metre}[1]{\def\themetre{#1}} -\newcommand*{\poet}[1]{\def\thepoet{#1}} -% -\newcommand*{\mudelatitle}[1]{\def\thetitle{#1}} -\newcommand*{\mudelasubtitle}[1]{\def\thesubtitle{#1}} -\newcommand*{\mudelacomposer}[1]{\def\thecomposer{#1}} -\newcommand*{\mudelaarranger}[1]{\def\thearranger{#1}} -\newcommand*{\mudelainstrument}[1]{\def\theinstrument{#1}} -\newcommand*{\mudelaopus}[1]{\def\theopus{#1}} -\newcommand*{\mudelapiece}[1]{\def\thepiece{#1}} -\newcommand*{\mudelametre}[1]{\def\themetre{#1}} -\newcommand*{\mudelameter}[1]{\def\themetre{#1}} -\newcommand*{\mudelapoet}[1]{\def\thepoet{#1}} -% -% -\def\mudelanull{}% -% -\def\makelilytitle{% +\edef\titledefsELC{\the\endlinechar}% +\endlinechar -1\relax + +% The feta characters for use in titles +\input feta20.tex + +\font\fetasixteen=feta16 +\def\fetafont{\fetasixteen} +\def\fetachar#1{\hbox{\fetasixteen#1}} + +\def\makelilypondtitle{ \begin{center} - \bfseries - \ifx\mudelanull\thetitle\else{\huge\thetitle}\\ \fi - \ifx\mudelanull\thesubtitle\else{\Large\thesubtitle}\\ \fi + \ifx\lilyponddedication\undefined + \else + {\normalfont\lilyponddedication\\} + \fi + + \bfseries + + \ifx\lilypondtitle\undefined + \else + {\huge\lilypondtitle\\} + \fi + + \ifx\lilypondsubtitle\undefined + \else + {\Large\lilypondsubtitle\\} + \fi + + \ifx\lilypondsubsubtitle\undefined + \else + {\large\lilypondsubsubtitle\\} + \fi \end{center} + \bigskip - % urg - \edef\saveparskip{\parskip}\parskip-5mm + \begin{minipage}[t]{0.45\textwidth} - \ifx\mudelanull\thepoet\else{\thepoet}\\ \fi - \ifx\mudelanull\themetre\else{\themetre}\\ \fi - \end{minipage}\hspace*{\fill} + \ifx\lilypondpoet\undefined + \else + {\lilypondpoet\\} + \fi + + \ifx\lilypondtexttranslator\undefined + \else + {\lilypondtexttranslator\\} + \fi + + \ifx\lilypondmeter\undefined + \else + {\lilypondmeter\\} + \fi + \end{minipage} + + \hspace*{\fill} + \begin{minipage}[t]{0.45\textwidth} - \begin{flushright} - \ifx\mudelanull\thecomposer\else{\large\normalfont\scshape\thecomposer}\\ \fi - \ifx\mudelanull\theopus\else{\theopus}\\ \fi - \ifx\mudelanull\thearranger\else{\thearranger}\\ \fi - \end{flushright}% - \end{minipage}\par - \parskip\saveparskip - {\center{\large\theinstrument}\par} - {\flushleft{\large\normalfont\scshape\thepiece}} -% \leavevmode - \global\let\theopus\relax% - \global\let\thepiece\relax% + \begin{flushright} + \ifx\lilypondcomposer\undefined + \else + {\large\normalfont\scshape\lilypondcomposer\\} + \fi + + \ifx\lilypondopus\undefined + \else + {\lilypondopus\\} + \fi + + \ifx\lilypondarranger\undefined + \else + {\lilypondarranger\\} + \fi + \end{flushright} + \end{minipage} + + \par + + \ifx\lilypondinstrument\undefined + \else + {\center{\large\lilypondinstrument} + \par} + \fi + + \ifx\lilypondpiece\undefined + \else + {\flushleft{\large\normalfont\scshape\lilypondpiece} + \par} + \fi + +% \leavevmode + + \global\let\lilypondopus\relax + \global\let\lilypondpiece\relax + \global\let\mustmakelilypondtitle\undefined } -\def\makelilypiecetitle -{ - \bigskip - {\flushright{\theopus}\par} - {\flushleft{\large\normalfont\scshape\thepiece}} - \global\let\theopus\relax% - \global\let\thepiece\relax% + +\def\makelilypondpiecetitle{ + \bigskip\myfilbreak + + \ifx\lilypondopus\undefined + \else + {\flushright{\lilypondopus} + \par} + \fi + + \ifx\lilypondpiece\undefined + \else + {\flushleft{\large\normalfont\scshape\lilypondpiece} + \par} + \fi + + \nopagebreak + + \global\let\lilypondopus\relax + \global\let\lilypondpiece\relax + \global\let\mustmakelilypondpiecetitle\undefined +} + +% header -- head ? +% these names can't be changed: they're used in mutopia headers + +\def\theheader{ + \ifx\lilypondhead\undefined + \else + \lilypondhead + \fi +} + +\def\thefooter{ + \ifx\lilypondfooter\undefined + \else + \lilypondfooter + \fi +} + +\def\makelilypondtagline{ + \ifx\undefined\lilypondtagline + \else + \lilypondtagline + \fi } -\endinput +\def\thecopyright{ + \ifx\lilypondcopyright\undefined + \thefooter + \else + \lilypondcopyright + \fi +} + +% Moved header and footer definitions here from the ly2dvi script. +% Separate page styles for first, last and ordinary (plain) pages. + +\makeatletter + +\renewcommand{\ps@plain}{ + \renewcommand{\@oddfoot}{ + \parbox{\textwidth}{\mbox{}\thefooter}} + \renewcommand{\@evenfoot}{ + \@oddfoot} + \renewcommand{\@evenhead}{ + \hbox to \textwidth{\textbf{\thepage}\hfill{\small\theheader}}} + \renewcommand{\@oddhead}{ + \hbox to \textwidth{{\small\theheader}\hfill\textbf{\thepage}}} +} + +\newcommand{\ps@firstpage}{ + \renewcommand{\@oddfoot}{ + \parbox{\textwidth}{\mbox{}\thecopyright}} + \renewcommand{\@evenfoot}{ + \@oddfoot} +} + +\newcommand{\ps@lastpage}{ + \renewcommand{\@oddfoot}{ + \parbox{\textwidth}{\mbox{}\makelilypondtagline}} + \renewcommand{\@evenfoot}{ + \@oddfoot} +} + +\makeatother + +\endlinechar \titledefsELC +\endinput