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.
This commit is contained in:
Jim Hague 2013-01-26 13:47:01 +00:00
parent 3de2f67cd0
commit 50c67f52c8
7 changed files with 226 additions and 12 deletions

View File

@ -7,11 +7,16 @@
<p> <p>
@INTRO@ @INTRO@
<p> <p>
You can download a PDF with a booklet of these tunes. There is a You can download a PDF with a booklet of these tunes. There is an
<a href="@BOOK@.pdf">single-sided A5 landscape book</a>, or if you <a href="@BOOK@-A5.pdf">A5 landscape book</a> with one
have a printer that can do duplex (i.e. print on both sides of the tune per page, or an <a href="@BOOK@-A4.pdf">A4 book with two or more tunes
per page.
<p>
If you have a printer that can do duplex (i.e. print on both sides of the
paper), you might like the paper), you might like the
<a href="@BOOK@-booklet.pdf">double-sided A4 producing an A5 booklet</a>. <a href="@BOOK@-A5bookletA4.pdf">A5 booklet</a>.
Prin this onto A4 paper using both sides of the paper, and fold in half.
This makes an A5 booklet.
<p> <p>
Issue @BUILD@ Issue @BUILD@
<p> <p>

89
dottes.tex.a4header Normal file
View File

@ -0,0 +1,89 @@
\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{longtable}
\usepackage{hyperref}
\hypersetup{
bookmarks=true,%
colorlinks=true,%
citecolor=black,%
filecolor=black,%
linkcolor=black,%
urlcolor=black
}
% ----- Common variables
\def \build {\input{buildno.txt}}
% ----- Appearance
%\setmainfont{Century Schoolbook L}
\setmainfont{Times New Roman}
% ----- Page setup
\setlength{\parindent}{0pt}
% Adjust margins for A4 portrait. Increase width by 4cm and height by 4cm.
\addtolength{\textwidth}{4cm}
\addtolength{\hoffset}{-2cm}
\addtolength{\textheight}{4cm}
\addtolength{\voffset}{-2cm}
% Move the top margin up a further cm.
\addtolength{\textheight}{1cm}
\addtolength{\voffset}{-1cm}
% -----
% Don't show section numbers.
\setcounter{secnumdepth}{-1}
% -----
\begin{document}
% ----- Headers and footers
\pagestyle{fancyplain}
\fancyhf{}
\lfoot{Issue \build}
\rfoot{\thepage}
\renewcommand{\headrulewidth}{0pt}
% ----- Title page and contents
\title{Ye Crie Havock Booke of Dottes \\ \input{subtitle.txt}}
\author{Cry Havoc}
\date{\today}
\maketitle
\newpage
\tableofcontents
\newpage
% -----
\section{Introduction}
\input{intro.txt}
This book is a work in progress. You can download the latest version from
\url{http://dottes.cryhavoc.org.uk/}.
% -----
\section{Tunes}
Tunes are arranged in alphabetical order of tune title.
\newpage

View File

@ -40,6 +40,11 @@
% ----- % -----
% Don't show section numbers.
\setcounter{secnumdepth}{-1}
% -----
\begin{document} \begin{document}
% ----- Headers and footers % ----- Headers and footers

View File

@ -10,5 +10,5 @@
\usepackage{ifpdf,ifxetex} \usepackage{ifpdf,ifxetex}
\begin{document} \begin{document}
\includepdf[pages=-, nup=1x2, booklet=true]{dottes.pdf} \includepdf[pages=-, nup=1x2, booklet=true]{dottesA5.pdf}
\end{document} \end{document}

21
makeAll.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
#
# Build all forms of the Booke.
if [ $# != 1 ]; then
echo "Usage: makeAll.sh <book dir name>"
exit 1
fi
makeABooke()
{
./makeGraphics.sh $1
./makeBookeA5.sh $1
./makeBookeA4.sh $1
./makeWebItems.sh $1
./makeWeb.sh $1
}
makeABooke $1
./makeCello.sh $1
make ABooke $1-Morris

90
makeBookeA4.sh Executable file
View File

@ -0,0 +1,90 @@
#!/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: makeBookeA4.sh <book dir name>"
exit 1
fi
dir=`pwd`
booke=$dir/$1
builddir=$dir/build
graphicsdir=$dir/graphics/$1
output=dottesA4.tex
outputxdv=${output/%.tex/.xdv}
outputpdf=${output/%.tex/.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.a4header $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 "\begin{center}" >> $builddir/$output
echo -E "\phantomsection" >> $builddir/$output
echo -E "\hypertarget{$name}{\includegraphics[width=\textwidth,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
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
mv $outputpdf $dir/$1-A4.pdf
cd $dir

View File

@ -8,7 +8,7 @@
# #
if [ $# != 1 ]; then if [ $# != 1 ]; then
echo "Usage: makeBooke.sh <book dir name>" echo "Usage: makeBookeA5.sh <book dir name>"
exit 1 exit 1
fi fi
@ -17,11 +17,11 @@ dir=`pwd`
booke=$dir/$1 booke=$dir/$1
builddir=$dir/build builddir=$dir/build
graphicsdir=$dir/graphics/$1 graphicsdir=$dir/graphics/$1
output=dottes.tex output=dottesA5.tex
outputxdv=${output/%.tex/.xdv} outputxdv=${output/%.tex/.xdv}
outputpdf=${output/%.tex/.pdf} outputpdf=${output/%.tex/.pdf}
outputa4=dottesona4.tex outputa4=dottesA5onA4booklet.tex
outputa4pdf=dottesona4.pdf outputa4pdf=dottesA5onA4booklet.pdf
mkdir -p $builddir mkdir -p $builddir
@ -36,7 +36,7 @@ if [ -r $booke/intro.txt ]; then
else else
touch $builddir/intro.txt touch $builddir/intro.txt
fi fi
cp dottes.tex.header $builddir/$output cp dottes.tex.a5header $builddir/$output
# Now, for each tune, make the tune graphic and add it, inside a # Now, for each tune, make the tune graphic and add it, inside a
# centre section, so the document. Then add a TOC entry. # centre section, so the document. Then add a TOC entry.
@ -51,6 +51,10 @@ find $booke -name "*.abc" | sort |
echo -E "\hypertarget{$name}{\includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{$graphicsdir/$name}}" >> $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 "\addcontentsline{toc}{subsection}{$title}" >> $builddir/$output
echo -E "\end{center}" >> $builddir/$output echo -E "\end{center}" >> $builddir/$output
text=$booke/$name.tex
if [ -r $text ]; then
cat $text >> $builddir/$output
fi
done done
cat dottes.tex.firstlines >> $builddir/$output cat dottes.tex.firstlines >> $builddir/$output
@ -87,7 +91,7 @@ else
fi fi
xelatex $outputa4 xelatex $outputa4
mv $outputpdf $dir/$1.pdf mv $outputpdf $dir/$1-A5.pdf
mv $outputa4pdf $dir/${1}-booklet.pdf mv $outputa4pdf $dir/${1}-A5bookletA4.pdf
cd $dir cd $dir