6 Commits

Author SHA1 Message Date
ramink
749953ea51 Merge dba0296939 into 7db993a176 2025-01-24 11:41:48 +00:00
Hendrik Kleinwaechter
7db993a176 Improve text for enzymes (#435)
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
* Improve text for enzymes

ajes from Discord pointed this out. Improvements by Cookiedust. Thanks!

* Add PR feedback

* Fix --- use, hopefully
2025-01-23 18:56:13 +01:00
Hendrik Kleinwaechter
a57da7815a Fix #372 and add booklet to website/repo (#439)
* Fix #372 and add booklet to website/repo

This adds the design TLDR version to the README and website

* Make less verbose

* Remove booklet from source
2025-01-23 18:55:58 +01:00
Ramin Kamal
dba0296939 Split microbial-war into two files. Restore Baker's Math Section. 2025-01-12 14:39:13 -08:00
ramink
0c3f503c5d Merge branch 'hendricius:main' into issue394_diagram_placement 2025-01-12 11:06:03 -08:00
Ramin Kamal
53c4c32acd Propose an improved layout, removing baker's math section
- Comment out Baker's math section, for now.
- Move flow chart to top of Making a Starter Section
- Move Microbe War figure to paragraph after "epic battle"
2025-01-07 14:35:37 -08:00
10 changed files with 98 additions and 276 deletions

View File

@@ -84,12 +84,15 @@ size. This shrinks the book from more than 20MB down to ~5MB:
* [Download compiled B&W .epub version](https://www.the-bread-code.io/bw-book.epub)
If you prefer a very short version (about 10 pages) with main flowcharts and
crucial information needed while you are in the kitchen, we also provide a
"too long;didn't read" version you could print. Having read the full book is
highly recommended to understand this leaflet:
For those who prefer a concise reference (about 15 pages), we offer a "too long;didn't read" (TL;DR)
version. This condensed guide contains the essential flowcharts, crucial information,
and space for your notes - perfect for quick kitchen reference.
It provides the key information you need without reading the complete book.
* [Download a condensed version](https://www.the-bread-code.io/booklet.pdf)
* [Read TL;DR version on your device](https://the-bread-code.io/book-tldr-print.pdf)
* [Download TL;DR version for printing](https://the-bread-code.io/book-tldr-digital.pdf)
We recommend using double-sided printing if your printer supports it.
## Online HTML version

View File

@@ -75,12 +75,13 @@ is used to create sugars out of the starch to then produce more plant matter.
Normally,
the microorganisms on the surface of the grain can't consume the freed maltose
molecules, which remain hidden inside the germ. But as we grind the flour, a
feeding frenzy takes place. Generally, the warmer the temperature, the faster
this reaction occurs. That's why a long fermentation is key to making great
bread. It takes time for the amylase to break down most of the starch into
simple sugars, which are not only consumed by the yeast but are also essential
to the \emph{Maillard reaction}, responsible for enhanced browning during the
baking process.
feeding frenzy takes place. Generally, the warmer the temperature, the faster
this reaction occurs. However, it takes time for the amylase
to break down most of the starch into simple sugars---which are not only
consumed by the yeast but are also
essential to the \emph{Maillard reaction}---responsible for
enhanced browning during the baking process.
That's why a long fermentation is key to making great bread.
If you're a hobby brewer, you'll know that it's important to keep your beer at
certain temperatures to allow the different amylases to convert the contained

View File

@@ -1,174 +0,0 @@
\documentclass[paper=a4, twoside=false, fontsize=12pt]{scrbook}
% General packages
\usepackage{sourdough}
\usepackage[
paperwidth=210mm,
paperheight=260mm,
top=10mm,
bottom=80mm,
inner=10mm,
outer=10mm,
marginparsep=7mm,
marginparwidth=48mm,
]{geometry}
\usepackage{subcaption}
\pagenumbering{gobble}
% Basic attributes
\author{Hendrik Kleinwächter}
\title{The Sourdough Framework\\\texttt{tl;dr Booklet Version}}
\begin{document}
\maketitle
\section*{Sourdough starter}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-starter-process.tex}
\caption*{How to setup a sourdough starter}
\end{flowchart}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-starter-readiness.tex}
\caption*{Preparing your starter for baking}
\end{flowchart}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-starter-maintenance.tex}
\caption*{Maintaining your starter, change ratio as per starter hydration
type}
\end{flowchart}
\clearpage{}
\section*{Baker's math}
\begin{table}[!htb]
\centering
\input{tables/table-bakers-math-example.tex}
\caption*{An example table demonstrating how to properly calculate using
baker's math. All the ingredients are calculated as a percentage of the
flour quantity.}
\end{table}
\section*{Basic recipes}
\subsection*{Flat bread}
\input{recipes/flat-bread.tex}
\clearpage{}
\subsection*{Freestanding \& sandwich wheat-based breads}
\begin{table}[!htb]
\centering
\begin{tabular}{@{}lrrrp{0.4\linewidth}@{}}
\toprule
\thead{Ingredient}& & \thead{Percentage} & \thead{Calculation} & \thead{Comments} \\ \midrule
Flour & \qty{400}{g} & & & \\
Whole-wheat flour & \qty{100}{g} & & & \\
Total flour & & \qty{100}{\percent} & \qty{500}{g} & \\
Water & & \qty{60}{\percent} & \qty{300}{g} & \\
Sourdough starter & & \qty{10}{\percent} & \qty{50}{g} & \\
Salt & & \qty{2}{\percent} & \qty{10}{g} & \\ \midrule
Flour & & \qty{100}{\percent} & & \\
Water & & & & \\
Sourdough starter & & & & \\
Salt & & & & \\ \midrule
Flour & & & & \\
& & & & \\
& & & & \\
& & & & \\
& & & & \\ \bottomrule
\end{tabular}
\caption*{Table for your own calculation using baker's math}
\end{table}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-wheat-sourdough-process.tex}
\caption*{The whole process of making wheat based sourdough breads}
\end{flowchart}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-kneading-process.tex}
\caption*{The kneading process to create dough strength}
\end{flowchart}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-bulk-fermentation.tex}
\caption*{How to properly manage bulk fermentation}
\end{flowchart}
\begin{figure*}[!htb]
\centering
\includegraphics[width=\textwidth]{stretch-and-fold-steps}
\caption*{An overview of the steps involved to perform stretch and folds for
wheat-based doughs. They are optional and should only be done when the dough
flattened out a lot.}%
\end{figure*}
\clearpage{}
\section*{Shaping}
\begin{figure*}[!htb]
\centering
\begin{subfigure}{.475\linewidth}
\includegraphics[width=\linewidth]{preshape-direction}
\caption*{Preshaping: Drag the dough in the direction of the rough
surface area.}%
\end{subfigure}
\begin{subfigure}{.475\linewidth}
\includegraphics[width=\linewidth]{step-1-flour-applied}
\caption*{Step 1: Apply flour to the dough's surface.}%
\end{subfigure}\hfill % <-- "\hfill"
\medskip % create some *vertical* separation between the graphs
\begin{subfigure}{.475\linewidth}
\includegraphics[width=\linewidth]{step-2-flipped-over}
\caption*{Step 2: Flipp-over dough. Note how the sticky side is facing
you while the floured side is facing the countertop.}
\end{subfigure}\hfill % <-- "\hfill"
\begin{subfigure}{.475\linewidth}
\includegraphics[width=\linewidth]{step-3-rectangular}
\caption*{Step 3: Make the dough rectangular, keep the sticky side
facing you while the floured side is facing the countertop.}%
\end{subfigure}
\caption*{First steps of shaping process}
\end{figure*}
\begin{figure*}[htb!]
\centering
\includegraphics[width=\textwidth]{step-4-folding}
\caption*{Step 4: The process of folding a batard. Note how the rectangle
is first glued together and then rolled inwards to create a dough roll.
Ultimately the edges are sealed to create a more uniform dough.}%
\end{figure*}
\clearpage{}
\section*{Proofing}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-proofing-process.tex}
\end{flowchart}
\clearpage{}
\section*{Baking}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-baking-process.tex}
\caption*{Summary of different bread baking processes}
\end{flowchart}
\begin{flowchart}[!htb]
\centering
\input{figures/fig-inverted-tray-method.tex}
\caption*{Baking with the inverted tray method}
\end{flowchart}
\begin{flowchart*}[!htb]
\centering
\input{figures/fig-dutch-oven-process.tex}
\caption*{Baking with a Dutch Oven}
\end{flowchart*}
\clearpage{}
\end{document}

