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

View File

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

4
.gitignore vendored
View File

@@ -48,3 +48,7 @@ book/book*.html
book/book-epub/ book/book-epub/
book/book-mobi/ book/book-mobi/
book/book-azw3/ 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 FROM ghcr.io/xu-cheng/texlive-full
WORKDIR /root WORKDIR /root

View File

@@ -3,6 +3,8 @@
The sourdough framework is an open-source book dedicated to The sourdough framework is an open-source book dedicated to
helping you to make the best possible sourdough bread at home. 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 Rather than providing recipes this book intends to provide a
framework that enables you to bake bread in your respective framework that enables you to bake bread in your respective
environment. Every flour, every sourdough, and every home setup 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 information so hard and a fail-prone endeavor. This book
intends to close that gap. intends to close that gap.
![A whole wheat sourdough bread](./book/images/whole-wheat-crumb.jpg)
## Background ## Background
4 years after launching the repositories [the-bread-code](https://github.com/hendricius/the-bread-code) 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 natural fermentation. At the same time as many scientific references
as possible are provided. 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 ```console
make make
@@ -31,15 +32,15 @@ make
Then you can check out the file `book/book.pdf` 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 ```console
make release make bake
``` ```
You can check the files in the folder `book/release/` 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 Make sure you have `biber` installed. Refer to your system's installation
instructions for LaTeX. instructions for LaTeX.
@@ -49,11 +50,11 @@ cd book/
make 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 ```console
cd book/ cd book/
make release make bake
``` ```
You can check the files in the folder `book/release/` 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 .mobi version](https://www.the-bread-code.io/book.mobi)
* [Download compiled .azw3 version](https://www.the-bread-code.io/book.azw3) * [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 ## Support
Did you find a typo, or feel the wording could be improved? 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. budget constraints.
If you would like to contribute with a small donation you can do so 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 via my [ko-fi page.](https://breadco.de/book) Your donation will tremendously
to cover costs related to running the-bread-code and allow me help me to cover costs related to running the-bread-code. It futhermore allows
to work more updates for this book. me to dedidcate time to continously update and improve this book.
## Links ## 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. extensible and can be stretched.
\begin{table}[htp!] \begin{table}[htp!]
\includegraphics{tables/table-baking-process-stages.pdf} \begin{center}
\caption{The different stages that your dough undergoes during the baking process.} \input{tables/table-baking-process-stages.tex}
\caption{The different stages that your dough undergoes during the baking process.}
\end{center}
\end{table} \end{table}
At around 60°C (140°F) the microbes in your dough start to die. 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} \section{Conclusions}
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-oven-baking-overview.pdf} \begin{center}
\caption{An overview of different oven types and their different baking methods} \input{tables/table-oven-baking-overview.tex}
\end{figure} \caption{An overview of different oven types and their different
baking methods.}
\end{center}
\end{table}
Depending on your home oven, a different method Depending on your home oven, a different method
of steaming may be used. Generally most ovens 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{tocloft}
\usepackage{tex4ebook} \usepackage{tex4ebook}
\usepackage{chemformula} \usepackage{chemformula}
\usepackage{booktabs}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
% Fonts for accessibility
%\usepackage{helvet}
%\renewcommand{\familydefault}{\sfdefault}
% References % References
\usepackage[backend=biber]{biblatex} \usepackage[backend=biber]{biblatex}
@@ -27,16 +35,16 @@
% Folders where to search for images % Folders where to search for images
\graphicspath{ \graphicspath{
{./images/} {images/}
{./troubleshooting/} {troubleshooting/}
{./sourdough-starter/} {sourdough-starter/}
{./troubleshooting/crumb-structures/} {troubleshooting/crumb-structures/}
{./history/} {history/}
{./images/external/} {images/external/}
{./baking/} {baking/}
{./wheat-sourdough/} {wheat-sourdough/}
{./wheat-sourdough/shaping/} {wheat-sourdough/shaping/}
{./non-wheat-sourdough/} {non-wheat-sourdough/}
} }
% Layout rules % Layout rules
@@ -61,7 +69,7 @@
% Title page % Title page
\begin{titlepage} \begin{titlepage}
\centering \centering
\includegraphics[width=\textwidth]{cover-page} \includegraphics[width=\textwidth]{images/cover-page.jpg}
Version: Version:
\today \today
\end{titlepage} \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 If you are a busy person and/or don't have an oven, this might
be exactly the type of bread you should consider. be exactly the type of bread you should consider.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-overview-bread-types.pdf} \begin{center}
\caption{An overview of different bread types and their respective complexity} \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} \label{tab:bread-types-comparison}
\end{figure} \end{table}
\section{Flatbread} \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 between two options: 1) A flatbread similar to a roti or naan bread
or 2) sourdough pancakes. or 2) sourdough pancakes.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-flat-bread-pancake-recipe.pdf} \begin{center}
\caption{\label{tab:flat-bread-ingredients}flatbread or pancake recipe for 1 person. Multiply the ingredients \input{tables/table-flat-bread-pancake-recipe.tex}
to increase portion size. Refer to the section \ref{section:bakers-math} "\nameref{section:bakers-math}" to learn how \caption{\label{tab:flat-bread-ingredients}flatbread or pancake recipe
to understand and use the percentages properly.} for 1 person. Multiply the ingredients to increase portion size.
\end{figure} 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 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 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] (init) {\footnotesize Make a starter};
\node [block, right of=init, node distance=3cm] (feed) {\footnotesize Feed your starter}; \node [block, right of=init, node distance=3cm] (feed) {\footnotesize Feed your starter};
\path [line] (init) -- (feed); \path [line] (init) -- (feed);
\node [block, right of=feed, node distance=3cm] (ready_question) {\footnotesize Perform readiness check}; \node [block, right of=feed, node distance=3cm] (wait_12_after_feed) {\footnotesize Wait 12 hours};
\path [line] (feed) -- (ready_question); \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}; \node [block, below of=feed, node distance=3cm] (wait_12) {\footnotesize Wait 12 hours};
\path [line] (wait_12) -- (feed); \path [line] (wait_12) -- (feed);
\node [decision, right of=ready_question, node distance=3.5cm] (is_bubbly) {\footnotesize Bubbly? Size Increase?}; \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 Depending on which layers are still present, names are used to describe the
type of flour. type of flour.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-flour-types.pdf} \begin{center}
\label{tab:flour-types-comparison} \input{tables/table-flour-types.tex}
\caption{A comparison of how different types of wheat flour are labelled in different countries} \label{tab:flour-types-comparison}
\end{figure} \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 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 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 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. degradation, removing a huge headache from the equation.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-grains-bread-making-process.pdf} \begin{center}
\caption{An overview of different grain types and the steps involved in the respective bread making process} \input{tables/table-grains-bread-making-process.tex}
\end{figure} \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 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 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 The long fermentation period also means that your microbes will enrich
your dough with more flavor. your dough with more flavor.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-overview-w-values.pdf} \begin{center}
\caption{An overview of different levels of W values and the respective hydrations and fermentation times} \input{tables/table-overview-w-values.tex}
\label{tab:w-value} \caption{An overview of different levels of W values and the
\end{figure} respective hydrations and fermentation times}
\label{tab:w-value}
\end{center}
\end{table}
Generally, when aiming to Generally, when aiming to
bake free standing sourdough bread, aim for a higher protein content. If the 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 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 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 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 \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. 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.
The first version of the book will only be available digitally---this way, everyone can read You can read more details here: \url{https://breadco.de/physical-book}
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.
In this book, I will try to be as scientific as possible. I in no way claim, however, that 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 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 biber book
pdflatex book.tex 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 .PHONY: clean_figures
clean_figures: clean_figures:
cd figures cd figures
@@ -23,10 +28,6 @@ export_figures:
figures: clean_figures figures: clean_figures
cd figures && find . -name "fig-*.tex" -exec pdflatex '{}' \; cd figures && find . -name "fig-*.tex" -exec pdflatex '{}' \;
.PHONY: tables
tables:
cd tables && find . -name "table-*.tex" -exec pdflatex '{}' \;
.PHONY: clean .PHONY: clean
clean: clean_figures clean: clean_figures
rm -f book.blg rm -f book.blg
@@ -64,22 +65,51 @@ clean: clean_figures
rm -f content.opf rm -f content.opf
find . -name "*.xbb" | xargs rm -f find . -name "*.xbb" | xargs rm -f
rm -rf release/ rm -rf release/
rm -rf release_sans_serif/
.PHONY: release .PHONY: release_default
release: clean build_pdf make_release_dir build_ebook release_default: clean build_pdf make_release_dir build_ebook
cp book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf cp book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
cp book-mobi/book.mobi release/TheBreadCode-The-Sourdough-Framework.mobi cp book-mobi/book.mobi release/TheBreadCode-The-Sourdough-Framework.mobi
cp book-epub/book.epub release/TheBreadCode-The-Sourdough-Framework.epub cp book-epub/book.epub release/TheBreadCode-The-Sourdough-Framework.epub
cp book-azw3/book.azw3 release/TheBreadCode-The-Sourdough-Framework.azw3 cp book-azw3/book.azw3 release/TheBreadCode-The-Sourdough-Framework.azw3
.PHONY: bake
bake: release_default release_sans_serif
.PHONY: make_release_dir .PHONY: make_release_dir
make_release_dir: make_release_dir:
mkdir -p release 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 .PHONY: build_ebook
build_ebook: build_pdf make_release_dir build_ebook: make_release_dir
find . -name "*.jpg" | xargs ebb -x
find . -name "*.png" | xargs ebb -x
tex4ebook -c tex4ebook.cfg -f epub book.tex tex4ebook -c tex4ebook.cfg -f epub book.tex
tex4ebook -c tex4ebook.cfg -f mobi 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 tex4ebook -c tex4ebook.cfg -f azw3 book.tex

View File

@@ -3,11 +3,13 @@ at different sourdough starter types and their respective
traits. traits.
\begin{table}[htp!] \begin{table}[htp!]
\includegraphics{tables/table-starter-types.pdf} \begin{center}
\caption{A comparison of different sourdough starter types and their \input{tables/table-starter-types.tex}
respective properties. The only difference is the level of water (hydration) \caption{A comparison of different sourdough starter types and their
that is used when feeding the starter.} respective properties. The only difference is the level of water (hydration)
\label{tab:starter-types-comparison} that is used when feeding the starter.}
\label{tab:starter-types-comparison}
\end{center}
\end{table} \end{table}
Depending on the flour you have at hand, the type of starter changes. With more 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. 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 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 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. 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 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. math and then adjust it for the 1.4 kilogram flour quantity.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-bakers-math-example.pdf} \begin{center}
\input{tables/table-bakers-math-example.tex}
\caption{An example table demonstrating how to properly calculate using baker's math} \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 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 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 more flour available the next day. As mentioned the next day
we have 1.4 kilograms at hand (1400 grams). we have 1.4 kilograms at hand (1400 grams).
\begin{figure}[H] \begin{table}[!htb]
\includegraphics{tables/table-recipe-bakers-math.pdf} \begin{center}
\caption{An example recipe that uses 1400 grams as its baseline and \input{tables/table-recipe-bakers-math.tex}
is then calculated using baker's math} \caption{An example recipe that uses 1400 grams as its baseline and
\end{figure} is then calculated using baker's math}
\end{center}
\end{table}
For each ingredient we calculate the percentage For each ingredient we calculate the percentage
based on the flour available (1400 grams). So for the water 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 in your starter. More of them live on the hull compared to the
endophytes living in the grain. endophytes living in the grain.
Simply weigh around 50 grams of flour and add another 50 Start by measuring approximately 50 grams each of flour and
grams of water. It doesn't have to be exactly 50 grams of both water. The measurements don't have to be exact; you can use
water or flour. You could also use less and/or simply eyeball it. less or more, or just eyeball the proportions. These
The values are just shown as a reference. Don't use chlorinated values are just shown as a reference.
water to setup your starter. It should be bottled water ideally,
or here in Germany we can just use our tap water. Chlorine Don't use chlorinated water when setting up your starter.
is added to water to kill microorganisms. You will not Ideally, you should use bottled water. In certain regions
be able to grow a starter with chlorinated water. The hydration like Germany, tap water is perfectly fine. Chlorine is added
of your dough is 100 percent. This means you have equal parts to water as a disinfectant to kill microorganisms, you will
of flour and water. Stir everything together so that all the flour not be able to grow a starter with chlorinated water.
is properly hydrated. By adding water many of your microbes'
spores become activated. They exit hibernation mode and In this process, the hydration of your starter is 100
become alive again. Cover your mixture with a lid. I like to percent. This means you're using equal parts flour and
use a glass and place another inverted one on top. The container shouldn't water. Stir everything together so that all the flour is
be airtight. You still want some gas exchange to be possible. 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] \begin{figure}[!htb]
\includegraphics{figures/fig-starter-process.pdf} \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 how the microbes from your hand or air can influence your starter's
microorganisms. This makes sense to a certain extent. Your microorganisms. This makes sense to a certain extent. Your
hand's microbes might be good at fermenting your sweat, but 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 of your hands or air might play a minor role in the initial epic
battle. But only the fittest microbes fitting the sourdough's battle. But only the fittest microbes fitting the sourdough's
niche are going to survive. This means the microorganisms that know 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} \end{figure}
You have made your sourdough starter and your first bread. How do you perform 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 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 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 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 your bread can be best enjoyed at a later
time. time.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-storing-bread-overview.pdf} \begin{center}
\caption{A table visualizing the advantages and disadvantages \input{tables/table-storing-bread-overview.tex}
of different bread storing options.} \caption{A table visualizing the advantages and disadvantages
\label{table:bread-storage} of different bread storing options.}
\end{figure} \label{table:bread-storage}
\end{center}
\end{table}
\section{Room temperature} \section{Room temperature}

View File

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

View File

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

View File

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

View File

@@ -1,13 +1,27 @@
\input{./vars} \begin{tabular}{@{}>{\bfseries}p{0.12\textwidth}p{0.273\textwidth}p{0.273\textwidth}p{0.273\textwidth}@{}}
\toprule
\begin{document} &\multicolumn{3}{c}{\textbf{Fermentation}}\\
\begin{tabular}{|l|l|l|l|} \cmidrule(rl){2-4}
\hline & \thead{Too short} & \thead{Too long} & \thead{Perfect} \\ \midrule
\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 Crumb texture & Unbaked gummy areas towards the bottom of the bread.
\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 & Crumb can be perceived as gummy as most gluten broken down.
\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 & Crumb evenly baked. Crumb can be perceived as moist, but not gummy.
\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 Alveoli & Overly large alveoli in the crumb ``craters''.
\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 & 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{tabular}
\end{document}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,14 +1,12 @@
\input{./vars} \begin{tabular}{@{}ccr@{}}
\toprule
\begin{document} &\multicolumn{2}{c}{\textbf{Starter}}\\
\begin{tabular}{|l|l|l|l|} \cmidrule(rl){2-3}
\hline \thead{°C / °F} & \thead{Recently fed?} & \thead{Amount (\%)} \\ \midrule
\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 \\
30 & 86 & Yes & 5 \\ \hline 25 / 77 & Yes & 10 \\
25 & 77 & Yes & 10 \\ \hline 20 / 68 & Yes & 15 \\
20 & 68 & Yes & 15 \\ \hline 30 / 86 & No & 2.5\\
30 & 86 & No & 2.5 \\ \hline 25 / 77 & No & 5 \\
25 & 77 & No & 5 \\ \hline 20 / 68 & No & 10 \\ \bottomrule
20 & 68 & No & 10 \\ \hline
\end{tabular} \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} Room temperature in container & Good for up to a week. Catches mold more quickly.
\begin{tabular}{|l|l|l|} & Bread needs to be toasted for crust to become crisp again.\\
\hline
\textbf{Method} & \textbf{Advantages} & \textbf{Disadvantages} \\ \hline Fridge & Bread stays good for weeks. Can dry out a little bit when not using air-tight container.
\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 & Bread needs to be toasted. Requires fridge and energy.\\
\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 Freezer & Bread stays good for years.
\textbf{Freezer} & Bread stays good for years. & \begin{tabular}[c]{@{}l@{}}Requires thawing and then\\ toasting. Requires freezer and\\ energy.\end{tabular} \\ \hline & Requires thawing and then toasting. Requires freezer and energy.\\
\bottomrule
\end{tabular} \end{tabular}
\end{document}

View File

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

View File

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

View File

@@ -10,19 +10,20 @@ amylase and protease enzymes work faster, making more
sugars available and degrading the gluten proteins. sugars available and degrading the gluten proteins.
At around 22°C (72°F) in my kitchen my bulk fermentation is ready 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 starter based on the flour. In summertime the temperatures
in my kitchen sometimes increase to 25°C (77°F). In that case 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 If I didn't do that, my fermentation would be done after
around 4-7 hours. The problem is that the dough is quite around 4-7 hours. The problem is that the dough is quite
unstable when fermenting at this high speed. This means 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 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 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 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 fermentation might be complete in 2-4 hours when using
10-20 percent starter. Proofing your dough in the fridge 10-20 percent starter. Proofing your dough in the fridge
becomes almost impossible. As your dough cools down in the 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. in the fridge.
That's why I recommend that you reduce the amount of starter 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 based on the flour. This will slow down the fermentation
process significantly and provides you a bigger window process significantly and provides you a bigger window
of time. Try to aim for an overall bulk fermentation of at 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 When making dough, try to use the same water temperature
as your ambient temperature. Assuming that the 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 with 30°C water. This means that you can carefully rely on
a small fermentation sample that visualizes your fermentation a small fermentation sample (aliquot jar) that visualizes your fermentation
progress. The sample only works reliably if your dough temperature 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 is equal to your ambient temperature. Else the sample heats
up or cools down faster. So tread carefully when using up or cools down faster. So tread carefully when using
the sample in this case. It's always better to stop the sample in this case. It's always better to stop
the fermentation a little too early rather than too late. the fermentation a little too early rather than too late.
Stretch and folds during the bulk fermentation 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 the dough. An expensive but possibly useful tool
could be a pH meter that allows you to perfectly could be a pH meter that allows you to perfectly
measure how much acidity has been created by the 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 starting with this hobby I always wondered why my rye
breads would turn out so flat. Yes, rye has gluten, but breads would turn out so flat. Yes, rye has gluten, but
small particles called {\it hemicelluloses} (arabinoxylan and beta-glucan) \cite{rye-defects}. small particles called {\it hemicelluloses} (arabinoxylan and beta-glucan) \cite{rye-defects}.
prevent the dough from developing a gluten network like you can prevent the dough from developing a gluten network it can
do with wheat. Your efforts are in vain, and your dough will with wheat. Your efforts will be in vain, and your dough will
stay flat. Only spelt- and wheat-based doughs have the capability 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 In most cases something is probably off with your
sourdough starter. This very often happens when the starter sourdough starter. This very often happens when the starter
is still relatively young and hasn't yet matured is still relatively young and isn't as capable of
at fermenting flour. Over time your sourdough fermenting flour. Over time your sourdough
starter is going to become better and better at fermenting starter is going to become better and better.
flour. Keep your sourdough starter at room temperature Keep your sourdough starter at room temperature
and then apply daily feedings with a 1:5:5 ratio. and then apply daily feedings with a 1:5:5 ratio.
This would be 1 part old starter, 5 parts flour, This would be 1 part old starter, 5 parts flour,
5 parts water. This allows you to achieve a better 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 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 it will seem more sour. Make sure to use a starter that is at
a hydration of around 100 percent. Acetic acid production a hydration of around 100 percent. Acetic acid production
requires oxygen. A too-liquid starter tends to favor lactic requires oxygen. A starter that is too liquid tends to favor lactic
acid production because the flour is submerged in water, no acid production because the flour is submerged in water. By submerging
oxygen can reach the fermentation after a while. 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] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{parbaked-bread.jpg} \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 for another 20-30 minutes to achieve the desired crust and
then you can eat it. Some of the customers reported a very sour then you can eat it. Some of the customers reported a very sour
tasting bread. After investigating a bit more, it became tasting bread. After investigating a bit more, it became
crystal clear. By baking the bread twice you don't boil crystal clear. By baking the bread twice you don't boil off
as much of the acid during the baking process. Water as much acid during the baking process. Water
evaporates at around 100°C (212°F) while acetic acid boils at 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 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, 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 bread will be more sour. The enhanced acidity also helps
to prevent pathogens from entering your bread. The bread to prevent pathogens from entering your bread. The bread
will be good for a longer period of time. That's why will be good for a longer period of time. That's why
the concept of a delivery works well with sour sourdough bread. the concept of a delivery bakery works well with tangy sourdough bread.
In my experiments the bread stayed good for up to a week In my own experiments, the bread stayed good for up to a week
in a plastic bag. 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} \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}. 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 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. stiff sourdough starter is at a hydration of around 50 percent.
By doing so your sourdough starter will favor yeast By doing so your sourdough starter will favor yeast
activity a lot more. Your doughs will be more fluffy and will activity a lot more. Your doughs will be more fluffy and less
not as sour for a given volume increase. I tested this sour for a given volume increase. I tested this
by putting condoms over different glass jars. I used by putting balloons over different glass jars. I used
the same amount of flour for each of the samples. the same amount of flour for each of the samples.
I tested a regular starter, a liquid starter and a stiff I tested a regular starter, a liquid starter and a stiff
starter. The stiff starter by far created the most \ch{CO2} starter. The stiff starter by far created the most \ch{CO2}
compared to the other starters. The balloons were inflated compared to the other starters. As a consequence, the stiff
the most. \cite{stiff+starter} 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 Another unconventional approach could be to add baking
powder to your dough. The baking powder neutralizes the 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 the microorganisms start to compete by metabolizing the
flour. Mold can sometimes win the race and outcompete flour. Mold can sometimes win the race and outcompete
the natural wild yeast and bacteria. In that case simply 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 again, it might be a very moldy batch of flour. Try a different
flour to begin your sourdough starter with. 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 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 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 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 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 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 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 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 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 dough fully collapses and stays flat during the bake. The
\ch{CO2} and evaporating water will diffuse out of the dough. \ch{CO2} and evaporating water will diffuse out of the dough.
A related symptom is that your dough sticks to the banneton. A related symptom is that your dough sticks to the banneton.
When starting baking I combated this with rice flour. When I starting baking I combated this with rice flour.
It works but might be a false friend. I gently rub my 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 dough with a bit of non-rice flour before placing it in
the banneton. Now if the dough starts to stick to the banneton the banneton. Now if the dough starts to stick to the banneton
while I remove it I resort to a drastic measure. I immediately 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. contains more enzymes than white flour.
To fix this, try to make sure that your sourdough starter is lively 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 making your dough. This way your dough becomes ready to shape
before it has completely broken down. before it has completely broken down.
\section{My sourdough starter is too sour} \section{My sourdough starter is too sour}
A too-sour sourdough starter will cause problems during If your sourdough starter is too sour it will cause problems during
the fermentation. Your fermentation will be more on the the fermentation. Your fermentation will have more
bacterial side, rather than the yeast side. This means bacterial activity than yeast activity. This means
you will likely create a more tangy loaf which isn't you will likely create a more tangy loaf which isn't
as fluffy as it could be. The goal is to reach the right as fluffy as it could be. The goal is to reach the right
balance: Fluffy consistency from the yeast and a great, 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 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 take 1 part of starter (10g) and feed it with 50g of flour
and 50g of water. This way the microorganisms start and 50g of water. This way the microorganisms start
the fermentation in a green field environment. This is the fermentation in a greenfield environment. This is
similar to the 10 percent starter of 20 percent starter similar to the 10 percent starter or 20 percent starter
ratio that you use to make a dough. These days I almost 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 never use a 1:1:1 ratio. This only makes sense when you
are initially creating your starter. You want a sour 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. water before adding them to your dough.
If you want to sweeten the dough, your best option is to add sugar during the 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 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, mixture over a flattened-out dough. You can then roll the dough together,
incorporating layers of sugar. 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 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. environment and thus reduce the speed at which your microorganisms replicate.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-starter-usage-activity.pdf} \begin{center}
\caption{A table visualizing how much sourdough starter to use depending on temperature and the starter's activity level} \input{tables/table-starter-usage-activity.tex}
\end{figure} \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 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 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 flavor of the resulting bread is better compared to a pale
underfermented dough. underfermented dough.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-fermentation-effects.pdf} \begin{center}
\caption{The different stages of sourdough fermentation and the effects on crumb, alveoli, texture, and overall taste.} \input{tables/table-fermentation-effects.tex}
\end{figure} \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 The worst thing you can do when fermenting sourdough
is to rely on a recipe's timing suggestions. In 99 percent 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 up to 100 percent with subsequent bakes. Then identify a value
that you are happy with. that you are happy with.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-dough-size-increase.pdf} \begin{center}
\caption{Reference values for how much size increase to aim for with an aliquot jar depending on the dough's protein content} \input{tables/table-dough-size-increase.tex}
\end{figure} \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 The beauty of the aliquot is that no matter the surrounding
temperature, you will always know when your dough is ready. 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 bread didn't turn out the way you like, either shorten
the fermentation or extend it a little bit. the fermentation or extend it a little bit.
\begin{figure}[!htb] \begin{table}[!htb]
\includegraphics{tables/table-ph-values-dough.pdf} \begin{center}
\caption{Example pH values for the different breakpoints of my own sourdough process} \input{tables/table-ph-values-dough.tex}
\label{table:sample-ph-values} \caption{Example pH values for the different breakpoints of my own sourdough process}
\end{figure} \label{table:sample-ph-values}
\end{center}
\end{table}
The beauty of this method is its reliability. Once you have found The beauty of this method is its reliability. Once you have found
out your good working values, you can reproduce out your good working values, you can reproduce

View File

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