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