annotate makeBookeA5.sh @ 262:b8c711dafce1

Remove \newpage from before every tune in A5. If someday we do get two tunes fitting into the same page, why not?
author Jim Hague <jim.hague@acm.org>
date Fri, 21 Jun 2013 20:00:40 +0100
parents e8ae4d29b52f
children 7b98278d6e8b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37
72b5d67756e1 Fix up troubles with \. echo -E disables expansion.
Jim Hague <jim.hague@laicatc.com>
parents: 34
diff changeset
1 #!/bin/bash
13
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
2 #
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
3 # Build the Booke. First assemble the book LaTeX, then build it
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
4 # into a PDF.
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
5 #
42
0e7d2830cb8b Put making tune graphics required by web and book into separate dir and make separately.
Jim Hague <jim.hague@laicatc.com>
parents: 40
diff changeset
6 # All EPS and PDF tune graphics must be present already. Run
0e7d2830cb8b Put making tune graphics required by web and book into separate dir and make separately.
Jim Hague <jim.hague@laicatc.com>
parents: 40
diff changeset
7 # makeGraphics.sh to make these.
0e7d2830cb8b Put making tune graphics required by web and book into separate dir and make separately.
Jim Hague <jim.hague@laicatc.com>
parents: 40
diff changeset
8 #
0
215b3a1aa761 Beginnings.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
9
229
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
10 # Restore titles like 'Exploding Potato, The' to the
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
11 # expected 'The Exploding Potato'.
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
12 fixtitle()
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
13 {
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
14 retval=`echo "$1" | sed -e "s/\(.*\), *\(.*\)/\2 \1/"`
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
15 }
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
16
0
215b3a1aa761 Beginnings.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
17 if [ $# != 1 ]; then
181
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
18 echo "Usage: makeBookeA5.sh <book dir name>"
0
215b3a1aa761 Beginnings.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
19 exit 1
215b3a1aa761 Beginnings.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
20 fi
215b3a1aa761 Beginnings.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
21
16
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
22 dir=`pwd`
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
23
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
24 booke=$dir/$1
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
25 builddir=$dir/build
42
0e7d2830cb8b Put making tune graphics required by web and book into separate dir and make separately.
Jim Hague <jim.hague@laicatc.com>
parents: 40
diff changeset
26 graphicsdir=$dir/graphics/$1
181
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
27 output=dottesA5.tex
119
15ce1ecb5ba3 Fix page size issue on xetex on Squeeze.
Jim Hague <jim.hague@acm.org>
parents: 118
diff changeset
28 outputxdv=${output/%.tex/.xdv}
15ce1ecb5ba3 Fix page size issue on xetex on Squeeze.
Jim Hague <jim.hague@acm.org>
parents: 118
diff changeset
29 outputpdf=${output/%.tex/.pdf}
181
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
30 outputa4=dottesA5onA4booklet.tex
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
31 outputa4pdf=dottesA5onA4booklet.pdf
0
215b3a1aa761 Beginnings.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
32
16
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
33 mkdir -p $builddir
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
34
40
93955def7313 Revise page footers, and add build number.
Jim Hague <jim.hague@laicatc.com>
parents: 39
diff changeset
35 cp buildno.txt $builddir
248
440172d9f5d6 Redo the printed Booke title page.
Jim Hague <jim.hague@acm.org>
parents: 229
diff changeset
36 cp buzzard.eps $builddir
440172d9f5d6 Redo the printed Booke title page.
Jim Hague <jim.hague@acm.org>
parents: 229
diff changeset
37 if [ -r $booke/title.txt ]; then
440172d9f5d6 Redo the printed Booke title page.
Jim Hague <jim.hague@acm.org>
parents: 229
diff changeset
38 cp $booke/title.txt $builddir
440172d9f5d6 Redo the printed Booke title page.
Jim Hague <jim.hague@acm.org>
parents: 229
diff changeset
39 else
440172d9f5d6 Redo the printed Booke title page.
Jim Hague <jim.hague@acm.org>
parents: 229
diff changeset
40 touch $builddir/title.txt
440172d9f5d6 Redo the printed Booke title page.
Jim Hague <jim.hague@acm.org>
parents: 229
diff changeset
41 fi
39
9681f6cd9c2b Change subtitle and intro files to .txt extension.
Jim Hague <jim.hague@laicatc.com>
parents: 38
diff changeset
42 if [ -r $booke/subtitle.txt ]; then
9681f6cd9c2b Change subtitle and intro files to .txt extension.
Jim Hague <jim.hague@laicatc.com>
parents: 38
diff changeset
43 cp $booke/subtitle.txt $builddir
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
44 else
39
9681f6cd9c2b Change subtitle and intro files to .txt extension.
Jim Hague <jim.hague@laicatc.com>
parents: 38
diff changeset
45 touch $builddir/subtitle.txt
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
46 fi
39
9681f6cd9c2b Change subtitle and intro files to .txt extension.
Jim Hague <jim.hague@laicatc.com>
parents: 38
diff changeset
47 if [ -r $booke/intro.txt ]; then
9681f6cd9c2b Change subtitle and intro files to .txt extension.
Jim Hague <jim.hague@laicatc.com>
parents: 38
diff changeset
48 cp $booke/intro.txt $builddir
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
49 else
39
9681f6cd9c2b Change subtitle and intro files to .txt extension.
Jim Hague <jim.hague@laicatc.com>
parents: 38
diff changeset
50 touch $builddir/intro.txt
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
51 fi
181
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
52 cp dottes.tex.a5header $builddir/$output
252
4fb2e5728879 Put book intro text into its own file.
Jim Hague <jim.hague@acm.org>
parents: 248
diff changeset
53 cat dottes.tex.intro >> $builddir/$output
13
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
54
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
55 # Now, for each tune, make the tune graphic and add it, inside a
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
56 # centre section, so the document. Then add a TOC entry.
13
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
57 find $booke -name "*.abc" | sort |
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
58 while read filename
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
59 do
229
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
60 name=`basename $filename .abc`
122
295ba8275ab4 Make output larger where possible.
Jim Hague <jim.hague@laicatc.com>
parents: 120
diff changeset
61 title=`$dir/abcfield.py --field T --latex $filename`
229
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
62 fixtitle "$title"
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
63 title=$retval
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
64
255
e8ae4d29b52f Move Change: notice closer to the bottom of the tune graphic.
Jim Hague <jim.hague@acm.org>
parents: 254
diff changeset
65 echo -E "\begin{figure}[H]" >> $builddir/$output
115
c4efe8b5eea1 Add internal hyperlinks to the book.
Jim Hague <jim.hague@acm.org>
parents: 110
diff changeset
66 echo -E "\phantomsection" >> $builddir/$output
255
e8ae4d29b52f Move Change: notice closer to the bottom of the tune graphic.
Jim Hague <jim.hague@acm.org>
parents: 254
diff changeset
67 echo -E "{\centering \hypertarget{$name}{\includegraphics[width=\textwidth,height=0.85\textheight,keepaspectratio]{$graphicsdir/$name}}}" >> $builddir/$output
37
72b5d67756e1 Fix up troubles with \. echo -E disables expansion.
Jim Hague <jim.hague@laicatc.com>
parents: 34
diff changeset
68 echo -E "\addcontentsline{toc}{subsection}{$title}" >> $builddir/$output
229
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
69
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
70 changefile=`$dir/abcfield.py --field N $filename | grep "Change:" | sed -e "s/Change: *//"`
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
71 changetitle=""
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
72 if [ -n "$changefile" ]; then
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
73 changetitle=`$dir/abcfield.py --field T --latex $booke/$changefile`
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
74 fixtitle "$changetitle"
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
75 changetitle=$retval
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
76 changename=`basename $changefile .abc`
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
77 echo -E "Change: \hyperlink{$changename}{$changetitle}" >> $builddir/$output
181
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
78 fi
255
e8ae4d29b52f Move Change: notice closer to the bottom of the tune graphic.
Jim Hague <jim.hague@acm.org>
parents: 254
diff changeset
79 echo -E "\end{figure}" >> $builddir/$output
13
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
80 done
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
81
50
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
82 cat dottes.tex.firstlines >> $builddir/$output
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
83
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
84 find $booke -name "*.abc" | sort |
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
85 while read filename
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
86 do
229
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
87 name=`basename $filename .abc`
122
295ba8275ab4 Make output larger where possible.
Jim Hague <jim.hague@laicatc.com>
parents: 120
diff changeset
88 title=`$dir/abcfield.py --field T --latex $filename`
229
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
89 fixtitle "$title"
1e4443d58177 Modify Change tune handling.
Jim Hague <jim.hague@acm.org>
parents: 181
diff changeset
90 title=$retval
115
c4efe8b5eea1 Add internal hyperlinks to the book.
Jim Hague <jim.hague@acm.org>
parents: 110
diff changeset
91 echo -E "\hyperlink{$name}{$title} & \raisebox{-.25\height}{\includegraphics[width=0.6\textwidth]{$graphicsdir/firstline-$name}} \\\\" >> $builddir/$output
50
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
92 done
e666306c5ab1 Add list of tune first lines.
Jim Hague <jim.hague@laicatc.com>
parents: 42
diff changeset
93
16
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
94 cat dottes.tex.footer >> $builddir/$output
13
232a778181e3 First go at LaTeX booklet.
Jim Hague <jim.hague@laicatc.com>
parents: 0
diff changeset
95
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
96 cp $outputa4 $builddir
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
97
16
780f49972b68 Update book making command.
Jim Hague <jim.hague@acm.org>
parents: 13
diff changeset
98 cd $builddir
119
15ce1ecb5ba3 Fix page size issue on xetex on Squeeze.
Jim Hague <jim.hague@acm.org>
parents: 118
diff changeset
99
15ce1ecb5ba3 Fix page size issue on xetex on Squeeze.
Jim Hague <jim.hague@acm.org>
parents: 118
diff changeset
100 # The version of xetex on Squeeze doesn't do pass the A5 landscape instruction
15ce1ecb5ba3 Fix page size issue on xetex on Squeeze.
Jim Hague <jim.hague@acm.org>
parents: 118
diff changeset
101 # down to the PDF generator. So split out and do manually.
120
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
102 #
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
103 # And, sigh, this fails on Sid. The first page comes out as A4 portrait.
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
104 # So try to work out which we are using and run the appropriate command.
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
105 ver=`xetex -version | head -n 1`
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
106 ver=${ver/*TeX Live /}
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
107 ver=${ver/\/*/}
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
108 if [ "$ver" == "2009" ]; then
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
109 xelatex -no-pdf $output
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
110 xelatex -no-pdf $output
254
bd69673595d0 Run Latex a third time to get the page numbers right.
Jim Hague <jim.hague@acm.org>
parents: 252
diff changeset
111 xelatex -no-pdf $output
120
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
112 xdvipdfmx -p a5 -l $outputxdv
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
113 else
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
114 xelatex $output
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
115 xelatex $output
254
bd69673595d0 Run Latex a third time to get the page numbers right.
Jim Hague <jim.hague@acm.org>
parents: 252
diff changeset
116 xelatex $output
120
4b0025be9d22 Try to cope with Squeeze and Sid xetex problems.
Jim Hague <jim.hague@acm.org>
parents: 119
diff changeset
117 fi
118
8f3b50ede59c Switch to XeTeX to render. Opens up random OpenType fonts and UTF-8.
Jim Hague <jim.hague@acm.org>
parents: 116
diff changeset
118 xelatex $outputa4
38
01c4d873153f Quick attempt to parameterise different book builds.
Jim Hague <jim.hague@laicatc.com>
parents: 37
diff changeset
119
181
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
120 mv $outputpdf $dir/$1-A5.pdf
6a0bdabfb255 Add a A4 portrait book with multiple tunes per page.
Jim Hague <jim.hague@acm.org>
parents: 122
diff changeset
121 mv $outputa4pdf $dir/${1}-A5bookletA4.pdf
21
b61b090cd4c7 Produce an A4 PDF document with the A5 pages in booklet form.
Jim Hague <jim.hague@acm.org>
parents: 16
diff changeset
122
b61b090cd4c7 Produce an A4 PDF document with the A5 pages in booklet form.
Jim Hague <jim.hague@acm.org>
parents: 16
diff changeset
123 cd $dir