Compare commits
167 Commits
clarify-ba
...
a9dec4047f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9dec4047f | ||
|
|
8b83e1c5b6 | ||
|
|
25f91cd7a1 | ||
|
|
5bb5d8a48a | ||
|
|
f64fc55977 | ||
|
|
3e02af03ad | ||
|
|
7da9f5b0ad | ||
|
|
19df1546f0 | ||
|
|
6b1d2c3de6 | ||
|
|
b2db06da5b | ||
|
|
47c2367e29 | ||
|
|
09e6e57bcc | ||
|
|
227740c5eb | ||
|
|
01a4d1d873 | ||
|
|
75357db7bb | ||
|
|
502a3f45c6 | ||
|
|
4c01b54039 | ||
|
|
f398c22843 | ||
|
|
b2a016ad10 | ||
|
|
680e91b9c1 | ||
|
|
8fa4869f23 | ||
|
|
3563f7a74a | ||
|
|
efc999f2c7 | ||
|
|
f77ff0fba5 | ||
|
|
8fce8a5abd | ||
|
|
c66e80161d | ||
|
|
9e70d91066 | ||
|
|
64d0ca53a6 | ||
|
|
2fa1e39f83 | ||
|
|
af5285efb1 | ||
|
|
f63d444c33 | ||
|
|
28affc645a | ||
|
|
7db993a176 | ||
|
|
a57da7815a | ||
|
|
3e602fa71f | ||
|
|
cbf67246e5 | ||
|
|
263eb74afe | ||
|
|
e0b99edff6 | ||
|
|
62880e7ff2 | ||
|
|
157cbb03b7 | ||
|
|
d37e2aa4bc | ||
|
|
9eaff81c49 | ||
|
|
6a2b334c2a | ||
|
|
14e1e7ae2e | ||
|
|
1b5d23a348 | ||
|
|
98a3360348 | ||
|
|
1b90bf669b | ||
|
|
427dcbfa37 | ||
|
|
eea69bb854 | ||
|
|
c3904d2f14 | ||
|
|
e77e7e5260 | ||
|
|
8a3b237f21 | ||
|
|
9ad48ea1a3 | ||
|
|
fe667b82e8 | ||
|
|
19029daf8a | ||
|
|
fa157c350e | ||
|
|
3069b5ff7c | ||
|
|
3a1b247bc4 | ||
|
|
c99efe6f20 | ||
|
|
0a0d227611 | ||
|
|
bbeef2d10f | ||
|
|
d7b2cb6be4 | ||
|
|
d6c862eea4 | ||
|
|
ae7c7fda8f | ||
|
|
1ab7970708 | ||
|
|
221119e6d0 | ||
|
|
bd1050d75d | ||
|
|
2afe5cff49 | ||
|
|
1166f6d925 | ||
|
|
bf6a319e8f | ||
|
|
a87cc723a6 | ||
|
|
127ca9423e | ||
|
|
54461ec45e | ||
|
|
35a0a89765 | ||
|
|
99e96c768f | ||
|
|
727cf0a16a | ||
|
|
8efa4fb424 | ||
|
|
48916a5eb7 | ||
|
|
0c0c5db7fe | ||
|
|
b4bce912b3 | ||
|
|
2429ceb825 | ||
|
|
cb73bf735c | ||
|
|
14509a9f4a | ||
|
|
8c5248e455 | ||
|
|
8952b62289 | ||
|
|
324585c172 | ||
|
|
eba366253c | ||
|
|
6efa956165 | ||
|
|
c5019a19f6 | ||
|
|
5753fdcd26 | ||
|
|
e9f6dba1f5 | ||
|
|
99de1839c6 | ||
|
|
d1ca7b8bb9 | ||
|
|
9462f0319e | ||
|
|
6202f44881 | ||
|
|
32d600005c | ||
|
|
d78c29ba66 | ||
|
|
60928bc404 | ||
|
|
e00f853063 | ||
|
|
2dea80a29c | ||
|
|
6eba9635dd | ||
|
|
7804bd8df1 | ||
|
|
cf49ab1ccc | ||
|
|
8743660c0a | ||
|
|
69acb8c04d | ||
|
|
972edd651b | ||
|
|
d462e5adba | ||
|
|
c6a5038d2f | ||
|
|
b57e9ba8c0 | ||
|
|
9adb64c1ee | ||
|
|
d2d79cd992 | ||
|
|
ef92cac0a1 | ||
|
|
a5b1fa93dc | ||
|
|
b588b55c1a | ||
|
|
78cf73bb2c | ||
|
|
16f3fe7338 | ||
|
|
e27e414291 | ||
|
|
d763c78f2f | ||
|
|
85144e4678 | ||
|
|
7565b83dde | ||
|
|
481a041d5d | ||
|
|
0c7756bc76 | ||
|
|
b03a81791b | ||
|
|
e339e73c62 | ||
|
|
a7564e93e3 | ||
|
|
9c18bfcff2 | ||
|
|
abd3a23486 | ||
|
|
296461f13d | ||
|
|
424f4c84c6 | ||
|
|
12bfae0710 | ||
|
|
aa2c80a048 | ||
|
|
e7c4590a0f | ||
|
|
ce2f210f3a | ||
|
|
2b34224954 | ||
|
|
6ef6901348 | ||
|
|
2daba55c3e | ||
|
|
ec589630ed | ||
|
|
792e1af0ef | ||
|
|
7c1feb3699 | ||
|
|
e82475bd74 | ||
|
|
2e4fae3d13 | ||
|
|
07a4657ee8 | ||
|
|
120677b8d7 | ||
|
|
cf935771d6 | ||
|
|
1b99fbe1ca | ||
|
|
044ed02a7d | ||
|
|
67adc3b54f | ||
|
|
e5bea976cd | ||
|
|
ee5e47de63 | ||
|
|
94c775d511 | ||
|
|
11ff3ca043 | ||
|
|
0c67489980 | ||
|
|
17bc88615f | ||
|
|
ebdf0ad3fc | ||
|
|
37d7ec12a8 | ||
|
|
a0bff5442f | ||
|
|
3d16d58817 | ||
|
|
24a9f5c31e | ||
|
|
5ba0b99b4e | ||
|
|
d371b11686 | ||
|
|
99cf6db279 | ||
|
|
66ae206cdc | ||
|
|
7d48364d80 | ||
|
|
2d0e0b2d73 | ||
|
|
52a35bb61d | ||
|
|
5d95dd4f34 | ||
|
|
8920775067 |
14
.github/workflows/release-book-website.yml
vendored
@@ -64,7 +64,7 @@ jobs:
|
||||
options: -v ${{ github.workspace }}:/app
|
||||
run: |
|
||||
cd /app/book
|
||||
make -j bake
|
||||
make -j -O bake
|
||||
- name: Release baked book to S3
|
||||
uses: shallwefootball/s3-upload-action@master
|
||||
with:
|
||||
@@ -74,21 +74,13 @@ jobs:
|
||||
source_dir: book/release
|
||||
destination_dir: release
|
||||
- name: Upload book Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: books
|
||||
path: |
|
||||
book/book_serif/book.log
|
||||
book/book_serif/book.pdf
|
||||
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
|
||||
uses: shallwefootball/s3-upload-action@master
|
||||
with:
|
||||
@@ -98,7 +90,7 @@ jobs:
|
||||
source_dir: website/static_website_html
|
||||
destination_dir: static_html_root
|
||||
- name: Upload website Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website
|
||||
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
|
||||
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- main
|
||||
pull_request:
|
||||
branches:
|
||||
- '**'
|
||||
|
||||
env:
|
||||
DOCKER_IMAGE: ghcr.io/${{ github.repository }}:latest
|
||||
@@ -27,32 +33,24 @@ jobs:
|
||||
run: |
|
||||
cd /app/book
|
||||
make printvars
|
||||
- name: Test baking the release versions
|
||||
- name: Test baking the release versions and website
|
||||
uses: addnab/docker-run-action@v3
|
||||
with:
|
||||
image: ${{ env.DOCKER_IMAGE }}
|
||||
options: -v ${{ github.workspace }}:/app
|
||||
run: |
|
||||
cd /app/book
|
||||
make -j build_serif_pdf build_ebook
|
||||
make -j -O serif ebook website
|
||||
- name: Upload book Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: books
|
||||
path: |
|
||||
book/book_serif/book.log
|
||||
book/book_serif/book.pdf
|
||||
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
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: website
|
||||
path: website/static_website_html
|
||||
|
||||
4
.gitignore
vendored
@@ -15,7 +15,6 @@
|
||||
*.dlog
|
||||
*.bak
|
||||
*.opf
|
||||
.DS_Store
|
||||
book/book.out
|
||||
.vscode/
|
||||
book/bookch*
|
||||
@@ -42,3 +41,6 @@ book/epub/
|
||||
book/book-epub/
|
||||
book/bw-book-epub/*
|
||||
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
|
||||
RUN cat /etc/*release*
|
||||
|
||||
# Install base depdendencies
|
||||
# Install base dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install --yes -y --no-install-recommends \
|
||||
sudo \
|
||||
@@ -18,7 +18,7 @@ RUN apt-get update && \
|
||||
zip \
|
||||
git \
|
||||
wget \
|
||||
ruby3.1 \
|
||||
ruby3.3 \
|
||||
ruby-dev \
|
||||
imagemagick \
|
||||
rsync \
|
||||
|
||||
16
README.md
@@ -53,7 +53,7 @@ make
|
||||
```
|
||||
|
||||
If you want to 🍞 bake all the versions including ebook variants (.pdf, .epub
|
||||
in colour and size optimized Black&White), run:
|
||||
in colour and size optimized Black&White, as well as website), run:
|
||||
|
||||
```console
|
||||
cd book/
|
||||
@@ -62,6 +62,8 @@ make -j bake
|
||||
|
||||
You can check the files in the folder `book/release/`
|
||||
|
||||
Please note that while everything should build without any errors but you will get a fair amount of warnings, especially when building the ebook/website.
|
||||
|
||||
You can get some help on building various versions with:
|
||||
|
||||
```console
|
||||
@@ -80,10 +82,20 @@ There's an additional enhanced accessibility version using a sans-serif font:
|
||||
* [Download compiled sans-serif .pdf version](https://www.the-bread-code.io/book-sans-serif.pdf)
|
||||
|
||||
An additional black and white ebook is provided with a greatly reduced file
|
||||
size. This shrinks the book from more than 50MB down to ~5MB:
|
||||
size. This shrinks the book from more than 20MB down to ~5MB:
|
||||
|
||||
* [Download compiled B&W .epub version](https://www.the-bread-code.io/bw-book.epub)
|
||||
|
||||
For those who prefer a concise reference (about 15 pages), we offer a "too long;didn't read" (TL;DR)
|
||||
version. This condensed guide contains the essential flowcharts, crucial information,
|
||||
and space for your notes - perfect for quick kitchen reference.
|
||||
It provides the key information you need without reading the complete book.
|
||||
|
||||
* [Read TL;DR version on your device](https://the-bread-code.io/book-tldr-digital.pdf)
|
||||
* [Download TL;DR version for printing](https://the-bread-code.io/book-tldr-print.pdf)
|
||||
|
||||
We recommend using double-sided printing if your printer supports it.
|
||||
|
||||
## Online HTML version
|
||||
|
||||
Head over to [https://www.the-sourdough-framework.com](https://www.the-sourdough-framework.com)
|
||||
|
||||
4
book/abbreviations.tex
Normal file
@@ -0,0 +1,4 @@
|
||||
% Common abbreviations
|
||||
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\newcommand{\etc}{etc\@ifnextchar.{}{.\@}}
|
||||
|
Before Width: | Height: | Size: 369 KiB |
@@ -1,5 +1,5 @@
|
||||
\chapter{Baking}%
|
||||
\label{chapter:baking}
|
||||
\label{ch:baking}
|
||||
\begin{quoting}
|
||||
Baking refers to the part of the process where you are loading your dough into
|
||||
the oven\footnote{While some breads like flatbreads could also be baked on the
|
||||
@@ -18,12 +18,11 @@ rise, this is called oven spring. Your bread starts to build a crust of
|
||||
gel-like consistency, the crust is still extensible and can be stretched.
|
||||
|
||||
\begin{table}[htp!]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-baking-process-stages.tex}
|
||||
\caption[Stages of dough during baking]{The different stages that
|
||||
your dough undergoes during the baking process.}%
|
||||
\label{tab:baking-stages}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
At around \qty{60}{\degreeCelsius} (\qty{140}{\degF}) the microbes in your dough start to die.
|
||||
@@ -69,7 +68,7 @@ full acidity? What if you were to just completely get rid of the acetic
|
||||
acid? How would the taste change?
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{baking-experiment-temperatures.png}
|
||||
\input{plots/fig-temperature-surface.tex}
|
||||
\caption[Surface temperature for different steaming methods]{This
|
||||
chart shows how surface temperatures change using different steaming
|
||||
methods. In this case I~used a Dutch oven and an apple as dough
|
||||
@@ -177,12 +176,11 @@ way.
|
||||
|
||||
\section{Building up steam}
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-baking-process.tex}
|
||||
\caption[Different steaming methods]{A schematic visualization of the baking
|
||||
process using different sources of steam in a home oven.}%
|
||||
\label{fig:baking-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
@@ -212,7 +210,7 @@ way.
|
||||
\end{figure}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-dutch-oven-process.tex}
|
||||
\caption[Baking process with a dutch oven]{A visualization of the baking
|
||||
process using a dutch oven (DO). The dough is steamed for the first half
|
||||
@@ -221,7 +219,6 @@ way.
|
||||
personal preference. Some bakers prefer a lighter crust and others a
|
||||
darker.}%
|
||||
\label{fig:dutch-oven-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Dutch ovens are an ideal way to bake with a lot of
|
||||
@@ -283,12 +280,11 @@ created from the dough and water source stays
|
||||
around your dough.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-inverted-tray-method.tex}
|
||||
\caption[Inverted tray baking process]{A schematic visualization the
|
||||
inverted tray baking method that works great for home ovens.}%
|
||||
\label{fig:inverted-tray-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
|
||||
@@ -341,11 +337,10 @@ crust color. In my case this is another 15--25~minutes typically.
|
||||
\section{Conclusions}
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-oven-baking-overview.tex}
|
||||
\caption[Different oven types]{An overview of different oven types and their
|
||||
different baking methods.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Depending on your home oven, a different method
|
||||
|
||||
@@ -9,17 +9,18 @@ learn more about the yeast and bacterial microorganisms involved.
|
||||
\end{quoting}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{infographic-enzymes}
|
||||
\caption[Interaction of amylases and flour]{How amylases and proteases
|
||||
interact with flour.}%
|
||||
\label{infographic-enzymes}
|
||||
\label{fig:infographic-enzymes}
|
||||
\end{figure}
|
||||
|
||||
\section{Enzymatic reactions}
|
||||
|
||||
To understand the many enzymatic reactions that take place when flour
|
||||
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,
|
||||
reproduce. Each seed contains the embryo of another plant, and must
|
||||
@@ -43,7 +44,7 @@ activity so that it can thrive in its new environment.
|
||||
Of course, a ground flour can no longer sprout. But the enzymes that
|
||||
trigger this process are still present. That's why it's important not to
|
||||
mill grains at too high a temperature, as doing so could damage some of
|
||||
these enzymes\footnote{In a recent
|
||||
these enzymes\footnote{In a recent
|
||||
study~\cite{milling+commercial+home+mill+comparison} tests have shown that
|
||||
milling flour
|
||||
at home with a small mill had no significant negative impact on the resulting
|
||||
@@ -75,12 +76,13 @@ is used to create sugars out of the starch to then produce more plant matter.
|
||||
Normally,
|
||||
the microorganisms on the surface of the grain can't consume the freed maltose
|
||||
molecules, which remain hidden inside the germ. But as we grind the flour, a
|
||||
feeding frenzy takes place. Generally, the warmer the temperature, the faster
|
||||
this reaction occurs. That's why a long fermentation is key to making great
|
||||
bread. It takes time for the amylase to break down most of the starch into
|
||||
simple sugars, which are not only consumed by the yeast but are also essential
|
||||
to the \emph{Maillard reaction}, responsible for enhanced browning during the
|
||||
baking process.
|
||||
feeding frenzy takes place. Generally, the warmer the temperature, the faster
|
||||
this reaction occurs. However, it takes time for the amylase
|
||||
to break down most of the starch into simple sugars---which are not only
|
||||
consumed by the yeast but are also
|
||||
essential to the \emph{Maillard reaction}---responsible for
|
||||
enhanced browning during the baking process.
|
||||
That's why a long fermentation is key to making great bread.
|
||||
|
||||
If you're a hobby brewer, you'll know that it's important to keep your beer at
|
||||
certain temperatures to allow the different amylases to convert the contained
|
||||
@@ -176,13 +178,13 @@ gluten content, however, my bread always turned out great.
|
||||
|
||||
At the time, I~utilized an extended autolyse, which is just a fancy word for
|
||||
mixing flour and water in advance and then letting the mixture sit. Most
|
||||
recipes call for it as the process gives the dough an enzymatic head start, and
|
||||
in general it's a great idea. However, as an equally effective alternative,
|
||||
you could simply reduce the amount of leavening agent used --- in the case of
|
||||
sourdough, this would be your starter. This would allow the same biochemical
|
||||
reactions to occur at roughly the same rate without requiring you to mix your
|
||||
dough several times. My whole-wheat game improved dramatically after I~stopped
|
||||
autolysing my doughs.
|
||||
recipes call for it as the process gives the dough an enzymatic head start,
|
||||
and in general it's a great idea. However, as an equally effective
|
||||
alternative, you could simply reduce the amount of leavening agent used---in
|
||||
the case of sourdough, this would be your starter. This would allow the same
|
||||
biochemical reactions to occur at roughly the same rate without requiring you
|
||||
to mix your dough several times. My whole-wheat game improved dramatically
|
||||
after I~stopped autolysing my doughs.
|
||||
|
||||
Now that I've had time to think about it, the result I~observed makes sense.
|
||||
In nature, the outer parts of the seed come into contact with water first, and
|
||||
@@ -190,17 +192,19 @@ only after penetrating this barrier would the water slowly find its way to the
|
||||
center of the grain. The seed needs to sprout first to outcompete other nearby
|
||||
seeds, requiring water to enter quickly. Yet the seed must also defend itself
|
||||
against animals and potentially hazardous bacteria and fungi, requiring some
|
||||
barrier to protect the embryo inside. A way for the plant to achieve both goals
|
||||
would be for most of the enzymes to exist in the outer parts of the hull. As a
|
||||
result, they are activated first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a
|
||||
barrier to protect the embryo inside. A way for the plant to achieve both
|
||||
goals would be for most of the enzymes to exist in the outer parts of the
|
||||
hull. As a result, they are activated
|
||||
first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a
|
||||
little bit of whole flour to your dough, you should be able to significantly
|
||||
improve the enzymatic activity of your dough. That's why, for plain white flour
|
||||
doughs, I~usually add 10\textendash20\% whole-wheat flour.
|
||||
improve the enzymatic activity of your dough. That's why, for plain white
|
||||
flour doughs, I~usually add \qtyrange{10}{20}{\percent} whole-wheat flour.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{whole-wheat-crumb}
|
||||
\caption{A whole-wheat sourdough bread.}%
|
||||
\label{whole-wheat-crumb}
|
||||
\label{fig:whole-wheat-crumb}
|
||||
\end{figure}
|
||||
|
||||
By understanding the two key enzymes \emph{amylase} and \emph{protease}, you
|
||||
@@ -213,22 +217,20 @@ tweak just by adjusting the speed of your dough's fermentation.
|
||||
|
||||
Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
|
||||
can reproduce through either budding or by building spores. The spores are
|
||||
incredibly tiny and resistant to external factors. Scientists have found undamaged
|
||||
spores that are hundreds of million years old. There are a wide variety of
|
||||
species --- so far, about \num{1500}
|
||||
have been identified. Unlike other members of the fungi kingdom such as mold,
|
||||
yeasts do not ordinarily create a mycelium
|
||||
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
|
||||
exception, skip ahead to the end of this section on
|
||||
page~\pageref{aggressive-yeast}.}
|
||||
incredibly tiny and resistant to external factors. Scientists have found
|
||||
undamaged spores that are hundreds of million years old. There are a wide
|
||||
variety of species---so far, about \num{1500} have been identified. Unlike
|
||||
other members of the fungi kingdom such as mold, yeasts do not ordinarily
|
||||
create a mycelium network~\cite{molecular+mechanisms+yeast}.\footnote{For one
|
||||
interesting exception, skip ahead to the end of this section on
|
||||
page~\pageref{sec:aggressive-yeast}.}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{saccharomyces-cerevisiae-microscope}
|
||||
\caption[Brewer's yeast]{Saccharomyces cerevisiae: Brewer's yeast under the
|
||||
microscope.}%
|
||||
\label{saccharomyces-cerevisiae-microscope}
|
||||
\end{center}
|
||||
\label{fig:saccharomyces-cerevisiae-microscope}
|
||||
\end{figure}
|
||||
|
||||
Yeasts are saprotrophic fungi. This means that they do not produce their own
|
||||
@@ -323,7 +325,7 @@ inoculated with some of the 150 different wild yeast strains isolated from the
|
||||
leaves. They found that when the wound was inoculated with yeast, the grape
|
||||
sustained no significant damage~\cite{yeasts+biocontrol+agent}.
|
||||
|
||||
\phantomsection~\label{aggressive-yeast}%
|
||||
\phantomsection~\label{sec:aggressive-yeast}%
|
||||
Intriguingly, there was also an experiment performed that showed how brewer's
|
||||
yeast could function as an aggressive pathogen to grapevines. Initially, the
|
||||
yeast lived in symbiosis with the plants, but after the vines sustained heavy
|
||||
@@ -342,10 +344,11 @@ can significantly increase the shelf life of sourdough
|
||||
breads~\cite{shelflife+acidity}.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
|
||||
\caption[Bacteria under the microscope]{Fructilactobacillus
|
||||
sanfranciscensis under the microscope.}%
|
||||
\label{lactobacillus-franciscensis-microscope}
|
||||
\label{fig:lactobacillus-franciscensis-microscope}
|
||||
\end{figure}
|
||||
|
||||
There are two predominant types of acid produced in sourdough bread: lactic and
|
||||
@@ -369,14 +372,15 @@ Others have reported that bacteria feed on the byproducts of yeast and vice
|
||||
versa. This makes sense, as nature generally does a superb job of composting
|
||||
and breaking down biological matter~\cite{lactobacillus+sanfrancisco}.
|
||||
|
||||
I~have yet to find a proper source that clearly describes the symbiosis between
|
||||
yeast and bacteria, but my current understanding is that they both coexist and
|
||||
sometimes benefit each other, but not always. Yeast, for example, tolerate the
|
||||
acidic environment created by the surrounding bacteria and are thus protected
|
||||
from other pathogens. Meanwhile, however, other research demonstrates that both
|
||||
types of microorganisms produce compounds that prevent the other from
|
||||
metabolizing food --- an interesting observation, by the way, as it could help to
|
||||
identify additional antibiotics or fungicides~\cite{mold+lactic+acid+bacteria}.
|
||||
I~have yet to find a proper source that clearly describes the symbiosis
|
||||
between yeast and bacteria, but my current understanding is that they both
|
||||
coexist and sometimes benefit each other, but not always. Yeast, for example,
|
||||
tolerate the acidic environment created by the surrounding bacteria and are
|
||||
thus protected from other pathogens. Meanwhile, however, other research
|
||||
demonstrates that both types of microorganisms produce compounds that prevent
|
||||
the other from metabolizing food---an interesting observation, by the way, as
|
||||
it could help to identify additional antibiotics or
|
||||
fungicides~\cite{mold+lactic+acid+bacteria}.
|
||||
|
||||
In the past, I've tried cultivating mushrooms and observed the mycelium
|
||||
attempting to defend itself against the surrounding bacteria; both types of
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
}
|
||||
|
||||
\input{intro/preface}
|
||||
\input{intro/acknowledgements}
|
||||
\input{intro/acknowledgments}
|
||||
|
||||
\mainmatter
|
||||
|
||||
@@ -35,8 +35,6 @@
|
||||
|
||||
\input{bread-types/bread-types}
|
||||
|
||||
\chapter{Wheat sourdough}%
|
||||
\label{chapter:wheat-sourdough}
|
||||
\input{wheat-sourdough/wheat-sourdough}
|
||||
|
||||
\input{non-wheat-sourdough/non-wheat-sourdough}
|
||||
|
||||
@@ -17,14 +17,13 @@ of them. Some breads will require investment and technique, as depicted in
|
||||
Table~\ref{tab:bread-types-comparison}. Flatbread is probably the most
|
||||
accessible, least effort type of bread you can make. If you are a busy person
|
||||
and/or don’t have an oven, this might be exactly the type of bread you should
|
||||
consider.
|
||||
consider.
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-overview-bread-types.tex}
|
||||
\caption[Different bread types]{An overview of different bread types
|
||||
and their respective complexity.}%
|
||||
\label{tab:bread-types-comparison}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
\section{Flatbread}%
|
||||
@@ -57,15 +56,14 @@ pancake-like consistency, as you can see in
|
||||
Table~\ref{tab:flat-bread-ingredients}
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-flat-bread-pancake-recipe.tex}
|
||||
\caption[Flatbread recipe]{Flatbread or pancake recipe for 1 person.
|
||||
Multiply the ingredients to increase portion size. Refer to the
|
||||
Section~\ref{section:bakers-math}
|
||||
``\nameref{section:bakers-math}'' to learn how to understand and
|
||||
Section~\ref{sec:bakers-math}
|
||||
``\nameref{sec:bakers-math}'' to learn how to understand and
|
||||
use the percentages properly.}%
|
||||
\label{tab:flat-bread-ingredients}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
For a full recipe including the process of making such a flatbread, refer to
|
||||
@@ -80,13 +78,12 @@ few steps, you can stop buying bread forever. This works with
|
||||
any flour, including gluten-free options.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-process-flat-bread.tex}
|
||||
\caption[The process to make a sourdough flatbread]{The process of making a flatbread is very
|
||||
simple, requiring very little effort. This type of bread is especially
|
||||
handy for busy bakers.}%
|
||||
\label{fig:flat-bread-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
This is my go-to recipe that I~use to make bread whenever
|
||||
@@ -106,13 +103,12 @@ warmer it is, the sooner it will be ready, consider
|
||||
using warm water if it is very cold where you live.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{flat-bread-wheat}
|
||||
\caption[Wheat flatbread]{A flatbread made with purely wheat flour. The
|
||||
dough is drier at around \qty{60}{\percent} hydration. The drier dough
|
||||
is a little harder to mix. As wheat contains more gluten, the dough
|
||||
puffs up during the baking process.}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
This way you should have around \qty{11}{\gram} of sourdough ready in the evening. You will have
|
||||
@@ -135,12 +131,11 @@ when getting started. You can observe the dough more easily and see when
|
||||
it is ready.
|
||||
|
||||
\begin{figure}[htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{ethiopian-woman-checking-bread}
|
||||
\caption[Ethiopian \emph{injera}]{An Ethiopian woman baking an \emph{injera}
|
||||
made using teff flour. The image has been provided by Charliefleurene
|
||||
via Wikipedia.}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
If you used the flatbread option with less water, look at the size increase
|
||||
@@ -170,12 +165,11 @@ going to taste relatively sour. I~do this frequently to better evaluate the
|
||||
state of my doughs.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{injera-pancake-texture.jpg}
|
||||
\caption[Teff sourdough pancake]{A sourdough pancake made with teff flour.
|
||||
The pockets come from evaporated water and \ch{CO2} created by the
|
||||
microbes. The image has been provided by Łukasz Nowak via Wikipedia.}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
If you are feeling lazy or don't have time, you could also use older sourdough starter
|
||||
@@ -208,13 +202,12 @@ pancake option, opt for around \qtyrange{0.1}{0.5}{\cm} depending on what you
|
||||
like.
|
||||
|
||||
\begin{figure}[htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{einkorn-crumb.jpg}
|
||||
\caption[Einkorn crum]{The crumb of a flatbread made with einkorn as flour.
|
||||
Einkorn is very low in gluten and thus does not trap as much \ch{CO2} as
|
||||
a wheat based dough. To make the dough fluffier use more water or
|
||||
consider adding more wheat to the mix of your dough.}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
After 2--4~minutes flip over the pancake or flatbread. Bake it for the same
|
||||
@@ -249,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
|
||||
of olive oil, these flatbreads are sure to impress.
|
||||
|
||||
\subsubsection*{Ingredients}
|
||||
\input{recipes/flat-bread.tex}
|
||||
|
||||
\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}
|
||||
\section{Loaf pan bread}
|
||||
\section{Loaf pan bread}%
|
||||
\label{sec:loaf-pan-bread}
|
||||
|
||||
Loaf pan bread is made using the help of a special loaf pan
|
||||
or loaf tin. The edges of the pan provide additional support
|
||||
@@ -377,12 +323,11 @@ baking vessels in your oven. To make a freestanding loaf more steps
|
||||
and tools are required.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{free-standing-loaf.jpg}
|
||||
\caption[Freestanding sourdough bread]{A freestanding sourdough bread. Note
|
||||
the incision known as an \emph{ear} and the oven spring clearly
|
||||
distinguish this type of bread from flatbread and loaf pan bread.}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
When using wheat, make sure to mix your dough enough to develop a gluten network.
|
||||
@@ -403,4 +348,4 @@ But after baking you will be rewarded with a beautiful bread
|
||||
with great taste and consistency.
|
||||
|
||||
There is a dedicated recipe and tutorial for this type of bread in the
|
||||
\nameref{chapter:wheat-sourdough} chapter.
|
||||
\nameref{ch:wheat-sourdough} chapter.
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
% Same tricks not to get double lines and also we do _not_ want arrows
|
||||
\path [draw, thick] (ph_value) -- node{} ++(2, 0);
|
||||
\path [draw, thick] (smell) -| node{} ++(2, 4);
|
||||
\path [line] (dough_ready) -- node{yes} (divide_preshape);
|
||||
\path [line] (dough_ready) |- node[right=3pt]{no} (dough_flattened);
|
||||
\path [line] (dough_flattened) |- node[right=3pt]{yes} (stretch_fold);
|
||||
\path [line] (dough_flattened) -- node{no} (wait_60_minutes);
|
||||
\path [line] (dough_ready) -- node{Yes} (divide_preshape);
|
||||
\path [line] (dough_ready) |- node[right=3pt]{No} (dough_flattened);
|
||||
\path [line] (dough_flattened) |- node[right=3pt]{Yes} (stretch_fold);
|
||||
\path [line] (dough_flattened) -- node{No} (wait_60_minutes);
|
||||
\path [line] (stretch_fold) -- (wait_60_minutes);
|
||||
\path [line] (wait_60_minutes) -- (check_dough);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
\path [line] (close) -- (back_oven);
|
||||
\path [line] (back_oven) -- (bake);
|
||||
\path [line] (bake.west) -- node{} ++(-2, 0) -| (is_ready_check.north);
|
||||
\path [line] (is_ready_check) -- node{yes} (remove_do_lid);
|
||||
\path [line] (is_ready_check) -- node{no} (wait_5_minutes);
|
||||
\path [line] (is_ready_check) -- node{Yes} (remove_do_lid);
|
||||
\path [line] (is_ready_check) -- node{No} (wait_5_minutes);
|
||||
\path [line] (wait_5_minutes.west) -- node{} ++(-1.5, 0) |- (is_ready_check.west);
|
||||
\path [line] (remove_do_lid) -- (dark_enough_decision);
|
||||
\path [line] (dark_enough_decision) -- node{yes} (finish_baking);
|
||||
\path [line] (dark_enough_decision) -- node{no} (bake_5_more_minutes);
|
||||
\path [line] (dark_enough_decision) -- node{Yes} (finish_baking);
|
||||
\path [line] (dark_enough_decision) -- node{No} (bake_5_more_minutes);
|
||||
\path [line] (bake_5_more_minutes.east) -- node{} ++(1, 0) -- node{} ++(0, 2.3) -| (dark_enough_decision.north);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
\path [line] (knead) -- (wait2);
|
||||
\node [decision, below of=wait2, node distance=4cm] (windowpane_test) {Window-pane?};
|
||||
\path [line] (wait2) -- (windowpane_test);
|
||||
\path [line] (windowpane_test.east) -- node{no} ++(1, 0) -- node{} ++(0, 5.7) -| (knead.north);
|
||||
\path [line] (windowpane_test.east) -- node{No} ++(1, 0) -- node{} ++(0, 5.7) -| (knead.north);
|
||||
\node [decision] at (windowpane_test -| knead) (more_water) {Bassinage for more water?};
|
||||
\path [line] (windowpane_test) -- node{yes} (more_water);
|
||||
\path [line] (windowpane_test) -- node{Yes} (more_water);
|
||||
\node [block] at (wait1 |- more_water) (add_water) {Add water};
|
||||
\path [line] (more_water) -- node{yes} (add_water);
|
||||
\path [line] (more_water) -- node{Yes} (add_water);
|
||||
\path [line] (add_water.north east) -- (knead.south west);
|
||||
\node [decision, below of=more_water, node distance=4.5cm] (dough_sample) {Aliquot sample?};
|
||||
\path [line] (more_water) -- node{no} (dough_sample);
|
||||
\path [line] (more_water) -- node{No} (dough_sample);
|
||||
\node [block] at (dough_sample -| wait2) (dough_ball) {Make round dough ball};
|
||||
\path [line] (dough_sample) -- node{no} (dough_ball);
|
||||
\path [line] (dough_sample) -- node{No} (dough_ball);
|
||||
\node [block, below of=dough_sample] (extract_sample) {Extract sample};
|
||||
\path [line] (dough_sample) -- node{yes} (extract_sample);
|
||||
\path [line] (dough_sample) -- node{Yes} (extract_sample);
|
||||
\path [line] (extract_sample.north east) -- (dough_ball.south west);
|
||||
\node [success, below of=dough_ball] (begin_bulk) {Begin bulk fermentation};
|
||||
\path [line] (dough_ball) -- (begin_bulk);
|
||||
|
||||
@@ -29,11 +29,11 @@
|
||||
% Additional line for dinosaurs since it is so close
|
||||
\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) -- (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
|
||||
% 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 months and month separators
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
\path [line] (init) -- (feed_new_ratio);
|
||||
\path [line] (feed_new_ratio) -- node{Wait \qty{24}{\hour}} (ready_signs);
|
||||
\path [line] (feed_again) -- node[anchor=east] {} ++(2.2,0) |- (feed_new_ratio);
|
||||
\path [line] (ready_signs) -- node{no} (feed_again);
|
||||
\path [line] (ready_signs) -- node[above=2pt]{~yes} (last_feed);
|
||||
\path [line] (ready_signs) -- node{No} (feed_again);
|
||||
\path [line] (ready_signs) -- node[above=2pt]{~Yes} (last_feed);
|
||||
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
|
||||
\draw [thick, ->] ($ (feed_again.north) +(0.7cm, 1cm)$) arc (-45:220:1cm);
|
||||
\node [anchor=north, text width=5em] at ($(feed_again.north west)+(1.8cm, 2.3cm)$) {Repeat 3~times};
|
||||
|
||||
\node [above of=feed_again, text width=5em, align=center, node distance=3cm] (repeat_text) {Repeat 3~times};
|
||||
\draw [line] ($(repeat_text) +(0, 1 cm)$) arc (90:420:1cm);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
\node [success, right of=dent_visible_decision, node distance=4cm] (bake) {Score and bake};
|
||||
\node [block] at (retard_bake_decision |- poke) (wait_retard) {Wait\\ 15~minutes};
|
||||
\node [block] at (wait_retard |- bake) (retard) {Proof in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
|
||||
\path [line] (init) -- node{yes} (poke);
|
||||
\path [line] (init) -- node{no} (retard_bake_decision);
|
||||
\path [line] (init) -- node{Yes} (poke);
|
||||
\path [line] (init) -- node{No} (retard_bake_decision);
|
||||
\path [line] (poke) -- (dent_visible_decision);
|
||||
\path [line] (dent_visible_decision) -- node{yes} (bake);
|
||||
\path [line] (dent_visible_decision.west) -- node{no} ++(-1.4, 0) -- node{} (wait_poke.south);
|
||||
\path [line] (dent_visible_decision) -- node{Yes} (bake);
|
||||
\path [line] (dent_visible_decision.west) -- node{No} ++(-1.4, 0) -- node{} (wait_poke.south);
|
||||
\path [line] (wait_poke) -- (poke);
|
||||
\path [line] (retard_bake_decision) -- node{yes} (wait_retard);
|
||||
\path [line] (retard_bake_decision.east) -- node{no} ++(1, 0) |- node{} (retard.east);
|
||||
\path [line] (retard_bake_decision) -- node{Yes} (wait_retard);
|
||||
\path [line] (retard_bake_decision.east) -- node{No} ++(1, 0) |- node{} (retard.east);
|
||||
\path [line] (wait_retard) -- (retard);
|
||||
\path [line] (retard) -- (bake);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
\node [block, right of=flour] (banneton) {Place upside down in banneton};
|
||||
\node [success, right of=banneton] (proof) {Begin proofing};
|
||||
\path [line] (init) -- (overfermented_decision);
|
||||
\path [line] (overfermented_decision) -- node{yes} (overfermented);
|
||||
\path [line] (overfermented_decision) -- node{no} (shaping_technique);
|
||||
\path [line] (overfermented_decision) -- node{Yes} (overfermented);
|
||||
\path [line] (overfermented_decision) -- node{No} (shaping_technique);
|
||||
\path [line] (shaping_technique) -- (flour);
|
||||
\path [line] (flour) -- (banneton);
|
||||
\path [line] (banneton) -- (proof);
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
\path [line] (init) -- (all_starter_used);
|
||||
\node [block, right of=init, node distance=3cm] (use_dough) {Take \qty{10}{\gram} of your bread dough};
|
||||
\node [block, right of=all_starter_used, node distance=3cm] (use_starter) {Take all but not more than \qty{10}{\gram} of your starter};
|
||||
\path [line] (all_starter_used) -- node{yes} (use_dough);
|
||||
\path [line] (all_starter_used) -- node{no} (use_starter);
|
||||
\path [line] (all_starter_used) -- node{Yes} (use_dough);
|
||||
\path [line] (all_starter_used) -- node{No} (use_starter);
|
||||
\node [block, right of=use_dough, node distance=3cm] (feed_starter) {Feed using 1:5:5 ratio};
|
||||
\path [line] (use_dough) -- (feed_starter);
|
||||
\path [line] (use_starter) -- (feed_starter);
|
||||
@@ -13,20 +13,20 @@
|
||||
\path [line] (feed_starter) -- (bake_next_day_check);
|
||||
\node [success, right of=bake_next_day_check, node distance=3.5cm]
|
||||
(make_bread_dough) {Make bread dough again after \qtyrange{8}{12}{\hour}};
|
||||
\path [line] (bake_next_day_check) -- node{yes} (make_bread_dough);
|
||||
\path [line] (bake_next_day_check) -- node{Yes} (make_bread_dough);
|
||||
\node [decision, right of=use_starter, node distance=3cm] (bake_next_week_check) {Baking in next 2 weeks?};
|
||||
\node [block, right of=bake_next_week_check, node distance=3.5cm] (store_fridge) {Store starter in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
|
||||
\path [line] (bake_next_week_check) -- node{yes} (store_fridge);
|
||||
\path [line] (bake_next_week_check) -- node{Yes} (store_fridge);
|
||||
\node [success, right of=store_fridge, node distance=3cm] (feed_after_fridge) {Feed again using 1:5:5 ratio \qtyrange{8}{12}{\hour} before making dough};
|
||||
\path [line] (store_fridge) -- (feed_after_fridge);
|
||||
\path [line] (bake_next_day_check) -- node{no} (bake_next_week_check);
|
||||
\path [line] (bake_next_day_check) -- node{No} (bake_next_week_check);
|
||||
\node [decision, below of=use_starter, node distance=3cm] (freezer_check) {Have a freezer?};
|
||||
\path [line] (bake_next_week_check) -- (store_fridge);
|
||||
\path [line] (bake_next_week_check) -- node{no} (freezer_check);
|
||||
\path [line] (bake_next_week_check) -- node{No} (freezer_check);
|
||||
\node [block, right of=freezer_check, node distance=3cm] (dry_starter) {Dry your starter};
|
||||
\node [block, below of=dry_starter, node distance=3cm] (freeze_starter) {Freeze your starter};
|
||||
\path [line] (freezer_check) -- node{no} (dry_starter);
|
||||
\path [line] (freezer_check) -- node{yes} (freeze_starter);
|
||||
\path [line] (freezer_check) -- node{No} (dry_starter);
|
||||
\path [line] (freezer_check) -- node{Yes} (freeze_starter);
|
||||
\node [success, right of=dry_starter, node distance=3.5cm] (reactivate_freezer) {Reactivate starter for 3 days with daily 1:5:5 feedings};
|
||||
\path [line] (dry_starter) -- (reactivate_freezer);
|
||||
\path [line] (freeze_starter) -- (reactivate_freezer);
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
\begin{tikzpicture}[node distance = 3.5cm, auto]
|
||||
\node [start] (init) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
|
||||
\node [block, right of=init] (wait2) {Wait\\ \qty{24}{\hour}};
|
||||
\path [line] (init) -- (wait2);
|
||||
\node [block, below of=wait2, node distance=3.5cm] (feed) {\qty{10}{\gram} of previous day + \qty{50}{\gram} water + \qty{50}{\gram} flour, stir};
|
||||
\path [line] (wait2) -- (feed);
|
||||
\node [block, below of=feed] (discard) {Discard the rest};
|
||||
\path [line] (feed) -- (discard);
|
||||
\node [decision, right of=feed, node distance=3.5cm] (decide) {Is good?};
|
||||
\node [decision, above of=decide, node distance=3.5cm] (timeout) {Less than 10 feeds?};
|
||||
\node [fail, right of=timeout, node distance=3.5cm] (discard2) {Batch failed};
|
||||
\path [line] (timeout) -- node{no} (discard2);
|
||||
\path [line] (timeout) -- node{yes} (wait2);
|
||||
\path [line] (feed) -- (decide);
|
||||
\node [success, right of=decide, node distance=3.5cm] (use) {Ready to use};
|
||||
\path [line] (decide) -- node{no} (timeout);
|
||||
\path [line] (wait2) -- (feed);
|
||||
\path [line] (decide) -- node{yes} (use);
|
||||
\node [start] (start_n) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
|
||||
\node [block, right of=start_n, node distance = 3.5cm] (wait_n) {Wait\\ \qty{24}{\hour}};
|
||||
\node [decision, right of=wait_n, node distance = 3.5cm] (readycheck_n) {Ready?};
|
||||
\node [block, below of=wait_n, node distance = 3.2cm] (feed_n) {Feed the mixture };
|
||||
\node [decision, right of=feed_n, node distance = 3.5cm] (limitcheck_n) {>10 feeds?};
|
||||
\node [fail, right of=limitcheck_n, node distance = 3.5cm] (abort_n) {Discard all. Start over};
|
||||
\node [success, right of=readycheck_n, node distance = 3.5cm] (final_n) {Ready to use};
|
||||
|
||||
\draw [line] (start_n) -- (wait_n);
|
||||
\draw [line] (wait_n) -- (readycheck_n);
|
||||
\draw [line] (feed_n) -- (wait_n);
|
||||
\draw [line] (readycheck_n) -- node {No} (limitcheck_n);
|
||||
\draw [line] (limitcheck_n) -- node (feedok_n) {No} (feed_n) ;
|
||||
\draw [line] (limitcheck_n) -- node {Yes} (abort_n);
|
||||
\draw [line] (readycheck_n) -- node {Yes} (final_n);
|
||||
|
||||
\node [below of=feedok_n, node distance=2cm, align=left] (details2) [shape=rectangle, draw, fill=maingray]{%
|
||||
\textbf{Ready}: Mixture has \emph{grown}, has \emph{bubbles}, and \emph{smells} vinegary/yoghurty. \\
|
||||
\textbf{Feed the mixture}: Discard all but \qty{10}{\gram}, mix in \qty{50}{\gram} flour and \qty{50}{\gram} water.
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\node [start] (init) {Make a starter};
|
||||
\node [start] (init) {Create a starter};
|
||||
\node [decision, right of=init, node distance=3.5cm] (decision_start) {Starter last fed within 3~days?};
|
||||
\node [block, right of=decision_start, text width=7em, node distance=4cm] (feed_no_branch)
|
||||
{Feed starter twice:\par \qty{48}{\hour} before\par \qtyrange{6}{12}{\hour} before};
|
||||
@@ -23,16 +23,16 @@
|
||||
{Prepare dough};
|
||||
|
||||
\path [line] (init) -- (decision_start);
|
||||
\path [line] (decision_start) -- node{no} (feed_no_branch);
|
||||
\path [line] (decision_start) -- node[below=2pt]{yes} (feed_yes_branch.north west);
|
||||
\path [line] (decision_start) -- node{No} (feed_no_branch);
|
||||
\path [line] (decision_start) -- node[below=2pt]{Yes} (feed_yes_branch.north west);
|
||||
\path [line] (feed_yes_branch) -- (low_ratio);
|
||||
\path [line] (feed_no_branch) -- (high_ratio);
|
||||
\path [line] (high_ratio) -- node[anchor=east, above=2pt] {} ++(2.2,0) |-(size_check);
|
||||
\path [line] (low_ratio) -- (size_check);
|
||||
\path [line] (size_check) -- node{no} (feed_yes_branch.south east);
|
||||
\path [line] (size_check) -- node{yes} (smell_check);
|
||||
\path [line] (smell_check) -- node{no} (feed_yes_branch.south west);
|
||||
\path [line] (smell_check) -- node{yes} (make_dough);
|
||||
\path [line] (size_check) -- node{No} (feed_yes_branch.south east);
|
||||
\path [line] (size_check) -- node{Yes} (smell_check);
|
||||
\path [line] (smell_check) -- node{No} (feed_yes_branch.south west);
|
||||
\path [line] (smell_check) -- node{Yes} (make_dough);
|
||||
|
||||
% braces
|
||||
\draw[BC] (size_check.south) --
|
||||
|
||||
@@ -11,14 +11,15 @@
|
||||
\path [line] (init) -- (feed_new_ratio);
|
||||
\path [line] (feed_again) -- (feed_new_ratio);
|
||||
\path [line] (next_day) -- (ready_signs);
|
||||
\path [line] (ready_signs) -- node{no} (feed_again |- last_feed) |- (feed_again.south);
|
||||
\path [line] (ready_signs) -- node{yes} (last_feed);
|
||||
\path [line] (ready_signs) -- node{No} (feed_again |- last_feed) -| (feed_again.south);
|
||||
\path [line] (ready_signs) -- node{Yes} (last_feed);
|
||||
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
|
||||
\path [line] (feed_new_ratio) -- (too_dry);
|
||||
\path [line] (add_water.north) -- node{} ++(0, 1.3) -| (too_dry.north);
|
||||
\path [line] (too_dry) -- node{no} (next_day);
|
||||
\path [line] (too_dry) -- node{yes} (add_water);
|
||||
\path [line] (ready_signs) -- node{yes} (last_feed);
|
||||
\draw [thick, <-] ($ (feed_again.east) +(2.1cm, 0.7cm)$) arc (-45:220:1cm);
|
||||
\node [anchor=north, text width=5em] at ($(feed_again.east)+(2cm, 2cm)$) {Repeat 3~times};
|
||||
\path [line] (too_dry) -- node{No} (next_day);
|
||||
\path [line] (too_dry) -- node{Yes} (add_water);
|
||||
\path [line] (ready_signs) -- node{Yes} (last_feed);
|
||||
|
||||
\node [text width=5em, align=center] (repeat_text) at ($(feed_new_ratio)!0.5!(next_day)$) {Repeat 3~times};
|
||||
\draw [line] ($(repeat_text) +(0, 1 cm)$) arc (90:-210:1cm);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
\path [line] (mix_ingredients) -- (dough_strength);
|
||||
\path [line] (dough_strength) -- (bulk);
|
||||
\path [line] (bulk) -- (divide_test);
|
||||
\path [line] (divide_test) -- node{yes} (shape);
|
||||
\path [line] (divide_test) -- node{no} (divide);
|
||||
\path [line] (divide_test) -- node{Yes} (shape);
|
||||
\path [line] (divide_test) -- node{No} (divide);
|
||||
\path [line] (divide) -- (preshape);
|
||||
\path [line] (preshape) -- (shape);
|
||||
\path [line] (shape) -- (proof);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\tikzstyle{every picture}+=[font=\footnotesize\sffamily]
|
||||
\usetikzlibrary{calc, shapes, arrows, decorations.pathreplacing, calligraphy,
|
||||
\usetikzlibrary{calc, shapes, arrows.meta, decorations.pathreplacing, calligraphy,
|
||||
positioning}
|
||||
\tikzstyle{decision} = [diamond, draw=codeblack, fill=codeblack, text=white,
|
||||
text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt,
|
||||
@@ -19,7 +19,8 @@
|
||||
\tikzstyle{fail} = [rectangle, draw=codeblack, fill=redpic, text=black,
|
||||
text width=5em, text centered, rounded corners, minimum height=4em,
|
||||
line width=0.4mm]
|
||||
\tikzstyle{line} = [draw, -latex', thick, ->,>=to]
|
||||
% The arrowed connector line between nodes
|
||||
\tikzstyle{line} = [draw, thick, ->, >={Latex}]
|
||||
|
||||
\tikzstyle{BC} = [decorate, % Brace Calligraphic
|
||||
decoration={calligraphic brace, amplitude=3mm, raise=1mm},
|
||||
@@ -30,3 +31,5 @@
|
||||
|
||||
\tikzstyle{timeline_timespan} = [rectangle, draw=codeblack, fill=pinkpic, text=black,
|
||||
text centered, rounded corners, line width=0.4mm]
|
||||
\pgfplotsset{compat=1.18}
|
||||
\pgfplotsset{width=\textwidth}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
\documentclass[tikz]{standalone}
|
||||
\usepackage{tikz}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{chemfig}
|
||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||
\DeclareSIUnit\degF{\text{°}F}
|
||||
\input{flowcharts_tikz.tex}
|
||||
\input{../colors.tex}
|
||||
\input{../abbreviations.tex}
|
||||
|
||||
@@ -17,12 +17,11 @@ Depending on which layers are still present, different names are used to describ
|
||||
type of flour.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-flour-types.tex}
|
||||
\caption[Labelling of wheat flour]{A comparison of how different types
|
||||
of wheat flour are labelled in different countries.}%
|
||||
\caption[Labeling of wheat flour]{A comparison of how different types
|
||||
of wheat flour are labeled in different countries.}%
|
||||
\label{tab:flour-types-comparison}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
In Germany, the ash content is used to describe the flours. The lab will burn
|
||||
@@ -60,11 +59,10 @@ want the final bread to be too sour. Conversely you do not have to worry about
|
||||
the gluten degradation, removing a huge headache from the equation.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-grains-bread-making-process.tex}
|
||||
\caption[Different types of grain]{An overview of different grain
|
||||
types and the steps involved in the respective bread making process.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Because gluten has a special role, the rest of this chapter is dedicated to having a
|
||||
@@ -115,13 +113,12 @@ The long fermentation period also means that your microbes will enrich
|
||||
your dough with more flavor.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-overview-w-values.tex}
|
||||
\caption[Fermentation time versus W-value]{An overview of different
|
||||
levels of W-values and the respective hydrations and fermentation
|
||||
levels of W-values and the respective hydration and fermentation
|
||||
times.}%
|
||||
\label{tab:w-value}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Generally, when aiming to
|
||||
|
||||
@@ -140,24 +140,26 @@ a higher amount of gluten and can thus ferment for a longer period of time.
|
||||
then cooled and mixed with the main dough. This process helps in moisture retention
|
||||
and can enhance the flavor and texture of the final bread. Also see \emph{scald}.
|
||||
|
||||
\item[Bulk Fermentation] The initial rising period after mixing all the ingredients.
|
||||
The dough is typically allowed to rise until it increases to a certain volume. The
|
||||
volume of increase depends on the flour that is used. When baking with wheat flour
|
||||
the gluten amount of the flour is the deciding factor. The more gluten your flour has
|
||||
(protein) the longer you can bulk ferment. A longer bulk fermentation improves the
|
||||
flavor and texture of the final bread. It becomes tangier and fluffier. You can aim
|
||||
for a \SI{25}{\percent} size increase of your dough and then slowly increase this to find your
|
||||
flour’s sweet spot. This is highly dependant from flour to flour. When using low gluten
|
||||
flour like rye you need to be careful as the longer fermentation can create a too
|
||||
sticky dough which collapses and does not hold its shape anymore.
|
||||
\item[Bulk Fermentation] The initial rising period after mixing all the
|
||||
ingredients. The dough is typically allowed to rise until it increases to
|
||||
a certain volume. The volume of increase depends on the flour that is
|
||||
used. When baking with wheat flour the gluten amount of the flour is the
|
||||
deciding factor. The more gluten your flour has (protein) the longer you
|
||||
can bulk ferment. A longer bulk fermentation improves the flavor and
|
||||
texture of the final bread. It becomes tangier and fluffier. You can aim
|
||||
for a \SI{25}{\percent} size increase of your dough and then slowly
|
||||
increase this to find your flour's sweet spot. This is highly dependent
|
||||
from flour to flour. When using low gluten flour like rye you need to be
|
||||
careful as the longer fermentation can create a too sticky dough which
|
||||
collapses and does not hold its shape anymore.
|
||||
|
||||
\item[Cake Flour] Cake flour is a light, finely milled flour with a lower protein
|
||||
content than all-purpose flour. It's ideal for tender baked goods like cakes, cookies,
|
||||
and pastries.
|
||||
\item[Cake Flour] Cake flour is a light, finely milled flour with a lower
|
||||
protein content than all-purpose flour. It's ideal for tender baked goods
|
||||
like cakes, cookies, and pastries.
|
||||
|
||||
\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.
|
||||
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.
|
||||
|
||||
\item[Crumb] The inner texture of the bread, which is characterized by the size,
|
||||
@@ -285,7 +287,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
|
||||
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},
|
||||
although it favours alkaline conditions.
|
||||
although it favors alkaline conditions.
|
||||
|
||||
\item[Maltose] A sugar produced from the enzymatic breakdown of starch by amylases.
|
||||
It's a primary food source for yeast during fermentation.
|
||||
@@ -367,11 +369,12 @@ grains or malted grains can have higher protease activity due to the sprouting o
|
||||
malting process. Understanding and controlling protease activity is crucial in
|
||||
achieving desired bread quality and handling characteristics.
|
||||
|
||||
\item[Pullman Loaf] A type of bread loaf characterized by its perfectly rectangular
|
||||
shape and soft, fine crumb. It is baked in a special lidded pan called a Pullman pan
|
||||
or pain de mie pan. The lid ensures that the bread rises in a perfectly straight
|
||||
shape, without the domed top characteristic of other bread loaves. Pullman loaves are
|
||||
often sliced very thin and are popular for making sandwiches.
|
||||
\item[Pullman Loaf] A type of bread loaf characterized by its perfectly
|
||||
rectangular shape and soft, fine crumb. It is baked in a special lidded
|
||||
pan called a Pullman pan or \emph{pain de mie} pan. The lid ensures that
|
||||
the bread rises in a perfectly straight shape, without the domed top
|
||||
characteristic of other bread loaves. Pullman loaves are often sliced very
|
||||
thin and are popular for making sandwiches.
|
||||
|
||||
\item[Retarding] The process of slowing down fermentation during the proofing
|
||||
stage by placing the dough in a colder environment, typically a refrigerator. This aids
|
||||
@@ -404,7 +407,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
|
||||
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
|
||||
providing a moister crumb in the finished bread.
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ waters, another single-celled life form, \emph{archaea}, also thrived. These
|
||||
organisms inhabit extreme environments, from boiling vents to icy waters.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-life-planet-sourdough-timeline.tex}
|
||||
\caption[Sourdough microbiology timeline]{Timeline of significant events
|
||||
starting from the first day of Earth's existence,
|
||||
@@ -34,12 +34,11 @@ organisms inhabit extreme environments, from boiling vents to icy waters.
|
||||
marked at midnight. This visualization shows the pivotal steps
|
||||
of life and sourdough on earth.}%
|
||||
\label{fig:planet-timeline}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Whoever comes first, bacteria or archaea, remains debated. For three
|
||||
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
|
||||
first nucleated organisms, marking an evolutionary milestone. This event lead
|
||||
to the development of plants, fungi and also ultimately humans.
|
||||
@@ -58,24 +57,23 @@ Another 25~million years later, or our timeline's 2~days after the dinosaur
|
||||
extinction, humans appeared.
|
||||
|
||||
A few hours later after the arrival of humans, a more subtle culinary
|
||||
revolution was unfolding. By \num{12000}~BC, just 5 seconds before our metaphorical
|
||||
midnight, the first sourdough breads were being baked in ancient Jordan. A blink of
|
||||
an eye later, or 4~seconds in our time compression, Pasteur's groundbreaking work
|
||||
with yeasts set the stage for modern bread-making. From the moment this book
|
||||
began to take shape to your current reading, only milliseconds have ticked
|
||||
by~\cite{Yong+2017}.
|
||||
revolution was unfolding. By \num{12000}~BC, just 5~seconds before our
|
||||
metaphorical midnight, the first sourdough breads were being baked in ancient
|
||||
Jordan. A blink of an eye later, or 4~seconds in our time compression,
|
||||
Pasteur's groundbreaking work with yeasts set the stage for modern
|
||||
bread-making. From the moment this book began to take shape to your current
|
||||
reading, only milliseconds have ticked by~\cite{Yong+2017}.
|
||||
|
||||
Now delving deeper into the realm of sourdough, it can likely be traced to aforementioned
|
||||
Ancient Jordan~\cite{jordan+bread}. Looking at the earth's timeline sourdough
|
||||
bread can be considered a very recent invention.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-sourdough-history-timeline.tex}
|
||||
\caption[Sourdough history timeline]{Timeline of significant discoveries and
|
||||
events leading to modern sourdough bread.}%
|
||||
\label{fig:sourdough-timeline}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
The exact origins of fermented
|
||||
@@ -83,10 +81,11 @@ bread are, however, unknown. One of the most ancient preserved
|
||||
sourdough breads has been excavated in Switzerland~\cite{switzerland+bread}.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{einkorn-crumb}
|
||||
\caption[Ancient Einkorn flatbread]{An ancient Einkorn flatbread. Note the
|
||||
dense crumb structure.}%
|
||||
\label{einkorn-crumb}
|
||||
\label{fig:einkorn-crumb}
|
||||
\end{figure}
|
||||
|
||||
Another popular story is that a lady in Egypt was making
|
||||
@@ -187,45 +186,43 @@ of the sourdough leavening agent. As the process is more expensive,
|
||||
bread rolls like these were ultimately consumed by the noble people
|
||||
in Vienna~\cite{vienna+breadrolls}.
|
||||
|
||||
As industrialisation began the first steam-powered grain mill was developed by
|
||||
Oliver Evans in \num{1785}. Evans' design incorporated several innovations,
|
||||
including automated machinery for various milling processes, making it more
|
||||
efficient than traditional water or animal-powered mills. His steam-powered
|
||||
mill marked a significant advancement in industrial technology for bread
|
||||
making~\cite{evans+mill}.
|
||||
Industrialization of the grist milling process, starting in the late
|
||||
18\textsuperscript{th}~century with Oliver Evans (\num{1785}) and his mill
|
||||
designs for continuous hands-off flour production~\cite{evans+mill}, and
|
||||
evolving to steam-powered mills, made possible significant advancements in
|
||||
bread production.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{sourdough-stove}
|
||||
\caption{A bread made over the stove without an oven.}%
|
||||
\label{sourdough-stove}
|
||||
\label{fig:sourdough-stove}
|
||||
\end{figure}
|
||||
|
||||
The biggest advancement of industrial breadmaking happened in \num{1857}.
|
||||
The French microbiologist Louis Pasteur discovered
|
||||
the process of alcoholic fermentation. He would prove that
|
||||
yeast microorganisms are the reason for alcoholic fermentation
|
||||
and not other chemical catalysts. He continued with his research and
|
||||
was the first person to isolate and grow pure yeast strains.
|
||||
Soon later in \num{1868} in the Fleischmann brothers Charles
|
||||
and Maximilian were the first to patent pure yeast strains
|
||||
for bread making. The yeasts offered
|
||||
The biggest advancement of industrial bread making happened in \num{1857}.
|
||||
The French microbiologist Louis Pasteur discovered the process of alcoholic
|
||||
fermentation. He would prove that yeast microorganisms are the reason for
|
||||
alcoholic fermentation and not other chemical catalysts. He continued with his
|
||||
research and was the first person to isolate and grow pure yeast strains.
|
||||
Soon later in \num{1868} the Fleischmann brothers Charles and Maximilian were
|
||||
the first to patent pure yeast strains for bread making. The yeasts offered
|
||||
were isolated from batches of sourdough. By \num{1879} the machinery was built
|
||||
to multiply the yeast in large centrifuges~\cite{fleischmann+history}.
|
||||
The pure yeast would prove to be excellent and turbocharged
|
||||
at leavening bread doughs. What would previously take 10~hours
|
||||
to leaven a bread dough could now be done within 1~hour.
|
||||
The process became much more efficient. What ultimately made making large
|
||||
batches of dough possible, was the invention of the electrical kneader. Rufus
|
||||
Eastman, an American inventor, is often credited with an important advancement
|
||||
in mixer technology. In \num{1885}, he received a patent for an electric mixer
|
||||
with a mechanical hand-crank mechanism. This device was not as advanced or as
|
||||
widely adopted as later electric mixers, but it was an early attempt to
|
||||
mechanize mixing and kneading processes in the kitchen using electricity.
|
||||
Eastman's invention represented an important step in the development of
|
||||
electric mixers, but it wasn't as sophisticated or popular as later models
|
||||
like the KitchenAid mixer. The KitchenAid mixer, introduced in \num{1919}, is
|
||||
often recognized as one of the first widely successful electric mixers and
|
||||
played a significant role in revolutionizing kitchen appliances for home
|
||||
to multiply the yeast in large centrifuges~\cite{fleischmann+history}. The
|
||||
pure yeast would prove to be excellent and turbocharged at leavening bread
|
||||
doughs. What would previously take 10~hours to leaven a bread dough could now
|
||||
be done within 1~hour. The process became much more efficient. What
|
||||
ultimately made making large batches of dough possible, was the invention of
|
||||
the electrical kneader. Rufus Eastman, an American inventor, is often
|
||||
credited with an important advancement in mixer technology. In \num{1885}, he
|
||||
received a patent for an electric mixer with a mechanical hand-crank
|
||||
mechanism. This device was not as advanced or as widely adopted as later
|
||||
electric mixers, but it was an early attempt to mechanize mixing and kneading
|
||||
processes in the kitchen using electricity. Eastman's invention represented
|
||||
an important step in the development of electric mixers, but it wasn't as
|
||||
sophisticated or popular as later models like the KitchenAid mixer. The
|
||||
KitchenAid mixer, introduced in \num{1919}, is often recognized as one of the
|
||||
first widely successful electric mixers and played a significant role in
|
||||
revolutionizing kitchen appliances for home
|
||||
cooks~\cite{first+mixer}~\cite{kitchenaid+history}.
|
||||
|
||||
During World~War~II the first packaged dry yeast was developed. This would
|
||||
@@ -239,8 +236,8 @@ reason, none of the supermarket flour you buy today is single origin. It is
|
||||
always blended to achieve exactly the same product throughout the years.
|
||||
|
||||
Modern wheat, specifically the high-yielding and disease-resistant varieties
|
||||
commonly grown today, began to be developed in the mid-20th century. This
|
||||
period is often referred to as the \emph{Green Revolution.}
|
||||
commonly grown today, began to be developed in the mid-20\textsuperscript{th}
|
||||
century. This period is often referred to as the \emph{Green Revolution.}
|
||||
|
||||
One of the key figures in this development was American scientist Norman
|
||||
Borlaug, who is credited with breeding high-yield wheat varieties,
|
||||
|
||||
|
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}%
|
||||
\label{ch:Acknowledgements}
|
||||
\chapter{Acknowledgments}%
|
||||
\label{ch:Acknowledgments}
|
||||
This book would not have been possible without your help.
|
||||
With all your donations I~have been able to focus on finishing
|
||||
this book. Your continuous support allows me to focus
|
||||
@@ -81,22 +81,24 @@ 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
|
||||
bug. That is when the developer must dig deeper to see the \emph{what} and the
|
||||
\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.
|
||||
|
||||
Being unhappy with what I~was baking, my engineering mindset took over, and I~had
|
||||
to do my own deep dive to understand what was going on. Much to my surprise, however,
|
||||
none of the recipes I'd encountered would tell me \emph{why} I~should use amount X
|
||||
of water and amount Y of flour, or \emph{why} exactly I~should use fresh yeast over dry yeast. Why
|
||||
should I~slap my dough while kneading it on the counter? Why is a standmixer
|
||||
better than kneading by hand? Why should I~let the dough sit for this long?
|
||||
Why is steaming the dough during baking important? Do I~really need to
|
||||
get myself an expensive Dutch oven to bake bread?
|
||||
The problem compounded when I~started reading about sourdough. It all sounded like black
|
||||
magic. Why were some sourdoughs made from fruits, while others were made from flour?
|
||||
Why should one recipe use wheat while another used rye or spelt? How often should the
|
||||
sourdough be fed? The questions I~had then could have filled 20~pages. I~was confused,
|
||||
but I~became even more determined to learn how decent bread should be made at home.
|
||||
Being unhappy with what I~was baking, my engineering mindset took over, and
|
||||
I~had to do my own deep dive to understand what was going on. Much to my
|
||||
surprise, however, none of the recipes I'd encountered would tell me
|
||||
\emph{why} I~should use amount $X$ of water and amount $Y$ of flour, or
|
||||
\emph{why} exactly I~should use fresh yeast over dry yeast. Why should I~slap
|
||||
my dough while kneading it on the counter? Why is a stand mixer better than
|
||||
kneading by hand? Why should I~let the dough sit for this long? Why is
|
||||
steaming the dough during baking important? Do I~really need to get myself an
|
||||
expensive Dutch oven to bake bread? The problem compounded when I~started
|
||||
reading about sourdough. It all sounded like black magic. Why were some
|
||||
sourdoughs made from fruits, while others were made from flour? Why should
|
||||
one recipe use wheat while another used rye or spelt? How often should the
|
||||
sourdough be fed? The questions I~had then could have filled 20~pages. I~was
|
||||
confused, but I~became even more determined to learn how decent bread should
|
||||
be made at home.
|
||||
|
||||
The feedback I~received from friends helped me to improve with each
|
||||
iteration of homemade bread. Compared to coding, where you sometimes have to wait months
|
||||
|
||||
499
book/makefile
@@ -1,15 +1,18 @@
|
||||
# Macros for commands
|
||||
# Macros for commands {{{
|
||||
LATEX := latexmk -cd -pdflua -lualatex="lualatex -interaction=nonstopmode" -synctex=1 -use-make
|
||||
EBOOK := tex4ebook --lua -d epub -f epub -c tex4ebook.cfg
|
||||
WEBSITE := make4ht --lua -c website.cfg -a debug -uf html5+tidy+common_domfilters
|
||||
EBOOK := tex4ebook --lua -d epub -f epub -c tex4ebook.cfg -B epub_build
|
||||
WEBSITE := make4ht --lua -c website.cfg -uf html5+tidy+common_domfilters -B website_build
|
||||
CLEAN := latexmk -cd -lualatex -c -use-make
|
||||
CHECK_1 := lacheck
|
||||
CHECK_2 := chktex
|
||||
CONVERT_PIC := convert
|
||||
REDUCE_PIC := -resize '800x800>' \
|
||||
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
||||
-set colorspace Gray -separate -evaluate-sequence Mean
|
||||
RSYNC := rsync -au --exclude 'book.epub' --exclude '*.jpg' --exclude '*.png'
|
||||
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
||||
-set colorspace Gray -separate -evaluate-sequence Mean
|
||||
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
|
||||
|
||||
# We want bash as shell
|
||||
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
||||
@@ -21,21 +24,35 @@ LATEX += -diagnostics
|
||||
EBOOK += -a debug
|
||||
WEBSITE += -a debug
|
||||
endif
|
||||
# }}}
|
||||
|
||||
website_dir := static_website_html
|
||||
# Default target is not all because most of the time we just want a pdf...
|
||||
# and building everything take a long time.
|
||||
.DEFAULT_GOAL := serif
|
||||
|
||||
# List all files that are dependencies
|
||||
# Dependencies {{{
|
||||
chapters = baking basics bread-types cover flour-types history intro mix-ins\
|
||||
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
|
||||
wheat-sourdough glossary
|
||||
|
||||
src_tables := $(wildcard tables/table-*.tex)
|
||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
||||
|
||||
# Actual book text and LaTeX code {{{
|
||||
src_tex := $(foreach directory, $(chapters), $(wildcard $(directory)/*.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 abbreviations.tex
|
||||
src_tex += $(src_recipes)
|
||||
# }}}
|
||||
|
||||
# Tables and TikZ flowcharts/plots/drawings... {{{
|
||||
src_tables := $(wildcard tables/table-*.tex)
|
||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
||||
src_figures += $(wildcard plots/fig-*.tex) abbreviations.tex colors.tex
|
||||
src_recipes := $(wildcard recipes/*.tex)
|
||||
src_plots := $(wildcard plots/*.table)
|
||||
# }}}
|
||||
|
||||
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
|
||||
|
||||
# Photos {{{
|
||||
images := $(wildcard images/*/*.jpg)
|
||||
images += $(wildcard images/*.jpg)
|
||||
images += $(wildcard images/*.png)
|
||||
@@ -49,55 +66,69 @@ images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.png))
|
||||
# images to lower resolution and greyscale
|
||||
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
|
||||
|
||||
src_all := $(src_tex) $(src_figures) $(src_tables) $(images)
|
||||
# For lower resolution colour ebook (see below) we will 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))
|
||||
# }}}
|
||||
|
||||
# All together.
|
||||
src_all := $(src_tex) $(src_figures) $(src_tables) $(images) $(src_plots)
|
||||
|
||||
# Format specific configuration files
|
||||
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
|
||||
|
||||
website_src := $(src_all) website.cfg style.css
|
||||
|
||||
website_dir := static_website_html
|
||||
website_assets := $(wildcard ../website/assets/*)
|
||||
ruby_src := ../website/modify_build.rb $(website_assets)
|
||||
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
||||
|
||||
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
|
||||
|
||||
# Default target is not all because most of the time we just want a pdf...
|
||||
# and ebook take a long time to build.
|
||||
.DEFAULT_GOAL := build_serif_pdf
|
||||
|
||||
# Default rules for pdf and ebooks, getting overwritten when built in a
|
||||
# sub-directory
|
||||
%.pdf: %.tex
|
||||
$(LATEX) $<
|
||||
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
||||
# }}}
|
||||
|
||||
# Internal build rules {{{
|
||||
# Flowcharts {{{
|
||||
# TODO: check if it works on github CI
|
||||
%.png: %.tex
|
||||
@echo "\input{./vars.tex}" > $@.in
|
||||
# \b is backspace..
|
||||
@echo "\\\begin{document}" >> $@.in
|
||||
@printf '%s\n' "\input{./vars.tex}" > $@.in
|
||||
@printf '%s\n' "\begin{document}" >> $@.in
|
||||
@cat $< >> $@.in
|
||||
@echo "\\\end{document}" >> $@.in
|
||||
@printf '%s\n' "\end{document}" >> $@.in
|
||||
$(LATEX) $@.in
|
||||
figures/export_figures.sh $@.pdf
|
||||
|
||||
%.xbb: %.jpg
|
||||
ebb -x $<
|
||||
# }}}
|
||||
|
||||
# Pdf {{{
|
||||
# Default rules for pdf, getting overwritten when built in a sub-directory
|
||||
%.pdf: %.tex
|
||||
$(LATEX) $<
|
||||
|
||||
book_serif/book.pdf: $(src_all)
|
||||
$(LATEX) -output-directory=book_serif book.tex
|
||||
|
||||
book_sans_serif/book_sans_serif.pdf: $(src_all)
|
||||
$(LATEX) -output-directory=book_sans_serif book_sans_serif.tex
|
||||
# }}}
|
||||
|
||||
.PHONY: copy_ebook_files
|
||||
|
||||
# Ebook {{{
|
||||
###################################
|
||||
.PHONY: copy_ebook_files copy_ebook_files_low_res
|
||||
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
|
||||
$(EBOOK) $<
|
||||
|
||||
copy_ebook_files: build_ebook
|
||||
$(RSYNC) book-epub/ bw-book-epub/
|
||||
copy_ebook_files: ebook
|
||||
$(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
|
||||
# Now that we have built the ebook we will generate 2 more versions
|
||||
#
|
||||
# 1) With kindle app on phone we want a colour version with size < 50 MB
|
||||
# 2) A black-white version for actual eink readers
|
||||
#
|
||||
# In both cases we just convert images and repack the ebpub
|
||||
|
||||
# We do not convert SVG to B&W or lower res for now as they are super small
|
||||
# anyway
|
||||
bw-book-epub/OEBPS/%.jpg: %.jpg
|
||||
mkdir -p $(dir $@)
|
||||
@@ -111,152 +142,21 @@ 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 -q9XrD ../epub/bw_book.epub ./
|
||||
|
||||
# Now with the rules
|
||||
# Expected usual rules first
|
||||
.PHONY: all
|
||||
all: bake
|
||||
# Now the low res
|
||||
copy_ebook_files_low_res: ebook
|
||||
$(RSYNC) epub_build/book-epub/ low-res-book-epub/
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo ""
|
||||
@echo "default: builds the book in pdf format (serif)"
|
||||
@echo ""
|
||||
@echo "all: pdf serif and sans-serif accessible version, as well as ebooks"
|
||||
@echo " in colour and black&white versions"
|
||||
@echo ""
|
||||
@echo "bake: same as build all"
|
||||
@echo ""
|
||||
@echo "check: runs static analysis checker on LaTeX source to spot"
|
||||
@echo " programming or typographic mistakes"
|
||||
@echo ""
|
||||
@echo "clean: delete all intermediate files keep targets (pdf/ebooks/website)"
|
||||
@echo ""
|
||||
@echo "mrproper: delete all generated files intermediate and pdf/ebooks/website"
|
||||
@echo " clean_figures: delete intermediate TikZ files"
|
||||
@echo " clean_website_build: delete intermediate website files"
|
||||
@echo " clean_ebook_build: delete intermediate ebook files"
|
||||
@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 ""
|
||||
@echo "quick: compiles serif_pdf but runs lulatex only once"
|
||||
@echo ""
|
||||
@echo "quick_ebook: compiles ebook but runs lulatex only once"
|
||||
@echo ""
|
||||
@echo "show_tools_version: Show version of tools used on the build machine"
|
||||
@echo ""
|
||||
@echo "print-X: print makefile variable X"
|
||||
@echo ""
|
||||
@echo "printvars: print all variables in the makefile"
|
||||
@echo ""
|
||||
@echo "set DEBUG i.e make DEBUG=1 build_ebook to add debug flags to commands"
|
||||
low-res-book-epub/OEBPS/%.jpg: %.jpg
|
||||
mkdir -p $(dir $@)
|
||||
$(CONVERT_PIC) $< $(REDUCE_PIC_COLOR) $@
|
||||
|
||||
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 ./
|
||||
# }}}
|
||||
|
||||
# Finally actual project targets (i.e. build pdf and ebooks)
|
||||
.PHONY: build_pdf build_serif_pdf build_sans_serif_pdf build_ebook
|
||||
|
||||
build_pdf: build_serif_pdf build_sans_serif_pdf
|
||||
|
||||
build_serif_pdf: book_serif/book.pdf
|
||||
|
||||
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf
|
||||
|
||||
build_ebook: epub/book.epub
|
||||
|
||||
build_bw_ebook: epub/bw_book.epub
|
||||
|
||||
.PHONY: export_figures check
|
||||
# Requires that you have docker running on your computer.
|
||||
export_figures: build_pdf $(tgt_figures)
|
||||
cd figures/ && bash export_figures.sh
|
||||
|
||||
# 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
|
||||
check: $(SRC_TEX)
|
||||
@echo "Running: " $(CHECK_1)
|
||||
$(CHECK_1) book.tex
|
||||
@echo ""
|
||||
@echo "Running: " $(CHECK_2)
|
||||
$(CHECK_2) book.tex
|
||||
|
||||
|
||||
# Clean up and delete generated files
|
||||
.PHONY: clean_figures clean_ebook_build clean_website_build clean mrproper
|
||||
clean_figures:
|
||||
- $(CLEAN) $(patsubst %.tex, %.png.in, $(src_figures))
|
||||
- rm $(patsubst %.tex, %.png.pdf, $(src_figures))
|
||||
- rm $(patsubst %.tex, %.png.in, $(src_figures))
|
||||
- rm $(wildcard figures/*.png.*)
|
||||
- rm cover/cover-page.xbb
|
||||
|
||||
clean_ebook_build:
|
||||
-rm book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||
-rm book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||
-rm book*x.svg
|
||||
-rm book.css
|
||||
-rm content.opf
|
||||
|
||||
clean_website_build: clean_ebook_build
|
||||
-rm book-*.svg
|
||||
-rm book.{loc,dlog}
|
||||
-rm $(subst $(website_dir)/,, $(wildcard $(website_dir)/*.html))
|
||||
|
||||
clean: clean_ebook_build clean_figures clean_website_build
|
||||
$(CLEAN) -output-directory=book_serif book.tex
|
||||
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm book*/*.{bbl,loc,.run.xml}
|
||||
-rm -rf *book-epub/META-INF
|
||||
-rm -rf *book-epub/OEBPS
|
||||
-rm *book-epub/mimetype
|
||||
|
||||
mrproper: clean
|
||||
$(CLEAN) -C $(src_figures)
|
||||
$(CLEAN) -C -output-directory=book_serif book.tex
|
||||
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm figures/*.png
|
||||
-rm *.html
|
||||
-rm *.svg
|
||||
-rm -rf epub/
|
||||
-rm -rf release/
|
||||
-rm -rf book_serif/
|
||||
-rm -rf book_sans_serif/
|
||||
-rm -rf *book-epub/
|
||||
-rm -rf $(website_dir)
|
||||
|
||||
# top level releases rules
|
||||
.PHONY: bake release_serif release_sans_serif
|
||||
|
||||
bake: release_serif release_sans_serif
|
||||
|
||||
release:
|
||||
mkdir -p release
|
||||
|
||||
release_serif: build_serif_pdf build_ebook build_bw_ebook | release
|
||||
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
|
||||
|
||||
release_sans_serif: build_sans_serif_pdf | release
|
||||
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
||||
|
||||
# Website stuff
|
||||
# Website {{{
|
||||
###################################
|
||||
.PHONY: html website
|
||||
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb
|
||||
$(WEBSITE) -d $(website_dir) book.tex
|
||||
@@ -267,63 +167,258 @@ html: $(website_dir)/book.html
|
||||
# Because packages will be installed in hard to predict places use a file as
|
||||
# marker..
|
||||
../website/_bundle_install_done: $(ruby_pkg)
|
||||
- rm ../website/$@
|
||||
-rm ../website/$@
|
||||
cd ../website && bundle install
|
||||
touch ../website/$@
|
||||
|
||||
# TODO: this will run every single time, but is so fast we don't really care
|
||||
website: html ../website/_bundle_install_done $(ruby_src)
|
||||
cd ../website && ruby modify_build.rb
|
||||
#}}}
|
||||
|
||||
# Figures only {{{
|
||||
###################################
|
||||
.PHONY: export_figures
|
||||
# Requires that you have docker running on your computer.
|
||||
export_figures: pdf $(tgt_figures)
|
||||
cd figures/ && bash export_figures.sh
|
||||
# }}}
|
||||
# }}}
|
||||
|
||||
# User level targets {{{
|
||||
# Build targets {{{
|
||||
.PHONY: all
|
||||
all: bake
|
||||
|
||||
# Finally actual project targets (i.e. build pdf and ebooks)
|
||||
.PHONY: pdf serif sans_serif ebook
|
||||
|
||||
pdf: serif sans_serif
|
||||
serif: book_serif/book.pdf
|
||||
sans_serif: book_sans_serif/book_sans_serif.pdf
|
||||
|
||||
ebook: epub/book.epub
|
||||
bw_ebook: epub/bw_book.epub
|
||||
low_res_ebook: epub/low_res_book.epub
|
||||
# }}}
|
||||
|
||||
# Old target names are disabled with helpful help message {{{
|
||||
build_pdf:
|
||||
@echo "build_pdf target is not supported anymore, please use make pdf"
|
||||
@exit
|
||||
build_serif_pdf:
|
||||
@echo "build_serif_pdf target is not supported anymore, please use make serif"
|
||||
@exit
|
||||
build_sans_serif_pdf:
|
||||
@echo "build_sans_serif_pdf target is not supported anymore, please use make sans_serif"
|
||||
@exit
|
||||
build_ebook:
|
||||
@echo "build_ebook target is not supported anymore, please use make ebook"
|
||||
@exit
|
||||
build_bw_ebook:
|
||||
@echo "build_bw_ebook target is not supported anymore, please use make bw_ebook"
|
||||
@exit
|
||||
build_low_res_ebook:
|
||||
@echo "build_low_res_ebook target is not supported anymore, please use make low_res_ebook"
|
||||
@exit
|
||||
# }}}
|
||||
|
||||
# Top level releases rules {{{
|
||||
.PHONY: bake release_serif release_sans_serif
|
||||
bake: release_serif release_sans_serif website
|
||||
|
||||
release:
|
||||
mkdir -p release
|
||||
|
||||
release_serif: serif ebook bw_ebook low_res_ebook | release
|
||||
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
|
||||
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
|
||||
# Kindle does not allow files larger than 50 MB... so let's check
|
||||
@if [ `du -sb epub/low_res_book.epub | cut -f1` -gt 49500000 ]; then \
|
||||
echo "ERROR: epub File too big"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
release_sans_serif: sans_serif | release
|
||||
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
||||
# }}}
|
||||
|
||||
# Clean up {{{
|
||||
###################################
|
||||
|
||||
# delete generated files
|
||||
.PHONY: clean_figures clean_ebook_build clean_website_build clean mrproper
|
||||
clean_figures:
|
||||
-$(CLEAN) $(patsubst %.tex, %.png.in, $(src_figures))
|
||||
-rm $(patsubst %.tex, %.png.pdf, $(src_figures))
|
||||
-rm $(patsubst %.tex, %.png.in, $(src_figures))
|
||||
-rm $(wildcard figures/*.png.*)
|
||||
-rm cover/cover-page.xbb
|
||||
|
||||
clean_ebook_build:
|
||||
-rm epub_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||
-rm epub_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||
-rm epub_build/{book.css,content.opf} epub_build/book-epub/mimetype
|
||||
-rm epub_build/book*x.svg
|
||||
-rm -rf epub_build/book-epub/META-INF epub_build/book-epub/OEBPS
|
||||
|
||||
clean_website_build:
|
||||
-rm website_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||
-rm website_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||
-rm website_build/book.{loc,dlog}
|
||||
|
||||
clean: clean_ebook_build clean_figures clean_website_build
|
||||
$(CLEAN) -output-directory=book_serif book.tex
|
||||
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm book*/*.{bbl,loc,run.xml}
|
||||
|
||||
mrproper: clean
|
||||
$(CLEAN) -C $(src_figures)
|
||||
$(CLEAN) -C -output-directory=book_serif book.tex
|
||||
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm figures/*.png
|
||||
-rm -rf release/
|
||||
-rm -rf book_serif/ book_sans_serif/
|
||||
-rm -rf epub/ epub_build/ bw-book-epub/ low-res-book-epub/
|
||||
-rm -rf website_build/ $(website_dir)
|
||||
# }}}
|
||||
|
||||
# Help {{{
|
||||
###################################
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo ""
|
||||
@echo "default: builds the book in pdf format (serif)"
|
||||
@echo ""
|
||||
@echo "Releases:"
|
||||
@echo " all: pdf serif and sans-serif accessible version, ebooks in colours"
|
||||
@echo " and black&white versions as well as the website"
|
||||
@echo ""
|
||||
@echo " bake: same as build all"
|
||||
@echo ""
|
||||
@echo " release_serif: build serif only version of pdf and ebook"
|
||||
@echo " release_sans_serif: build sans-serif/accessible version of pdf"
|
||||
@echo ""
|
||||
@echo "Portable Document Format (pdf):"
|
||||
@echo " sans_serif: build accessible pdf only (same as release_sans_serif)"
|
||||
@echo " serif: build serif pdf only"
|
||||
@echo " pdf: builds both serif and accessible pdf"
|
||||
@echo ""
|
||||
@echo "Ebooks (epub):"
|
||||
@echo " ebook: builds only the colour ebook"
|
||||
@echo " low_res_ebook: builds the colour ebook in lower resolution"
|
||||
@echo " 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_website_build: delete intermediate website files"
|
||||
@echo " clean_ebook_build: delete intermediate ebook files"
|
||||
@echo ""
|
||||
@echo "Debug targets:"
|
||||
@echo ""
|
||||
@echo "figures: build TikZ figures only"
|
||||
@echo ""
|
||||
@echo "Quick builds:"
|
||||
@echo " quick: compiles serif_pdf but runs lulatex only once"
|
||||
@echo " quick_ebook: compiles ebook but runs lulatex only once"
|
||||
@echo ""
|
||||
@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 "Dump informations:"
|
||||
@echo " show_tools_version: Show version of tools used on the build machine"
|
||||
@echo " printvars: print all variables in the makefile"
|
||||
@echo " print-X: print makefile variable X"
|
||||
@echo ""
|
||||
@echo "set DEBUG i.e make DEBUG=1 ebook to add debug flags to commands"
|
||||
# }}}
|
||||
# }}}
|
||||
|
||||
# Debug Stuff {{{
|
||||
###################################
|
||||
|
||||
# Verify your spelling and TeX warnings {{{
|
||||
.PHONY: check tex-check spell-check
|
||||
# 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
|
||||
check: spell-check tex-check
|
||||
|
||||
tex-check: $(src_tex)
|
||||
@echo "Running: " $(CHECK_1)
|
||||
$(CHECK_1) book.tex
|
||||
@echo ""
|
||||
@echo "Running: " $(CHECK_2)
|
||||
$(CHECK_2) book.tex
|
||||
|
||||
# Should be 0 if not and you are really sure update the exception file
|
||||
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)
|
||||
#}}}
|
||||
|
||||
# Debug Stuff from now on
|
||||
.PHONY: quick quick_ebook show_tools_version printvars
|
||||
|
||||
# Those 2 targets allow fast debug cycles but not resolving references etc
|
||||
# They also ignore dependencies and run each time you call them.
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
show_tools_version: # Show version of tools used on the build machine
|
||||
- git log -n 1
|
||||
show_tools_version: # Show version of tools used on the build machine {{{
|
||||
-$(GIT) log -5 --pretty="%h: %s by %an on %as"
|
||||
@echo ""
|
||||
- uname -a
|
||||
-uname -a
|
||||
@echo ""
|
||||
- $(SHELL) --version
|
||||
-$(SHELL) --version
|
||||
@echo ""
|
||||
- latexmk --version
|
||||
-@echo "PATH:"
|
||||
-@echo $(PATH) | tr ':' '\n'
|
||||
@echo ""
|
||||
- lualatex --version
|
||||
-latexmk --version
|
||||
@echo ""
|
||||
- tex4ebook --version
|
||||
-lualatex --version
|
||||
@echo ""
|
||||
- make4ht --version
|
||||
-tex4ebook --version
|
||||
@echo ""
|
||||
- tidy -version
|
||||
-make4ht --version
|
||||
@echo ""
|
||||
- dvisvgm --version
|
||||
-tidy -version
|
||||
@echo ""
|
||||
- lacheck --version
|
||||
-dvisvgm --version
|
||||
@echo ""
|
||||
- chktex --version
|
||||
-lacheck | head -5 | tail -1
|
||||
@echo ""
|
||||
- make --version
|
||||
-chktex --version
|
||||
@echo ""
|
||||
- biber -version
|
||||
-make --version
|
||||
@echo ""
|
||||
- ruby --version
|
||||
-biber -version
|
||||
@echo ""
|
||||
- $(CONVERT_PIC) --version
|
||||
-ruby --version
|
||||
@echo ""
|
||||
- rsync --version
|
||||
-$(CONVERT_PIC) --version
|
||||
@echo ""
|
||||
-rsync --version
|
||||
# }}}
|
||||
|
||||
# You can find the value of variable X with the following command:
|
||||
# make print-X
|
||||
print-%: ; @echo $* = $($*) # Print a makefile variable
|
||||
print-%: ; @echo $* = $($*) # Print a makefile variable
|
||||
|
||||
printvars: # Print all variables in the makefile
|
||||
printvars: # Print all variables in the makefile
|
||||
@$(foreach V,$(sort $(.VARIABLES)), \
|
||||
$(if $(filter-out environ% default automatic, \
|
||||
$(origin $V)),$(info $V=$($V) ($(value $V)))))
|
||||
# }}}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
\end{quoting}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{pumpkin-sourdough}
|
||||
\caption[Pumpkin sourdough softbuns]{These soft pull-apart sourdough
|
||||
buns have been made with the addition of pumpkin purée. The mashed pumpkin
|
||||
@@ -23,12 +24,13 @@ to express yourself.
|
||||
\section{Categories}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{pumpkin-on-flour}
|
||||
\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
|
||||
some of the water. When adding puré to the dough only slowly add
|
||||
additional water as the puré slowly releases additional water to the
|
||||
dough.}%
|
||||
\caption[Pumpkin purée]{A popular method is to substitute part of the
|
||||
dough's water with another liquid, such as puréed pumpkin. When
|
||||
incorporating the purée, add any extra water gradually, as the purée
|
||||
will release its own liquid into the dough over time.}%
|
||||
\label{fig:pumpkin-on-flour}
|
||||
\end{figure}
|
||||
|
||||
One approach to categorizing the mixins is to look at their respective shape.
|
||||
@@ -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.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{seeded-sourdough}
|
||||
\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
|
||||
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}
|
||||
|
||||
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.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{broa}
|
||||
\caption[Broa de milho]{Broa de milho is a traditional Portuguese bread
|
||||
made out of half rye and half corn flour.}%
|
||||
@@ -111,7 +116,7 @@ usually moderately affect the color.
|
||||
\item Semolina (supports Mediterranean flavors)
|
||||
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
|
||||
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}
|
||||
|
||||
\subsection{Liquids}
|
||||
@@ -120,9 +125,11 @@ Instead of using water, you can substitute it with a different liquid,
|
||||
affecting taste and texture.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{beer-bread}
|
||||
\caption[Stout beer bread]{Dark hearty stouts work excellently as a water replacement
|
||||
when making sourdough bread. The resulting loaf features a hearty malty taste}%
|
||||
\caption[Stout beer bread]{Dark hearty stouts work excellently as a water
|
||||
replacement when making sourdough bread. The resulting loaf features a
|
||||
hearty malty taste}%
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
@@ -132,18 +139,18 @@ affecting taste and texture.
|
||||
\item Cereal milk (the leftover milk from eating cereals)
|
||||
\item Coffee
|
||||
\item Eggs
|
||||
\item Fruit/vegetable juices (also see Section~\ref{section:colors})
|
||||
\item Fruit/vegetable juices (also see Section~\ref{sec:colors})
|
||||
\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 sweet potatoes. Bolo do caco is a typical bread from Madeira,
|
||||
made from \qty{50}{\percent} wheat flour and \qty{50}{\percent} mashed potatoes.
|
||||
\item Olive oil (Mediterranean)
|
||||
\item Other mashed vegetables such as: Beets, pumpkin, etc.
|
||||
\item Other mashed vegetables such as: Beets, pumpkin\dots{}
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Colors}
|
||||
\label{section:colors}
|
||||
\subsection{Colors}%
|
||||
\label{sec:colors}
|
||||
Some mix-ins will change the color and flavor of your bread. Common colorings
|
||||
include:
|
||||
|
||||
@@ -166,12 +173,14 @@ seeds benefit from being boiled for about 10~minutes before adding them to the
|
||||
dough.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{stollen-close-up}
|
||||
\caption[Stollen closeup]{The Stollen is a traditional German sweet Christmas
|
||||
bread featuring a variety of mix-ins. The dough typically contains candied lemon,
|
||||
candied orange, and raisins. The mix-ins are soaked in rum before being added to
|
||||
the dough. While the stollen matures after baking (up to \num{6} months) the candied ingredients release
|
||||
their aroma to the baked product.}%
|
||||
bread featuring a variety of mix-ins. The dough typically contains candied
|
||||
lemon, candied orange, and raisins. The mix-ins are soaked in rum before
|
||||
being added to the dough. While the stollen matures after baking (up to
|
||||
\num{6} months) the candied ingredients release their aroma to the baked
|
||||
product.}%
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
@@ -190,28 +199,31 @@ dough.
|
||||
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\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
|
||||
berries are typically boiled for 10~minutes to allow them to soften a bit. When baking a loaf
|
||||
it is 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.}%
|
||||
\caption[Whole-rye with rye berries]{A sourdough bread made with half
|
||||
whole-rye flour and half rye berries. The berries are typically boiled
|
||||
for 10~minutes to allow them to soften a bit. When baking a loaf it is
|
||||
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}
|
||||
|
||||
\subsection{Spices and flavor mix-ins}
|
||||
These are mostly powders or small bits.
|
||||
|
||||
\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 Candied fruits such as: Lemon, orange, pineapple, etc.
|
||||
\item Candied fruits such as: Lemon, orange, pineapple\dots{}
|
||||
\item Cinnamon
|
||||
\item Grated hard cheese such as: Gruyère, parmesan, etc.
|
||||
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme, etc.
|
||||
\item Grated hard cheese such as: Gruyère, parmesan\dots{}
|
||||
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme\dots{}
|
||||
\item Miso
|
||||
\item Molasses
|
||||
\item Sugar
|
||||
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin, etc.
|
||||
\item Zests such as: Lime, Lemon, orange, etc.
|
||||
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin\dots{}
|
||||
\item Zests such as: Lime, Lemon, orange\dots{}
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Highlights}
|
||||
@@ -222,12 +234,12 @@ can often be complemented by some flavor or flour mix-in.
|
||||
\begin{itemize}
|
||||
\item Chocolate chunks or drops
|
||||
\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 Dried fruits such as: Cranberries, dates, raisins, etc.
|
||||
\item Dried fruits such as: Cranberries, dates, raisins\dots{}
|
||||
\item Olives
|
||||
\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)
|
||||
\end{itemize}
|
||||
|
||||
@@ -240,47 +252,70 @@ A few combinations where multiple mix-ins complement each other:
|
||||
\item Cheddar and jalapeño
|
||||
\item Cocoa, cacao nibs, whole hazelnuts
|
||||
\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
|
||||
\end{itemize}
|
||||
|
||||
\section{Techniques}
|
||||
|
||||
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
|
||||
if the dough has enough or too much water. In the case of whole-soaked berries
|
||||
(\eg~rye or wheat) chances are that the berries will release some water and make the dough
|
||||
wetter. In this case, you will want to add a bit more flour to the dough to
|
||||
compensate for the high hydration.
|
||||
directly when you knead the dough. After the first kneading wait for 30
|
||||
minutes to see if the dough has enough or too much water. In the case of
|
||||
whole-soaked berries (\eg~rye or wheat) chances are that the berries will
|
||||
release some water and make the dough wetter. In this case, you will want to
|
||||
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}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{apple-swirl}
|
||||
\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
|
||||
sugar was applied. Proceed and roll the dough together. Afterward cut the roll
|
||||
into smaller pieces using a sharp knife, dough scraper or dental floss. Place
|
||||
each piece of dough next to each other in a greased bowl to allow them to be proofed.
|
||||
Proceed and bake as you would normally do. The benefit of this technique is that
|
||||
the mix-ins will not be fermented. This is typically required in the case of sugar
|
||||
since you 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.}%
|
||||
directly before shaping. In this case, a mixture of apples, cinnamon and
|
||||
brown sugar was applied. Proceed and roll the dough together. Afterward
|
||||
cut the roll into smaller pieces using a sharp knife, dough scraper or
|
||||
dental floss. Place each piece of dough next to each other in a greased
|
||||
bowl to allow them to be proofed. Proceed and bake as you would
|
||||
normally do. The benefit of this technique is that the mix-ins will not
|
||||
be fermented. This is typically required in the case of sugar since you
|
||||
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}
|
||||
|
||||
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
|
||||
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,
|
||||
place the tiny swirls in a container to let them proof and become fluffier. This is an
|
||||
excellent way to add sweet mixins as the microbes will not ferment them. When
|
||||
adding sugar to the initial dough it will be fermented and the resulting dough
|
||||
will not taste sweet (depending on the fermentation duration). This approach
|
||||
is excellent for garlic/cheese rolls, garlic/herb rolls, and cinnamon rolls
|
||||
place the tiny swirls in a container to let them proof and become fluffier.
|
||||
This is an excellent way to add sweet mix-ins as the microbes will not ferment
|
||||
them. When adding sugar to the initial dough it will be fermented and the
|
||||
resulting dough will not taste sweet (depending on the fermentation duration).
|
||||
This approach is excellent for garlic/cheese rolls, garlic/herb rolls, and
|
||||
cinnamon rolls
|
||||
|
||||
\subsection{Covering the surface}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{surface-seeds}
|
||||
\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
|
||||
@@ -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
|
||||
your preference. I love adding a mixture of sunflower, flax, and
|
||||
sesame seeds.}%
|
||||
\label{fig:surface-seeds}
|
||||
\end{figure}
|
||||
|
||||
This works best for either powders or small bits. After shaping wrap your
|
||||
@@ -297,9 +333,10 @@ banneton or loaf pan with seeds or oats. When using a loaf pan or banneton
|
||||
these coverings also help to make the container stick less.
|
||||
|
||||
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
|
||||
mixins. This does not work for all mix-ins, as some can't handle the high temperatures
|
||||
during baking and char. Most commonly done with seeds (\eg~sesame, oats, flax-seed).
|
||||
dough in water. Afterward, dip the wet piece of dough into your bowl of
|
||||
mix-ins. This does not work for all mix-ins, as some can't handle the high
|
||||
temperatures during baking and char. Most commonly done with seeds
|
||||
(\eg~sesame, oats, flax-seed).
|
||||
|
||||
\subsection{Swirled colors}
|
||||
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
|
||||
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
|
||||
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
|
||||
layered featuring different colors, textures, and flavors.}
|
||||
layered featuring different colors, textures, and flavors.}.
|
||||
|
||||
238
book/nameref.4ht
Normal file
@@ -0,0 +1,238 @@
|
||||
% nameref.4ht (2024-06-15-13:36), generated from tex4ht-4ht.tex
|
||||
% Copyright 2005-2009 Eitan M. Gurari
|
||||
% Copyright 2009-2024 TeX Users Group
|
||||
%
|
||||
% This work may be distributed and/or modified under the
|
||||
% conditions of the LaTeX Project Public License, either
|
||||
% version 1.3c of this license or (at your option) any
|
||||
% later version. The latest version of this license is in
|
||||
% http://www.latex-project.org/lppl.txt
|
||||
% and version 1.3c or later is part of all distributions
|
||||
% of LaTeX version 2005/12/01 or later.
|
||||
%
|
||||
% This work has the LPPL maintenance status "maintained".
|
||||
%
|
||||
% The Current Maintainer of this work
|
||||
% is the TeX4ht Project <http://tug.org/tex4ht>.
|
||||
%
|
||||
% If you modify this program, changing the
|
||||
% version identification would be appreciated.
|
||||
\immediate\write-1{version 2024-06-15-13:36}
|
||||
|
||||
\let\NR:Type\relax
|
||||
\let\ltx@label\label
|
||||
\def\prf:label{{\ifx \NR:Title\:UnDef \a:newlabel{\@currentlabelname}\else \NR:Title\fi}%
|
||||
{\ifx \NR:Type\relax \else \NR:Type .1\fi}{}}%
|
||||
|
||||
\append:defI\label{\let\NR:Title\undefined}
|
||||
|
||||
\let\NR:StartSec\:StartSec
|
||||
\let\NR:no@sect\no@sect
|
||||
\def\no@sect#1#2#3#4#5#6[#7]#8{\gdef\NR:Title{\a:newlabel{#7}}%
|
||||
\gdef\NR:Type{#1}%
|
||||
\NR:no@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}}
|
||||
\def\:StartSec#1#2#3{%
|
||||
\gdef\NR:Title{\a:newlabel{#3}}%
|
||||
\gdef\NR:Type{#1}%
|
||||
\NR:StartSec{#1}{#2}{#3}%
|
||||
}
|
||||
|
||||
\def\:tempc#1#2#3#4#5#6[#7]#8{%
|
||||
\gdef\NR:Title{\a:newlabel{#7}}%
|
||||
\gdef\NR:Type{#1}%
|
||||
\o:NR@sect:{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}}
|
||||
\HLet\NR@sect\:tempc
|
||||
|
||||
\def\:tempc#1#2#3#4#5{%
|
||||
\gdef\NR:Title{\a:newlabel\ssect:ttl}%
|
||||
\gdef\NR:Type{#1}%
|
||||
\o:NR@ssect:{#1}{#2}{#3}{#4}{#5}%
|
||||
}
|
||||
\HLet\NR@ssect\:tempc
|
||||
|
||||
\def\:tempc[#1]#2{%
|
||||
\gdef\NR:Title{\a:newlabel{#1}}%
|
||||
\gdef\NR:Type{part}%
|
||||
\o:no@part:[{#1}]{#2}}
|
||||
|
||||
% this definition clashes with asmart and amsproc classes, so we
|
||||
% need to skip if these are active
|
||||
\@ifundefined{opt@amsart.cls}{%
|
||||
\@ifundefined{opt@amsproc.cls}{%
|
||||
\HLet\no@part\:tempc
|
||||
}{}}{}
|
||||
|
||||
|
||||
\def\:tempc#1{%
|
||||
\gdef\NR:Title{\a:newlabel{#1}}%
|
||||
\gdef\NR:Type{part}%
|
||||
\o:no@spart:{#1}}
|
||||
\HLet\no@spart\:tempc
|
||||
|
||||
\def\:tempc[#1]#2{%
|
||||
\gdef\NR:Title{\a:newlabel{#1}}%
|
||||
\gdef\NR:Type{chapter}%
|
||||
\o:NR@chapter:[{#1}]{#2}}
|
||||
\HLet\NR@chapter\:tempc
|
||||
|
||||
\def\:tempc#1{%
|
||||
\gdef\NR:Title{\a:newlabel\sch:ttl}%
|
||||
\o:NR@schapter:{#1}%
|
||||
\gdef\NR:Type{chapter}%
|
||||
}
|
||||
\HLet\NR@schapter\:tempc
|
||||
|
||||
\let\o:NR@@caption\@caption
|
||||
|
||||
\ifdefined\scr@makechapterhead
|
||||
% fixes for Komascript
|
||||
\def\:tempa[#1]#2{%
|
||||
\gdef\NR:Title{\a:newlabel{#1}}%
|
||||
\gdef\NR:Type{chapter}%
|
||||
\o:@chapter:[#1]{#2}%
|
||||
}
|
||||
\HLet\@chapter\:tempa
|
||||
|
||||
\def\:tempa#1{%
|
||||
\gdef\NR:Title{\a:newlabel{#1}}%
|
||||
\gdef\NR:Type{chapter}%
|
||||
\o:@schapter:{#1}%
|
||||
}
|
||||
\HLet\@schapter\:tempa
|
||||
|
||||
\fi
|
||||
%
|
||||
%
|
||||
% Keith Andrews <kandrews@iicm.edu> reported that \@captype as
|
||||
% \NR:Type threw an undefined control sequence error. I think
|
||||
% \@currenvir is safe, there is nothing special about \@captype.
|
||||
%
|
||||
% use of \index and \label inside caption results in a fatal error
|
||||
% we need to disable them in \NR:Title
|
||||
|
||||
% there can be more problematic commands, so we provide a configuration
|
||||
% that can be used multiple times - the default value fixes known commands
|
||||
% but a user can add more of them
|
||||
|
||||
\def\a:captioncommandsfix{}
|
||||
\NewConfigure{CaptionCommandsFix}[1]{\concat:config\a:captioncommandsfix{#1}}
|
||||
\Configure{CaptionCommandsFix}{
|
||||
\let\index\:gobble%
|
||||
\let\label\:gobble%
|
||||
\let\\\relax% causes issues when \centering is active
|
||||
}
|
||||
|
||||
\long\def\@caption#1[#2]{%
|
||||
\gdef\NR:Type{\@currenvir}%
|
||||
\begingroup%
|
||||
\a:captioncommandsfix
|
||||
\protected@xdef\NR:Title{\a:newlabel{#2}}%
|
||||
\endgroup%
|
||||
\o:NR@@caption{#1}[{#2}]%
|
||||
}
|
||||
|
||||
\let\o:NRorg@opargbegintheorem\@opargbegintheorem
|
||||
\def\@opargbegintheorem#1#2#3{%
|
||||
\gdef\NR:Title{\a:newlabel{#3}}%
|
||||
\gdef\NR:Type{\@currenvir}%
|
||||
\NR@gettitle{#3}%
|
||||
\defineautorefname{\@currenvir}{#1}%
|
||||
\o:NRorg@opargbegintheorem{#1}{#2}{#3}%
|
||||
}%
|
||||
|
||||
\let\o:NRorg@begintheorem\@begintheorem
|
||||
\def\@begintheorem#1#2{%
|
||||
\gdef\NR:Title{\a:newlabel{#1 #2}}%
|
||||
\gdef\NR:Type{\@currenvir}%
|
||||
\defineautorefname{\@currenvir}{#1}%
|
||||
\NR@gettitle{}%
|
||||
\o:NRorg@begintheorem{#1}{#2}%
|
||||
}%
|
||||
|
||||
% I don't know if this was useful for anything
|
||||
% but we cannot use it anymore
|
||||
% \AtBeginDocument{%
|
||||
\@ifpackageloaded{listings}{%
|
||||
\def\:tempc#1{%
|
||||
\gdef\NR:Title{\a:newlabel{listing}}%
|
||||
\gdef\NR:Type{lstlisting}%
|
||||
\o:NROrg@lst@MakeCaption:{#1}%
|
||||
\gdef\@currentlabelname{listing}}
|
||||
\HLet\NROrg@lst@MakeCaption\:tempc
|
||||
}{}%
|
||||
% bug [348]
|
||||
\def\:tempams{%
|
||||
\gdef\NR:Title{\a:newlabel{equation}}%
|
||||
\gdef\NR:Type{equation}%
|
||||
\gdef\@currentlabelname{equation}%
|
||||
}
|
||||
|
||||
% https://tex.stackexchange.com/a/581856/2891
|
||||
\@ifpackageloaded{caption}{
|
||||
\pend:defIII\caption@beginex{%
|
||||
\gdef\NR:Type{\@currenvir}%
|
||||
% handle \label and \index in Caption's package
|
||||
% version of \caption
|
||||
\begingroup%
|
||||
\a:captioncommandsfix
|
||||
\protected@xdef\NR:Title{\a:newlabel{##2}}%
|
||||
\endgroup%
|
||||
}
|
||||
}{}
|
||||
|
||||
|
||||
\@ifpackageloaded{amsmath}{%
|
||||
\Configure{@begin}{align}{\:tempams}
|
||||
\Configure{@begin}{multline}{\:tempams}
|
||||
\Configure{@begin}{equation}{\:tempams}
|
||||
\Configure{@begin}{boxed}{\:tempams}
|
||||
\Configure{@begin}{equations}{\:tempams}
|
||||
\Configure{@begin}{equation}{\:tempams}
|
||||
\Configure{@begin}{gather*}{\:tempams}
|
||||
\Configure{@begin}{gather}{\:tempams}
|
||||
\Configure{@begin}{genfrac}{\:tempams}
|
||||
\Configure{@begin}{measure@}{\:tempams}
|
||||
\Configure{@begin}{multline*}{\:tempams}
|
||||
\Configure{@begin}{multline}{\:tempams}
|
||||
\Configure{@begin}{overset}{\:tempams}
|
||||
\Configure{@begin}{smallmatrix}{\:tempams}
|
||||
\Configure{@begin}{split}{\:tempams}
|
||||
\Configure{@begin}{subarray}{\:tempams}
|
||||
\Configure{@begin}{substack}{\:tempams}
|
||||
\Configure{@begin}{underset}{\:tempams}
|
||||
\Configure{@begin}{xleftarrow}{\:tempams}
|
||||
\Configure{@begin}{xrightarrow}{\:tempams}
|
||||
}{
|
||||
\Configure{@begin}{equation}{\:tempams}
|
||||
}
|
||||
|
||||
\let\T:ref=\::ref
|
||||
\def\::ref{\@ifstar{\protect\T@ref}{\protect\T@ref}}
|
||||
\def\T@ref#1{%
|
||||
\@safe@activestrue%
|
||||
\let\::ref\T:ref%
|
||||
\expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}%
|
||||
\def\::ref{\@ifstar{\protect\T@ref}{\protect\T@ref}}%
|
||||
\@safe@activesfalse%
|
||||
}
|
||||
|
||||
\gdef\defineautorefname#1#2{%
|
||||
\expandafter\gdef\csname #1autorefname\endcsname{#2}}
|
||||
\defineautorefname{theorem}{Theorem}
|
||||
|
||||
\Configure{newlabel}
|
||||
{\csname cur:th\endcsname \csname :currentlabel\endcsname}
|
||||
{\string\csname\space :autoref\string\endcsname
|
||||
{\NR:Type}#1}
|
||||
|
||||
\ifx \@currentlabelname\:UnDef
|
||||
\let\@currentlabelname\empty
|
||||
\fi
|
||||
|
||||
\pend:defIII\@setref{\edef\RefArg{##3}}
|
||||
\append:defIII\@setref{\let\:autoref\:gobble}
|
||||
\let\:autoref\:gobble
|
||||
|
||||
|
||||
\Hinput{nameref}
|
||||
\endinput
|
||||
@@ -1,5 +1,5 @@
|
||||
\chapter{Non wheat sourdough}%
|
||||
\label{chapter:non-wheat-sourdough}
|
||||
\label{ch:non-wheat-sourdough}
|
||||
\begin{quoting}
|
||||
In this chapter you will learn how to make a basic sourdough bread
|
||||
using non-wheat flour, basically all flour except spelt.
|
||||
@@ -17,14 +17,13 @@ a denser crumb compared to wheat, as you can see in
|
||||
Picture~\ref{fig:rye-crumb}.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-non-wheat-process.tex}
|
||||
\caption[Process for non-wheat sourdough bread]{A visualization of the
|
||||
process to make non-wheat sourdough bread. The process is much simpler
|
||||
than making wheat sourdough bread. There is no gluten development. The
|
||||
ingredients are simply mixed together.}%
|
||||
\label{flc:non-wheat-sourdough}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
For non-wheat flours---including rye, emmer, and einkorn---no gluten
|
||||
@@ -136,11 +135,11 @@ bread looks more uniform. The proofing period also allows the
|
||||
dough to fully extend and fill the edges of the loaf pan. I~also
|
||||
like to move the dough to the fridge for proofing. The dough stays
|
||||
good in the fridge for weeks. You can proceed and bake it at a
|
||||
convenient time for you.
|
||||
convenient time for you.
|
||||
|
||||
Once you are happy with the proofing stage, proceed and bake your dough
|
||||
just like you'd normally do, more details can be found in
|
||||
Chapter~\ref{chapter:baking}. One challenging aspect
|
||||
Chapter~\ref{ch:baking}. One challenging aspect
|
||||
of using a loaf pan is to make sure that the center part of your
|
||||
dough is properly cooked. For this reason, it is best to use a thermometer
|
||||
and measure the internal temperature. The bread is ready once the internal
|
||||
|
||||
75
book/pgfsys-dvisvgm4ht.def
Normal file
@@ -0,0 +1,75 @@
|
||||
% Copyright 2021-2024 by Michal Hoftich
|
||||
% Copyright 2006 by Till Tantau
|
||||
%
|
||||
% This file may be distributed and/or modified
|
||||
%
|
||||
% 1. under the LaTeX Project Public License and/or
|
||||
% 2. under the GNU Public License.
|
||||
%
|
||||
% See the file doc/generic/pgf/licenses/LICENSE for more details.
|
||||
|
||||
\ProvidesFileRCS{pgfsys-dvisvgm4ht.def}
|
||||
|
||||
% Driver commands for tex4ht
|
||||
|
||||
%
|
||||
% Load common pdf commands:
|
||||
%
|
||||
|
||||
% we switched to dvisvgm driver by default. it supports patterns and other features
|
||||
% dvips driver is available through the tikz+ option. It doesn't support everything,
|
||||
% but it worked better with nested pictures in the past.
|
||||
\ifdefined\ifOption
|
||||
\ifOption{tikz+}{\input pgfsys-dvips.def}{\input pgfsys-dvisvgm.def}
|
||||
\else
|
||||
% load the dvips driver by default
|
||||
\input pgfsys-dvisvgm.def
|
||||
\fi
|
||||
|
||||
|
||||
\catcode`\:=11%
|
||||
|
||||
% we must call most of these redefinitions in \AtBeginDocument, because \HLet is available
|
||||
% only at that moment
|
||||
\AtBeginDocument{%
|
||||
% configure the output picture format to svg, as it will require dvisvgm
|
||||
% post processing.
|
||||
\Configure{Picture}{.svg}%
|
||||
|
||||
% insert picture hooks to pgfsys commands
|
||||
% these redefinitions are usually called only with the \tikz command,
|
||||
% they are ignored in tikzpicture environment
|
||||
\def\:tempa#1{%
|
||||
\texfourht@tikz@begin%
|
||||
\csname o:pgfsys@typesetpicturebox:\endcsname{#1}
|
||||
\texfourht@tikz@end%
|
||||
}
|
||||
\HLet\pgfsys@typesetpicturebox\:tempa
|
||||
|
||||
% we must remove Picture-alt in \pgfsys@beginpicture, because it can result in alt text included in the image
|
||||
\def\:tempa{\Configure{Picture-alt}{}\texfourht@tikz@begin\o:pgfsys@beginpicture:}
|
||||
\HLet\pgfsys@beginpicture\:tempa
|
||||
\let\o:pgfsys@endpicture:\pgfsys@endpicture
|
||||
\def\:tempa{\o:pgfsys@endpicture:}
|
||||
\HLet\pgfsys@endpicture\:tempa
|
||||
|
||||
% start picture around TikZ and PGF environments
|
||||
\ConfigureEnv{tikzpicture}{\begingroup\texfourht@tikz@begin}{\texfourht@tikz@end\endgroup}{}{}%
|
||||
\ConfigureEnv{pgfpicture}{\begingroup\texfourht@tikz@begin}{\texfourht@tikz@end\endgroup}{}{}%
|
||||
}
|
||||
|
||||
\def\texfourht@tikz@begin{
|
||||
\protect\csname nested:math\endcsname% support display math
|
||||
\Picture*[\csname a:Picture-alt\endcsname]{}%
|
||||
}
|
||||
\def\texfourht@tikz@end{\EndPicture}
|
||||
|
||||
\catcode`\:=12%
|
||||
|
||||
|
||||
\endinput
|
||||
|
||||
|
||||
%%% Local Variables:
|
||||
%%% mode: latex
|
||||
%%% End:
|
||||
30
book/plots/fig-temperature-ambient.tex
Normal file
@@ -0,0 +1,30 @@
|
||||
\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,
|
||||
axis line style={-Latex},
|
||||
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}
|
||||
30
book/plots/fig-temperature-surface.tex
Normal file
@@ -0,0 +1,30 @@
|
||||
\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,
|
||||
axis line style={-Latex},
|
||||
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}
|
||||
43
book/plots/fig-yeast-sourdough-strength.tex
Normal file
@@ -0,0 +1,43 @@
|
||||
\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,
|
||||
axis line style={-Latex},
|
||||
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 |
@@ -27,14 +27,13 @@ starter has half as much water as flour, as summarized in
|
||||
Table~\ref{tab:starter-types-comparison}.
|
||||
|
||||
\begin{table}[htp!]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-starter-types.tex}
|
||||
\caption[Different types of sourdough]{A comparison of different
|
||||
sourdough starter types and their respective properties. The only
|
||||
difference is the amount of water (hydration) that is used when
|
||||
feeding the starter.}%
|
||||
\label{tab:starter-types-comparison}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
You can change your starter type by just adjusting the feeding ratio of how
|
||||
@@ -120,25 +119,24 @@ a vinegary (acetic) or mix of both flavor profiles. You can adjust your
|
||||
starter's flavor by changing the type to a liquid starter.
|
||||
|
||||
\section{Liquid starter}%
|
||||
\label{section:liquid-starter}
|
||||
\label{sec:liquid-starter}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{sourdough-starter-liquid.jpg}
|
||||
\caption[Liquid starter]{A liquid sourdough starter features a high level of
|
||||
water. The high water amount boosts lactic acid producing bacteria.
|
||||
After a while the liquid and flour start to separate. Bubbles on the
|
||||
side of the flour indicate that the starter is ready to be used.}%
|
||||
\label{fig:liquid-sourdough-starter}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-liquid-starter-conversion.tex}
|
||||
\caption[Converting to a liquid starter]{The process to convert your regular
|
||||
or stiff starter into a liquid starter. The whole process takes around
|
||||
or stiff starter into a liquid starter. The whole process takes around
|
||||
3~days. The longer you maintain your starter at the suggested hydration
|
||||
level, the more adapted your microorganisms become. It is recommended to
|
||||
keep a backup of your original starter as the liquid environment will
|
||||
@@ -149,7 +147,6 @@ starter's flavor by changing the type to a liquid starter.
|
||||
starter your created stiff starter will feature both dairy
|
||||
and vinegary notes.}%
|
||||
\label{flc:liquid-starter-conversion}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
The liquid starter is made at a hydration of around \qty{500}{\percent}. This means
|
||||
@@ -160,15 +157,15 @@ By introducing this layer of water, less oxygen is available throughout the
|
||||
course of fermentation. This means that your starter will no longer be
|
||||
producing acetic acid. The heterofermentative lactic acid bacteria will thrive
|
||||
in this environment. This is a neat little trick to change your starter's
|
||||
flavor profile from vinegary to lactic. Your starter is going to develop
|
||||
dairy creamy notes. Interestingly, when changing the hydration again, your starter
|
||||
flavor profile from vinegary to lactic. Your starter is going to develop dairy
|
||||
creamy notes. Interestingly, when changing the hydration again, your starter
|
||||
is going to maintain the liquid starter flavor profile, but then benefit again
|
||||
from enhanced yeast activity. The liquid starter conversion is nonreversible.
|
||||
from enhanced yeast activity. The liquid starter conversion is irreversible.
|
||||
By changing to a liquid starter you will permanently select a subset of
|
||||
microbes that work better in the more liquid environment. So even after going back to a regular
|
||||
or stiff starter the subset of microbes created by the liquid conversion
|
||||
will remain. For this reason, it is recommended to keep a backup of the starter
|
||||
before the liquid starter conversion.
|
||||
microbes that work better in the more liquid environment. So even after going
|
||||
back to a regular or stiff starter the subset of microbes created by the
|
||||
liquid conversion will remain. For this reason, it is recommended to keep a
|
||||
backup of the starter before the liquid starter conversion.
|
||||
|
||||
To begin with the
|
||||
conversion, simply take around \qty{1}{\gram} of your starter, mix with \qty{5}{\gram} flour and
|
||||
@@ -205,7 +202,7 @@ drain the liquid part on your starter and use it. I~have used it numerous
|
||||
times to make lacto-fermented hot sauces.
|
||||
|
||||
\section{Stiff starter}%
|
||||
\label{section:stiff-starter}
|
||||
\label{sec:stiff-starter}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sourdough-starter-stiff.jpg}
|
||||
@@ -228,9 +225,10 @@ mixing the starter there should be no chunks of flour left. Test placing
|
||||
the starter on your kitchen counter. When lifting it should slightly stick
|
||||
to your counter's surface. This test indicates that you hydrated the flour sufficiently.
|
||||
When the mixture is too dry, the fermentation speed is greatly reduced and
|
||||
the starter will seem inactive. The starter should be much drier
|
||||
than a regular starter, but also not too dry. Refer to figure~\ref{fig:stiff-starter-dry-check}
|
||||
for a visual example of the starter's required hydration level.
|
||||
the starter will seem inactive. The starter should be much drier than a
|
||||
regular starter, but also not too dry. Refer to
|
||||
Figure~\ref{fig:stiff-starter-dry-check} for a visual example of the starter's
|
||||
required hydration level.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{stiff-starter-dry-check.jpg}
|
||||
@@ -242,7 +240,7 @@ for a visual example of the starter's required hydration level.
|
||||
\end{figure}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-stiff-starter-conversion.tex}
|
||||
\caption[Converting to a stiff starter]{The process to convert your regular
|
||||
starter into a stiff starter. The whole process takes around 3 days. The
|
||||
@@ -252,7 +250,6 @@ for a visual example of the starter's required hydration level.
|
||||
\qty{50}{\percent} hydration level for the starter. If the dough is too
|
||||
stiff consider increasing this to \qty{60}{\percent}.}%
|
||||
\label{fig:stiff-starter-conversion}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
In the stiffer environment the yeast thrives more. This means you will have
|
||||
@@ -302,13 +299,16 @@ pockets of air on the sides of your container. Use your nose to smell the
|
||||
starter. It should have a mild smell. It also tends to smell much more
|
||||
alcoholic than the other starters.
|
||||
|
||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter for your
|
||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter in terms of
|
||||
baker's math for your
|
||||
dough. This depends on the ripeness of your starter.
|
||||
In summer I~typically use around
|
||||
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
|
||||
also control the fermentation speed.
|
||||
Mixing the starter can be a little bit annoying as it hardly homogenizes with
|
||||
the rest of the dough. In this case you can try to dissolve the starter in the
|
||||
\qtyrange{1}{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
|
||||
also control the fermentation speed. If it is very hot where you live, consider
|
||||
lowering the starter amount to \qtyrange{1}{5}{\percent}. If it is very cold in your
|
||||
area consider increasing the starter amount up to \qty{30}{\percent}.
|
||||
Mixing the stiff starter can be a little bit annoying as it hardly homogenizes with
|
||||
the rest of the dough. In this case, you can try to dissolve the starter in the
|
||||
water you are about to use for your dough. This will make mixing a lot easier.
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\chapter{Making a sourdough starter}%
|
||||
\label{chapter:sourdough-starter}
|
||||
\label{ch:sourdough-starter}
|
||||
\begin{quoting}
|
||||
In this chapter you will learn how to make your
|
||||
own sourdough starter, but before doing so you will
|
||||
@@ -13,7 +13,7 @@ how to prepare your starter for long-term storage.
|
||||
\end{quoting}
|
||||
|
||||
\section{Baker's math}%
|
||||
\label{section:bakers-math}
|
||||
\label{sec:bakers-math}
|
||||
|
||||
In a large bakery, a determining factor is how
|
||||
much flour you have at hand. Based on the amount
|
||||
@@ -38,11 +38,10 @@ comes in handy. Let's look at the default recipe with baker's
|
||||
math and then adjust it for the \qty{1.4}{\kg} flour quantity.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-bakers-math-example.tex}
|
||||
\caption[Baker's math example]{An example table demonstrating how to
|
||||
properly calculate using baker's math}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Note how each of the ingredients is calculated as a percentage
|
||||
@@ -55,12 +54,11 @@ more flour available the next day. As mentioned the next day
|
||||
we have \qty{1.4}{\kg} at hand (\qty{1400}{\gram}).
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-recipe-bakers-math.tex}
|
||||
\caption[Another baker's math example]{An example recipe that uses
|
||||
\qty{1400}{\gram} as its baseline and is then calculated using
|
||||
baker's math.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
For each ingredient we calculate the percentage
|
||||
@@ -86,7 +84,8 @@ are completely lost when trying to scale it up.
|
||||
\section{The process of making a starter}
|
||||
|
||||
\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
|
||||
bubbles in the dough.}%
|
||||
\label{fig:sourdough-starter}
|
||||
@@ -94,7 +93,7 @@ are completely lost when trying to scale it up.
|
||||
|
||||
Making a sourdough starter is very easy, all you need
|
||||
is a little bit of patience. It is in fact so easy that it can be summarized
|
||||
in a simple flowchart~\ref{fig:sourdough-starter-process} The flour you should
|
||||
in a simple Flowchart~\ref{fig:sourdough-starter-process} The flour you should
|
||||
use to bootstrap your starter is ideally a whole flour.
|
||||
You could use whole-wheat, whole-rye, whole-spelt or
|
||||
any other flour you have. In fact gluten free flours such
|
||||
@@ -102,6 +101,14 @@ as rice or corn would also work. Don't worry, you can always
|
||||
change the flour later. Use whatever whole flour you
|
||||
already have at hand.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\centering
|
||||
\input{figures/fig-starter-process.tex}
|
||||
\caption[The full sourdough starter process]{The process of making a sourdough
|
||||
starter from scratch.}%
|
||||
\label{fig:sourdough-starter-process}
|
||||
\end{flowchart}
|
||||
|
||||
Your flour is contaminated with millions of microbes. As explained
|
||||
before in the chapter about wild yeast and bacteria, these
|
||||
microbes live on the surface of the plant. That's why
|
||||
@@ -132,64 +139,16 @@ not airtight. You still want some gas exchange to be possible.
|
||||
I~like to use a glass and place another
|
||||
inverted one on top.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\input{figures/fig-starter-process.tex}
|
||||
\caption[The full sourdough starter process]{The process of making a sourdough
|
||||
starter from scratch.}%
|
||||
\label{fig:sourdough-starter-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Now an epic battle begins. In one study~\cite{yeasts+biocontrol+agent}
|
||||
scientists have identified more than \num{150}~different yeast species living
|
||||
Now an epic battle begins, as visualized in
|
||||
Figure~\ref{fig:sourdough-starter-microbial-war}. In one
|
||||
study~\cite{yeasts+biocontrol+agent} scientists have identified
|
||||
more than \num{150}~different yeast species living
|
||||
on a single leaf of a plant.
|
||||
All of the different yeasts and bacteria are trying to get
|
||||
the upper hand in this battle. Other pathogens such as mold
|
||||
are also being activated as we added water. Only the strongest
|
||||
most adaptable microorganisms will survive.
|
||||
|
||||
By adding water to the
|
||||
flour the starches start to degrade. The seedling tries to
|
||||
sprout but it no longer can. Essential for this process is the
|
||||
amylase enzyme. The compact starch is broken down to more
|
||||
digestible sugars to fuel plant growth. Glucose is what the
|
||||
plant needs in order to grow. The microorganisms that survive
|
||||
this frenzy are adapted to consuming glucose.
|
||||
|
||||
Luckily for us
|
||||
bakers, the yeast and bacteria know very well how to metabolize
|
||||
glucose. This is what they have been fed in the wild by the plants.
|
||||
By forming patches on the leaf and protecting the plant from
|
||||
pathogens they received glucose in return for their services.
|
||||
Each of the microbes tries to defeat the other by consuming the
|
||||
food fastest, producing agents to inhibit food uptake by others or by producing
|
||||
bactericides and/or fungicides. This early stage of the starter
|
||||
is very interesting as more research could possibly reveal
|
||||
new fungicides or antibiotics.
|
||||
|
||||
Depending on where your flour
|
||||
is from, the starting microbes of your starter might be different
|
||||
than the ones from another starter. Some people have also reported
|
||||
how the microbes from your hand or air can influence your starter's
|
||||
microorganisms. This makes sense to a certain extent. Your
|
||||
hand's microbes might be good at fermenting your sweat, but
|
||||
probably not so good at metabolizing glucose. The contamination
|
||||
of your hands or air might play a minor role in the initial epic
|
||||
battle. But only the fittest microbes fitting the sourdough's
|
||||
niche are going to survive.
|
||||
|
||||
This means the microorganisms knowing
|
||||
how to convert maltose or glucose will have the upper hand. Or the
|
||||
microbes fermenting the waste of the other microbes. Ethanol created
|
||||
by the yeast is metabolized by the bacteria in your sourdough. That's
|
||||
why a sourdough has no alcohol. I~can confirm the role of aerial
|
||||
contamination to a certain extent, when setting up a new sourdough
|
||||
starter the whole process is quite quick for me. After a few
|
||||
days my new starter seems to be quite alive already. This might
|
||||
be due to previous contamination of flour fermenting microbes in
|
||||
my kitchen.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war}
|
||||
\caption[Microbial warfare during sourdough early days]{A simple
|
||||
@@ -204,21 +163,60 @@ my kitchen.
|
||||
\label{fig:sourdough-starter-microbial-war}
|
||||
\end{figure}
|
||||
|
||||
By adding water to the
|
||||
flour the starches start to degrade. The seedling tries to
|
||||
sprout but it no longer can. Essential for this process is the
|
||||
amylase enzyme. The compact starch is broken down to more
|
||||
digestible sugars to fuel plant growth. Glucose is what the
|
||||
plant needs in order to grow. The microorganisms that survive
|
||||
this frenzy are adapted to consuming glucose.
|
||||
|
||||
Luckily for us
|
||||
bakers, the yeast and bacteria know very well how to metabolize
|
||||
glucose. This is what they have been fed in the wild by the plants.
|
||||
By forming patches on the leaf and protecting the plant from
|
||||
pathogens they received glucose in return for their services.
|
||||
Each of the microbes tries to defeat the other by consuming the
|
||||
food fastest, producing agents to inhibit food uptake by others or by producing
|
||||
bactericides and/or fungicides. This early stage of the starter
|
||||
is very interesting as more research could possibly reveal
|
||||
new fungicides or antibiotics.
|
||||
|
||||
Depending on where your flour
|
||||
is from, the starting microbes of your starter might be different
|
||||
than the ones from another starter. Some people have also reported
|
||||
how the microbes from your hand or air can influence your starter's
|
||||
microorganisms. This makes sense to a certain extent. Your
|
||||
hand's microbes might be good at fermenting your sweat, but
|
||||
probably not so good at metabolizing glucose. The contamination
|
||||
of your hands or air might play a minor role in the initial epic
|
||||
battle. But only the fittest microbes fitting the sourdough's
|
||||
niche are going to survive.
|
||||
|
||||
This means the microorganisms knowing
|
||||
how to convert maltose or glucose will have the upper hand. Or the
|
||||
microbes fermenting the waste of the other microbes. Ethanol created
|
||||
by the yeast is metabolized by the bacteria in your sourdough. That's
|
||||
why a sourdough has no alcohol. I~can confirm the role of aerial
|
||||
contamination to a certain extent, when setting up a new sourdough
|
||||
starter the whole process is quite quick for me. After a few
|
||||
days my new starter seems to be quite alive already. This might
|
||||
be due to previous contamination of flour fermenting microbes in
|
||||
my kitchen.
|
||||
|
||||
Wait for around 24~hours and observe what happens to your starter.
|
||||
You might see some early signs of fermentation already. Use your nose
|
||||
to smell the dough. Look for bubbles in the dough. Your dough
|
||||
might already have increased in size a little bit. Whatever
|
||||
you see and notice is a sign of the first battle.
|
||||
|
||||
Some microbes
|
||||
have already been outperformed. Others have won the first battle.
|
||||
After around 24~hours most of the starch has been broken down
|
||||
and your microbes are hungry for additional sugars. With a spoon
|
||||
take around \qty{10}{\gram} from the previous day's mixture and place
|
||||
it in a new container. Again --- you could also simply eye ball
|
||||
all the quantities. It does not matter that much. Mix the \qty{10}{\gram}
|
||||
from the previous day with another \qty{50}{\gram} of flour
|
||||
and \qty{50}{\gram} of water.
|
||||
Some microbes have already been outperformed. Others have won the first
|
||||
battle. After around \qty{24}{hours} most of the starch has been broken down
|
||||
and your microbes are hungry for additional sugars. With a spoon take around
|
||||
\qty{10}{\gram} from the previous day's mixture and place it in a new
|
||||
container. Again---you could also simply eye ball all the quantities. It does
|
||||
not matter that much. Mix the \qty{10}{\gram} from the previous day with
|
||||
another \qty{50}{\gram} of flour and \qty{50}{\gram} of water.
|
||||
|
||||
Note the ratio of 1:5. I~very often use
|
||||
1~part of old culture with 5~parts of flour and 5~parts of water.
|
||||
@@ -232,16 +230,27 @@ the mix again with a glass or a lid. If you notice the top of
|
||||
your mixture dries out a lot consider using another cover. The
|
||||
dried-out parts will be composted by more adapted microbes such as
|
||||
mold. In many user reports, I~saw mold being able to damage
|
||||
the starter when the starter itself dried out a lot.
|
||||
the starter when the starter itself dried out a lot.
|
||||
|
||||
You will
|
||||
still have some mixture left from your first day. As this contains
|
||||
possibly dangerous pathogens that have been activated make sure you discard
|
||||
this mixture. Once your sourdough starter is mature you never need to
|
||||
discard it. It's long-fermented flour that is an excellent addon
|
||||
this mixture. A rule of thumb is to begin keeping the discard,
|
||||
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
|
||||
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
|
||||
in size and/or the starter changing its smell. Some people give
|
||||
@@ -272,14 +281,16 @@ yeast has been isolated like this from century old sourdough
|
||||
starters.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-starter-readiness.tex}
|
||||
\caption[Determining sourdough starter readiness]{A flow chart showing you how to
|
||||
determine if your sourdough starter is ready to be used. For checking
|
||||
readiness look at a size increase and take note of your starter's smell.
|
||||
Both are important indicators to check for readiness.}%
|
||||
determine if your sourdough starter is ready to be used. Make sure to
|
||||
wait at least \qtyrange{6}{12}{\hour} after feeding your
|
||||
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}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
The key sign to look at is bubbles that you see in your starter
|
||||
@@ -331,8 +342,8 @@ don't use this test and can't recommend it.
|
||||
Once you see your starter is ready I~would recommend giving it
|
||||
one last feeding and then you are ready to make your dough in the
|
||||
evening or the next day. For the instructions on how to make your
|
||||
first dough please refer to the next chapters (\ref{chapter:wheat-sourdough}
|
||||
and~\ref{chapter:non-wheat-sourdough}) in this book.
|
||||
first dough please refer to the next chapters (\ref{ch:wheat-sourdough}
|
||||
and~\ref{ch:non-wheat-sourdough}) in this book.
|
||||
|
||||
If your first bread failed, chances are your fermentation hasn't
|
||||
worked as expected. In many cases the reason is your sourdough starter. Maybe
|
||||
@@ -346,7 +357,7 @@ yeast part of your sourdough and balance the fermentation.
|
||||
\section{Maintenance}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-starter-maintenance.tex}
|
||||
\caption[Sourdough starter maintenance flowchart]{A full flowchart showing
|
||||
you how to conduct proper sourdough starter maintenance. You can use a
|
||||
@@ -356,7 +367,6 @@ yeast part of your sourdough and balance the fermentation.
|
||||
\qty{100}{\percent} hydration level. Adjust the water content
|
||||
accordingly when you use a stiff starter.}%
|
||||
\label{fig:sourdough-maintenance-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
You have made your sourdough starter and your first bread. How do you perform
|
||||
@@ -432,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
|
||||
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
|
||||
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
|
||||
bacteria. Generally, the warmer it is the faster the fermentation process is,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
\ProvidesPackage{sourdough}
|
||||
\usepackage{blindtext}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{longtable}
|
||||
\usepackage{chemformula}
|
||||
\usepackage{chemfig}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{makecell}
|
||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||
\usepackage{fontspec}
|
||||
@@ -24,15 +24,17 @@
|
||||
types=flowcharts,% ,
|
||||
float,
|
||||
floattype=4,%
|
||||
counterwithin=chapter,
|
||||
name=Flowchart,%
|
||||
listname = {List of Flowcharts}
|
||||
]{loc}
|
||||
\setuptoc{loc}{chapteratlist}
|
||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{figure}
|
||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{flowchart}
|
||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{table}
|
||||
|
||||
% Common abbreviations
|
||||
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\input{abbreviations.tex}
|
||||
|
||||
% Consistent pH values
|
||||
\newcommand{\pHvalue}[1]{pH~\SI{#1}{}}
|
||||
@@ -50,8 +52,9 @@
|
||||
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
|
||||
% Fonts for accessibility
|
||||
\ifdefined\isaccessible
|
||||
\setmainfont{Open Sans}[
|
||||
Scale=MatchLowercase]
|
||||
\usepackage[mathrm=sym]{unicode-math}
|
||||
\setmathfont{Fira Math}[Scale=MatchLowercase]
|
||||
\setmainfont{Open Sans}[Scale=MatchLowercase]
|
||||
\else
|
||||
\setmainfont{TeX Gyre Pagella}[Scale=1.0] % Or Palatino Linotype, etc.
|
||||
% TODO not available on github CI
|
||||
@@ -71,10 +74,11 @@
|
||||
\addbibresource{references.bib}
|
||||
|
||||
% Clickable links in the table of contents
|
||||
\usepackage[ocgcolorlinks]{hyperref}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{bookmark}
|
||||
\hypersetup{%
|
||||
linktoc=all,
|
||||
colorlinks = true,
|
||||
linkcolor = hlorange,
|
||||
urlcolor = codeblue,
|
||||
citecolor = hlocre,
|
||||
@@ -109,8 +113,8 @@
|
||||
}
|
||||
|
||||
% Caption and figure size below images
|
||||
\usepackage{caption}
|
||||
\captionsetup[figure]{font=footnotesize}
|
||||
\addtokomafont{captionlabel}{\textbf}
|
||||
\addtokomafont{caption}{\small}
|
||||
|
||||
\DeclareSIUnit\degF{\text{°}F}
|
||||
|
||||
|
||||
562
book/spelling_exceptions.txt
Normal file
@@ -0,0 +1,562 @@
|
||||
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
|
||||
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
|
||||
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
|
||||
carbonarius
|
||||
cerevisiae
|
||||
chapappifchapterprefix
|
||||
chapteratlist
|
||||
chapterformat
|
||||
chapterlinesformat
|
||||
chapterstylebar
|
||||
chapterstylekao
|
||||
chapterstylelines
|
||||
chapterstyleplain
|
||||
chemfig
|
||||
chemformula
|
||||
citecolor
|
||||
codeblack
|
||||
codeblue
|
||||
coeliac
|
||||
countertop
|
||||
crum
|
||||
defaultfontfeatures
|
||||
degF
|
||||
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
|
||||
hyperref
|
||||
hypersetup
|
||||
ie
|
||||
ifdefined
|
||||
ifnextchar
|
||||
ifthenelse
|
||||
ifwidelayout
|
||||
includegraphics
|
||||
injera
|
||||
isaccessible
|
||||
jalapeño
|
||||
jordan
|
||||
kao
|
||||
karl
|
||||
keepaspectratio
|
||||
kitchenaid
|
||||
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ée
|
||||
pâte
|
||||
raffaella
|
||||
redpic
|
||||
renewcommand
|
||||
rl
|
||||
roti
|
||||
saccharomyces
|
||||
sanfranciscensis
|
||||
sanfrancisco
|
||||
saprotrophic
|
||||
sbseries
|
||||
scalebox
|
||||
scandinavia
|
||||
scorings
|
||||
selectfont
|
||||
semibold
|
||||
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
|
||||
xsep
|
||||
xshift
|
||||
yYkTrGHNW2w
|
||||
yeasted
|
||||
yellowpic
|
||||
yogurty
|
||||
ysep
|
||||
yshift
|
||||
yudane
|
||||
ziplock
|
||||
Örjan
|
||||
Łukasz
|
||||
@@ -1,5 +1,5 @@
|
||||
\chapter{Storing bread}%
|
||||
\label{chapter:storing-bread}
|
||||
\label{ch:storing-bread}
|
||||
\begin{quoting}
|
||||
In this chapter you will discuss different methods of storing your bread, each
|
||||
with their own pro and cons. This way your bread can be best enjoyed at a
|
||||
@@ -7,14 +7,13 @@ later time.
|
||||
\end{quoting}
|
||||
|
||||
A summary can be found in Table~\ref{table:bread-storage}, with details and
|
||||
explanation in th rest of this chapter.
|
||||
explanation in the rest of this chapter.
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-storing-bread-overview.tex}
|
||||
\caption[Options to store bread]{A table visualizing the advantages
|
||||
and disadvantages of different bread storing options.}%
|
||||
\label{table:bread-storage}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
\section{Room temperature}
|
||||
@@ -117,8 +116,7 @@ This option is great for very long-term storage. Personally
|
||||
I~like having a few slices of bread frozen as an emergency
|
||||
backup when I~have had no time to bake.
|
||||
|
||||
A 2008 study hints that there might be some health
|
||||
benefits to freezing and toasting your bread. By doing so
|
||||
the starch molecules could become more resistant to digestion
|
||||
and thus lower your body's blood sugar
|
||||
response by almost 40\%~\cite{freezing+toasting+bread}.
|
||||
A 2008 study hints that there might be some health benefits to freezing and
|
||||
toasting your bread. By doing so the starch molecules could become more
|
||||
resistant to digestion and thus lower your body's blood sugar response by
|
||||
almost \qty{40}{\percent}~\cite{freezing+toasting+bread}.
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;800&display=swap');
|
||||
|
||||
:root{
|
||||
--ff-sans: 'Open Sans', sans-serif;
|
||||
--fw-regular: 400;
|
||||
@@ -15,6 +13,8 @@
|
||||
--padding-hamburger: 5px;
|
||||
--c-beige: #F3EDE6;
|
||||
--border-radius: 7px;
|
||||
--image-padding: 14px;
|
||||
--image-background: #ffffff;
|
||||
}
|
||||
|
||||
@media (min-width: 1200px){
|
||||
@@ -145,7 +145,6 @@ nav.TOC a, nav.TOC a:visited{
|
||||
/* *** Colors *** */
|
||||
/* ************** */
|
||||
|
||||
|
||||
body{
|
||||
background-color: var(--c-beige);
|
||||
}
|
||||
@@ -252,6 +251,10 @@ figcaption.caption {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc, .addchapToc a {
|
||||
font-weight: var(--fw-bold);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.toggle-menu-label {
|
||||
display: block;
|
||||
@@ -315,7 +318,7 @@ figcaption.caption {
|
||||
display: block;
|
||||
color: #000;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
font-weight: var(--fw-bold);
|
||||
}
|
||||
|
||||
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
|
||||
@@ -385,11 +388,6 @@ h4 {
|
||||
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 {
|
||||
background-color: var(--c-beige);
|
||||
}
|
||||
@@ -478,8 +476,8 @@ nav.TOC span:hover, nav.TOC span:hover *, nav.TOC span.chapterToc.selected, nav.
|
||||
}
|
||||
|
||||
p.flowchart-image-wrapper {
|
||||
background: white;
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.menu-items .menu-group:last-of-type .menu-arrow {
|
||||
@@ -501,7 +499,7 @@ blockquote {
|
||||
border: 2px solid var(--c-black);
|
||||
color: var(--c-black);
|
||||
padding: 4px;
|
||||
font-weight: bold;
|
||||
font-weight: var(--fw-bold);
|
||||
text-decoration: none;
|
||||
}
|
||||
.crosslinks-bottom a.prev {
|
||||
@@ -524,6 +522,35 @@ blockquote {
|
||||
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;
|
||||
}
|
||||
|
||||
main.main-content h2.chapterHead.home-content-title {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.download-description {
|
||||
font-weight: var(--fw-bold);
|
||||
}
|
||||
|
||||
.download-links {
|
||||
p.indent, p.noindent {
|
||||
text-align: unset;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.header {
|
||||
display: none;
|
||||
@@ -568,10 +595,6 @@ blockquote {
|
||||
background: var(--c-black-background);
|
||||
}
|
||||
|
||||
p.flowchart-image-wrapper {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.menu-entry:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
@@ -585,4 +608,12 @@ blockquote {
|
||||
background-color: var(--c-black-background);
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
.mobile-banner a img {
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
figure.float, div.figure, figure.figure {
|
||||
padding: calc(var(--image-padding) / 2);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,6 @@ Anna G.,
|
||||
Anonnn,
|
||||
Anthony Atkinson,
|
||||
Aurore,
|
||||
BTSkete,
|
||||
Beatriz,
|
||||
Bee,
|
||||
Ben Davies,
|
||||
@@ -23,6 +22,7 @@ Blixikan,
|
||||
Blusie,
|
||||
Brigitta,
|
||||
Brockman,
|
||||
BTSkete,
|
||||
C Fazio,
|
||||
Cal Kotz,
|
||||
Case,
|
||||
@@ -36,12 +36,12 @@ Christiane B,
|
||||
Christine,
|
||||
Chrysanna,
|
||||
Colleen Guidone,
|
||||
DKitSeattle,
|
||||
Danieel,
|
||||
Daniel,
|
||||
David,
|
||||
Dee,
|
||||
Desiree S,
|
||||
DKitSeattle,
|
||||
Douglas Penna,
|
||||
Drey,
|
||||
Duivelsjong,
|
||||
@@ -68,6 +68,7 @@ Jessicat,
|
||||
Jimjo,
|
||||
John E Bergman,
|
||||
Jonathan,
|
||||
JorisBelmans,
|
||||
Jose Lausuch,
|
||||
Judith Roth,
|
||||
Julian,
|
||||
@@ -140,7 +141,7 @@ Sven,
|
||||
Tbonewilly,
|
||||
Thales Mello,
|
||||
Therealbruce,
|
||||
Tracy \& Paul Will,
|
||||
Tracy and Paul Will,
|
||||
Usliv,
|
||||
Vassil Dichev,
|
||||
Vladimir Smirnov,
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
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.\\
|
||||
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.\\
|
||||
170 / 338 & Caramelization & Remaining sugars begin to caramelise giving your bread a distinct flavor.\\ \bottomrule
|
||||
170 / 338 & Caramelization & Remaining sugars begin to caramelize giving your bread a distinct flavor.\\ \bottomrule
|
||||
\end{tabular}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
%TODO: Alignement is not great
|
||||
%TODO: Alignment is not great
|
||||
\begin{tabular}{@{}lll@{}}
|
||||
\toprule
|
||||
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
|
||||
|
||||
@@ -11,4 +11,35 @@
|
||||
\Configure{AddCss}{book-ebook.css}
|
||||
\Configure{CoverMimeType}{image/jpeg}
|
||||
\CoverMetadata{cover/cover-page.jpg}
|
||||
\AddToHook{env/tikzpicture/begin}{\fontfamily{opensans-TLF}\selectfont}
|
||||
\Configure{@HEAD}{\HCode{
|
||||
<style type="text/css">
|
||||
@import url('https://fonts.cdnfonts.com/css/open-sans');
|
||||
body{
|
||||
font-family: 'Open Sans';
|
||||
}
|
||||
</style>}}
|
||||
|
||||
% Deal with chemical equations in a single svg
|
||||
\ExplSyntaxOn
|
||||
\def\standaloneenv#1{}
|
||||
\pend:def\schemestart{\Picture+{}}
|
||||
\append:def\CF_schemestop{\EndPicture}
|
||||
\ExplSyntaxOff
|
||||
\makeatletter
|
||||
\def\texfourht@tikz@begin{
|
||||
\protect\csname nested:math\endcsname% support display math
|
||||
\Picture+[\csname a:Picture-alt\endcsname]{}%
|
||||
}
|
||||
\makeatother
|
||||
|
||||
% Warnig from Michal: Note that once you get the updated TeX Live with a new
|
||||
% `chemfig.4ht` file, you can remove this from the config file:
|
||||
%
|
||||
%```latex \pend:def\schemestart{\Picture+{}}
|
||||
%\append:def\CF_schemestop{\EndPicture} ```
|
||||
%
|
||||
%You could get an error otherwise, as there would be nested `\Picture+{}` and
|
||||
%`\EndPicture` commands.
|
||||
|
||||
\EndPreamble
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
\section{Debugging your crumb structure}%
|
||||
\label{section:debugging-crumb-structure}
|
||||
\label{sec:debugging-crumb-structure}
|
||||
|
||||
The crumb structure of your bread provides insights into how well
|
||||
your fermentation process has gone. You can also spot common flaws
|
||||
@@ -7,6 +7,7 @@ arising from improper technique. This chapter will provide you with information
|
||||
that you can use to debug your baking process.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{crumb-structures-book}
|
||||
\caption[Debugging your crumb structure]{A schematic visualization of
|
||||
different crumb structures and their respective causes. The final bread's
|
||||
@@ -18,6 +19,7 @@ that you can use to debug your baking process.
|
||||
\subsection{Perfect fermentation}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{open-crumb}
|
||||
\caption[Perfectly fermented bread]{The bread has a somewhat open crumb
|
||||
with areas featuring a honeycomb structure.}%
|
||||
@@ -49,6 +51,7 @@ A good rule of thumb is to not touch your dough for at least 1--2~hours before s
|
||||
to achieve as open a crumb as possible.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{honeycomb}
|
||||
\caption[Honeycomb crumb structure]{A whole-wheat sourdough with an almost
|
||||
exclusive honeycomb crumb structure.}%
|
||||
@@ -75,8 +78,10 @@ of this bread compared to an open crumb.
|
||||
\label{subsec:overfermented-dough}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{fermented-too-long}
|
||||
\caption[Overfermented sourdough bread]{A relatively flat dough that has many tiny pockets of air.}%
|
||||
\caption[Overfermented sourdough bread]{A relatively flat dough that has
|
||||
many tiny pockets of air.}%
|
||||
\label{fig:fermented-too-long}
|
||||
\end{figure}
|
||||
|
||||
@@ -154,10 +159,11 @@ room temperature briefly before refrigerating can be beneficial.
|
||||
\subsection{Underfermented}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{fermented-too-short-underbaked}
|
||||
\caption[Underfermented bread]{A dense dough featuring a gummy, not fully
|
||||
gelatinized area. The picture has been provided by the user wahlfeld
|
||||
from our community Discord server.}%
|
||||
gelatinized area. The picture has been provided by the user
|
||||
\emph{wahlfeld} from our community Discord server.}%
|
||||
\label{fig:fermented-too-short-underbaked}
|
||||
\end{figure}
|
||||
|
||||
@@ -189,11 +195,12 @@ of air in your crumb. But in reality you fermented for too short a period
|
||||
of time.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{fools-crumb}
|
||||
\caption[Fool's crumb large alveoli]{A typical example of a fool's crumb
|
||||
featuring an ear and several overly large alveoli. The picture has been
|
||||
provided by Rochelle from our community Discord server.}%
|
||||
\label{fools-crumb}
|
||||
\label{fig:fools-crumb}
|
||||
\end{figure}
|
||||
|
||||
In a properly fermented dough, the alveoli help with the heat transfer throughout the dough.
|
||||
@@ -215,7 +222,7 @@ do for your main bread dough. Assuming you use \qty{20}{\percent} starter
|
||||
calculated on the flour, use a 1:5:5 ratio to feed your starter. That would be
|
||||
\qty{10}{\gram} of existing starter, \qty{50}{\gram} of flour, \qty{50}{\gram}
|
||||
of water for instance. To boost your yeast activity even more, you can
|
||||
consider making a stiff sourdough
|
||||
consider making a stiff sourdough
|
||||
starter. The bacteria produces mostly acid. The more acidity
|
||||
is piled up, the less active your yeast is. The stiff sourdough starter
|
||||
enables you to start your dough's fermentation with stronger yeast activity
|
||||
@@ -224,9 +231,10 @@ and less bacterial activity.
|
||||
\subsection{Not enough dough strength}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{flat-bread}
|
||||
\caption{A very flat bread without enough dough strength.}%
|
||||
\label{flat-bread}
|
||||
\label{fig:flat-bread}
|
||||
\end{figure}
|
||||
|
||||
When a dough flattens out quite a lot during the baking process, the chances are
|
||||
@@ -249,9 +257,10 @@ The last option to fix a dough with too little dough strength is to shape your d
|
||||
\subsection{Baked too hot}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{baked-too-hot-v2}
|
||||
\caption{A bread with very large alveoli close to the crust.}%
|
||||
\label{baked-too-hot}
|
||||
\label{fig:baked-too-hot}
|
||||
\end{figure}
|
||||
|
||||
This is a common mistake that has happened to me a lot. When you bake your dough
|
||||
@@ -280,10 +289,11 @@ turn the fan off, consider using a Dutch oven.
|
||||
\subsection{Baked with too little steam}
|
||||
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{no-steam}
|
||||
\caption[Bread baked with too little steam]{One of my earlier breads that
|
||||
I~baked at a friend's place where I~couldn't steam the dough properly.}%
|
||||
\label{no-steam}
|
||||
\label{fig:no-steam}
|
||||
\end{figure}
|
||||
|
||||
Similar to baking too hot, when baking without enough steam, your dough's crust
|
||||
@@ -304,11 +314,12 @@ tray on top of my dough, paired with a bowl full of boiling water towards the bo
|
||||
of the oven.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{apple-experiment-temperatures}
|
||||
\caption[Measuring ambient and surface temperature]{An apple with 2 probes
|
||||
to measure ambient and surface temperatures of several steaming
|
||||
techniques in a Dutch oven.}%
|
||||
\label{apple-experiment-temperatures}
|
||||
\label{fig:apple-experiment-temperatures}
|
||||
\end{figure}
|
||||
|
||||
Now there can also be too much steam. For this I~tested using a Dutch oven paired with large ice
|
||||
@@ -325,19 +336,21 @@ the surface of the apple a lot quicker. When replicating this with a bread dough
|
||||
I~would achieve less oven spring.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\includegraphics[width=\textwidth]{apple-experiment-surface-temperatures}
|
||||
\centering
|
||||
\input{plots/fig-temperature-surface.tex}
|
||||
\caption[Surface temperature versus steaming technique]{A chart showing how
|
||||
the temperature of the apple's surface changes with different
|
||||
steaming techniques.}%
|
||||
\label{apple-experiment-surface-temperatures}
|
||||
\label{fig:apple-experiment-surface-temperatures}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\includegraphics[width=\textwidth]{apple-experiment-ambient-temperatures}
|
||||
\centering
|
||||
\input{plots/fig-temperature-ambient.tex}
|
||||
\caption[Dutch Oven temperature versus steaming technique]{This figure shows
|
||||
how the ambient temperatures inside of the Dutch oven change depending
|
||||
on the steaming technique that is used.}%
|
||||
\label{apple-experiment-ambient-temperatures}
|
||||
\label{fig:apple-experiment-ambient-temperatures}
|
||||
\end{figure}
|
||||
|
||||
Generally though, achieving too much steam is relatively challenging. I~could only
|
||||
|
||||
@@ -8,60 +8,37 @@ situation. You can then apply the appropriate measures and squash each
|
||||
\section{Starter}
|
||||
\subsection{My starter does not double in size}
|
||||
|
||||
Some bakers call for the sourdough starter to
|
||||
double in size before using it.
|
||||
The idea is to use the sourdough starter at
|
||||
peak performance to ensure a
|
||||
Some bakers call for the sourdough starter to double in size before using it.
|
||||
The idea is to use the sourdough starter at peak performance to ensure a
|
||||
balanced fermentation in the main dough.
|
||||
|
||||
The doubling in size metric should be
|
||||
taken with a grain of salt when judging
|
||||
your starter. Depending on the flour
|
||||
you use to feed the starter, different levels
|
||||
of its rising can be expected.
|
||||
For instance, if you use rye flour then only
|
||||
very little gas from the
|
||||
fermentation can be retained inside the
|
||||
starter. In consequence, your
|
||||
sourdough starter will not rise as much. It
|
||||
could still be in healthy shape. If you use wheat flour with less gluten,
|
||||
the starter will not rise as
|
||||
much either. The reason is that you have a weaker
|
||||
gluten network resulting in
|
||||
more gas dispersing out of your dough.
|
||||
The doubling in size metric should be taken with a grain of salt when judging
|
||||
your starter. Depending on the flour you use to feed the starter, different
|
||||
levels of its rising can be expected. For instance, if you use rye flour then
|
||||
only very little gas from the fermentation can be retained inside the starter.
|
||||
In consequence, your sourdough starter will not rise as much. It could still
|
||||
be in healthy shape. If you use wheat flour with less gluten, the starter will
|
||||
not rise as much either. The reason is that you have a weaker gluten network
|
||||
resulting in more gas dispersing out of your dough.
|
||||
|
||||
That being said, it is recommended that you develop
|
||||
your volume increase
|
||||
metric. Your starter will increase in size and then
|
||||
ultimately lose structure
|
||||
and collapse. Observe the point before it collapses.
|
||||
This is the point when
|
||||
you should use your starter. This could be a
|
||||
\qty{50}{\percent} volume increase, 100
|
||||
percent or \qty{200}{\percent}. It is always better to use
|
||||
the starter a little bit
|
||||
too early rather than too late. If you use the
|
||||
starter later, reduce the
|
||||
quantity that you use. If the recipe calls for a 20
|
||||
percent starter quantity,
|
||||
use only 10
|
||||
percent starter in that case. Your starter will
|
||||
regrow in your main dough.
|
||||
That being said, it is recommended that you develop your volume increase
|
||||
metric. Your starter will increase in size and then ultimately lose structure
|
||||
and collapse. Observe the point before it collapses. This is the point when
|
||||
you should use your starter. This could be a \qty{50}{\percent} volume
|
||||
increase, \qty{100}{\percent} or \qty{200}{\percent}. It is always better to
|
||||
use the starter a little bit too early rather than too late. If you use the
|
||||
starter later, reduce the quantity that you use. If the recipe calls for a
|
||||
\qty{20}{\percent} starter quantity, use only \qty{10}{\percent} starter in
|
||||
that case. Your starter will regrow in your main dough.
|
||||
|
||||
On top of relying on the size increase, start
|
||||
taking note of your starter's
|
||||
smell. Over time you will be able to judge its
|
||||
fermentation state based on the
|
||||
smell. The stronger the smell becomes, the further
|
||||
your dough has fermented.
|
||||
This is a sign that you should use less starter
|
||||
when making the actual dough.
|
||||
On top of relying on the size increase, start taking note of your starter's
|
||||
smell. Over time you will be able to judge its fermentation state based on the
|
||||
smell. The stronger the smell becomes, the further your dough has fermented.
|
||||
This is a sign that you should use less starter when making the actual dough.
|
||||
|
||||
Please refer to
|
||||
Section~\ref{section:readying-starter}~``\nameref{section:readying-starter}''
|
||||
for more information on the topic.
|
||||
|
||||
|
||||
Section~\ref{sec:readying-starter}~``\nameref{sec:readying-starter}'' for more
|
||||
information on the topic.
|
||||
|
||||
\subsection{What's the best starter feeding ratio?}
|
||||
|
||||
@@ -84,12 +61,12 @@ ferment the dough into which it is later inoculated.
|
||||
The only exception to the 1:5:5 and 1:10:10 rule is the initial
|
||||
starter set-up stage. For the first days during the starter-making
|
||||
process there aren't enough microbes yet. So using a 1:1:1 ratio
|
||||
can speed up the process.
|
||||
can speed up the process.
|
||||
\subsection{What's the benefit of using a stiff sourdough starter?}
|
||||
|
||||
A regular sourdough starter has equal parts of
|
||||
flour and water (\qty{100}{\percent} hydration). A stiffer
|
||||
sourdough starter features a hydration level of 50 to \qty{60}{\percent}.
|
||||
A regular sourdough starter has equal parts of flour and water
|
||||
(\qty{100}{\percent} hydration). A stiffer sourdough starter features a
|
||||
hydration level of \qtyrange{50}{60}{\percent}.
|
||||
|
||||
The stiff sourdough starter boosts the yeast part
|
||||
of your starter more. This way your gluten degrades
|
||||
@@ -97,7 +74,7 @@ slower and you can ferment for a longer period. This
|
||||
is especially handy when baking with lower gluten flours.
|
||||
|
||||
You can read more about the topic of stiff sourdough
|
||||
starters in Section~\ref{section:stiff-starter}.
|
||||
starters in Section~\ref{sec:stiff-starter}.
|
||||
|
||||
\subsection{What's the benefit of using a liquid sourdough starter?}
|
||||
|
||||
@@ -106,7 +83,7 @@ fermentation in your starter. This way your starter
|
||||
tends to produce more lactic acid rather than acetic
|
||||
acid. Lactic acid is perceived as milder and more
|
||||
yogurty. Acetic acid can sometimes taste quite
|
||||
pungent. Acetic acid can be perfect when making
|
||||
pungent. Acetic acid can be perfect when making
|
||||
dark rye bread but not so much when making a fluffy
|
||||
ciabatta-style loaf.
|
||||
|
||||
@@ -124,7 +101,7 @@ will need to use strong high-gluten flour when using
|
||||
this type of starter.
|
||||
|
||||
You can read more about the liquid starter in
|
||||
Section~\ref{section:liquid-starter}
|
||||
Section~\ref{sec:liquid-starter}
|
||||
|
||||
\subsection{My new starter doesn't rise at all}
|
||||
|
||||
@@ -141,7 +118,7 @@ should dissipate within 12--24~hours, and you have
|
||||
the added advantage of automatically having
|
||||
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
|
||||
bacterial contamination. Making a starter
|
||||
from just white flour sometimes doesn't work.
|
||||
@@ -188,23 +165,21 @@ protecting your sourdough starter from aerobic mold entering through
|
||||
the top.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{sourdough-starter-hooch}
|
||||
\caption[Hooch] {Hooch building on top of a sourdough
|
||||
starter~\cite{liquid+on+starter}.}%
|
||||
\label{fig:hooch}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Simply stir your sourdough starter to homogenize the hooch back
|
||||
into your starter. The hooch will disappear. Then use a little bit of
|
||||
your sourdough starter to set up the starter for your next bread.
|
||||
Once hooch appears, your starter has likely fermented for a long
|
||||
period of time. It might be very sour. This state of starter
|
||||
is excellent to make discard crackers or a discard bread. Don't throw
|
||||
anything away. Your hooch is a sign that you have a long fermented
|
||||
dough in front of you. Compare it to a 2 year ripened Parmigiano cheese.
|
||||
The dough in front of you is full of delicious flavor.
|
||||
Simply stir your sourdough starter to homogenize the hooch back into your
|
||||
starter. The hooch will disappear. Then use a little bit of your sourdough
|
||||
starter to set up the starter for your next bread. Once hooch appears, your
|
||||
starter has likely fermented for a long period of time. It might be very sour.
|
||||
This state of starter is excellent to make discard crackers or a discard
|
||||
bread. Don't throw anything away. Your hooch is a sign that you have a long
|
||||
fermented dough in front of you. Compare it to a two year ripened Parmigiano
|
||||
cheese. The dough in front of you is full of delicious flavor.
|
||||
|
||||
\subsection{Fixing a moldy sourdough starter}
|
||||
|
||||
@@ -251,6 +226,7 @@ fewer and fewer. Furthermore, it seems that lactic acid bacteria produce
|
||||
metabolites that inhibit mold growth~\cite{mold+lactic+acid+bacteria}.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{fungi-lactic-acid-interactions}
|
||||
\caption[The interaction of lactic acid bacteria and mold fungi]{The
|
||||
interaction of lactic acid bacteria and mold fungi.
|
||||
@@ -309,7 +285,7 @@ to most pathogens that you do not want in your starter.
|
||||
|
||||
Another approach that can help is to convert your
|
||||
sourdough starter into a stiff starter as
|
||||
described in Section~\ref{section:stiff-starter}.
|
||||
described in Section~\ref{sec:stiff-starter}.
|
||||
|
||||
\subsection{Why does my starter smell like vinegar or acetone?}
|
||||
|
||||
@@ -321,12 +297,11 @@ When tasting acetic acid, the flavor of your bread is often perceived
|
||||
as quite strong.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-ethanol-oxidation.tex}
|
||||
\caption[Acetic acid creation]{Oxygen is required to create acetic
|
||||
acid~\cite{acetic+acid+production}.}%
|
||||
\label{fig:ethanol-oxidation}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
This is nothing bad. But if you would like to change
|
||||
@@ -363,9 +338,9 @@ In \qty{95}{\percent} of all cases, an autolysis
|
||||
makes no sense. Instead I~recommend
|
||||
that you conduct a fermentolysis. You
|
||||
can read more about the autolysis process in
|
||||
Section~\ref{section:autolysis} and
|
||||
Section~\ref{sec:autolysis} and
|
||||
more about the topic of fermentolysis
|
||||
in Section~\ref{section:fermentolysis}.
|
||||
in Section~\ref{sec:fermentolysis}.
|
||||
|
||||
The fermentolysis combines all the benefits
|
||||
of the autolysis while eliminating disadvantages
|
||||
@@ -396,18 +371,19 @@ measure your dough's size increase.
|
||||
|
||||
Another option could be to use a more expensive pH meter to measure your
|
||||
dough's acidity buildup. You can read more about different ways of managing
|
||||
bulk fermentation in Section~\ref{section:bulk-fermentation}.
|
||||
bulk fermentation in Section~\ref{sec:bulk-fermentation}.
|
||||
|
||||
\subsection{What's a good level of water (hydration) to make a dough?}
|
||||
|
||||
Especially when starting to make bread, use lower amounts of water. This will
|
||||
greatly simplify the whole process. I~recommend using a level of around 60
|
||||
percent hydration. So for every \qty{100}{\gram} of flour use around \qty{60}{\gram} of water.
|
||||
This ballpark figure will work for most flours. With this hydration, you can
|
||||
make bread, buns, pizzas, and even baguettes out of the same dough.
|
||||
greatly simplify the whole process. I~recommend using a level of around
|
||||
\qty{60}{\percent} hydration. So for every \qty{100}{\gram} of flour use
|
||||
around \qty{60}{\gram} of water. This ballpark figure will work for most
|
||||
flours. With this hydration, you can make bread, buns, pizzas, and even
|
||||
baguettes out of the same dough.
|
||||
|
||||
With the lower hydration, dough handling becomes easier and you have more yeast
|
||||
fermentation, resulting in lower over-fermentation risk.
|
||||
With the lower hydration, dough handling becomes easier and you have more
|
||||
yeast fermentation, resulting in lower over-fermentation risk.
|
||||
|
||||
\subsection{My dough completely tears after a long fermentation}
|
||||
|
||||
@@ -423,13 +399,14 @@ the more gluten is broken down. As the gluten holds the
|
||||
wheat dough together, your dough will ultimately tear.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{tearing-dough}
|
||||
\caption[Dough tearing]{My dough tearing after 24~hours of no activity.}%
|
||||
\label{fig:tearing-dough}
|
||||
\end{figure}
|
||||
|
||||
In the picture~\ref{fig:tearing-dough} I~experimented with
|
||||
using a starter that has not been fed for 30 days at room temperature.
|
||||
using a starter that has not been fed for 30~days at room temperature.
|
||||
I~tried to make a dough directly out of the unfed starter.
|
||||
Typically after a long period
|
||||
without feedings your microbes start to sporulate and go
|
||||
@@ -485,7 +462,7 @@ in a stronger gluten network toward the end
|
||||
of the fermentation~\cite{stiff+starter}. Please
|
||||
also refer to the Subsection~\ref{subsec:overfermented-dough} where
|
||||
I~explained more about overfermented doughs. You can also
|
||||
refer to Section~\ref{section:stiff-starter} with more details on
|
||||
refer to Section~\ref{sec:stiff-starter} with more details on
|
||||
making a stiff sourdough starter.
|
||||
|
||||
Furthermore, a stronger flour containing more gluten
|
||||
@@ -606,7 +583,7 @@ I~tested a regular starter, a liquid starter and a stiff
|
||||
starter. The stiff starter by far created the most \ch{CO2}
|
||||
compared to the other starters. As a consequence, the stiff
|
||||
starter balloon was inflated the most~\cite{stiff+starter}. You can read more
|
||||
about the topic of stiff starters in Section~\ref{section:stiff-starter}.
|
||||
about the topic of stiff starters in Section~\ref{sec:stiff-starter}.
|
||||
|
||||
Another unconventional approach could be to add baking
|
||||
powder to your dough. The baking powder neutralizes the
|
||||
@@ -739,7 +716,7 @@ will climb to \qty{30}{\degreeCelsius} try to start your dough
|
||||
with \qty{30}{\degreeCelsius} water. This means that you can carefully rely on
|
||||
a small fermentation sample (aliquot jar) that visualizes your fermentation
|
||||
progress. To read more about this technique refer
|
||||
to Section~\ref{section:bulk-fermentation}.
|
||||
to Section~\ref{sec:bulk-fermentation}.
|
||||
|
||||
The sample only works reliably if your dough temperature
|
||||
is equal to your ambient temperature. Else the sample heats
|
||||
@@ -758,27 +735,10 @@ fermentation at a pH of around 4.1. Please don't just
|
||||
follow my pH value; it's very individual. Keep measuring
|
||||
with different doughs to find out a value that works for you.
|
||||
|
||||
\subsection{My flour has low gluten content --- what should I~do?}
|
||||
\subsection{My flour has low gluten content---what should I~do?}
|
||||
|
||||
You can always mix in a little bit of vital wheat gluten. Vital wheat gluten
|
||||
is concentrated extracted gluten from wheat flour.
|
||||
|
||||
I~recommend that you add around \qty{5}{\gram} of wheat gluten for every
|
||||
\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.
|
||||
|
||||
|
||||
@@ -9,6 +9,14 @@
|
||||
}}
|
||||
|
||||
\Configure{AddCss}{style.css}
|
||||
\AddToHook{env/tikzpicture/begin}{\fontfamily{opensans-TLF}\selectfont}
|
||||
\Configure{@HEAD}{\HCode{
|
||||
<style type="text/css">
|
||||
@import url('https://fonts.cdnfonts.com/css/open-sans');
|
||||
body{
|
||||
font-family: 'Open Sans';
|
||||
}
|
||||
</style>}}
|
||||
\ConfigureEnv{titlepage}{\ifvmode\IgnorePar\fi\EndP\HCode{<main class="titlepage">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</main>}}{}{}
|
||||
|
||||
% Mini TOC
|
||||
@@ -39,5 +47,17 @@
|
||||
}
|
||||
\ConfigureToc{loc}{\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br />}}
|
||||
|
||||
\ExplSyntaxOn
|
||||
\def\standaloneenv#1{}
|
||||
\pend:def\schemestart{\Picture+{}}
|
||||
\append:def\CF_schemestop{\EndPicture}
|
||||
\ExplSyntaxOff
|
||||
\makeatletter
|
||||
\def\texfourht@tikz@begin{
|
||||
\protect\csname nested:math\endcsname% support display math
|
||||
\Picture+[\csname a:Picture-alt\endcsname]{}%
|
||||
}
|
||||
\makeatother
|
||||
|
||||
\begin{document}
|
||||
\EndPreamble
|
||||
|
||||
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 |
@@ -1,9 +1,13 @@
|
||||
\chapter{Wheat sourdough}%
|
||||
\label{ch:wheat-sourdough}
|
||||
|
||||
\begin{quoting}
|
||||
In this chapter, you will learn how to make
|
||||
freestanding wheat sourdough bread.
|
||||
\end{quoting}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{loaf-pan-free-standing.jpg}
|
||||
\caption[Freestanding and loaf pan bread]{A freestanding sourdough bread
|
||||
next to bread made in a loaf pan. Freestanding sourdough is considered
|
||||
@@ -30,14 +34,13 @@ My key learning was that there is no recipe that
|
||||
you can blindly follow. You will always have to adapt the recipe
|
||||
to your locally available tools and environment.
|
||||
|
||||
But do not worry. After reading this chapter you will know
|
||||
all the signs to look out for. You will be able to read your dough.
|
||||
You will turn into a confident hobby baker who can bake bread
|
||||
at home, at high altitudes, at low altitudes, in summer, in winter,
|
||||
at your friend's place, and even on vacation. Furthermore,
|
||||
you will know how to scale your production from 1 loaf to 100 loaves of bread.
|
||||
If you ever wanted to open up a bakery, consider this knowledge to
|
||||
be your foundation.
|
||||
But do not worry. After reading this chapter you will know all the signs to
|
||||
look out for. You will be able to read your dough. You will turn into a
|
||||
confident hobby baker who can bake bread at home, at high altitudes, at low
|
||||
altitudes, in summer, in winter, at your friend's place, and even on vacation.
|
||||
Furthermore, you will know how to scale your production from one loaf to
|
||||
hundred loaves of bread. If you ever wanted to open up a bakery, consider
|
||||
this knowledge to be your foundation.
|
||||
|
||||
Mastering this process will enable you to make amazing bread
|
||||
that tastes much better than any store-bought bread.
|
||||
@@ -45,11 +48,10 @@ that tastes much better than any store-bought bread.
|
||||
\section{The process}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-wheat-sourdough-process.tex}
|
||||
\caption{The typical process of making a wheat-based sourdough bread.}%
|
||||
\label{fig:wheat-sourdough-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
The whole process of making great sourdough bread starts with
|
||||
@@ -88,18 +90,18 @@ All the steps rely on each other. You will need to get each of
|
||||
the steps right to make the perfect bread.
|
||||
|
||||
\section{Readying your starter}%
|
||||
\label{section:readying-starter}
|
||||
\label{sec:readying-starter}
|
||||
|
||||
The most crucial part of the bread-making process is your starter.
|
||||
The starter is what starts the fermentation in your main dough.
|
||||
If your starter is off, then your main dough is also going
|
||||
to cause trouble during the fermentation. Your starter's
|
||||
properties are passed on to your main dough. If your starter
|
||||
doesn't have a good balance of yeast to bacteria, so will your
|
||||
doesn't have a good balance of yeast to bacteria, neither will your
|
||||
main dough.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-starter-readiness.tex}
|
||||
\caption[Process to prepare your starter before baking]{The process to check
|
||||
your sourdough starter when making wheat-based doughs. In practice
|
||||
@@ -110,7 +112,6 @@ main dough.
|
||||
shown water quantities, i.e., if the chart shows \qty{100}{\gram} of
|
||||
water, use \qtyrange{50}{60}{\gram} of water for your stiff starter.}%
|
||||
\label{fig:process-starter-wheat-sourdough}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Generally, think of the dough you are mixing as a big starter with salt.
|
||||
@@ -137,14 +138,14 @@ the microorganisms.
|
||||
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,
|
||||
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. 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
|
||||
always use a stiffer sourdough starter due to its enhanced
|
||||
yeast fermentation advantages (see Section~\ref{section:stiff-starter})
|
||||
my ratio is never 1:5:5. My ratio would be 1:5:2.5 (1 part old starter,
|
||||
5 parts flour, 2.5 parts water). If it is very warm where you live
|
||||
yeast fermentation advantages (see Section~\ref{sec:stiff-starter})
|
||||
my ratio is never 1:5:5. My ratio would be 1:5:2.5 (1~part old starter,
|
||||
5~parts flour, 2.5~parts water). If it is very warm where you live
|
||||
you could opt for the aforementioned 1:10:5 or 1:20:10. This
|
||||
way you slow down the ripening of your starter. You can also use this
|
||||
trick to make starter feeding work with your schedule.
|
||||
@@ -160,7 +161,7 @@ regrows inside of your main dough. While I~would normally use
|
||||
as low as \qty{1}{\percent} starter. This way the microorganisms have
|
||||
more room to balance out while fermenting the dough. If my sourdough
|
||||
starter has not been fed in a day, I~might use \qty{5}{\percent} of sourdough
|
||||
to make a dough. If I~push this to 2 days without feedings,
|
||||
to make a dough. If I~push this to 2~days without feedings,
|
||||
I~lower the starter amount even further. I~would opt for the
|
||||
previously mentioned \qty{1}{\percent} starter. If the food is very scarce,
|
||||
your microorganisms will sporulate. They need to regrow again
|
||||
@@ -175,8 +176,8 @@ Furthermore, you want your microorganisms to outcompete
|
||||
other pathogens contained in the flour. The less starter
|
||||
you use, the easier it is for them to reproduce. A strong
|
||||
starter will outcompete other germs. While the method of
|
||||
reducing the starter works, I~recommend Option 1 more.
|
||||
It will reliably create better bread. Option 2 is typically
|
||||
reducing the starter works, I~recommend Option~1 more.
|
||||
It will reliably create better bread. Option~2 is typically
|
||||
what I~use when I~fed my starter in the morning but didn't
|
||||
manage to make a dough in the evening. I~don't want to feed
|
||||
my starter again the next morning. I~would like to make a dough
|
||||
@@ -204,7 +205,7 @@ Especially when getting started I~recommend using bread flour which
|
||||
contains more gluten than all-purpose or cake flour. This is essential
|
||||
when trying to bake a freestanding loaf with sourdough.
|
||||
|
||||
Find below an example recipe for 1 loaf including baker's math calculation:
|
||||
Find below an example recipe for one loaf including baker's math calculation:
|
||||
|
||||
\begin{itemize}
|
||||
\item \qty{400}{\gram} of bread flour
|
||||
@@ -233,7 +234,7 @@ recipe would look like this:
|
||||
|
||||
This is the beauty of baker's math. Simply recalculate the percentages, and you
|
||||
are good to go. If you are unsure about how this works, please check out the
|
||||
full Section~\ref{section:bakers-math} which looks at the topic in detail.
|
||||
full Section~\ref{sec:bakers-math} which looks at the topic in detail.
|
||||
|
||||
\section{Hydration}
|
||||
|
||||
@@ -247,8 +248,8 @@ When a seed gets into contact initially, the outer layers soak up the water.
|
||||
That's why when using whole-wheat (still containing these layers) you have to
|
||||
use a little bit more water.
|
||||
|
||||
By forming gluten strands, water is absorbed into your dough's gluten matrix. The higher the
|
||||
protein value, the more water can be used.
|
||||
By forming gluten strands, water is absorbed into your dough's gluten matrix.
|
||||
The higher the protein value, the more water can be used.
|
||||
|
||||
Some bakers like to use highly hydrated doughs to create fluffier
|
||||
bread\footnote{Sometimes it almost feels like a comparison of skill value
|
||||
@@ -310,16 +311,16 @@ offers by simply letting your dough ferment for a longer period.
|
||||
Slowing the fermentation process is easy. Use less
|
||||
sourdough starter or ferment in a cooler environment.
|
||||
|
||||
There are two reasons for the slow fermentation advantages.
|
||||
As explained earlier, both the protease enzyme and bacteria break down your
|
||||
gluten network. So as fermentation progresses, your dough will automatically
|
||||
become more extensible. This is because the rubber layers of your car tire
|
||||
are slowly converted and eaten. Ultimately your car tire turns into a balloon
|
||||
that can very easily be inflated. When waiting too long, the
|
||||
balloon will burst. You will have no gluten left anymore, and your dough
|
||||
becomes very sticky. Finding the sweet spot of enough rubber eating and not
|
||||
too much is what the perfect wheat sourdough bread is about. But don't worry --- after reading
|
||||
this chapter you will have the right tools at your disposal.
|
||||
There are two reasons for the slow fermentation advantages. As explained
|
||||
earlier, both the protease enzyme and bacteria break down your gluten network.
|
||||
So as fermentation progresses, your dough will automatically become more
|
||||
extensible. This is because the rubber layers of your car tire are slowly
|
||||
converted and eaten. Ultimately your car tire turns into a balloon that can
|
||||
very easily be inflated. When waiting too long, the balloon will burst. You
|
||||
will have no gluten left anymore, and your dough becomes very sticky. Finding
|
||||
the sweet spot of enough rubber eating and not too much is what the perfect
|
||||
wheat sourdough bread is about. But don't worry---after reading this chapter
|
||||
you will have the right tools at your disposal.
|
||||
|
||||
The advantages of slow fermentation can be nicely observed when experimenting
|
||||
with a fast-fermenting yeast dough (\qty{1}{\percent} dry yeast based on flour). The
|
||||
@@ -354,8 +355,8 @@ If you are just getting started with a new batch of flour,
|
||||
I~recommend conducting the following test. This will help you to
|
||||
identify the sweet spot of your flour's hydration capabilities.
|
||||
|
||||
Make 5 bowls with each \qty{100}{\gram} of flour. Add different slightly increasing
|
||||
water amounts to each of the bowls.
|
||||
Make five bowls with each \qty{100}{\gram} of flour. Add different slightly
|
||||
increasing water amounts to each of the bowls.
|
||||
|
||||
\begin{itemize}
|
||||
\item \qty{100}{\gram} of flour, \qty{55}{\gram} of water
|
||||
@@ -377,6 +378,7 @@ to feed your starter.
|
||||
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{window-pane-effect}
|
||||
\caption[The window pane test]{The window pane test allows you to see if you
|
||||
developed your gluten well enough.}
|
||||
@@ -407,7 +409,7 @@ your dough. The warmer the temperature, the faster the process; the colder, the
|
||||
slower the process.
|
||||
|
||||
While food is available, the microorganisms will reproduce and increase in
|
||||
quantity. The process is a self-limiting: it stops when there is no
|
||||
quantity. The process is self-limiting: it stops when there is no
|
||||
more food available. This can be compared to wine making where
|
||||
the yeast ultimately sporulates and dies as ethanol levels increase. The ethanol creates an
|
||||
environment that makes it impossible for other
|
||||
@@ -450,11 +452,11 @@ explained earlier, your
|
||||
bread dough is essentially a gigantic starter. The low inoculation rate allows
|
||||
the starter to regrow inside your main dough into a desirable balance.
|
||||
Furthermore, the enzymes have enough time to break down the flour. This also
|
||||
allows me to skip the so-called autolysis step completely (more in the next chapter).
|
||||
allows me to skip the so-called autolysis step completely (more in the next section).
|
||||
This greatly simplifies the whole process.
|
||||
|
||||
\section{Autolysis}%
|
||||
\label{section:autolysis}
|
||||
\label{sec:autolysis}
|
||||
|
||||
Autolysis describes the process of just mixing flour and water and letting
|
||||
this sit for a period of around 30~minutes up to several hours. After this
|
||||
@@ -467,7 +469,7 @@ The overall time that flour and water are in contact is extended. Thus you get t
|
||||
beneficial enzymatic reactions that improve the taste and characteristics of the
|
||||
dough. I~do not recommend autolysis as it adds an unnecessary step to the
|
||||
process. Instead, I~recommend the fermentolysis technique which will be covered in the
|
||||
next chapter of this book.
|
||||
next section of this book.
|
||||
|
||||
The effects of autolysis are very interesting. Try to mix just flour and
|
||||
water and let that sit for a day. During the day, check the consistency of
|
||||
@@ -506,7 +508,7 @@ For that reason, I~am strongly advocating utilizing the fermentolysis approach
|
||||
which greatly simplifies the mixing and kneading process.
|
||||
|
||||
\section{Fermentolysis}%
|
||||
\label{section:fermentolysis}
|
||||
\label{sec:fermentolysis}
|
||||
|
||||
The fermentolysis creates the same advantageous dough properties the
|
||||
autolysis creates without the headache of mixing your dough twice. You do this
|
||||
@@ -520,32 +522,33 @@ value to \qtyrange{5}{10}{\percent}. The other option could be to place the doug
|
||||
environment and thus reduce the speed at which your microorganisms replicate.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-starter-usage-activity.tex}
|
||||
\caption[Quantity of sourdough]{A table visualizing how much sourdough
|
||||
starter to use depending on temperature and the starter's activity
|
||||
level.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Based on my experience and my sourdough, my ideal bread always takes around 8
|
||||
to 12~hours during bulk fermentation. Based on my availability throughout
|
||||
the day, I~use a higher or lower starter quantity. If I~wanted to achieve a completed
|
||||
fermentation in 8~hours, I~would opt for a \qty{10}{\percent} sourdough starter. If
|
||||
I~wanted it to be ready in 12~hours, I~would opt for less starter, around \qty{5}{\percent}.
|
||||
Simply mix all the ingredients and your fermentation begins. The
|
||||
enzymes and microorganisms commence their work. On a very warm summer day, the
|
||||
mentioned quantities no longer work. With a \qty{10}{\percent} starter, the same dough
|
||||
would be ready in 5~hours up to a point of no return. Another additional hour
|
||||
would cause the dough to break down too much. In this case, I~would opt for 5
|
||||
percent sourdough starter to slow the whole process down to reach the 8 to 12
|
||||
hour window again. If it is very hot, I~might use as little as \qty{1}{\percent}
|
||||
sourdough starter\footnote{Please take these values with a grain of salt as
|
||||
they depend on your flour and your sourdough starter. These are values that
|
||||
you have to experiment with. After baking a couple of breads you will be able
|
||||
to read your dough much better.}. You have to play with the timings on your own.
|
||||
Rather than relying on timing though, I~will show you a much better and more precise approach
|
||||
by using a fermentation sample. This will be covered later in this chapter.
|
||||
to 12~hours during bulk fermentation. Based on my availability throughout the
|
||||
day, I~use a higher or lower starter quantity. If I~wanted to achieve a
|
||||
completed fermentation in 8~hours, I~would opt for a \qty{10}{\percent}
|
||||
sourdough starter. If I~wanted it to be ready in 12~hours, I~would opt for
|
||||
less starter, around \qty{5}{\percent}. Simply mix all the ingredients and
|
||||
your fermentation begins. The enzymes and microorganisms commence their work.
|
||||
On a very warm summer day, the mentioned quantities no longer work. With a
|
||||
\qty{10}{\percent} starter, the same dough would be ready in 5~hours up to a
|
||||
point of no return. Another additional hour would cause the dough to break
|
||||
down too much. In this case, I~would opt for \qty{5}{\percent} sourdough
|
||||
starter to slow the whole process down to reach the 8 to 12~hour window again.
|
||||
If it is very hot, I~might use as little as \qty{1}{\percent} sourdough
|
||||
starter\footnote{Please take these values with a grain of salt as they depend
|
||||
on your flour and your sourdough starter. These are values that you have
|
||||
to experiment with. After baking a couple of breads you will be able to
|
||||
read your dough much better.}. You have to play with the timings on your
|
||||
own. Rather than relying on timing though, I~will show you a much better and
|
||||
more precise approach by using a fermentation sample. This will be covered
|
||||
later in this chapter.
|
||||
|
||||
Even for yeasted doughs, I~no longer use autolysis. I~just reduce the amount
|
||||
of yeast that I~am using. Opting for the fermentolysis will
|
||||
@@ -561,11 +564,10 @@ all the gases during the fermentation process. Without the gluten network,
|
||||
the gases would just diffuse out of your dough.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-kneading-process.tex}
|
||||
\caption{The gluten development process for a wheat-based dough.}%
|
||||
\label{fig:wheat-sourdough-kneading-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
It might sound odd, but the most important part of kneading is waiting. By
|
||||
@@ -583,7 +585,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}.
|
||||
|
||||
\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
|
||||
visualization of automatic gluten development. The doughs are not
|
||||
kneaded, just initially mixed. Note how dough strength deteriorates
|
||||
@@ -591,8 +594,6 @@ traps the gases during the fermentation process~\cite{how+does+gluten+work}.
|
||||
sourdough due to the bacteria's gluten proteolysis.}%
|
||||
\label{fig:wheat-yeast-sourdough-degradation}
|
||||
\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 purpose of the wheat kernel's outer bran is to soak up water as fast
|
||||
@@ -620,7 +621,7 @@ by adding water and kneading again. This is a great trick to make
|
||||
a more extensible dough with lower-gluten flour~\cite{bassinage+technique}.
|
||||
|
||||
When machine kneading a dough, opt for the same technique shown in
|
||||
figure~\ref{fig:wheat-sourdough-kneading-process}. Initially opt for a low
|
||||
Flowchart~\ref{fig:wheat-sourdough-kneading-process}. Initially opt for a low
|
||||
speed. This helps the homogenization process.
|
||||
After waiting to allow the flour to soak up the water, proceed on a higher speed
|
||||
setting. A good sign of a well-developed gluten network is
|
||||
@@ -629,6 +630,7 @@ The elasticity is higher than the desire of the
|
||||
dough to stick to the container.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{dough-strength-sourdough}
|
||||
\caption[Dough strength over time with kneading]{A schematic visualization
|
||||
of gluten development in sourdoughs with different kneading techniques.
|
||||
@@ -645,6 +647,7 @@ much. This is a common problem beginners face. Sticky dough is frequently
|
||||
the sign of a not well enough developed gluten network.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{dough-surface-touchpoints}
|
||||
\caption[Touching the dough surface]{A schematic visualization of how a rough
|
||||
dough surface creates more touch points compared to a smooth dough
|
||||
@@ -675,7 +678,7 @@ affecting the quality of the bread~\cite{oxidization+dough}.
|
||||
The last step before beginning bulk fermentation is to
|
||||
create a smooth dough ball. By making sure your dough's surface is
|
||||
smooth, you will have fewer touch points when touching the dough.
|
||||
See figure~\ref{fig:dough-touch-points} for a schematic visualization
|
||||
See Figure~\ref{fig:dough-touch-points} for a schematic visualization
|
||||
of how your hand touches a rugged and smooth dough.
|
||||
With the smooth surface, your dough is going to stick less on your hands. Applying
|
||||
later stretches and folds will be a lot easier. Without a smooth
|
||||
@@ -684,6 +687,7 @@ becomes an impossible task. This is a frequent mistake I~see many
|
||||
new bakers commit.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{dough-ball-steps}
|
||||
\caption[Creating a smooth surface]{The transformation of a sticky dough
|
||||
blob to a dough with a smooth surface. The goal is to reduce surface
|
||||
@@ -706,7 +710,7 @@ you can't stretch the gluten. Always imagine you are touching something utterly
|
||||
By doing so you will automatically try to touch the dough as little
|
||||
as possible. Keep repeating the process until you see that the dough
|
||||
has a nice smooth surface. The final dough should look like the dough
|
||||
shown in~\ref{fig:dough-ball-steps}.
|
||||
shown in Figure~\ref{fig:dough-ball-steps}.
|
||||
|
||||
If your outer gluten layer tears, you have overstretched your dough. In
|
||||
that case, take a 10-minute break, leaving your dough on the kitchen countertop.
|
||||
@@ -721,7 +725,7 @@ Later, you don't have any room for error. Your technique has to be on point.
|
||||
An over-pre-shaped dough can potentially not recover.
|
||||
|
||||
\section{Bulk fermentation}%
|
||||
\label{section:bulk-fermentation}
|
||||
\label{sec:bulk-fermentation}
|
||||
|
||||
After mixing the starter into your dough, the next stage of
|
||||
the process known as bulk fermentation begins. The term
|
||||
@@ -751,12 +755,11 @@ flavor of the resulting bread is better compared to a pale
|
||||
underfermented dough.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-fermentation-effects.tex}
|
||||
\caption[Stages of sourdough fermentation]{The different stages of
|
||||
sourdough fermentation and the effects on crumb, alveoli, texture,
|
||||
and overall taste.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
The worst thing you can do when fermenting sourdough
|
||||
@@ -772,12 +775,12 @@ turning it into a gigantic sticky fermented pancake. This
|
||||
is one of the reasons why the current baking industry prefers
|
||||
to make solely yeast-based doughs. By removing the bacteria
|
||||
from the fermentation, the whole process becomes a lot more
|
||||
predictable. The room for error (as shown in figure~\ref{fig:wheat-yeast-sourdough-degradation})
|
||||
is much larger. The doughs are perfect to be made in a
|
||||
machine.
|
||||
predictable. The room for error (as shown in
|
||||
Figure~\ref{fig:wheat-yeast-sourdough-degradation}) is much larger. The doughs
|
||||
are perfect to be made in a machine.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-bulk-fermentation.tex}
|
||||
\caption[Process to check the bulk fermentation]{During the bulk
|
||||
fermentation, multiple doughs are fermented together in bulk. A
|
||||
@@ -785,7 +788,6 @@ machine.
|
||||
stage of fermentation is completed. This chart shows multiple available
|
||||
options to check on the bulk fermentation progress.}%
|
||||
\label{fig:bulk-fermentation}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Experienced bakers will tell you to go by the look and feel of
|
||||
@@ -798,8 +800,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
|
||||
sample is extracted after creating the initial dough strength.
|
||||
You monitor the aliquot's size increase to judge the
|
||||
level of fermentation of your main dough. The aliquot
|
||||
sample is extracted after creating dough strength. As your
|
||||
level of fermentation of your main dough. As your
|
||||
dough ferments, so does the content of your aliquot jar. The moment your
|
||||
sample reached a certain size, your main dough is ready
|
||||
to be shaped and proofed. The size increase you should
|
||||
@@ -814,12 +815,11 @@ up to \qty{100}{\percent} with subsequent bakes. Then identify a value
|
||||
that you are happy with.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-dough-size-increase.tex}
|
||||
\caption[Increase of size versus protein content]{Reference values for
|
||||
how much size increase to aim for with an aliquot jar depending on
|
||||
the dough's protein content.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
The beauty of the aliquot is that no matter the surrounding
|
||||
@@ -830,6 +830,7 @@ dough exactly on point.
|
||||
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{aliquot-before-after}
|
||||
\caption[Aliquot Jar]{An aliquot jar to monitor the dough's fermentation
|
||||
progress. It took 10~hours for the dough to reach a \qty{50}{\percent}
|
||||
@@ -896,12 +897,11 @@ bread didn't turn out the way you like, either shorten
|
||||
the fermentation or extend it a little bit.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-ph-values-dough.tex}%
|
||||
\caption[Dough's pH during bread preparation]{Example pH values for
|
||||
the different breakpoints of my own sourdough process.}%
|
||||
\label{table:sample-ph-values}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
The beauty of this method is its reliability. Once you have found
|
||||
@@ -921,7 +921,12 @@ as rough ballpark figures. Regardless, you need to find values
|
||||
that work for your setup.
|
||||
|
||||
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.
|
||||
At the same time, automated temperature adjustments are a
|
||||
feature to look out for. Depending on the temperature,
|
||||
@@ -949,6 +954,7 @@ mentioned aliquot sample, look out for a size increase that works
|
||||
for your sourdough composition.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{bulk-finished-dough}
|
||||
\caption[Dough at the end of bulk fermentation]{A dough in a good state to
|
||||
finish bulk fermentation. Notice the tiny bubbles on the dough's surface.
|
||||
@@ -996,6 +1002,7 @@ bread would feature an excellent, very tangy taste.
|
||||
\section{Stretch and folds}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{dough-being-glued}
|
||||
\caption[Gluing dough]{A dough where two sticky sides are being glued
|
||||
together using a stretch and fold. This process creates excellent dough
|
||||
@@ -1011,16 +1018,16 @@ fermentation stage. The process involves stretching the dough and then
|
||||
folding the dough onto itself. Some recipes call for a single stretch
|
||||
and fold, others for multiple.
|
||||
|
||||
The primary goal of this technique is to provide
|
||||
additional dough strength to your dough. As shown in figure~\ref{fig:dough-strength-sourdough}
|
||||
there are multiple ways to create dough strength\footnote{In fact I~have seen many no-knead
|
||||
recipes calling for no initial kneading, but then applying stretch and folds
|
||||
during the bulk fermentation. The time required to do all the folds probably
|
||||
matches the initial kneading time required.}. If you do not knead as much at
|
||||
the start, you can reach the same level of dough strength by applying stretch
|
||||
and folds later. The more stretch and folds you do, the more dough strength
|
||||
you add to your dough. The result will be a more aesthetic loaf that has
|
||||
increased vertical oven spring.
|
||||
The primary goal of this technique is to provide additional dough strength to
|
||||
your dough. As shown in Figure~\ref{fig:dough-strength-sourdough} there are
|
||||
multiple ways to create dough strength\footnote{In fact I~have seen many
|
||||
no-knead recipes calling for no initial kneading, but then applying
|
||||
stretch and folds during the bulk fermentation. The time required to do
|
||||
all the folds probably matches the initial kneading time required.}.
|
||||
If you do not knead as much at the start, you can reach the same level of
|
||||
dough strength by applying stretch and folds later. The more stretch and folds
|
||||
you do, the more dough strength you add to your dough. The result will be a
|
||||
more aesthetic loaf that has increased vertical oven spring.
|
||||
|
||||
Sometimes, if the dough is very extensible
|
||||
and features very high hydration, stretching and folding is essential.
|
||||
@@ -1040,11 +1047,12 @@ large cavities in your final dough's crumb, then you might be able to fix that
|
||||
by applying more stretch and folds\footnote{In many cases these cavities can
|
||||
also happen when a dough does not ferment enough. The crumb is commonly called
|
||||
Fool's Crumb. Refer to the later Debugging Crumb Structures chapter of this
|
||||
book to learn more about it.}. Please refer to Section~\ref{section:debugging-crumb-structure}
|
||||
``\nameref{section:debugging-crumb-structure}'' for more information on reading
|
||||
book to learn more about it.}. Please refer to Section~\ref{sec:debugging-crumb-structure}
|
||||
``\nameref{sec:debugging-crumb-structure}'' for more information on reading
|
||||
your crumb.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{stretch-and-fold-steps}
|
||||
\caption[Stretch and fold steps]{An overview of the steps involved to perform
|
||||
stretch and folds for wheat-based doughs.}%
|
||||
@@ -1072,16 +1080,15 @@ once all around your dough until the dough is free of your container's edges.
|
||||
Wet your hands one more time and then carefully lift one side of the dough with
|
||||
two hands placed in the center upwards. Make a fold in the center of the dough.
|
||||
The upper smooth side needs to be placed on the bottom of the container. By doing
|
||||
so, you will be gluing together the two sticky bottom sides. The top smooth side should
|
||||
not be sticky in your hands, while the bottom rough surface should tend
|
||||
to stick to your hands. Rotate the container
|
||||
and repeat the same thing from the other side. Rotate the container 90°
|
||||
and then repeat the process once again. Rotate the container another 180° in
|
||||
the same direction
|
||||
and repeat the fold one last time. By doing so you have applied 4 folds in total. Your
|
||||
dough should now stay in place and resist flowing outwards\footnote{Please
|
||||
also refer to~\cite{stretch+and+fold+technique} for a video showing you how to
|
||||
best perform the technique.}.
|
||||
so, you will be gluing together the two sticky bottom sides. The top smooth
|
||||
side should not be sticky in your hands, while the bottom rough surface should
|
||||
tend to stick to your hands. Rotate the container and repeat the same thing
|
||||
from the other side. Rotate the container \ang{90} and then repeat the process
|
||||
once again. Rotate the container another \ang{180} in the same direction and
|
||||
repeat the fold one last time. By doing so you have applied four folds in
|
||||
total. Your dough should now stay in place and resist flowing
|
||||
outwards\footnote{Please also refer to~\cite{stretch+and+fold+technique} for a
|
||||
video showing you how to best perform the technique.}.
|
||||
|
||||
In theory, there is no limit to how often you can stretch and fold. You could
|
||||
apply one every 15~minutes. If your dough has enough dough strength already,
|
||||
@@ -1093,9 +1100,10 @@ will tear. In that case, you just have to wait for at least 5--10~minutes until
|
||||
the gluten bonds heal and you can try again. When the gluten does not heal
|
||||
anymore, chances are you have pushed the fermentation for too long. Likely
|
||||
most of the gluten has broken down and you are already
|
||||
in the decay stage shown in figure~\ref{fig:dough-strength-sourdough}.
|
||||
in the decay stage shown in Figure~\ref{fig:dough-strength-sourdough}.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{dough-requiring-stretch-and-fold}
|
||||
\caption[A flattened out dough]{A dough during bulk fermentation that has
|
||||
flattened out. To improve its dough strength, a stretch and fold should
|
||||
@@ -1120,12 +1128,11 @@ The step is required if you are making multiple loaves in one
|
||||
batch. It is optional if you are making a single loaf.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-dividing-preshaping.tex}
|
||||
\caption[Is dividing your dough required check]{Dividing is only required when you are
|
||||
making multiple loaves in a single dough batch.}%
|
||||
\label{fig:dividing-decision-tree}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
The goal of dividing your dough into smaller pieces is to portion
|
||||
@@ -1141,6 +1148,7 @@ Quick movements with a knife or dough scraper help to prevent the
|
||||
dough from sticking too much to your tools.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{divide-preshape}
|
||||
\caption{The steps of dividing and preshaping your dough.}
|
||||
\end{figure}
|
||||
@@ -1148,7 +1156,7 @@ dough from sticking too much to your tools.
|
||||
I~sometimes like to draw small lines with the dough scraper's edge
|
||||
on the large dough mass before cutting it into smaller pieces.
|
||||
This helps me to better plan where I~want to do my incisions. When
|
||||
I~plan to make 8 loaves I~try to use the lines to divide the dough
|
||||
I~plan to make 8~loaves I~try to use the lines to divide the dough
|
||||
into 8 equally sized portions before cutting. If this is not precise enough,
|
||||
you can use the aforementioned scale.
|
||||
|
||||
@@ -1170,14 +1178,16 @@ Pre-shaping is done for several reasons:
|
||||
If you are making a single loaf from one dough batch the step is not required.
|
||||
In that case, you can directly proceed with shaping, skipping this step.
|
||||
|
||||
The pre-shaping technique is the same as the process figure~\ref{fig:dough-ball-steps}.
|
||||
Whereas earlier you could tear the dough's surface this could now result in a catastrophe.
|
||||
For this reason, I~recommend practicing this step for as long as you need after kneading.
|
||||
The gluten network might be so extensible and degraded at this point that there
|
||||
is hardly any room for error. The dough wouldn't come together again. The only
|
||||
way to save such dough is to use a loaf pan.
|
||||
The pre-shaping technique is the same as the process
|
||||
Figure~\ref{fig:dough-ball-steps}. Whereas earlier you could tear the dough's
|
||||
surface this could now result in a catastrophe. For this reason, I~recommend
|
||||
practicing this step for as long as you need after kneading. The gluten
|
||||
network might be so extensible and degraded at this point that there is hardly
|
||||
any room for error. The dough wouldn't come together again. The only way to
|
||||
save such dough is to use a loaf pan.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{preshape-direction}
|
||||
\caption[Dragging direction]{Drag the dough in the direction of the rough
|
||||
surface area. This way you minimize the movements required to complete
|
||||
@@ -1185,14 +1195,14 @@ way to save such dough is to use a loaf pan.
|
||||
\label{fig:preshape-direction}
|
||||
\end{figure}
|
||||
|
||||
Pre-shape the dough as much as is needed to round up the top
|
||||
surface area. Try to touch the dough as little as possible
|
||||
to reduce its ability to stick to your hands. Drag the dough
|
||||
in the direction where you see a rough surface area. In
|
||||
case you have too little space to drag the dough because it might
|
||||
fall from the edge of your counter, simply lift it with a swift movement and place
|
||||
it in a better position for pre-shaping. Please refer to figure~\ref{fig:preshape-direction}
|
||||
for a visualization showing the pre-shaping direction.
|
||||
Pre-shape the dough as much as is needed to round up the top surface area. Try
|
||||
to touch the dough as little as possible to reduce its ability to stick to
|
||||
your hands. Drag the dough in the direction where you see a rough surface
|
||||
area. In case you have too little space to drag the dough because it might
|
||||
fall from the edge of your counter, simply lift it with a swift movement and
|
||||
place it in a better position for pre-shaping. Please refer to
|
||||
Figure~\ref{fig:preshape-direction} for a visualization showing the
|
||||
pre-shaping direction.
|
||||
|
||||
Try to set yourself a limit of movements to finish pre-shaping
|
||||
a dough. Then you will be more conscious about each movement
|
||||
@@ -1202,6 +1212,7 @@ numbers could be if you on purpose want to even out the crumb
|
||||
structure of your final loaves further.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{preshaped-dough}
|
||||
\caption{Baguette doughs resting after preshaping.}%
|
||||
\label{fig:dough-after-preshaping}
|
||||
@@ -1235,12 +1246,11 @@ your environment.
|
||||
\section{Shaping}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-shaping-process.tex}
|
||||
\caption[Sourdough shaping process]{A schematic visualization of the shaping process
|
||||
including checks for an overfermented dough.}%
|
||||
\label{fig:shaping-decision-tree}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Shaping will give your dough the final shape before baking. After
|
||||
@@ -1278,21 +1288,22 @@ batard bread rolls.
|
||||
\label{fig:shaping-flour-surface}
|
||||
\end{figure}
|
||||
|
||||
If you are only making 1 loaf out of your dough, apply flour
|
||||
If you are only making one loaf out of your dough, apply flour
|
||||
generously to the top layer of your dough. Rub the flour onto your
|
||||
dough with your hands. Flip over your container. Wait a little bit
|
||||
to allow the dough to release itself from the container. Proceed
|
||||
with step 3.
|
||||
with step~3.
|
||||
|
||||
If you divided and pre-shaped, apply flour generously to the dough's
|
||||
top layer as well. With gentle hands spread the flour evenly across
|
||||
the dough's surface. See figure~\ref{fig:shaping-flour-surface} for a
|
||||
the dough's surface. See Figure~\ref{fig:shaping-flour-surface} for a
|
||||
visual representation of how your dough should look after coating
|
||||
the surface.
|
||||
|
||||
\subsection[Flipping the dough]{Flip the dough over}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{step-2-flipped-over}
|
||||
\caption[Step 2 of shaping process]{A flipped-over dough. Note how the
|
||||
sticky side is facing you while the floured side is facing the
|
||||
@@ -1313,6 +1324,7 @@ sticky side is facing you.
|
||||
\subsection[Create rectangular shape]{Make the dough rectangular}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{step-3-rectangular}
|
||||
\caption[Step 3 of shaping process]{A flipped-over dough. Note how the
|
||||
sticky side is facing you while the floured side is facing the
|
||||
@@ -1329,12 +1341,13 @@ it has a more rectangular shape. While stretching, make sure to touch
|
||||
the sticky side as little as possible. Place your hands on the bottom
|
||||
floured side and the edge of the sticky side. With gentle hands,
|
||||
stretch the dough until the shape in front of you looks rectangular.
|
||||
Refer to figure~\ref{fig:shaping-rectangular-dough} and compare
|
||||
Refer to Figure~\ref{fig:shaping-rectangular-dough} and compare
|
||||
your dough with the shown dough.
|
||||
|
||||
\subsection[Folding]{Fold the dough together}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{step-4-folding}
|
||||
\caption[Step 4 of shaping process]{The process of folding a batard. Note
|
||||
how the rectangle is first glued together and then rolled inwards to
|
||||
@@ -1368,7 +1381,7 @@ now faces you.
|
||||
Start to roll the dough inwards beginning at the top of the dough.
|
||||
Keep rolling the dough inwards until you have created a dough roll.
|
||||
|
||||
Refer to figure~\ref{fig:shaping-folding} for a full visual
|
||||
Refer to Figure~\ref{fig:shaping-folding} for a full visual
|
||||
representation of the process.
|
||||
|
||||
If your dough does not hold its shape, chances are you have pushed
|
||||
@@ -1377,7 +1390,7 @@ and the dough won't be able to hold its shape. In this case,
|
||||
the best option is to use a loaf pan to bake your bread. The
|
||||
final bread will taste amazing but not offer the same texture
|
||||
a freestanding bread would offer. Please refer to
|
||||
Section~\ref{section:debugging-crumb-structure} for more
|
||||
Section~\ref{sec:debugging-crumb-structure} for more
|
||||
details on how to properly read your dough's crumb structure.
|
||||
|
||||
\subsection[Sealing]{Sealing the edges}
|
||||
@@ -1394,6 +1407,7 @@ from the other side as well.
|
||||
\subsection[Proofing preparation]{Prepare for proofing}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{step-6-prepare-proofing}
|
||||
\caption[Step 5 of shaping process]{The shaped dough is ready for proofing
|
||||
in the banneton. Note how the seam side is now facing you. The floured
|
||||
@@ -1425,16 +1439,16 @@ applies when making other doughs such as baguette doughs. The floured
|
||||
surface will always be downwards facing. The dough is then flipped over
|
||||
once for baking.}.
|
||||
|
||||
Proceed and lift the dough with 2 hands from the counter.
|
||||
Gently rotate it once and then place the dough in your
|
||||
banneton for proofing\footnote{The seam side should now be facing you.
|
||||
Some bakers like to seal the seam a little more. I~did
|
||||
not notice that this improves the dough's strength. As far as I~can
|
||||
tell, this only improves the visual appearance of the bottom side
|
||||
of the final loaf.}. If you did everything right, then your
|
||||
dough should look somewhat similar to the dough shown in figure~\ref{fig:shaping-prepare-proofing}.
|
||||
As the last step of shaping, place a kitchen towel over your banneton
|
||||
or bowl and begin proofing.
|
||||
Proceed and lift the dough with both hands from the counter. Gently rotate it
|
||||
once and then place the dough in your banneton for proofing\footnote{The seam
|
||||
side should now be facing you. Some bakers like to seal the seam a little
|
||||
more. I~did not notice that this improves the dough's strength. As far as
|
||||
I~can tell, this only improves the visual appearance of the bottom side of
|
||||
the final loaf.}.
|
||||
If you did everything right, then your dough should look somewhat similar to
|
||||
the dough shown in Figure~\ref{fig:shaping-prepare-proofing}. As the last
|
||||
step of shaping, place a kitchen towel over your banneton or bowl and begin
|
||||
proofing.
|
||||
|
||||
\section{Proofing}
|
||||
|
||||
@@ -1460,29 +1474,28 @@ their biochemical processes. More research is needed on the topic
|
||||
of retarding and flavor development.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-proofing-process.tex}
|
||||
\caption[Sourdough proofing process]{A schematic overview of the different steps of
|
||||
the sourdough proofing process. The proofing technique to choose depends
|
||||
on your availability and schedule.}%
|
||||
\label{fig:proofing-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
To me, the sole purpose of cold-proofing is its ability to allow you
|
||||
to better manage the timing of the whole process. Assuming you finished shaping
|
||||
your dough at 10 pm, chances are you wouldn't want to wait for another
|
||||
2~hours to proof the dough and then another 1 hour to bake it. In this case,
|
||||
you can move your dough directly to the fridge after shaping. Your
|
||||
dough will be proofing overnight in the fridge. Then it can be baked at any time
|
||||
the following day (there are a few exceptions; more on that later).
|
||||
This is especially handy for large-scale bakeries that use fridge-proofing
|
||||
extensively. Some of the doughs are proofed a day before and placed in the fridge.
|
||||
Early in the morning, they can be baked directly out of the fridge. Within 2
|
||||
hours they will be ready to sell the first bread to morning customers. If
|
||||
throughout the day more bread is needed, they simply take some proofed dough out
|
||||
of the fridge and bake it. The time frame in which you can bake retarded
|
||||
dough is big. It can be as little as 6~hours later up to 24~hours later.
|
||||
To me, the sole purpose of cold-proofing is its ability to allow you to better
|
||||
manage the timing of the whole process. Assuming you finished shaping your
|
||||
dough at 10 pm, chances are you wouldn't want to wait for another 2~hours to
|
||||
proof the dough and then another hour to bake it. In this case, you can move
|
||||
your dough directly to the fridge after shaping. Your dough will be proofing
|
||||
overnight in the fridge. Then it can be baked at any time the following day
|
||||
(there are a few exceptions; more on that later). This is especially handy
|
||||
for large-scale bakeries that use fridge-proofing extensively. Some of the
|
||||
doughs are proofed a day before and placed in the fridge. Early in the
|
||||
morning, they can be baked directly out of the fridge. Within 2~hours they
|
||||
will be ready to sell the first bread to morning customers. If throughout the
|
||||
day more bread is needed, they simply take some proofed dough out of the
|
||||
fridge and bake it. The time frame in which you can bake retarded dough is
|
||||
big. It can be as little as 6~hours later up to 24~hours later.
|
||||
|
||||
Assuming you made an overnight dough and your dough is ready in the morning,
|
||||
the situation might be different. You potentially want to bake the dough directly
|
||||
@@ -1501,6 +1514,7 @@ works great if you make an overnight dough and then proof it the next
|
||||
morning.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{step-13-finger-poke-test}
|
||||
\caption[The finger poke test]{The finger poke test is a very reliable
|
||||
method to check if your dough has been properly proofed. If the induced
|
||||
@@ -1511,15 +1525,15 @@ morning.
|
||||
The time it takes to proof your dough can be anything between 30~minutes and
|
||||
3~hours. Rather than relying on timing, most bakers use the finger poke test.
|
||||
|
||||
Flour your thumb and gently press around 0.5cm up to 1cm deep into the dough.
|
||||
Try this directly after shaping. You will notice that the created dent will
|
||||
recover quickly. It will be gone again after 1 minute.
|
||||
Flour your thumb and gently press around \qtyrange{0.5}{1}{cm} deep into the
|
||||
dough. Try this directly after shaping. You will notice that the created dent
|
||||
will recover quickly. It will be gone again after one minute.
|
||||
|
||||
As you proceed with proofing, your dough will fill up with more gas. At the
|
||||
same time, the dough will become more extensible. Once it starts to reach the
|
||||
right amount of fluffiness and extensibility, the dent will disappear more slowly.
|
||||
Once the dough is ready for scoring and baking the dent should still be visible after
|
||||
1 minute of waiting.
|
||||
right amount of fluffiness and extensibility, the dent will disappear more
|
||||
slowly. Once the dough is ready for scoring and baking the dent should still
|
||||
be visible after one minute of waiting.
|
||||
|
||||
I~recommend performing the finger poke test once every 15~minutes throughout
|
||||
the proofing stage. Realistically, based on my experience, proofing takes at least
|
||||
@@ -1571,7 +1585,7 @@ A reliable way to ensure consistent proofing is to opt for using a pH
|
||||
meter. By checking the amount of piled-up acidity you can ensure
|
||||
each of your doughs has the right amount of acidity. Opt for an iterative
|
||||
approach and check the pH for multiple proofing times. Find the pH
|
||||
the value that creates the best bread for you. Once you have identified
|
||||
value that creates the best bread for you. Once you have identified
|
||||
your perfect pH value you can resort to that number on all following
|
||||
doughs. See Table~\ref{table:sample-ph-values} for some sample pH values
|
||||
to follow.
|
||||
@@ -1594,6 +1608,7 @@ greatly boosts the contrast of the scoring incisions and thus
|
||||
makes the final pattern look more visually appealing.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{the-ear}
|
||||
\caption[Bread's ear]{The ear is a characteristic that can be achieved on
|
||||
wheat sourdough when fermenting and scoring your dough with the perfect
|
||||
@@ -1609,6 +1624,7 @@ The dough's top side which was previously at the bottom of the
|
||||
banneton should now be facing you.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{artistic-scoring}
|
||||
\caption[Artistic scoring]{A loaf by Nancy~Anne featuring an artistic
|
||||
scoring pattern. The high contrast was achieved by rubbing the dough's
|
||||
@@ -1618,7 +1634,7 @@ banneton should now be facing you.
|
||||
\label{fig:artistic-scoring}
|
||||
\end{figure}
|
||||
|
||||
The scoring cut for done at a \ang{45}~angle relative to the dough's
|
||||
The scoring cut is done at a \ang{45}~angle relative to the dough's
|
||||
surface slightly off the dough's center. With the \ang{45}~angle cut
|
||||
the overlaying side will rise more in the oven than the other side.
|
||||
This way you will achieve a so-called \emph{ear} on the final bread.
|
||||
@@ -1628,6 +1644,7 @@ and thus offers additional flavor. In my opinion, the ear turns
|
||||
a good loaf into a great loaf.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{bread-scoring-angle}
|
||||
\caption[Scoring angle]{The \ang{45}~angle at which you score the
|
||||
dough is relative to the surface of the dough. When scoring more towards
|
||||
@@ -1656,6 +1673,7 @@ ear. For this reason, drying out the surface is especially important. Scoring
|
||||
will become a lot easier.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{dry-dough-surface}
|
||||
\caption[Drying the dough surface]{By applying flour to your dough's surface
|
||||
after shaping, the outer part of the dough dries out a little bit. This
|
||||
@@ -1676,10 +1694,10 @@ An additional trick that can help you to combine the benefits
|
||||
of room temperature-proofing and easy cold-proofing scoring
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
The hot air will dry out the dough's surface even further and simplify
|
||||
the scoring technique. Experiment with the timing to identify your personal
|
||||
sweet spot.
|
||||
|
||||
18
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: print_os_version start_shell printvars show_tools_version mrproper
|
||||
.PHONY: build_serif_pdf build_ebook
|
||||
|
||||
# Dockers targets
|
||||
build_docker_image:
|
||||
@@ -14,17 +15,17 @@ push_docker_image: build_docker_image
|
||||
docker push $(DOCKER_IMAGE):latest
|
||||
|
||||
# Books/website
|
||||
build_serif_pdf:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make build_serif_pdf"
|
||||
serif_pdf:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make serif_pdf"
|
||||
|
||||
build_ebook:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make build_ebook"
|
||||
ebook:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make ebook"
|
||||
|
||||
build_pdf:
|
||||
pdf:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make"
|
||||
|
||||
bake:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make -j bake"
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make bake"
|
||||
|
||||
website:
|
||||
$(DOCKER_CMD) "cd /opt/repo/book && make website"
|
||||
@@ -44,3 +45,8 @@ print_os_version:
|
||||
|
||||
start_shell:
|
||||
docker run -it -v $(PWD):/opt/repo $(DOCKER_IMAGE) /bin/bash
|
||||
|
||||
# Old names for backward compatibility
|
||||
build_serif_pdf: serif_pdf
|
||||
build_ebook: ebook
|
||||
build_pdf: pdf
|
||||
|
||||
@@ -1 +1 @@
|
||||
3.1.2
|
||||
3.3.7
|
||||
|
||||
@@ -3,11 +3,9 @@ GEM
|
||||
specs:
|
||||
coderay (1.1.3)
|
||||
method_source (1.0.0)
|
||||
nokogiri (1.15.3-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.15.3-x86_64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.15.3-x86_64-linux)
|
||||
mini_portile2 (2.8.8)
|
||||
nokogiri (1.15.3)
|
||||
mini_portile2 (~> 2.8.2)
|
||||
racc (~> 1.4)
|
||||
pry (0.14.2)
|
||||
coderay (~> 1.1)
|
||||
@@ -16,6 +14,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-22
|
||||
arm64-darwin-24
|
||||
x86_64-darwin-22
|
||||
x86_64-linux
|
||||
|
||||
@@ -24,7 +23,7 @@ DEPENDENCIES
|
||||
pry
|
||||
|
||||
RUBY VERSION
|
||||
ruby 3.1.2p20
|
||||
ruby 3.3.7p123
|
||||
|
||||
BUNDLED WITH
|
||||
2.4.12
|
||||
|
||||
@@ -341,6 +341,12 @@ class ModifyBuild
|
||||
<span class="link_text">Book .EPUB</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<a href="https://the-bread-code.io/book-tldr-digital.pdf">
|
||||
<span class="chapter_number">⬇️</span>
|
||||
<span class="link_text">Short TL;DR .PDF</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class="chapterToc">
|
||||
<a href="https://breadco.de/hardcover-book">
|
||||
<span class="chapter_number">📚</span>
|
||||
@@ -392,7 +398,7 @@ class ModifyBuild
|
||||
|
||||
def build_header_html
|
||||
%Q{
|
||||
<div class="header"><img src="banner.png"></div>
|
||||
<div class="header"><a href="/"><img src="banner.png"></a></div>
|
||||
}
|
||||
end
|
||||
|
||||
@@ -626,13 +632,16 @@ class ModifyBuild
|
||||
Creating this book has been a labor of love. My
|
||||
main goal has always been to spread the joy of baking and empower bread
|
||||
enthusiasts like yourself. To ensure that the book remains accessible
|
||||
to everyone, I have decided to make it available as a free digital download.
|
||||
to everyone, I have decided to make it available free of charge.
|
||||
</p>
|
||||
|
||||
<img alt="One of my best Sourdough Breads" class="home-bread" src="bread.jpg" />
|
||||
<a href="bread.jpg">
|
||||
<img alt="One of my best Sourdough Breads" class="home-bread" src="bread.jpg" />
|
||||
</a>
|
||||
|
||||
<h2 class="chapterHead home-content-title">⭐ Support this project</h2>
|
||||
<p class="noindent">
|
||||
However, producing and maintaining resources like this requires
|
||||
Producing and maintaining resources like this requires
|
||||
considerable time, effort, and financial investment. If you find value
|
||||
in "The Sourdough Framework" and appreciate the effort that went into
|
||||
creating it, I kindly request your support <a href="https://breadco.de/book">
|
||||
@@ -644,18 +653,7 @@ class ModifyBuild
|
||||
<p class="noindent">
|
||||
Your generous contribution will not only help me cover the costs associated
|
||||
with this project but will also enable me to continue creating more valuable
|
||||
content in the future.
|
||||
</p>
|
||||
|
||||
<p class="noindent">
|
||||
If you feel inspired to contribute, please consider making a donation of
|
||||
any amount through <a href="https://breadco.de/book">my donation page</a>.
|
||||
Your support will go a long way in ensuring
|
||||
that this knowledge can reach even more bread enthusiasts worldwide.
|
||||
</p>
|
||||
|
||||
<p class="noindent">
|
||||
Remember, your donation is entirely voluntary and any amount you
|
||||
content in the future. Your donation is entirely voluntary and any amount you
|
||||
contribute is deeply appreciated. If you are unable to make a donation at
|
||||
this time, please know that your readership and support in spreading the
|
||||
word about "The Sourdough Framework" are invaluable contributions as well.
|
||||
@@ -667,29 +665,33 @@ class ModifyBuild
|
||||
Together, we can continue to share the love of baking and cultivate a
|
||||
community passionate about the art of sourdough.
|
||||
</p>
|
||||
|
||||
<h2 class="chapterHead home-content-title">⬇️ Versions</h2>
|
||||
<p class="noindent">
|
||||
You can either browse through this page or download the full book directly:
|
||||
</p>
|
||||
<p class="noindent">
|
||||
PDF: <a href="https://www.the-bread-code.io/book.pdf">https://www.the-bread-code.io/book.pdf</a><br>
|
||||
PDF (no serif): <a href="https://www.the-bread-code.io/book-sans-serif.pdf">https://www.the-bread-code.io/book-sans-serif.pdf</a>
|
||||
You can either browse through this website or download the full book to read it on your preferred device:
|
||||
</p>
|
||||
|
||||
<p class="noindent">
|
||||
EPUB: <a href="https://www.the-bread-code.io/book.epub">https://www.the-bread-code.io/book.epub</a><br>
|
||||
EPUB in Black & White, size optimized for screen readers : <a href="https://www.the-bread-code.io/bw-book.epub">https://www.the-bread-code.io/bw-book.epub</a><br>
|
||||
</p>
|
||||
<div class="download-links">
|
||||
<p class="noindent">
|
||||
<span class="download-description">PDF:</span> <a href="https://www.the-bread-code.io/book.pdf">https://www.the-bread-code.io/book.pdf</a><br>
|
||||
<span class="download-description">PDF (no serif):</span> <a href="https://www.the-bread-code.io/book-sans-serif.pdf">https://www.the-bread-code.io/book-sans-serif.pdf</a>
|
||||
</p>
|
||||
|
||||
<p class="noindent">
|
||||
<span class="download-description">EPUB:</span> <a href="https://www.the-bread-code.io/book.epub">https://www.the-bread-code.io/book.epub</a><br>
|
||||
<span class="download-description">EPUB black & white:</span> <a href="https://www.the-bread-code.io/bw-book.epub">https://www.the-bread-code.io/bw-book.epub</a><br>
|
||||
</p>
|
||||
|
||||
<p class="noindent">
|
||||
The full source code of the book can be found here:
|
||||
<a href="https://www.github.com/hendricius/the-sourdough-framework">https://www.github.com/hendricius/the-sourdough-framework</a>
|
||||
</p>
|
||||
<p class="noindent">
|
||||
<span class="download-description">Short TL;DR version:</span> <a href="https://the-bread-code.io/book-tldr-digital.pdf">https://the-bread-code.io/book-tldr-digital.pdf</a><br>
|
||||
<span class="download-description">Short TL;DR version (print):</span> <a href="https://the-bread-code.io/book-tldr-print.pdf">https://the-bread-code.io/book-tldr-print.pdf</a><br>
|
||||
</p>
|
||||
|
||||
<p class="noindent">
|
||||
There's also a hardcover version of the book available featuring an even more awesome design. You can read more information here:
|
||||
<a href="https://www.breadco.de/hardcover-book">https://www.breadco.de/hardcover-book</a>
|
||||
</p>
|
||||
<p class="noindent">
|
||||
<span class="download-description">Sauce code:</span>
|
||||
<a href="https://www.github.com/hendricius/the-sourdough-framework">https://www.github.com/hendricius/the-sourdough-framework</a>. Contributions and improvements are highly appreciated!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p class="noindent">
|
||||
Thank you and may the gluten be strong with you,<br>
|
||||
@@ -728,7 +730,7 @@ class ModifyBuild
|
||||
doc.to_html
|
||||
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)
|
||||
text.gsub("https:/cdn.jsdelivr.net", "https://cdn.jsdelivr.net")
|
||||
end
|
||||
@@ -780,7 +782,7 @@ class ModifyBuild
|
||||
def insert_mobile_header_graphic(text)
|
||||
doc = build_doc(text)
|
||||
content = doc.css(".TOC.menu")[0]
|
||||
content.after('<div class="mobile-banner"><img src="banner.png" /></div>')
|
||||
content.after('<div class="mobile-banner"><a href="/"><img src="banner.png" /></a></div>')
|
||||
doc.to_html
|
||||
end
|
||||
|
||||
|
||||