Merge branch 'hendricius:main' into main

This commit is contained in:
Quirin Niedernhuber
2023-06-03 18:59:01 +02:00
committed by GitHub
37 changed files with 472 additions and 361 deletions

View File

@@ -9,7 +9,7 @@ jobs:
steps:
- name: Set up git repository
uses: actions/checkout@v3
- name: Build the book
- name: Bake the book
uses: xu-cheng/texlive-action/full@v1
with:
run: |
@@ -18,8 +18,8 @@ jobs:
tar xzf kindlegen_linux_2.6_i386_v2_9.tar.gz
mv kindlegen /usr/bin
cd book
make release
- name: Release book on S3
make bake
- name: Release baked book to S3
uses: shallwefootball/s3-upload-action@master
with:
aws_key_id: ${{ secrets.AWS_KEY_ID }}

View File

@@ -13,7 +13,7 @@ jobs:
apk add make
cd book
make build_pdf
- name: Test building release versions
- name: Test baking the release versions
uses: xu-cheng/texlive-action/full@v1
with:
run: |
@@ -22,4 +22,4 @@ jobs:
tar xzf kindlegen_linux_2.6_i386_v2_9.tar.gz
mv kindlegen /usr/bin
cd book
make release
make bake

4
.gitignore vendored
View File

@@ -48,3 +48,7 @@ book/book*.html
book/book-epub/
book/book-mobi/
book/book-azw3/
*.bak
book_sans_serif/
release_sans_serif/
*.opf

View File

@@ -1,4 +1,3 @@
# Dockerfile.rails
FROM ghcr.io/xu-cheng/texlive-full
WORKDIR /root

View File

