diff makeBookeA5.sh @ 181:6a0bdabfb255

Add a A4 portrait book with multiple tunes per page. Also add a script to make all variants of a single book, and look for <tune name>.tex files, and if one exists add it after the tune.
author Jim Hague <jim.hague@acm.org>
date Sat, 26 Jan 2013 13:47:01 +0000
parents makeBooke.sh@295ba8275ab4
children 1e4443d58177
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeBookeA5.sh	Sat Jan 26 13:47:01 2013 +0000
@@ -0,0 +1,97 @@
+#!/bin/bash
+#
+# Build the Booke. First assemble the book LaTeX, then build it
+# into a PDF.
+#
+# All EPS and PDF tune graphics must be present already. Run
+# makeGraphics.sh to make these.
+#
+
+if [ $# != 1 ]; then
+    echo "Usage: makeBookeA5.sh <book dir name>"
+    exit 1
+fi
+
+dir=`pwd`
+
+booke=$dir/$1
+builddir=$dir/build
+graphicsdir=$dir/graphics/$1
+output=dottesA5.tex
+outputxdv=${output/%.tex/.xdv}
+outputpdf=${output/%.tex/.pdf}
+outputa4=dottesA5onA4booklet.tex
+outputa4pdf=dottesA5onA4booklet.pdf
+
+mkdir -p $builddir
+
+cp buildno.txt $builddir
+if [ -r $booke/subtitle.txt ]; then
+    cp $booke/subtitle.txt $builddir
+else
+    touch $builddir/subtitle.txt
+fi
+if [ -r $booke/intro.txt ]; then
+    cp $booke/intro.txt $builddir
+else
+    touch $builddir/intro.txt
+fi
+cp dottes.tex.a5header $builddir/$output
+
+# 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
+        title=`$dir/abcfield.py --field T --latex $filename`
+        name=`basename $filename .abc`
+        echo -E "\newpage" >> $builddir/$output
+        echo -E "\begin{center}" >> $builddir/$output
+        echo -E "\phantomsection" >> $builddir/$output
+        echo -E "\hypertarget{$name}{\includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{$graphicsdir/$name}}" >> $builddir/$output
+        echo -E "\addcontentsline{toc}{subsection}{$title}" >> $builddir/$output
+        echo -E "\end{center}" >> $builddir/$output
+        text=$booke/$name.tex
+        if [ -r $text ]; then
+            cat $text >> $builddir/$output
+        fi
+    done
+
+cat dottes.tex.firstlines >> $builddir/$output
+
+find $booke -name "*.abc" | sort |
+    while read filename
+    do
+        title=`$dir/abcfield.py --field T --latex $filename`
+        name=`basename $filename .abc`
+        echo -E "\hyperlink{$name}{$title} & \raisebox{-.25\height}{\includegraphics[width=0.6\textwidth]{$graphicsdir/firstline-$name}} \\\\" >> $builddir/$output
+    done
+
+cat dottes.tex.footer >> $builddir/$output
+
+cp $outputa4 $builddir
+
+cd $builddir
+
+# The version of xetex on Squeeze doesn't do pass the A5 landscape instruction
+# down to the PDF generator. So split out and do manually.
+#
+# And, sigh, this fails on Sid. The first page comes out as A4 portrait.
+# So try to work out which we are using and run the appropriate command.
+ver=`xetex -version | head -n 1`
+ver=${ver/*TeX Live /}
+ver=${ver/\/*/}
+if [ "$ver" == "2009" ]; then
+    xelatex -no-pdf $output
+    xelatex -no-pdf $output
+    xdvipdfmx -p a5 -l $outputxdv
+else
+    xelatex $output
+    xelatex $output
+fi
+xelatex $outputa4
+
+mv $outputpdf $dir/$1-A5.pdf
+mv $outputa4pdf $dir/${1}-A5bookletA4.pdf
+
+cd $dir