diff --git a/.github/workflows/release-book-website.yml b/.github/workflows/release-book-website.yml index a64be90..0f5c44c 100644 --- a/.github/workflows/release-book-website.yml +++ b/.github/workflows/release-book-website.yml @@ -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 diff --git a/.github/workflows/test-book-website.yml b/.github/workflows/test-book-website.yml index 4489eec..bd648d9 100644 --- a/.github/workflows/test-book-website.yml +++ b/.github/workflows/test-book-website.yml @@ -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 diff --git a/.gitignore b/.gitignore index 9ba0e4c..79db794 100644 --- a/.gitignore +++ b/.gitignore @@ -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/* diff --git a/Dockerfile b/Dockerfile index 73abd0f..dcf99bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 \ diff --git a/README.md b/README.md index e3b7963..69e7818 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/book/baking/baking-experiment-temperatures.png b/book/baking/baking-experiment-temperatures.png deleted file mode 100644 index cd78c38..0000000 Binary files a/book/baking/baking-experiment-temperatures.png and /dev/null differ diff --git a/book/baking/baking.tex b/book/baking/baking.tex index 8aabac8..1ce82d1 100644 --- a/book/baking/baking.tex +++ b/book/baking/baking.tex @@ -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 diff --git a/book/basics/how-sourdough-works.tex b/book/basics/how-sourdough-works.tex index ed42f31..9692f29 100644 --- a/book/basics/how-sourdough-works.tex +++ b/book/basics/how-sourdough-works.tex @@ -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 diff --git a/book/book.tex b/book/book.tex index 88574e5..52c65ed 100644 --- a/book/book.tex +++ b/book/book.tex @@ -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} diff --git a/book/booklet.tex b/book/booklet.tex new file mode 100644 index 0000000..e6c8f00 --- /dev/null +++ b/book/booklet.tex @@ -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} diff --git a/book/bread-types/bread-types.tex b/book/bread-types/bread-types.tex index dcde93d..12ce1cf 100644 --- a/book/bread-types/bread-types.tex +++ b/book/bread-types/bread-types.tex @@ -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 diff --git a/book/figures/fig-life-planet-sourdough-timeline.tex b/book/figures/fig-life-planet-sourdough-timeline.tex index 37192a2..0d6fd19 100644 --- a/book/figures/fig-life-planet-sourdough-timeline.tex +++ b/book/figures/fig-life-planet-sourdough-timeline.tex @@ -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 diff --git a/book/figures/flowcharts_tikz.tex b/book/figures/flowcharts_tikz.tex index 592e7d9..b452217 100644 --- a/book/figures/flowcharts_tikz.tex +++ b/book/figures/flowcharts_tikz.tex @@ -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} diff --git a/book/glossary/glossary.tex b/book/glossary/glossary.tex index ae4ecb6..ca0a154 100644 --- a/book/glossary/glossary.tex +++ b/book/glossary/glossary.tex @@ -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. diff --git a/book/history/sourdough-history.tex b/book/history/sourdough-history.tex index 3568e2d..3021d36 100644 --- a/book/history/sourdough-history.tex +++ b/book/history/sourdough-history.tex @@ -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. diff --git a/book/images/apple-experiment-ambient-temperatures.jpg b/book/images/apple-experiment-ambient-temperatures.jpg deleted file mode 100644 index 9d7f661..0000000 Binary files a/book/images/apple-experiment-ambient-temperatures.jpg and /dev/null differ diff --git a/book/images/apple-experiment-surface-temperatures.jpg b/book/images/apple-experiment-surface-temperatures.jpg deleted file mode 100644 index e1471cb..0000000 Binary files a/book/images/apple-experiment-surface-temperatures.jpg and /dev/null differ diff --git a/book/images/infographic-enzymes.jpg b/book/images/infographic-enzymes.jpg new file mode 100644 index 0000000..88d0b7b Binary files /dev/null and b/book/images/infographic-enzymes.jpg differ diff --git a/book/images/infographic-enzymes.png b/book/images/infographic-enzymes.png deleted file mode 100644 index b5631f7..0000000 Binary files a/book/images/infographic-enzymes.png and /dev/null differ diff --git a/book/intro/acknowledgements.tex b/book/intro/acknowledgments.tex similarity index 92% rename from book/intro/acknowledgements.tex rename to book/intro/acknowledgments.tex index 2d66c05..7a884fa 100644 --- a/book/intro/acknowledgements.tex +++ b/book/intro/acknowledgments.tex @@ -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 diff --git a/book/intro/preface.tex b/book/intro/preface.tex index 5f59c48..f064a68 100644 --- a/book/intro/preface.tex +++ b/book/intro/preface.tex @@ -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 diff --git a/book/makefile b/book/makefile index 7224333..f322560 100644 --- a/book/makefile +++ b/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 "" diff --git a/book/mix-ins/mix-ins.tex b/book/mix-ins/mix-ins.tex index ebc0fa4..c04bdbd 100644 --- a/book/mix-ins/mix-ins.tex +++ b/book/mix-ins/mix-ins.tex @@ -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.}. diff --git a/book/plots/fig-temperature-ambient.tex b/book/plots/fig-temperature-ambient.tex new file mode 100644 index 0000000..c3d876f --- /dev/null +++ b/book/plots/fig-temperature-ambient.tex @@ -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} diff --git a/book/plots/fig-temperature-surface.tex b/book/plots/fig-temperature-surface.tex new file mode 100644 index 0000000..8ddaf9e --- /dev/null +++ b/book/plots/fig-temperature-surface.tex @@ -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} diff --git a/book/plots/fig-yeast-sourdough-strength.tex b/book/plots/fig-yeast-sourdough-strength.tex new file mode 100644 index 0000000..defaa62 --- /dev/null +++ b/book/plots/fig-yeast-sourdough-strength.tex @@ -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} diff --git a/book/plots/icecube_ambient.table b/book/plots/icecube_ambient.table new file mode 100644 index 0000000..9e26aed --- /dev/null +++ b/book/plots/icecube_ambient.table @@ -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 diff --git a/book/plots/icecube_surface.table b/book/plots/icecube_surface.table new file mode 100644 index 0000000..1f5654e --- /dev/null +++ b/book/plots/icecube_surface.table @@ -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 diff --git a/book/plots/non-preheated_ambient.table b/book/plots/non-preheated_ambient.table new file mode 100644 index 0000000..1ea41d7 --- /dev/null +++ b/book/plots/non-preheated_ambient.table @@ -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 diff --git a/book/plots/non-preheated_surface.table b/book/plots/non-preheated_surface.table new file mode 100644 index 0000000..d1efc83 --- /dev/null +++ b/book/plots/non-preheated_surface.table @@ -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 diff --git a/book/plots/preheated_ambient.table b/book/plots/preheated_ambient.table new file mode 100644 index 0000000..1716484 --- /dev/null +++ b/book/plots/preheated_ambient.table @@ -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 + diff --git a/book/plots/preheated_bottom_ambient.table b/book/plots/preheated_bottom_ambient.table new file mode 100644 index 0000000..e05fe9e --- /dev/null +++ b/book/plots/preheated_bottom_ambient.table @@ -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 diff --git a/book/plots/preheated_bottom_surface.table b/book/plots/preheated_bottom_surface.table new file mode 100644 index 0000000..f125001 --- /dev/null +++ b/book/plots/preheated_bottom_surface.table @@ -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 diff --git a/book/plots/preheated_surface.table b/book/plots/preheated_surface.table new file mode 100644 index 0000000..66022c6 --- /dev/null +++ b/book/plots/preheated_surface.table @@ -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 diff --git a/book/plots/sourdough.table b/book/plots/sourdough.table new file mode 100644 index 0000000..5873843 --- /dev/null +++ b/book/plots/sourdough.table @@ -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 diff --git a/book/plots/spritzing_ambient.table b/book/plots/spritzing_ambient.table new file mode 100644 index 0000000..745e80f --- /dev/null +++ b/book/plots/spritzing_ambient.table @@ -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 diff --git a/book/plots/spritzing_surface.table b/book/plots/spritzing_surface.table new file mode 100644 index 0000000..a98285f --- /dev/null +++ b/book/plots/spritzing_surface.table @@ -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 + diff --git a/book/plots/yeast.table b/book/plots/yeast.table new file mode 100644 index 0000000..63be27a --- /dev/null +++ b/book/plots/yeast.table @@ -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 diff --git a/book/recipes/flat-bread.tex b/book/recipes/flat-bread.tex new file mode 100644 index 0000000..bb0dcc8 --- /dev/null +++ b/book/recipes/flat-bread.tex @@ -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} diff --git a/book/sourdough-starter/sourdough-starter-activity-indicators.png b/book/sourdough-starter/sourdough-starter-activity-indicators.png new file mode 100644 index 0000000..6770635 Binary files /dev/null and b/book/sourdough-starter/sourdough-starter-activity-indicators.png differ diff --git a/book/sourdough-starter/sourdough-starter.tex b/book/sourdough-starter/sourdough-starter.tex index 4a0191c..0c977b8 100644 --- a/book/sourdough-starter/sourdough-starter.tex +++ b/book/sourdough-starter/sourdough-starter.tex @@ -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, diff --git a/book/sourdough.sty b/book/sourdough.sty index f4bf38d..370e706 100644 --- a/book/sourdough.sty +++ b/book/sourdough.sty @@ -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, diff --git a/book/spelling_exceptions.txt b/book/spelling_exceptions.txt new file mode 100644 index 0000000..2c5d9f7 --- /dev/null +++ b/book/spelling_exceptions.txt @@ -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 diff --git a/book/style.css b/book/style.css index 261292e..b0ee324 100644 --- a/book/style.css +++ b/book/style.css @@ -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); + } +} \ No newline at end of file diff --git a/book/supporters.csv b/book/supporters.csv index 63a9c05..abb18f7 100644 --- a/book/supporters.csv +++ b/book/supporters.csv @@ -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, diff --git a/book/tables/table-baking-process-stages.tex b/book/tables/table-baking-process-stages.tex index d17d6f0..ad95bb6 100644 --- a/book/tables/table-baking-process-stages.tex +++ b/book/tables/table-baking-process-stages.tex @@ -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} diff --git a/book/tables/table-flat-bread-pancake-recipe.tex b/book/tables/table-flat-bread-pancake-recipe.tex index 8392341..56814a5 100644 --- a/book/tables/table-flat-bread-pancake-recipe.tex +++ b/book/tables/table-flat-bread-pancake-recipe.tex @@ -1,4 +1,4 @@ -%TODO: Alignement is not great +%TODO: Alignment is not great \begin{tabular}{@{}lll@{}} \toprule & \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule diff --git a/book/troubleshooting/crumb-structures.tex b/book/troubleshooting/crumb-structures.tex index 8fad248..ecb5097 100644 --- a/book/troubleshooting/crumb-structures.tex +++ b/book/troubleshooting/crumb-structures.tex @@ -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.}% diff --git a/book/troubleshooting/misc.tex b/book/troubleshooting/misc.tex index 1aff7cc..15a3445 100644 --- a/book/troubleshooting/misc.tex +++ b/book/troubleshooting/misc.tex @@ -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. - diff --git a/book/wheat-sourdough/aliquot-before-after.jpg b/book/wheat-sourdough/aliquot-before-after.jpg new file mode 100644 index 0000000..21c0137 Binary files /dev/null and b/book/wheat-sourdough/aliquot-before-after.jpg differ diff --git a/book/wheat-sourdough/aliquot-before-after.png b/book/wheat-sourdough/aliquot-before-after.png deleted file mode 100644 index 9a822a7..0000000 Binary files a/book/wheat-sourdough/aliquot-before-after.png and /dev/null differ diff --git a/book/wheat-sourdough/artistic-scoring.jpg b/book/wheat-sourdough/artistic-scoring.jpg index 546419d..8c296a0 100644 Binary files a/book/wheat-sourdough/artistic-scoring.jpg and b/book/wheat-sourdough/artistic-scoring.jpg differ diff --git a/book/wheat-sourdough/dough-strength-sourdough-yeast.png b/book/wheat-sourdough/dough-strength-sourdough-yeast.png deleted file mode 100644 index 2640287..0000000 Binary files a/book/wheat-sourdough/dough-strength-sourdough-yeast.png and /dev/null differ diff --git a/book/wheat-sourdough/wheat-sourdough.tex b/book/wheat-sourdough/wheat-sourdough.tex index 4482b92..ebe560c 100644 --- a/book/wheat-sourdough/wheat-sourdough.tex +++ b/book/wheat-sourdough/wheat-sourdough.tex @@ -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. diff --git a/makefile b/makefile index 113f326..154f572 100644 --- a/makefile +++ b/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" diff --git a/website/modify_build.rb b/website/modify_build.rb index f93222c..29c92c1 100644 --- a/website/modify_build.rb +++ b/website/modify_build.rb @@ -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