Quack, Quack, Quack. Give My Hat Back!
- Author:
- Nicola L. C. Talbot
- Illustrator:
- Magdalene Pritchett
- Recommended Age:
- Preschool and Key Stage 1 (up to 7 or 8 years old)
- Format:
- Paperback saddle-stitch
- ISBN:
- 978-1-909440-03-6 (This title is now out of print but there may be some remaining copies in store.)
Description
Little Duck lives on the Amazon River and he loves his big, black hat, but one day the naughty wind steals his hat. Little Duck chases after it, and on the way he meets his friends the arara (macaw) parrot, the sloth, the caiman and the capybara who all join in the chase.
Extract
There once was a little duck who lived by the side of the Amazon river.
He liked to row his little wooden dinghy on the river, but most of all he liked his big, black top hat.
But one day the naughty wind sneaked up and stole the little duck's hat! Away rushed the wind with the big, black hat.
The little duck said:
"Quack, quack, quack. Give my hat back!"
And he rowed his dinghy, chasing after the wind.
Soon the duck met his friend the arara parrot fishing from his catamaran.
Audio Extract
Book Launch
The book launch for "Quack, Quack, Quack. Give My Hat Back!" and "Cuac, Cuac, Cuac. ¡Devuélveme mi sombrero ya!" was on Sunday 17th November 2013 at 10:10am in Poringland.
Book Launch Photos
Background
This story was inspired by Paulo Cereda's duck and arara, and chatting on TeX, LaTeX and Friends.Book Production
Those who know me may not be surprised to find I used LaTeX to typeset this book. As with The Foolish Hedgehog, the document code used my flowfram package, and I used Jpgfdraw to define the frames. The hedgehog book was relatively straight-forward. It had a flow frame on the left (verso) page for the text, and a dynamic frame on the right (recto) page for the illustrations. The images were numbered sequentially. I defined a counter calledimage
and I set
the contents of the dynamic frame to check for the existence of the
image file. If it existed, the image was included and the
image
counter was incremented. If the file didn't exist,
we'd come to the end of the images and the dynamic frame was
switched off. Here's the code fragment (the hedgehog
class
loaded the extarticle
class, the dynamic frame was labelled
image
and the flow frame was labelled main
.):
\newcounter{image} \setcounter{image}{1} \newcommand*{\mainmatter}{% \setdynamicframe*{image}{pages=odd}% \setflowframe*{main}{pages=even}% \setdynamiccontents*{image}{% \edef\img@name{images/\three@digits\c@image}% \IfFileExists{\img@name.jpg}% {% \includegraphics[width=\linewidth]{\img@name}% }% {% }% \stepcounter{image}% \check@nextimage }% } \newcommand{\check@nextimage}{% \edef\img@name{images/\three@digits\c@image}% \IfFileExists{\img@name.jpg}% {% }% {% \setdynamicframe*{image}{pages=none}% \setflowframe*{main}{pages=all}% }% } \newcommand*{\three@digits}[1]{% \ifnum#1<100 0\fi\ifnum#1<10 0\fi\number#1% }
Unfortunately Lightning Source (my printer and distributor) doesn't do landscape books. The best I could get was a 8.5in square page format. This was okay for the hedgehog book, but the duck book has much wider illustrations. The best layout is to have the illustrations spanning a double-page spread, with the text above. This can be done with a saddle-stitch binding, but it's more complicated to code. Now I have a short flow frame at the top of the page and two dynamic frames, one that's only displayed on even (left/verso) pages and one that's only displayed on odd (right/recto) pages.
As before, the image files for the
illustrations are named sequentially, but here we want only the left
half of the image in the left dynamic frame and the right half of
the image in the right dynamic frame. The image also needs to be
scaled so that it fits across the double-spread. The dynamic frames
are now labelled image-left
and image-right
.
First define the image counter, as before:
\newcounter{image} \setcounter{image}{1}The
flowfram
package has a command called
\getdynamicbounds
that gets the dimensions of the given
dynamic frame. I've used this command so that I don't have to keep
track of the size of the dynamic frame in case I need to adjust its
dimensions. \getdynamicbounds
sets
\ffareaheight
to the height of the frame:
\newlength\imageheight \getdynamicbounds*{image-left} \setlength{\imageheight}{\ffareaheight}There are some other lengths I need to define that I'll use later in calculations:
\newlength\imagehalfwidth \newlength\imagetotalwidthAnd I also need a box:
\newsavebox\imageboxSince I'm going to use
\IfFileExists
I'll need to use the
image extension (which I could get by without referencing if I was
simply using \includegraphics
). To make it easier to change
my mind about the image format, I define a command that stores the
file extension:
\newcommand*{\duckimage@ext}{png}Now here's the code that sets the contents of the dynamic frames:
\setdynamiccontents*{image-left}{% \edef\img@name{images/\three@digits\c@image}% \IfFileExists{\img@name.\duckimage@ext}% {% \sbox\imagebox{\includegraphics[height=\imageheight]{\img@name}}% \settowidth{\imagetotalwidth}{\usebox\imagebox}% \setlength{\imagehalfwidth}{0.5\imagetotalwidth}% \null\hfill\makebox[\imagehalfwidth][l]{\usebox\imagebox}% }% {% }% }% \setdynamiccontents*{image-right}{% \edef\img@name{images/\three@digits\c@image}% \IfFileExists{\img@name.png}% {% \sbox\imagebox{\includegraphics[height=\imageheight]{\img@name}}% \settowidth{\imagetotalwidth}{\usebox\imagebox}% \setlength{\imagehalfwidth}{0.5\imagetotalwidth}% \makebox[\imagehalfwidth][r]{\usebox\imagebox}% }% {% }% \stepcounter{image}% \check@nextimage }%This scales the image so that it's the height of the dynamic frames. Then
\imagetotalwidth
is set to the width of the scaled
image, and \imagehalfwidth
is set to half this value. The
image is then put in a left aligned box of width
\imagehalfwidth
. This means that the left half of the image
is visible in the left frame. The other half of the image gets
clipped by the page boundary and doesn't show. The right hand image
frame does something similar except that it puts the image in a
right-aligned box of half the image width. This means that the right
half of the image is showing in the frame, but the left half gets
clipped by the page boundary. As long as the book is correctly
bound, this will have the effect of the image spanning across the
double-page spread.
\check@nextimage
needs a slight modification:
\newcommand{\check@nextimage}{% \edef\img@name{images/\three@digits\c@image}% \IfFileExists{\img@name.\duckimage@ext}% {% }% {% \setdynamicframe*{image-left,image-right}{pages=none}% \setflowframe*{main}{pages=none}% \setflowframe*{frontmatter}{pages=all}% }% }(The flow frame labelled
frontmatter
is a larger flow frame
that's only used in the front matter and on the final verso page.)