@@ -3,6 +3,8 @@
The sourdough framework is an open-source book dedicated to
helping you to make the best possible sourdough bread at home.
![The book cover](book/images/cover-page.jpg)
Rather than providing recipes this book intends to provide a
framework that enables you to bake bread in your respective
environment. Every flour, every sourdough, and every home setup
@@ -10,8 +12,6 @@ is different. This makes following recipes without background
information so hard and a fail-prone endeavor. This book
intends to close that gap.
![A whole wheat sourdough bread](./book/images/whole-wheat-crumb.jpg)
## Background
4 years after launching the repositories [the-bread-code](https://github.com/hendricius/the-bread-code)
@@ -21,9 +21,10 @@ project intends to go one step deeper into the workings of
natural fermentation. At the same time as many scientific references
as possible are provided.
![The book cover](book/images/cover-page.jpg)
![A whole wheat sourdough bread](./book/images/whole-wheat-crumb.jpg)
## Building the book (Docker)
## 🍞 Baking the book (Docker)
```console
make
@@ -31,15 +32,15 @@ make
Then you can check out the file `book/book.pdf`
If you want to build the eBook versions (.epub, .mobi, .azw3) run:
If you want to 🍞 bake all the versions including ebook formats (.pdf, .epub, .mobi, .azw3) run:
```console
make release
make bake
```
You can check the files in the folder `book/release/`
## Building the book locally (LaTeX)
## 🍞 Baking the book locally (LaTeX)
Make sure you have `biber` installed. Refer to your system's installation
instructions for LaTeX.
@@ -49,11 +50,11 @@ cd book/
make
```
If you want to build the eBook versions (.epub, .mobi, .azw3) run:
If you want to 🍞 bake all the versions including ebook formats (.pdf, .epub, .mobi, .azw3) run:
```console
cd book/
make release
make bake
```
You can check the files in the folder `book/release/`
@@ -67,6 +68,18 @@ The below versions are automatically built on every push to the `main` branch.
* [Download compiled .mobi version](https://www.the-bread-code.io/book.mobi)
* [Download compiled .azw3 version](https://www.the-bread-code.io/book.azw3)
There's an additional enhanced accessibility version using a sans serif font:
* [Download compiled .pdf version](https://www.the-bread-code.io/book-sans-serif.pdf)
* [Download compiled .epub version](https://www.the-bread-code.io/book-sans-serif.epub)
* [Download compiled .mobi version](https://www.the-bread-code.io/book-sans-serif.mobi)
* [Download compiled .azw3 version](https://www.the-bread-code.io/book-sans-serif.azw3)
## Hardcover version
There is a hardcover version of the book available for purchase. [You can
read more details here.](https://breadco.de/physical-book)
## Support
Did you find a typo, or feel the wording could be improved?
@@ -78,9 +91,9 @@ that it will reach more people all over the world without
budget constraints.
If you would like to contribute with a small donation you can do so
via my [ko-fi page.](https://breadco.de/book) This will help me
to cover costs related to running the-bread-code and allow me
to work more updates for this book.
via my [ko-fi page.](https://breadco.de/book) Your donation will tremendously
help me to cover costs related to running the-bread-code. It futhermore allows
me to dedidcate time to continously update and improve this book.
## Links

View File

@@ -20,8 +20,10 @@ Your bread starts to build a crust of gel-like consistency. The crust is still
extensible and can be stretched.
\begin{table}[htp!]
\includegraphics{tables/table-baking-process-stages.pdf}
\caption{The different stages that your dough undergoes during the baking process.}
\begin{center}
\input{tables/table-baking-process-stages.tex}
\caption{The different stages that your dough undergoes during the baking process.}
\end{center}
\end{table}
At around 60°C (140°F) the microbes in your dough start to die.
@@ -265,10 +267,13 @@ crust color. In my case this is another 15-25 minutes typically.
\section{Conclusions}
\begin{figure}[!htb]
\includegraphics{tables/table-oven-baking-overview.pdf}
\caption{An overview of different oven types and their different baking methods}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-oven-baking-overview.tex}
\caption{An overview of different oven types and their different
baking methods.}
\end{center}
\end{table}
Depending on your home oven, a different method
of steaming may be used. Generally most ovens

9
book/book-ebook.css Normal file
View File

@@ -0,0 +1,9 @@
.figure {
max-width: 100%;
}
.figure img {
max-width: 100% !important;
height: auto;
object-fit: contain;
width: auto;
}

8
book/book.mk4 Normal file
View File

@@ -0,0 +1,8 @@
local filter = require "make4ht-filter"
local removeHeight = function(s) return s:gsub('height="%d+"', '') end
local removeWidth = function(s) return s:gsub('width="%d+"', '') end
local removeMaxWidth = function(s) return s:gsub(' max-width: %d+px;', '') end
local removeFixedSettings = function(s) return removeMaxWidth(removeWidth(removeHeight(s))) end
local process = filter{removeFixedSettings}
Make:htlatex()
Make:match("html$",process)

View File

@@ -13,6 +13,14 @@
\usepackage{tocloft}
\usepackage{tex4ebook}
\usepackage{chemformula}
\usepackage{booktabs}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
% Fonts for accessibility
%\usepackage{helvet}
%\renewcommand{\familydefault}{\sfdefault}
% References
\usepackage[backend=biber]{biblatex}
@@ -27,16 +35,16 @@
% Folders where to search for images
\graphicspath{
{./images/}
{./troubleshooting/}
{./sourdough-starter/}
{./troubleshooting/crumb-structures/}
{./history/}
{./images/external/}
{./baking/}
{./wheat-sourdough/}
{./wheat-sourdough/shaping/}
{./non-wheat-sourdough/}
{images/}
{troubleshooting/}
{sourdough-starter/}
{troubleshooting/crumb-structures/}
{history/}
{images/external/}
{baking/}
{wheat-sourdough/}
{wheat-sourdough/shaping/}
{non-wheat-sourdough/}
}
% Layout rules
@@ -61,7 +69,7 @@
% Title page
\begin{titlepage}
\centering
\includegraphics[width=\textwidth]{cover-page}
\includegraphics[width=\textwidth]{images/cover-page.jpg}
Version:
\today
\end{titlepage}

View File

@@ -7,11 +7,13 @@ 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.
\begin{figure}[!htb]
\includegraphics{tables/table-overview-bread-types.pdf}
\caption{An overview of different bread types and their respective complexity}
\begin{table}[!htb]
\begin{center}
\input{tables/table-overview-bread-types.tex}
\caption{An overview of different bread types and their respective complexity}
\end{center}
\label{tab:bread-types-comparison}
\end{figure}
\end{table}
\section{Flatbread}
@@ -170,12 +172,16 @@ I have little time or when I am abroad. You can choose
between two options: 1) A flatbread similar to a roti or naan bread
or 2) sourdough pancakes.
\begin{figure}[!htb]
\includegraphics{tables/table-flat-bread-pancake-recipe.pdf}
\caption{\label{tab:flat-bread-ingredients}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 use the percentages properly.}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-flat-bread-pancake-recipe.tex}
\caption{\label{tab:flat-bread-ingredients}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
use the percentages properly.}
\end{center}
\end{table}
To get started prepare your sourdough starter. If it has not been used for a very
long time, consider giving it another feed. To do so simply take 1 g of your

View File

@@ -5,8 +5,10 @@
\node [block] (init) {\footnotesize Make a starter};
\node [block, right of=init, node distance=3cm] (feed) {\footnotesize Feed your starter};
\path [line] (init) -- (feed);
\node [block, right of=feed, node distance=3cm] (ready_question) {\footnotesize Perform readiness check};
\path [line] (feed) -- (ready_question);
\node [block, right of=feed, node distance=3cm] (wait_12_after_feed) {\footnotesize Wait 12 hours};
\path [line] (feed) -- (wait_12_after_feed);
\node [block, right of=wait_12_after_feed, node distance=3cm] (ready_question) {\footnotesize Perform readiness check};
\path [line] (wait_12_after_feed) -- (ready_question);
\node [block, below of=feed, node distance=3cm] (wait_12) {\footnotesize Wait 12 hours};
\path [line] (wait_12) -- (feed);
\node [decision, right of=ready_question, node distance=3.5cm] (is_bubbly) {\footnotesize Bubbly? Size Increase?};

View File

@@ -12,11 +12,14 @@ activated. The whitest flour you can get is mostly just the starch part of the s
Depending on which layers are still present, names are used to describe the
type of flour.
\begin{figure}[!htb]
\includegraphics{tables/table-flour-types.pdf}
\label{tab:flour-types-comparison}
\caption{A comparison of how different types of wheat flour are labelled in different countries}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-flour-types.tex}
\label{tab:flour-types-comparison}
\caption{A comparison of how different types of wheat flour are
labelled in different countries.}
\end{center}
\end{table}
In Germany, the ash content is used to describe the flours. The lab will burn
100 grams of flour in the oven. Then afterwards the remaining ash is extracted
@@ -47,10 +50,13 @@ described. For no/low gluten flour your main focus is managing acidity. You do n
want the final bread to be too sour. You do not have to worry about the gluten
degradation, removing a huge headache from the equation.
\begin{figure}[!htb]
\includegraphics{tables/table-grains-bread-making-process.pdf}
\caption{An overview of different grain types and the steps involved in the respective bread making process}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-grains-bread-making-process.tex}
\caption{An overview of different grain types and the steps involved
in the respective bread making process}
\end{center}
\end{table}
As gluten has a special role, the rest of this chapter is dedicated to having a
closer look at different gluten flours and how to distinguish them. Spelt
@@ -98,11 +104,14 @@ product out of a high W flour you will need to have a long fermentation period.
The long fermentation period also means that your microbes will enrich
your dough with more flavor.
\begin{figure}[!htb]
\includegraphics{tables/table-overview-w-values.pdf}
\caption{An overview of different levels of W values and the respective hydrations and fermentation times}
\label{tab:w-value}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-overview-w-values.tex}
\caption{An overview of different levels of W values and the
respective hydrations and fermentation times}
\label{tab:w-value}
\end{center}
\end{table}
Generally, when aiming to
bake free standing sourdough bread, aim for a higher protein content. If the

View File

@@ -164,13 +164,10 @@ and how to adapt them when things go wrong while making bread.
It is my desire for this knowledge to be accessible to everyone around the world, regardless
of budget, and as such, I do not want to charge for the book. That's why I've decided to make
it open source and have asked the community to support my work financially via my ko-fi page
(https://ko-fi.com/thebreadcode). The community's feedback has been amazing so far, and
I've already raised much more money than initially expected.
The first version of the book will only be available digitally---this way, everyone can read
it---though there might also be a hardcover version in the future, depending on how well received
and appreciated it is by bakers around the world. The hardcover version will, of course, cost a
bit of money, but the digital version will remain free.
\url{https://ko-fi.com/thebreadcode}. The community's feedback has been amazing so far, and
I've already raised much more money than initially expected. The digital version of this book
will always remain free. There is also a hardcover version of the book available for purchase.
You can read more details here: \url{https://breadco.de/physical-book}
In this book, I will try to be as scientific as possible. I in no way claim, however, that
it will itself be a work of science. I have conducted several experiments that I will write

View File

@@ -4,6 +4,11 @@ build_pdf: clean figures tables
biber book
pdflatex book.tex
# setup_default_build:
# sed -i '.bak' 's#^\\usepackage{helvet}#%\\usepackage{helvet}#g' book.tex
# sed -i '.bak' 's#^\\renewcommand{\\familydefault}{\\sfdefault}#%\\renewcommand{\\familydefault}{\\sfdefault}#g' book.tex
.PHONY: clean_figures
clean_figures:
cd figures
@@ -23,10 +28,6 @@ export_figures:
figures: clean_figures
cd figures && find . -name "fig-*.tex" -exec pdflatex '{}' \;
.PHONY: tables
tables:
cd tables && find . -name "table-*.tex" -exec pdflatex '{}' \;
.PHONY: clean
clean: clean_figures
rm -f book.blg
@@ -64,22 +65,51 @@ clean: clean_figures
rm -f content.opf
find . -name "*.xbb" | xargs rm -f
rm -rf release/
rm -rf release_sans_serif/
.PHONY: release
release: clean build_pdf make_release_dir build_ebook
.PHONY: release_default
release_default: clean build_pdf make_release_dir build_ebook
cp book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
cp book-mobi/book.mobi release/TheBreadCode-The-Sourdough-Framework.mobi
cp book-epub/book.epub release/TheBreadCode-The-Sourdough-Framework.epub
cp book-azw3/book.azw3 release/TheBreadCode-The-Sourdough-Framework.azw3
.PHONY: bake
bake: release_default release_sans_serif
.PHONY: make_release_dir
make_release_dir:
mkdir -p release
.PHONY: release_sans_serif
release_sans_serif: make_release_dir
# For the sans serif version we are just going
# to copy all the files into a new folder and
rm -rf release_sans_serif/
mkdir /tmp/release_sans_serif
cp -R * /tmp/release_sans_serif
mv /tmp/release_sans_serif .
# The next part will uncomment the sans serif font in the book.tex
#
# Note that the OS X sed behaves a little different
# than the gnu sed. If you are on OS X you might
# have to install gnu sed for this to work. Or you can
# use sed -i '.bak' restofcommand. OS X wants to have
# a backup file listed before replacing the contents
# of a file.
sed -i 's#%\\usepackage{helvet}#\\usepackage{helvet}#g' release_sans_serif/book.tex
sed -i 's#%\\renewcommand{\\familydefault}{\\sfdefault}#\\renewcommand{\\familydefault}{\\sfdefault}#g' release_sans_serif/book.tex
cd release_sans_serif && $(MAKE) release_default
cp release_sans_serif/release/TheBreadCode-The-Sourdough-Framework.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
cp release_sans_serif/release/TheBreadCode-The-Sourdough-Framework.mobi release/TheBreadCode-The-Sourdough-Framework-sans-serif.mobi
cp release_sans_serif/release/TheBreadCode-The-Sourdough-Framework.epub release/TheBreadCode-The-Sourdough-Framework-sans-serif.epub
cp release_sans_serif/release/TheBreadCode-The-Sourdough-Framework.azw3 release/TheBreadCode-The-Sourdough-Framework-sans-serif.azw3
.PHONY: build_ebook
build_ebook: build_pdf make_release_dir
find . -name "*.jpg" | xargs ebb -x
find . -name "*.png" | xargs ebb -x
build_ebook: make_release_dir
tex4ebook -c tex4ebook.cfg -f epub book.tex
tex4ebook -c tex4ebook.cfg -f mobi book.tex
# not sure why, but I hvae to generate the mobi twice for the
# release command to properly work.
tex4ebook -c tex4ebook.cfg -f mobi book.tex
tex4ebook -c tex4ebook.cfg -f azw3 book.tex

View File

@@ -3,11 +3,13 @@ at different sourdough starter types and their respective
traits.
\begin{table}[htp!]
\includegraphics{tables/table-starter-types.pdf}
\caption{A comparison of different sourdough starter types and their
respective properties. The only difference is the level of water (hydration)
that is used when feeding the starter.}
\label{tab:starter-types-comparison}
\begin{center}
\input{tables/table-starter-types.tex}
\caption{A comparison of different sourdough starter types and their
respective properties. The only difference is the level of water (hydration)
that is used when feeding the starter.}
\label{tab:starter-types-comparison}
\end{center}
\end{table}
Depending on the flour you have at hand, the type of starter changes. With more
@@ -77,7 +79,7 @@ a longer fermentation before most gluten is broken down.
The regular sourdough starter is made at a hydration of around 100 percent.
This means the starter has equal parts of flour and water. This is the most
common and must universal sourdough starter there is. The starter has a good
common and most universal sourdough starter there is. The starter has a good
balance of yeast and bacteria. After a feeding, the volume increases and
increases. After it reaches a certain peak, it will start to collapse again.

View File

@@ -34,10 +34,12 @@ but there is an easier way. This is where baker's math
comes in handy. Let's look at the default recipe with baker's
math and then adjust it for the 1.4 kilogram flour quantity.
\begin{figure}[!htb]
\includegraphics{tables/table-bakers-math-example.pdf}
\begin{table}[!htb]
\begin{center}
\input{tables/table-bakers-math-example.tex}
\caption{An example table demonstrating how to properly calculate using baker's math}
\end{figure}
\end{center}
\end{table}
Note how each of the ingredients is calculated as a percentage
based on the flour. The 100 percent is the baseline and represents the absolute
@@ -48,11 +50,13 @@ Now let's go back to our example and adjust the flour, as we have
more flour available the next day. As mentioned the next day
we have 1.4 kilograms at hand (1400 grams).
\begin{figure}[H]
\includegraphics{tables/table-recipe-bakers-math.pdf}
\caption{An example recipe that uses 1400 grams as its baseline and
is then calculated using baker's math}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-recipe-bakers-math.tex}
\caption{An example recipe that uses 1400 grams as its baseline and
is then calculated using baker's math}
\end{center}
\end{table}
For each ingredient we calculate the percentage
based on the flour available (1400 grams). So for the water
@@ -100,21 +104,28 @@ contamination of the microbes you are trying to cultivate
in your starter. More of them live on the hull compared to the
endophytes living in the grain.
Simply weigh around 50 grams of flour and add another 50
grams of water. It doesn't have to be exactly 50 grams of both
water or flour. You could also use less and/or simply eyeball it.
The values are just shown as a reference. Don't use chlorinated
water to setup your starter. It should be bottled water ideally,
or here in Germany we can just use our tap water. Chlorine
is added to water to kill microorganisms. You will not
be able to grow a starter with chlorinated water. The hydration
of your dough is 100 percent. This means you have equal parts
of flour and water. Stir everything together so that all the flour
is properly hydrated. By adding water many of your microbes'
spores become activated. They exit hibernation mode and
become alive again. Cover your mixture with a lid. I like to
use a glass and place another inverted one on top. The container shouldn't
be airtight. You still want some gas exchange to be possible.
Start by measuring approximately 50 grams each of flour and
water. The measurements don't have to be exact; you can use
less or more, or just eyeball the proportions. These
values are just shown as a reference.
Don't use chlorinated water when setting up your starter.
Ideally, you should use bottled water. In certain regions
like Germany, tap water is perfectly fine. Chlorine is added
to water as a disinfectant to kill microorganisms, you will
not be able to grow a starter with chlorinated water.
In this process, the hydration of your starter is 100
percent. This means you're using equal parts flour and
water. Stir everything together so that all the flour is
properly hydrated. This step activates the microbial spores
in your mixture, drawing them out of hibernation and
reviving them.
Finally, cover your mixture but make sure the covering is
not airtight. I like to use a glass and place another
inverted one on top. The container shouldn't be airtight,
you still want some gas exchange to be possible.
\begin{figure}[!htb]
\includegraphics{figures/fig-starter-process.pdf}
@@ -149,7 +160,7 @@ 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 and metabolizing glucose. The contamination
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 that know
@@ -312,7 +323,7 @@ yeast part of your sourdough and balance the fermentation.
\end{figure}
You have made your sourdough starter and your first bread. How do you perform
maintenance for your starter? There are countless of different maintenance
maintenance for your starter? There are countless different maintenance
methods out there. Some people go completely crazy about their starter and
perform daily feedings of the starter. The key to understanding how to properly
conduct maintenance is to understand what happens to your starter after you

View File

@@ -3,12 +3,14 @@ methods of storing your bread. This way
your bread can be best enjoyed at a later
time.
\begin{figure}[!htb]
\includegraphics{tables/table-storing-bread-overview.pdf}
\caption{A table visualizing the advantages and disadvantages
of different bread storing options.}
\label{table:bread-storage}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-storing-bread-overview.tex}
\caption{A table visualizing the advantages and disadvantages
of different bread storing options.}
\label{table:bread-storage}
\end{center}
\end{table}
\section{Room temperature}

View File

@@ -1,12 +1,8 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|r|r|}
\hline
\textbf{Ingredient} & \multicolumn{1}{l|}{\textbf{Percent}} & \multicolumn{1}{l|}{\textbf{Calculation}} \\ \hline
1000g flour & 100\% & 1000g of 1000g = 100\% \\ \hline
600g water & 60\% & 600g of 1000g = 60\% \\ \hline
100g sourdough starter & 10\% & 100g of 1000g = 10\% \\ \hline
20g salt & 2\% & 20g of 1000g = 2\% \\ \hline
\begin{tabular}{@{}lrrr@{}}
\toprule
\multicolumn{2}{c}{\thead{Ingredient}} & \thead{Percentage} & \thead{Calculation} \\ \midrule
flour & 1000g &100\% & 1000g of 1000g = 100\% \\
water & 600g & 60\% & 600g of 1000g = 60\% \\
sourdough starter & 100g & 10\% & 100g of 1000g = 10\% \\
salt & 20g & 2\% & 20g of 1000g = 2\% \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,16 +1,13 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|}
\hline
\textbf{°C °F} & \textbf{Stage} & \textbf{Description} \\ \hline
60 - 140 & Sterilization & \begin{tabular}[c]{@{}l@{}}The temperature is too hot for your\\ microorganisms and they die\end{tabular} \\ \hline
75 - 167 & Gel building & \begin{tabular}[c]{@{}l@{}}A gel builds on the surface persisting\\ your dough's structure. It is still\\ extensible and can spring in the\\ oven\end{tabular} \\ \hline
100 - 212 & Water evaporation & \begin{tabular}[c]{@{}l@{}}Water begins to evaporate and\\ inflates your dough's alveoli\end{tabular} \\ \hline
118 - 244 & Acetic acid evaporation & \begin{tabular}[c]{@{}l@{}}The vinegary tasting acid starts\\ to evaporate. The sourness decreases\end{tabular} \\ \hline
122 - 252 & Lactic acid evaporation & \begin{tabular}[c]{@{}l@{}}The dairy tasting lactic acid begins\\ to evaporate. Sourness further decreases\end{tabular} \\ \hline
140 - 284 & Maillard reaction & \begin{tabular}[c]{@{}l@{}}The maillard reaction starts to deform\\ starches and proteins. The dough starts\\ browning\end{tabular} \\ \hline
170 - 338 & Caramelization & \begin{tabular}[c]{@{}l@{}}Remaining sugars begin to caramelise\\ giving your bread a distinct flavor\end{tabular} \\ \hline
\begin{tabular}{@{}rlp{0.5\textwidth}@{}}
\toprule
\thead{°C / °F} & \thead{Stage} & \thead{Description} \\ \midrule
60 / 140 & Sterilization & The temperature is too hot for your microorganisms and they die.\\
75 / 167 & Gel building & A gel builds on the surface persisting your dough's structure.
It is still extensible and can spring in the oven.\\
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.
The dough starts browning.\\
170 / 338 & Caramelization & Remaining sugars begin to caramelise giving your bread a distinct flavor.\\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,12 +1,9 @@
\input{./vars}
\begin{document}
\begin{tabular}{|r|r|}
\hline
\multicolumn{1}{|l|}{\textbf{Flour protein content}} & \multicolumn{1}{l|}{\textbf{Relative aliquot size increase}} \\ \hline
8-10\% & 25\% \\ \hline
10-12\% & 50\% \\ \hline
12-15\% & 100\% \\ \hline
\textgreater 15\% & \textgreater 100\% \\ \hline
%TODO: Not great looking
\begin{tabular}{@{}cc@{}}
\toprule
\thead{Flour protein content} & \thead{Relative aliquot size increase} \\ \midrule
8--10\% & 25\% \\
10--12\% & 50\% \\
12--15\% & 100\% \\
\textgreater{} 15\% & \textgreater{} 100\% \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,13 +1,27 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|l|}
\hline
\textbf{} & \textbf{\begin{tabular}[c]{@{}l@{}}Too short\\ fermentation\end{tabular}} & \textbf{\begin{tabular}[c]{@{}l@{}}Too long\\ fermentation\end{tabular}} & \textbf{\begin{tabular}[c]{@{}l@{}}Perfect\\ fermentation\end{tabular}} \\ \hline
\textbf{\begin{tabular}[c]{@{}l@{}}Crumb\\ texture\end{tabular}} & \begin{tabular}[c]{@{}l@{}}Unbaked gummy areas\\ towards the bottom of\\ the bread\end{tabular} & \begin{tabular}[c]{@{}l@{}}Crumb can be\\ perceived as\\ gummy, as most\\ gluten broken\\ down\end{tabular} & \begin{tabular}[c]{@{}l@{}}Crumb evenly baked.\\ Crumb can be perceived\\ as moist, but not\\ gummy\end{tabular} \\ \hline
\textbf{Alveoli} & \begin{tabular}[c]{@{}l@{}}Overly large alveoli\\ in the crumb "craters"\end{tabular} & \begin{tabular}[c]{@{}l@{}}Many tiny alveoli\\ equally distributed\end{tabular} & \begin{tabular}[c]{@{}l@{}}Alveoli evenly\\ distributed, no\\ "craters"\end{tabular} \\ \hline
\textbf{Taste} & Pale neutral taste & \begin{tabular}[c]{@{}l@{}}Strong acidic flavor\\ profile. Acidity\\ overweighs when\\ tasting\end{tabular} & \begin{tabular}[c]{@{}l@{}}Balanced flavor profile,\\ not too mild but also\\ not too sour. Depending\\ on starter vinegary\\ or lactic notes\end{tabular} \\ \hline
\textbf{Texture} & Overall poor Texture & \begin{tabular}[c]{@{}l@{}}Good consistency,\\ crumb is not as fluffy\\ as it could be\end{tabular} & \begin{tabular}[c]{@{}l@{}}Great combination of \\ textures\end{tabular} \\ \hline
\textbf{\begin{tabular}[c]{@{}l@{}}Oven\\ spring\end{tabular}} & \begin{tabular}[c]{@{}l@{}}Vertical oven spring,\\ mostly due to water\\ evaporating and\\ inflating the dough\end{tabular} & \begin{tabular}[c]{@{}l@{}}Very flat pancake like \\ structure after baking\end{tabular} & \begin{tabular}[c]{@{}l@{}}Great vertical oven\\ spring. Dough grows\\ more upwards rather\\ than sideways\end{tabular} \\ \hline
\begin{tabular}{@{}>{\bfseries}p{0.12\textwidth}p{0.273\textwidth}p{0.273\textwidth}p{0.273\textwidth}@{}}
\toprule
&\multicolumn{3}{c}{\textbf{Fermentation}}\\
\cmidrule(rl){2-4}
& \thead{Too short} & \thead{Too long} & \thead{Perfect} \\ \midrule
Crumb texture & Unbaked gummy areas towards the bottom of the bread.
& Crumb can be perceived as gummy as most gluten broken down.
& Crumb evenly baked. Crumb can be perceived as moist, but not gummy.
\\
Alveoli & Overly large alveoli in the crumb ``craters''.
& Many tiny alveoli equally distributed.
& Alveoli evenly distributed, no ``craters''.
\\
Taste & Pale neutral taste.
& Strong acidic flavor profile. Acidity overweighs when tasting.
& Balanced flavor profile, not too mild but also not too sour.
Depending on starter vinegary or lactic notes.
\\
Texture & Overall poor texture.
& Good consistency, crumb is not as fluffy as it could be.
& Great combination of textures.
\\
Oven spring & Vertical oven spring, mostly due to water evaporating and inflating the dough.
& Very flat pancake like structure after baking.
& Great vertical oven spring. Dough grows more upwards rather than sideways.
\\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,13 +1,11 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|}
\hline
& \textbf{Flat breads} & \textbf{Pancakes} \\ \hline
\textbf{Flour} & 100g & 100g \\ \hline
\textbf{Water} & 100g (100\%) & 300g (300\%) \\ \hline
\textbf{Sourdough starter} & 5-20g (5-20\%) & 5-20g (5-20\%) \\ \hline
\textbf{Salt} & 2g (2\%) & 2g (2\%) \\ \hline
\textbf{When bake?} & Dough increased 50 percent in size & Bubbles visible on surface \\ \hline
%TODO: last line is not great
-\begin{tabular}{lll}
\toprule
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
\textbf{Flour} & 100g & 100g \\
\textbf{Water} & 100g (100\%) & 300g (300\%) \\
\textbf{Sourdough starter} & 5--20g (5--20\%) & 5--20g (5--20\%) \\
\textbf{Salt} & 2g (2\%) & 2g (2\%) \\
\textbf{Bake when?} & Dough increased 50 percent in size & Bubbles visible on surface \\ \bottomrule
\bottomrule
\end{tabular}
\end{document}

View File

@@ -1,13 +1,9 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|r|r|r|}
\hline
\textbf{USA} & \textbf{UK} & \multicolumn{1}{l|}{\textbf{Germany}} & \multicolumn{1}{l|}{\textbf{France}} & \multicolumn{1}{l|}{\textbf{Italy}} \\ \hline
Cake & Soft flour & T405 & T45 & 00 \\ \hline
All purpose & Plain flour & T550 & T55 & 0 \\ \hline
& & T812 & T80 & 1 \\ \hline
& & T1050 & T110 & 2 \\ \hline
Whole & Whole & Vollkorn & T150 & Integrale \\ \hline
\begin{tabular}{@{}llrrr@{}}
\toprule
\thead{USA} & \thead{UK} & {\thead{Germany}} & {\thead{France}} & {\thead{Italy}} \\ \midrule
Cake & Soft flour & T405 & T45 & 00 \\
All purpose & Plain flour & T550 & T55 & 0 \\
& & T812 & T80 & 1 \\
& & T1050 & T110 & 2 \\
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,16 +1,12 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|l|l|}
\hline
\textbf{Grain type} & \textbf{Homogenize} & \textbf{Knead} & \textbf{Stretch \& Fold} & \textbf{Shape} \\ \hline
\textbf{Wheat} & Yes & Yes & Yes & Yes \\ \hline
\textbf{\textgreater 70\% Wheat} & Yes & Yes & Yes & Yes \\ \hline
\textbf{Spelt} & Yes & Yes & Yes & Yes \\ \hline
\textbf{Rye} & Yes & No & No & No \\ \hline
\textbf{Emmer} & Yes & No & No & No \\ \hline
\textbf{Einkorn} & Yes & No & No & No \\ \hline
\textbf{Rice} & Yes & No & No & No \\ \hline
\textbf{Corn} & Yes & No & No & No \\ \hline
\begin{tabular}{@{}>{\bfseries}lcccc@{}}
\toprule
\thead{Grain type} & \thead{Homogenize} & \thead{Knead} & \thead{Stretch \& Fold} & \thead{Shape} \\ \midrule
Wheat & Yes & Yes & Yes & Yes \\
\textgreater{}~70\% Wheat & Yes & Yes & Yes & Yes \\
Spelt & Yes & Yes & Yes & Yes \\
Rye & Yes & No & No & No \\
Emmer & Yes & No & No & No \\
Einkorn & Yes & No & No & No \\
Rice & Yes & No & No & No \\
Corn & Yes & No & No & No \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,12 +1,10 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|l|}
\hline
\textbf{Oven type} & \textbf{Plain (no tools)} & \textbf{Inverted tray} & \textbf{Dutch oven} \\ \hline
Gas & No & No & Yes \\ \hline
\begin{tabular}[c]{@{}l@{}}Convection\\ (Fan always on)\end{tabular} & No & No & Yes \\ \hline
\begin{tabular}[c]{@{}l@{}}Convection\\ (Fan can be disabled)\end{tabular} & No & Yes & Yes \\ \hline
Steam & Yes & Yes & Yes \\ \hline
% TODO: Not great Looking...
\begin{tabular}{@{}p{0.25\textwidth}ccc@{}}
\toprule
\thead{Oven type} & \thead{Plain (no tools)} & \thead{Inverted tray} & \thead{Dutch oven} \\ \midrule
Gas & No & No & Yes \\
Convection (Fan always on) & No & No & Yes \\
Convection (Fan can be disabled) & No & Yes & Yes \\
Steam & Yes & Yes & Yes \\
\bottomrule
\end{tabular}
\end{document}

View File

@@ -1,13 +1,10 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|l|}
\hline
& \textbf{Flatbread} & \textbf{Loaf pan bread} & \textbf{Free standing bread} \\ \hline
\textbf{Cooking method} & Fire, pan, barbecue & Oven & Oven \\ \hline
\textbf{Working time in minutes} & 3 & 5 & 60 \\ \hline
\textbf{Flour types} & All & All & Gluten flours \\ \hline
\textbf{Difficulty} & Very easy & Easy & Difficult \\ \hline
\textbf{Cost} & Low & Medium & High \\ \hline
% TODO
\begin{tabular}{@{}>{\bfseries}p{0.17\textwidth}ccc@{}}
\toprule
& \thead{Flatbread} & \thead{Loaf pan bread} & \thead{Free standing bread} \\ \midrule
Cooking method & Fire, pan, barbecue & Oven & Oven \\
Working time (min.) & 3 & 5 & 60 \\
Flour types & All & All & Gluten flours \\
Difficulty & Very easy & Easy & Difficult \\
Cost & Low & Medium & High \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,12 +1,8 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|r|l|r|}
\hline
\textbf{W-Value} & \multicolumn{1}{l|}{\textbf{Hydration in \%}} & \textbf{Uses} & \multicolumn{1}{l|}{\textbf{Fermentation times}} \\ \hline
0-150 & 50 & Cookies & Very short \\ \hline
150-250 & 50-60 & Cakes, Bread, Pizza & Short-Medium \\ \hline
250-350 & 60-70 & Bread, Pizza & Long \\ \hline
350+ & 70-90 & Bread, Pizza & Very long \\ \hline
\begin{tabular}{@{}rcll@{}}
\toprule
\thead{W-Value} & \thead{Hydration (\%)} & \thead{Uses} & \thead{Fermentation time} \\ \midrule
0--150 & 50 & Cookies & Very short\\
150--250 & 50--60 & Cakes, Bread, Pizza & Short-Medium\\
250--350 & 60--70 & Bread, Pizza & Long \\
350+ & 70--90 & Bread, Pizza & Very long \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,15 +1,11 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|r|}
\hline
\textbf{Step} & \multicolumn{1}{l|}{\textbf{pH Value}} \\ \hline
Starter ready & 4.20 \\ \hline
Mixing & 6.00 \\ \hline
Dividing/preshaping & 4.10 \\ \hline
Shaping & 4.05 \\ \hline
Before proofing & 4.03 \\ \hline
After proofing & 3.80 \\ \hline
After baking & 3.90 \\ \hline
\begin{tabular}{@{}lr@{}}
\toprule
\textbf{Step} & {\textbf{pH Value}} \\ \midrule
Starter ready & 4.20 \\
Mixing & 6.00 \\
Dividing/preshaping & 4.10 \\
Shaping & 4.05 \\
Before proofing & 4.03 \\
After proofing & 3.80 \\
After baking & 3.90 \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,12 +1,8 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|r|r|}
\hline
\textbf{Ingredient} & \multicolumn{1}{l|}{\textbf{Baker's math}} & \multicolumn{1}{l|}{\textbf{Calculated value}} \\ \hline
Flour & 100\% & 1400*1 = 1400g \\ \hline
Water & 60\% & 1400*0.6 = 840g \\ \hline
Sourdough starter & 10\% & 1400*0.1 = 140g \\ \hline
Salt & 2\% & 1400*0.02 = 28g \\ \hline
\begin{tabular}{@{}lrr@{}}
\toprule
\thead{Ingredient} & \thead{Baker's math} & \thead{Calculated value} \\ \midrule
Flour & 100\% & $1400 \times 1$ = 1400g \\
Water & 60\% & $1400 \times 0.6$ = 840g \\
Sourdough starter & 10\% & $1400 \times 0.1$ = 140g \\
Salt & 2\% & $1400 \times 0.02$ = 28g \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,11 +1,10 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|r|l|}
\hline
\textbf{Starter type} & \textbf{Hydration in \%} & \textbf{Flour type} & \multicolumn{1}{l|}{\textbf{Yeast activity}} & \textbf{Bacterial activity} \\ \hline
Regular & 100 & Strong wheat flour & Balanced & Balanced \\ \hline
Liquid & 500 & Very strong wheat flour & Minimal & High \\ \hline
Stiff & 50-60 & All wheat flour & High & Low \\ \hline
\begin{tabular}{@{}lclll@{}}
\toprule
& & &\multicolumn{2}{c}{\textbf{Activity}}\\
\cmidrule(rl){4-5}
\thead{Starter type} & \thead{Hydration (\%)} & \thead{Flour type} & \thead{Yeast} & \thead{Bacterial} \\ \midrule
Regular & 100 & Strong wheat & Balanced & Balanced \\
Liquid & 500 & Very strong wheat & Minimal & High \\
Stiff & 50--60 & All wheat & High & Low \\
\bottomrule
\end{tabular}
\end{document}

View File

@@ -1,14 +1,12 @@
\input{./vars}
\begin{document}
\begin{tabular}{|l|l|l|l|}
\hline
\textbf{\begin{tabular}[c]{@{}l@{}}Temperature\\ in °C\end{tabular}} & \textbf{\begin{tabular}[c]{@{}l@{}}Temperature\\ in °F\end{tabular}} & \textbf{\begin{tabular}[c]{@{}l@{}}Starter\\ recently fed?\end{tabular}} & \textbf{\begin{tabular}[c]{@{}l@{}}Amount\\ of starter in\%\end{tabular}} \\ \hline
30 & 86 & Yes & 5 \\ \hline
25 & 77 & Yes & 10 \\ \hline
20 & 68 & Yes & 15 \\ \hline
30 & 86 & No & 2.5 \\ \hline
25 & 77 & No & 5 \\ \hline
20 & 68 & No & 10 \\ \hline
\begin{tabular}{@{}ccr@{}}
\toprule
&\multicolumn{2}{c}{\textbf{Starter}}\\
\cmidrule(rl){2-3}
\thead{°C / °F} & \thead{Recently fed?} & \thead{Amount (\%)} \\ \midrule
30 / 86 & Yes & 5 \\
25 / 77 & Yes & 10 \\
20 / 68 & Yes & 15 \\
30 / 86 & No & 2.5\\
25 / 77 & No & 5 \\
20 / 68 & No & 10 \\ \bottomrule
\end{tabular}
\end{document}

View File

@@ -1,12 +1,18 @@
\input{./vars}
\begin{tabular}{@{}>{\bfseries}p{0.3\textwidth}p{0.3\textwidth}p{0.3\textwidth}@{}}
\toprule
\thead{Method} & \thead{Advantages} & \thead{Disadvantages} \\ \midrule
Room temperature & The easiest option. Best for bread that is eaten within a day.
Crust typically stays crisp when humidity not too high.
& Bread dries out very quickly.\\
\begin{document}
\begin{tabular}{|l|l|l|}
\hline
\textbf{Method} & \textbf{Advantages} & \textbf{Disadvantages} \\ \hline
\textbf{\begin{tabular}[c]{@{}l@{}}Room\\ temperature\end{tabular}} & \begin{tabular}[c]{@{}l@{}}The easiest option. Best for bread that\\ is eaten within a day. Crust typically\\ stays crisp when humidity not too high.\end{tabular} & Bread dries out very quickly. \\ \hline
\textbf{\begin{tabular}[c]{@{}l@{}}Room\\ temperature\\ in container\end{tabular}} & \begin{tabular}[c]{@{}l@{}}Good for up to a week. Catches mold\\ more quickly.\end{tabular} & \begin{tabular}[c]{@{}l@{}}Bread needs to be toasted\\ for crust to become crisp again.\end{tabular} \\ \hline
\textbf{Fridge} & \begin{tabular}[c]{@{}l@{}}Bread stays good for weeks. Can dry\\ out a little bit when not using air-tight\\ container.\end{tabular} & \begin{tabular}[c]{@{}l@{}}Bread needs to be toasted.\\ Requires fridge and energy.\end{tabular} \\ \hline
\textbf{Freezer} & Bread stays good for years. & \begin{tabular}[c]{@{}l@{}}Requires thawing and then\\ toasting. Requires freezer and\\ energy.\end{tabular} \\ \hline
Room temperature in container & Good for up to a week. Catches mold more quickly.
& Bread needs to be toasted for crust to become crisp again.\\
Fridge & Bread stays good for weeks. Can dry out a little bit when not using air-tight container.
& Bread needs to be toasted. Requires fridge and energy.\\
Freezer & Bread stays good for years.
& Requires thawing and then toasting. Requires freezer and energy.\\
\bottomrule
\end{tabular}
\end{document}

View File

@@ -1 +0,0 @@
\documentclass{standalone}

View File

@@ -3,6 +3,7 @@
\Configure{DocumentLanguage}{en}
\Configure{OpfScheme}{URI}
\Configure{UniqueIdentifier}{https://the-bread-code.io}
\Configure{AddCss}{book-ebook.css}
\Configure{CoverMimeType}{image/jpeg}
\CoverMetadata{images/cover-page.jpg}
\EndPreamble

View File

@@ -10,19 +10,20 @@ amylase and protease enzymes work faster, making more
sugars available and degrading the gluten proteins.
At around 22°C (72°F) in my kitchen my bulk fermentation is ready
after around 10 hours. I am using around 20 percent of sourdough
after around 10 hours. I use around 20 percent of sourdough
starter based on the flour. In summertime the temperatures
in my kitchen sometimes increase to 25°C (77°F). In that case
I am reducing the sourdough starter to around 10 percent.
I reduce the sourdough starter to around 10 percent.
If I didn't do that, my fermentation would be done after
around 4-7 hours. The problem is that the dough is quite
unstable when fermenting at this high speed. This means
that you are easily running into issues of over-fermentation.
that you easily run into issues of over-fermentation.
Finding the perfect sweet spot between fermenting enough
and not too much is becoming much harder. Normally you might
and not too much becomes much harder. Normally you might
have a time window of 1 hour. But at the rapid speed it
might be reduced to a time window of 20 minutes. Now at
30°C (86°F), ambient temperature things are much faster. Your bulk
30°C (86°F), everything moves much faster. Your bulk
fermentation might be complete in 2-4 hours when using
10-20 percent starter. Proofing your dough in the fridge
becomes almost impossible. As your dough cools down in the
@@ -34,7 +35,7 @@ end up overproofing your dough if you leave it overnight
in the fridge.
That's why I recommend that you reduce the amount of starter
that you use in the tropics to something at around 1-5 percent
that you use in the tropics to around 1-5 percent
based on the flour. This will slow down the fermentation
process significantly and provides you a bigger window
of time. Try to aim for an overall bulk fermentation of at
@@ -42,16 +43,19 @@ least 8-10 hours. Reduce the amount of starter to get there.
When making dough, try to use the same water temperature
as your ambient temperature. Assuming that the temperature
will climb to 30°C, try to start your dough directly
will climb to 30°C, try to start your dough
with 30°C water. This means that you can carefully rely on
a small fermentation sample that visualizes your fermentation
progress. The sample only works reliably if your dough temperature
a small fermentation sample (aliquot jar) that visualizes your fermentation
progress. To read more about this technique refer
to section \ref{section:bulk-fermentation}.
The sample only works reliably if your dough temperature
is equal to your ambient temperature. Else the sample heats
up or cools down faster. So tread carefully when using
the sample in this case. It's always better to stop
the fermentation a little too early rather than too late.
Stretch and folds during the bulk fermentation
will help you to develop a better look and feel for
will help you to develop a better feel for
the dough. An expensive but possibly useful tool
could be a pH meter that allows you to perfectly
measure how much acidity has been created by the
@@ -74,17 +78,17 @@ great oven spring when making wheat based doughs. When
starting with this hobby I always wondered why my rye
breads would turn out so flat. Yes, rye has gluten, but
small particles called {\it hemicelluloses} (arabinoxylan and beta-glucan) \cite{rye-defects}.
prevent the dough from developing a gluten network like you can
do with wheat. Your efforts are in vain, and your dough will
prevent the dough from developing a gluten network it can
with wheat. Your efforts will be in vain, and your dough will
stay flat. Only spelt- and wheat-based doughs have the capability
to retain the \ch{CO2} created by the fermentation.
of retaining the \ch{CO2} created by the fermentation.
In most cases something is probably off with your
sourdough starter. This very often happens when the starter
is still relatively young and hasn't yet matured
at fermenting flour. Over time your sourdough
starter is going to become better and better at fermenting
flour. Keep your sourdough starter at room temperature
is still relatively young and isn't as capable of
fermenting flour. Over time your sourdough
starter is going to become better and better.
Keep your sourdough starter at room temperature
and then apply daily feedings with a 1:5:5 ratio.
This would be 1 part old starter, 5 parts flour,
5 parts water. This allows you to achieve a better
@@ -139,9 +143,11 @@ experience, most of my pure rye starters produced stronger acetic
notes. Chemically, the acetic acid isn't as sour, but when tasting
it will seem more sour. Make sure to use a starter that is at
a hydration of around 100 percent. Acetic acid production
requires oxygen. A too-liquid starter tends to favor lactic
acid production because the flour is submerged in water, no
oxygen can reach the fermentation after a while.
requires oxygen. A starter that is too liquid tends to favor lactic
acid production because the flour is submerged in water. By submerging
the dough very little oxygen can pass through the water to the fermenting flour.
Because of this, only very little acetic acid can be produced. Over
time the acetic acid-producing bacteria will perish from your starter.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{parbaked-bread.jpg}
@@ -157,8 +163,8 @@ to customers. Once you receive it, you just bake it again
for another 20-30 minutes to achieve the desired crust and
then you can eat it. Some of the customers reported a very sour
tasting bread. After investigating a bit more, it became
crystal clear. By baking the bread twice you don't boil
as much of the acid during the baking process. Water
crystal clear. By baking the bread twice you don't boil off
as much acid during the baking process. Water
evaporates at around 100°C (212°F) while acetic acid boils at
118°C (244°F) and lactic acid at 122°C (252°F). After baking for 30 minutes
at around 230°C (446°F) some of the water has started to evaporate,
@@ -175,9 +181,13 @@ exceed the 118°C required to boil the acid. Overall, your
bread will be more sour. The enhanced acidity also helps
to prevent pathogens from entering your bread. The bread
will be good for a longer period of time. That's why
the concept of a delivery works well with sour sourdough bread.
In my experiments the bread stayed good for up to a week
in a plastic bag.
the concept of a delivery bakery works well with tangy sourdough bread.
In my own experiments, the bread stayed good for up to a week
in a plastic bag. This is much longer than a yeast-based dough that might
mold after just a few days. \footnote{Some of my first test customers however
reported that the bread was overly sour and not pleasant to eat at all.
When this happens to you, consider toasting the bread. Toasting
will boil off additional acidity.}
\section{My bread is too sour}
@@ -199,17 +209,18 @@ once per day at room temperature. This way you shift
the tides of your starter towards a better yeast fermentation \cite*{more+active+starter}.
To shift the tides even further, a real game changer
to me has been to create a stiff sourdough starter. The
for me has been to create a stiff sourdough starter. The
stiff sourdough starter is at a hydration of around 50 percent.
By doing so your sourdough starter will favor yeast
activity a lot more. Your doughs will be more fluffy and will
not as sour for a given volume increase. I tested this
by putting condoms over different glass jars. I used
activity a lot more. Your doughs will be more fluffy and less
sour for a given volume increase. I tested this
by putting balloons over different glass jars. I used
the same amount of flour for each of the samples.
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. The balloons were inflated
the most. \cite{stiff+starter}
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}.
Another unconventional approach could be to add baking
powder to your dough. The baking powder neutralizes the
@@ -233,11 +244,11 @@ mold spores. When beginning a sourdough starter, all
the microorganisms start to compete by metabolizing the
flour. Mold can sometimes win the race and outcompete
the natural wild yeast and bacteria. In that case simply
try cultivating your sourdough starter again. If it molds
try cultivating your sourdough starter again. If mold reappears
again, it might be a very moldy batch of flour. Try a different
flour to begin your sourdough starter with.
Mature sourdough starters should not mold unless the conditions
Mature sourdough starters should not go moldy unless the conditions
of the starter change. I have seen mold appearing when the starter is stored
in the fridge and the surface dried out. It also sometimes forms on the
edges of your starter's container, typically in areas where no active
@@ -269,7 +280,7 @@ metabolites that inhibit mold growth. \cite{mold+lactic+acid+bacteria}
To pickle your starter, simply take a bit of your existing starter (5 grams for
instance). Then feed the mixture with 20g of flour and 100g of water. You have
created a starter a hydration of around 500 percent. Shake the mixture vigorously.
created a starter with a hydration of around 500 percent. Shake the mixture vigorously.
After a few hours you should start seeing most of the flour near the bottom
of your container. After a while most of the oxygen from the bottom mixture
is depleted and anaerobic lactic acid bacteria will start to thrive. Take a
@@ -296,8 +307,12 @@ has consumed most of your gluten network. That's why your
dough fully collapses and stays flat during the bake. The
\ch{CO2} and evaporating water will diffuse out of the dough.
A related symptom is that your dough sticks to the banneton.
When starting baking I combated this with rice flour.
It works but might be a false friend. I gently rub my
When I starting baking I combated this with rice flour.
It worked for me but it might be a false find. Please refer to
section \ref{sec:overfermented-dough} for more details on why
rice flour is not a good idea to manage sticky doughs.
These days I gently rub my
dough with a bit of non-rice flour before placing it in
the banneton. Now if the dough starts to stick to the banneton
while I remove it I resort to a drastic measure. I immediately
@@ -451,15 +466,15 @@ accelerated by my using whole wheat flour. Whole wheat
contains more enzymes than white flour.
To fix this, try to make sure that your sourdough starter is lively
and active. Simply apply a couple of more feedings in advance before
and active. Simply apply a couple more feedings before
making your dough. This way your dough becomes ready to shape
before it has completely broken down.
\section{My sourdough starter is too sour}
A too-sour sourdough starter will cause problems during
the fermentation. Your fermentation will be more on the
bacterial side, rather than the yeast side. This means
If your sourdough starter is too sour it will cause problems during
the fermentation. Your fermentation will have more
bacterial activity than yeast activity. This means
you will likely create a more tangy loaf which isn't
as fluffy as it could be. The goal is to reach the right
balance: Fluffy consistency from the yeast and a great,
@@ -478,8 +493,8 @@ the amount of old starter that you use to feed. A ratio
of 1:5:5 or 1:10:10 can do wonders. In this case you would
take 1 part of starter (10g) and feed it with 50g of flour
and 50g of water. This way the microorganisms start
the fermentation in a green field environment. This is
similar to the 10 percent starter of 20 percent starter
the fermentation in a greenfield environment. This is
similar to the 10 percent starter or 20 percent starter
ratio that you use to make a dough. These days I almost
never use a 1:1:1 ratio. This only makes sense when you
are initially creating your starter. You want a sour
@@ -681,7 +696,7 @@ 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. Initial sugar is typically fermented and no residual sugar
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.

View File

@@ -502,10 +502,13 @@ autolysis step might call for 20 percent sourdough starter. Simply reduce this
value to 5-10 percent. The other option could be to place the dough in a colder
environment and thus reduce the speed at which your microorganisms replicate.
\begin{figure}[!htb]
\includegraphics{tables/table-starter-usage-activity.pdf}
\caption{A table visualizing how much sourdough starter to use depending on temperature and the starter's activity level}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-starter-usage-activity.tex}
\caption{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
@@ -725,10 +728,13 @@ the dough more toward a longer fermentation. The
flavor of the resulting bread is better compared to a pale
underfermented dough.
\begin{figure}[!htb]
\includegraphics{tables/table-fermentation-effects.pdf}
\caption{The different stages of sourdough fermentation and the effects on crumb, alveoli, texture, and overall taste.}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-fermentation-effects.tex}
\caption{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
is to rely on a recipe's timing suggestions. In 99 percent
@@ -781,10 +787,13 @@ I recommend beginning with a size increase of 25 percent and testing
up to 100 percent with subsequent bakes. Then identify a value
that you are happy with.
\begin{figure}[!htb]
\includegraphics{tables/table-dough-size-increase.pdf}
\caption{Reference values for how much size increase to aim for with an aliquot jar depending on the dough's protein content}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-dough-size-increase.tex}
\caption{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
temperature, you will always know when your dough is ready.
@@ -858,11 +867,13 @@ you can use them as a reference for your next batch. If the
bread didn't turn out the way you like, either shorten
the fermentation or extend it a little bit.
\begin{figure}[!htb]
\includegraphics{tables/table-ph-values-dough.pdf}
\caption{Example pH values for the different breakpoints of my own sourdough process}
\label{table:sample-ph-values}
\end{figure}
\begin{table}[!htb]
\begin{center}
\input{tables/table-ph-values-dough.tex}
\caption{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
out your good working values, you can reproduce

View File

@@ -1,10 +1,10 @@
.PHONY: build_book
build_book: build_docker_image
docker run -it -v .:/opt/repo the-sourdough-framework /bin/bash -c "cd /opt/repo/book && make build_pdf"
PHONY: build_pdf
build_pdf: build_docker_image
docker run -it -v $(PWD):/opt/repo the-sourdough-framework /bin/bash -c "cd /opt/repo/book && make build_pdf"
.PHONY: release
release: build_docker_image
docker run -it -v .:/opt/repo the-sourdough-framework /bin/bash -c "cd /opt/repo/book && make release"
.PHONY: bake
bake: build_docker_image
docker run -it -v $(PWD):/opt/repo the-sourdough-framework /bin/bash -c "cd /opt/repo/book && make bake"
.PHONY: build_docker_image
build_docker_image: