changeset 312:8bc92e044e0a

Move tune and first line inclusion code into macros. Also use tune title, not name, as hyperlink targets. This removes the need to pass the name into the macros.
author Jim Hague <jim.hague@acm.org>
date Fri, 12 Jul 2013 11:36:14 +0100
parents dd4582ddbbf8
children aa803fd1c3a6
files dottes.tex makeBookeTunePages.sh
diffstat 2 files changed, 39 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/dottes.tex	Thu Jul 11 17:52:11 2013 +0100
+++ b/dottes.tex	Fri Jul 12 11:36:14 2013 +0100
@@ -7,7 +7,7 @@
 \usepackage{fancyhdr}
 \usepackage{longtable}
 \usepackage[UKenglish]{babel}
-\usepackage[UKenglish]{isodate}
+%\usepackage[UKenglish]{isodate}
 
 % Non-indented paragraphs with space between them.
 \usepackage{parskip}
@@ -27,12 +27,46 @@
 
 % ----- Common variables
 
-\def \build {\input{buildno.txt}}
-\def \instrument {\input{instrument.txt}}
+\newcommand{\build}{\input{buildno.txt}}
+\newcommand{\instrument}{\input{instrument.txt}}
 
 % Havoc purple is #9900cc.
 \definecolor{havocpurple}{rgb}{0.597,0,0.797}
 
+% ----- Macros
+
+\makeatletter
+\def\ifemptyarg#1{%
+  \if\relax\detokenize{#1}\relax % H. Oberdiek
+    \expandafter\@firstoftwo
+  \else
+    \expandafter\@secondoftwo
+  \fi}
+\makeatother
+
+% Show the main tune graphic and optional change.
+% Args are change title (optional), tune title, tune graphic filename.
+\newcommand{\showtune}[3][]{%
+  \vfill
+  \begin{center}
+  \phantomsection
+  \hypertarget{#2}{%
+    \includegraphics[width=\textwidth,height=0.85\textheight,keepaspectratio]{#3}
+  }
+  \addcontentsline{toc}{section}{#2}
+  \end{center}
+  \ifemptyarg{#1}{}{%
+    Change: \hyperlink{#1}{#1}
+  }%
+}
+
+% Show the tune first line. Generate table row.
+% Args are the tune title and the first line graphic filename.
+\newcommand{\showfirstline}[2]{%
+  \hyperlink{#1}{#1} & %
+    \raisebox{-.25\height}{\includegraphics[width=0.65\textwidth,height=1.3cm]{#2}} \\
+}
+
 % ----- Paper size document setup
 
 \input{docsetup.tex}
--- a/makeBookeTunePages.sh	Thu Jul 11 17:52:11 2013 +0100
+++ b/makeBookeTunePages.sh	Fri Jul 12 11:36:14 2013 +0100
@@ -42,21 +42,14 @@
         fixtitle "$title"
         title=$retval
 
-        echo -E "\vfill \begin{center}" >> $tunesoutput
-        echo -E "\phantomsection" >> $tunesoutput
-        echo -E "\hypertarget{$name}{\includegraphics[width=\textwidth,height=0.85\textheight,keepaspectratio]{$graphicsdir/$name}}" >> $tunesoutput
-        echo -E "\addcontentsline{toc}{section}{$title}" >> $tunesoutput
-        echo -E "\end{center}" >> $tunesoutput
-
         changefile=`$dir/abcfield.py --field N $filename | grep "Change:" | sed -e "s/Change: *//"`
         changetitle=""
         if [ -n "$changefile" ]; then
             changetitle=`$dir/abcfield.py --field T --latex $booke/$changefile`
             fixtitle "$changetitle"
             changetitle=$retval
-            changename=`basename $changefile .abc`
-            echo -E "Change: \hyperlink{$changename}{$changetitle}" >> $tunesoutput
         fi
+        echo -E "\showtune[$changetitle]{$title}{$graphicsdir/$name}" >> $tunesoutput
 
-        echo -E "\hyperlink{$name}{$title} & \raisebox{-.25\height}{\includegraphics[width=0.65\textwidth,height=1.3cm]{$graphicsdir/firstline-$name}} \\\\" >> $indexoutput
+        echo -E "\showfirstline{$title}{$graphicsdir/firstline-$name}" >> $indexoutput
     done