diff makeBookeTunePages.sh @ 266:06e140f48543

Revise scripts for building printed Bookes. A lot of stuff was being duplicated between different page size. Consolidate where possible, and in particular put as much into a single source file (dottes.tex) as possible. Making a single Booke is now potentially quicker, as the tune pages don't necessarily have to be regenerate every time.
author Jim Hague <jim.hague@acm.org>
date Wed, 26 Jun 2013 23:37:45 +0100
parents
children ced1d1ba42f6
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeBookeTunePages.sh	Wed Jun 26 23:37:45 2013 +0100
@@ -0,0 +1,62 @@
+#!/bin/bash
+#
+# Generate the LaTeX for the Booke tune pages (tunes.tex) and the index
+# of first lines (firstlines.tex). These are generated into the build
+# directory.
+#
+# All EPS and PDF tune graphics must be present already. Run
+# makeGraphics.sh to make these.
+#
+
+# Restore titles like 'Exploding Potato, The' to the
+# expected 'The Exploding Potato'.
+fixtitle()
+{
+    retval=`echo "$1" | sed -e "s/\(.*\), *\(.*\)/\2 \1/"`
+}
+
+if [ $# != 1 ]; then
+    echo "Usage: makeBookeTunePages.sh <book dir name>"
+    exit 1
+fi
+
+dir=`pwd`
+
+booke=$dir/$1
+builddir=$dir/build
+graphicsdir=$dir/graphics/$1
+tunesoutput=$builddir/tunes.tex
+indexoutput=$builddir/firstlines.tex
+
+mkdir -p $builddir
+
+rm -f $tunesoutput $indexoutput
+
+# Now, for each tune, make the tune graphic and add it, inside a
+# centre section, so the document. Then add a TOC entry.
+find $booke -name "*.abc" | sort |
+    while read filename
+    do
+        name=`basename $filename .abc`
+        title=`$dir/abcfield.py --field T --latex $filename`
+        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}{subsection}{$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 "\hyperlink{$name}{$title} & \raisebox{-.25\height}{\includegraphics[width=0.6\textwidth]{$graphicsdir/firstline-$name}} \\\\" >> $indexoutput
+    done