Merge branch 'main' into 225-ebook-situation
14
.github/workflows/release-book-website.yml
vendored
@@ -64,7 +64,7 @@ jobs:
|
|||||||
options: -v ${{ github.workspace }}:/app
|
options: -v ${{ github.workspace }}:/app
|
||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
make -j bake
|
make -j -O bake
|
||||||
- name: Release baked book to S3
|
- name: Release baked book to S3
|
||||||
uses: shallwefootball/s3-upload-action@master
|
uses: shallwefootball/s3-upload-action@master
|
||||||
with:
|
with:
|
||||||
@@ -74,21 +74,13 @@ jobs:
|
|||||||
source_dir: book/release
|
source_dir: book/release
|
||||||
destination_dir: release
|
destination_dir: release
|
||||||
- name: Upload book Artifacts
|
- name: Upload book Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: books
|
name: books
|
||||||
path: |
|
path: |
|
||||||
book/book_serif/book.log
|
book/book_serif/book.log
|
||||||
book/book_serif/book.pdf
|
book/book_serif/book.pdf
|
||||||
book/book-epub/book.epub
|
book/book-epub/book.epub
|
||||||
- name: Bake the website
|
|
||||||
uses: addnab/docker-run-action@v3
|
|
||||||
with:
|
|
||||||
image: ${{ env.LATEST_IMAGE }}
|
|
||||||
options: -v ${{ github.workspace }}:/app
|
|
||||||
run: |
|
|
||||||
cd /app/book
|
|
||||||
make mrproper && make website
|
|
||||||
- name: Release baked website to S3
|
- name: Release baked website to S3
|
||||||
uses: shallwefootball/s3-upload-action@master
|
uses: shallwefootball/s3-upload-action@master
|
||||||
with:
|
with:
|
||||||
@@ -98,7 +90,7 @@ jobs:
|
|||||||
source_dir: website/static_website_html
|
source_dir: website/static_website_html
|
||||||
destination_dir: static_html_root
|
destination_dir: static_html_root
|
||||||
- name: Upload website Artifacts
|
- name: Upload website Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: website
|
name: website
|
||||||
path: website/static_website_html
|
path: website/static_website_html
|
||||||
|
|||||||
24
.github/workflows/test-book-website.yml
vendored
@@ -1,6 +1,12 @@
|
|||||||
name: Test book and website for given image
|
name: Test book and website for given image
|
||||||
|
|
||||||
on: [push, pull_request]
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '**'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
DOCKER_IMAGE: ghcr.io/${{ github.repository }}:latest
|
DOCKER_IMAGE: ghcr.io/${{ github.repository }}:latest
|
||||||
@@ -27,32 +33,24 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
make printvars
|
make printvars
|
||||||
- name: Test baking the release versions
|
- name: Test baking the release versions and website
|
||||||
uses: addnab/docker-run-action@v3
|
uses: addnab/docker-run-action@v3
|
||||||
with:
|
with:
|
||||||
image: ${{ env.DOCKER_IMAGE }}
|
image: ${{ env.DOCKER_IMAGE }}
|
||||||
options: -v ${{ github.workspace }}:/app
|
options: -v ${{ github.workspace }}:/app
|
||||||
run: |
|
run: |
|
||||||
cd /app/book
|
cd /app/book
|
||||||
make -j build_serif_pdf build_ebook
|
make -j -O build_serif_pdf build_ebook website
|
||||||
- name: Upload book Artifacts
|
- name: Upload book Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: books
|
name: books
|
||||||
path: |
|
path: |
|
||||||
book/book_serif/book.log
|
book/book_serif/book.log
|
||||||
book/book_serif/book.pdf
|
book/book_serif/book.pdf
|
||||||
book/book-epub/book.epub
|
book/book-epub/book.epub
|
||||||
- name: Test building website
|
|
||||||
uses: addnab/docker-run-action@v3
|
|
||||||
with:
|
|
||||||
image: ${{ env.DOCKER_IMAGE }}
|
|
||||||
options: -v ${{ github.workspace }}:/app
|
|
||||||
run: |
|
|
||||||
cd /app/book
|
|
||||||
make mrproper && make website
|
|
||||||
- name: Upload website Artifacts
|
- name: Upload website Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: website
|
name: website
|
||||||
path: website/static_website_html
|
path: website/static_website_html
|
||||||
|
|||||||
4
.gitignore
vendored
@@ -15,7 +15,6 @@
|
|||||||
*.dlog
|
*.dlog
|
||||||
*.bak
|
*.bak
|
||||||
*.opf
|
*.opf
|
||||||
.DS_Store
|
|
||||||
book/book.out
|
book/book.out
|
||||||
.vscode/
|
.vscode/
|
||||||
book/bookch*
|
book/bookch*
|
||||||
@@ -42,3 +41,6 @@ book/epub/
|
|||||||
book/book-epub/
|
book/book-epub/
|
||||||
book/bw-book-epub/*
|
book/bw-book-epub/*
|
||||||
book/release/*
|
book/release/*
|
||||||
|
book/low-res-book-epub/*
|
||||||
|
book/epub_build/*
|
||||||
|
book/website_build/*
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ LABEL org.opencontainers.image.source="https://github.com/hendricius/the-sourdou
|
|||||||
# Print release information if needed
|
# Print release information if needed
|
||||||
RUN cat /etc/*release*
|
RUN cat /etc/*release*
|
||||||
|
|
||||||
# Install base depdendencies
|
# Install base dependencies
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install --yes -y --no-install-recommends \
|
apt-get install --yes -y --no-install-recommends \
|
||||||
sudo \
|
sudo \
|
||||||
|
|||||||
@@ -84,6 +84,13 @@ size. This shrinks the book from more than 50MB down to ~5MB:
|
|||||||
|
|
||||||
* [Download compiled B&W .epub version](https://www.the-bread-code.io/bw-book.epub)
|
* [Download compiled B&W .epub version](https://www.the-bread-code.io/bw-book.epub)
|
||||||
|
|
||||||
|
If you prefer a very short version (about 10 pages) with main flowcharts and
|
||||||
|
crucial information needed while you are in the kitchen, we also provide a
|
||||||
|
"too long;didn't read" version you could print. Having read the full book is
|
||||||
|
highly recommended to understand this leaflet:
|
||||||
|
|
||||||
|
* [Download a condensed version](https://www.the-bread-code.io/booklet.pdf)
|
||||||
|
|
||||||
## Online HTML version
|
## Online HTML version
|
||||||
|
|
||||||
Head over to [https://www.the-sourdough-framework.com](https://www.the-sourdough-framework.com)
|
Head over to [https://www.the-sourdough-framework.com](https://www.the-sourdough-framework.com)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 369 KiB |
@@ -62,7 +62,7 @@ full acidity? What if you were to just completely get rid of the acetic
|
|||||||
acid? How would the taste change?
|
acid? How would the taste change?
|
||||||
|
|
||||||
\begin{figure}[!htb]
|
\begin{figure}[!htb]
|
||||||
\includegraphics[width=\textwidth]{baking-experiment-temperatures.png}
|
\input{plots/fig-temperature-surface.tex}
|
||||||
\caption[Surface temperature for different steaming methods]{This
|
\caption[Surface temperature for different steaming methods]{This
|
||||||
chart shows how surface temperatures change using different steaming
|
chart shows how surface temperatures change using different steaming
|
||||||
methods. In this case I~used a Dutch oven and an apple as dough
|
methods. In this case I~used a Dutch oven and an apple as dough
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ learn more about the yeast and bacterial microorganisms involved.
|
|||||||
|
|
||||||
To understand the many enzymatic reactions that take place when flour
|
To understand the many enzymatic reactions that take place when flour
|
||||||
and water are mixed, we must first understand seeds and their role in
|
and water are mixed, we must first understand seeds and their role in
|
||||||
the lifecycle of wheat and other grains.
|
the life cycle of wheat and other grains.
|
||||||
|
|
||||||
Seeds are the primary means by which many plants, including wheat,
|
Seeds are the primary means by which many plants, including wheat,
|
||||||
reproduce. Each seed contains the embryo of another plant, and must
|
reproduce. Each seed contains the embryo of another plant, and must
|
||||||
|
|||||||
@@ -17,10 +17,8 @@
|
|||||||
\ifdefined\HCode\else\tableofcontents\fi
|
\ifdefined\HCode\else\tableofcontents\fi
|
||||||
}
|
}
|
||||||
|
|
||||||
\chapter{ebook problems}
|
\input{intro/preface}
|
||||||
Dès Noël, où un zéphyr haï me vêt de glaçons würmiens, je dîne d’exquis rôtis
|
\input{intro/acknowledgments}
|
||||||
de bœuf au kir, à l’aÿ d’âge mûr, \&cætera.
|
|
||||||
Jörg bäckt quasi zwei Haxenfüße vom Wildpony.
|
|
||||||
|
|
||||||
\begin{flowchart}[!htb]
|
\begin{flowchart}[!htb]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
|||||||
174
book/booklet.tex
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
\documentclass[paper=a4, twoside=false, fontsize=12pt]{scrbook}
|
||||||
|
|
||||||
|
% General packages
|
||||||
|
\usepackage{sourdough}
|
||||||
|
\usepackage[
|
||||||
|
paperwidth=210mm,
|
||||||
|
paperheight=260mm,
|
||||||
|
top=10mm,
|
||||||
|
bottom=80mm,
|
||||||
|
inner=10mm,
|
||||||
|
outer=10mm,
|
||||||
|
marginparsep=7mm,
|
||||||
|
marginparwidth=48mm,
|
||||||
|
]{geometry}
|
||||||
|
\usepackage{subcaption}
|
||||||
|
|
||||||
|
\pagenumbering{gobble}
|
||||||
|
% Basic attributes
|
||||||
|
\author{Hendrik Kleinwächter}
|
||||||
|
\title{The Sourdough Framework\\\texttt{tl;dr Booklet Version}}
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\section*{Sourdough starter}
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-starter-process.tex}
|
||||||
|
\caption*{How to setup a sourdough starter}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-starter-readiness.tex}
|
||||||
|
\caption*{Preparing your starter for baking}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-starter-maintenance.tex}
|
||||||
|
\caption*{Maintaining your starter, change ratio as per starter hydration
|
||||||
|
type}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\clearpage{}
|
||||||
|
\section*{Baker's math}
|
||||||
|
\begin{table}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{tables/table-bakers-math-example.tex}
|
||||||
|
\caption*{An example table demonstrating how to properly calculate using
|
||||||
|
baker's math. All the ingredients are calculated as a percentage of the
|
||||||
|
flour quantity.}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\section*{Basic recipes}
|
||||||
|
\subsection*{Flat bread}
|
||||||
|
\input{recipes/flat-bread.tex}
|
||||||
|
\clearpage{}
|
||||||
|
|
||||||
|
\subsection*{Freestanding \& sandwich wheat-based breads}
|
||||||
|
\begin{table}[!htb]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{@{}lrrrp{0.4\linewidth}@{}}
|
||||||
|
\toprule
|
||||||
|
\thead{Ingredient}& & \thead{Percentage} & \thead{Calculation} & \thead{Comments} \\ \midrule
|
||||||
|
Flour & \qty{400}{g} & & & \\
|
||||||
|
Whole-wheat flour & \qty{100}{g} & & & \\
|
||||||
|
Total flour & & \qty{100}{\percent} & \qty{500}{g} & \\
|
||||||
|
Water & & \qty{60}{\percent} & \qty{300}{g} & \\
|
||||||
|
Sourdough starter & & \qty{10}{\percent} & \qty{50}{g} & \\
|
||||||
|
Salt & & \qty{2}{\percent} & \qty{10}{g} & \\ \midrule
|
||||||
|
Flour & & \qty{100}{\percent} & & \\
|
||||||
|
Water & & & & \\
|
||||||
|
Sourdough starter & & & & \\
|
||||||
|
Salt & & & & \\ \midrule
|
||||||
|
Flour & & & & \\
|
||||||
|
& & & & \\
|
||||||
|
& & & & \\
|
||||||
|
& & & & \\
|
||||||
|
& & & & \\ \bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\caption*{Table for your own calculation using baker's math}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-wheat-sourdough-process.tex}
|
||||||
|
\caption*{The whole process of making wheat based sourdough breads}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-kneading-process.tex}
|
||||||
|
\caption*{The kneading process to create dough strength}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-bulk-fermentation.tex}
|
||||||
|
\caption*{How to properly manage bulk fermentation}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\begin{figure*}[!htb]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth]{stretch-and-fold-steps}
|
||||||
|
\caption*{An overview of the steps involved to perform stretch and folds for
|
||||||
|
wheat-based doughs. They are optional and should only be done when the dough
|
||||||
|
flattened out a lot.}%
|
||||||
|
\end{figure*}
|
||||||
|
\clearpage{}
|
||||||
|
|
||||||
|
\section*{Shaping}
|
||||||
|
|
||||||
|
\begin{figure*}[!htb]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}{.475\linewidth}
|
||||||
|
\includegraphics[width=\linewidth]{preshape-direction}
|
||||||
|
\caption*{Preshaping: Drag the dough in the direction of the rough
|
||||||
|
surface area.}%
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{.475\linewidth}
|
||||||
|
\includegraphics[width=\linewidth]{step-1-flour-applied}
|
||||||
|
\caption*{Step 1: Apply flour to the dough's surface.}%
|
||||||
|
\end{subfigure}\hfill % <-- "\hfill"
|
||||||
|
\medskip % create some *vertical* separation between the graphs
|
||||||
|
\begin{subfigure}{.475\linewidth}
|
||||||
|
\includegraphics[width=\linewidth]{step-2-flipped-over}
|
||||||
|
\caption*{Step 2: Flipp-over dough. Note how the sticky side is facing
|
||||||
|
you while the floured side is facing the countertop.}
|
||||||
|
\end{subfigure}\hfill % <-- "\hfill"
|
||||||
|
\begin{subfigure}{.475\linewidth}
|
||||||
|
\includegraphics[width=\linewidth]{step-3-rectangular}
|
||||||
|
\caption*{Step 3: Make the dough rectangular, keep the sticky side
|
||||||
|
facing you while the floured side is facing the countertop.}%
|
||||||
|
\end{subfigure}
|
||||||
|
\caption*{First steps of shaping process}
|
||||||
|
\end{figure*}
|
||||||
|
|
||||||
|
\begin{figure*}[htb!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth]{step-4-folding}
|
||||||
|
\caption*{Step 4: The process of folding a batard. Note how the rectangle
|
||||||
|
is first glued together and then rolled inwards to create a dough roll.
|
||||||
|
Ultimately the edges are sealed to create a more uniform dough.}%
|
||||||
|
\end{figure*}
|
||||||
|
\clearpage{}
|
||||||
|
|
||||||
|
\section*{Proofing}
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-proofing-process.tex}
|
||||||
|
\end{flowchart}
|
||||||
|
\clearpage{}
|
||||||
|
|
||||||
|
\section*{Baking}
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-baking-process.tex}
|
||||||
|
\caption*{Summary of different bread baking processes}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{flowchart}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-inverted-tray-method.tex}
|
||||||
|
\caption*{Baking with the inverted tray method}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
|
\begin{flowchart*}[!htb]
|
||||||
|
\centering
|
||||||
|
\input{figures/fig-dutch-oven-process.tex}
|
||||||
|
\caption*{Baking with a Dutch Oven}
|
||||||
|
\end{flowchart*}
|
||||||
|
\clearpage{}
|
||||||
|
\end{document}
|
||||||
@@ -242,57 +242,10 @@ culinary applications. Whether you're scooping up a savory dip,
|
|||||||
wrapping a flavorful filling, or simply enjoying a piece with a drizzle
|
wrapping a flavorful filling, or simply enjoying a piece with a drizzle
|
||||||
of olive oil, these flatbreads are sure to impress.
|
of olive oil, these flatbreads are sure to impress.
|
||||||
|
|
||||||
\subsubsection*{Ingredients}
|
\input{recipes/flat-bread.tex}
|
||||||
|
|
||||||
\begin{tabular}{r@{}rl@{}}
|
\section{Loaf pan bread}%
|
||||||
\qty{400}{\gram} &~(\qty{100}{\percent}) & Flour (wheat, rye, corn, whatever you have at hand)\\
|
\label{sec:loaf-pan-bread}
|
||||||
\qty{320}{\gram} & (\qty{80}{\percent}) & Water, preferably at room temperature\\
|
|
||||||
\qty{80}{\gram} & (\qty{20}{\percent}) & Active sourdough starter\\
|
|
||||||
\qty{8}{\gram} & (\qty{2}{\percent}) & Salt\\
|
|
||||||
\end{tabular}
|
|
||||||
|
|
||||||
\subsubsection*{Instructions}
|
|
||||||
\begin{description}
|
|
||||||
\item[Prepare the dough] In a large mixing bowl, combine the flour and water.
|
|
||||||
Mix until you have a shaggy dough with no dry spots.
|
|
||||||
|
|
||||||
Add the sourdough starter and salt to the mixture. Incorporate them thoroughly
|
|
||||||
until you achieve a smooth and homogenized dough.
|
|
||||||
|
|
||||||
\item[Fermentation:] Cover the bowl with a lid or plastic wrap. Allow the dough
|
|
||||||
to rest and ferment until it has increased by at least \qty{50}{\percent}
|
|
||||||
in size. Depending on the temperature and activity of your starter, this
|
|
||||||
can take anywhere from 4 to 24~hours.
|
|
||||||
|
|
||||||
\item[Cooking preparation:] Once the dough has risen, heat a pan over medium heat.
|
|
||||||
Lightly oil the pan, ensuring to wipe away any excess oil with a paper towel.
|
|
||||||
|
|
||||||
\item[Shaping and cooking:] With a ladle or your hands, scoop out a portion of
|
|
||||||
the dough and place it onto the hot pan, spreading it gently like a pancake.
|
|
||||||
|
|
||||||
Cover the pan with a lid. This traps the steam and ensures even cooking
|
|
||||||
from the top, allowing for easier flipping later.
|
|
||||||
|
|
||||||
After about 5~minutes, or when the bottom of the flatbread has a
|
|
||||||
golden-brown crust, carefully flip it using a spatula.
|
|
||||||
|
|
||||||
\emph{Adjusting cook time.} If the flatbread appears too dark,
|
|
||||||
remember to reduce the cooking time slightly for the next one.
|
|
||||||
Conversely, if it's too pale, allow it to cook a bit longer before flipping.
|
|
||||||
|
|
||||||
Cook the flipped side for an additional 5~minutes or until it's also golden
|
|
||||||
brown.
|
|
||||||
|
|
||||||
\item[Storing:] Once cooked, remove the flatbread from the pan and place it on a
|
|
||||||
kitchen towel. Wrapping the breads in the towel will help retain their
|
|
||||||
softness and prevent them from becoming overly crisp.
|
|
||||||
Repeat the cooking process for the remaining dough.
|
|
||||||
|
|
||||||
\item[Serving suggestion:] Enjoy your sourdough flatbreads warm,
|
|
||||||
paired with your favorite dips, spreads, or as a side to any meal.
|
|
||||||
|
|
||||||
\end{description}
|
|
||||||
\section{Loaf pan bread}
|
|
||||||
|
|
||||||
Loaf pan bread is made using the help of a special loaf pan
|
Loaf pan bread is made using the help of a special loaf pan
|
||||||
or loaf tin. The edges of the pan provide additional support
|
or loaf tin. The edges of the pan provide additional support
|
||||||
|
|||||||
@@ -29,11 +29,11 @@
|
|||||||
% Additional line for dinosaurs since it is so close
|
% Additional line for dinosaurs since it is so close
|
||||||
\draw[line width=1pt] (11.9*\segmentwidth,1.49) -- (11.70*\segmentwidth,1.85);
|
\draw[line width=1pt] (11.9*\segmentwidth,1.49) -- (11.70*\segmentwidth,1.85);
|
||||||
|
|
||||||
% Special lines for december events since they are so close togehter
|
% Special lines for december events since they are so close together
|
||||||
\draw[line width=1pt] (12.0*\segmentwidth,3.0) -- (12.0*\segmentwidth,0.2); % Main branch
|
\draw[line width=1pt] (12.0*\segmentwidth,3.0) -- (12.0*\segmentwidth,0.2); % Main branch
|
||||||
\draw[line width=1pt] (12.0*\segmentwidth,3.0) -- (11.75*\segmentwidth,2.5); % Branch to first humans
|
\draw[line width=1pt] (12.0*\segmentwidth,3.0) -- (11.75*\segmentwidth,2.5); % Branch to first humans
|
||||||
\draw[line width=1pt] (12.0*\segmentwidth,3.0) -- (11.75*\segmentwidth,3.0); % Branch to Jordan
|
\draw[line width=1pt] (12.0*\segmentwidth,3.0) -- (11.75*\segmentwidth,3.0); % Branch to Jordan
|
||||||
% Move pasteur down a bit so the lines look like they cross
|
% Move Pasteur down a bit so the lines look like they cross
|
||||||
\draw[line width=1pt] (12.0*\segmentwidth,2.99) -- (11.75*\segmentwidth,3.5); % Branch to Pasteur
|
\draw[line width=1pt] (12.0*\segmentwidth,2.99) -- (11.75*\segmentwidth,3.5); % Branch to Pasteur
|
||||||
|
|
||||||
% Draw months and month separators
|
% Draw months and month separators
|
||||||
|
|||||||
@@ -30,3 +30,5 @@
|
|||||||
|
|
||||||
\tikzstyle{timeline_timespan} = [rectangle, draw=codeblack, fill=pinkpic, text=black,
|
\tikzstyle{timeline_timespan} = [rectangle, draw=codeblack, fill=pinkpic, text=black,
|
||||||
text centered, rounded corners, line width=0.4mm]
|
text centered, rounded corners, line width=0.4mm]
|
||||||
|
\pgfplotsset{compat=1.18}
|
||||||
|
\pgfplotsset{width=\textwidth}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ and pastries.
|
|||||||
|
|
||||||
\item[Coil fold] A special stretch and folding technique. The coil fold is
|
\item[Coil fold] A special stretch and folding technique. The coil fold is
|
||||||
very gentle on the dough and is thus excellent throughout the bulk fermentation.
|
very gentle on the dough and is thus excellent throughout the bulk fermentation.
|
||||||
By applying the coil fold the dough strength is improved by minimising damage
|
By applying the coil fold the dough strength is improved by minimizing damage
|
||||||
to the dough structure.
|
to the dough structure.
|
||||||
|
|
||||||
\item[Crumb] The inner texture of the bread, which is characterized by the size,
|
\item[Crumb] The inner texture of the bread, which is characterized by the size,
|
||||||
@@ -285,7 +285,7 @@ depending on the initial reactants and cooking conditions can produce a wide var
|
|||||||
of end products with different tastes and aromas. Maillard reactions occur readily
|
of end products with different tastes and aromas. Maillard reactions occur readily
|
||||||
above \SI{150}{\celsius}, although will still occur much more slowly below that
|
above \SI{150}{\celsius}, although will still occur much more slowly below that
|
||||||
temperature. Optimal reaction rate occurs between \pHvalue{6.0} to \pHvalue{8.0},
|
temperature. Optimal reaction rate occurs between \pHvalue{6.0} to \pHvalue{8.0},
|
||||||
although it favours alkaline conditions.
|
although it favors alkaline conditions.
|
||||||
|
|
||||||
\item[Maltose] A sugar produced from the enzymatic breakdown of starch by amylases.
|
\item[Maltose] A sugar produced from the enzymatic breakdown of starch by amylases.
|
||||||
It's a primary food source for yeast during fermentation.
|
It's a primary food source for yeast during fermentation.
|
||||||
@@ -404,7 +404,7 @@ unpredictable ways. It also provides a controlled aesthetic to the finished loaf
|
|||||||
|
|
||||||
\item[Soaker] A mixture of grains or seeds with water that is left to soak overnight (or for a
|
\item[Soaker] A mixture of grains or seeds with water that is left to soak overnight (or for a
|
||||||
specified amount of time) before being incorporated into bread dough. This helps to
|
specified amount of time) before being incorporated into bread dough. This helps to
|
||||||
soften and hydrate the grains or seeds (sesame, pumpkin, etc.), making them
|
soften and hydrate the grains or seeds (sesame, pumpkin, \etc{}), making them
|
||||||
easier to integrate into the dough and
|
easier to integrate into the dough and
|
||||||
providing a moister crumb in the finished bread.
|
providing a moister crumb in the finished bread.
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ organisms inhabit extreme environments, from boiling vents to icy waters.
|
|||||||
|
|
||||||
Whoever comes first, bacteria or archaea, remains debated. For three
|
Whoever comes first, bacteria or archaea, remains debated. For three
|
||||||
months (or approximately 1.1~billion years), these life forms dominated
|
months (or approximately 1.1~billion years), these life forms dominated
|
||||||
the oceans. Then, on June~25 in an highly unlikely event, an archaeon consumed a bacterium.
|
the oceans. Then, on June~25 in a highly unlikely event, an archaeon consumed a bacterium.
|
||||||
Instead of digesting it, they formed a symbiotic relationship. This led to the
|
Instead of digesting it, they formed a symbiotic relationship. This led to the
|
||||||
first nucleated organisms, marking an evolutionary milestone. This event lead
|
first nucleated organisms, marking an evolutionary milestone. This event lead
|
||||||
to the development of plants, fungi and also ultimately humans.
|
to the development of plants, fungi and also ultimately humans.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 73 KiB |
BIN
book/images/infographic-enzymes.jpg
Normal file
|
After Width: | Height: | Size: 564 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
@@ -1,5 +1,5 @@
|
|||||||
\chapter{Acknowledgements}%
|
\chapter{Acknowledgments}%
|
||||||
\label{ch:Acknowledgements}
|
\label{ch:Acknowledgments}
|
||||||
This book would not have been possible without your help.
|
This book would not have been possible without your help.
|
||||||
With all your donations I~have been able to focus on finishing
|
With all your donations I~have been able to focus on finishing
|
||||||
this book. Your continuous support allows me to focus
|
this book. Your continuous support allows me to focus
|
||||||
@@ -81,7 +81,7 @@ sometimes you are faced with issues you don't understand. In \qty{99.95}{\percen
|
|||||||
of all software bugs, the developer is the issue. Sometimes, however, the framework has a
|
of all software bugs, the developer is the issue. Sometimes, however, the framework has a
|
||||||
bug. That is when the developer must dig deeper to see the \emph{what} and the
|
bug. That is when the developer must dig deeper to see the \emph{what} and the
|
||||||
\emph{why} behind what
|
\emph{why} behind what
|
||||||
the framework is doing. You will need to read other engineer's source code, and you will be forced
|
the framework is doing. You will need to read other engineers' source code, and you will be forced
|
||||||
to understand \emph{why} things are happening.
|
to understand \emph{why} things are happening.
|
||||||
|
|
||||||
Being unhappy with what I~was baking, my engineering mindset took over, and I~had
|
Being unhappy with what I~was baking, my engineering mindset took over, and I~had
|
||||||
|
|||||||
197
book/makefile
@@ -1,7 +1,7 @@
|
|||||||
# Macros for commands
|
# Macros for commands
|
||||||
LATEX := latexmk -cd -pdflua -lualatex="lualatex -interaction=nonstopmode" -synctex=1 -use-make
|
LATEX := latexmk -cd -pdflua -lualatex="lualatex -interaction=nonstopmode" -synctex=1 -use-make
|
||||||
EBOOK := tex4ebook --lua -d epub -f epub -c tex4ebook.cfg
|
EBOOK := tex4ebook --lua -d epub -f epub -c tex4ebook.cfg -B epub_build
|
||||||
WEBSITE := make4ht --lua -c website.cfg -a debug -uf html5+tidy+common_domfilters
|
WEBSITE := make4ht --lua -c website.cfg -a debug -uf html5+tidy+common_domfilters -B website_build
|
||||||
CLEAN := latexmk -cd -lualatex -c -use-make
|
CLEAN := latexmk -cd -lualatex -c -use-make
|
||||||
CHECK_1 := lacheck
|
CHECK_1 := lacheck
|
||||||
CHECK_2 := chktex
|
CHECK_2 := chktex
|
||||||
@@ -9,7 +9,11 @@ CONVERT_PIC := convert
|
|||||||
REDUCE_PIC := -resize '800x800>' \
|
REDUCE_PIC := -resize '800x800>' \
|
||||||
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
||||||
-set colorspace Gray -separate -evaluate-sequence Mean
|
-set colorspace Gray -separate -evaluate-sequence Mean
|
||||||
RSYNC := rsync -au --exclude 'book.epub' --exclude '*.jpg' --exclude '*.png'
|
REDUCE_PIC_COLOR := -quality 80\%
|
||||||
|
RSYNC := rsync -au --exclude 'book.epub' --exclude '*.jpg'
|
||||||
|
GIT := git --no-pager
|
||||||
|
SPELL_CHECK := hunspell -t -l -d en_US
|
||||||
|
EPUBSIZE := `du -sb epub/low_res_book.epub | cut -f1`
|
||||||
|
|
||||||
# We want bash as shell
|
# We want bash as shell
|
||||||
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
||||||
@@ -31,10 +35,14 @@ chapters = baking basics bread-types cover flour-types history intro mix-ins\
|
|||||||
|
|
||||||
src_tables := $(wildcard tables/table-*.tex)
|
src_tables := $(wildcard tables/table-*.tex)
|
||||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
||||||
|
src_figures += $(wildcard plots/fig-*.tex)
|
||||||
|
src_recipes := $(wildcard recipes/*.tex)
|
||||||
|
src_plots := $(wildcard plots/*.table)
|
||||||
|
|
||||||
src_tex := $(foreach directory, $(chapters), $(wildcard $(directory)/*.tex))
|
src_tex := $(foreach directory, $(chapters), $(wildcard $(directory)/*.tex))
|
||||||
src_tex += book.tex book_sans_serif.tex references.bib figures/vars.tex
|
src_tex += book.tex book_sans_serif.tex references.bib figures/vars.tex
|
||||||
src_tex += supporters.csv sourdough.sty colors.tex
|
src_tex += supporters.csv sourdough.sty colors.tex
|
||||||
|
src_tex += $(src_recipes)
|
||||||
|
|
||||||
images := $(wildcard images/*/*.jpg)
|
images := $(wildcard images/*/*.jpg)
|
||||||
images += $(wildcard images/*.jpg)
|
images += $(wildcard images/*.jpg)
|
||||||
@@ -49,12 +57,22 @@ images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.png))
|
|||||||
# images to lower resolution and greyscale
|
# images to lower resolution and greyscale
|
||||||
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
|
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
|
||||||
|
|
||||||
src_all := $(src_tex) $(src_figures) $(src_tables) $(images)
|
# For lower res colour ebook we would not convert png as it only get worst
|
||||||
|
# we will copy them instead... so remove them as a dependency.
|
||||||
|
low_res_images := $(addprefix low-res-book-epub/OEBPS/, $(images))
|
||||||
|
low_res_images := $(filter-out %.png, $(low_res_images))
|
||||||
|
|
||||||
|
src_all := $(src_tex) $(src_figures) $(src_tables) $(images) $(src_plots)
|
||||||
|
|
||||||
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
|
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
|
||||||
|
|
||||||
website_src := $(src_all) website.cfg style.css
|
website_src := $(src_all) website.cfg style.css
|
||||||
|
|
||||||
|
# This is more than what is actually needed but keeps the makefile simple
|
||||||
|
# and latexmk will handle the rest
|
||||||
|
booklet_src := $(src_figures) $(src_tables) $(src_recipes) $(images)
|
||||||
|
booklet_src += booklet.tex
|
||||||
|
|
||||||
website_assets := $(wildcard ../website/assets/*)
|
website_assets := $(wildcard ../website/assets/*)
|
||||||
ruby_src := ../website/modify_build.rb $(website_assets)
|
ruby_src := ../website/modify_build.rb $(website_assets)
|
||||||
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
||||||
@@ -90,13 +108,19 @@ figures/fig-life-planet-sourdough-timeline-external.pdf: figures/fig-life-planet
|
|||||||
%.xbb: %.jpg
|
%.xbb: %.jpg
|
||||||
ebb -x $<
|
ebb -x $<
|
||||||
|
|
||||||
|
# We don't want to use latexmk as there is no biber nor references and it
|
||||||
|
# seems to make it somehow unhappy
|
||||||
|
booklet/booklet.pdf: $(booklet_src)
|
||||||
|
mkdir -p booklet
|
||||||
|
lualatex --output-directory=booklet booklet.tex
|
||||||
|
|
||||||
book_serif/book.pdf: $(src_all)
|
book_serif/book.pdf: $(src_all)
|
||||||
$(LATEX) -output-directory=book_serif book.tex
|
$(LATEX) -output-directory=book_serif book.tex
|
||||||
|
|
||||||
book_sans_serif/book_sans_serif.pdf: $(src_all)
|
book_sans_serif/book_sans_serif.pdf: $(src_all)
|
||||||
$(LATEX) -output-directory=book_sans_serif book_sans_serif.tex
|
$(LATEX) -output-directory=book_sans_serif book_sans_serif.tex
|
||||||
|
|
||||||
.PHONY: copy_ebook_files
|
.PHONY: copy_ebook_files copy_ebook_files_low_res
|
||||||
|
|
||||||
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb\
|
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb\
|
||||||
figures/fig-life-planet-sourdough-timeline-external.pdf\
|
figures/fig-life-planet-sourdough-timeline-external.pdf\
|
||||||
@@ -105,9 +129,12 @@ epub/%.epub: %.tex $(src_all) cover/cover-page.xbb\
|
|||||||
$(EBOOK) $<
|
$(EBOOK) $<
|
||||||
|
|
||||||
copy_ebook_files: build_ebook
|
copy_ebook_files: build_ebook
|
||||||
$(RSYNC) book-epub/ bw-book-epub/
|
$(RSYNC) --exclude '*.png' epub_build/book-epub/ bw-book-epub/
|
||||||
|
|
||||||
# We not convert SVG to B&W or lower res for now as they are super small
|
copy_ebook_files_low_res: build_ebook
|
||||||
|
$(RSYNC) epub_build/book-epub/ low-res-book-epub/
|
||||||
|
|
||||||
|
# We do not convert SVG to B&W or lower res for now as they are super small
|
||||||
# anyway
|
# anyway
|
||||||
bw-book-epub/OEBPS/%.jpg: %.jpg
|
bw-book-epub/OEBPS/%.jpg: %.jpg
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
@@ -117,10 +144,18 @@ bw-book-epub/OEBPS/%.png: %.png
|
|||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
$(CONVERT_PIC) $< $(REDUCE_PIC) $@
|
$(CONVERT_PIC) $< $(REDUCE_PIC) $@
|
||||||
|
|
||||||
|
low-res-book-epub/OEBPS/%.jpg: %.jpg
|
||||||
|
mkdir -p $(dir $@)
|
||||||
|
$(CONVERT_PIC) $< $(REDUCE_PIC_COLOR) $@
|
||||||
|
|
||||||
epub/bw_book.epub: copy_ebook_files $(bw_images)
|
epub/bw_book.epub: copy_ebook_files $(bw_images)
|
||||||
cd bw-book-epub; zip -q0X ../epub/bw_book.epub mimetype
|
cd bw-book-epub; zip -q0X ../epub/bw_book.epub mimetype
|
||||||
cd bw-book-epub; zip -q9XrD ../epub/bw_book.epub ./
|
cd bw-book-epub; zip -q9XrD ../epub/bw_book.epub ./
|
||||||
|
|
||||||
|
epub/low_res_book.epub: copy_ebook_files_low_res $(low_res_images)
|
||||||
|
cd low-res-book-epub; zip -q0X ../epub/low_res_book.epub mimetype
|
||||||
|
cd low-res-book-epub; zip -q9XrD ../epub/low_res_book.epub ./
|
||||||
|
|
||||||
# Now with the rules
|
# Now with the rules
|
||||||
# Expected usual rules first
|
# Expected usual rules first
|
||||||
|
|
||||||
@@ -132,59 +167,65 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo "default: builds the book in pdf format (serif)"
|
@echo "default: builds the book in pdf format (serif)"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "all: pdf serif and sans-serif accessible version, as well as ebooks"
|
@echo "Releases:"
|
||||||
@echo " in colour and black&white versions"
|
@echo " all: pdf serif and sans-serif accessible version, ebooks in colours"
|
||||||
|
@echo " and black&white versions and the website"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "bake: same as build all"
|
@echo " bake: same as build all"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "check: runs static analysis checker on LaTeX source to spot"
|
@echo " release_serif: build serif only version of pdf and ebook"
|
||||||
@echo " programming or typographic mistakes"
|
@echo " release_sans_serif: build sans-serif/accessible version of pdf"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "clean: delete all intermediate files keep targets (pdf/ebooks/website)"
|
@echo "Portable Document Format (pdf):"
|
||||||
|
@echo " build_sans_serif_pdf: build accessible pdf only (same as release_sans_serif)"
|
||||||
|
@echo " build_serif_pdf: build serif pdf only"
|
||||||
|
@echo " build_pdf: builds both serif and accessible pdf"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "mrproper: delete all generated files intermediate and pdf/ebooks/website"
|
@echo "Ebooks (epub):"
|
||||||
|
@echo " build_ebook: builds only the colour ebook"
|
||||||
|
@echo " build_bw_ebook: builds the low res black & white ebook"
|
||||||
|
@echo ""
|
||||||
|
@echo "Website:"
|
||||||
|
@echo " website: build the static website from LaTeX sources and post-process it"
|
||||||
|
@echo " html: build the static website from LaTeX sources _without_ post-processing"
|
||||||
|
@echo ""
|
||||||
|
@echo "Cleanup:"
|
||||||
|
@echo " mrproper: delete all generated files intermediate and pdf/ebooks/website"
|
||||||
|
@echo " clean: delete all intermediate files keep targets (pdf/ebooks/website)"
|
||||||
@echo " clean_figures: delete intermediate TikZ files"
|
@echo " clean_figures: delete intermediate TikZ files"
|
||||||
@echo " clean_website_build: delete intermediate website files"
|
@echo " clean_website_build: delete intermediate website files"
|
||||||
@echo " clean_ebook_build: delete intermediate ebook files"
|
@echo " clean_ebook_build: delete intermediate ebook files"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "build_pdf: builds both serif and accessible pdf"
|
|
||||||
@echo ""
|
|
||||||
@echo "build_ebook: builds only the colour ebook"
|
|
||||||
@echo ""
|
|
||||||
@echo "build_bw_ebook: builds the low res black & white ebook"
|
|
||||||
@echo ""
|
|
||||||
@echo "build_sans_serif_pdf: build accessible pdf only"
|
|
||||||
@echo ""
|
|
||||||
@echo "build_serif_pdf: build serif pdf only"
|
|
||||||
@echo ""
|
|
||||||
@echo "figures: build TikZ figures"
|
|
||||||
@echo ""
|
|
||||||
@echo "release_serif: build serif only version of pdf and ebooks"
|
|
||||||
@echo "release_sans_serif: build sans-serif/accessible version of pdf"
|
|
||||||
@echo ""
|
|
||||||
@echo "website: build the static website from LaTeX sources and post-process it"
|
|
||||||
@echo "html: build the static website from LaTeX sources _without_ post-processing"
|
|
||||||
@echo ""
|
|
||||||
@echo "Debug targets:"
|
@echo "Debug targets:"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "quick: compiles serif_pdf but runs lulatex only once"
|
@echo "figures: build TikZ figures only"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "quick_ebook: compiles ebook but runs lulatex only once"
|
@echo "Quick builds:"
|
||||||
|
@echo " quick: compiles serif_pdf but runs lulatex only once"
|
||||||
|
@echo " quick_ebook: compiles ebook but runs lulatex only once"
|
||||||
|
@echo " quick_booklet: compiles booklet but runs lulatex only once"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "show_tools_version: Show version of tools used on the build machine"
|
@echo "Checks:"
|
||||||
|
@echo " tex-check: runs static analysis checker on LaTeX source to spot"
|
||||||
|
@echo " programming or typographic mistakes"
|
||||||
|
@echo " spell-check: runs a spell checker"
|
||||||
|
@echo " check: runs both checkers"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "print-X: print makefile variable X"
|
@echo "Dump informations:"
|
||||||
@echo ""
|
@echo " show_tools_version: Show version of tools used on the build machine"
|
||||||
@echo "printvars: print all variables in the makefile"
|
@echo " printvars: print all variables in the makefile"
|
||||||
|
@echo " print-X: print makefile variable X"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "set DEBUG i.e make DEBUG=1 build_ebook to add debug flags to commands"
|
@echo "set DEBUG i.e make DEBUG=1 build_ebook to add debug flags to commands"
|
||||||
|
|
||||||
|
|
||||||
# Finally actual project targets (i.e. build pdf and ebooks)
|
# Finally actual project targets (i.e. build pdf and ebooks)
|
||||||
.PHONY: build_pdf build_serif_pdf build_sans_serif_pdf build_ebook
|
.PHONY: build_pdf build_booklet build_serif_pdf build_sans_serif_pdf build_ebook
|
||||||
|
|
||||||
build_pdf: build_serif_pdf build_sans_serif_pdf
|
build_pdf: build_serif_pdf build_sans_serif_pdf
|
||||||
|
|
||||||
|
build_booklet: booklet/booklet.pdf
|
||||||
|
|
||||||
build_serif_pdf: book_serif/book.pdf
|
build_serif_pdf: book_serif/book.pdf
|
||||||
|
|
||||||
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf
|
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf
|
||||||
@@ -193,80 +234,99 @@ build_ebook: epub/book.epub
|
|||||||
|
|
||||||
build_bw_ebook: epub/bw_book.epub
|
build_bw_ebook: epub/bw_book.epub
|
||||||
|
|
||||||
.PHONY: export_figures check
|
build_low_res_ebook: epub/low_res_book.epub
|
||||||
|
|
||||||
|
.PHONY: export_figures check tex-check spell-check
|
||||||
# Requires that you have docker running on your computer.
|
# Requires that you have docker running on your computer.
|
||||||
export_figures: build_pdf $(tgt_figures)
|
export_figures: build_pdf $(tgt_figures)
|
||||||
cd figures/ && bash export_figures.sh
|
cd figures/ && bash export_figures.sh
|
||||||
|
|
||||||
# Goal is not really to have 0 warning reported but we should check we don't
|
# Goal is not really to have 0 warning reported but we should check we don't
|
||||||
# add many and if we do, we know they are false positive
|
# add many and if we do, we know they are false positive
|
||||||
check: $(SRC_TEX)
|
check: spell-check tex-check
|
||||||
|
|
||||||
|
tex-check: $(src_tex)
|
||||||
@echo "Running: " $(CHECK_1)
|
@echo "Running: " $(CHECK_1)
|
||||||
$(CHECK_1) book.tex
|
$(CHECK_1) book.tex
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Running: " $(CHECK_2)
|
@echo "Running: " $(CHECK_2)
|
||||||
$(CHECK_2) book.tex
|
$(CHECK_2) book.tex
|
||||||
|
|
||||||
|
spell-check: $(src_tex) spelling_exceptions.txt
|
||||||
|
# Generate exceptions this way to avoid false positives
|
||||||
|
# hunspell -t -l -d en_US **/*.tex *.csv *.sty *.sty | cut -f 2 -d ':' | sort -u > spelling_exceptions.txt
|
||||||
|
$(SPELL_CHECK) -p spelling_exceptions.txt $(src_tex)
|
||||||
|
|
||||||
|
|
||||||
# Clean up and delete generated files
|
# Clean up and delete generated files
|
||||||
.PHONY: clean_figures clean_ebook_build clean_website_build clean mrproper
|
.PHONY: clean_figures clean_ebook_build clean_website_build clean mrproper
|
||||||
clean_figures:
|
clean_figures:
|
||||||
- $(CLEAN) $(patsubst %.tex, %.png.in, $(src_figures))
|
-$(CLEAN) $(patsubst %.tex, %.png.in, $(src_figures))
|
||||||
- rm $(patsubst %.tex, %.png.pdf, $(src_figures))
|
-rm $(patsubst %.tex, %.png.pdf, $(src_figures))
|
||||||
- rm $(patsubst %.tex, %.png.in, $(src_figures))
|
-rm $(patsubst %.tex, %.png.in, $(src_figures))
|
||||||
- rm $(wildcard figures/*.png.*)
|
-rm $(wildcard figures/*.png.*)
|
||||||
- rm cover/cover-page.xbb
|
-rm cover/cover-page.xbb
|
||||||
|
|
||||||
clean_ebook_build:
|
clean_ebook_build:
|
||||||
-rm book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
-rm epub_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||||
-rm book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
-rm epub_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||||
-rm book*x.svg
|
-rm epub_build/book*x.svg
|
||||||
-rm book.css
|
-rm epub_build/book.css
|
||||||
-rm content.opf
|
-rm epub_build/content.opf
|
||||||
|
-rm epub_build/book-epub/mimetype
|
||||||
|
-rm -rf epub_build/book-epub/META-INF
|
||||||
|
-rm -rf epub_build/book-epub/OEBPS
|
||||||
|
|
||||||
clean_website_build: clean_ebook_build
|
clean_website_build:
|
||||||
-rm book-*.svg
|
-rm website_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||||
-rm book.{loc,dlog}
|
-rm website_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||||
-rm $(subst $(website_dir)/,, $(wildcard $(website_dir)/*.html))
|
-rm website_build/book.{loc,dlog}
|
||||||
|
|
||||||
clean: clean_ebook_build clean_figures clean_website_build
|
clean: clean_ebook_build clean_figures clean_website_build
|
||||||
$(CLEAN) -output-directory=book_serif book.tex
|
$(CLEAN) -output-directory=book_serif book.tex
|
||||||
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
||||||
-rm book*/*.{bbl,loc,.run.xml}
|
$(CLEAN) -output-directory=booklet booklet.tex
|
||||||
-rm -rf *book-epub/META-INF
|
-rm book*/*.{bbl,loc,run.xml}
|
||||||
-rm -rf *book-epub/OEBPS
|
|
||||||
-rm *book-epub/mimetype
|
|
||||||
|
|
||||||
mrproper: clean
|
mrproper: clean
|
||||||
$(CLEAN) -C $(src_figures)
|
$(CLEAN) -C $(src_figures)
|
||||||
$(CLEAN) -C -output-directory=book_serif book.tex
|
$(CLEAN) -C -output-directory=book_serif book.tex
|
||||||
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
||||||
|
$(CLEAN) -C -output-directory=booklet booklet.tex
|
||||||
-rm figures/*.png
|
-rm figures/*.png
|
||||||
-rm *.html
|
|
||||||
-rm *.svg
|
|
||||||
-rm -rf epub/
|
-rm -rf epub/
|
||||||
-rm -rf release/
|
-rm -rf release/
|
||||||
-rm -rf book_serif/
|
-rm -rf book_serif/
|
||||||
-rm -rf book_sans_serif/
|
-rm -rf book_sans_serif/
|
||||||
|
-rm -rf booklet/
|
||||||
-rm -rf *book-epub/
|
-rm -rf *book-epub/
|
||||||
|
-rm -rf epub_build/
|
||||||
|
-rm -rf website_build/
|
||||||
-rm -rf $(website_dir)
|
-rm -rf $(website_dir)
|
||||||
|
|
||||||
# top level releases rules
|
# top level releases rules
|
||||||
.PHONY: bake release_serif release_sans_serif
|
.PHONY: bake release_serif release_sans_serif
|
||||||
|
|
||||||
bake: release_serif release_sans_serif
|
bake: release_serif release_sans_serif release_booklet website
|
||||||
|
|
||||||
release:
|
release:
|
||||||
mkdir -p release
|
mkdir -p release
|
||||||
|
|
||||||
release_serif: build_serif_pdf build_ebook build_bw_ebook | release
|
release_serif: build_serif_pdf build_ebook build_bw_ebook build_low_res_ebook | release
|
||||||
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
|
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
|
||||||
cp epub/book.epub release/TheBreadCode-The-Sourdough-Framework.epub
|
|
||||||
cp epub/bw_book.epub release/TheBreadCode-The-Sourdough-Framework-black-and-white.epub
|
cp epub/bw_book.epub release/TheBreadCode-The-Sourdough-Framework-black-and-white.epub
|
||||||
|
cp epub/low_res_book.epub release/TheBreadCode-The-Sourdough-Framework.epub
|
||||||
|
@if [ $(EPUBSIZE) -gt 49500000 ]; then \
|
||||||
|
echo "ERROR: epub File too big"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
release_sans_serif: build_sans_serif_pdf | release
|
release_sans_serif: build_sans_serif_pdf | release
|
||||||
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
||||||
|
|
||||||
|
release_booklet: build_booklet | release
|
||||||
|
cp booklet/booklet.pdf release/TheBreadCode-The-Sourdough-Framework-booklet.pdf
|
||||||
|
|
||||||
# Website stuff
|
# Website stuff
|
||||||
.PHONY: html website
|
.PHONY: html website
|
||||||
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb
|
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb
|
||||||
@@ -278,7 +338,7 @@ html: $(website_dir)/book.html
|
|||||||
# Because packages will be installed in hard to predict places use a file as
|
# Because packages will be installed in hard to predict places use a file as
|
||||||
# marker..
|
# marker..
|
||||||
../website/_bundle_install_done: $(ruby_pkg)
|
../website/_bundle_install_done: $(ruby_pkg)
|
||||||
- rm ../website/$@
|
-rm ../website/$@
|
||||||
cd ../website && bundle install
|
cd ../website && bundle install
|
||||||
touch ../website/$@
|
touch ../website/$@
|
||||||
|
|
||||||
@@ -294,11 +354,14 @@ website: html ../website/_bundle_install_done $(ruby_src)
|
|||||||
quick: # run latex only once no biber, no references etc...
|
quick: # run latex only once no biber, no references etc...
|
||||||
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=book_serif book.tex
|
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=book_serif book.tex
|
||||||
|
|
||||||
|
quick_booklet:
|
||||||
|
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=booklet booklet.tex
|
||||||
|
|
||||||
quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
|
quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
|
||||||
$(EBOOK) --mode draft book.tex
|
$(EBOOK) --mode draft book.tex
|
||||||
|
|
||||||
show_tools_version: # Show version of tools used on the build machine
|
show_tools_version: # Show version of tools used on the build machine
|
||||||
- git log -n 1
|
- $(GIT) log -1 --pretty=%B
|
||||||
@echo ""
|
@echo ""
|
||||||
- uname -a
|
- uname -a
|
||||||
@echo ""
|
@echo ""
|
||||||
@@ -319,7 +382,7 @@ show_tools_version: # Show version of tools used on the build machine
|
|||||||
@echo ""
|
@echo ""
|
||||||
- dvisvgm --version
|
- dvisvgm --version
|
||||||
@echo ""
|
@echo ""
|
||||||
- lacheck --version
|
- lacheck | head -5 | tail -1
|
||||||
@echo ""
|
@echo ""
|
||||||
- chktex --version
|
- chktex --version
|
||||||
@echo ""
|
@echo ""
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
\end{quoting}
|
\end{quoting}
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{pumpkin-sourdough}
|
\includegraphics[width=\textwidth]{pumpkin-sourdough}
|
||||||
\caption[Pumpkin sourdough softbuns]{These soft pull-apart sourdough
|
\caption[Pumpkin sourdough softbuns]{These soft pull-apart sourdough
|
||||||
buns have been made with the addition of pumpkin purée. The mashed pumpkin
|
buns have been made with the addition of pumpkin purée. The mashed pumpkin
|
||||||
@@ -23,6 +24,7 @@ to express yourself.
|
|||||||
\section{Categories}
|
\section{Categories}
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{pumpkin-on-flour}
|
\includegraphics[width=\textwidth]{pumpkin-on-flour}
|
||||||
\caption[Pumpkin puré]{A common mix-in technique is to replace some of
|
\caption[Pumpkin puré]{A common mix-in technique is to replace some of
|
||||||
the dough's water with another liquid. In this case, puréd pumpkin replaced
|
the dough's water with another liquid. In this case, puréd pumpkin replaced
|
||||||
@@ -64,10 +66,12 @@ Many of the above-listed mix-ins can't be pinpointed to a single category. They
|
|||||||
change multiple aspects of the final bread at the same time.
|
change multiple aspects of the final bread at the same time.
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{seeded-sourdough}
|
\includegraphics[width=\textwidth]{seeded-sourdough}
|
||||||
\caption[Seeded sourdough]{In this case a combination of flax, sunflower and
|
\caption[Seeded sourdough]{In this case a combination of flax, sunflower and
|
||||||
sesame was added to the dough. The seeds will slightly dehydrate the dough
|
sesame was added to the dough. The seeds will slightly dehydrate the dough
|
||||||
during fermentation and thus adding a bit more water (\qtyrange{1}{2}{\percent}) is advised.}%
|
during fermentation and thus adding a bit more water
|
||||||
|
(\qtyrange{1}{2}{\percent}) is advised.}%
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Mix-ins affect the structure of the dough. One aspect is the impact on
|
Mix-ins affect the structure of the dough. One aspect is the impact on
|
||||||
@@ -97,6 +101,7 @@ regular bread flour. Different flours change the taste of the bread and
|
|||||||
usually moderately affect the color.
|
usually moderately affect the color.
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{broa}
|
\includegraphics[width=\textwidth]{broa}
|
||||||
\caption[Broa de milho]{Broa de milho is a traditional Portuguese bread
|
\caption[Broa de milho]{Broa de milho is a traditional Portuguese bread
|
||||||
made out of half rye and half corn flour.}%
|
made out of half rye and half corn flour.}%
|
||||||
@@ -111,7 +116,7 @@ usually moderately affect the color.
|
|||||||
\item Semolina (supports Mediterranean flavors)
|
\item Semolina (supports Mediterranean flavors)
|
||||||
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
|
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
|
||||||
great with sweet toppings)
|
great with sweet toppings)
|
||||||
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato etc.
|
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato\dots{}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Liquids}
|
\subsection{Liquids}
|
||||||
@@ -120,9 +125,11 @@ Instead of using water, you can substitute it with a different liquid,
|
|||||||
affecting taste and texture.
|
affecting taste and texture.
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{beer-bread}
|
\includegraphics[width=\textwidth]{beer-bread}
|
||||||
\caption[Stout beer bread]{Dark hearty stouts work excellently as a water replacement
|
\caption[Stout beer bread]{Dark hearty stouts work excellently as a water
|
||||||
when making sourdough bread. The resulting loaf features a hearty malty taste}%
|
replacement when making sourdough bread. The resulting loaf features a
|
||||||
|
hearty malty taste}%
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@@ -134,15 +141,15 @@ affecting taste and texture.
|
|||||||
\item Eggs
|
\item Eggs
|
||||||
\item Fruit/vegetable juices (also see Section~\ref{section:colors})
|
\item Fruit/vegetable juices (also see Section~\ref{section:colors})
|
||||||
\item Milk (for sweet, soft breads)
|
\item Milk (for sweet, soft breads)
|
||||||
\item Milk alternatives such as: Almond, oat, soy etc.
|
\item Milk alternatives such as: Almond, oat, soy\dots{}
|
||||||
\item Mashed potatoes
|
\item Mashed potatoes
|
||||||
\item Mashed sweet potatoes. Bolo do caco is a typical bread from Madeira,
|
\item Mashed sweet potatoes. Bolo do caco is a typical bread from Madeira,
|
||||||
made from \qty{50}{\percent} wheat flour and \qty{50}{\percent} mashed potatoes.
|
made from \qty{50}{\percent} wheat flour and \qty{50}{\percent} mashed potatoes.
|
||||||
\item Olive oil (Mediterranean)
|
\item Olive oil (Mediterranean)
|
||||||
\item Other mashed vegetables such as: Beets, pumpkin, etc.
|
\item Other mashed vegetables such as: Beets, pumpkin\dots{}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Colors}
|
\subsection{Colors}%
|
||||||
\label{section:colors}
|
\label{section:colors}
|
||||||
Some mix-ins will change the color and flavor of your bread. Common colorings
|
Some mix-ins will change the color and flavor of your bread. Common colorings
|
||||||
include:
|
include:
|
||||||
@@ -166,12 +173,14 @@ seeds benefit from being boiled for about 10~minutes before adding them to the
|
|||||||
dough.
|
dough.
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{stollen-close-up}
|
\includegraphics[width=\textwidth]{stollen-close-up}
|
||||||
\caption[Stollen closeup]{The Stollen is a traditional German sweet Christmas
|
\caption[Stollen closeup]{The Stollen is a traditional German sweet Christmas
|
||||||
bread featuring a variety of mix-ins. The dough typically contains candied lemon,
|
bread featuring a variety of mix-ins. The dough typically contains candied
|
||||||
candied orange, and raisins. The mix-ins are soaked in rum before being added to
|
lemon, candied orange, and raisins. The mix-ins are soaked in rum before
|
||||||
the dough. While the stollen matures after baking (up to \num{6} months) the candied ingredients release
|
being added to the dough. While the stollen matures after baking (up to
|
||||||
their aroma to the baked product.}%
|
\num{6} months) the candied ingredients release their aroma to the baked
|
||||||
|
product.}%
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@@ -190,28 +199,31 @@ dough.
|
|||||||
|
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{seeds-bread}
|
\includegraphics[width=\textwidth]{seeds-bread}
|
||||||
\caption[Whole-rye with rye berries]{A sourdough bread made with half whole-rye flour and half rye berries. The
|
\caption[Whole-rye with rye berries]{A sourdough bread made with half
|
||||||
berries are typically boiled for 10~minutes to allow them to soften a bit. When baking a loaf
|
whole-rye flour and half rye berries. The berries are typically boiled
|
||||||
it is advised to use a thermometer to measure whether it is done baking. The final bread
|
for 10~minutes to allow them to soften a bit. When baking a loaf it is
|
||||||
features a hearty tangy flavor and has a moist crumb.}%
|
advised to use a thermometer to measure whether it is done baking. The
|
||||||
|
final bread features a hearty tangy flavor and has a moist crumb.}%
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Spices and flavor mix-ins}
|
\subsection{Spices and flavor mix-ins}
|
||||||
These are mostly powders or small bits.
|
These are mostly powders or small bits.
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Blueberry skins (press through a sieve to remove juice, raw blueberries
|
\item Blueberry skins (press through a sieve to remove juice), raw
|
||||||
|
blueberries
|
||||||
\item Browned onions
|
\item Browned onions
|
||||||
\item Candied fruits such as: Lemon, orange, pineapple, etc.
|
\item Candied fruits such as: Lemon, orange, pineapple\dots{}
|
||||||
\item Cinnamon
|
\item Cinnamon
|
||||||
\item Grated hard cheese such as: Gruyère, parmesan, etc.
|
\item Grated hard cheese such as: Gruyère, parmesan\dots{}
|
||||||
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme, etc.
|
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme\dots{}
|
||||||
\item Miso
|
\item Miso
|
||||||
\item Molasses
|
\item Molasses
|
||||||
\item Sugar
|
\item Sugar
|
||||||
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin, etc.
|
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin\dots{}
|
||||||
\item Zests such as: Lime, Lemon, orange, etc.
|
\item Zests such as: Lime, Lemon, orange\dots{}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Highlights}
|
\subsection{Highlights}
|
||||||
@@ -222,12 +234,12 @@ can often be complemented by some flavor or flour mix-in.
|
|||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Chocolate chunks or drops
|
\item Chocolate chunks or drops
|
||||||
\item Chunks of black garlic
|
\item Chunks of black garlic
|
||||||
\item Chunks of cheese such as: Cheddar, feta, etc.
|
\item Chunks of cheese such as: Cheddar, feta\dots{}
|
||||||
\item Cornflakes
|
\item Cornflakes
|
||||||
\item Dried fruits such as: Cranberries, dates, raisins, etc.
|
\item Dried fruits such as: Cranberries, dates, raisins\dots{}
|
||||||
\item Olives
|
\item Olives
|
||||||
\item Pickled pepperoni
|
\item Pickled pepperoni
|
||||||
\item Sundried tomatoes (squeeze out the oil if using pickled ones, or soak
|
\item Sun-dried tomatoes (squeeze out the oil if using pickled ones, or soak
|
||||||
dried ones in water)
|
dried ones in water)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -240,47 +252,70 @@ A few combinations where multiple mix-ins complement each other:
|
|||||||
\item Cheddar and jalapeño
|
\item Cheddar and jalapeño
|
||||||
\item Cocoa, cacao nibs, whole hazelnuts
|
\item Cocoa, cacao nibs, whole hazelnuts
|
||||||
\item Cranberry and walnuts
|
\item Cranberry and walnuts
|
||||||
\item Semolina, Mediterranean herbs, olives, sundried tomatoes
|
\item Semolina, Mediterranean herbs, olives, sun-dried tomatoes
|
||||||
\item Tomato juice instead of water with \qty{20}{\percent} rye flour
|
\item Tomato juice instead of water with \qty{20}{\percent} rye flour
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Techniques}
|
\section{Techniques}
|
||||||
|
|
||||||
Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
|
Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
|
||||||
directly when you knead the dough. After the first kneading wait for 30 minutes to see
|
directly when you knead the dough. After the first kneading wait for 30
|
||||||
if the dough has enough or too much water. In the case of whole-soaked berries
|
minutes to see if the dough has enough or too much water. In the case of
|
||||||
(\eg~rye or wheat) chances are that the berries will release some water and make the dough
|
whole-soaked berries (\eg~rye or wheat) chances are that the berries will
|
||||||
wetter. In this case, you will want to add a bit more flour to the dough to
|
release some water and make the dough wetter. In this case, you will want to
|
||||||
compensate for the high hydration.
|
add a bit more flour to the dough to compensate for the high hydration.
|
||||||
|
|
||||||
|
\subsection[Incorporating seeds into the dough]{What is the best stage to
|
||||||
|
incorporate inclusions (seeds) into the dough?}%
|
||||||
|
\label{subec:incorporate-seeds}
|
||||||
|
|
||||||
|
You can include seeds directly at the start when mixing the dough. If you use
|
||||||
|
whole seeds such as wheat or rye kernels, soak them in water overnight and
|
||||||
|
then rinse them before adding them to the dough. This makes sure that they are
|
||||||
|
not crunchy and are soft enough when eating the bread. If you forgot to soak
|
||||||
|
them you can cook the seeds for 10~minutes in hot water. Rinse them with cold
|
||||||
|
water before adding them to your dough.
|
||||||
|
|
||||||
|
If you want to sweeten the dough, your best option is to add sugar during the
|
||||||
|
shaping stage. Sugar added too early in the process typically gets fermented
|
||||||
|
until none of it remains. Adjust your shaping technique a little bit and
|
||||||
|
spread your sugar mixture over a flattened-out dough. You can then roll the
|
||||||
|
dough together, incorporating layers of sugar.
|
||||||
|
|
||||||
\subsection{Adding before shaping}
|
\subsection{Adding before shaping}
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{apple-swirl}
|
\includegraphics[width=\textwidth]{apple-swirl}
|
||||||
\caption[Apple swirl buns]{A great technique is to add some of your mix-ins
|
\caption[Apple swirl buns]{A great technique is to add some of your mix-ins
|
||||||
directly before shaping. In this case, a mixture of apples, cinnamon and brown
|
directly before shaping. In this case, a mixture of apples, cinnamon and
|
||||||
sugar was applied. Proceed and roll the dough together. Afterward cut the roll
|
brown sugar was applied. Proceed and roll the dough together. Afterward
|
||||||
into smaller pieces using a sharp knife, dough scraper or dental floss. Place
|
cut the roll into smaller pieces using a sharp knife, dough scraper or
|
||||||
each piece of dough next to each other in a greased bowl to allow them to be proofed.
|
dental floss. Place each piece of dough next to each other in a greased
|
||||||
Proceed and bake as you would normally do. The benefit of this technique is that
|
bowl to allow them to be proofed. Proceed and bake as you would
|
||||||
the mix-ins will not be fermented. This is typically required in the case of sugar
|
normally do. The benefit of this technique is that the mix-ins will not
|
||||||
since you want the final baked goods to feature sweetness. If included upon
|
be fermented. This is typically required in the case of sugar since you
|
||||||
initial mixing most of the sugar would be fermented and the bread would not taste sweet.}%
|
want the final baked goods to feature sweetness. If included upon
|
||||||
|
initial mixing most of the sugar would be fermented and the bread would
|
||||||
|
not taste sweet.}%
|
||||||
|
\label{fig:apple-swirl}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Another approach is to lay the dough out flat after the bulk fermentation.
|
Another approach is to lay the dough out flat after the bulk fermentation.
|
||||||
Then using a spatula spread your ingredient over the flat dough. Continue with
|
Then using a spatula spread your ingredient over the flat dough. Continue with
|
||||||
your regular shaping and/or roll up the dough. When creating a roll you can
|
your regular shaping and/or roll up the dough. When creating a roll you can
|
||||||
use a sharp knife to cut the dough, dental floss works great too. Afterward,
|
use a sharp knife to cut the dough, dental floss works great too. Afterward,
|
||||||
place the tiny swirls in a container to let them proof and become fluffier. This is an
|
place the tiny swirls in a container to let them proof and become fluffier.
|
||||||
excellent way to add sweet mixins as the microbes will not ferment them. When
|
This is an excellent way to add sweet mix-ins as the microbes will not ferment
|
||||||
adding sugar to the initial dough it will be fermented and the resulting dough
|
them. When adding sugar to the initial dough it will be fermented and the
|
||||||
will not taste sweet (depending on the fermentation duration). This approach
|
resulting dough will not taste sweet (depending on the fermentation duration).
|
||||||
is excellent for garlic/cheese rolls, garlic/herb rolls, and cinnamon rolls
|
This approach is excellent for garlic/cheese rolls, garlic/herb rolls, and
|
||||||
|
cinnamon rolls
|
||||||
|
|
||||||
\subsection{Covering the surface}
|
\subsection{Covering the surface}
|
||||||
|
|
||||||
\begin{figure}[htb!]
|
\begin{figure}[htb!]
|
||||||
|
\centering
|
||||||
\includegraphics[width=\textwidth]{surface-seeds}
|
\includegraphics[width=\textwidth]{surface-seeds}
|
||||||
\caption[Surface seeds]{These are chop buns which are created by chopping
|
\caption[Surface seeds]{These are chop buns which are created by chopping
|
||||||
up a retarded dough into smaller pieces before baking. Then each piece of
|
up a retarded dough into smaller pieces before baking. Then each piece of
|
||||||
@@ -289,6 +324,7 @@ is excellent for garlic/cheese rolls, garlic/herb rolls, and cinnamon rolls
|
|||||||
coverings add superb additional flavor and can be adjusted depending on
|
coverings add superb additional flavor and can be adjusted depending on
|
||||||
your preference. I love adding a mixture of sunflower, flax, and
|
your preference. I love adding a mixture of sunflower, flax, and
|
||||||
sesame seeds.}%
|
sesame seeds.}%
|
||||||
|
\label{fig:surface-seeds}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
This works best for either powders or small bits. After shaping wrap your
|
This works best for either powders or small bits. After shaping wrap your
|
||||||
@@ -298,8 +334,9 @@ these coverings also help to make the container stick less.
|
|||||||
|
|
||||||
Another approach commonly used with buns is to wet the surface or dump the
|
Another approach commonly used with buns is to wet the surface or dump the
|
||||||
dough in water. Afterward, dip the wetted piece of dough into your bowl of
|
dough in water. Afterward, dip the wetted piece of dough into your bowl of
|
||||||
mixins. This does not work for all mix-ins, as some can't handle the high temperatures
|
mix-ins. This does not work for all mix-ins, as some can't handle the high
|
||||||
during baking and char. Most commonly done with seeds (\eg~sesame, oats, flax-seed).
|
temperatures during baking and char. Most commonly done with seeds
|
||||||
|
(\eg~sesame, oats, flax-seed).
|
||||||
|
|
||||||
\subsection{Swirled colors}
|
\subsection{Swirled colors}
|
||||||
Mix-ins that change the color of the dough bring the opportunity for even more
|
Mix-ins that change the color of the dough bring the opportunity for even more
|
||||||
@@ -310,6 +347,6 @@ ferment the dough in separate containers. Then Combine the two (or
|
|||||||
more) differently colored doughs by laminating and stacking the colored sheets
|
more) differently colored doughs by laminating and stacking the colored sheets
|
||||||
of dough before the last folding, just before shaping. This way the colored
|
of dough before the last folding, just before shaping. This way the colored
|
||||||
layers won't mix and the resulting dough will have differently colored and
|
layers won't mix and the resulting dough will have differently colored and
|
||||||
tasting layers. \footnote{I once made an experimental dough by merging a wheat,
|
tasting layers\footnote{I once made an experimental dough by merging a wheat,
|
||||||
rye, spelt and einkorn dough into a single dough. The resulting dough was
|
rye, spelt and einkorn dough into a single dough. The resulting dough was
|
||||||
layered featuring different colors, textures, and flavors.}
|
layered featuring different colors, textures, and flavors.}.
|
||||||
|
|||||||
29
book/plots/fig-temperature-ambient.tex
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
\begin{tikzpicture}
|
||||||
|
\tikzstyle{every node}+=[font=\normalsize\rmfamily]
|
||||||
|
\begin{axis}[
|
||||||
|
title=Ambient temperature,
|
||||||
|
grid=both,
|
||||||
|
major grid style={line width=.2pt,draw=gray!30},
|
||||||
|
axis x line=middle,
|
||||||
|
axis y line=middle,
|
||||||
|
width=\textwidth,
|
||||||
|
height=0.5\textwidth,
|
||||||
|
xmax=35, xmin=-0.1,
|
||||||
|
ymax=205, ymin=-0.1,
|
||||||
|
every axis y label/.style={%
|
||||||
|
at={(ticklabel cs:0.5)},rotate=90,anchor=near ticklabel},
|
||||||
|
every axis x label/.style={%
|
||||||
|
at={(ticklabel cs:0.5)},anchor=near ticklabel},
|
||||||
|
legend pos = south east,
|
||||||
|
legend style={draw=none},
|
||||||
|
legend cell align={left},
|
||||||
|
xlabel=Duration (minutes), ylabel=Temperature (\SI{}{\degree} C)
|
||||||
|
]
|
||||||
|
\addplot [color=redpic,smooth,ultra thick] table {plots/icecube_ambient.table};
|
||||||
|
\addplot [color=codeblack,smooth,ultra thick] table {plots/preheated_ambient.table};
|
||||||
|
\addplot [color=codeblue,smooth,ultra thick] table {plots/non-preheated_ambient.table};
|
||||||
|
\addplot [color=yellowpic,smooth,ultra thick] table {plots/preheated_bottom_ambient.table};
|
||||||
|
\addplot [color=pinkpic,smooth,ultra thick] table {plots/spritzing_ambient.table};
|
||||||
|
\legend{Ice cube, Preheated, Non-preheated, Preheated bottom, Spritzing};
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
29
book/plots/fig-temperature-surface.tex
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
\begin{tikzpicture}
|
||||||
|
\tikzstyle{every node}+=[font=\normalsize\rmfamily]
|
||||||
|
\begin{axis}[
|
||||||
|
title=Surface temperature,
|
||||||
|
grid=both,
|
||||||
|
major grid style={line width=.2pt,draw=gray!30},
|
||||||
|
axis x line=middle,
|
||||||
|
axis y line=middle,
|
||||||
|
width=\textwidth,
|
||||||
|
height=0.5\textwidth,
|
||||||
|
xmax=35, xmin=-0.1,
|
||||||
|
ymax=108, ymin=-0.1,
|
||||||
|
every axis y label/.style={%
|
||||||
|
at={(ticklabel cs:0.5)},rotate=90,anchor=near ticklabel},
|
||||||
|
every axis x label/.style={%
|
||||||
|
at={(ticklabel cs:0.5)},anchor=near ticklabel},
|
||||||
|
legend pos = south east,
|
||||||
|
legend style={draw=none},
|
||||||
|
legend cell align={left},
|
||||||
|
xlabel=Duration (minutes), ylabel=Temperature (\SI{}{\degree} C)
|
||||||
|
]
|
||||||
|
\addplot [color=redpic,smooth,ultra thick] table {plots/icecube_surface.table};
|
||||||
|
\addplot [color=codeblack,smooth,ultra thick] table {plots/preheated_surface.table};
|
||||||
|
\addplot [color=codeblue,smooth,ultra thick] table {plots/non-preheated_surface.table};
|
||||||
|
\addplot [color=yellowpic,smooth,ultra thick] table {plots/preheated_bottom_surface.table};
|
||||||
|
\addplot [color=pinkpic,smooth,ultra thick] table {plots/spritzing_surface.table};
|
||||||
|
\legend{Ice cube, Preheated, Non-preheated, Preheated bottom, Spritzing};
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
42
book/plots/fig-yeast-sourdough-strength.tex
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
\begin{tikzpicture}
|
||||||
|
\tikzstyle{every node}+=[font=\normalsize\rmfamily]
|
||||||
|
\begin{axis}[
|
||||||
|
title style={align=center},
|
||||||
|
title={Gluten development of a sourdough and yeast based dough\\
|
||||||
|
\qty{22}{\degreeCelsius} (\qty{72}{\degF}) and
|
||||||
|
\qty{60}{\percent}~hydration},
|
||||||
|
axis x line=middle,
|
||||||
|
axis y line=middle,
|
||||||
|
width=\textwidth,
|
||||||
|
height=0.5\textwidth,
|
||||||
|
xmax=44, xmin=-0.1,
|
||||||
|
ymax=12, ymin=-0.1,
|
||||||
|
every axis y label/.style={%
|
||||||
|
at={(ticklabel cs:0.5)},rotate=90,anchor=near ticklabel},
|
||||||
|
every axis x label/.style={%
|
||||||
|
at={(ticklabel cs:0.5)},anchor=near ticklabel},
|
||||||
|
xtick distance=6,
|
||||||
|
ytick style={draw=none},
|
||||||
|
yticklabels={empty},
|
||||||
|
legend style={draw=none},
|
||||||
|
legend cell align={left},
|
||||||
|
xlabel=Duration (hours), ylabel=Dough strength
|
||||||
|
]
|
||||||
|
\addplot [color=redpic,smooth,ultra thick] table {plots/yeast.table};
|
||||||
|
\addplot [color=codeblue,smooth,ultra thick] table {plots/sourdough.table};
|
||||||
|
|
||||||
|
\node at (axis cs:18,7) [anchor=south west] {%
|
||||||
|
\begin{tabular}{@{}lll@{}} \textbf{Dough type}&
|
||||||
|
\textbf{Kneading} & \textbf{Stretch \& Fold}\\
|
||||||
|
\midrule
|
||||||
|
\textcolor{redpic}{Yeast} & \textcolor{redpic}{None}&
|
||||||
|
\textcolor{redpic}{None} \\ \textcolor{codeblue}{Sourdough}&
|
||||||
|
\textcolor{codeblue}{None} & \textcolor{codeblue}{None} \\
|
||||||
|
\end{tabular}
|
||||||
|
};
|
||||||
|
\node at (axis cs:8,8.3) [anchor=south] {Peak stage};
|
||||||
|
\node at (axis cs:1,1) [anchor=west] {Development stage};
|
||||||
|
\node at (axis cs:9.5,5) [anchor=west] {Extensibility stage};
|
||||||
|
\node at (axis cs:25.8,4) [anchor=west] {Decay stage};
|
||||||
|
\end{axis}
|
||||||
|
\end{tikzpicture}
|
||||||
24
book/plots/icecube_ambient.table
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#Ice Cube
|
||||||
|
#Time Ambient
|
||||||
|
1 95
|
||||||
|
2 148
|
||||||
|
3 165
|
||||||
|
4 172
|
||||||
|
5 175
|
||||||
|
6 179
|
||||||
|
7 179
|
||||||
|
8 180
|
||||||
|
9 181
|
||||||
|
10 182
|
||||||
|
11 182
|
||||||
|
12 182
|
||||||
|
13 182
|
||||||
|
14 181
|
||||||
|
15 182
|
||||||
|
16 182
|
||||||
|
17 181
|
||||||
|
18 182
|
||||||
|
19 182
|
||||||
|
20 181
|
||||||
|
21 182
|
||||||
|
22 182
|
||||||
24
book/plots/icecube_surface.table
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#Ice Cube
|
||||||
|
#Time Surface
|
||||||
|
1 13
|
||||||
|
2 50
|
||||||
|
3 66
|
||||||
|
4 71
|
||||||
|
5 72
|
||||||
|
6 74
|
||||||
|
7 78
|
||||||
|
8 81
|
||||||
|
9 84
|
||||||
|
10 86
|
||||||
|
11 89
|
||||||
|
12 91
|
||||||
|
13 92
|
||||||
|
14 94
|
||||||
|
15 95
|
||||||
|
16 96
|
||||||
|
17 97
|
||||||
|
18 98
|
||||||
|
19 98
|
||||||
|
20 99
|
||||||
|
21 99
|
||||||
|
22 99
|
||||||
28
book/plots/non-preheated_ambient.table
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#Non preheated
|
||||||
|
#Time Ambient
|
||||||
|
1 22
|
||||||
|
2 25
|
||||||
|
3 31
|
||||||
|
4 36
|
||||||
|
5 43
|
||||||
|
6 49
|
||||||
|
7 56
|
||||||
|
8 63
|
||||||
|
9 70
|
||||||
|
10 77
|
||||||
|
11 85
|
||||||
|
12 91
|
||||||
|
13 96
|
||||||
|
14 102
|
||||||
|
15 107
|
||||||
|
16 113
|
||||||
|
17 119
|
||||||
|
18 124
|
||||||
|
19 128
|
||||||
|
20 132
|
||||||
|
21 137
|
||||||
|
22 141
|
||||||
|
23 144
|
||||||
|
24 147
|
||||||
|
25 151
|
||||||
|
26 151
|
||||||
28
book/plots/non-preheated_surface.table
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#Non preheated
|
||||||
|
#Time Surface
|
||||||
|
1 13
|
||||||
|
2 14
|
||||||
|
3 15
|
||||||
|
4 15
|
||||||
|
5 17
|
||||||
|
6 18
|
||||||
|
7 19
|
||||||
|
8 21
|
||||||
|
9 23
|
||||||
|
10 26
|
||||||
|
11 28
|
||||||
|
12 31
|
||||||
|
13 34
|
||||||
|
14 37
|
||||||
|
15 40
|
||||||
|
16 43
|
||||||
|
17 47
|
||||||
|
18 50
|
||||||
|
19 53
|
||||||
|
20 57
|
||||||
|
21 61
|
||||||
|
22 65
|
||||||
|
23 68
|
||||||
|
24 71
|
||||||
|
25 74
|
||||||
|
26 75
|
||||||
18
book/plots/preheated_ambient.table
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#Pre-heated
|
||||||
|
#Time Ambient
|
||||||
|
1 110
|
||||||
|
2 163
|
||||||
|
3 181
|
||||||
|
4 186
|
||||||
|
5 189
|
||||||
|
6 190
|
||||||
|
7 190
|
||||||
|
8 189
|
||||||
|
9 189
|
||||||
|
10 188
|
||||||
|
11 188
|
||||||
|
12 188
|
||||||
|
13 189
|
||||||
|
14 189
|
||||||
|
15 190
|
||||||
|
|
||||||
37
book/plots/preheated_bottom_ambient.table
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#Preheated Bottom
|
||||||
|
#Time Ambient
|
||||||
|
1 31
|
||||||
|
2 105
|
||||||
|
3 133
|
||||||
|
4 143
|
||||||
|
5 149
|
||||||
|
6 151
|
||||||
|
7 152
|
||||||
|
8 152
|
||||||
|
9 153
|
||||||
|
10 154
|
||||||
|
11 157
|
||||||
|
12 159
|
||||||
|
13 161
|
||||||
|
14 162
|
||||||
|
15 164
|
||||||
|
16 167
|
||||||
|
17 169
|
||||||
|
18 171
|
||||||
|
19 172
|
||||||
|
20 173
|
||||||
|
21 174
|
||||||
|
22 176
|
||||||
|
23 176
|
||||||
|
24 176
|
||||||
|
25 176
|
||||||
|
26 176
|
||||||
|
27 176
|
||||||
|
28 176
|
||||||
|
29 176
|
||||||
|
30 176
|
||||||
|
31 176
|
||||||
|
32 176
|
||||||
|
33 176
|
||||||
|
34 176
|
||||||
|
35 176
|
||||||
36
book/plots/preheated_bottom_surface.table
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#Preheated bottom
|
||||||
|
#Time Surface
|
||||||
|
#1 0
|
||||||
|
2 7
|
||||||
|
3 13
|
||||||
|
4 18
|
||||||
|
5 23
|
||||||
|
6 29
|
||||||
|
7 33
|
||||||
|
8 38
|
||||||
|
9 42
|
||||||
|
10 47
|
||||||
|
11 51
|
||||||
|
12 55
|
||||||
|
13 60
|
||||||
|
14 64
|
||||||
|
15 68
|
||||||
|
16 71
|
||||||
|
17 74
|
||||||
|
18 78
|
||||||
|
19 83
|
||||||
|
20 90
|
||||||
|
21 95
|
||||||
|
22 97
|
||||||
|
23 99
|
||||||
|
24 99
|
||||||
|
25 99
|
||||||
|
26 100
|
||||||
|
27 100
|
||||||
|
28 100
|
||||||
|
29 100
|
||||||
|
30 100
|
||||||
|
31 100
|
||||||
|
32 100
|
||||||
|
33 100
|
||||||
|
34 101
|
||||||
17
book/plots/preheated_surface.table
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#Ice Cube
|
||||||
|
#Time Surface
|
||||||
|
1 7
|
||||||
|
2 16
|
||||||
|
3 25
|
||||||
|
4 35
|
||||||
|
5 43
|
||||||
|
6 51
|
||||||
|
7 58
|
||||||
|
8 65
|
||||||
|
9 70
|
||||||
|
10 74
|
||||||
|
11 78
|
||||||
|
12 82
|
||||||
|
13 85
|
||||||
|
14 85
|
||||||
|
15 85
|
||||||
100
book/plots/sourdough.table
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
0.000000000000000000e+00 0.000000000000000000e+00
|
||||||
|
2.424242424242424310e-01 4.240754653977794608e-01
|
||||||
|
4.848484848484848619e-01 8.471491777276901614e-01
|
||||||
|
7.272727272727272929e-01 1.268219383921863175e+00
|
||||||
|
9.696969696969697239e-01 1.686284330912430240e+00
|
||||||
|
1.212121212121212155e+00 2.100342265631521599e+00
|
||||||
|
1.454545454545454586e+00 2.509391435011269600e+00
|
||||||
|
1.696969696969697017e+00 2.912430085983805039e+00
|
||||||
|
1.939393939393939448e+00 3.308456465481258935e+00
|
||||||
|
2.181818181818181657e+00 3.696468820435762304e+00
|
||||||
|
2.424242424242424310e+00 4.075465397779447052e+00
|
||||||
|
2.666666666666666963e+00 4.444444444444444642e+00
|
||||||
|
2.909090909090909172e+00 4.802404207362885202e+00
|
||||||
|
3.151515151515151381e+00 5.148342933466899751e+00
|
||||||
|
3.393939393939394034e+00 5.481258869688621971e+00
|
||||||
|
3.636363636363636687e+00 5.800150262960180214e+00
|
||||||
|
3.878787878787878896e+00 6.104015360213707275e+00
|
||||||
|
4.121212121212121104e+00 6.391852408381334172e+00
|
||||||
|
4.363636363636363313e+00 6.662659654395191033e+00
|
||||||
|
4.606060606060606410e+00 6.915435345187411542e+00
|
||||||
|
4.848484848484848619e+00 7.149177727690124051e+00
|
||||||
|
5.090909090909090828e+00 7.362885048835461355e+00
|
||||||
|
5.333333333333333925e+00 7.555555555555555358e+00
|
||||||
|
5.575757575757576134e+00 7.726187494782536191e+00
|
||||||
|
5.818181818181818343e+00 7.873779113448534872e+00
|
||||||
|
6.060606060606060552e+00 7.997328658485683306e+00
|
||||||
|
6.303030303030302761e+00 8.095834376826111622e+00
|
||||||
|
6.545454545454545858e+00 8.168294515401953504e+00
|
||||||
|
6.787878787878788067e+00 8.213707321145337303e+00
|
||||||
|
7.030303030303030276e+00 8.231071040988396703e+00
|
||||||
|
7.272727272727273373e+00 8.219383921863260056e+00
|
||||||
|
7.515151515151515582e+00 8.177644210702062821e+00
|
||||||
|
7.757575757575757791e+00 8.104850154436931575e+00
|
||||||
|
8.000000000000000000e+00 8.000000000000000000e+00
|
||||||
|
8.242424242424242209e+00 7.878787878787878896e+00
|
||||||
|
8.484848484848484418e+00 7.757575757575757791e+00
|
||||||
|
8.727272727272726627e+00 7.636363636363636687e+00
|
||||||
|
8.969696969696970612e+00 7.515151515151514694e+00
|
||||||
|
9.212121212121212821e+00 7.393939393939393590e+00
|
||||||
|
9.454545454545455030e+00 7.272727272727272485e+00
|
||||||
|
9.696969696969697239e+00 7.151515151515151381e+00
|
||||||
|
9.939393939393939448e+00 7.030303030303030276e+00
|
||||||
|
1.018181818181818166e+01 6.909090909090909172e+00
|
||||||
|
1.042424242424242387e+01 6.787878787878788067e+00
|
||||||
|
1.066666666666666785e+01 6.666666666666666075e+00
|
||||||
|
1.090909090909091006e+01 6.545454545454544970e+00
|
||||||
|
1.115151515151515227e+01 6.424242424242423866e+00
|
||||||
|
1.139393939393939448e+01 6.303030303030302761e+00
|
||||||
|
1.163636363636363669e+01 6.181818181818181657e+00
|
||||||
|
1.187878787878787890e+01 6.060606060606060552e+00
|
||||||
|
1.212121212121212110e+01 5.939393939393939448e+00
|
||||||
|
1.236363636363636331e+01 5.818181818181818343e+00
|
||||||
|
1.260606060606060552e+01 5.696969696969697239e+00
|
||||||
|
1.284848484848484951e+01 5.575757575757575246e+00
|
||||||
|
1.309090909090909172e+01 5.454545454545454142e+00
|
||||||
|
1.333333333333333393e+01 5.333333333333333037e+00
|
||||||
|
1.357575757575757613e+01 5.212121212121211933e+00
|
||||||
|
1.381818181818181834e+01 5.090909090909090828e+00
|
||||||
|
1.406060606060606055e+01 4.969696969696969724e+00
|
||||||
|
1.430303030303030276e+01 4.848484848484848619e+00
|
||||||
|
1.454545454545454675e+01 4.727272727272726627e+00
|
||||||
|
1.478787878787878896e+01 4.606060606060605522e+00
|
||||||
|
1.503030303030303116e+01 4.484848484848484418e+00
|
||||||
|
1.527272727272727337e+01 4.363636363636363313e+00
|
||||||
|
1.551515151515151558e+01 4.242424242424242209e+00
|
||||||
|
1.575757575757575779e+01 4.121212121212121104e+00
|
||||||
|
1.600000000000000000e+01 4.000000000000000000e+00
|
||||||
|
1.624242424242424221e+01 3.878787878787878896e+00
|
||||||
|
1.648484848484848442e+01 3.757575757575757791e+00
|
||||||
|
1.672727272727272663e+01 3.636363636363636687e+00
|
||||||
|
1.696969696969696884e+01 3.515151515151515582e+00
|
||||||
|
1.721212121212121104e+01 3.393939393939394478e+00
|
||||||
|
1.745454545454545325e+01 3.272727272727273373e+00
|
||||||
|
1.769696969696969902e+01 3.151515151515150492e+00
|
||||||
|
1.793939393939394122e+01 3.030303030303029388e+00
|
||||||
|
1.818181818181818343e+01 2.909090909090908283e+00
|
||||||
|
1.842424242424242564e+01 2.787878787878787179e+00
|
||||||
|
1.866666666666666785e+01 2.666666666666666075e+00
|
||||||
|
1.890909090909091006e+01 2.545454545454544970e+00
|
||||||
|
1.915151515151515227e+01 2.424242424242423866e+00
|
||||||
|
1.939393939393939448e+01 2.303030303030302761e+00
|
||||||
|
1.963636363636363669e+01 2.181818181818181657e+00
|
||||||
|
1.987878787878787890e+01 2.060606060606060552e+00
|
||||||
|
2.012121212121212110e+01 1.939393939393939448e+00
|
||||||
|
2.036363636363636331e+01 1.818181818181818343e+00
|
||||||
|
2.060606060606060552e+01 1.696969696969697239e+00
|
||||||
|
2.084848484848484773e+01 1.575757575757576134e+00
|
||||||
|
2.109090909090908994e+01 1.454545454545455030e+00
|
||||||
|
2.133333333333333570e+01 1.333333333333332149e+00
|
||||||
|
2.157575757575757791e+01 1.212121212121211045e+00
|
||||||
|
2.181818181818182012e+01 1.090909090909089940e+00
|
||||||
|
2.206060606060606233e+01 9.696969696969688357e-01
|
||||||
|
2.230303030303030454e+01 8.484848484848477312e-01
|
||||||
|
2.254545454545454675e+01 7.272727272727266268e-01
|
||||||
|
2.278787878787878896e+01 6.060606060606055223e-01
|
||||||
|
2.303030303030303116e+01 4.848484848484844179e-01
|
||||||
|
2.327272727272727337e+01 3.636363636363633134e-01
|
||||||
|
2.351515151515151558e+01 2.424242424242422089e-01
|
||||||
|
2.375757575757575779e+01 1.212121212121211045e-01
|
||||||
|
2.400000000000000000e+01 0.000000000000000000e+00
|
||||||
37
book/plots/spritzing_ambient.table
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#Spritzing
|
||||||
|
#Time Ambient
|
||||||
|
1 31
|
||||||
|
2 135
|
||||||
|
3 168
|
||||||
|
4 182
|
||||||
|
5 189
|
||||||
|
6 190
|
||||||
|
7 190
|
||||||
|
8 190
|
||||||
|
9 190
|
||||||
|
10 189
|
||||||
|
11 190
|
||||||
|
12 190
|
||||||
|
13 189
|
||||||
|
14 190
|
||||||
|
15 190
|
||||||
|
16 190
|
||||||
|
17 189
|
||||||
|
18 190
|
||||||
|
19 190
|
||||||
|
20 190
|
||||||
|
21 190
|
||||||
|
22 190
|
||||||
|
23 189
|
||||||
|
24 190
|
||||||
|
25 190
|
||||||
|
26 190
|
||||||
|
27 190
|
||||||
|
28 190
|
||||||
|
29 190
|
||||||
|
30 189
|
||||||
|
31 190
|
||||||
|
32 190
|
||||||
|
33 190
|
||||||
|
34 190
|
||||||
|
35 190
|
||||||
38
book/plots/spritzing_surface.table
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#Spritzing
|
||||||
|
#Time Surface
|
||||||
|
1 6
|
||||||
|
2 13
|
||||||
|
3 29
|
||||||
|
4 40
|
||||||
|
5 47
|
||||||
|
6 54
|
||||||
|
7 60
|
||||||
|
8 65
|
||||||
|
9 70
|
||||||
|
10 74
|
||||||
|
11 78
|
||||||
|
12 82
|
||||||
|
13 85
|
||||||
|
14 88
|
||||||
|
15 91
|
||||||
|
16 94
|
||||||
|
17 96
|
||||||
|
18 97
|
||||||
|
19 98
|
||||||
|
20 99
|
||||||
|
21 99
|
||||||
|
22 99
|
||||||
|
23 99
|
||||||
|
24 99
|
||||||
|
25 99
|
||||||
|
26 99
|
||||||
|
27 99
|
||||||
|
28 100
|
||||||
|
29 100
|
||||||
|
30 101
|
||||||
|
31 101
|
||||||
|
32 101
|
||||||
|
33 102
|
||||||
|
34 103
|
||||||
|
35 103
|
||||||
|
|
||||||
100
book/plots/yeast.table
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
0.000000000000000000e+00 0.000000000000000000e+00
|
||||||
|
4.242424242424242542e-01 7.169229458362316176e-01
|
||||||
|
8.484848484848485084e-01 1.428572670524745458e+00
|
||||||
|
1.272727272727272707e+00 2.130208499298593239e+00
|
||||||
|
1.696969696969697017e+00 2.817089757390826232e+00
|
||||||
|
2.121212121212121104e+00 3.484475770034495934e+00
|
||||||
|
2.545454545454545414e+00 4.127625862462654283e+00
|
||||||
|
2.969696969696969724e+00 4.741799359908352329e+00
|
||||||
|
3.393939393939394034e+00 5.322255587604640681e+00
|
||||||
|
3.818181818181818343e+00 5.864253870784571276e+00
|
||||||
|
4.242424242424242209e+00 6.363053534681196055e+00
|
||||||
|
4.666666666666666963e+00 6.813913904527567844e+00
|
||||||
|
5.090909090909090828e+00 7.212094305556735030e+00
|
||||||
|
5.515151515151515582e+00 7.552854063001753104e+00
|
||||||
|
5.939393939393939448e+00 7.831452502095669566e+00
|
||||||
|
6.363636363636364202e+00 8.043148948071538129e+00
|
||||||
|
6.787878787878788067e+00 8.183202726162404517e+00
|
||||||
|
7.212121212121211933e+00 8.246873161601330438e+00
|
||||||
|
7.636363636363636687e+00 8.229419579621360725e+00
|
||||||
|
8.060606060606060552e+00 8.142734264051528115e+00
|
||||||
|
8.484848484848484418e+00 8.049102099819306133e+00
|
||||||
|
8.909090909090910060e+00 7.954963367078545566e+00
|
||||||
|
9.333333333333333925e+00 7.860318065829249967e+00
|
||||||
|
9.757575757575757791e+00 7.765166196071416671e+00
|
||||||
|
1.018181818181818166e+01 7.669507757805047454e+00
|
||||||
|
1.060606060606060552e+01 7.573342751030141429e+00
|
||||||
|
1.103030303030303116e+01 7.476671175746698594e+00
|
||||||
|
1.145454545454545503e+01 7.379493031954719839e+00
|
||||||
|
1.187878787878787890e+01 7.281808319654204276e+00
|
||||||
|
1.230303030303030276e+01 7.183617038845151903e+00
|
||||||
|
1.272727272727272840e+01 7.084919189527563610e+00
|
||||||
|
1.315151515151515227e+01 6.985714771701438508e+00
|
||||||
|
1.357575757575757613e+01 6.886003785366776597e+00
|
||||||
|
1.400000000000000000e+01 6.785786230523578766e+00
|
||||||
|
1.442424242424242387e+01 6.685062107171844126e+00
|
||||||
|
1.484848484848484951e+01 6.583831415311573565e+00
|
||||||
|
1.527272727272727337e+01 6.482094154942766195e+00
|
||||||
|
1.569696969696969724e+01 6.379850326065422905e+00
|
||||||
|
1.612121212121212110e+01 6.277123761538812907e+00
|
||||||
|
1.654545454545454675e+01 6.174324510640207819e+00
|
||||||
|
1.696969696969696884e+01 6.071597983435813362e+00
|
||||||
|
1.739393939393939448e+01 5.968940305132156787e+00
|
||||||
|
1.781818181818182012e+01 5.866347600935763573e+00
|
||||||
|
1.824242424242424221e+01 5.763815996053158308e+00
|
||||||
|
1.866666666666666785e+01 5.661341615690869133e+00
|
||||||
|
1.909090909090908994e+01 5.558920585055421526e+00
|
||||||
|
1.951515151515151558e+01 5.456549029353340075e+00
|
||||||
|
1.993939393939394122e+01 5.354223073791151144e+00
|
||||||
|
2.036363636363636331e+01 5.251938843575382876e+00
|
||||||
|
2.078787878787878896e+01 5.149692463912558082e+00
|
||||||
|
2.121212121212121104e+01 5.047480060009204905e+00
|
||||||
|
2.163636363636363669e+01 4.945297757071848821e+00
|
||||||
|
2.206060606060606233e+01 4.843141680307013530e+00
|
||||||
|
2.248484848484848442e+01 4.741007954921228951e+00
|
||||||
|
2.290909090909091006e+01 4.638892706121018783e+00
|
||||||
|
2.333333333333333570e+01 4.536792059112909392e+00
|
||||||
|
2.375757575757575779e+01 4.434702139103427143e+00
|
||||||
|
2.418181818181818343e+01 4.332619071299096625e+00
|
||||||
|
2.460606060606060552e+01 4.230538980906445978e+00
|
||||||
|
2.503030303030303116e+01 4.128457993131998016e+00
|
||||||
|
2.545454545454545681e+01 4.026372233182281768e+00
|
||||||
|
2.587878787878787890e+01 3.924277826263822710e+00
|
||||||
|
2.630303030303030454e+01 3.822170897583144988e+00
|
||||||
|
2.672727272727272663e+01 3.720047572346776743e+00
|
||||||
|
2.715151515151515227e+01 3.617903975761242119e+00
|
||||||
|
2.757575757575757791e+01 3.515736233033067482e+00
|
||||||
|
2.800000000000000000e+01 3.413540469368780528e+00
|
||||||
|
2.842424242424242564e+01 3.311312809974904514e+00
|
||||||
|
2.884848484848484773e+01 3.209049380057968470e+00
|
||||||
|
2.927272727272727337e+01 3.106746304824495208e+00
|
||||||
|
2.969696969696969902e+01 3.004399709481012870e+00
|
||||||
|
3.012121212121212110e+01 2.902005719234047376e+00
|
||||||
|
3.054545454545454675e+01 2.799560459290122427e+00
|
||||||
|
3.096969696969696884e+01 2.697060054855767497e+00
|
||||||
|
3.139393939393939448e+01 2.594500631137504953e+00
|
||||||
|
3.181818181818182012e+01 2.491878313341862938e+00
|
||||||
|
3.224242424242424221e+01 2.389189226675367816e+00
|
||||||
|
3.266666666666666430e+01 2.286429496344544621e+00
|
||||||
|
3.309090909090909349e+01 2.183595247555917496e+00
|
||||||
|
3.351515151515151558e+01 2.080682605516016359e+00
|
||||||
|
3.393939393939393767e+01 1.977687695431364912e+00
|
||||||
|
3.436363636363636687e+01 1.874606642508488630e+00
|
||||||
|
3.478787878787878896e+01 1.771435571953915211e+00
|
||||||
|
3.521212121212121104e+01 1.668170608974169244e+00
|
||||||
|
3.563636363636364024e+01 1.564807878775775540e+00
|
||||||
|
3.606060606060606233e+01 1.461343506565263128e+00
|
||||||
|
3.648484848484848442e+01 1.357773617549156597e+00
|
||||||
|
3.690909090909091361e+01 1.254094336933980092e+00
|
||||||
|
3.733333333333333570e+01 1.150301789926262863e+00
|
||||||
|
3.775757575757575779e+01 1.046392101732529056e+00
|
||||||
|
3.818181818181817988e+01 9.423613975593052583e-01
|
||||||
|
3.860606060606060908e+01 8.382058026131148365e-01
|
||||||
|
3.903030303030303116e+01 7.339214421004879307e-01
|
||||||
|
3.945454545454545325e+01 6.295044412279485746e-01
|
||||||
|
3.987878787878788245e+01 5.249509252020206906e-01
|
||||||
|
4.030303030303030454e+01 4.202570192292340301e-01
|
||||||
|
4.072727272727272663e+01 3.154188485161137923e-01
|
||||||
|
4.115151515151515582e+01 2.104325382691821789e-01
|
||||||
|
4.157575757575757791e+01 1.052942136949696628e-01
|
||||||
|
4.200000000000000000e+01 4.440892098500626162e-16
|
||||||
53
book/recipes/flat-bread.tex
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
\subsubsection*{Ingredients}
|
||||||
|
\begin{tabular}{r@{}rl@{}}
|
||||||
|
\qty{400}{\gram} &~(\qty{100}{\percent}) & Flour (wheat, rye, corn, whatever
|
||||||
|
you have at hand)\\
|
||||||
|
\qty{320}{\gram} & (\qty{80}{\percent}) & Water, preferably at room
|
||||||
|
temperature\\
|
||||||
|
\qty{80}{\gram} & (\qty{20}{\percent}) & Active sourdough starter\\
|
||||||
|
\qty{8}{\gram} & (\qty{2}{\percent}) & Salt\\
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
\subsubsection*{Instructions}
|
||||||
|
\begin{description}
|
||||||
|
\item[Prepare the dough] In a large mixing bowl, combine the flour and water.
|
||||||
|
Mix until you have a shaggy dough with no dry spots.
|
||||||
|
|
||||||
|
Add the sourdough starter and salt to the mixture. Incorporate them
|
||||||
|
thoroughly until you achieve a smooth and homogenized dough.
|
||||||
|
|
||||||
|
\item[Fermentation:] Cover the bowl with a lid or plastic wrap. Allow the dough
|
||||||
|
to rest and ferment until it has increased by at least \qty{50}{\percent}
|
||||||
|
in size. Depending on the temperature and activity of your starter, this
|
||||||
|
can take anywhere from 4 to 24~hours.
|
||||||
|
|
||||||
|
\item[Cooking preparation:] Once the dough has risen, heat a pan over medium
|
||||||
|
heat. Lightly oil the pan, ensuring to wipe away any excess oil with a
|
||||||
|
paper towel.
|
||||||
|
|
||||||
|
\item[Shaping and cooking:] With a ladle or your hands, scoop out a portion of
|
||||||
|
the dough and place it onto the hot pan, spreading it gently like a
|
||||||
|
pancake.
|
||||||
|
|
||||||
|
Cover the pan with a lid. This traps the steam and ensures even cooking
|
||||||
|
from the top, allowing for easier flipping later.
|
||||||
|
|
||||||
|
After about 5~minutes, or when the bottom of the flatbread has a
|
||||||
|
golden-brown crust, carefully flip it using a spatula.
|
||||||
|
|
||||||
|
\emph{Adjusting cook time.} If the flatbread appears too dark, remember to
|
||||||
|
reduce the cooking time slightly for the next one. Conversely, if it's
|
||||||
|
too pale, allow it to cook a bit longer before flipping.
|
||||||
|
|
||||||
|
Cook the flipped side for an additional 5~minutes or until it's also
|
||||||
|
golden brown.
|
||||||
|
|
||||||
|
\item[Storing:] Once cooked, remove the flatbread from the pan and place it on
|
||||||
|
a kitchen towel. Wrapping the breads in the towel will help retain their
|
||||||
|
softness and prevent them from becoming overly crisp. Repeat the cooking
|
||||||
|
process for the remaining dough.
|
||||||
|
|
||||||
|
\item[Serving suggestion:] Enjoy your sourdough flatbreads warm, paired with
|
||||||
|
your favorite dips, spreads, or as a side to any meal.
|
||||||
|
|
||||||
|
\end{description}
|
||||||
BIN
book/sourdough-starter/sourdough-starter-activity-indicators.png
Normal file
|
After Width: | Height: | Size: 284 KiB |
@@ -84,7 +84,8 @@ are completely lost when trying to scale it up.
|
|||||||
\section{The process of making a starter}
|
\section{The process of making a starter}
|
||||||
|
|
||||||
\begin{figure}[!htb]
|
\begin{figure}[!htb]
|
||||||
\includegraphics[width=\textwidth]{sourdough-starter.jpg}
|
\centering
|
||||||
|
\includegraphics[width=\textwidth]{sourdough-starter-activity-indicators}
|
||||||
\caption[Very active sourdough]{A very active sourdough starter shown by the
|
\caption[Very active sourdough]{A very active sourdough starter shown by the
|
||||||
bubbles in the dough.}%
|
bubbles in the dough.}%
|
||||||
\label{fig:sourdough-starter}
|
\label{fig:sourdough-starter}
|
||||||
@@ -234,11 +235,22 @@ the starter when the starter itself dried out a lot.
|
|||||||
You will
|
You will
|
||||||
still have some mixture left from your first day. As this contains
|
still have some mixture left from your first day. As this contains
|
||||||
possibly dangerous pathogens that have been activated make sure you discard
|
possibly dangerous pathogens that have been activated make sure you discard
|
||||||
this mixture. Once your sourdough starter is mature you never need to
|
this mixture. A rule of thumb is to begin keeping the discard,
|
||||||
discard it. It's long-fermented flour that is an excellent addon
|
the moment you made your first successful bread. At that point
|
||||||
|
your discard is long-fermented flour that is an excellent addon
|
||||||
used to make crackers, pancakes or delicious hearty sandwich
|
used to make crackers, pancakes or delicious hearty sandwich
|
||||||
bread\ldots I~also frequently dry it and use it as a rolling agent
|
bread\ldots I~also frequently dry it and use it as a rolling agent
|
||||||
for pizzas that I~am making.
|
for pizzas that I~am making.\footnote{Discarding starter when preparing
|
||||||
|
a new batch can be frustrating. With experience, bread-making
|
||||||
|
becomes more efficient, and excess discard is rarely produced. It is
|
||||||
|
possible to prepare just the right amount of starter
|
||||||
|
needed for bread dough. In fact, a fully depleted starter can even be revived
|
||||||
|
using a small portion of bread dough. Any leftover discard, rich in spores,
|
||||||
|
can also serve as a backup to create a new sourdough starter. Simply mix the
|
||||||
|
discard with a little flour and water, and it will spring back to life. That is a
|
||||||
|
great option if the starter was accidentally depleted. A practical approach
|
||||||
|
is to store all discard in a single jar in the fridge, adding new discard on
|
||||||
|
top as needed and using it whenever required.}
|
||||||
|
|
||||||
You should hopefully again see some bubbles, the starter increasing
|
You should hopefully again see some bubbles, the starter increasing
|
||||||
in size and/or the starter changing its smell. Some people give
|
in size and/or the starter changing its smell. Some people give
|
||||||
@@ -272,9 +284,12 @@ starters.
|
|||||||
\centering
|
\centering
|
||||||
\input{figures/fig-starter-readiness.tex}
|
\input{figures/fig-starter-readiness.tex}
|
||||||
\caption[Determining sourdough starter readiness]{A flow chart showing you how to
|
\caption[Determining sourdough starter readiness]{A flow chart showing you how to
|
||||||
determine if your sourdough starter is ready to be used. For checking
|
determine if your sourdough starter is ready to be used. Make sure to
|
||||||
readiness look at a size increase and take note of your starter's smell.
|
wait at least \qtyrange{6}{12}{\hour} after feeding your
|
||||||
Both are important indicators to check for readiness.}%
|
starter to check its readiness. To evaluate it, look at your starter's size
|
||||||
|
increase, airy texture and take note of its smell.
|
||||||
|
All three factors are important to properly evaluate your starter's activity level.
|
||||||
|
An active starter is an important foundation for a successful dough fermentation}%
|
||||||
\label{fig:sourdough-starter-readiness}
|
\label{fig:sourdough-starter-readiness}
|
||||||
\end{flowchart}
|
\end{flowchart}
|
||||||
|
|
||||||
@@ -427,7 +442,7 @@ of water. This extra layer of water provides good protection from the top
|
|||||||
part drying out. As mold is aerobic it can not grow efficiently under
|
part drying out. As mold is aerobic it can not grow efficiently under
|
||||||
water~\cite{mold+anaerobic}. Before using the starter again simply either stir
|
water~\cite{mold+anaerobic}. Before using the starter again simply either stir
|
||||||
the liquid into the dough or drain it. If you drain the liquid you can use it
|
the liquid into the dough or drain it. If you drain the liquid you can use it
|
||||||
to make a lacto fermented hot sauce for instance.
|
to make a lacto-fermented hot sauce for instance.
|
||||||
|
|
||||||
The colder it is the longer you preserve a good balance of yeast and
|
The colder it is the longer you preserve a good balance of yeast and
|
||||||
bacteria. Generally, the warmer it is the faster the fermentation process is,
|
bacteria. Generally, the warmer it is the faster the fermentation process is,
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
\ProvidesPackage{sourdough}
|
\ProvidesPackage{sourdough}
|
||||||
\usepackage{blindtext}
|
\usepackage{blindtext}
|
||||||
\usepackage{graphicx}
|
\usepackage{graphicx}
|
||||||
|
\usepackage{pgfplots}
|
||||||
\usepackage{booktabs}
|
\usepackage{booktabs}
|
||||||
\usepackage{longtable}
|
\usepackage{longtable}
|
||||||
\usepackage{chemformula}
|
\usepackage{chemformula}
|
||||||
\usepackage{chemfig}
|
\usepackage{chemfig}
|
||||||
\usepackage{booktabs}
|
|
||||||
\usepackage{makecell}
|
\usepackage{makecell}
|
||||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||||
\usepackage{fontspec}
|
\usepackage{fontspec}
|
||||||
@@ -24,15 +24,19 @@
|
|||||||
types=flowcharts,% ,
|
types=flowcharts,% ,
|
||||||
float,
|
float,
|
||||||
floattype=4,%
|
floattype=4,%
|
||||||
|
counterwithin=chapter,
|
||||||
name=Flowchart,%
|
name=Flowchart,%
|
||||||
listname = {List of Flowcharts}
|
listname = {List of Flowcharts}
|
||||||
]{loc}
|
]{loc}
|
||||||
\setuptoc{loc}{chapteratlist}
|
\setuptoc{loc}{chapteratlist}
|
||||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{figure}
|
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{figure}
|
||||||
|
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{flowchart}
|
||||||
|
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{table}
|
||||||
|
|
||||||
% Common abbreviations
|
% Common abbreviations
|
||||||
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
|
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
|
||||||
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
|
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
|
||||||
|
\newcommand{\etc}{etc\@ifnextchar.{}{.\@}}
|
||||||
|
|
||||||
% Consistent pH values
|
% Consistent pH values
|
||||||
\newcommand{\pHvalue}[1]{pH~\SI{#1}{}}
|
\newcommand{\pHvalue}[1]{pH~\SI{#1}{}}
|
||||||
@@ -71,10 +75,11 @@
|
|||||||
\addbibresource{references.bib}
|
\addbibresource{references.bib}
|
||||||
|
|
||||||
% Clickable links in the table of contents
|
% Clickable links in the table of contents
|
||||||
\usepackage[ocgcolorlinks]{hyperref}
|
\usepackage{hyperref}
|
||||||
\usepackage{bookmark}
|
\usepackage{bookmark}
|
||||||
\hypersetup{%
|
\hypersetup{%
|
||||||
linktoc=all,
|
linktoc=all,
|
||||||
|
colorlinks = true,
|
||||||
linkcolor = hlorange,
|
linkcolor = hlorange,
|
||||||
urlcolor = codeblue,
|
urlcolor = codeblue,
|
||||||
citecolor = hlocre,
|
citecolor = hlocre,
|
||||||
|
|||||||
574
book/spelling_exceptions.txt
Normal file
@@ -0,0 +1,574 @@
|
|||||||
|
0cm
|
||||||
|
0pt
|
||||||
|
100x
|
||||||
|
10x
|
||||||
|
1940s
|
||||||
|
1cm
|
||||||
|
1em
|
||||||
|
1in
|
||||||
|
1mm
|
||||||
|
1pt
|
||||||
|
2O
|
||||||
|
2cm
|
||||||
|
2mm
|
||||||
|
2pt
|
||||||
|
3cm
|
||||||
|
3em
|
||||||
|
3mm
|
||||||
|
3pt
|
||||||
|
4cm
|
||||||
|
4em
|
||||||
|
4mm
|
||||||
|
4pt
|
||||||
|
5cm
|
||||||
|
5em
|
||||||
|
6cm
|
||||||
|
7cm
|
||||||
|
7em
|
||||||
|
8cm
|
||||||
|
Abu
|
||||||
|
Acad
|
||||||
|
Alanblue
|
||||||
|
Alveograph
|
||||||
|
Amaia
|
||||||
|
Amanor
|
||||||
|
Amylases
|
||||||
|
Andail
|
||||||
|
Andale
|
||||||
|
Andreas
|
||||||
|
Andrieu
|
||||||
|
Andrzej
|
||||||
|
Anonnn
|
||||||
|
Antonie
|
||||||
|
Archaeobotanical
|
||||||
|
Arranz
|
||||||
|
Aryal
|
||||||
|
Aurore
|
||||||
|
Autolyse
|
||||||
|
BTSkete
|
||||||
|
BUtn4HKAiBs
|
||||||
|
Bangzhu
|
||||||
|
Banneton
|
||||||
|
Bassinage
|
||||||
|
Battista
|
||||||
|
Berghoff
|
||||||
|
BigWullie
|
||||||
|
Biopreservation
|
||||||
|
Bleve
|
||||||
|
Blixikan
|
||||||
|
Blusie
|
||||||
|
Bouguetaïa
|
||||||
|
Brigitta
|
||||||
|
Broa
|
||||||
|
Brockman
|
||||||
|
Brühstück
|
||||||
|
Buehler
|
||||||
|
Buksa
|
||||||
|
Böcker
|
||||||
|
CO2
|
||||||
|
Cagno
|
||||||
|
Capusoni
|
||||||
|
Capyboppy
|
||||||
|
Catzeddu
|
||||||
|
Charliefleurene
|
||||||
|
Chia
|
||||||
|
Chrillesen
|
||||||
|
Christiane
|
||||||
|
Chrysanna
|
||||||
|
Coeliac
|
||||||
|
Compostional
|
||||||
|
Cédric
|
||||||
|
DIY
|
||||||
|
DKitSeattle
|
||||||
|
Danieel
|
||||||
|
Danois
|
||||||
|
DeclareDocumentCommand
|
||||||
|
DeclareNewTOC
|
||||||
|
DeclareRobustCommand
|
||||||
|
DeclareSIUnit
|
||||||
|
DeclareTOCStyleEntry
|
||||||
|
Dekkera
|
||||||
|
Delwen
|
||||||
|
Diastatic
|
||||||
|
Dichev
|
||||||
|
Drey
|
||||||
|
DuBosq
|
||||||
|
Duivelsjong
|
||||||
|
Dybedahl
|
||||||
|
Eicher
|
||||||
|
Elsevier
|
||||||
|
Emerg
|
||||||
|
Ethanoic
|
||||||
|
FEMS
|
||||||
|
Fazio
|
||||||
|
Fermentolyse
|
||||||
|
Fermentolysis
|
||||||
|
Fleischmann
|
||||||
|
Fleischmann's
|
||||||
|
Flipp
|
||||||
|
FontFace
|
||||||
|
François
|
||||||
|
Fredrik
|
||||||
|
Fructilactobacillus
|
||||||
|
Gambu
|
||||||
|
Gasbarrini
|
||||||
|
Gelatinization
|
||||||
|
Geoff
|
||||||
|
Gianluca
|
||||||
|
Glutenins
|
||||||
|
Gobbetti
|
||||||
|
Gognies
|
||||||
|
Goldstein
|
||||||
|
Gottfried
|
||||||
|
Gruyère
|
||||||
|
Guidone
|
||||||
|
Gáliková
|
||||||
|
HCode
|
||||||
|
Halina
|
||||||
|
Hansandremanfredsson
|
||||||
|
Hendrik
|
||||||
|
Heterofermentative
|
||||||
|
Hiroshi
|
||||||
|
Hito
|
||||||
|
Holmer
|
||||||
|
Homofermentative
|
||||||
|
Horsford
|
||||||
|
IfUsePrefixLine
|
||||||
|
IfWideLayout
|
||||||
|
Ifthispageodd
|
||||||
|
Ilsefa
|
||||||
|
Inma
|
||||||
|
Integrale
|
||||||
|
Jc
|
||||||
|
Jessicat
|
||||||
|
Jimjo
|
||||||
|
JorisBelmans
|
||||||
|
Jure
|
||||||
|
Jz
|
||||||
|
KAO
|
||||||
|
KOMA
|
||||||
|
Kankiti
|
||||||
|
Kao
|
||||||
|
Karomizu
|
||||||
|
Keary
|
||||||
|
Kirill
|
||||||
|
KitchenAid
|
||||||
|
Kleinw
|
||||||
|
Kleinwächter
|
||||||
|
Knödel
|
||||||
|
Kochstück
|
||||||
|
Koga
|
||||||
|
Kongraksawech
|
||||||
|
Kotz
|
||||||
|
Krawontka
|
||||||
|
Krzysztof
|
||||||
|
Kuchengnom
|
||||||
|
Kuriyama
|
||||||
|
Labelling
|
||||||
|
Lausuch
|
||||||
|
Lecloux
|
||||||
|
Leeuwen
|
||||||
|
Leucosporidium
|
||||||
|
Leung
|
||||||
|
Levain
|
||||||
|
Lievito
|
||||||
|
Lightowler
|
||||||
|
Lili1232000
|
||||||
|
Lise
|
||||||
|
Lizabeth
|
||||||
|
Lucke
|
||||||
|
Lukasz
|
||||||
|
Madjedbebe
|
||||||
|
Maillard
|
||||||
|
Maktabdar
|
||||||
|
Marianito
|
||||||
|
Marijke
|
||||||
|
Maryam
|
||||||
|
MatchLowercase
|
||||||
|
Matsumoto
|
||||||
|
Mattson
|
||||||
|
Mckenney
|
||||||
|
Mcleish
|
||||||
|
Meghann
|
||||||
|
Mello
|
||||||
|
Mercier
|
||||||
|
Michaela
|
||||||
|
Microbiol
|
||||||
|
Mieke
|
||||||
|
Mitelski
|
||||||
|
Moj
|
||||||
|
Monicaks
|
||||||
|
MqH3GVfjfBc
|
||||||
|
NONINFRINGEMENT
|
||||||
|
Napoli
|
||||||
|
Nic
|
||||||
|
Nirpf
|
||||||
|
Nowak
|
||||||
|
Nowosiadly
|
||||||
|
Nowotna
|
||||||
|
Oest
|
||||||
|
Otaegui
|
||||||
|
Overfermented
|
||||||
|
Paaskus
|
||||||
|
Pagella
|
||||||
|
Palatino
|
||||||
|
Pangea
|
||||||
|
Parmigiano
|
||||||
|
Pentosans
|
||||||
|
Pieter
|
||||||
|
Piskur
|
||||||
|
Pitdepitis
|
||||||
|
Poudel
|
||||||
|
Praznik
|
||||||
|
Pre
|
||||||
|
Preshape
|
||||||
|
Preshaping
|
||||||
|
Proteolytic
|
||||||
|
ProvidesPackage
|
||||||
|
Pui
|
||||||
|
Qingfa
|
||||||
|
Rachana
|
||||||
|
Rafa
|
||||||
|
Raffaella
|
||||||
|
Raptorrich
|
||||||
|
RedeclareSectionCommand
|
||||||
|
Rizthebread
|
||||||
|
Roccato
|
||||||
|
Roijalbaker
|
||||||
|
Rori
|
||||||
|
Saccharomyces
|
||||||
|
Sagar
|
||||||
|
Schmid
|
||||||
|
Schmitz
|
||||||
|
Sebastianklocke
|
||||||
|
Semibold
|
||||||
|
Semmeln
|
||||||
|
Shar
|
||||||
|
Shelleymierle
|
||||||
|
Sherik
|
||||||
|
Shi
|
||||||
|
Sivy
|
||||||
|
Smedt
|
||||||
|
Smirnov
|
||||||
|
Sourdoughhome
|
||||||
|
Spelt
|
||||||
|
Spicher
|
||||||
|
Stollen
|
||||||
|
Strambinha
|
||||||
|
Sune
|
||||||
|
T00
|
||||||
|
T1050
|
||||||
|
T110
|
||||||
|
T150
|
||||||
|
T405
|
||||||
|
T45
|
||||||
|
T55
|
||||||
|
T550
|
||||||
|
T80
|
||||||
|
T812
|
||||||
|
TODO
|
||||||
|
Tangzhong
|
||||||
|
Tbonewilly
|
||||||
|
Teepakorn
|
||||||
|
Teff
|
||||||
|
Therealbruce
|
||||||
|
Toph
|
||||||
|
Underfermented
|
||||||
|
Usliv
|
||||||
|
Valadez
|
||||||
|
Valdaora
|
||||||
|
Vassil
|
||||||
|
Vitis
|
||||||
|
Voicu
|
||||||
|
Vollkorn
|
||||||
|
Wikander
|
||||||
|
Wittenboer
|
||||||
|
Yudane
|
||||||
|
Zhou
|
||||||
|
Ziobro
|
||||||
|
Zoltan
|
||||||
|
a4paper
|
||||||
|
achter
|
||||||
|
addbibresource
|
||||||
|
addon
|
||||||
|
afterskip
|
||||||
|
aliquot's
|
||||||
|
alveogram
|
||||||
|
alveograph
|
||||||
|
amylases
|
||||||
|
arabinoxylan
|
||||||
|
archae
|
||||||
|
archaea
|
||||||
|
archaeon
|
||||||
|
autodot
|
||||||
|
autolyse
|
||||||
|
autolysing
|
||||||
|
backend
|
||||||
|
banneton
|
||||||
|
bannetons
|
||||||
|
bassinage
|
||||||
|
batard
|
||||||
|
beforeskip
|
||||||
|
bfseries
|
||||||
|
biber
|
||||||
|
biblatex
|
||||||
|
biga
|
||||||
|
bigskip
|
||||||
|
biocontrol
|
||||||
|
blindtext
|
||||||
|
booktabs
|
||||||
|
breadmaking
|
||||||
|
breadrolls
|
||||||
|
breaklinks
|
||||||
|
bruxellensis
|
||||||
|
c8GId0ByASo
|
||||||
|
caco
|
||||||
|
cagno
|
||||||
|
calc
|
||||||
|
captionsetup
|
||||||
|
caramelise
|
||||||
|
carbonarius
|
||||||
|
cerevisiae
|
||||||
|
chapappifchapterprefix
|
||||||
|
chapteratlist
|
||||||
|
chapterformat
|
||||||
|
chapterlinesformat
|
||||||
|
chapterstylebar
|
||||||
|
chapterstylekao
|
||||||
|
chapterstylelines
|
||||||
|
chapterstyleplain
|
||||||
|
chemfig
|
||||||
|
chemformula
|
||||||
|
citecolor
|
||||||
|
codeblack
|
||||||
|
codeblue
|
||||||
|
coeliac
|
||||||
|
colour
|
||||||
|
countertop
|
||||||
|
crum
|
||||||
|
defaultfontfeatures
|
||||||
|
degF
|
||||||
|
dependant
|
||||||
|
diastatic
|
||||||
|
dimexpr
|
||||||
|
discard2
|
||||||
|
doi
|
||||||
|
eg
|
||||||
|
egypt
|
||||||
|
egyptian
|
||||||
|
ejcn
|
||||||
|
emph
|
||||||
|
endophytes
|
||||||
|
enskip
|
||||||
|
enumitem
|
||||||
|
evans
|
||||||
|
fermentolyse
|
||||||
|
fermentolysis
|
||||||
|
fermentée
|
||||||
|
fi
|
||||||
|
flatbreads
|
||||||
|
flavour
|
||||||
|
flavours
|
||||||
|
fleischmann
|
||||||
|
floattype
|
||||||
|
flushleft
|
||||||
|
flushright
|
||||||
|
fnpct
|
||||||
|
fontseries
|
||||||
|
fontspec
|
||||||
|
foodsafe
|
||||||
|
footnotesize
|
||||||
|
frigidum
|
||||||
|
gMbZeUIVzZY
|
||||||
|
gelatinization
|
||||||
|
gestions
|
||||||
|
giga
|
||||||
|
github
|
||||||
|
glucan
|
||||||
|
glutenin
|
||||||
|
glycaemic
|
||||||
|
graphicspath
|
||||||
|
graphicx
|
||||||
|
hangfrom
|
||||||
|
heterofermentative
|
||||||
|
hfill
|
||||||
|
hidelinks
|
||||||
|
hlocre
|
||||||
|
hlorange
|
||||||
|
hoffset
|
||||||
|
homofermentative
|
||||||
|
howpublished
|
||||||
|
hrule
|
||||||
|
hrulefill
|
||||||
|
hscale
|
||||||
|
hspace
|
||||||
|
htb
|
||||||
|
htp
|
||||||
|
hydrations
|
||||||
|
hyperref
|
||||||
|
hypersetup
|
||||||
|
ie
|
||||||
|
ifdefined
|
||||||
|
ifnextchar
|
||||||
|
ifthenelse
|
||||||
|
ifwidelayout
|
||||||
|
includegraphics
|
||||||
|
industrialisation
|
||||||
|
injera
|
||||||
|
isaccessible
|
||||||
|
jalapeño
|
||||||
|
jordan
|
||||||
|
kao
|
||||||
|
karl
|
||||||
|
keepaspectratio
|
||||||
|
kitchenaid
|
||||||
|
labelled
|
||||||
|
lacto
|
||||||
|
le
|
||||||
|
leavevmode
|
||||||
|
leftmargin
|
||||||
|
lievito
|
||||||
|
linkcolor
|
||||||
|
linktoc
|
||||||
|
listname
|
||||||
|
lll
|
||||||
|
loafpan
|
||||||
|
loc
|
||||||
|
longtable
|
||||||
|
madre
|
||||||
|
make4ht
|
||||||
|
makebox
|
||||||
|
makecell
|
||||||
|
makefile
|
||||||
|
marginparsep
|
||||||
|
marginparwidth
|
||||||
|
mbox
|
||||||
|
microbiome
|
||||||
|
microtype
|
||||||
|
mie
|
||||||
|
milho
|
||||||
|
mixins
|
||||||
|
mtocshift
|
||||||
|
naïve
|
||||||
|
newcommand
|
||||||
|
newif
|
||||||
|
newlength
|
||||||
|
nextline
|
||||||
|
niger
|
||||||
|
nobreakspace
|
||||||
|
nordic
|
||||||
|
nuklei
|
||||||
|
numwidth
|
||||||
|
ocgcolorlinks
|
||||||
|
oddsidemargin
|
||||||
|
outcompete
|
||||||
|
outcompeted
|
||||||
|
outcompeting
|
||||||
|
overferment
|
||||||
|
overfermented
|
||||||
|
overproof
|
||||||
|
overproofing
|
||||||
|
pHvalue
|
||||||
|
paperwidth
|
||||||
|
parbaked
|
||||||
|
parbox
|
||||||
|
parmesan
|
||||||
|
pathreplacing
|
||||||
|
pdfinfo
|
||||||
|
pentosans
|
||||||
|
ph
|
||||||
|
pinkpic
|
||||||
|
png
|
||||||
|
poolish
|
||||||
|
pre
|
||||||
|
preshape
|
||||||
|
preshaping
|
||||||
|
puré
|
||||||
|
puréd
|
||||||
|
purée
|
||||||
|
pâte
|
||||||
|
raffaella
|
||||||
|
redpic
|
||||||
|
renewcommand
|
||||||
|
rl
|
||||||
|
roti
|
||||||
|
saccharomyces
|
||||||
|
sanfranciscensis
|
||||||
|
sanfrancisco
|
||||||
|
saprotrophic
|
||||||
|
sbseries
|
||||||
|
scalebox
|
||||||
|
scandinavia
|
||||||
|
scorings
|
||||||
|
selectfont
|
||||||
|
semibold
|
||||||
|
sep
|
||||||
|
setchapterimage
|
||||||
|
setchapterpreamble
|
||||||
|
setchapterstyle
|
||||||
|
setlength
|
||||||
|
setlist
|
||||||
|
setmainfont
|
||||||
|
setmonofont
|
||||||
|
setsansfont
|
||||||
|
setuptoc
|
||||||
|
sffamily
|
||||||
|
shelflife
|
||||||
|
siunitx
|
||||||
|
sj
|
||||||
|
smedt
|
||||||
|
softbuns
|
||||||
|
spelt
|
||||||
|
sporulated
|
||||||
|
sporulates
|
||||||
|
sporulating
|
||||||
|
sporulation
|
||||||
|
standmixer
|
||||||
|
stollen
|
||||||
|
sublicense
|
||||||
|
sug
|
||||||
|
switzerland
|
||||||
|
teff
|
||||||
|
tex
|
||||||
|
textwidth
|
||||||
|
th
|
||||||
|
theadfont
|
||||||
|
thechapter
|
||||||
|
thrillist
|
||||||
|
tikz
|
||||||
|
tikzpicture
|
||||||
|
timeframe
|
||||||
|
timespan
|
||||||
|
tocline
|
||||||
|
toolchain
|
||||||
|
touchpoints
|
||||||
|
transformative
|
||||||
|
uk
|
||||||
|
unchlorinated
|
||||||
|
underfermented
|
||||||
|
underproofed
|
||||||
|
url
|
||||||
|
urlcolor
|
||||||
|
usepackage
|
||||||
|
vfDIfkqBCuk
|
||||||
|
vienna
|
||||||
|
vinifera
|
||||||
|
viscoelastic
|
||||||
|
vscale
|
||||||
|
vspace
|
||||||
|
wahlfeld
|
||||||
|
wait1
|
||||||
|
wait2
|
||||||
|
wetted
|
||||||
|
xsep
|
||||||
|
xshift
|
||||||
|
yYkTrGHNW2w
|
||||||
|
yeasted
|
||||||
|
yellowpic
|
||||||
|
yogurty
|
||||||
|
ysep
|
||||||
|
yshift
|
||||||
|
yudane
|
||||||
|
ziplock
|
||||||
|
Örjan
|
||||||
|
Łukasz
|
||||||
@@ -15,6 +15,8 @@
|
|||||||
--padding-hamburger: 5px;
|
--padding-hamburger: 5px;
|
||||||
--c-beige: #F3EDE6;
|
--c-beige: #F3EDE6;
|
||||||
--border-radius: 7px;
|
--border-radius: 7px;
|
||||||
|
--image-padding: 14px;
|
||||||
|
--image-background: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1200px){
|
@media (min-width: 1200px){
|
||||||
@@ -385,11 +387,6 @@ h4 {
|
|||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
img[alt~="PIC"], iframe, a img {
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
border: 2px solid var(--c-black);
|
|
||||||
}
|
|
||||||
|
|
||||||
main.main-content, div.footnotes, main.titlepage {
|
main.main-content, div.footnotes, main.titlepage {
|
||||||
background-color: var(--c-beige);
|
background-color: var(--c-beige);
|
||||||
}
|
}
|
||||||
@@ -478,10 +475,6 @@ nav.TOC span:hover, nav.TOC span:hover *, nav.TOC span.chapterToc.selected, nav.
|
|||||||
}
|
}
|
||||||
|
|
||||||
p.flowchart-image-wrapper {
|
p.flowchart-image-wrapper {
|
||||||
background: white;
|
|
||||||
padding: 20px;
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
border: 2px solid var(--c-black);
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
@@ -528,6 +521,19 @@ blockquote {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
figure.float, div.figure, figure.figure {
|
||||||
|
padding: var(--image-padding);
|
||||||
|
background: var(--image-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
figure.figure p.noindent {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flowchart-image-wrapper {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.header {
|
.header {
|
||||||
display: none;
|
display: none;
|
||||||
@@ -572,10 +578,6 @@ blockquote {
|
|||||||
background: var(--c-black-background);
|
background: var(--c-black-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
p.flowchart-image-wrapper {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-entry:hover {
|
.menu-entry:hover {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
@@ -593,4 +595,8 @@ blockquote {
|
|||||||
border: none;
|
border: none;
|
||||||
border-radius: 0px;
|
border-radius: 0px;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
figure.float, div.figure, figure.figure {
|
||||||
|
padding: calc(var(--image-padding) / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,6 @@ Anna G.,
|
|||||||
Anonnn,
|
Anonnn,
|
||||||
Anthony Atkinson,
|
Anthony Atkinson,
|
||||||
Aurore,
|
Aurore,
|
||||||
BTSkete,
|
|
||||||
Beatriz,
|
Beatriz,
|
||||||
Bee,
|
Bee,
|
||||||
Ben Davies,
|
Ben Davies,
|
||||||
@@ -23,6 +22,7 @@ Blixikan,
|
|||||||
Blusie,
|
Blusie,
|
||||||
Brigitta,
|
Brigitta,
|
||||||
Brockman,
|
Brockman,
|
||||||
|
BTSkete,
|
||||||
C Fazio,
|
C Fazio,
|
||||||
Cal Kotz,
|
Cal Kotz,
|
||||||
Case,
|
Case,
|
||||||
@@ -36,12 +36,12 @@ Christiane B,
|
|||||||
Christine,
|
Christine,
|
||||||
Chrysanna,
|
Chrysanna,
|
||||||
Colleen Guidone,
|
Colleen Guidone,
|
||||||
DKitSeattle,
|
|
||||||
Danieel,
|
Danieel,
|
||||||
Daniel,
|
Daniel,
|
||||||
David,
|
David,
|
||||||
Dee,
|
Dee,
|
||||||
Desiree S,
|
Desiree S,
|
||||||
|
DKitSeattle,
|
||||||
Douglas Penna,
|
Douglas Penna,
|
||||||
Drey,
|
Drey,
|
||||||
Duivelsjong,
|
Duivelsjong,
|
||||||
@@ -68,6 +68,7 @@ Jessicat,
|
|||||||
Jimjo,
|
Jimjo,
|
||||||
John E Bergman,
|
John E Bergman,
|
||||||
Jonathan,
|
Jonathan,
|
||||||
|
JorisBelmans,
|
||||||
Jose Lausuch,
|
Jose Lausuch,
|
||||||
Judith Roth,
|
Judith Roth,
|
||||||
Julian,
|
Julian,
|
||||||
@@ -140,7 +141,7 @@ Sven,
|
|||||||
Tbonewilly,
|
Tbonewilly,
|
||||||
Thales Mello,
|
Thales Mello,
|
||||||
Therealbruce,
|
Therealbruce,
|
||||||
Tracy \& Paul Will,
|
Tracy and Paul Will,
|
||||||
Usliv,
|
Usliv,
|
||||||
Vassil Dichev,
|
Vassil Dichev,
|
||||||
Vladimir Smirnov,
|
Vladimir Smirnov,
|
||||||
|
|||||||
|
@@ -7,7 +7,7 @@
|
|||||||
100 / 212 & Water evaporation & Water begins to evaporate and inflates your dough's alveoli.\\
|
100 / 212 & Water evaporation & Water begins to evaporate and inflates your dough's alveoli.\\
|
||||||
118 / 244 & Acetic acid evaporation & The vinegary tasting acid starts to evaporate, sourness decreases.\\
|
118 / 244 & Acetic acid evaporation & The vinegary tasting acid starts to evaporate, sourness decreases.\\
|
||||||
122 / 252 & Lactic acid evaporation & The dairy tasting lactic acid begins to evaporate, sourness further decreases.\\
|
122 / 252 & Lactic acid evaporation & The dairy tasting lactic acid begins to evaporate, sourness further decreases.\\
|
||||||
140 / 284 & Maillard reaction & The maillard reaction starts to deform starches and proteins.
|
140 / 284 & Maillard reaction & The Maillard reaction starts to deform starches and proteins.
|
||||||
The dough starts browning.\\
|
The dough starts browning.\\
|
||||||
170 / 338 & Caramelization & Remaining sugars begin to caramelise giving your bread a distinct flavor.\\ \bottomrule
|
170 / 338 & Caramelization & Remaining sugars begin to caramelise giving your bread a distinct flavor.\\ \bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
%TODO: Alignement is not great
|
%TODO: Alignment is not great
|
||||||
\begin{tabular}{@{}lll@{}}
|
\begin{tabular}{@{}lll@{}}
|
||||||
\toprule
|
\toprule
|
||||||
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
|
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ the surface of the apple a lot quicker. When replicating this with a bread dough
|
|||||||
I~would achieve less oven spring.
|
I~would achieve less oven spring.
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\includegraphics[width=\textwidth]{apple-experiment-surface-temperatures}
|
\input{plots/fig-temperature-surface.tex}
|
||||||
\caption[Surface temperature versus steaming technique]{A chart showing how
|
\caption[Surface temperature versus steaming technique]{A chart showing how
|
||||||
the temperature of the apple's surface changes with different
|
the temperature of the apple's surface changes with different
|
||||||
steaming techniques.}%
|
steaming techniques.}%
|
||||||
@@ -333,7 +333,7 @@ I~would achieve less oven spring.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\includegraphics[width=\textwidth]{apple-experiment-ambient-temperatures}
|
\input{plots/fig-temperature-ambient.tex}
|
||||||
\caption[Dutch Oven temperature versus steaming technique]{This figure shows
|
\caption[Dutch Oven temperature versus steaming technique]{This figure shows
|
||||||
how the ambient temperatures inside of the Dutch oven change depending
|
how the ambient temperatures inside of the Dutch oven change depending
|
||||||
on the steaming technique that is used.}%
|
on the steaming technique that is used.}%
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ should dissipate within 12--24~hours, and you have
|
|||||||
the added advantage of automatically having
|
the added advantage of automatically having
|
||||||
room-temperature water.
|
room-temperature water.
|
||||||
|
|
||||||
Make sure to use whole grain flour (whole-wheat, whole-rye, etc.).
|
Make sure to use whole grain flour (whole-wheat, whole-rye, \etc{}).
|
||||||
These flours have more natural wild yeast and
|
These flours have more natural wild yeast and
|
||||||
bacterial contamination. Making a starter
|
bacterial contamination. Making a starter
|
||||||
from just white flour sometimes doesn't work.
|
from just white flour sometimes doesn't work.
|
||||||
@@ -188,7 +188,7 @@ protecting your sourdough starter from aerobic mold entering through
|
|||||||
the top.
|
the top.
|
||||||
|
|
||||||
\begin{figure}[!htb]
|
\begin{figure}[!htb]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.5\textwidth]{sourdough-starter-hooch}
|
\includegraphics[width=0.5\textwidth]{sourdough-starter-hooch}
|
||||||
\caption[Hooch] {Hooch building on top of a sourdough
|
\caption[Hooch] {Hooch building on top of a sourdough
|
||||||
starter~\cite{liquid+on+starter}.}%
|
starter~\cite{liquid+on+starter}.}%
|
||||||
@@ -763,20 +763,3 @@ is concentrated extracted gluten from wheat flour.
|
|||||||
|
|
||||||
I~recommend that you add around \qty{5}{\gram} of wheat gluten for every
|
I~recommend that you add around \qty{5}{\gram} of wheat gluten for every
|
||||||
\qty{100}{\gram} of flour that you are using.
|
\qty{100}{\gram} of flour that you are using.
|
||||||
|
|
||||||
\subsection[Incorporating seeds into the dough]{What's the best stage to
|
|
||||||
incorporate inclusions (seeds) into the dough?}
|
|
||||||
|
|
||||||
You can include seeds directly at the start when mixing the dough. If you use
|
|
||||||
whole seeds such as wheat or rye kernels, soak them in water overnight and
|
|
||||||
then rinse them before adding them to the dough. This makes sure that they
|
|
||||||
are not crunchy and are soft enough when eating the bread. If you forgot to soak
|
|
||||||
them you can cook the seeds for 10~minutes in hot water. Rinse them with cold
|
|
||||||
water before adding them to your dough.
|
|
||||||
|
|
||||||
If you want to sweeten the dough, your best option is to add sugar during the
|
|
||||||
shaping stage. Sugar added too early in the process typically gets fermented until none of it
|
|
||||||
remains. Adjust your shaping technique a little bit and spread your sugar
|
|
||||||
mixture over a flattened-out dough. You can then roll the dough together,
|
|
||||||
incorporating layers of sugar.
|
|
||||||
|
|
||||||
|
|||||||
BIN
book/wheat-sourdough/aliquot-before-after.jpg
Normal file
|
After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 626 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@@ -45,7 +45,7 @@ that tastes much better than any store-bought bread.
|
|||||||
\section{The process}
|
\section{The process}
|
||||||
|
|
||||||
\begin{flowchart}[!htb]
|
\begin{flowchart}[!htb]
|
||||||
\centering
|
\centering
|
||||||
\input{figures/fig-wheat-sourdough-process.tex}
|
\input{figures/fig-wheat-sourdough-process.tex}
|
||||||
\caption{The typical process of making a wheat-based sourdough bread.}%
|
\caption{The typical process of making a wheat-based sourdough bread.}%
|
||||||
\label{fig:wheat-sourdough-process}
|
\label{fig:wheat-sourdough-process}
|
||||||
@@ -135,7 +135,7 @@ the microorganisms.
|
|||||||
Some people use a 1:1:1 ratio to refresh the starter. This would
|
Some people use a 1:1:1 ratio to refresh the starter. This would
|
||||||
be one part of the old starter (\qty{10}{\gram} for instance), 1 part of flour,
|
be one part of the old starter (\qty{10}{\gram} for instance), 1 part of flour,
|
||||||
and one part of water. I~think this is utter rubbish. As mentioned
|
and one part of water. I~think this is utter rubbish. As mentioned
|
||||||
your starter is a gigantic dough. You would never opt for a 1:1:1 ratio to
|
your starter is a miniature dough. You would never opt for a 1:1:1 ratio to
|
||||||
make dough. You might use a maximum of \qty{20}{\percent} starter to
|
make dough. You might use a maximum of \qty{20}{\percent} starter to
|
||||||
make dough. That's why I~advocate using a 1:5:5 ratio or a
|
make dough. That's why I~advocate using a 1:5:5 ratio or a
|
||||||
1:10:10 ratio depending on how ripe your starter is. As I~almost
|
1:10:10 ratio depending on how ripe your starter is. As I~almost
|
||||||
@@ -579,7 +579,8 @@ your gluten network transforms into a web-like structure. This is what
|
|||||||
traps the gases during the fermentation process~\cite{how+does+gluten+work}.
|
traps the gases during the fermentation process~\cite{how+does+gluten+work}.
|
||||||
|
|
||||||
\begin{figure}[!htb]
|
\begin{figure}[!htb]
|
||||||
\includegraphics[width=\textwidth]{dough-strength-sourdough-yeast}
|
\centering
|
||||||
|
\input{plots/fig-yeast-sourdough-strength.tex}
|
||||||
\caption[Dough strength over time without kneading]{A schematic
|
\caption[Dough strength over time without kneading]{A schematic
|
||||||
visualization of automatic gluten development. The doughs are not
|
visualization of automatic gluten development. The doughs are not
|
||||||
kneaded, just initially mixed. Note how dough strength deteriorates
|
kneaded, just initially mixed. Note how dough strength deteriorates
|
||||||
@@ -587,8 +588,6 @@ traps the gases during the fermentation process~\cite{how+does+gluten+work}.
|
|||||||
sourdough due to the bacteria's gluten proteolysis.}%
|
sourdough due to the bacteria's gluten proteolysis.}%
|
||||||
\label{fig:wheat-yeast-sourdough-degradation}
|
\label{fig:wheat-yeast-sourdough-degradation}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
% See https://www.figma.com/file/wTUVe6Nm2INOvT82mJhQur/Dough-strength-visualisation?node-id=0%3A1&t=fjdPvXYuJpsdQfWN-1 for
|
|
||||||
% the source of this visualization
|
|
||||||
|
|
||||||
The soaking process has to be extended the more whole-wheat flour is used.
|
The soaking process has to be extended the more whole-wheat flour is used.
|
||||||
The purpose of the wheat kernel's outer bran is to soak up water as fast
|
The purpose of the wheat kernel's outer bran is to soak up water as fast
|
||||||
@@ -792,8 +791,7 @@ My go-to method for beginners is to use an \emph{Aliquot jar}.
|
|||||||
The aliquot is a sample that you extract from your dough. The
|
The aliquot is a sample that you extract from your dough. The
|
||||||
sample is extracted after creating the initial dough strength.
|
sample is extracted after creating the initial dough strength.
|
||||||
You monitor the aliquot's size increase to judge the
|
You monitor the aliquot's size increase to judge the
|
||||||
level of fermentation of your main dough. The aliquot
|
level of fermentation of your main dough. As your
|
||||||
sample is extracted after creating dough strength. As your
|
|
||||||
dough ferments, so does the content of your aliquot jar. The moment your
|
dough ferments, so does the content of your aliquot jar. The moment your
|
||||||
sample reached a certain size, your main dough is ready
|
sample reached a certain size, your main dough is ready
|
||||||
to be shaped and proofed. The size increase you should
|
to be shaped and proofed. The size increase you should
|
||||||
@@ -913,7 +911,12 @@ as rough ballpark figures. Regardless, you need to find values
|
|||||||
that work for your setup.
|
that work for your setup.
|
||||||
|
|
||||||
Another limitation is the price. You will need to purchase
|
Another limitation is the price. You will need to purchase
|
||||||
a high-tech pH meter, ideally, a meter featuring a spearhead.
|
a high-tech pH meter, ideally, a meter featuring a spearhead
|
||||||
|
\footnote{Not every pH meter is suitable for measuring dough.
|
||||||
|
Please refer to the manual to make sure it is certified for
|
||||||
|
measuring the pH of liquid and semi-solid media. To receive
|
||||||
|
accurate pH readings further ensure that your pH meter
|
||||||
|
is properly calibrated.}.
|
||||||
This way you can directly poke the meter deep into the dough.
|
This way you can directly poke the meter deep into the dough.
|
||||||
At the same time, automated temperature adjustments are a
|
At the same time, automated temperature adjustments are a
|
||||||
feature to look out for. Depending on the temperature,
|
feature to look out for. Depending on the temperature,
|
||||||
@@ -1665,7 +1668,7 @@ An additional trick that can help you to combine the benefits
|
|||||||
of room temperature-proofing and easy cold-proofing scoring
|
of room temperature-proofing and easy cold-proofing scoring
|
||||||
is to place your dough in the freezer for 30~minutes before baking.
|
is to place your dough in the freezer for 30~minutes before baking.
|
||||||
Once you notice your dough is almost done proofing, move it to the
|
Once you notice your dough is almost done proofing, move it to the
|
||||||
freezer. The freezer will dry out the doughs's surface even further
|
freezer. The freezer will dry out the dough's surface even further
|
||||||
while also lowering its viscosity, making scoring easier.
|
while also lowering its viscosity, making scoring easier.
|
||||||
|
|
||||||
Another interesting trick is to bake your dough for 30 seconds without steam.
|
Another interesting trick is to bake your dough for 30 seconds without steam.
|
||||||
|
|||||||
6
makefile
@@ -5,6 +5,7 @@ DOCKER_CMD := docker run --rm -it -v $(PWD):/opt/repo --platform linux/x86_64 $(
|
|||||||
|
|
||||||
.PHONY: bake build_pdf build_docker_image push_docker_image validate website
|
.PHONY: bake build_pdf build_docker_image push_docker_image validate website
|
||||||
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
|
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
|
||||||
|
.PHONY: build_serif_pdf build_ebook booklet
|
||||||
|
|
||||||
# Dockers targets
|
# Dockers targets
|
||||||
build_docker_image:
|
build_docker_image:
|
||||||
@@ -24,11 +25,14 @@ build_pdf:
|
|||||||
$(DOCKER_CMD) "cd /opt/repo/book && make"
|
$(DOCKER_CMD) "cd /opt/repo/book && make"
|
||||||
|
|
||||||
bake:
|
bake:
|
||||||
$(DOCKER_CMD) "cd /opt/repo/book && make -j bake"
|
$(DOCKER_CMD) "cd /opt/repo/book && make bake"
|
||||||
|
|
||||||
website:
|
website:
|
||||||
$(DOCKER_CMD) "cd /opt/repo/book && make website"
|
$(DOCKER_CMD) "cd /opt/repo/book && make website"
|
||||||
|
|
||||||
|
booklet:
|
||||||
|
$(DOCKER_CMD) "cd /opt/repo/book && make build_booklet"
|
||||||
|
|
||||||
mrproper:
|
mrproper:
|
||||||
$(DOCKER_CMD) "cd /opt/repo/book && make mrproper"
|
$(DOCKER_CMD) "cd /opt/repo/book && make mrproper"
|
||||||
|
|
||||||
|
|||||||
@@ -730,7 +730,7 @@ class ModifyBuild
|
|||||||
doc.to_html
|
doc.to_html
|
||||||
end
|
end
|
||||||
|
|
||||||
# For some reason the depdency is missing a // in the url.
|
# For some reason the dependency is missing a // in the url.
|
||||||
def fix_js_dependency_link(text)
|
def fix_js_dependency_link(text)
|
||||||
text.gsub("https:/cdn.jsdelivr.net", "https://cdn.jsdelivr.net")
|
text.gsub("https:/cdn.jsdelivr.net", "https://cdn.jsdelivr.net")
|
||||||
end
|
end
|
||||||
|
|||||||