1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
%====Copyright info==========================================================%
%% README.txt
%% Copyright 2015 Brad Granger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Brad Granger
% This work consists of the file RecipeBook.cls
%
%====Abstract================================================================%
This is a LaTeX2e class file for typesetting recipes. It is designed for
typesetting one or two recipes per page, with dimensions of 5.5'' x 8.5''.
The hyperlinked table of contents (ToC) and page numbers make browsing
recipes convenient, and the pages can be joined together or printed 2 per page
to normal letterpaper easily. The size was chosen to work in half-page
3-ring binder cover sheets, because un-laminated paper just doesn't last in the
kitchen.
This class requires pdflatex to compile with image transparency.
The half-letter pages can be printed two per page using your printer driver, or
bound together using pdfjam, a shell script free and available for MacOSX and
Linux. I haven't tested in MacOS, but in Linux the command to bind together
your recipes for printing is
$ pdfjam --nup 2x1 --papersize '{11in,8.5in}' Recipes.pdf
where Recipes.pdf is the compiled version of your recipes.
More info on pdfjam can be found here: http://go.warwick.ac.uk/pdfjam.
%====Installation instructions===============================================%
The simplest method is to place RecipeBook.cls in the same directory as your
LaTeX source file.
To install system-wide make the folder RecipeBook in your latex
search path and place RecipeBook.cls inside.
On Debian / Ubuntu systems, the preferred location is:
/usr/local/share/texmf/tex/latex/
Navigate to /usr/local/share/texmf, and execute the following bash command
to update the search path.
$ sudo mktexlsr
%====Command and environment overview========================================%
%----Title page and table of contents----------------------------------------%
\titlepage[<Text>]{<image1>}{<image2>}{<image3>}
This command will generate the title page. The title is given by <Text> with
the default being Recipes, and <imagex> the image files to use.
\section{<section>}
Add a section heading to the ToC with a hyperlink pointing to the next recipe.
\subsection{<subsection>}
Add a subsection heading to the ToC with a hyperlink. This also controls
clearing / moving to the next page, so each recipe should be preceeded by
its subsection command.
%----Recipe formatting-------------------------------------------------------%
\title[<fontsize>]{<Text>}
Format the recipe title. Default <fontsize> is 22pt.
\subtitle[<fontsize>]{<Text>}
Format the subtitle. Default <fontsize> is 18pt.
\recipesection[<fontsize>]{<Text>}
Add a section heading to the recipe, e.g. before the list of ingredients.
\author[<Preamble>{<text>}
Adds a footnote in the SW corner with text <text> preceded by <Preamble>.
<Preamble> is 'Author: ' by default.
\begin{info} ... \end{info}
This is a tabular environment with two columns for general recipe info like
cooking time and recipe yield.
\begin{info*} ... \end{info*}
Same and info environment except more compact spacing.
\begin{ingredients}[<bullet>] ... \end{ingredients}
The standard environment for listing ingredients. This will not wrap pages.
This is a tabular environment with 2 columns. Ingredients and section
headers can be listed with the following commands.
\item[<bullet>]{<Text>}
The optional argument <bullet> specifies the list bullets, the default is
the \square icon.
\group{<Text>}
Formats a section header between ingredients.
\begin{ingredients*} ... \end{ingredients*}
Alternative method for formatting ingredients. This works best when the
recipe can be divided into parts, and ingredients listed with their
corresponding instructions. Formats the ingredients with a light background
with blurred edges. Uses the same commands for the unstarred version for
listing ingredients.
\step{<Number>}{<Text>}
Instruction steps don't need to be placed in an environment like ingredients.
<Number> gives the instruction number, and <Text> the instruction text.
<Number> should be a single digit followed by a period, or it will overflow the
box.
\hlgroup[<color>]{<Text>}
Formats <Text> in italics with a shaded background with blurred edges. Useful
for separating instruction steps with section information (e.g. 'For the
sauce').
\begin[<size>]{shrink} ... \end{shrink}
You can put an entire recipe within the shrink environment if it doesn't fit
on the page. Default value of <size> is 1pt, decimals are allowed.
% Grow environment
\begin[<size>]{grow} ... \end{grow}
The complement of the shrink environment, if you would like your text larger.
Default value is 1pt, decimals are allowed.
%----Image commands----------------------------------------------------------%
\pic[<location>]{<image>}
Add a float image with fuzzy edges to your recipe. <location> can be h for
here, t for top, or b for bottom. <image> is the image file, e.g. Burgers.jpg.
\leftbgpic[<length>][<opacity>]{<image>}
Add a background image in the left column. <length> is the vertical distance
from the top of the page, the default is the length \pagetop. Opacity is a
number between 0 and 1 with a default of 0.4. <image> is an image file.
\rightbgpic[<length>][<opacity>]{<image>}
Add a background image in the right column. Default <length> of \pagebottom
places the image at the bottom of the page.
%====Class specific lengths==================================================%
% The following lengths are used to control various aspects of the class.
\basefontsize % Info, ingredients, and instructions font size
\basefontskipsize % Normally about 1.2\basefontsize. Controls line spacing.
\recipetitlefontsize % Font size for recipe titles, not the title-page title.
\instrnumsize % Font size for the instruction numbers
\recipeheadfontsize % Font size for headings using \recipesection{}.
%====Required Latex Packages=================================================%
ragged2e % Left-aligns document instead of default justified, which leaves
% large gaps in 2-column mode.
amsmath,amsfonts,amssymb % Use for \square symbol, etc.
xparse % Allows for multiple optional arguments in new environments
% and other convenient class features
wrapfig % Used for numbering instruction steps
graphicx % Used to include pictures
eso-pic % Used for transparent images
anyfontsize % Provides arbitrary font sizes
scrextend % Used with anyfontsize
multirow, multicol % Join cells in tabular (used in \group)
nicefrac % Nicer fraction format for inline fractions
xcolor % Colored text
gensymb % Provides degree symbol with \degree.
booktabs % Provies a nice table line with \toprule
tabularx % Required for ingredients and info environments
calc % Provides \widthof for automatically adjusting width of
% the number box in \step{}
picture % Used for absolute page dimensions with put{}.
parskip % Custom spacing options
tgtermes % Default font package
fontenc % Required for controlling the font, somehow
datetime % Used to generate the compile date on the title page
fancyhdr % Used to control header and footer content
tikz % Used for more complicated image control like fuzzy edges.
tocloft % Used for more control over the table of contents (ToC).
hypperref % Used for hyperlinked ToC and page numbers.
geometry % Sets page geometry.
environ % Used for more advanced environment definitions
tcolorbox % Used for faded boxes in ingredients* environment
%====Known bugs / features===================================================%
Images with transparency won't work on the last page of the document. The
workaround is to place a \clearpage command before \end{document}
\author must be redefined for every page or it will carry over to the following
recipes.
|