View File

@@ -84,11 +84,6 @@ website_assets := $(wildcard ../website/assets/*)
ruby_src := ../website/modify_build.rb $(website_assets)
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
# This is more than what is actually needed but keeps the makefile simple
booklet_src := $(src_figures) $(src_tables) $(src_recipes) $(images)
booklet_src += booklet.tex
# }}}
# Flowcharts {{{
# TODO: check if it works on github CI
%.png: %.tex
@@ -113,12 +108,6 @@ book_serif/book.pdf: $(src_all)
book_sans_serif/book_sans_serif.pdf: $(src_all)
$(LATEX) -output-directory=book_sans_serif book_sans_serif.tex
# We don't want to use latexmk as there is no biber nor references and it
# seems to make it somehow unhappy
booklet/booklet.pdf: $(booklet_src)
mkdir -p booklet
lualatex --output-directory=booklet booklet.tex
# }}}
# Ebook {{{
@@ -199,11 +188,10 @@ export_figures: pdf $(tgt_figures)
all: bake
# Finally actual project targets (i.e. build pdf and ebooks)
.PHONY: pdf booklet serif sans_serif ebook
.PHONY: pdf serif sans_serif ebook
pdf: serif sans_serif
booklet: booklet/booklet.pdf
serif: book_serif/book.pdf
sans_serif: book_sans_serif/book_sans_serif.pdf
@@ -213,7 +201,6 @@ low_res_ebook: epub/low_res_book.epub
# We keep the old target names for backward compatibility
build_pdf: pdf
build_booklet: booklet
build_serif_pdf: serif
build_sans_serif_pdf: sans_serif
build_ebook: ebook
@@ -222,7 +209,7 @@ build_low_res_ebook: low_res_ebook
# top level releases rules
.PHONY: bake release_serif release_sans_serif
bake: release_serif release_sans_serif release_booklet website
bake: release_serif release_sans_serif website
release:
mkdir -p release
@@ -239,9 +226,6 @@ release_serif: serif ebook bw_ebook low_res_ebook | release
release_sans_serif: sans_serif | release
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
release_booklet: booklet | release
cp booklet/booklet.pdf release/TheBreadCode-The-Sourdough-Framework-booklet.pdf
# }}}
# Clean up {{{
@@ -274,20 +258,17 @@ clean_website_build:
clean: clean_ebook_build clean_figures clean_website_build
$(CLEAN) -output-directory=book_serif book.tex
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
$(CLEAN) -output-directory=booklet booklet.tex
-rm book*/*.{bbl,loc,run.xml}
mrproper: clean
$(CLEAN) -C $(src_figures)
$(CLEAN) -C -output-directory=book_serif book.tex
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
$(CLEAN) -C -output-directory=booklet booklet.tex
-rm figures/*.png
-rm -rf epub/
-rm -rf release/
-rm -rf book_serif/
-rm -rf book_sans_serif/
-rm -rf booklet/
-rm -rf *book-epub/
-rm -rf epub_build/
-rm -rf website_build/
@@ -338,7 +319,6 @@ help:
@echo "Quick builds:"
@echo " quick: compiles serif_pdf but runs lulatex only once"
@echo " quick_ebook: compiles ebook but runs lulatex only once"
@echo " quick_booklet: compiles booklet but runs lulatex only once"
@echo ""
@echo "Checks:"
@echo " tex-check: runs static analysis checker on LaTeX source to spot"
@@ -383,9 +363,6 @@ spell-check: $(src_tex) spelling_exceptions.txt
quick: # run latex only once no biber, no references etc...
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=book_serif book.tex
quick_booklet:
$(LATEX) -e '$$max_repeat=1' -halt-on-error -output-directory=booklet booklet.tex
quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
$(EBOOK) --mode draft book.tex

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

View File

@@ -1,6 +1,15 @@
\chapter{Making a sourdough starter}%
\label{chapter:sourdough-starter}
\begin{quoting}
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{sourdough-starter-activity-indicators}
\caption[Very active sourdough]{A very active sourdough starter shown by the
bubbles in the dough.}%
\label{fig:sourdough-starter}
\end{figure}
In this chapter you will learn how to make your
own sourdough starter, but before doing so you will
quickly learn about baker's math. Don't worry,
@@ -12,6 +21,8 @@ your starter's readiness, as well as
how to prepare your starter for long-term storage.
\end{quoting}
%\iffalse
\section{Baker's math}%
\label{section:bakers-math}
@@ -80,20 +91,23 @@ hungry family arrives. You are tasked with making pasta
for \num{20} people. How would you calculate the amount of sauce
you need? You go to the internet and check a recipe and then
are completely lost when trying to scale it up.
% \fi
\section{The process of making a starter}
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{sourdough-starter-activity-indicators}
\caption[Very active sourdough]{A very active sourdough starter shown by the
bubbles in the dough.}%
\label{fig:sourdough-starter}
\end{figure}
Making a sourdough starter is very easy, all you need
is a little bit of patience. It is in fact so easy that it can be summarized
in a simple flowchart~\ref{fig:sourdough-starter-process} The flour you should
in a simple flowchart~\ref{fig:sourdough-starter-process}.
\begin{flowchart}[!htb]
\centering
\input{figures/fig-starter-process.tex}
\caption[The full sourdough starter process]{The process of making a sourdough
starter from scratch.}%
\label{fig:sourdough-starter-process}
\end{flowchart}
The flour you should
use to bootstrap your starter is ideally a whole flour.
You could use whole-wheat, whole-rye, whole-spelt or
any other flour you have. In fact gluten free flours such
@@ -131,14 +145,6 @@ not airtight. You still want some gas exchange to be possible.
I~like to use a glass and place another
inverted one on top.
\begin{flowchart}[!htb]
\centering
\input{figures/fig-starter-process.tex}
\caption[The full sourdough starter process]{The process of making a sourdough
starter from scratch.}%
\label{fig:sourdough-starter-process}
\end{flowchart}
Now an epic battle begins. In one study~\cite{yeasts+biocontrol+agent}
scientists have identified more than \num{150}~different yeast species living
on a single leaf of a plant.
@@ -147,6 +153,14 @@ the upper hand in this battle. Other pathogens such as mold
are also being activated as we added water. Only the strongest
most adaptable microorganisms will survive.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war-i}
\caption[Microbial warfare during sourdough early days]{A simple
visualization of the microbial warfare that happens during the early days of making of
a sourdough starter.}
\label{fig:sourdough-starter-microbial-war-i}
\end{figure}
By adding water to the
flour the starches start to degrade. The seedling tries to
sprout but it no longer can. Essential for this process is the
@@ -188,20 +202,6 @@ days my new starter seems to be quite alive already. This might
be due to previous contamination of flour fermenting microbes in
my kitchen.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war}
\caption[Microbial warfare during sourdough early days]{A simple
visualization of the microbial warfare that happens during the making of
a sourdough starter. The wild spores on the plant and flour become
activated the moment flour and water is mixed. Only the most adapted
flour-fermenting microbes will survive. Because of unwanted microbial
fermentation it is advised to discard the feeding-leftovers of the first
days. The surviving yeast and bacteria continuously try to outcompete
each other for resources. New microbes have a hard time entering the
starter and are eliminated.}%
\label{fig:sourdough-starter-microbial-war}
\end{figure}
Wait for around 24~hours and observe what happens to your starter.
You might see some early signs of fermentation already. Use your nose
to smell the dough. Look for bubbles in the dough. Your dough
@@ -252,6 +252,14 @@ great option if the starter was accidentally depleted. A practical approach
is to store all discard in a single jar in the fridge, adding new discard on
top as needed and using it whenever required.}
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war-ii}
\caption[Microbial warfare during sourdough later days]{A simple
visualization of the microbial warfare that happens during the later days of making of
a sourdough starter.}
\label{fig:sourdough-starter-microbial-war-ii}
\end{figure}
You should hopefully again see some bubbles, the starter increasing
in size and/or the starter changing its smell. Some people give
up after the second or third day, because the signs might no longer

View File

@@ -535,6 +535,22 @@ figure.figure p.noindent {
text-align: center;
}
main.main-content h2.chapterHead.home-content-title {
margin-top: 0.5em;
margin-bottom: 0.5em;
line-height: 1.5em;
}
.download-description {
font-weight: var(--fw-bold);
}
.download-links {
p.indent, p.noindent {
text-align: unset;
}
}
@media (max-width: 768px) {
.header {
display: none;

View File

@@ -5,7 +5,7 @@ DOCKER_CMD := docker run --rm -it -v $(PWD):/opt/repo --platform linux/x86_64 $(
.PHONY: bake build_pdf build_docker_image push_docker_image validate website
.PHONY: print_os_version start_shell printvars show_tools_version mrproper
.PHONY: build_serif_pdf build_ebook booklet
.PHONY: build_serif_pdf build_ebook
# Dockers targets
build_docker_image:
@@ -30,9 +30,6 @@ bake:
website:
$(DOCKER_CMD) "cd /opt/repo/book && make website"
booklet:
$(DOCKER_CMD) "cd /opt/repo/book && make booklet"
mrproper:
$(DOCKER_CMD) "cd /opt/repo/book && make mrproper"

View File

@@ -626,15 +626,16 @@ class ModifyBuild
Creating this book has been a labor of love. My
main goal has always been to spread the joy of baking and empower bread
enthusiasts like yourself. To ensure that the book remains accessible
to everyone, I have decided to make it available as a free digital download.
to everyone, I have decided to make it available free of charge.
</p>
<a href="bread.jpg">
<img alt="One of my best Sourdough Breads" class="home-bread" src="bread.jpg" />
</a>
<h2 class="chapterHead home-content-title">⭐ Support this project</h2>
<p class="noindent">
However, producing and maintaining resources like this requires
Producing and maintaining resources like this requires
considerable time, effort, and financial investment. If you find value
in "The Sourdough Framework" and appreciate the effort that went into
creating it, I kindly request your support <a href="https://breadco.de/book">
@@ -646,18 +647,7 @@ class ModifyBuild
<p class="noindent">
Your generous contribution will not only help me cover the costs associated
with this project but will also enable me to continue creating more valuable
content in the future.
</p>
<p class="noindent">
If you feel inspired to contribute, please consider making a donation of
any amount through <a href="https://breadco.de/book">my donation page</a>.
Your support will go a long way in ensuring
that this knowledge can reach even more bread enthusiasts worldwide.
</p>
<p class="noindent">
Remember, your donation is entirely voluntary and any amount you
content in the future. Your donation is entirely voluntary and any amount you
contribute is deeply appreciated. If you are unable to make a donation at
this time, please know that your readership and support in spreading the
word about "The Sourdough Framework" are invaluable contributions as well.
@@ -669,29 +659,33 @@ class ModifyBuild
Together, we can continue to share the love of baking and cultivate a
community passionate about the art of sourdough.
</p>
<h2 class="chapterHead home-content-title">⬇️ Versions</h2>
<p class="noindent">
You can either browse through this page or download the full book directly:
</p>
<p class="noindent">
PDF: <a href="https://www.the-bread-code.io/book.pdf">https://www.the-bread-code.io/book.pdf</a><br>
PDF (no serif): <a href="https://www.the-bread-code.io/book-sans-serif.pdf">https://www.the-bread-code.io/book-sans-serif.pdf</a>
You can either browse through this website or download the full book to read it on your preferred device:
</p>
<p class="noindent">
EPUB: <a href="https://www.the-bread-code.io/book.epub">https://www.the-bread-code.io/book.epub</a><br>
EPUB in Black & White, size optimized for screen readers : <a href="https://www.the-bread-code.io/bw-book.epub">https://www.the-bread-code.io/bw-book.epub</a><br>
</p>
<div class="download-links">
<p class="noindent">
<span class="download-description">PDF:</span> <a href="https://www.the-bread-code.io/book.pdf">https://www.the-bread-code.io/book.pdf</a><br>
<span class="download-description">PDF (no serif):</span> <a href="https://www.the-bread-code.io/book-sans-serif.pdf">https://www.the-bread-code.io/book-sans-serif.pdf</a>
</p>
<p class="noindent">
<span class="download-description">EPUB:</span> <a href="https://www.the-bread-code.io/book.epub">https://www.the-bread-code.io/book.epub</a><br>
<span class="download-description">EPUB black & white:</span> <a href="https://www.the-bread-code.io/bw-book.epub">https://www.the-bread-code.io/bw-book.epub</a><br>
</p>
<p class="noindent">
The full source code of the book can be found here:
<a href="https://www.github.com/hendricius/the-sourdough-framework">https://www.github.com/hendricius/the-sourdough-framework</a>
</p>
<p class="noindent">
<span class="download-description">Short TL;DR version:</span> <a href="https://the-bread-code.io/book-tldr-digital.pdf">https://the-bread-code.io/book-tldr-digital.pdf</a><br>
<span class="download-description">Short TL;DR version (print):</span> <a href="https://the-bread-code.io/book-tldr-print.pdf">https://the-bread-code.io/book-tldr-print.pdf</a><br>
</p>
<p class="noindent">
There's also a hardcover version of the book available featuring an even more awesome design. You can read more information here:
<a href="https://www.breadco.de/hardcover-book">https://www.breadco.de/hardcover-book</a>
</p>
<p class="noindent">
<span class="download-description">Sauce code:</span>
<a href="https://www.github.com/hendricius/the-sourdough-framework">https://www.github.com/hendricius/the-sourdough-framework</a>. Contributions and improvements are highly appreciated!
</p>
</div>
<p class="noindent">
Thank you and may the gluten be strong with you,<br>