]> git.donarmstrong.com Git - lilypond.git/blobdiff - tex/titledefs.tex
*** empty log message ***
[lilypond.git] / tex / titledefs.tex
index 420f5fe9ac247bc1ac52e4aaf122f30302147524..6793d310975c1d2a7b3d02ff5d0e700c69cb8d30 100644 (file)
+% 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{}
-%
-% 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*{\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}}
-%
-\def\makelilytitle
-{
-  {\center\bfseries\center\sethuge{\thetitle}}
-        \par
-       {\center\bfseries\setLarge{\thesubtitle}}
-  \bigskip
-  {\flushright\setlarge{\normalfont\scshape\thecomposer}\par}
-  % urg
-  \edef\saveparskip{\parskip}\parskip-5mm
-  {\flushright\settext{\theopus}\par}
-  {\flushright\settext{\thearranger}\par}
-  \parskip\saveparskip
-  {\center\setlarge{\theinstrument}\par}
-  {\flushleft\setLarge{\normalfont\scshape\thepiece}}
-}
-\def\makelilypiecetitle
-{
+\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}
+    \lilypondifundefined{lilyponddedication}
+    {}
+    {\normalfont\lilyponddedication\\}
+    
+    \bfseries
+    
+    \lilypondifundefined{lilypondtitle}
+    {}
+    {\huge\lilypondtitle\\}
+    
+    \lilypondifundefined{lilypondsubtitle}
+    {}
+    {\Large\lilypondsubtitle\\}
+    
+    \lilypondifundefined{lilypondsubsubtitle}
+    {}
+    {\large\lilypondsubsubtitle\\}
+  \end{center}
+  
   \bigskip
-  {\flushright\settext{\theopus}\par}
-  {\flushleft\setLarge{\normalfont\scshape\thepiece}}
+  
+  \begin{minipage}[t]{0.45\textwidth}
+    \lilypondifundefined{lilypondpoet}
+    {}
+    {\lilypondpoet\\}
+    
+    \lilypondifundefined{lilypondtexttranslator}
+    {}
+    {\lilypondtexttranslator\\}
+    
+    \lilypondifundefined{lilypondmeter}
+    {}
+    {\lilypondmeter\\}
+  \end{minipage}
+  
+  \hspace*{\fill}
+  
+  \begin{minipage}[t]{0.45\textwidth}
+    \begin{flushright}
+      \lilypondifundefined{lilypondcomposer}
+      {}
+      {\large\normalfont\scshape\lilypondcomposer\\}
+      
+      \lilypondifundefined{lilypondopus}
+      {}
+      {\lilypondopus\\}
+      
+      \lilypondifundefined{lilypondarranger}
+      {}
+      {\lilypondarranger\\}
+    \end{flushright}
+  \end{minipage}
+  
+  \par
+  
+  \lilypondifundefined{lilypondinstrument}
+  {}
+  {\centerline{\large\lilypondinstrument}}
+  
+  \lilypondifundefined{lilypondpiece}
+  {}
+  {\flushleft{\large\normalfont\lilypondpiece}
+    \par}
+  
+% \leavevmode
+
+  \global\let\lilypondopus\undefined
+  \global\let\lilypondpiece\undefined
+  \global\let\mustmakelilypondtitle\undefined
+}
+
+\def\makelilypondpiecetitle{
+  \bigskip\myfilbreak
+
+  \lilypondifundefined{lilypondopus}
+  {}
+  {\flushright{\lilypondopus}
+    \par}
+  
+  \lilypondifundefined{lilypondpiece}
+  {}
+  {\flushleft{\large\normalfont\lilypondpiece}
+    \par}
+  
+  \nopagebreak
+
+  \global\let\lilypondopus\undefined
+  \global\let\lilypondpiece\undefined
+  \global\let\mustmakelilypondpiecetitle\undefined
+}
+
+% header -- head ?
+% these names can't be changed: they're used in mutopia headers
+
+\def\theheader{
+  \lilypondifundefined{lilypondhead}
+  {}
+  \lilypondhead
 }
-\endinput
 
+\def\thefooter{
+  \lilypondifundefined{lilypondfooter}
+  {}
+  \lilypondfooter
+}
+
+\def\makelilypondtagline{
+  \lilypondifundefined{lilypondtagline}
+  {}
+  \lilypondtagline
+}
+
+\def\thecopyright{
+  \lilypondifundefined{lilypondcopyright}
+  \thefooter
+  \lilypondcopyright
+}
+
+% Moved header and footer definitions here from the lilypond 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