167 Commits

Author SHA1 Message Date
Hendrik Kleinwaechter
a9dec4047f Merge 4160557857 into 8b83e1c5b6 2025-03-11 17:35:38 +00:00
cedounet
8b83e1c5b6 Merge pull request #461 from hendricius/Fix-456-clean
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
Fix wrong text in html with nameref
2025-03-11 09:57:37 +00:00
Ced
25f91cd7a1 Fix wrong text in html with nameref
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
Chapters with Komascript need a special treatment.  See:
https://github.com/michal-h21/make4ht/issues/166#issuecomment-2695488065
2025-03-11 09:17:15 +00:00
Ced
5bb5d8a48a Add missing target in low-res ebook copy
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-03-05 16:49:59 +00:00
Ced
f64fc55977 Reintroduce the mkdir calls for real this time 2025-03-05 14:28:13 +00:00
Ced
3e02af03ad Reintroduce the mkdir calls
It was not dealing with subdirectories..
2025-03-05 14:17:01 +00:00
Ced
7da9f5b0ad Fix epub build and remove redudant mkdir calls
1) ebook was still using the old target
2) Do not call mkdir -p for every single image conversion
2025-03-05 13:56:42 +00:00
cedounet
19df1546f0 Disable old rules in makefile and other cleanup (#459)
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Disable old rules in makefile and light cleanup

1) build_* now exit with an error message telling you what to do, this is
stage 2 of clean up

2) Fix the folding markers

3) reduce number of rm calls in clean targets

4) Improve git info, not just last commit hash

5) cleanup of spaces... to be more consistent
2025-03-05 11:16:05 +00:00
cedounet
6b1d2c3de6 Stick to ch:XXX convention for labels
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
consistency on label names...
2025-02-24 16:31:55 +00:00
cedounet
b2db06da5b Typos numbers (#457)
* Fix even more typos

* Merge remote-tracking branch 'upstream/main'

* Fix typos around numbers

I mostly wanted to check the CI pipeline is back up, so going for
obvious changes.
2025-02-24 14:03:45 +00:00
cedounet
47c2367e29 Fix typo in README.md
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
2025-02-23 16:01:15 +00:00
Hendrik Kleinwaechter
09e6e57bcc Update docker image (#455)
For some reason despite specifying ruby 3.1 it was updated to 3.3. This
updates everything to 3.3.

Co-authored-by: Hendrik Kleinwaechter <hendricius@hendricius.fritz.box>
2025-02-23 13:56:25 +01:00
cedounet
227740c5eb Do not pretend Evan's mills were steam powered (#453)
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
* Do not pretend Evan's mills were steam powered

Theuy defo were not in his book.

* Incorporate feedback for Evan mill machine text

All credits to @tbpassin

* Fix typos
2025-02-22 10:10:40 +01:00
Cedric
01a4d1d873 Use stiunitx more and fix typos
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-02-18 19:59:21 +00:00
Cedric
75357db7bb Use small instead of footnotesize for caption
larger font and also use bold
2025-02-18 19:14:11 +00:00
Cedric
502a3f45c6 Harmonize labels names and use centering
A few reformating as well, commit mainly about consistency.
2025-02-18 19:13:30 +00:00
cedounet
4c01b54039 Fix typo in README.md
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-02-08 19:52:45 +02:00
cedounet
f398c22843 Add note about warnings in README.md
We get a fair share of them see https://github.com/hendricius/the-sourdough-framework/issues/449#issuecomment-2645843733
2025-02-08 19:50:09 +02:00
Ced
b2a016ad10 Use british english in TikZ
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
2025-02-07 18:42:58 +00:00
Ced
680e91b9c1 Fix even more typos 2025-02-07 18:42:58 +00:00
Ced
8fa4869f23 Fix some more spelling mistakes 2025-02-07 18:42:58 +00:00
Ced
3563f7a74a Fix several typos 2025-02-07 18:42:58 +00:00
The Gentlehacker
efc999f2c7 Correct conjuctive agreement. 2025-02-07 18:42:37 +00:00
Ced
f77ff0fba5 Same size for all captions
flowchart/table/figures
2025-02-07 18:41:38 +00:00
Ced
8fce8a5abd Fix capitalization issues
Fixes bug 444
https://github.com/hendricius/the-sourdough-framework/issues/444

Reformat paragraphs to 80 colmuns while at it.
2025-02-07 18:41:19 +00:00
Nikolaos Stamatopoulos
c66e80161d fix: Swap links of TL;DR versions in README.md
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
This commit simply swaps the links for TL;DR versions in README.md, in
order to match the text.
2025-02-02 19:23:45 +00:00
Ramin Kamal
9e70d91066 Fix capitalization of figure and flowchart refs.
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-01-29 13:35:18 +00:00
Ramin Kamal
64d0ca53a6 Improve reference to figure 3.2 in text. 2025-01-29 13:35:18 +00:00
Ramin Kamal
2fa1e39f83 Add reference to link to microbial war image. 2025-01-29 13:35:18 +00:00
Ramin Kamal
af5285efb1 Improve float placement in Starter section
- Move flow chart to top of Making a Starter Section
- Move Microbe War figure to paragraph after "epic battle"
2025-01-29 13:35:18 +00:00
Gopal Jivan
f63d444c33 Updates TLDR Link in Menu
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
2025-01-28 19:00:10 +00:00
Hendrik Kleinwaechter
28affc645a This adds the TLDR to the menu (#440)
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-01-24 14:42:00 +01:00
Hendrik Kleinwaechter
7db993a176 Improve text for enzymes (#435)
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
* Improve text for enzymes

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

* Add PR feedback

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

This adds the design TLDR version to the README and website

* Make less verbose

* Remove booklet from source
2025-01-23 18:55:58 +01:00
Hendrik Kleinwaechter
3e602fa71f Fix typo
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
2025-01-22 16:51:11 +00:00
Cedric
cbf67246e5 Add warning on future breakage
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Michal will update tex4ht ditribution... this will eventually make it to
texlive then to the CI server and it will break.  Adding his comment in
the code so we know.
2025-01-22 08:20:02 +00:00
Cedric
263eb74afe Fix the chemical equation.
All credits due to @michal-h21
https://github.com/michal-h21/tex4ebook/issues/137
2025-01-22 08:20:02 +00:00
Cedric
e0b99edff6 Add latest dvisvgm drive for tex4ht
commit f1707125de2f058634523b0b3391a7c7be2d6784
Author: Michal Hoftich <michal.h21@gmail.com>
Date:   Tue Oct 29 18:12:59 2024 +0100

    use \Picture* instead of \Picture+

from:
https://github.com/michal-h21/dvisvgm4ht.git (fetch)
2025-01-22 08:20:02 +00:00
Ced
62880e7ff2 Fix merge errors
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
2025-01-21 17:51:57 +00:00
Ced
157cbb03b7 Modernize target names in makefile
Names might have made sense at some point... but not so sure anymore

build_pdf            => pdf
build_booklet        => booklet
build_serif_pdf      => serif
build_sans_serif_pdf => sans_serif
build_ebook          => ebook
build_bw_ebook       => bw_ebook
build_low_res_ebook  => low_res_ebook

Old names kept not to break backward compatibility
2025-01-21 17:51:57 +00:00
Ced
d37e2aa4bc Reorder and add comments in makefile
Also added markers {{{ for folding
2025-01-21 17:51:57 +00:00
Ced
9eaff81c49 Simplify the epub size check 2025-01-21 17:51:57 +00:00
Ced
6a2b334c2a Remove debug flag on default website build 2025-01-21 17:51:57 +00:00
cedounet
14e1e7ae2e Merge pull request #433 from hendricius/sans_serif_pics_website_2
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
Sans serif TikZ pics website
2025-01-20 14:55:17 +00:00
Hendrik Kleinwaechter
1b5d23a348 Fix duplicate font loading
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
2025-01-20 11:23:55 +01:00
cedounet
98a3360348 Merge pull request #432 from ramink/layout_fig_loops
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
Layout "Repeat 3 Times" loops in better way.
2025-01-18 18:47:16 +00:00
Cedric
1b90bf669b Use sans-serif fonts with tex4ht
This has to be done in the config file..:

All fonts are suppressed in the --lua mode of TeX4ht, because we need to
prevent the loading of OpenType fonts, which causes a fatal error.:
https://tex.stackexchange.com/questions/705948/change-font-of-tikz-diagrams-in-html-produced-by-make4ht
2025-01-18 18:24:22 +00:00
Cedric
427dcbfa37 Use a sans-serif math font for pgfplots
pgfplots uses math fonts for graphs ticks... and it looks weird when
building sans serif.

Not sure Fira is necessarily a great choice with open-sans but we have
very little math so that should do...
2025-01-18 18:23:17 +00:00
Ramin Kamal
eea69bb854 Layout "Repeat 3 Times" loops in better way. 2025-01-13 09:35:40 -08:00
Ced
c3904d2f14 Delete rogue draft file
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-01-12 12:16:58 +00:00
cedounet
e77e7e5260 Merge pull request #430 from hendricius/new_starter_flowchart
New starter flowchart
2025-01-12 11:35:38 +00:00
cedounet
8a3b237f21 Merge pull request #429 from hendricius/typos
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Typos and rewording corrections
2025-01-11 11:12:08 +00:00
Ced
9ad48ea1a3 Fix more uppercase in flowcharts
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
2025-01-11 11:09:16 +00:00
Ced
fe667b82e8 Fix merge error in starter-process flowchart 2025-01-11 11:01:49 +00:00
Ced
19029daf8a Merge remote-tracking branch 'upstream/new_starter_flowchart' into new_starter_flowchart 2025-01-11 10:51:01 +00:00
Ced
fa157c350e Use uppercase in flowcharts conditions 2025-01-11 10:31:19 +00:00
Ced
3069b5ff7c Remove the MWE from git
was added for the debug branches but shall not go to main.
2025-01-11 10:31:19 +00:00
Ced
3a1b247bc4 Reworked flowchart as per discussions 2025-01-11 10:30:07 +00:00
Ced
c99efe6f20 Rephrase pumpkin puree water release warning 2025-01-11 10:01:21 +00:00
Ced
0a0d227611 Remove words from spelling exceptions 2025-01-11 09:49:18 +00:00
Steve Nicholson
bbeef2d10f Fix typos
puré -> purée

Reference: https://www.merriam-webster.com/dictionary/puree

Typo
2025-01-11 09:48:16 +00:00
cedounet
d7b2cb6be4 Merge pull request #425 from ramink/new_starter_flowchart
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
Update more arrows to match the flow arrows in flowcharts.
2025-01-10 09:49:24 +00:00
Ezekiel-DA
d6c862eea4 Correct reference to flowchart in dough strength section (#424)
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2025-01-10 09:32:44 +01:00
Ramin Kamal
ae7c7fda8f Change plots to use "Latex" arrows for the axes 2025-01-09 15:46:48 -08:00
Ramin Kamal
1ab7970708 Change "Repeat 3 times" elements to use "Latex" arrows 2025-01-09 15:45:54 -08:00
Cedric
221119e6d0 Merge branch 'main' into new_starter_flowchart 2025-01-09 22:31:07 +00:00
Cedric
bd1050d75d Merge remote-tracking branch 'hendiricus/main' 2025-01-09 22:30:57 +00:00
Ramin Kamal
2afe5cff49 Rearrange starter process flowchart
- Added an extra state for clarity
- Made it more compact
- Added details section
2025-01-09 22:19:51 +00:00
Ramin Kamal
1166f6d925 Update all flowchart arrows to LaTeX arrows
- Change tikzstyle definition for "line" so that all flowchart arrows
  have the "Latex" styling.
2025-01-09 21:48:38 +00:00
Ramin Kamal
bf6a319e8f Chang arrowheads to be cleaner LaTex style.
Update flowcharts_tikz.tex to use arrows.meta instead of arrows, which
is not nice and deprecated.
2025-01-09 21:28:52 +00:00
Cedric
a87cc723a6 Enable abbreviations in standalone flowcharts
Spun the file out for inclusion basically... we want to be able to use
\eg in flowcharts even when built standalone.

Fixed dependencies in makefile as well
2025-01-09 21:21:15 +00:00
Cedric
127ca9423e Enable standalone chemical figures generation 2025-01-09 21:04:40 +00:00
Cedric
54461ec45e Fix makefile standalone flowchart png generation 2025-01-09 21:02:36 +00:00
cedounet
35a0a89765 Update readme (#419)
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
* Move mixing seed from troubleshooting to mix-ins

This was written way before the mix-ins sections, made sense back then
but not so much anymore so moving it out.

formatted text and added centering, labels etc while at it.

* Update Readme based on latest makefile changes

Website is now part of make bake/all

ebook is around 20 MByte even in colour version so you can use kindle
app to download release to your phone.  For the full resolution version
you need to build yourself.
2025-01-06 08:52:45 +01:00
Cedric
99e96c768f Merge remote-tracking branch 'hendiricus/main' 2025-01-05 18:11:24 +00:00
cedounet
727cf0a16a Move mixing seed from troubleshooting to mix-ins (#415)
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
This was written way before the mix-ins sections, made sense back then
but not so much anymore so moving it out.

formatted text and added centering, labels etc while at it.
2025-01-05 15:46:57 +01:00
Cedric
8efa4fb424 Move mixing seed from troubleshooting to mix-ins
This was written way before the mix-ins sections, made sense back then
but not so much anymore so moving it out.

formatted text and added centering, labels etc while at it.
2025-01-03 22:56:54 +00:00
cedounet
48916a5eb7 Merge pull request #412 from hendricius/better_plots_tikz_2
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
replace some pictures of plots by their TikZ equivalent from a csv file.
2025-01-02 18:24:39 +00:00
Ced
0c0c5db7fe Merge branch 'main' into better_plots_tikz_2
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
2025-01-02 18:14:39 +00:00
Ced
b4bce912b3 Reduce plots height by a factor 2
Just looks nicer... maybe a littue too squashed?
2025-01-02 18:09:43 +00:00
Hendrik Kleinwaechter
2429ceb825 Replace starter image with book image (#407)
This takes the new starter activity image from the book and adds it to
the starter activity chapter. This further introduces some changes to
the layout of the website to make reading a bit easier.
2025-01-02 16:07:55 +01:00
Hendrik Kleinwaechter
cb73bf735c Fix #408 and improve chart description (#411)
This improves the figure's description.
2025-01-02 14:38:01 +01:00
Hendrik Kleinwaechter
14509a9f4a Fix discard instructions #409 (#410)
This changes the text slightly to make it clearer what to best do with
the discard that's piling up when making the starter initially.
2025-01-02 14:37:42 +01:00
Hendrik Kleinwaechter
8c5248e455 Use newer Github Actions version (#413)
v3 was deprecated, switch to v4
2025-01-02 14:09:39 +01:00
Cedric
8952b62289 Fix spelling mistakes in plots and fonts issues 2025-01-01 18:22:23 +00:00
Cedric
324585c172 Delete dought strength pic replaced by TikZ plots 2025-01-01 18:22:11 +00:00
Cedric
eba366253c Use TikZ plot for sourdough strength 2025-01-01 18:22:05 +00:00
Cedric
6efa956165 Add sourdough and yeast strength TikZ plot 2025-01-01 17:28:02 +00:00
Cedric
c5019a19f6 Add tables for yeast and sourdough strength 2025-01-01 17:27:56 +00:00
Cedric
5753fdcd26 Delete temperature pictures replaced by TikZ plots
Not needed anymore.
2025-01-01 17:27:34 +00:00
Cedric
e9f6dba1f5 Use TikZ temperature plots in the book 2025-01-01 17:27:16 +00:00
Cedric
99de1839c6 Add TikZ temperature plots 2025-01-01 17:26:53 +00:00
Cedric
d1ca7b8bb9 Add data points for temperature plots 2025-01-01 17:26:49 +00:00
Cedric
9462f0319e Enable pgfplots package
Will be used by TikZ for graphs/plots
2025-01-01 17:25:53 +00:00
Cedric
6202f44881 Fix missing dependency for low-res epub
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
the png files will be provided by rsync but make does not know that so
just removing them from dependency list for now.

TODO: Is there a better fix?
2024-12-31 17:06:04 +00:00
Stoneguard001
32d600005c reduce epub file size with ower res pics (#406)
* epub - use the lower resolution colour as release epub
* Add in check for epub size, will fail if too big (>50MB)

* added folders ebook and website build folders to .gitignore
2024-12-31 16:05:52 +00:00
Cedric
d78c29ba66 Fix a bug on make clean
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
We were deleting the .table files by mistake with clean/mrproper
2024-12-30 23:54:10 +00:00
Cedric
60928bc404 Revert "Disable parallel build once again"
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
This reverts commit 6eba9635dd.
2024-12-29 20:20:47 +00:00
Cedric
e00f853063 Stop using latexmk for the booklet
Looks like it breaks parallel build on  Github CI
2024-12-29 20:19:12 +00:00
Cedric
2dea80a29c Disble biber for booklet
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
2024-12-28 18:31:19 +00:00
Cedric
6eba9635dd Disable parallel build once again
But now I have a log so hopefully I can debug it!
2024-12-28 17:36:43 +00:00
Cedric
7804bd8df1 Synchronize output of parallel jobs in make
Gives me a chance to find the bug before reverting parallel build
2024-12-28 17:17:16 +00:00
cedounet
cf49ab1ccc Some more ebook build dir (#404)
Do not run test-book-website on main push

This makes little sense to run it again.. we already did run twice on
branch push and for the PR request.  And we will run the exact same
thing and more (sans-serif, actual release etc) in release-book-website.
2024-12-28 17:04:54 +00:00
cedounet
8743660c0a Merge pull request #403 from hendricius/ebook_build_dir
Some checks failed
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Test book and website for given image / test-book-website (push) Has been cancelled
Ebook build dir
2024-12-28 16:30:54 +00:00
Cedric
69acb8c04d Re-enable parallel builds
We never knew why they broke on CI last time and not on any of
machines.. checking if that was a setup issue on github side.  This
woudl enable much faster builds.
2024-12-28 16:16:27 +00:00
Cedric
972edd651b Remove explicit website build in CI
We now can do both in make bake target as website and ebooks can run in
parallel.
2024-12-28 16:07:44 +00:00
Cedric
d462e5adba Simplify and improve clean rules
Things changed over time, with new versions of the tools and this was
not kept consistent.

also use -rm without space like in the manual... makes no difference but
both styles were used.
2024-12-28 15:40:15 +00:00
Cedric
c6a5038d2f Use a build dir for ebook and website
This is a new feature of Tex4ht and prevents dumping all files in
current directory, much cleaner..

This also allows to build the ebook and website in parallel.

As a consequence website is not built with make bake.
2024-12-28 14:59:30 +00:00
Cedric
b57e9ba8c0 Merge remote-tracking branch 'hendiricus/main'
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Test book and website for given image / test-book-website (push) Waiting to run
2024-12-27 14:58:52 +00:00
Cedric
9adb64c1ee Replace png by jpg to save size 2024-12-27 14:47:02 +00:00
Stoneguard001
d2d79cd992 Reduce colour ebook size
Reduce picture quality as the kindle app on the phone has a 30 MByte limit
2024-12-27 14:47:02 +00:00
Stoneguard001
ef92cac0a1 Reduce colour ebook size
Reduce picture quality as the kindle app on the phone has a 30 MByte limit
2024-12-27 14:37:00 +00:00
cedounet
a5b1fa93dc Merge pull request #400 from hendricius/url_biblio
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Test book and website for given image / test-book-website (push) Waiting to run
Allow URL to break
2024-12-26 22:23:16 +00:00
Cedric
b588b55c1a Allow URL to break
This was prevented by ocgcolorlinks which was here to have links printed
in black but looking like colors in the pdf on screen... as Doc
hyperref explains:

• Main disadvantage: Links cannot be broken across lines. PDF reference
1.7: 4.10.2 “Making
2024-12-26 22:14:29 +00:00
cedounet
78cf73bb2c Merge pull request #399 from hendricius/flowcharts_numbering
Flowcharts numbering
2024-12-26 21:16:15 +00:00
cedounet
16f3fe7338 Merge pull request #398 from hendricius/improve_makefile
Improve makefile
2024-12-26 20:53:15 +00:00
Cedric
e27e414291 Merge branch 'improve_makefile' into flowcharts_numbering
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
2024-12-26 20:36:29 +00:00
Cedric
d763c78f2f Add list of spelling exceptions 2024-12-26 20:34:45 +00:00
Cedric
85144e4678 Finish spell checking support in makefile 2024-12-26 20:13:21 +00:00
Cedric
7565b83dde Use US spelling for acknowledgments 2024-12-26 19:52:26 +00:00
Cedric
481a041d5d Merge branch 'main' into improve_makefile 2024-12-26 18:55:39 +00:00
Cedric
0c7756bc76 Merge branch 'main' into flowcharts_numbering 2024-12-26 18:54:59 +00:00
cedounet
b03a81791b Merge pull request #397 from hendricius/supporters
Supporters
2024-12-26 18:54:23 +00:00
Cedric
e339e73c62 Merge branch 'supporters' into improve_makefile 2024-12-26 18:32:32 +00:00
Cedric
a7564e93e3 Merge branch 'main' into supporters
Some checks failed
Test book and website for given image / test-book-website (push) Has been cancelled
2024-12-26 18:25:58 +00:00
Cedric
9c18bfcff2 Get rid of ampersand in supporter.csv
htlatex apparently not super fan of it even if escaped
2024-12-26 18:22:28 +00:00
Cedric
abd3a23486 WIP spell checking 2024-12-26 16:48:04 +00:00
Cedric
296461f13d Prevent git from using a pager in makefile 2024-12-26 16:13:14 +00:00
Cedric
424f4c84c6 Fix lacheck version output 2024-12-26 16:13:14 +00:00
Cedric
12bfae0710 Revamp help for clarity 2024-12-26 16:13:14 +00:00
Cedric
aa2c80a048 Make flowchart numbering consistent
Now all figures, tables and flowcharts are numbered with chapter.number.

Fixes: https://github.com/hendricius/the-sourdough-framework/issues/395

Also added vertical space for list of tables so it matches the list of
figures and list of flowcharts
2024-12-26 15:25:55 +00:00
cedounet
e7c4590a0f Merge pull request #396 from hendricius/supporters
Some checks are pending
Release the book and website / build-and-push-image (push) Waiting to run
Release the book and website / release-book-website (push) Blocked by required conditions
Release the book and website / invalidate-book-website-cache (push) Blocked by required conditions
Test book and website for given image / test-book-website (push) Waiting to run
Supporters
2024-12-26 15:15:39 +00:00
Cedric
ce2f210f3a Merge remote-tracking branch 'hendiricus/main' 2024-12-26 14:50:18 +00:00
Cedric
2b34224954 Merge remote-tracking branch 'hendiricus/main' into supporters 2024-12-26 14:43:49 +00:00
Steve Nicholson
6ef6901348 Fix typo in history (#391)
Some checks failed
Release the book and website / build-and-push-image (push) Has been cancelled
Test book and website for given image / test-book-website (push) Has been cancelled
Release the book and website / release-book-website (push) Has been cancelled
Release the book and website / invalidate-book-website-cache (push) Has been cancelled
2024-12-19 10:56:40 +01:00
Bastian Hodapp
2daba55c3e fix: typo in preface (#384) 2024-12-06 16:02:09 +01:00
Paddy McCann
ec589630ed Update wheat-sourdough.tex (#387)
Corrects relative scales of dough to starter when considering refreshing.
2024-12-06 16:01:43 +01:00
Viktor Szépe
792e1af0ef Fix misspellings (#378)
* Fix misspellings

* Revert to US English

* fix a word
2024-08-04 16:43:20 +02:00
Steven Honson
7c1feb3699 Remove redundant aliquot statement (#380) 2024-08-03 13:09:34 +02:00
Viktor Szépe
e82475bd74 Remove duplicate from gitignore (#377) 2024-07-12 10:41:23 +02:00
Viktor Szépe
2e4fae3d13 Fix typos (#375) 2024-07-12 10:40:34 +02:00
cedounet
07a4657ee8 Merge pull request #373 from hendricius/fix_warnings
Fix warnings
2024-06-17 20:59:59 +01:00
Ced
120677b8d7 Fix the coma before the dots 2024-06-16 19:26:15 +01:00
Ced
cf935771d6 Merge branch 'main' into fix_warnings 2024-06-16 19:14:15 +01:00
Ced
1b99fbe1ca Fix some ortho-typographical problems
- Handle space around etc. correctly
- Use dots when at end of a list makes it more obvious.
2024-06-16 19:09:16 +01:00
Hendrik Kleinwaechter
044ed02a7d Clarifications/improvements (#371)
* Clarifications

This changes a couple of texts and re-orders parts of the booklet

* Typo fix
2024-06-04 09:14:27 +02:00
Ced
67adc3b54f Fix typo in makefile
recipes were not added as dependencies
2024-05-30 09:38:53 +01:00
Ced
e5bea976cd Reapply "Remove parallel option from make (#368)"
Fair enough it breaks on CI... does work on my machine though :(
not sure what is going on.

This reverts commit ee5e47de63.
2024-05-29 17:20:00 +01:00
Ced
ee5e47de63 Revert "Remove parallel option from make (#368)"
This reverts commit 3d16d58817.

There is no reason for parallel build to fail
2024-05-29 17:07:35 +01:00
Ced
94c775d511 Add missing .PHONY in upper makefile 2024-05-29 17:07:35 +01:00
Ced
11ff3ca043 Remove debug frames on the booklet 2024-05-29 16:47:58 +01:00
cedounet
0c67489980 Merge pull request #369 from hendricius/booklet_fixes
Booklet fixes
2024-05-29 16:40:48 +01:00
Ced
17bc88615f Fix typo in DIY baker math table 2024-05-29 09:59:47 +01:00
Ced
ebdf0ad3fc Fix booklet dependencies in makefile 2024-05-29 09:59:03 +01:00
Hendrik Kleinwaechter
37d7ec12a8 Add more pH Meter details (#367)
See issue #332 for details
2024-05-29 09:03:20 +02:00
Hendrik Kleinwaechter
a0bff5442f Adds a new image for aristic scoring (#366)
New image provided by Nancy. Looks a bit more fancy.
2024-05-29 09:02:34 +02:00
Hendrik Kleinwaechter
3d16d58817 Remove parallel option from make (#368)
This temporarily removes the parallel option from make to ensure that we
can release the booklet. I am not sure why it causes an issue. Baking
the book without it causes no problem.
2024-05-29 09:02:23 +02:00
cedounet
24a9f5c31e Booklet (#362)
* Initial support for building a booklet

This is really WIP but add support in the makefile for building another
book from the same source.

As the target name suggests, it will be a TL;DR version of the
framework.

* Extract recipes in their own tex file (flat bread)

In order to reuse recipes in the booklet, we need to extract them in
their own tex file sourced by both.

* Add clean and quick targets for booklet

* Initial version of the booklet

Very very WIP, ugly as but need to start somewhere.

* Update the booklet

- Add pics
- Change layout

* Update makefile for booklet

- Add help target
- Follow naming conventions for target

* Remove non-wheat Bread

* Pack the picture together and fix captions

Takes less place, looks better, only good things...

* Remove labels

* Reorder figs and pics more logically

* Fix the fill-yourself baker math table

Much nicer and add rooms for comments

* Center pics and flowcharts and fix indentation

* Add booklet to all target

It will also be part of the release

* Reduce dependencies for booklet

not perfect but better, will avoid rebuild every tiem we work on the
text itself :)

* Add the booklet to the README

* Add docker entry, fix typo

* Add making sourdough starter

---------

Co-authored-by: Hendrik Kleinwaechter <hendrik.kleinwaechter@gmail.com>
2024-05-29 07:49:53 +02:00
cedounet
5ba0b99b4e Remove centering for floats (#364)
This was a bad idea...:
https://tex.stackexchange.com/questions/2651/should-i-use-center-or-centering-for-figures-and-tables

floatrows not sure how it should work with flowcharts... so we use
centring

I don't want to redefine all floats either as we use them for chapters
title page.
2024-05-27 09:55:36 +02:00
cedounet
d371b11686 Merge pull request #363 from hendricius/add_path
Show PATH when using show_tools_version
2024-05-26 12:43:31 +01:00
Ced
99cf6db279 Show PATH when using show_tools_version 2024-05-26 01:05:12 +01:00
Hendrik Kleinwaechter
66ae206cdc Link header image to homepage 2024-05-04 02:19:08 +02:00
Hendrik Kleinwaechter
7d48364d80 Fix confusing flow chart (#354)
First flow chart is about creating a starter - the other one about
maintenance. The suggested approach is slightly different. This makes it
clear that one flow chart is about creating a starter.
2024-05-03 23:37:53 +02:00
Hendrik Kleinwaechter
2d0e0b2d73 Fix flowchart border on website (#355)
This fixes #345
2024-05-03 23:37:42 +02:00
Hendrik Kleinwaechter
52a35bb61d Clarify stiff starter quantity (#356)
This clarifies how much stiff starter to use

See #348
2024-05-03 23:37:26 +02:00
Cedric
5d95dd4f34 Update supporters file 2024-01-30 22:02:47 +00:00
Cedric
8920775067 Update supporters file 2024-01-30 21:55:07 +00:00
79 changed files with 2763 additions and 1062 deletions

View File

@@ -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

View File

@@ -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 serif ebook website
- name: Upload book Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: books
path: |
book/book_serif/book.log
book/book_serif/book.pdf
book/book-epub/book.epub
- name: Test building website
uses: addnab/docker-run-action@v3
with:
image: ${{ env.DOCKER_IMAGE }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make mrproper && make website
- name: Upload website Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: website
path: website/static_website_html

4
.gitignore vendored
View File

@@ -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/*

View File

@@ -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 \
@@ -18,7 +18,7 @@ RUN apt-get update && \
zip \
git \
wget \
ruby3.1 \
ruby3.3 \
ruby-dev \
imagemagick \
rsync \

View File

@@ -53,7 +53,7 @@ make
```
If you want to 🍞 bake all the versions including ebook variants (.pdf, .epub
in colour and size optimized Black&White), run:
in colour and size optimized Black&White, as well as website), run:
```console
cd book/
@@ -62,6 +62,8 @@ make -j bake
You can check the files in the folder `book/release/`
Please note that while everything should build without any errors but you will get a fair amount of warnings, especially when building the ebook/website.
You can get some help on building various versions with:
```console
@@ -80,10 +82,20 @@ There's an additional enhanced accessibility version using a sans-serif font:
* [Download compiled sans-serif .pdf version](https://www.the-bread-code.io/book-sans-serif.pdf)
An additional black and white ebook is provided with a greatly reduced file
size. This shrinks the book from more than 50MB down to ~5MB:
size. This shrinks the book from more than 20MB down to ~5MB:
* [Download compiled B&W .epub version](https://www.the-bread-code.io/bw-book.epub)
For those who prefer a concise reference (about 15 pages), we offer a "too long;didn't read" (TL;DR)
version. This condensed guide contains the essential flowcharts, crucial information,
and space for your notes - perfect for quick kitchen reference.
It provides the key information you need without reading the complete book.
* [Read TL;DR version on your device](https://the-bread-code.io/book-tldr-digital.pdf)
* [Download TL;DR version for printing](https://the-bread-code.io/book-tldr-print.pdf)
We recommend using double-sided printing if your printer supports it.
## Online HTML version
Head over to [https://www.the-sourdough-framework.com](https://www.the-sourdough-framework.com)

4
book/abbreviations.tex Normal file
View File

@@ -0,0 +1,4 @@
% Common abbreviations
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
\newcommand{\etc}{etc\@ifnextchar.{}{.\@}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 KiB

View File

@@ -1,5 +1,5 @@
\chapter{Baking}%
\label{chapter:baking}
\label{ch:baking}
\begin{quoting}
Baking refers to the part of the process where you are loading your dough into
the oven\footnote{While some breads like flatbreads could also be baked on the
@@ -18,12 +18,11 @@ rise, this is called oven spring. Your bread starts to build a crust of
gel-like consistency, the crust is still extensible and can be stretched.
\begin{table}[htp!]
\begin{center}
\centering
\input{tables/table-baking-process-stages.tex}
\caption[Stages of dough during baking]{The different stages that
your dough undergoes during the baking process.}%
\label{tab:baking-stages}
\end{center}
\end{table}
At around \qty{60}{\degreeCelsius} (\qty{140}{\degF}) the microbes in your dough start to die.
@@ -69,7 +68,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
@@ -177,12 +176,11 @@ way.
\section{Building up steam}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-baking-process.tex}
\caption[Different steaming methods]{A schematic visualization of the baking
process using different sources of steam in a home oven.}%
\label{fig:baking-process}
\end{center}
\end{flowchart}
\begin{figure}[!htb]
@@ -212,7 +210,7 @@ way.
\end{figure}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-dutch-oven-process.tex}
\caption[Baking process with a dutch oven]{A visualization of the baking
process using a dutch oven (DO). The dough is steamed for the first half
@@ -221,7 +219,6 @@ way.
personal preference. Some bakers prefer a lighter crust and others a
darker.}%
\label{fig:dutch-oven-process}
\end{center}
\end{flowchart}
Dutch ovens are an ideal way to bake with a lot of
@@ -283,12 +280,11 @@ created from the dough and water source stays
around your dough.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-inverted-tray-method.tex}
\caption[Inverted tray baking process]{A schematic visualization the
inverted tray baking method that works great for home ovens.}%
\label{fig:inverted-tray-process}
\end{center}
\end{flowchart}
@@ -341,11 +337,10 @@ crust color. In my case this is another 15--25~minutes typically.
\section{Conclusions}
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-oven-baking-overview.tex}
\caption[Different oven types]{An overview of different oven types and their
different baking methods.}
\end{center}
\end{table}
Depending on your home oven, a different method

View File

@@ -9,17 +9,18 @@ learn more about the yeast and bacterial microorganisms involved.
\end{quoting}
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{infographic-enzymes}
\caption[Interaction of amylases and flour]{How amylases and proteases
interact with flour.}%
\label{infographic-enzymes}
\label{fig:infographic-enzymes}
\end{figure}
\section{Enzymatic reactions}
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
@@ -43,7 +44,7 @@ activity so that it can thrive in its new environment.
Of course, a ground flour can no longer sprout. But the enzymes that
trigger this process are still present. That's why it's important not to
mill grains at too high a temperature, as doing so could damage some of
these enzymes\footnote{In a recent
these enzymes\footnote{In a recent
study~\cite{milling+commercial+home+mill+comparison} tests have shown that
milling flour
at home with a small mill had no significant negative impact on the resulting
@@ -75,12 +76,13 @@ is used to create sugars out of the starch to then produce more plant matter.
Normally,
the microorganisms on the surface of the grain can't consume the freed maltose
molecules, which remain hidden inside the germ. But as we grind the flour, a
feeding frenzy takes place. Generally, the warmer the temperature, the faster
this reaction occurs. That's why a long fermentation is key to making great
bread. It takes time for the amylase to break down most of the starch into
simple sugars, which are not only consumed by the yeast but are also essential
to the \emph{Maillard reaction}, responsible for enhanced browning during the
baking process.
feeding frenzy takes place. Generally, the warmer the temperature, the faster
this reaction occurs. However, it takes time for the amylase
to break down most of the starch into simple sugars---which are not only
consumed by the yeast but are also
essential to the \emph{Maillard reaction}---responsible for
enhanced browning during the baking process.
That's why a long fermentation is key to making great bread.
If you're a hobby brewer, you'll know that it's important to keep your beer at
certain temperatures to allow the different amylases to convert the contained
@@ -176,13 +178,13 @@ gluten content, however, my bread always turned out great.
At the time, I~utilized an extended autolyse, which is just a fancy word for
mixing flour and water in advance and then letting the mixture sit. Most
recipes call for it as the process gives the dough an enzymatic head start, and
in general it's a great idea. However, as an equally effective alternative,
you could simply reduce the amount of leavening agent used --- in the case of
sourdough, this would be your starter. This would allow the same biochemical
reactions to occur at roughly the same rate without requiring you to mix your
dough several times. My whole-wheat game improved dramatically after I~stopped
autolysing my doughs.
recipes call for it as the process gives the dough an enzymatic head start,
and in general it's a great idea. However, as an equally effective
alternative, you could simply reduce the amount of leavening agent used---in
the case of sourdough, this would be your starter. This would allow the same
biochemical reactions to occur at roughly the same rate without requiring you
to mix your dough several times. My whole-wheat game improved dramatically
after I~stopped autolysing my doughs.
Now that I've had time to think about it, the result I~observed makes sense.
In nature, the outer parts of the seed come into contact with water first, and
@@ -190,17 +192,19 @@ only after penetrating this barrier would the water slowly find its way to the
center of the grain. The seed needs to sprout first to outcompete other nearby
seeds, requiring water to enter quickly. Yet the seed must also defend itself
against animals and potentially hazardous bacteria and fungi, requiring some
barrier to protect the embryo inside. A way for the plant to achieve both goals
would be for most of the enzymes to exist in the outer parts of the hull. As a
result, they are activated first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a
barrier to protect the embryo inside. A way for the plant to achieve both
goals would be for most of the enzymes to exist in the outer parts of the
hull. As a result, they are activated
first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a
little bit of whole flour to your dough, you should be able to significantly
improve the enzymatic activity of your dough. That's why, for plain white flour
doughs, I~usually add 10\textendash20\% whole-wheat flour.
improve the enzymatic activity of your dough. That's why, for plain white
flour doughs, I~usually add \qtyrange{10}{20}{\percent} whole-wheat flour.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{whole-wheat-crumb}
\caption{A whole-wheat sourdough bread.}%
\label{whole-wheat-crumb}
\label{fig:whole-wheat-crumb}
\end{figure}
By understanding the two key enzymes \emph{amylase} and \emph{protease}, you
@@ -213,22 +217,20 @@ tweak just by adjusting the speed of your dough's fermentation.
Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
can reproduce through either budding or by building spores. The spores are
incredibly tiny and resistant to external factors. Scientists have found undamaged
spores that are hundreds of million years old. There are a wide variety of
species --- so far, about \num{1500}
have been identified. Unlike other members of the fungi kingdom such as mold,
yeasts do not ordinarily create a mycelium
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
exception, skip ahead to the end of this section on
page~\pageref{aggressive-yeast}.}
incredibly tiny and resistant to external factors. Scientists have found
undamaged spores that are hundreds of million years old. There are a wide
variety of species---so far, about \num{1500} have been identified. Unlike
other members of the fungi kingdom such as mold, yeasts do not ordinarily
create a mycelium network~\cite{molecular+mechanisms+yeast}.\footnote{For one
interesting exception, skip ahead to the end of this section on
page~\pageref{sec:aggressive-yeast}.}
\begin{figure}[!htb]
\begin{center}
\centering
\includegraphics[width=0.8\textwidth]{saccharomyces-cerevisiae-microscope}
\caption[Brewer's yeast]{Saccharomyces cerevisiae: Brewer's yeast under the
microscope.}%
\label{saccharomyces-cerevisiae-microscope}
\end{center}
\label{fig:saccharomyces-cerevisiae-microscope}
\end{figure}
Yeasts are saprotrophic fungi. This means that they do not produce their own
@@ -323,7 +325,7 @@ inoculated with some of the 150 different wild yeast strains isolated from the
leaves. They found that when the wound was inoculated with yeast, the grape
sustained no significant damage~\cite{yeasts+biocontrol+agent}.
\phantomsection~\label{aggressive-yeast}%
\phantomsection~\label{sec:aggressive-yeast}%
Intriguingly, there was also an experiment performed that showed how brewer's
yeast could function as an aggressive pathogen to grapevines. Initially, the
yeast lived in symbiosis with the plants, but after the vines sustained heavy
@@ -342,10 +344,11 @@ can significantly increase the shelf life of sourdough
breads~\cite{shelflife+acidity}.
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
\caption[Bacteria under the microscope]{Fructilactobacillus
sanfranciscensis under the microscope.}%
\label{lactobacillus-franciscensis-microscope}
\label{fig:lactobacillus-franciscensis-microscope}
\end{figure}
There are two predominant types of acid produced in sourdough bread: lactic and
@@ -369,14 +372,15 @@ Others have reported that bacteria feed on the byproducts of yeast and vice
versa. This makes sense, as nature generally does a superb job of composting
and breaking down biological matter~\cite{lactobacillus+sanfrancisco}.
I~have yet to find a proper source that clearly describes the symbiosis between
yeast and bacteria, but my current understanding is that they both coexist and
sometimes benefit each other, but not always. Yeast, for example, tolerate the
acidic environment created by the surrounding bacteria and are thus protected
from other pathogens. Meanwhile, however, other research demonstrates that both
types of microorganisms produce compounds that prevent the other from
metabolizing food --- an interesting observation, by the way, as it could help to
identify additional antibiotics or fungicides~\cite{mold+lactic+acid+bacteria}.
I~have yet to find a proper source that clearly describes the symbiosis
between yeast and bacteria, but my current understanding is that they both
coexist and sometimes benefit each other, but not always. Yeast, for example,
tolerate the acidic environment created by the surrounding bacteria and are
thus protected from other pathogens. Meanwhile, however, other research
demonstrates that both types of microorganisms produce compounds that prevent
the other from metabolizing food---an interesting observation, by the way, as
it could help to identify additional antibiotics or
fungicides~\cite{mold+lactic+acid+bacteria}.
In the past, I've tried cultivating mushrooms and observed the mycelium
attempting to defend itself against the surrounding bacteria; both types of

View File

@@ -19,7 +19,7 @@
}
\input{intro/preface}
\input{intro/acknowledgements}
\input{intro/acknowledgments}
\mainmatter
@@ -35,8 +35,6 @@
\input{bread-types/bread-types}
\chapter{Wheat sourdough}%
\label{chapter:wheat-sourdough}
\input{wheat-sourdough/wheat-sourdough}
\input{non-wheat-sourdough/non-wheat-sourdough}

View File

@@ -17,14 +17,13 @@ of them. Some breads will require investment and technique, as depicted in
Table~\ref{tab:bread-types-comparison}. Flatbread is probably the most
accessible, least effort type of bread you can make. If you are a busy person
and/or dont have an oven, this might be exactly the type of bread you should
consider.
consider.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-overview-bread-types.tex}
\caption[Different bread types]{An overview of different bread types
and their respective complexity.}%
\label{tab:bread-types-comparison}
\end{center}
\end{table}
\section{Flatbread}%
@@ -57,15 +56,14 @@ pancake-like consistency, as you can see in
Table~\ref{tab:flat-bread-ingredients}
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-flat-bread-pancake-recipe.tex}
\caption[Flatbread recipe]{Flatbread or pancake recipe for 1 person.
Multiply the ingredients to increase portion size. Refer to the
Section~\ref{section:bakers-math}
``\nameref{section:bakers-math}'' to learn how to understand and
Section~\ref{sec:bakers-math}
``\nameref{sec:bakers-math}'' to learn how to understand and
use the percentages properly.}%
\label{tab:flat-bread-ingredients}
\end{center}
\end{table}
For a full recipe including the process of making such a flatbread, refer to
@@ -80,13 +78,12 @@ few steps, you can stop buying bread forever. This works with
any flour, including gluten-free options.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-process-flat-bread.tex}
\caption[The process to make a sourdough flatbread]{The process of making a flatbread is very
simple, requiring very little effort. This type of bread is especially
handy for busy bakers.}%
\label{fig:flat-bread-process}
\end{center}
\end{flowchart}
This is my go-to recipe that I~use to make bread whenever
@@ -106,13 +103,12 @@ warmer it is, the sooner it will be ready, consider
using warm water if it is very cold where you live.
\begin{figure}[htb!]
\begin{center}
\centering
\includegraphics[width=1.0\textwidth]{flat-bread-wheat}
\caption[Wheat flatbread]{A flatbread made with purely wheat flour. The
dough is drier at around \qty{60}{\percent} hydration. The drier dough
is a little harder to mix. As wheat contains more gluten, the dough
puffs up during the baking process.}
\end{center}
\end{figure}
This way you should have around \qty{11}{\gram} of sourdough ready in the evening. You will have
@@ -135,12 +131,11 @@ when getting started. You can observe the dough more easily and see when
it is ready.
\begin{figure}[htb]
\begin{center}
\centering
\includegraphics[width=1.0\textwidth]{ethiopian-woman-checking-bread}
\caption[Ethiopian \emph{injera}]{An Ethiopian woman baking an \emph{injera}
made using teff flour. The image has been provided by Charliefleurene
via Wikipedia.}
\end{center}
\end{figure}
If you used the flatbread option with less water, look at the size increase
@@ -170,12 +165,11 @@ going to taste relatively sour. I~do this frequently to better evaluate the
state of my doughs.
\begin{figure}[!htb]
\begin{center}
\centering
\includegraphics[width=1.0\textwidth]{injera-pancake-texture.jpg}
\caption[Teff sourdough pancake]{A sourdough pancake made with teff flour.
The pockets come from evaporated water and \ch{CO2} created by the
microbes. The image has been provided by Łukasz Nowak via Wikipedia.}
\end{center}
\end{figure}
If you are feeling lazy or don't have time, you could also use older sourdough starter
@@ -208,13 +202,12 @@ pancake option, opt for around \qtyrange{0.1}{0.5}{\cm} depending on what you
like.
\begin{figure}[htb]
\begin{center}
\centering
\includegraphics[width=1.0\textwidth]{einkorn-crumb.jpg}
\caption[Einkorn crum]{The crumb of a flatbread made with einkorn as flour.
Einkorn is very low in gluten and thus does not trap as much \ch{CO2} as
a wheat based dough. To make the dough fluffier use more water or
consider adding more wheat to the mix of your dough.}
\end{center}
\end{figure}
After 2--4~minutes flip over the pancake or flatbread. Bake it for the same
@@ -249,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
@@ -377,12 +323,11 @@ baking vessels in your oven. To make a freestanding loaf more steps
and tools are required.
\begin{figure}[!htb]
\begin{center}
\centering
\includegraphics[width=1.0\textwidth]{free-standing-loaf.jpg}
\caption[Freestanding sourdough bread]{A freestanding sourdough bread. Note
the incision known as an \emph{ear} and the oven spring clearly
distinguish this type of bread from flatbread and loaf pan bread.}
\end{center}
\end{figure}
When using wheat, make sure to mix your dough enough to develop a gluten network.
@@ -403,4 +348,4 @@ But after baking you will be rewarded with a beautiful bread
with great taste and consistency.
There is a dedicated recipe and tutorial for this type of bread in the
\nameref{chapter:wheat-sourdough} chapter.
\nameref{ch:wheat-sourdough} chapter.

View File

@@ -20,10 +20,10 @@
% Same tricks not to get double lines and also we do _not_ want arrows
\path [draw, thick] (ph_value) -- node{} ++(2, 0);
\path [draw, thick] (smell) -| node{} ++(2, 4);
\path [line] (dough_ready) -- node{yes} (divide_preshape);
\path [line] (dough_ready) |- node[right=3pt]{no} (dough_flattened);
\path [line] (dough_flattened) |- node[right=3pt]{yes} (stretch_fold);
\path [line] (dough_flattened) -- node{no} (wait_60_minutes);
\path [line] (dough_ready) -- node{Yes} (divide_preshape);
\path [line] (dough_ready) |- node[right=3pt]{No} (dough_flattened);
\path [line] (dough_flattened) |- node[right=3pt]{Yes} (stretch_fold);
\path [line] (dough_flattened) -- node{No} (wait_60_minutes);
\path [line] (stretch_fold) -- (wait_60_minutes);
\path [line] (wait_60_minutes) -- (check_dough);
\end{tikzpicture}

View File

@@ -22,11 +22,11 @@
\path [line] (close) -- (back_oven);
\path [line] (back_oven) -- (bake);
\path [line] (bake.west) -- node{} ++(-2, 0) -| (is_ready_check.north);
\path [line] (is_ready_check) -- node{yes} (remove_do_lid);
\path [line] (is_ready_check) -- node{no} (wait_5_minutes);
\path [line] (is_ready_check) -- node{Yes} (remove_do_lid);
\path [line] (is_ready_check) -- node{No} (wait_5_minutes);
\path [line] (wait_5_minutes.west) -- node{} ++(-1.5, 0) |- (is_ready_check.west);
\path [line] (remove_do_lid) -- (dark_enough_decision);
\path [line] (dark_enough_decision) -- node{yes} (finish_baking);
\path [line] (dark_enough_decision) -- node{no} (bake_5_more_minutes);
\path [line] (dark_enough_decision) -- node{Yes} (finish_baking);
\path [line] (dark_enough_decision) -- node{No} (bake_5_more_minutes);
\path [line] (bake_5_more_minutes.east) -- node{} ++(1, 0) -- node{} ++(0, 2.3) -| (dark_enough_decision.north);
\end{tikzpicture}

View File

@@ -8,18 +8,18 @@
\path [line] (knead) -- (wait2);
\node [decision, below of=wait2, node distance=4cm] (windowpane_test) {Window-pane?};
\path [line] (wait2) -- (windowpane_test);
\path [line] (windowpane_test.east) -- node{no} ++(1, 0) -- node{} ++(0, 5.7) -| (knead.north);
\path [line] (windowpane_test.east) -- node{No} ++(1, 0) -- node{} ++(0, 5.7) -| (knead.north);
\node [decision] at (windowpane_test -| knead) (more_water) {Bassinage for more water?};
\path [line] (windowpane_test) -- node{yes} (more_water);
\path [line] (windowpane_test) -- node{Yes} (more_water);
\node [block] at (wait1 |- more_water) (add_water) {Add water};
\path [line] (more_water) -- node{yes} (add_water);
\path [line] (more_water) -- node{Yes} (add_water);
\path [line] (add_water.north east) -- (knead.south west);
\node [decision, below of=more_water, node distance=4.5cm] (dough_sample) {Aliquot sample?};
\path [line] (more_water) -- node{no} (dough_sample);
\path [line] (more_water) -- node{No} (dough_sample);
\node [block] at (dough_sample -| wait2) (dough_ball) {Make round dough ball};
\path [line] (dough_sample) -- node{no} (dough_ball);
\path [line] (dough_sample) -- node{No} (dough_ball);
\node [block, below of=dough_sample] (extract_sample) {Extract sample};
\path [line] (dough_sample) -- node{yes} (extract_sample);
\path [line] (dough_sample) -- node{Yes} (extract_sample);
\path [line] (extract_sample.north east) -- (dough_ball.south west);
\node [success, below of=dough_ball] (begin_bulk) {Begin bulk fermentation};
\path [line] (dough_ball) -- (begin_bulk);

View File

@@ -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

View File

@@ -8,10 +8,10 @@
\path [line] (init) -- (feed_new_ratio);
\path [line] (feed_new_ratio) -- node{Wait \qty{24}{\hour}} (ready_signs);
\path [line] (feed_again) -- node[anchor=east] {} ++(2.2,0) |- (feed_new_ratio);
\path [line] (ready_signs) -- node{no} (feed_again);
\path [line] (ready_signs) -- node[above=2pt]{~yes} (last_feed);
\path [line] (ready_signs) -- node{No} (feed_again);
\path [line] (ready_signs) -- node[above=2pt]{~Yes} (last_feed);
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
\draw [thick, ->] ($ (feed_again.north) +(0.7cm, 1cm)$) arc (-45:220:1cm);
\node [anchor=north, text width=5em] at ($(feed_again.north west)+(1.8cm, 2.3cm)$) {Repeat 3~times};
\node [above of=feed_again, text width=5em, align=center, node distance=3cm] (repeat_text) {Repeat 3~times};
\draw [line] ($(repeat_text) +(0, 1 cm)$) arc (90:420:1cm);
\end{tikzpicture}

View File

@@ -7,14 +7,14 @@
\node [success, right of=dent_visible_decision, node distance=4cm] (bake) {Score and bake};
\node [block] at (retard_bake_decision |- poke) (wait_retard) {Wait\\ 15~minutes};
\node [block] at (wait_retard |- bake) (retard) {Proof in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
\path [line] (init) -- node{yes} (poke);
\path [line] (init) -- node{no} (retard_bake_decision);
\path [line] (init) -- node{Yes} (poke);
\path [line] (init) -- node{No} (retard_bake_decision);
\path [line] (poke) -- (dent_visible_decision);
\path [line] (dent_visible_decision) -- node{yes} (bake);
\path [line] (dent_visible_decision.west) -- node{no} ++(-1.4, 0) -- node{} (wait_poke.south);
\path [line] (dent_visible_decision) -- node{Yes} (bake);
\path [line] (dent_visible_decision.west) -- node{No} ++(-1.4, 0) -- node{} (wait_poke.south);
\path [line] (wait_poke) -- (poke);
\path [line] (retard_bake_decision) -- node{yes} (wait_retard);
\path [line] (retard_bake_decision.east) -- node{no} ++(1, 0) |- node{} (retard.east);
\path [line] (retard_bake_decision) -- node{Yes} (wait_retard);
\path [line] (retard_bake_decision.east) -- node{No} ++(1, 0) |- node{} (retard.east);
\path [line] (wait_retard) -- (retard);
\path [line] (retard) -- (bake);
\end{tikzpicture}

View File

@@ -8,8 +8,8 @@
\node [block, right of=flour] (banneton) {Place upside down in banneton};
\node [success, right of=banneton] (proof) {Begin proofing};
\path [line] (init) -- (overfermented_decision);
\path [line] (overfermented_decision) -- node{yes} (overfermented);
\path [line] (overfermented_decision) -- node{no} (shaping_technique);
\path [line] (overfermented_decision) -- node{Yes} (overfermented);
\path [line] (overfermented_decision) -- node{No} (shaping_technique);
\path [line] (shaping_technique) -- (flour);
\path [line] (flour) -- (banneton);
\path [line] (banneton) -- (proof);

View File

@@ -4,8 +4,8 @@
\path [line] (init) -- (all_starter_used);
\node [block, right of=init, node distance=3cm] (use_dough) {Take \qty{10}{\gram} of your bread dough};
\node [block, right of=all_starter_used, node distance=3cm] (use_starter) {Take all but not more than \qty{10}{\gram} of your starter};
\path [line] (all_starter_used) -- node{yes} (use_dough);
\path [line] (all_starter_used) -- node{no} (use_starter);
\path [line] (all_starter_used) -- node{Yes} (use_dough);
\path [line] (all_starter_used) -- node{No} (use_starter);
\node [block, right of=use_dough, node distance=3cm] (feed_starter) {Feed using 1:5:5 ratio};
\path [line] (use_dough) -- (feed_starter);
\path [line] (use_starter) -- (feed_starter);
@@ -13,20 +13,20 @@
\path [line] (feed_starter) -- (bake_next_day_check);
\node [success, right of=bake_next_day_check, node distance=3.5cm]
(make_bread_dough) {Make bread dough again after \qtyrange{8}{12}{\hour}};
\path [line] (bake_next_day_check) -- node{yes} (make_bread_dough);
\path [line] (bake_next_day_check) -- node{Yes} (make_bread_dough);
\node [decision, right of=use_starter, node distance=3cm] (bake_next_week_check) {Baking in next 2 weeks?};
\node [block, right of=bake_next_week_check, node distance=3.5cm] (store_fridge) {Store starter in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
\path [line] (bake_next_week_check) -- node{yes} (store_fridge);
\path [line] (bake_next_week_check) -- node{Yes} (store_fridge);
\node [success, right of=store_fridge, node distance=3cm] (feed_after_fridge) {Feed again using 1:5:5 ratio \qtyrange{8}{12}{\hour} before making dough};
\path [line] (store_fridge) -- (feed_after_fridge);
\path [line] (bake_next_day_check) -- node{no} (bake_next_week_check);
\path [line] (bake_next_day_check) -- node{No} (bake_next_week_check);
\node [decision, below of=use_starter, node distance=3cm] (freezer_check) {Have a freezer?};
\path [line] (bake_next_week_check) -- (store_fridge);
\path [line] (bake_next_week_check) -- node{no} (freezer_check);
\path [line] (bake_next_week_check) -- node{No} (freezer_check);
\node [block, right of=freezer_check, node distance=3cm] (dry_starter) {Dry your starter};
\node [block, below of=dry_starter, node distance=3cm] (freeze_starter) {Freeze your starter};
\path [line] (freezer_check) -- node{no} (dry_starter);
\path [line] (freezer_check) -- node{yes} (freeze_starter);
\path [line] (freezer_check) -- node{No} (dry_starter);
\path [line] (freezer_check) -- node{Yes} (freeze_starter);
\node [success, right of=dry_starter, node distance=3.5cm] (reactivate_freezer) {Reactivate starter for 3 days with daily 1:5:5 feedings};
\path [line] (dry_starter) -- (reactivate_freezer);
\path [line] (freeze_starter) -- (reactivate_freezer);

View File

@@ -1,19 +1,22 @@
\begin{tikzpicture}[node distance = 3.5cm, auto]
\node [start] (init) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
\node [block, right of=init] (wait2) {Wait\\ \qty{24}{\hour}};
\path [line] (init) -- (wait2);
\node [block, below of=wait2, node distance=3.5cm] (feed) {\qty{10}{\gram} of previous day + \qty{50}{\gram} water + \qty{50}{\gram} flour, stir};
\path [line] (wait2) -- (feed);
\node [block, below of=feed] (discard) {Discard the rest};
\path [line] (feed) -- (discard);
\node [decision, right of=feed, node distance=3.5cm] (decide) {Is good?};
\node [decision, above of=decide, node distance=3.5cm] (timeout) {Less than 10 feeds?};
\node [fail, right of=timeout, node distance=3.5cm] (discard2) {Batch failed};
\path [line] (timeout) -- node{no} (discard2);
\path [line] (timeout) -- node{yes} (wait2);
\path [line] (feed) -- (decide);
\node [success, right of=decide, node distance=3.5cm] (use) {Ready to use};
\path [line] (decide) -- node{no} (timeout);
\path [line] (wait2) -- (feed);
\path [line] (decide) -- node{yes} (use);
\node [start] (start_n) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
\node [block, right of=start_n, node distance = 3.5cm] (wait_n) {Wait\\ \qty{24}{\hour}};
\node [decision, right of=wait_n, node distance = 3.5cm] (readycheck_n) {Ready?};
\node [block, below of=wait_n, node distance = 3.2cm] (feed_n) {Feed the mixture };
\node [decision, right of=feed_n, node distance = 3.5cm] (limitcheck_n) {>10 feeds?};
\node [fail, right of=limitcheck_n, node distance = 3.5cm] (abort_n) {Discard all. Start over};
\node [success, right of=readycheck_n, node distance = 3.5cm] (final_n) {Ready to use};
\draw [line] (start_n) -- (wait_n);
\draw [line] (wait_n) -- (readycheck_n);
\draw [line] (feed_n) -- (wait_n);
\draw [line] (readycheck_n) -- node {No} (limitcheck_n);
\draw [line] (limitcheck_n) -- node (feedok_n) {No} (feed_n) ;
\draw [line] (limitcheck_n) -- node {Yes} (abort_n);
\draw [line] (readycheck_n) -- node {Yes} (final_n);
\node [below of=feedok_n, node distance=2cm, align=left] (details2) [shape=rectangle, draw, fill=maingray]{%
\textbf{Ready}: Mixture has \emph{grown}, has \emph{bubbles}, and \emph{smells} vinegary/yoghurty. \\
\textbf{Feed the mixture}: Discard all but \qty{10}{\gram}, mix in \qty{50}{\gram} flour and \qty{50}{\gram} water.
};
\end{tikzpicture}

View File

@@ -1,5 +1,5 @@
\begin{tikzpicture}[node distance = 3cm, auto]
\node [start] (init) {Make a starter};
\node [start] (init) {Create a starter};
\node [decision, right of=init, node distance=3.5cm] (decision_start) {Starter last fed within 3~days?};
\node [block, right of=decision_start, text width=7em, node distance=4cm] (feed_no_branch)
{Feed starter twice:\par \qty{48}{\hour} before\par \qtyrange{6}{12}{\hour} before};
@@ -23,16 +23,16 @@
{Prepare dough};
\path [line] (init) -- (decision_start);
\path [line] (decision_start) -- node{no} (feed_no_branch);
\path [line] (decision_start) -- node[below=2pt]{yes} (feed_yes_branch.north west);
\path [line] (decision_start) -- node{No} (feed_no_branch);
\path [line] (decision_start) -- node[below=2pt]{Yes} (feed_yes_branch.north west);
\path [line] (feed_yes_branch) -- (low_ratio);
\path [line] (feed_no_branch) -- (high_ratio);
\path [line] (high_ratio) -- node[anchor=east, above=2pt] {} ++(2.2,0) |-(size_check);
\path [line] (low_ratio) -- (size_check);
\path [line] (size_check) -- node{no} (feed_yes_branch.south east);
\path [line] (size_check) -- node{yes} (smell_check);
\path [line] (smell_check) -- node{no} (feed_yes_branch.south west);
\path [line] (smell_check) -- node{yes} (make_dough);
\path [line] (size_check) -- node{No} (feed_yes_branch.south east);
\path [line] (size_check) -- node{Yes} (smell_check);
\path [line] (smell_check) -- node{No} (feed_yes_branch.south west);
\path [line] (smell_check) -- node{Yes} (make_dough);
% braces
\draw[BC] (size_check.south) --

View File

@@ -11,14 +11,15 @@
\path [line] (init) -- (feed_new_ratio);
\path [line] (feed_again) -- (feed_new_ratio);
\path [line] (next_day) -- (ready_signs);
\path [line] (ready_signs) -- node{no} (feed_again |- last_feed) |- (feed_again.south);
\path [line] (ready_signs) -- node{yes} (last_feed);
\path [line] (ready_signs) -- node{No} (feed_again |- last_feed) -| (feed_again.south);
\path [line] (ready_signs) -- node{Yes} (last_feed);
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
\path [line] (feed_new_ratio) -- (too_dry);
\path [line] (add_water.north) -- node{} ++(0, 1.3) -| (too_dry.north);
\path [line] (too_dry) -- node{no} (next_day);
\path [line] (too_dry) -- node{yes} (add_water);
\path [line] (ready_signs) -- node{yes} (last_feed);
\draw [thick, <-] ($ (feed_again.east) +(2.1cm, 0.7cm)$) arc (-45:220:1cm);
\node [anchor=north, text width=5em] at ($(feed_again.east)+(2cm, 2cm)$) {Repeat 3~times};
\path [line] (too_dry) -- node{No} (next_day);
\path [line] (too_dry) -- node{Yes} (add_water);
\path [line] (ready_signs) -- node{Yes} (last_feed);
\node [text width=5em, align=center] (repeat_text) at ($(feed_new_ratio)!0.5!(next_day)$) {Repeat 3~times};
\draw [line] ($(repeat_text) +(0, 1 cm)$) arc (90:-210:1cm);
\end{tikzpicture}

View File

@@ -13,8 +13,8 @@
\path [line] (mix_ingredients) -- (dough_strength);
\path [line] (dough_strength) -- (bulk);
\path [line] (bulk) -- (divide_test);
\path [line] (divide_test) -- node{yes} (shape);
\path [line] (divide_test) -- node{no} (divide);
\path [line] (divide_test) -- node{Yes} (shape);
\path [line] (divide_test) -- node{No} (divide);
\path [line] (divide) -- (preshape);
\path [line] (preshape) -- (shape);
\path [line] (shape) -- (proof);

View File

@@ -1,5 +1,5 @@
\tikzstyle{every picture}+=[font=\footnotesize\sffamily]
\usetikzlibrary{calc, shapes, arrows, decorations.pathreplacing, calligraphy,
\usetikzlibrary{calc, shapes, arrows.meta, decorations.pathreplacing, calligraphy,
positioning}
\tikzstyle{decision} = [diamond, draw=codeblack, fill=codeblack, text=white,
text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt,
@@ -19,7 +19,8 @@
\tikzstyle{fail} = [rectangle, draw=codeblack, fill=redpic, text=black,
text width=5em, text centered, rounded corners, minimum height=4em,
line width=0.4mm]
\tikzstyle{line} = [draw, -latex', thick, ->,>=to]
% The arrowed connector line between nodes
\tikzstyle{line} = [draw, thick, ->, >={Latex}]
\tikzstyle{BC} = [decorate, % Brace Calligraphic
decoration={calligraphic brace, amplitude=3mm, raise=1mm},
@@ -30,3 +31,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}

View File

@@ -1,6 +1,9 @@
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{chemfig}
\usepackage[mode=match, reset-text-family=false]{siunitx}
\DeclareSIUnit\degF{\text{°}F}
\input{flowcharts_tikz.tex}
\input{../colors.tex}
\input{../abbreviations.tex}

View File

@@ -17,12 +17,11 @@ Depending on which layers are still present, different names are used to describ
type of flour.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-flour-types.tex}
\caption[Labelling of wheat flour]{A comparison of how different types
of wheat flour are labelled in different countries.}%
\caption[Labeling of wheat flour]{A comparison of how different types
of wheat flour are labeled in different countries.}%
\label{tab:flour-types-comparison}
\end{center}
\end{table}
In Germany, the ash content is used to describe the flours. The lab will burn
@@ -60,11 +59,10 @@ want the final bread to be too sour. Conversely you do not have to worry about
the gluten degradation, removing a huge headache from the equation.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-grains-bread-making-process.tex}
\caption[Different types of grain]{An overview of different grain
types and the steps involved in the respective bread making process.}
\end{center}
\end{table}
Because gluten has a special role, the rest of this chapter is dedicated to having a
@@ -115,13 +113,12 @@ The long fermentation period also means that your microbes will enrich
your dough with more flavor.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-overview-w-values.tex}
\caption[Fermentation time versus W-value]{An overview of different
levels of W-values and the respective hydrations and fermentation
levels of W-values and the respective hydration and fermentation
times.}%
\label{tab:w-value}
\end{center}
\end{table}
Generally, when aiming to

View File

@@ -140,24 +140,26 @@ a higher amount of gluten and can thus ferment for a longer period of time.
then cooled and mixed with the main dough. This process helps in moisture retention
and can enhance the flavor and texture of the final bread. Also see \emph{scald}.
\item[Bulk Fermentation] The initial rising period after mixing all the ingredients.
The dough is typically allowed to rise until it increases to a certain volume. The
volume of increase depends on the flour that is used. When baking with wheat flour
the gluten amount of the flour is the deciding factor. The more gluten your flour has
(protein) the longer you can bulk ferment. A longer bulk fermentation improves the
flavor and texture of the final bread. It becomes tangier and fluffier. You can aim
for a \SI{25}{\percent} size increase of your dough and then slowly increase this to find your
flours sweet spot. This is highly dependant from flour to flour. When using low gluten
flour like rye you need to be careful as the longer fermentation can create a too
sticky dough which collapses and does not hold its shape anymore.
\item[Bulk Fermentation] The initial rising period after mixing all the
ingredients. The dough is typically allowed to rise until it increases to
a certain volume. The volume of increase depends on the flour that is
used. When baking with wheat flour the gluten amount of the flour is the
deciding factor. The more gluten your flour has (protein) the longer you
can bulk ferment. A longer bulk fermentation improves the flavor and
texture of the final bread. It becomes tangier and fluffier. You can aim
for a \SI{25}{\percent} size increase of your dough and then slowly
increase this to find your flour's sweet spot. This is highly dependent
from flour to flour. When using low gluten flour like rye you need to be
careful as the longer fermentation can create a too sticky dough which
collapses and does not hold its shape anymore.
\item[Cake Flour] Cake flour is a light, finely milled flour with a lower protein
content than all-purpose flour. It's ideal for tender baked goods like cakes, cookies,
and pastries.
\item[Cake Flour] Cake flour is a light, finely milled flour with a lower
protein content than all-purpose flour. It's ideal for tender baked goods
like cakes, cookies, 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 +287,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.
@@ -367,11 +369,12 @@ grains or malted grains can have higher protease activity due to the sprouting o
malting process. Understanding and controlling protease activity is crucial in
achieving desired bread quality and handling characteristics.
\item[Pullman Loaf] A type of bread loaf characterized by its perfectly rectangular
shape and soft, fine crumb. It is baked in a special lidded pan called a Pullman pan
or pain de mie pan. The lid ensures that the bread rises in a perfectly straight
shape, without the domed top characteristic of other bread loaves. Pullman loaves are
often sliced very thin and are popular for making sandwiches.
\item[Pullman Loaf] A type of bread loaf characterized by its perfectly
rectangular shape and soft, fine crumb. It is baked in a special lidded
pan called a Pullman pan or \emph{pain de mie} pan. The lid ensures that
the bread rises in a perfectly straight shape, without the domed top
characteristic of other bread loaves. Pullman loaves are often sliced very
thin and are popular for making sandwiches.
\item[Retarding] The process of slowing down fermentation during the proofing
stage by placing the dough in a colder environment, typically a refrigerator. This aids
@@ -404,7 +407,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.

View File

@@ -26,7 +26,7 @@ waters, another single-celled life form, \emph{archaea}, also thrived. These
organisms inhabit extreme environments, from boiling vents to icy waters.
\begin{figure}[!htb]
\begin{center}
\centering
\input{figures/fig-life-planet-sourdough-timeline.tex}
\caption[Sourdough microbiology timeline]{Timeline of significant events
starting from the first day of Earth's existence,
@@ -34,12 +34,11 @@ organisms inhabit extreme environments, from boiling vents to icy waters.
marked at midnight. This visualization shows the pivotal steps
of life and sourdough on earth.}%
\label{fig:planet-timeline}
\end{center}
\end{figure}
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.
@@ -58,24 +57,23 @@ Another 25~million years later, or our timeline's 2~days after the dinosaur
extinction, humans appeared.
A few hours later after the arrival of humans, a more subtle culinary
revolution was unfolding. By \num{12000}~BC, just 5 seconds before our metaphorical
midnight, the first sourdough breads were being baked in ancient Jordan. A blink of
an eye later, or 4~seconds in our time compression, Pasteur's groundbreaking work
with yeasts set the stage for modern bread-making. From the moment this book
began to take shape to your current reading, only milliseconds have ticked
by~\cite{Yong+2017}.
revolution was unfolding. By \num{12000}~BC, just 5~seconds before our
metaphorical midnight, the first sourdough breads were being baked in ancient
Jordan. A blink of an eye later, or 4~seconds in our time compression,
Pasteur's groundbreaking work with yeasts set the stage for modern
bread-making. From the moment this book began to take shape to your current
reading, only milliseconds have ticked by~\cite{Yong+2017}.
Now delving deeper into the realm of sourdough, it can likely be traced to aforementioned
Ancient Jordan~\cite{jordan+bread}. Looking at the earth's timeline sourdough
bread can be considered a very recent invention.
\begin{figure}[!htb]
\begin{center}
\centering
\input{figures/fig-sourdough-history-timeline.tex}
\caption[Sourdough history timeline]{Timeline of significant discoveries and
events leading to modern sourdough bread.}%
\label{fig:sourdough-timeline}
\end{center}
\end{figure}
The exact origins of fermented
@@ -83,10 +81,11 @@ bread are, however, unknown. One of the most ancient preserved
sourdough breads has been excavated in Switzerland~\cite{switzerland+bread}.
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{einkorn-crumb}
\caption[Ancient Einkorn flatbread]{An ancient Einkorn flatbread. Note the
dense crumb structure.}%
\label{einkorn-crumb}
\label{fig:einkorn-crumb}
\end{figure}
Another popular story is that a lady in Egypt was making
@@ -187,45 +186,43 @@ of the sourdough leavening agent. As the process is more expensive,
bread rolls like these were ultimately consumed by the noble people
in Vienna~\cite{vienna+breadrolls}.
As industrialisation began the first steam-powered grain mill was developed by
Oliver Evans in \num{1785}. Evans' design incorporated several innovations,
including automated machinery for various milling processes, making it more
efficient than traditional water or animal-powered mills. His steam-powered
mill marked a significant advancement in industrial technology for bread
making~\cite{evans+mill}.
Industrialization of the grist milling process, starting in the late
18\textsuperscript{th}~century with Oliver Evans (\num{1785}) and his mill
designs for continuous hands-off flour production~\cite{evans+mill}, and
evolving to steam-powered mills, made possible significant advancements in
bread production.
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{sourdough-stove}
\caption{A bread made over the stove without an oven.}%
\label{sourdough-stove}
\label{fig:sourdough-stove}
\end{figure}
The biggest advancement of industrial breadmaking happened in \num{1857}.
The French microbiologist Louis Pasteur discovered
the process of alcoholic fermentation. He would prove that
yeast microorganisms are the reason for alcoholic fermentation
and not other chemical catalysts. He continued with his research and
was the first person to isolate and grow pure yeast strains.
Soon later in \num{1868} in the Fleischmann brothers Charles
and Maximilian were the first to patent pure yeast strains
for bread making. The yeasts offered
The biggest advancement of industrial bread making happened in \num{1857}.
The French microbiologist Louis Pasteur discovered the process of alcoholic
fermentation. He would prove that yeast microorganisms are the reason for
alcoholic fermentation and not other chemical catalysts. He continued with his
research and was the first person to isolate and grow pure yeast strains.
Soon later in \num{1868} the Fleischmann brothers Charles and Maximilian were
the first to patent pure yeast strains for bread making. The yeasts offered
were isolated from batches of sourdough. By \num{1879} the machinery was built
to multiply the yeast in large centrifuges~\cite{fleischmann+history}.
The pure yeast would prove to be excellent and turbocharged
at leavening bread doughs. What would previously take 10~hours
to leaven a bread dough could now be done within 1~hour.
The process became much more efficient. What ultimately made making large
batches of dough possible, was the invention of the electrical kneader. Rufus
Eastman, an American inventor, is often credited with an important advancement
in mixer technology. In \num{1885}, he received a patent for an electric mixer
with a mechanical hand-crank mechanism. This device was not as advanced or as
widely adopted as later electric mixers, but it was an early attempt to
mechanize mixing and kneading processes in the kitchen using electricity.
Eastman's invention represented an important step in the development of
electric mixers, but it wasn't as sophisticated or popular as later models
like the KitchenAid mixer. The KitchenAid mixer, introduced in \num{1919}, is
often recognized as one of the first widely successful electric mixers and
played a significant role in revolutionizing kitchen appliances for home
to multiply the yeast in large centrifuges~\cite{fleischmann+history}. The
pure yeast would prove to be excellent and turbocharged at leavening bread
doughs. What would previously take 10~hours to leaven a bread dough could now
be done within 1~hour. The process became much more efficient. What
ultimately made making large batches of dough possible, was the invention of
the electrical kneader. Rufus Eastman, an American inventor, is often
credited with an important advancement in mixer technology. In \num{1885}, he
received a patent for an electric mixer with a mechanical hand-crank
mechanism. This device was not as advanced or as widely adopted as later
electric mixers, but it was an early attempt to mechanize mixing and kneading
processes in the kitchen using electricity. Eastman's invention represented
an important step in the development of electric mixers, but it wasn't as
sophisticated or popular as later models like the KitchenAid mixer. The
KitchenAid mixer, introduced in \num{1919}, is often recognized as one of the
first widely successful electric mixers and played a significant role in
revolutionizing kitchen appliances for home
cooks~\cite{first+mixer}~\cite{kitchenaid+history}.
During World~War~II the first packaged dry yeast was developed. This would
@@ -239,8 +236,8 @@ reason, none of the supermarket flour you buy today is single origin. It is
always blended to achieve exactly the same product throughout the years.
Modern wheat, specifically the high-yielding and disease-resistant varieties
commonly grown today, began to be developed in the mid-20th century. This
period is often referred to as the \emph{Green Revolution.}
commonly grown today, began to be developed in the mid-20\textsuperscript{th}
century. This period is often referred to as the \emph{Green Revolution.}
One of the key figures in this development was American scientist Norman
Borlaug, who is credited with breeding high-yield wheat varieties,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

View File

@@ -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

View File

@@ -81,22 +81,24 @@ 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
to do my own deep dive to understand what was going on. Much to my surprise, however,
none of the recipes I'd encountered would tell me \emph{why} I~should use amount X
of water and amount Y of flour, or \emph{why} exactly I~should use fresh yeast over dry yeast. Why
should I~slap my dough while kneading it on the counter? Why is a standmixer
better than kneading by hand? Why should I~let the dough sit for this long?
Why is steaming the dough during baking important? Do I~really need to
get myself an expensive Dutch oven to bake bread?
The problem compounded when I~started reading about sourdough. It all sounded like black
magic. Why were some sourdoughs made from fruits, while others were made from flour?
Why should one recipe use wheat while another used rye or spelt? How often should the
sourdough be fed? The questions I~had then could have filled 20~pages. I~was confused,
but I~became even more determined to learn how decent bread should be made at home.
Being unhappy with what I~was baking, my engineering mindset took over, and
I~had to do my own deep dive to understand what was going on. Much to my
surprise, however, none of the recipes I'd encountered would tell me
\emph{why} I~should use amount $X$ of water and amount $Y$ of flour, or
\emph{why} exactly I~should use fresh yeast over dry yeast. Why should I~slap
my dough while kneading it on the counter? Why is a stand mixer better than
kneading by hand? Why should I~let the dough sit for this long? Why is
steaming the dough during baking important? Do I~really need to get myself an
expensive Dutch oven to bake bread? The problem compounded when I~started
reading about sourdough. It all sounded like black magic. Why were some
sourdoughs made from fruits, while others were made from flour? Why should
one recipe use wheat while another used rye or spelt? How often should the
sourdough be fed? The questions I~had then could have filled 20~pages. I~was
confused, but I~became even more determined to learn how decent bread should
be made at home.
The feedback I~received from friends helped me to improve with each
iteration of homemade bread. Compared to coding, where you sometimes have to wait months

View File

@@ -1,15 +1,18 @@
# Macros for commands
# 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 -uf html5+tidy+common_domfilters -B website_build
CLEAN := latexmk -cd -lualatex -c -use-make
CHECK_1 := lacheck
CHECK_2 := chktex
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'
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
-set colorspace Gray -separate -evaluate-sequence Mean
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
# We want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -21,21 +24,35 @@ LATEX += -diagnostics
EBOOK += -a debug
WEBSITE += -a debug
endif
# }}}
website_dir := static_website_html
# Default target is not all because most of the time we just want a pdf...
# and building everything take a long time.
.DEFAULT_GOAL := serif
# List all files that are dependencies
# Dependencies {{{
chapters = baking basics bread-types cover flour-types history intro mix-ins\
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
wheat-sourdough glossary
src_tables := $(wildcard tables/table-*.tex)
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
# Actual book text and LaTeX code {{{
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 += supporters.csv sourdough.sty colors.tex abbreviations.tex
src_tex += $(src_recipes)
# }}}
# Tables and TikZ flowcharts/plots/drawings... {{{
src_tables := $(wildcard tables/table-*.tex)
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
src_figures += $(wildcard plots/fig-*.tex) abbreviations.tex colors.tex
src_recipes := $(wildcard recipes/*.tex)
src_plots := $(wildcard plots/*.table)
# }}}
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
# Photos {{{
images := $(wildcard images/*/*.jpg)
images += $(wildcard images/*.jpg)
images += $(wildcard images/*.png)
@@ -49,55 +66,69 @@ 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 resolution colour ebook (see below) we will 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))
# }}}
# All together.
src_all := $(src_tex) $(src_figures) $(src_tables) $(images) $(src_plots)
# Format specific configuration files
ebook_src := $(src_all) tex4ebook.cfg book.mk4 book-ebook.css
website_src := $(src_all) website.cfg style.css
website_dir := static_website_html
website_assets := $(wildcard ../website/assets/*)
ruby_src := ../website/modify_build.rb $(website_assets)
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
# Default target is not all because most of the time we just want a pdf...
# and ebook take a long time to build.
.DEFAULT_GOAL := build_serif_pdf
# Default rules for pdf and ebooks, getting overwritten when built in a
# sub-directory
%.pdf: %.tex
$(LATEX) $<
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
# }}}
# Internal build rules {{{
# Flowcharts {{{
# TODO: check if it works on github CI
%.png: %.tex
@echo "\input{./vars.tex}" > $@.in
# \b is backspace..
@echo "\\\begin{document}" >> $@.in
@printf '%s\n' "\input{./vars.tex}" > $@.in
@printf '%s\n' "\begin{document}" >> $@.in
@cat $< >> $@.in
@echo "\\\end{document}" >> $@.in
@printf '%s\n' "\end{document}" >> $@.in
$(LATEX) $@.in
figures/export_figures.sh $@.pdf
%.xbb: %.jpg
ebb -x $<
# }}}
# Pdf {{{
# Default rules for pdf, getting overwritten when built in a sub-directory
%.pdf: %.tex
$(LATEX) $<
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
# Ebook {{{
###################################
.PHONY: copy_ebook_files copy_ebook_files_low_res
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
$(EBOOK) $<
copy_ebook_files: build_ebook
$(RSYNC) book-epub/ bw-book-epub/
copy_ebook_files: ebook
$(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
# Now that we have built the ebook we will generate 2 more versions
#
# 1) With kindle app on phone we want a colour version with size < 50 MB
# 2) A black-white version for actual eink readers
#
# In both cases we just convert images and repack the ebpub
# 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 $@)
@@ -111,152 +142,21 @@ 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 ./
# Now with the rules
# Expected usual rules first
.PHONY: all
all: bake
# Now the low res
copy_ebook_files_low_res: ebook
$(RSYNC) epub_build/book-epub/ low-res-book-epub/
.PHONY: help
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 ""
@echo "bake: same as build all"
@echo ""
@echo "check: runs static analysis checker on LaTeX source to spot"
@echo " programming or typographic mistakes"
@echo ""
@echo "clean: delete all intermediate files keep targets (pdf/ebooks/website)"
@echo ""
@echo "mrproper: delete all generated files intermediate and 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 ""
@echo "quick_ebook: compiles ebook but runs lulatex only once"
@echo ""
@echo "show_tools_version: Show version of tools used on the build machine"
@echo ""
@echo "print-X: print makefile variable X"
@echo ""
@echo "printvars: print all variables in the makefile"
@echo ""
@echo "set DEBUG i.e make DEBUG=1 build_ebook to add debug flags to commands"
low-res-book-epub/OEBPS/%.jpg: %.jpg
mkdir -p $(dir $@)
$(CONVERT_PIC) $< $(REDUCE_PIC_COLOR) $@
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 ./
# }}}
# Finally actual project targets (i.e. build pdf and ebooks)
.PHONY: build_pdf build_serif_pdf build_sans_serif_pdf build_ebook
build_pdf: build_serif_pdf build_sans_serif_pdf
build_serif_pdf: book_serif/book.pdf
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf
build_ebook: epub/book.epub
build_bw_ebook: epub/bw_book.epub
.PHONY: export_figures 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)
@echo "Running: " $(CHECK_1)
$(CHECK_1) book.tex
@echo ""
@echo "Running: " $(CHECK_2)
$(CHECK_2) book.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_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
clean_website_build: clean_ebook_build
-rm book-*.svg
-rm book.{loc,dlog}
-rm $(subst $(website_dir)/,, $(wildcard $(website_dir)/*.html))
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
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
-rm figures/*.png
-rm *.html
-rm *.svg
-rm -rf epub/
-rm -rf release/
-rm -rf book_serif/
-rm -rf book_sans_serif/
-rm -rf *book-epub/
-rm -rf $(website_dir)
# top level releases rules
.PHONY: bake release_serif release_sans_serif
bake: release_serif release_sans_serif
release:
mkdir -p release
release_serif: build_serif_pdf build_ebook build_bw_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
release_sans_serif: build_sans_serif_pdf | release
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
# Website stuff
# Website {{{
###################################
.PHONY: html website
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb
$(WEBSITE) -d $(website_dir) book.tex
@@ -267,63 +167,258 @@ 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/$@
# TODO: this will run every single time, but is so fast we don't really care
website: html ../website/_bundle_install_done $(ruby_src)
cd ../website && ruby modify_build.rb
#}}}
# Figures only {{{
###################################
.PHONY: export_figures
# Requires that you have docker running on your computer.
export_figures: pdf $(tgt_figures)
cd figures/ && bash export_figures.sh
# }}}
# }}}
# User level targets {{{
# Build targets {{{
.PHONY: all
all: bake
# Finally actual project targets (i.e. build pdf and ebooks)
.PHONY: pdf serif sans_serif ebook
pdf: serif sans_serif
serif: book_serif/book.pdf
sans_serif: book_sans_serif/book_sans_serif.pdf
ebook: epub/book.epub
bw_ebook: epub/bw_book.epub
low_res_ebook: epub/low_res_book.epub
# }}}
# Old target names are disabled with helpful help message {{{
build_pdf:
@echo "build_pdf target is not supported anymore, please use make pdf"
@exit
build_serif_pdf:
@echo "build_serif_pdf target is not supported anymore, please use make serif"
@exit
build_sans_serif_pdf:
@echo "build_sans_serif_pdf target is not supported anymore, please use make sans_serif"
@exit
build_ebook:
@echo "build_ebook target is not supported anymore, please use make ebook"
@exit
build_bw_ebook:
@echo "build_bw_ebook target is not supported anymore, please use make bw_ebook"
@exit
build_low_res_ebook:
@echo "build_low_res_ebook target is not supported anymore, please use make low_res_ebook"
@exit
# }}}
# Top level releases rules {{{
.PHONY: bake release_serif release_sans_serif
bake: release_serif release_sans_serif website
release:
mkdir -p release
release_serif: serif ebook bw_ebook low_res_ebook | release
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
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
# Kindle does not allow files larger than 50 MB... so let's check
@if [ `du -sb epub/low_res_book.epub | cut -f1` -gt 49500000 ]; then \
echo "ERROR: epub File too big"; \
exit 1; \
fi
release_sans_serif: sans_serif | release
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
# }}}
# Clean up {{{
###################################
# 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_ebook_build:
-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.css,content.opf} epub_build/book-epub/mimetype
-rm epub_build/book*x.svg
-rm -rf epub_build/book-epub/META-INF epub_build/book-epub/OEBPS
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}
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
-rm figures/*.png
-rm -rf release/
-rm -rf book_serif/ book_sans_serif/
-rm -rf epub/ epub_build/ bw-book-epub/ low-res-book-epub/
-rm -rf website_build/ $(website_dir)
# }}}
# Help {{{
###################################
.PHONY: help
help:
@echo ""
@echo "default: builds the book in pdf format (serif)"
@echo ""
@echo "Releases:"
@echo " all: pdf serif and sans-serif accessible version, ebooks in colours"
@echo " and black&white versions as well as the website"
@echo ""
@echo " bake: same as build all"
@echo ""
@echo " release_serif: build serif only version of pdf and ebook"
@echo " release_sans_serif: build sans-serif/accessible version of pdf"
@echo ""
@echo "Portable Document Format (pdf):"
@echo " sans_serif: build accessible pdf only (same as release_sans_serif)"
@echo " serif: build serif pdf only"
@echo " pdf: builds both serif and accessible pdf"
@echo ""
@echo "Ebooks (epub):"
@echo " ebook: builds only the colour ebook"
@echo " low_res_ebook: builds the colour ebook in lower resolution"
@echo " 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 "Debug targets:"
@echo ""
@echo "figures: build TikZ figures only"
@echo ""
@echo "Quick builds:"
@echo " quick: compiles serif_pdf but runs lulatex only once"
@echo " quick_ebook: compiles ebook but runs lulatex only once"
@echo ""
@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 "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 ebook to add debug flags to commands"
# }}}
# }}}
# Debug Stuff {{{
###################################
# Verify your spelling and TeX warnings {{{
.PHONY: check tex-check spell-check
# 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: 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
# Should be 0 if not and you are really sure update the exception file
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)
#}}}
# Debug Stuff from now on
.PHONY: quick quick_ebook show_tools_version printvars
# Those 2 targets allow fast debug cycles but not resolving references etc
# They also ignore dependencies and run each time you call them.
quick: # run latex only once no biber, no references etc...
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_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
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
show_tools_version: # Show version of tools used on the build machine {{{
-$(GIT) log -5 --pretty="%h: %s by %an on %as"
@echo ""
- uname -a
-uname -a
@echo ""
- $(SHELL) --version
-$(SHELL) --version
@echo ""
- latexmk --version
-@echo "PATH:"
-@echo $(PATH) | tr ':' '\n'
@echo ""
- lualatex --version
-latexmk --version
@echo ""
- tex4ebook --version
-lualatex --version
@echo ""
- make4ht --version
-tex4ebook --version
@echo ""
- tidy -version
-make4ht --version
@echo ""
- dvisvgm --version
-tidy -version
@echo ""
- lacheck --version
-dvisvgm --version
@echo ""
- chktex --version
-lacheck | head -5 | tail -1
@echo ""
- make --version
-chktex --version
@echo ""
- biber -version
-make --version
@echo ""
- ruby --version
-biber -version
@echo ""
- $(CONVERT_PIC) --version
-ruby --version
@echo ""
- rsync --version
-$(CONVERT_PIC) --version
@echo ""
-rsync --version
# }}}
# You can find the value of variable X with the following command:
# make print-X
print-%: ; @echo $* = $($*) # Print a makefile variable
print-%: ; @echo $* = $($*) # Print a makefile variable
printvars: # Print all variables in the makefile
printvars: # Print all variables in the makefile
@$(foreach V,$(sort $(.VARIABLES)), \
$(if $(filter-out environ% default automatic, \
$(origin $V)),$(info $V=$($V) ($(value $V)))))
# }}}

View File

@@ -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,12 +24,13 @@ 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
some of the water. When adding puré to the dough only slowly add
additional water as the puré slowly releases additional water to the
dough.}%
\caption[Pumpkin purée]{A popular method is to substitute part of the
dough's water with another liquid, such as puréed pumpkin. When
incorporating the purée, add any extra water gradually, as the purée
will release its own liquid into the dough over time.}%
\label{fig:pumpkin-on-flour}
\end{figure}
One approach to categorizing the mixins is to look at their respective shape.
@@ -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}
@@ -132,18 +139,18 @@ affecting taste and texture.
\item Cereal milk (the leftover milk from eating cereals)
\item Coffee
\item Eggs
\item Fruit/vegetable juices (also see Section~\ref{section:colors})
\item Fruit/vegetable juices (also see Section~\ref{sec: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}
\label{section:colors}
\subsection{Colors}%
\label{sec: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
@@ -297,9 +333,10 @@ banneton or loaf pan with seeds or oats. When using a loaf pan or banneton
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).
dough in water. Afterward, dip the wet piece of dough into your bowl of
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.}.

238
book/nameref.4ht Normal file
View File

@@ -0,0 +1,238 @@
% nameref.4ht (2024-06-15-13:36), generated from tex4ht-4ht.tex
% Copyright 2005-2009 Eitan M. Gurari
% Copyright 2009-2024 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2024-06-15-13:36}
\let\NR:Type\relax
\let\ltx@label\label
\def\prf:label{{\ifx \NR:Title\:UnDef \a:newlabel{\@currentlabelname}\else \NR:Title\fi}%
{\ifx \NR:Type\relax \else \NR:Type .1\fi}{}}%
\append:defI\label{\let\NR:Title\undefined}
\let\NR:StartSec\:StartSec
\let\NR:no@sect\no@sect
\def\no@sect#1#2#3#4#5#6[#7]#8{\gdef\NR:Title{\a:newlabel{#7}}%
\gdef\NR:Type{#1}%
\NR:no@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}}
\def\:StartSec#1#2#3{%
\gdef\NR:Title{\a:newlabel{#3}}%
\gdef\NR:Type{#1}%
\NR:StartSec{#1}{#2}{#3}%
}
\def\:tempc#1#2#3#4#5#6[#7]#8{%
\gdef\NR:Title{\a:newlabel{#7}}%
\gdef\NR:Type{#1}%
\o:NR@sect:{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}}
\HLet\NR@sect\:tempc
\def\:tempc#1#2#3#4#5{%
\gdef\NR:Title{\a:newlabel\ssect:ttl}%
\gdef\NR:Type{#1}%
\o:NR@ssect:{#1}{#2}{#3}{#4}{#5}%
}
\HLet\NR@ssect\:tempc
\def\:tempc[#1]#2{%
\gdef\NR:Title{\a:newlabel{#1}}%
\gdef\NR:Type{part}%
\o:no@part:[{#1}]{#2}}
% this definition clashes with asmart and amsproc classes, so we
% need to skip if these are active
\@ifundefined{opt@amsart.cls}{%
\@ifundefined{opt@amsproc.cls}{%
\HLet\no@part\:tempc
}{}}{}
\def\:tempc#1{%
\gdef\NR:Title{\a:newlabel{#1}}%
\gdef\NR:Type{part}%
\o:no@spart:{#1}}
\HLet\no@spart\:tempc
\def\:tempc[#1]#2{%
\gdef\NR:Title{\a:newlabel{#1}}%
\gdef\NR:Type{chapter}%
\o:NR@chapter:[{#1}]{#2}}
\HLet\NR@chapter\:tempc
\def\:tempc#1{%
\gdef\NR:Title{\a:newlabel\sch:ttl}%
\o:NR@schapter:{#1}%
\gdef\NR:Type{chapter}%
}
\HLet\NR@schapter\:tempc
\let\o:NR@@caption\@caption
\ifdefined\scr@makechapterhead
% fixes for Komascript
\def\:tempa[#1]#2{%
\gdef\NR:Title{\a:newlabel{#1}}%
\gdef\NR:Type{chapter}%
\o:@chapter:[#1]{#2}%
}
\HLet\@chapter\:tempa
\def\:tempa#1{%
\gdef\NR:Title{\a:newlabel{#1}}%
\gdef\NR:Type{chapter}%
\o:@schapter:{#1}%
}
\HLet\@schapter\:tempa
\fi
%
%
% Keith Andrews <kandrews@iicm.edu> reported that \@captype as
% \NR:Type threw an undefined control sequence error. I think
% \@currenvir is safe, there is nothing special about \@captype.
%
% use of \index and \label inside caption results in a fatal error
% we need to disable them in \NR:Title
% there can be more problematic commands, so we provide a configuration
% that can be used multiple times - the default value fixes known commands
% but a user can add more of them
\def\a:captioncommandsfix{}
\NewConfigure{CaptionCommandsFix}[1]{\concat:config\a:captioncommandsfix{#1}}
\Configure{CaptionCommandsFix}{
\let\index\:gobble%
\let\label\:gobble%
\let\\\relax% causes issues when \centering is active
}
\long\def\@caption#1[#2]{%
\gdef\NR:Type{\@currenvir}%
\begingroup%
\a:captioncommandsfix
\protected@xdef\NR:Title{\a:newlabel{#2}}%
\endgroup%
\o:NR@@caption{#1}[{#2}]%
}
\let\o:NRorg@opargbegintheorem\@opargbegintheorem
\def\@opargbegintheorem#1#2#3{%
\gdef\NR:Title{\a:newlabel{#3}}%
\gdef\NR:Type{\@currenvir}%
\NR@gettitle{#3}%
\defineautorefname{\@currenvir}{#1}%
\o:NRorg@opargbegintheorem{#1}{#2}{#3}%
}%
\let\o:NRorg@begintheorem\@begintheorem
\def\@begintheorem#1#2{%
\gdef\NR:Title{\a:newlabel{#1 #2}}%
\gdef\NR:Type{\@currenvir}%
\defineautorefname{\@currenvir}{#1}%
\NR@gettitle{}%
\o:NRorg@begintheorem{#1}{#2}%
}%
% I don't know if this was useful for anything
% but we cannot use it anymore
% \AtBeginDocument{%
\@ifpackageloaded{listings}{%
\def\:tempc#1{%
\gdef\NR:Title{\a:newlabel{listing}}%
\gdef\NR:Type{lstlisting}%
\o:NROrg@lst@MakeCaption:{#1}%
\gdef\@currentlabelname{listing}}
\HLet\NROrg@lst@MakeCaption\:tempc
}{}%
% bug [348]
\def\:tempams{%
\gdef\NR:Title{\a:newlabel{equation}}%
\gdef\NR:Type{equation}%
\gdef\@currentlabelname{equation}%
}
% https://tex.stackexchange.com/a/581856/2891
\@ifpackageloaded{caption}{
\pend:defIII\caption@beginex{%
\gdef\NR:Type{\@currenvir}%
% handle \label and \index in Caption's package
% version of \caption
\begingroup%
\a:captioncommandsfix
\protected@xdef\NR:Title{\a:newlabel{##2}}%
\endgroup%
}
}{}
\@ifpackageloaded{amsmath}{%
\Configure{@begin}{align}{\:tempams}
\Configure{@begin}{multline}{\:tempams}
\Configure{@begin}{equation}{\:tempams}
\Configure{@begin}{boxed}{\:tempams}
\Configure{@begin}{equations}{\:tempams}
\Configure{@begin}{equation}{\:tempams}
\Configure{@begin}{gather*}{\:tempams}
\Configure{@begin}{gather}{\:tempams}
\Configure{@begin}{genfrac}{\:tempams}
\Configure{@begin}{measure@}{\:tempams}
\Configure{@begin}{multline*}{\:tempams}
\Configure{@begin}{multline}{\:tempams}
\Configure{@begin}{overset}{\:tempams}
\Configure{@begin}{smallmatrix}{\:tempams}
\Configure{@begin}{split}{\:tempams}
\Configure{@begin}{subarray}{\:tempams}
\Configure{@begin}{substack}{\:tempams}
\Configure{@begin}{underset}{\:tempams}
\Configure{@begin}{xleftarrow}{\:tempams}
\Configure{@begin}{xrightarrow}{\:tempams}
}{
\Configure{@begin}{equation}{\:tempams}
}
\let\T:ref=\::ref
\def\::ref{\@ifstar{\protect\T@ref}{\protect\T@ref}}
\def\T@ref#1{%
\@safe@activestrue%
\let\::ref\T:ref%
\expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}%
\def\::ref{\@ifstar{\protect\T@ref}{\protect\T@ref}}%
\@safe@activesfalse%
}
\gdef\defineautorefname#1#2{%
\expandafter\gdef\csname #1autorefname\endcsname{#2}}
\defineautorefname{theorem}{Theorem}
\Configure{newlabel}
{\csname cur:th\endcsname \csname :currentlabel\endcsname}
{\string\csname\space :autoref\string\endcsname
{\NR:Type}#1}
\ifx \@currentlabelname\:UnDef
\let\@currentlabelname\empty
\fi
\pend:defIII\@setref{\edef\RefArg{##3}}
\append:defIII\@setref{\let\:autoref\:gobble}
\let\:autoref\:gobble
\Hinput{nameref}
\endinput

View File

@@ -1,5 +1,5 @@
\chapter{Non wheat sourdough}%
\label{chapter:non-wheat-sourdough}
\label{ch:non-wheat-sourdough}
\begin{quoting}
In this chapter you will learn how to make a basic sourdough bread
using non-wheat flour, basically all flour except spelt.
@@ -17,14 +17,13 @@ a denser crumb compared to wheat, as you can see in
Picture~\ref{fig:rye-crumb}.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-non-wheat-process.tex}
\caption[Process for non-wheat sourdough bread]{A visualization of the
process to make non-wheat sourdough bread. The process is much simpler
than making wheat sourdough bread. There is no gluten development. The
ingredients are simply mixed together.}%
\label{flc:non-wheat-sourdough}
\end{center}
\end{flowchart}
For non-wheat flours---including rye, emmer, and einkorn---no gluten
@@ -136,11 +135,11 @@ bread looks more uniform. The proofing period also allows the
dough to fully extend and fill the edges of the loaf pan. I~also
like to move the dough to the fridge for proofing. The dough stays
good in the fridge for weeks. You can proceed and bake it at a
convenient time for you.
convenient time for you.
Once you are happy with the proofing stage, proceed and bake your dough
just like you'd normally do, more details can be found in
Chapter~\ref{chapter:baking}. One challenging aspect
Chapter~\ref{ch:baking}. One challenging aspect
of using a loaf pan is to make sure that the center part of your
dough is properly cooked. For this reason, it is best to use a thermometer
and measure the internal temperature. The bread is ready once the internal

View File

@@ -0,0 +1,75 @@
% Copyright 2021-2024 by Michal Hoftich
% Copyright 2006 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
\ProvidesFileRCS{pgfsys-dvisvgm4ht.def}
% Driver commands for tex4ht
%
% Load common pdf commands:
%
% we switched to dvisvgm driver by default. it supports patterns and other features
% dvips driver is available through the tikz+ option. It doesn't support everything,
% but it worked better with nested pictures in the past.
\ifdefined\ifOption
\ifOption{tikz+}{\input pgfsys-dvips.def}{\input pgfsys-dvisvgm.def}
\else
% load the dvips driver by default
\input pgfsys-dvisvgm.def
\fi
\catcode`\:=11%
% we must call most of these redefinitions in \AtBeginDocument, because \HLet is available
% only at that moment
\AtBeginDocument{%
% configure the output picture format to svg, as it will require dvisvgm
% post processing.
\Configure{Picture}{.svg}%
% insert picture hooks to pgfsys commands
% these redefinitions are usually called only with the \tikz command,
% they are ignored in tikzpicture environment
\def\:tempa#1{%
\texfourht@tikz@begin%
\csname o:pgfsys@typesetpicturebox:\endcsname{#1}
\texfourht@tikz@end%
}
\HLet\pgfsys@typesetpicturebox\:tempa
% we must remove Picture-alt in \pgfsys@beginpicture, because it can result in alt text included in the image
\def\:tempa{\Configure{Picture-alt}{}\texfourht@tikz@begin\o:pgfsys@beginpicture:}
\HLet\pgfsys@beginpicture\:tempa
\let\o:pgfsys@endpicture:\pgfsys@endpicture
\def\:tempa{\o:pgfsys@endpicture:}
\HLet\pgfsys@endpicture\:tempa
% start picture around TikZ and PGF environments
\ConfigureEnv{tikzpicture}{\begingroup\texfourht@tikz@begin}{\texfourht@tikz@end\endgroup}{}{}%
\ConfigureEnv{pgfpicture}{\begingroup\texfourht@tikz@begin}{\texfourht@tikz@end\endgroup}{}{}%
}
\def\texfourht@tikz@begin{
\protect\csname nested:math\endcsname% support display math
\Picture*[\csname a:Picture-alt\endcsname]{}%
}
\def\texfourht@tikz@end{\EndPicture}
\catcode`\:=12%
\endinput
%%% Local Variables:
%%% mode: latex
%%% End:

View File

@@ -0,0 +1,30 @@
\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,
axis line style={-Latex},
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}

View File

@@ -0,0 +1,30 @@
\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,
axis line style={-Latex},
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}

View File

@@ -0,0 +1,43 @@
\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,
axis line style={-Latex},
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}

View File

@@ -0,0 +1,24 @@
#Ice Cube
#Time Ambient
1 95
2 148
3 165
4 172
5 175
6 179
7 179
8 180
9 181
10 182
11 182
12 182
13 182
14 181
15 182
16 182
17 181
18 182
19 182
20 181
21 182
22 182

View File

@@ -0,0 +1,24 @@
#Ice Cube
#Time Surface
1 13
2 50
3 66
4 71
5 72
6 74
7 78
8 81
9 84
10 86
11 89
12 91
13 92
14 94
15 95
16 96
17 97
18 98
19 98
20 99
21 99
22 99

View File

@@ -0,0 +1,28 @@
#Non preheated
#Time Ambient
1 22
2 25
3 31
4 36
5 43
6 49
7 56
8 63
9 70
10 77
11 85
12 91
13 96
14 102
15 107
16 113
17 119
18 124
19 128
20 132
21 137
22 141
23 144
24 147
25 151
26 151

View File

@@ -0,0 +1,28 @@
#Non preheated
#Time Surface
1 13
2 14
3 15
4 15
5 17
6 18
7 19
8 21
9 23
10 26
11 28
12 31
13 34
14 37
15 40
16 43
17 47
18 50
19 53
20 57
21 61
22 65
23 68
24 71
25 74
26 75

View File

@@ -0,0 +1,18 @@
#Pre-heated
#Time Ambient
1 110
2 163
3 181
4 186
5 189
6 190
7 190
8 189
9 189
10 188
11 188
12 188
13 189
14 189
15 190

View File

@@ -0,0 +1,37 @@
#Preheated Bottom
#Time Ambient
1 31
2 105
3 133
4 143
5 149
6 151
7 152
8 152
9 153
10 154
11 157
12 159
13 161
14 162
15 164
16 167
17 169
18 171
19 172
20 173
21 174
22 176
23 176
24 176
25 176
26 176
27 176
28 176
29 176
30 176
31 176
32 176
33 176
34 176
35 176

View File

@@ -0,0 +1,36 @@
#Preheated bottom
#Time Surface
#1 0
2 7
3 13
4 18
5 23
6 29
7 33
8 38
9 42
10 47
11 51
12 55
13 60
14 64
15 68
16 71
17 74
18 78
19 83
20 90
21 95
22 97
23 99
24 99
25 99
26 100
27 100
28 100
29 100
30 100
31 100
32 100
33 100
34 101

View File

@@ -0,0 +1,17 @@
#Ice Cube
#Time Surface
1 7
2 16
3 25
4 35
5 43
6 51
7 58
8 65
9 70
10 74
11 78
12 82
13 85
14 85
15 85

100
book/plots/sourdough.table Normal file
View File

@@ -0,0 +1,100 @@
0.000000000000000000e+00 0.000000000000000000e+00
2.424242424242424310e-01 4.240754653977794608e-01
4.848484848484848619e-01 8.471491777276901614e-01
7.272727272727272929e-01 1.268219383921863175e+00
9.696969696969697239e-01 1.686284330912430240e+00
1.212121212121212155e+00 2.100342265631521599e+00
1.454545454545454586e+00 2.509391435011269600e+00
1.696969696969697017e+00 2.912430085983805039e+00
1.939393939393939448e+00 3.308456465481258935e+00
2.181818181818181657e+00 3.696468820435762304e+00
2.424242424242424310e+00 4.075465397779447052e+00
2.666666666666666963e+00 4.444444444444444642e+00
2.909090909090909172e+00 4.802404207362885202e+00
3.151515151515151381e+00 5.148342933466899751e+00
3.393939393939394034e+00 5.481258869688621971e+00
3.636363636363636687e+00 5.800150262960180214e+00
3.878787878787878896e+00 6.104015360213707275e+00
4.121212121212121104e+00 6.391852408381334172e+00
4.363636363636363313e+00 6.662659654395191033e+00
4.606060606060606410e+00 6.915435345187411542e+00
4.848484848484848619e+00 7.149177727690124051e+00
5.090909090909090828e+00 7.362885048835461355e+00
5.333333333333333925e+00 7.555555555555555358e+00
5.575757575757576134e+00 7.726187494782536191e+00
5.818181818181818343e+00 7.873779113448534872e+00
6.060606060606060552e+00 7.997328658485683306e+00
6.303030303030302761e+00 8.095834376826111622e+00
6.545454545454545858e+00 8.168294515401953504e+00
6.787878787878788067e+00 8.213707321145337303e+00
7.030303030303030276e+00 8.231071040988396703e+00
7.272727272727273373e+00 8.219383921863260056e+00
7.515151515151515582e+00 8.177644210702062821e+00
7.757575757575757791e+00 8.104850154436931575e+00
8.000000000000000000e+00 8.000000000000000000e+00
8.242424242424242209e+00 7.878787878787878896e+00
8.484848484848484418e+00 7.757575757575757791e+00
8.727272727272726627e+00 7.636363636363636687e+00
8.969696969696970612e+00 7.515151515151514694e+00
9.212121212121212821e+00 7.393939393939393590e+00
9.454545454545455030e+00 7.272727272727272485e+00
9.696969696969697239e+00 7.151515151515151381e+00
9.939393939393939448e+00 7.030303030303030276e+00
1.018181818181818166e+01 6.909090909090909172e+00
1.042424242424242387e+01 6.787878787878788067e+00
1.066666666666666785e+01 6.666666666666666075e+00
1.090909090909091006e+01 6.545454545454544970e+00
1.115151515151515227e+01 6.424242424242423866e+00
1.139393939393939448e+01 6.303030303030302761e+00
1.163636363636363669e+01 6.181818181818181657e+00
1.187878787878787890e+01 6.060606060606060552e+00
1.212121212121212110e+01 5.939393939393939448e+00
1.236363636363636331e+01 5.818181818181818343e+00
1.260606060606060552e+01 5.696969696969697239e+00
1.284848484848484951e+01 5.575757575757575246e+00
1.309090909090909172e+01 5.454545454545454142e+00
1.333333333333333393e+01 5.333333333333333037e+00
1.357575757575757613e+01 5.212121212121211933e+00
1.381818181818181834e+01 5.090909090909090828e+00
1.406060606060606055e+01 4.969696969696969724e+00
1.430303030303030276e+01 4.848484848484848619e+00
1.454545454545454675e+01 4.727272727272726627e+00
1.478787878787878896e+01 4.606060606060605522e+00
1.503030303030303116e+01 4.484848484848484418e+00
1.527272727272727337e+01 4.363636363636363313e+00
1.551515151515151558e+01 4.242424242424242209e+00
1.575757575757575779e+01 4.121212121212121104e+00
1.600000000000000000e+01 4.000000000000000000e+00
1.624242424242424221e+01 3.878787878787878896e+00
1.648484848484848442e+01 3.757575757575757791e+00
1.672727272727272663e+01 3.636363636363636687e+00
1.696969696969696884e+01 3.515151515151515582e+00
1.721212121212121104e+01 3.393939393939394478e+00
1.745454545454545325e+01 3.272727272727273373e+00
1.769696969696969902e+01 3.151515151515150492e+00
1.793939393939394122e+01 3.030303030303029388e+00
1.818181818181818343e+01 2.909090909090908283e+00
1.842424242424242564e+01 2.787878787878787179e+00
1.866666666666666785e+01 2.666666666666666075e+00
1.890909090909091006e+01 2.545454545454544970e+00
1.915151515151515227e+01 2.424242424242423866e+00
1.939393939393939448e+01 2.303030303030302761e+00
1.963636363636363669e+01 2.181818181818181657e+00
1.987878787878787890e+01 2.060606060606060552e+00
2.012121212121212110e+01 1.939393939393939448e+00
2.036363636363636331e+01 1.818181818181818343e+00
2.060606060606060552e+01 1.696969696969697239e+00
2.084848484848484773e+01 1.575757575757576134e+00
2.109090909090908994e+01 1.454545454545455030e+00
2.133333333333333570e+01 1.333333333333332149e+00
2.157575757575757791e+01 1.212121212121211045e+00
2.181818181818182012e+01 1.090909090909089940e+00
2.206060606060606233e+01 9.696969696969688357e-01
2.230303030303030454e+01 8.484848484848477312e-01
2.254545454545454675e+01 7.272727272727266268e-01
2.278787878787878896e+01 6.060606060606055223e-01
2.303030303030303116e+01 4.848484848484844179e-01
2.327272727272727337e+01 3.636363636363633134e-01
2.351515151515151558e+01 2.424242424242422089e-01
2.375757575757575779e+01 1.212121212121211045e-01
2.400000000000000000e+01 0.000000000000000000e+00

View File

@@ -0,0 +1,37 @@
#Spritzing
#Time Ambient
1 31
2 135
3 168
4 182
5 189
6 190
7 190
8 190
9 190
10 189
11 190
12 190
13 189
14 190
15 190
16 190
17 189
18 190
19 190
20 190
21 190
22 190
23 189
24 190
25 190
26 190
27 190
28 190
29 190
30 189
31 190
32 190
33 190
34 190
35 190

View File

@@ -0,0 +1,38 @@
#Spritzing
#Time Surface
1 6
2 13
3 29
4 40
5 47
6 54
7 60
8 65
9 70
10 74
11 78
12 82
13 85
14 88
15 91
16 94
17 96
18 97
19 98
20 99
21 99
22 99
23 99
24 99
25 99
26 99
27 99
28 100
29 100
30 101
31 101
32 101
33 102
34 103
35 103

100
book/plots/yeast.table Normal file
View File

@@ -0,0 +1,100 @@
0.000000000000000000e+00 0.000000000000000000e+00
4.242424242424242542e-01 7.169229458362316176e-01
8.484848484848485084e-01 1.428572670524745458e+00
1.272727272727272707e+00 2.130208499298593239e+00
1.696969696969697017e+00 2.817089757390826232e+00
2.121212121212121104e+00 3.484475770034495934e+00
2.545454545454545414e+00 4.127625862462654283e+00
2.969696969696969724e+00 4.741799359908352329e+00
3.393939393939394034e+00 5.322255587604640681e+00
3.818181818181818343e+00 5.864253870784571276e+00
4.242424242424242209e+00 6.363053534681196055e+00
4.666666666666666963e+00 6.813913904527567844e+00
5.090909090909090828e+00 7.212094305556735030e+00
5.515151515151515582e+00 7.552854063001753104e+00
5.939393939393939448e+00 7.831452502095669566e+00
6.363636363636364202e+00 8.043148948071538129e+00
6.787878787878788067e+00 8.183202726162404517e+00
7.212121212121211933e+00 8.246873161601330438e+00
7.636363636363636687e+00 8.229419579621360725e+00
8.060606060606060552e+00 8.142734264051528115e+00
8.484848484848484418e+00 8.049102099819306133e+00
8.909090909090910060e+00 7.954963367078545566e+00
9.333333333333333925e+00 7.860318065829249967e+00
9.757575757575757791e+00 7.765166196071416671e+00
1.018181818181818166e+01 7.669507757805047454e+00
1.060606060606060552e+01 7.573342751030141429e+00
1.103030303030303116e+01 7.476671175746698594e+00
1.145454545454545503e+01 7.379493031954719839e+00
1.187878787878787890e+01 7.281808319654204276e+00
1.230303030303030276e+01 7.183617038845151903e+00
1.272727272727272840e+01 7.084919189527563610e+00
1.315151515151515227e+01 6.985714771701438508e+00
1.357575757575757613e+01 6.886003785366776597e+00
1.400000000000000000e+01 6.785786230523578766e+00
1.442424242424242387e+01 6.685062107171844126e+00
1.484848484848484951e+01 6.583831415311573565e+00
1.527272727272727337e+01 6.482094154942766195e+00
1.569696969696969724e+01 6.379850326065422905e+00
1.612121212121212110e+01 6.277123761538812907e+00
1.654545454545454675e+01 6.174324510640207819e+00
1.696969696969696884e+01 6.071597983435813362e+00
1.739393939393939448e+01 5.968940305132156787e+00
1.781818181818182012e+01 5.866347600935763573e+00
1.824242424242424221e+01 5.763815996053158308e+00
1.866666666666666785e+01 5.661341615690869133e+00
1.909090909090908994e+01 5.558920585055421526e+00
1.951515151515151558e+01 5.456549029353340075e+00
1.993939393939394122e+01 5.354223073791151144e+00
2.036363636363636331e+01 5.251938843575382876e+00
2.078787878787878896e+01 5.149692463912558082e+00
2.121212121212121104e+01 5.047480060009204905e+00
2.163636363636363669e+01 4.945297757071848821e+00
2.206060606060606233e+01 4.843141680307013530e+00
2.248484848484848442e+01 4.741007954921228951e+00
2.290909090909091006e+01 4.638892706121018783e+00
2.333333333333333570e+01 4.536792059112909392e+00
2.375757575757575779e+01 4.434702139103427143e+00
2.418181818181818343e+01 4.332619071299096625e+00
2.460606060606060552e+01 4.230538980906445978e+00
2.503030303030303116e+01 4.128457993131998016e+00
2.545454545454545681e+01 4.026372233182281768e+00
2.587878787878787890e+01 3.924277826263822710e+00
2.630303030303030454e+01 3.822170897583144988e+00
2.672727272727272663e+01 3.720047572346776743e+00
2.715151515151515227e+01 3.617903975761242119e+00
2.757575757575757791e+01 3.515736233033067482e+00
2.800000000000000000e+01 3.413540469368780528e+00
2.842424242424242564e+01 3.311312809974904514e+00
2.884848484848484773e+01 3.209049380057968470e+00
2.927272727272727337e+01 3.106746304824495208e+00
2.969696969696969902e+01 3.004399709481012870e+00
3.012121212121212110e+01 2.902005719234047376e+00
3.054545454545454675e+01 2.799560459290122427e+00
3.096969696969696884e+01 2.697060054855767497e+00
3.139393939393939448e+01 2.594500631137504953e+00
3.181818181818182012e+01 2.491878313341862938e+00
3.224242424242424221e+01 2.389189226675367816e+00
3.266666666666666430e+01 2.286429496344544621e+00
3.309090909090909349e+01 2.183595247555917496e+00
3.351515151515151558e+01 2.080682605516016359e+00
3.393939393939393767e+01 1.977687695431364912e+00
3.436363636363636687e+01 1.874606642508488630e+00
3.478787878787878896e+01 1.771435571953915211e+00
3.521212121212121104e+01 1.668170608974169244e+00
3.563636363636364024e+01 1.564807878775775540e+00
3.606060606060606233e+01 1.461343506565263128e+00
3.648484848484848442e+01 1.357773617549156597e+00
3.690909090909091361e+01 1.254094336933980092e+00
3.733333333333333570e+01 1.150301789926262863e+00
3.775757575757575779e+01 1.046392101732529056e+00
3.818181818181817988e+01 9.423613975593052583e-01
3.860606060606060908e+01 8.382058026131148365e-01
3.903030303030303116e+01 7.339214421004879307e-01
3.945454545454545325e+01 6.295044412279485746e-01
3.987878787878788245e+01 5.249509252020206906e-01
4.030303030303030454e+01 4.202570192292340301e-01
4.072727272727272663e+01 3.154188485161137923e-01
4.115151515151515582e+01 2.104325382691821789e-01
4.157575757575757791e+01 1.052942136949696628e-01
4.200000000000000000e+01 4.440892098500626162e-16

View File

@@ -0,0 +1,53 @@
\subsubsection*{Ingredients}
\begin{tabular}{r@{}rl@{}}
\qty{400}{\gram} &~(\qty{100}{\percent}) & Flour (wheat, rye, corn, whatever
you have at hand)\\
\qty{320}{\gram} & (\qty{80}{\percent}) & Water, preferably at room
temperature\\
\qty{80}{\gram} & (\qty{20}{\percent}) & Active sourdough starter\\
\qty{8}{\gram} & (\qty{2}{\percent}) & Salt\\
\end{tabular}
\subsubsection*{Instructions}
\begin{description}
\item[Prepare the dough] In a large mixing bowl, combine the flour and water.
Mix until you have a shaggy dough with no dry spots.
Add the sourdough starter and salt to the mixture. Incorporate them
thoroughly until you achieve a smooth and homogenized dough.
\item[Fermentation:] Cover the bowl with a lid or plastic wrap. Allow the dough
to rest and ferment until it has increased by at least \qty{50}{\percent}
in size. Depending on the temperature and activity of your starter, this
can take anywhere from 4 to 24~hours.
\item[Cooking preparation:] Once the dough has risen, heat a pan over medium
heat. Lightly oil the pan, ensuring to wipe away any excess oil with a
paper towel.
\item[Shaping and cooking:] With a ladle or your hands, scoop out a portion of
the dough and place it onto the hot pan, spreading it gently like a
pancake.
Cover the pan with a lid. This traps the steam and ensures even cooking
from the top, allowing for easier flipping later.
After about 5~minutes, or when the bottom of the flatbread has a
golden-brown crust, carefully flip it using a spatula.
\emph{Adjusting cook time.} If the flatbread appears too dark, remember to
reduce the cooking time slightly for the next one. Conversely, if it's
too pale, allow it to cook a bit longer before flipping.
Cook the flipped side for an additional 5~minutes or until it's also
golden brown.
\item[Storing:] Once cooked, remove the flatbread from the pan and place it on
a kitchen towel. Wrapping the breads in the towel will help retain their
softness and prevent them from becoming overly crisp. Repeat the cooking
process for the remaining dough.
\item[Serving suggestion:] Enjoy your sourdough flatbreads warm, paired with
your favorite dips, spreads, or as a side to any meal.
\end{description}

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

View File

@@ -27,14 +27,13 @@ starter has half as much water as flour, as summarized in
Table~\ref{tab:starter-types-comparison}.
\begin{table}[htp!]
\begin{center}
\centering
\input{tables/table-starter-types.tex}
\caption[Different types of sourdough]{A comparison of different
sourdough starter types and their respective properties. The only
difference is the amount of water (hydration) that is used when
feeding the starter.}%
\label{tab:starter-types-comparison}
\end{center}
\end{table}
You can change your starter type by just adjusting the feeding ratio of how
@@ -120,25 +119,24 @@ a vinegary (acetic) or mix of both flavor profiles. You can adjust your
starter's flavor by changing the type to a liquid starter.
\section{Liquid starter}%
\label{section:liquid-starter}
\label{sec:liquid-starter}
\begin{figure}[!htb]
\begin{center}
\centering
\includegraphics[width=0.5\textwidth]{sourdough-starter-liquid.jpg}
\caption[Liquid starter]{A liquid sourdough starter features a high level of
water. The high water amount boosts lactic acid producing bacteria.
After a while the liquid and flour start to separate. Bubbles on the
side of the flour indicate that the starter is ready to be used.}%
\label{fig:liquid-sourdough-starter}
\end{center}
\end{figure}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-liquid-starter-conversion.tex}
\caption[Converting to a liquid starter]{The process to convert your regular
or stiff starter into a liquid starter. The whole process takes around
or stiff starter into a liquid starter. The whole process takes around
3~days. The longer you maintain your starter at the suggested hydration
level, the more adapted your microorganisms become. It is recommended to
keep a backup of your original starter as the liquid environment will
@@ -149,7 +147,6 @@ starter's flavor by changing the type to a liquid starter.
starter your created stiff starter will feature both dairy
and vinegary notes.}%
\label{flc:liquid-starter-conversion}
\end{center}
\end{flowchart}
The liquid starter is made at a hydration of around \qty{500}{\percent}. This means
@@ -160,15 +157,15 @@ By introducing this layer of water, less oxygen is available throughout the
course of fermentation. This means that your starter will no longer be
producing acetic acid. The heterofermentative lactic acid bacteria will thrive
in this environment. This is a neat little trick to change your starter's
flavor profile from vinegary to lactic. Your starter is going to develop
dairy creamy notes. Interestingly, when changing the hydration again, your starter
flavor profile from vinegary to lactic. Your starter is going to develop dairy
creamy notes. Interestingly, when changing the hydration again, your starter
is going to maintain the liquid starter flavor profile, but then benefit again
from enhanced yeast activity. The liquid starter conversion is nonreversible.
from enhanced yeast activity. The liquid starter conversion is irreversible.
By changing to a liquid starter you will permanently select a subset of
microbes that work better in the more liquid environment. So even after going back to a regular
or stiff starter the subset of microbes created by the liquid conversion
will remain. For this reason, it is recommended to keep a backup of the starter
before the liquid starter conversion.
microbes that work better in the more liquid environment. So even after going
back to a regular or stiff starter the subset of microbes created by the
liquid conversion will remain. For this reason, it is recommended to keep a
backup of the starter before the liquid starter conversion.
To begin with the
conversion, simply take around \qty{1}{\gram} of your starter, mix with \qty{5}{\gram} flour and
@@ -205,7 +202,7 @@ drain the liquid part on your starter and use it. I~have used it numerous
times to make lacto-fermented hot sauces.
\section{Stiff starter}%
\label{section:stiff-starter}
\label{sec:stiff-starter}
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-stiff.jpg}
@@ -228,9 +225,10 @@ mixing the starter there should be no chunks of flour left. Test placing
the starter on your kitchen counter. When lifting it should slightly stick
to your counter's surface. This test indicates that you hydrated the flour sufficiently.
When the mixture is too dry, the fermentation speed is greatly reduced and
the starter will seem inactive. The starter should be much drier
than a regular starter, but also not too dry. Refer to figure~\ref{fig:stiff-starter-dry-check}
for a visual example of the starter's required hydration level.
the starter will seem inactive. The starter should be much drier than a
regular starter, but also not too dry. Refer to
Figure~\ref{fig:stiff-starter-dry-check} for a visual example of the starter's
required hydration level.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{stiff-starter-dry-check.jpg}
@@ -242,7 +240,7 @@ for a visual example of the starter's required hydration level.
\end{figure}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-stiff-starter-conversion.tex}
\caption[Converting to a stiff starter]{The process to convert your regular
starter into a stiff starter. The whole process takes around 3 days. The
@@ -252,7 +250,6 @@ for a visual example of the starter's required hydration level.
\qty{50}{\percent} hydration level for the starter. If the dough is too
stiff consider increasing this to \qty{60}{\percent}.}%
\label{fig:stiff-starter-conversion}
\end{center}
\end{flowchart}
In the stiffer environment the yeast thrives more. This means you will have
@@ -302,13 +299,16 @@ pockets of air on the sides of your container. Use your nose to smell the
starter. It should have a mild smell. It also tends to smell much more
alcoholic than the other starters.
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter for your
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter in terms of
baker's math for your
dough. This depends on the ripeness of your starter.
In summer I~typically use around
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
also control the fermentation speed.
Mixing the starter can be a little bit annoying as it hardly homogenizes with
the rest of the dough. In this case you can try to dissolve the starter in the
\qtyrange{1}{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
also control the fermentation speed. If it is very hot where you live, consider
lowering the starter amount to \qtyrange{1}{5}{\percent}. If it is very cold in your
area consider increasing the starter amount up to \qty{30}{\percent}.
Mixing the stiff starter can be a little bit annoying as it hardly homogenizes with
the rest of the dough. In this case, you can try to dissolve the starter in the
water you are about to use for your dough. This will make mixing a lot easier.

View File

@@ -1,5 +1,5 @@
\chapter{Making a sourdough starter}%
\label{chapter:sourdough-starter}
\label{ch:sourdough-starter}
\begin{quoting}
In this chapter you will learn how to make your
own sourdough starter, but before doing so you will
@@ -13,7 +13,7 @@ how to prepare your starter for long-term storage.
\end{quoting}
\section{Baker's math}%
\label{section:bakers-math}
\label{sec:bakers-math}
In a large bakery, a determining factor is how
much flour you have at hand. Based on the amount
@@ -38,11 +38,10 @@ comes in handy. Let's look at the default recipe with baker's
math and then adjust it for the \qty{1.4}{\kg} flour quantity.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-bakers-math-example.tex}
\caption[Baker's math example]{An example table demonstrating how to
properly calculate using baker's math}
\end{center}
\end{table}
Note how each of the ingredients is calculated as a percentage
@@ -55,12 +54,11 @@ more flour available the next day. As mentioned the next day
we have \qty{1.4}{\kg} at hand (\qty{1400}{\gram}).
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-recipe-bakers-math.tex}
\caption[Another baker's math example]{An example recipe that uses
\qty{1400}{\gram} as its baseline and is then calculated using
baker's math.}
\end{center}
\end{table}
For each ingredient we calculate the percentage
@@ -86,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}
@@ -94,7 +93,7 @@ are completely lost when trying to scale it up.
Making a sourdough starter is very easy, all you need
is a little bit of patience. It is in fact so easy that it can be summarized
in a simple flowchart~\ref{fig:sourdough-starter-process} The flour you should
in a simple Flowchart~\ref{fig:sourdough-starter-process} The flour you should
use to bootstrap your starter is ideally a whole flour.
You could use whole-wheat, whole-rye, whole-spelt or
any other flour you have. In fact gluten free flours such
@@ -102,6 +101,14 @@ as rice or corn would also work. Don't worry, you can always
change the flour later. Use whatever whole flour you
already have at hand.
\begin{flowchart}[!htb]
\centering
\input{figures/fig-starter-process.tex}
\caption[The full sourdough starter process]{The process of making a sourdough
starter from scratch.}%
\label{fig:sourdough-starter-process}
\end{flowchart}
Your flour is contaminated with millions of microbes. As explained
before in the chapter about wild yeast and bacteria, these
microbes live on the surface of the plant. That's why
@@ -132,64 +139,16 @@ not airtight. You still want some gas exchange to be possible.
I~like to use a glass and place another
inverted one on top.
\begin{flowchart}[!htb]
\begin{center}
\input{figures/fig-starter-process.tex}
\caption[The full sourdough starter process]{The process of making a sourdough
starter from scratch.}%
\label{fig:sourdough-starter-process}
\end{center}
\end{flowchart}
Now an epic battle begins. In one study~\cite{yeasts+biocontrol+agent}
scientists have identified more than \num{150}~different yeast species living
Now an epic battle begins, as visualized in
Figure~\ref{fig:sourdough-starter-microbial-war}. In one
study~\cite{yeasts+biocontrol+agent} scientists have identified
more than \num{150}~different yeast species living
on a single leaf of a plant.
All of the different yeasts and bacteria are trying to get
the upper hand in this battle. Other pathogens such as mold
are also being activated as we added water. Only the strongest
most adaptable microorganisms will survive.
By adding water to the
flour the starches start to degrade. The seedling tries to
sprout but it no longer can. Essential for this process is the
amylase enzyme. The compact starch is broken down to more
digestible sugars to fuel plant growth. Glucose is what the
plant needs in order to grow. The microorganisms that survive
this frenzy are adapted to consuming glucose.
Luckily for us
bakers, the yeast and bacteria know very well how to metabolize
glucose. This is what they have been fed in the wild by the plants.
By forming patches on the leaf and protecting the plant from
pathogens they received glucose in return for their services.
Each of the microbes tries to defeat the other by consuming the
food fastest, producing agents to inhibit food uptake by others or by producing
bactericides and/or fungicides. This early stage of the starter
is very interesting as more research could possibly reveal
new fungicides or antibiotics.
Depending on where your flour
is from, the starting microbes of your starter might be different
than the ones from another starter. Some people have also reported
how the microbes from your hand or air can influence your starter's
microorganisms. This makes sense to a certain extent. Your
hand's microbes might be good at fermenting your sweat, but
probably not so good at metabolizing glucose. The contamination
of your hands or air might play a minor role in the initial epic
battle. But only the fittest microbes fitting the sourdough's
niche are going to survive.
This means the microorganisms knowing
how to convert maltose or glucose will have the upper hand. Or the
microbes fermenting the waste of the other microbes. Ethanol created
by the yeast is metabolized by the bacteria in your sourdough. That's
why a sourdough has no alcohol. I~can confirm the role of aerial
contamination to a certain extent, when setting up a new sourdough
starter the whole process is quite quick for me. After a few
days my new starter seems to be quite alive already. This might
be due to previous contamination of flour fermenting microbes in
my kitchen.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war}
\caption[Microbial warfare during sourdough early days]{A simple
@@ -204,21 +163,60 @@ my kitchen.
\label{fig:sourdough-starter-microbial-war}
\end{figure}
By adding water to the
flour the starches start to degrade. The seedling tries to
sprout but it no longer can. Essential for this process is the
amylase enzyme. The compact starch is broken down to more
digestible sugars to fuel plant growth. Glucose is what the
plant needs in order to grow. The microorganisms that survive
this frenzy are adapted to consuming glucose.
Luckily for us
bakers, the yeast and bacteria know very well how to metabolize
glucose. This is what they have been fed in the wild by the plants.
By forming patches on the leaf and protecting the plant from
pathogens they received glucose in return for their services.
Each of the microbes tries to defeat the other by consuming the
food fastest, producing agents to inhibit food uptake by others or by producing
bactericides and/or fungicides. This early stage of the starter
is very interesting as more research could possibly reveal
new fungicides or antibiotics.
Depending on where your flour
is from, the starting microbes of your starter might be different
than the ones from another starter. Some people have also reported
how the microbes from your hand or air can influence your starter's
microorganisms. This makes sense to a certain extent. Your
hand's microbes might be good at fermenting your sweat, but
probably not so good at metabolizing glucose. The contamination
of your hands or air might play a minor role in the initial epic
battle. But only the fittest microbes fitting the sourdough's
niche are going to survive.
This means the microorganisms knowing
how to convert maltose or glucose will have the upper hand. Or the
microbes fermenting the waste of the other microbes. Ethanol created
by the yeast is metabolized by the bacteria in your sourdough. That's
why a sourdough has no alcohol. I~can confirm the role of aerial
contamination to a certain extent, when setting up a new sourdough
starter the whole process is quite quick for me. After a few
days my new starter seems to be quite alive already. This might
be due to previous contamination of flour fermenting microbes in
my kitchen.
Wait for around 24~hours and observe what happens to your starter.
You might see some early signs of fermentation already. Use your nose
to smell the dough. Look for bubbles in the dough. Your dough
might already have increased in size a little bit. Whatever
you see and notice is a sign of the first battle.
Some microbes
have already been outperformed. Others have won the first battle.
After around 24~hours most of the starch has been broken down
and your microbes are hungry for additional sugars. With a spoon
take around \qty{10}{\gram} from the previous day's mixture and place
it in a new container. Again --- you could also simply eye ball
all the quantities. It does not matter that much. Mix the \qty{10}{\gram}
from the previous day with another \qty{50}{\gram} of flour
and \qty{50}{\gram} of water.
Some microbes have already been outperformed. Others have won the first
battle. After around \qty{24}{hours} most of the starch has been broken down
and your microbes are hungry for additional sugars. With a spoon take around
\qty{10}{\gram} from the previous day's mixture and place it in a new
container. Again---you could also simply eye ball all the quantities. It does
not matter that much. Mix the \qty{10}{\gram} from the previous day with
another \qty{50}{\gram} of flour and \qty{50}{\gram} of water.
Note the ratio of 1:5. I~very often use
1~part of old culture with 5~parts of flour and 5~parts of water.
@@ -232,16 +230,27 @@ the mix again with a glass or a lid. If you notice the top of
your mixture dries out a lot consider using another cover. The
dried-out parts will be composted by more adapted microbes such as
mold. In many user reports, I~saw mold being able to damage
the starter when the starter itself dried out a lot.
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,14 +281,16 @@ yeast has been isolated like this from century old sourdough
starters.
\begin{flowchart}[!htb]
\begin{center}
\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{center}
\end{flowchart}
The key sign to look at is bubbles that you see in your starter
@@ -331,8 +342,8 @@ don't use this test and can't recommend it.
Once you see your starter is ready I~would recommend giving it
one last feeding and then you are ready to make your dough in the
evening or the next day. For the instructions on how to make your
first dough please refer to the next chapters (\ref{chapter:wheat-sourdough}
and~\ref{chapter:non-wheat-sourdough}) in this book.
first dough please refer to the next chapters (\ref{ch:wheat-sourdough}
and~\ref{ch:non-wheat-sourdough}) in this book.
If your first bread failed, chances are your fermentation hasn't
worked as expected. In many cases the reason is your sourdough starter. Maybe
@@ -346,7 +357,7 @@ yeast part of your sourdough and balance the fermentation.
\section{Maintenance}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-starter-maintenance.tex}
\caption[Sourdough starter maintenance flowchart]{A full flowchart showing
you how to conduct proper sourdough starter maintenance. You can use a
@@ -356,7 +367,6 @@ yeast part of your sourdough and balance the fermentation.
\qty{100}{\percent} hydration level. Adjust the water content
accordingly when you use a stiff starter.}%
\label{fig:sourdough-maintenance-process}
\end{center}
\end{flowchart}
You have made your sourdough starter and your first bread. How do you perform
@@ -432,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,

View File

@@ -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,17 @@
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}{}}
\input{abbreviations.tex}
% Consistent pH values
\newcommand{\pHvalue}[1]{pH~\SI{#1}{}}
@@ -50,8 +52,9 @@
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
% Fonts for accessibility
\ifdefined\isaccessible
\setmainfont{Open Sans}[
Scale=MatchLowercase]
\usepackage[mathrm=sym]{unicode-math}
\setmathfont{Fira Math}[Scale=MatchLowercase]
\setmainfont{Open Sans}[Scale=MatchLowercase]
\else
\setmainfont{TeX Gyre Pagella}[Scale=1.0] % Or Palatino Linotype, etc.
% TODO not available on github CI
@@ -71,10 +74,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,
@@ -109,8 +113,8 @@
}
% Caption and figure size below images
\usepackage{caption}
\captionsetup[figure]{font=footnotesize}
\addtokomafont{captionlabel}{\textbf}
\addtokomafont{caption}{\small}
\DeclareSIUnit\degF{\text{°}F}

View File

@@ -0,0 +1,562 @@
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
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
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
carbonarius
cerevisiae
chapappifchapterprefix
chapteratlist
chapterformat
chapterlinesformat
chapterstylebar
chapterstylekao
chapterstylelines
chapterstyleplain
chemfig
chemformula
citecolor
codeblack
codeblue
coeliac
countertop
crum
defaultfontfeatures
degF
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
hyperref
hypersetup
ie
ifdefined
ifnextchar
ifthenelse
ifwidelayout
includegraphics
injera
isaccessible
jalapeño
jordan
kao
karl
keepaspectratio
kitchenaid
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ée
pâte
raffaella
redpic
renewcommand
rl
roti
saccharomyces
sanfranciscensis
sanfrancisco
saprotrophic
sbseries
scalebox
scandinavia
scorings
selectfont
semibold
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
xsep
xshift
yYkTrGHNW2w
yeasted
yellowpic
yogurty
ysep
yshift
yudane
ziplock
Örjan
Łukasz

View File

@@ -1,5 +1,5 @@
\chapter{Storing bread}%
\label{chapter:storing-bread}
\label{ch:storing-bread}
\begin{quoting}
In this chapter you will discuss different methods of storing your bread, each
with their own pro and cons. This way your bread can be best enjoyed at a
@@ -7,14 +7,13 @@ later time.
\end{quoting}
A summary can be found in Table~\ref{table:bread-storage}, with details and
explanation in th rest of this chapter.
explanation in the rest of this chapter.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-storing-bread-overview.tex}
\caption[Options to store bread]{A table visualizing the advantages
and disadvantages of different bread storing options.}%
\label{table:bread-storage}
\end{center}
\end{table}
\section{Room temperature}
@@ -117,8 +116,7 @@ This option is great for very long-term storage. Personally
I~like having a few slices of bread frozen as an emergency
backup when I~have had no time to bake.
A 2008 study hints that there might be some health
benefits to freezing and toasting your bread. By doing so
the starch molecules could become more resistant to digestion
and thus lower your body's blood sugar
response by almost 40\%~\cite{freezing+toasting+bread}.
A 2008 study hints that there might be some health benefits to freezing and
toasting your bread. By doing so the starch molecules could become more
resistant to digestion and thus lower your body's blood sugar response by
almost \qty{40}{\percent}~\cite{freezing+toasting+bread}.

View File

@@ -1,5 +1,3 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;800&display=swap');
:root{
--ff-sans: 'Open Sans', sans-serif;
--fw-regular: 400;
@@ -15,6 +13,8 @@
--padding-hamburger: 5px;
--c-beige: #F3EDE6;
--border-radius: 7px;
--image-padding: 14px;
--image-background: #ffffff;
}
@media (min-width: 1200px){
@@ -145,7 +145,6 @@ nav.TOC a, nav.TOC a:visited{
/* *** Colors *** */
/* ************** */
body{
background-color: var(--c-beige);
}
@@ -252,6 +251,10 @@ figcaption.caption {
display: block;
}
.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc, .addchapToc a {
font-weight: var(--fw-bold);
}
@media (max-width: 768px) {
.toggle-menu-label {
display: block;
@@ -315,7 +318,7 @@ figcaption.caption {
display: block;
color: #000;
font-size: 20px;
font-weight: bold;
font-weight: var(--fw-bold);
}
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
@@ -385,11 +388,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,8 +476,8 @@ nav.TOC span:hover, nav.TOC span:hover *, nav.TOC span.chapterToc.selected, nav.
}
p.flowchart-image-wrapper {
background: white;
padding: 20px;
display: flex;
justify-content: center;
}
.menu-items .menu-group:last-of-type .menu-arrow {
@@ -501,7 +499,7 @@ blockquote {
border: 2px solid var(--c-black);
color: var(--c-black);
padding: 4px;
font-weight: bold;
font-weight: var(--fw-bold);
text-decoration: none;
}
.crosslinks-bottom a.prev {
@@ -524,6 +522,35 @@ 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;
}
main.main-content h2.chapterHead.home-content-title {
margin-top: 0.5em;
margin-bottom: 0.5em;
line-height: 1.5em;
}
.download-description {
font-weight: var(--fw-bold);
}
.download-links {
p.indent, p.noindent {
text-align: unset;
}
}
@media (max-width: 768px) {
.header {
display: none;
@@ -568,10 +595,6 @@ blockquote {
background: var(--c-black-background);
}
p.flowchart-image-wrapper {
padding: 5px;
}
.menu-entry:hover {
background-color: transparent;
}
@@ -585,4 +608,12 @@ blockquote {
background-color: var(--c-black-background);
padding: 5px;
}
}
.mobile-banner a img {
border: none;
border-radius: 0px;
}
figure.float, div.figure, figure.figure {
padding: calc(var(--image-padding) / 2);
}
}

View File

@@ -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,
1 Abu
14 Anonnn
15 Anthony Atkinson
16 Aurore
BTSkete
17 Beatriz
18 Bee
19 Ben Davies
22 Blusie
23 Brigitta
24 Brockman
25 BTSkete
26 C Fazio
27 Cal Kotz
28 Case
36 Christine
37 Chrysanna
38 Colleen Guidone
DKitSeattle
39 Danieel
40 Daniel
41 David
42 Dee
43 Desiree S
44 DKitSeattle
45 Douglas Penna
46 Drey
47 Duivelsjong
68 Jimjo
69 John E Bergman
70 Jonathan
71 JorisBelmans
72 Jose Lausuch
73 Judith Roth
74 Julian
141 Tbonewilly
142 Thales Mello
143 Therealbruce
144 Tracy \& Paul Will Tracy and Paul Will
145 Usliv
146 Vassil Dichev
147 Vladimir Smirnov

View File

@@ -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
170 / 338 & Caramelization & Remaining sugars begin to caramelize giving your bread a distinct flavor.\\ \bottomrule
\end{tabular}

View File

@@ -1,4 +1,4 @@
%TODO: Alignement is not great
%TODO: Alignment is not great
\begin{tabular}{@{}lll@{}}
\toprule
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule

View File

@@ -11,4 +11,35 @@
\Configure{AddCss}{book-ebook.css}
\Configure{CoverMimeType}{image/jpeg}
\CoverMetadata{cover/cover-page.jpg}
\AddToHook{env/tikzpicture/begin}{\fontfamily{opensans-TLF}\selectfont}
\Configure{@HEAD}{\HCode{
<style type="text/css">
@import url('https://fonts.cdnfonts.com/css/open-sans');
body{
font-family: 'Open Sans';
}
</style>}}
% Deal with chemical equations in a single svg
\ExplSyntaxOn
\def\standaloneenv#1{}
\pend:def\schemestart{\Picture+{}}
\append:def\CF_schemestop{\EndPicture}
\ExplSyntaxOff
\makeatletter
\def\texfourht@tikz@begin{
\protect\csname nested:math\endcsname% support display math
\Picture+[\csname a:Picture-alt\endcsname]{}%
}
\makeatother
% Warnig from Michal: Note that once you get the updated TeX Live with a new
% `chemfig.4ht` file, you can remove this from the config file:
%
%```latex \pend:def\schemestart{\Picture+{}}
%\append:def\CF_schemestop{\EndPicture} ```
%
%You could get an error otherwise, as there would be nested `\Picture+{}` and
%`\EndPicture` commands.
\EndPreamble

View File

@@ -1,5 +1,5 @@
\section{Debugging your crumb structure}%
\label{section:debugging-crumb-structure}
\label{sec:debugging-crumb-structure}
The crumb structure of your bread provides insights into how well
your fermentation process has gone. You can also spot common flaws
@@ -7,6 +7,7 @@ arising from improper technique. This chapter will provide you with information
that you can use to debug your baking process.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{crumb-structures-book}
\caption[Debugging your crumb structure]{A schematic visualization of
different crumb structures and their respective causes. The final bread's
@@ -18,6 +19,7 @@ that you can use to debug your baking process.
\subsection{Perfect fermentation}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{open-crumb}
\caption[Perfectly fermented bread]{The bread has a somewhat open crumb
with areas featuring a honeycomb structure.}%
@@ -49,6 +51,7 @@ A good rule of thumb is to not touch your dough for at least 1--2~hours before s
to achieve as open a crumb as possible.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{honeycomb}
\caption[Honeycomb crumb structure]{A whole-wheat sourdough with an almost
exclusive honeycomb crumb structure.}%
@@ -75,8 +78,10 @@ of this bread compared to an open crumb.
\label{subsec:overfermented-dough}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{fermented-too-long}
\caption[Overfermented sourdough bread]{A relatively flat dough that has many tiny pockets of air.}%
\caption[Overfermented sourdough bread]{A relatively flat dough that has
many tiny pockets of air.}%
\label{fig:fermented-too-long}
\end{figure}
@@ -154,10 +159,11 @@ room temperature briefly before refrigerating can be beneficial.
\subsection{Underfermented}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{fermented-too-short-underbaked}
\caption[Underfermented bread]{A dense dough featuring a gummy, not fully
gelatinized area. The picture has been provided by the user wahlfeld
from our community Discord server.}%
gelatinized area. The picture has been provided by the user
\emph{wahlfeld} from our community Discord server.}%
\label{fig:fermented-too-short-underbaked}
\end{figure}
@@ -189,11 +195,12 @@ of air in your crumb. But in reality you fermented for too short a period
of time.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{fools-crumb}
\caption[Fool's crumb large alveoli]{A typical example of a fool's crumb
featuring an ear and several overly large alveoli. The picture has been
provided by Rochelle from our community Discord server.}%
\label{fools-crumb}
\label{fig:fools-crumb}
\end{figure}
In a properly fermented dough, the alveoli help with the heat transfer throughout the dough.
@@ -215,7 +222,7 @@ do for your main bread dough. Assuming you use \qty{20}{\percent} starter
calculated on the flour, use a 1:5:5 ratio to feed your starter. That would be
\qty{10}{\gram} of existing starter, \qty{50}{\gram} of flour, \qty{50}{\gram}
of water for instance. To boost your yeast activity even more, you can
consider making a stiff sourdough
consider making a stiff sourdough
starter. The bacteria produces mostly acid. The more acidity
is piled up, the less active your yeast is. The stiff sourdough starter
enables you to start your dough's fermentation with stronger yeast activity
@@ -224,9 +231,10 @@ and less bacterial activity.
\subsection{Not enough dough strength}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{flat-bread}
\caption{A very flat bread without enough dough strength.}%
\label{flat-bread}
\label{fig:flat-bread}
\end{figure}
When a dough flattens out quite a lot during the baking process, the chances are
@@ -249,9 +257,10 @@ The last option to fix a dough with too little dough strength is to shape your d
\subsection{Baked too hot}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{baked-too-hot-v2}
\caption{A bread with very large alveoli close to the crust.}%
\label{baked-too-hot}
\label{fig:baked-too-hot}
\end{figure}
This is a common mistake that has happened to me a lot. When you bake your dough
@@ -280,10 +289,11 @@ turn the fan off, consider using a Dutch oven.
\subsection{Baked with too little steam}
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{no-steam}
\caption[Bread baked with too little steam]{One of my earlier breads that
I~baked at a friend's place where I~couldn't steam the dough properly.}%
\label{no-steam}
\label{fig:no-steam}
\end{figure}
Similar to baking too hot, when baking without enough steam, your dough's crust
@@ -304,11 +314,12 @@ tray on top of my dough, paired with a bowl full of boiling water towards the bo
of the oven.
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{apple-experiment-temperatures}
\caption[Measuring ambient and surface temperature]{An apple with 2 probes
to measure ambient and surface temperatures of several steaming
techniques in a Dutch oven.}%
\label{apple-experiment-temperatures}
\label{fig:apple-experiment-temperatures}
\end{figure}
Now there can also be too much steam. For this I~tested using a Dutch oven paired with large ice
@@ -325,19 +336,21 @@ 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}
\centering
\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.}%
\label{apple-experiment-surface-temperatures}
\label{fig:apple-experiment-surface-temperatures}
\end{figure}
\begin{figure}[ht]
\includegraphics[width=\textwidth]{apple-experiment-ambient-temperatures}
\centering
\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.}%
\label{apple-experiment-ambient-temperatures}
\label{fig:apple-experiment-ambient-temperatures}
\end{figure}
Generally though, achieving too much steam is relatively challenging. I~could only

View File

@@ -8,60 +8,37 @@ situation. You can then apply the appropriate measures and squash each
\section{Starter}
\subsection{My starter does not double in size}
Some bakers call for the sourdough starter to
double in size before using it.
The idea is to use the sourdough starter at
peak performance to ensure a
Some bakers call for the sourdough starter to double in size before using it.
The idea is to use the sourdough starter at peak performance to ensure a
balanced fermentation in the main dough.
The doubling in size metric should be
taken with a grain of salt when judging
your starter. Depending on the flour
you use to feed the starter, different levels
of its rising can be expected.
For instance, if you use rye flour then only
very little gas from the
fermentation can be retained inside the
starter. In consequence, your
sourdough starter will not rise as much. It
could still be in healthy shape. If you use wheat flour with less gluten,
the starter will not rise as
much either. The reason is that you have a weaker
gluten network resulting in
more gas dispersing out of your dough.
The doubling in size metric should be taken with a grain of salt when judging
your starter. Depending on the flour you use to feed the starter, different
levels of its rising can be expected. For instance, if you use rye flour then
only very little gas from the fermentation can be retained inside the starter.
In consequence, your sourdough starter will not rise as much. It could still
be in healthy shape. If you use wheat flour with less gluten, the starter will
not rise as much either. The reason is that you have a weaker gluten network
resulting in more gas dispersing out of your dough.
That being said, it is recommended that you develop
your volume increase
metric. Your starter will increase in size and then
ultimately lose structure
and collapse. Observe the point before it collapses.
This is the point when
you should use your starter. This could be a
\qty{50}{\percent} volume increase, 100
percent or \qty{200}{\percent}. It is always better to use
the starter a little bit
too early rather than too late. If you use the
starter later, reduce the
quantity that you use. If the recipe calls for a 20
percent starter quantity,
use only 10
percent starter in that case. Your starter will
regrow in your main dough.
That being said, it is recommended that you develop your volume increase
metric. Your starter will increase in size and then ultimately lose structure
and collapse. Observe the point before it collapses. This is the point when
you should use your starter. This could be a \qty{50}{\percent} volume
increase, \qty{100}{\percent} or \qty{200}{\percent}. It is always better to
use the starter a little bit too early rather than too late. If you use the
starter later, reduce the quantity that you use. If the recipe calls for a
\qty{20}{\percent} starter quantity, use only \qty{10}{\percent} starter in
that case. Your starter will regrow in your main dough.
On top of relying on the size increase, start
taking note of your starter's
smell. Over time you will be able to judge its
fermentation state based on the
smell. The stronger the smell becomes, the further
your dough has fermented.
This is a sign that you should use less starter
when making the actual dough.
On top of relying on the size increase, start taking note of your starter's
smell. Over time you will be able to judge its fermentation state based on the
smell. The stronger the smell becomes, the further your dough has fermented.
This is a sign that you should use less starter when making the actual dough.
Please refer to
Section~\ref{section:readying-starter}~``\nameref{section:readying-starter}''
for more information on the topic.
Section~\ref{sec:readying-starter}~``\nameref{sec:readying-starter}'' for more
information on the topic.
\subsection{What's the best starter feeding ratio?}
@@ -84,12 +61,12 @@ ferment the dough into which it is later inoculated.
The only exception to the 1:5:5 and 1:10:10 rule is the initial
starter set-up stage. For the first days during the starter-making
process there aren't enough microbes yet. So using a 1:1:1 ratio
can speed up the process.
can speed up the process.
\subsection{What's the benefit of using a stiff sourdough starter?}
A regular sourdough starter has equal parts of
flour and water (\qty{100}{\percent} hydration). A stiffer
sourdough starter features a hydration level of 50 to \qty{60}{\percent}.
A regular sourdough starter has equal parts of flour and water
(\qty{100}{\percent} hydration). A stiffer sourdough starter features a
hydration level of \qtyrange{50}{60}{\percent}.
The stiff sourdough starter boosts the yeast part
of your starter more. This way your gluten degrades
@@ -97,7 +74,7 @@ slower and you can ferment for a longer period. This
is especially handy when baking with lower gluten flours.
You can read more about the topic of stiff sourdough
starters in Section~\ref{section:stiff-starter}.
starters in Section~\ref{sec:stiff-starter}.
\subsection{What's the benefit of using a liquid sourdough starter?}
@@ -106,7 +83,7 @@ fermentation in your starter. This way your starter
tends to produce more lactic acid rather than acetic
acid. Lactic acid is perceived as milder and more
yogurty. Acetic acid can sometimes taste quite
pungent. Acetic acid can be perfect when making
pungent. Acetic acid can be perfect when making
dark rye bread but not so much when making a fluffy
ciabatta-style loaf.
@@ -124,7 +101,7 @@ will need to use strong high-gluten flour when using
this type of starter.
You can read more about the liquid starter in
Section~\ref{section:liquid-starter}
Section~\ref{sec:liquid-starter}
\subsection{My new starter doesn't rise at all}
@@ -141,7 +118,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,23 +165,21 @@ protecting your sourdough starter from aerobic mold entering through
the top.
\begin{figure}[!htb]
\begin{center}
\centering
\includegraphics[width=0.5\textwidth]{sourdough-starter-hooch}
\caption[Hooch] {Hooch building on top of a sourdough
starter~\cite{liquid+on+starter}.}%
\label{fig:hooch}
\end{center}
\end{figure}
Simply stir your sourdough starter to homogenize the hooch back
into your starter. The hooch will disappear. Then use a little bit of
your sourdough starter to set up the starter for your next bread.
Once hooch appears, your starter has likely fermented for a long
period of time. It might be very sour. This state of starter
is excellent to make discard crackers or a discard bread. Don't throw
anything away. Your hooch is a sign that you have a long fermented
dough in front of you. Compare it to a 2 year ripened Parmigiano cheese.
The dough in front of you is full of delicious flavor.
Simply stir your sourdough starter to homogenize the hooch back into your
starter. The hooch will disappear. Then use a little bit of your sourdough
starter to set up the starter for your next bread. Once hooch appears, your
starter has likely fermented for a long period of time. It might be very sour.
This state of starter is excellent to make discard crackers or a discard
bread. Don't throw anything away. Your hooch is a sign that you have a long
fermented dough in front of you. Compare it to a two year ripened Parmigiano
cheese. The dough in front of you is full of delicious flavor.
\subsection{Fixing a moldy sourdough starter}
@@ -251,6 +226,7 @@ fewer and fewer. Furthermore, it seems that lactic acid bacteria produce
metabolites that inhibit mold growth~\cite{mold+lactic+acid+bacteria}.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{fungi-lactic-acid-interactions}
\caption[The interaction of lactic acid bacteria and mold fungi]{The
interaction of lactic acid bacteria and mold fungi.
@@ -309,7 +285,7 @@ to most pathogens that you do not want in your starter.
Another approach that can help is to convert your
sourdough starter into a stiff starter as
described in Section~\ref{section:stiff-starter}.
described in Section~\ref{sec:stiff-starter}.
\subsection{Why does my starter smell like vinegar or acetone?}
@@ -321,12 +297,11 @@ When tasting acetic acid, the flavor of your bread is often perceived
as quite strong.
\begin{figure}[!htb]
\begin{center}
\centering
\input{figures/fig-ethanol-oxidation.tex}
\caption[Acetic acid creation]{Oxygen is required to create acetic
acid~\cite{acetic+acid+production}.}%
\label{fig:ethanol-oxidation}
\end{center}
\end{figure}
This is nothing bad. But if you would like to change
@@ -363,9 +338,9 @@ In \qty{95}{\percent} of all cases, an autolysis
makes no sense. Instead I~recommend
that you conduct a fermentolysis. You
can read more about the autolysis process in
Section~\ref{section:autolysis} and
Section~\ref{sec:autolysis} and
more about the topic of fermentolysis
in Section~\ref{section:fermentolysis}.
in Section~\ref{sec:fermentolysis}.
The fermentolysis combines all the benefits
of the autolysis while eliminating disadvantages
@@ -396,18 +371,19 @@ measure your dough's size increase.
Another option could be to use a more expensive pH meter to measure your
dough's acidity buildup. You can read more about different ways of managing
bulk fermentation in Section~\ref{section:bulk-fermentation}.
bulk fermentation in Section~\ref{sec:bulk-fermentation}.
\subsection{What's a good level of water (hydration) to make a dough?}
Especially when starting to make bread, use lower amounts of water. This will
greatly simplify the whole process. I~recommend using a level of around 60
percent hydration. So for every \qty{100}{\gram} of flour use around \qty{60}{\gram} of water.
This ballpark figure will work for most flours. With this hydration, you can
make bread, buns, pizzas, and even baguettes out of the same dough.
greatly simplify the whole process. I~recommend using a level of around
\qty{60}{\percent} hydration. So for every \qty{100}{\gram} of flour use
around \qty{60}{\gram} of water. This ballpark figure will work for most
flours. With this hydration, you can make bread, buns, pizzas, and even
baguettes out of the same dough.
With the lower hydration, dough handling becomes easier and you have more yeast
fermentation, resulting in lower over-fermentation risk.
With the lower hydration, dough handling becomes easier and you have more
yeast fermentation, resulting in lower over-fermentation risk.
\subsection{My dough completely tears after a long fermentation}
@@ -423,13 +399,14 @@ the more gluten is broken down. As the gluten holds the
wheat dough together, your dough will ultimately tear.
\begin{figure}[!htb]
\centering
\includegraphics[width=1.0\textwidth]{tearing-dough}
\caption[Dough tearing]{My dough tearing after 24~hours of no activity.}%
\label{fig:tearing-dough}
\end{figure}
In the picture~\ref{fig:tearing-dough} I~experimented with
using a starter that has not been fed for 30 days at room temperature.
using a starter that has not been fed for 30~days at room temperature.
I~tried to make a dough directly out of the unfed starter.
Typically after a long period
without feedings your microbes start to sporulate and go
@@ -485,7 +462,7 @@ in a stronger gluten network toward the end
of the fermentation~\cite{stiff+starter}. Please
also refer to the Subsection~\ref{subsec:overfermented-dough} where
I~explained more about overfermented doughs. You can also
refer to Section~\ref{section:stiff-starter} with more details on
refer to Section~\ref{sec:stiff-starter} with more details on
making a stiff sourdough starter.
Furthermore, a stronger flour containing more gluten
@@ -606,7 +583,7 @@ I~tested a regular starter, a liquid starter and a stiff
starter. The stiff starter by far created the most \ch{CO2}
compared to the other starters. As a consequence, the stiff
starter balloon was inflated the most~\cite{stiff+starter}. You can read more
about the topic of stiff starters in Section~\ref{section:stiff-starter}.
about the topic of stiff starters in Section~\ref{sec:stiff-starter}.
Another unconventional approach could be to add baking
powder to your dough. The baking powder neutralizes the
@@ -739,7 +716,7 @@ will climb to \qty{30}{\degreeCelsius} try to start your dough
with \qty{30}{\degreeCelsius} water. This means that you can carefully rely on
a small fermentation sample (aliquot jar) that visualizes your fermentation
progress. To read more about this technique refer
to Section~\ref{section:bulk-fermentation}.
to Section~\ref{sec:bulk-fermentation}.
The sample only works reliably if your dough temperature
is equal to your ambient temperature. Else the sample heats
@@ -758,27 +735,10 @@ fermentation at a pH of around 4.1. Please don't just
follow my pH value; it's very individual. Keep measuring
with different doughs to find out a value that works for you.
\subsection{My flour has low gluten content --- what should I~do?}
\subsection{My flour has low gluten content---what should I~do?}
You can always mix in a little bit of vital wheat gluten. Vital wheat gluten
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.

View File

@@ -9,6 +9,14 @@
}}
\Configure{AddCss}{style.css}
\AddToHook{env/tikzpicture/begin}{\fontfamily{opensans-TLF}\selectfont}
\Configure{@HEAD}{\HCode{
<style type="text/css">
@import url('https://fonts.cdnfonts.com/css/open-sans');
body{
font-family: 'Open Sans';
}
</style>}}
\ConfigureEnv{titlepage}{\ifvmode\IgnorePar\fi\EndP\HCode{<main class="titlepage">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</main>}}{}{}
% Mini TOC
@@ -39,5 +47,17 @@
}
\ConfigureToc{loc}{\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br />}}
\ExplSyntaxOn
\def\standaloneenv#1{}
\pend:def\schemestart{\Picture+{}}
\append:def\CF_schemestop{\EndPicture}
\ExplSyntaxOff
\makeatletter
\def\texfourht@tikz@begin{
\protect\csname nested:math\endcsname% support display math
\Picture+[\csname a:Picture-alt\endcsname]{}%
}
\makeatother
\begin{document}
\EndPreamble

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -1,9 +1,13 @@
\chapter{Wheat sourdough}%
\label{ch:wheat-sourdough}
\begin{quoting}
In this chapter, you will learn how to make
freestanding wheat sourdough bread.
\end{quoting}
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{loaf-pan-free-standing.jpg}
\caption[Freestanding and loaf pan bread]{A freestanding sourdough bread
next to bread made in a loaf pan. Freestanding sourdough is considered
@@ -30,14 +34,13 @@ My key learning was that there is no recipe that
you can blindly follow. You will always have to adapt the recipe
to your locally available tools and environment.
But do not worry. After reading this chapter you will know
all the signs to look out for. You will be able to read your dough.
You will turn into a confident hobby baker who can bake bread
at home, at high altitudes, at low altitudes, in summer, in winter,
at your friend's place, and even on vacation. Furthermore,
you will know how to scale your production from 1 loaf to 100 loaves of bread.
If you ever wanted to open up a bakery, consider this knowledge to
be your foundation.
But do not worry. After reading this chapter you will know all the signs to
look out for. You will be able to read your dough. You will turn into a
confident hobby baker who can bake bread at home, at high altitudes, at low
altitudes, in summer, in winter, at your friend's place, and even on vacation.
Furthermore, you will know how to scale your production from one loaf to
hundred loaves of bread. If you ever wanted to open up a bakery, consider
this knowledge to be your foundation.
Mastering this process will enable you to make amazing bread
that tastes much better than any store-bought bread.
@@ -45,11 +48,10 @@ that tastes much better than any store-bought bread.
\section{The process}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-wheat-sourdough-process.tex}
\caption{The typical process of making a wheat-based sourdough bread.}%
\label{fig:wheat-sourdough-process}
\end{center}
\end{flowchart}
The whole process of making great sourdough bread starts with
@@ -88,18 +90,18 @@ All the steps rely on each other. You will need to get each of
the steps right to make the perfect bread.
\section{Readying your starter}%
\label{section:readying-starter}
\label{sec:readying-starter}
The most crucial part of the bread-making process is your starter.
The starter is what starts the fermentation in your main dough.
If your starter is off, then your main dough is also going
to cause trouble during the fermentation. Your starter's
properties are passed on to your main dough. If your starter
doesn't have a good balance of yeast to bacteria, so will your
doesn't have a good balance of yeast to bacteria, neither will your
main dough.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-starter-readiness.tex}
\caption[Process to prepare your starter before baking]{The process to check
your sourdough starter when making wheat-based doughs. In practice
@@ -110,7 +112,6 @@ main dough.
shown water quantities, i.e., if the chart shows \qty{100}{\gram} of
water, use \qtyrange{50}{60}{\gram} of water for your stiff starter.}%
\label{fig:process-starter-wheat-sourdough}
\end{center}
\end{flowchart}
Generally, think of the dough you are mixing as a big starter with salt.
@@ -137,14 +138,14 @@ 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
always use a stiffer sourdough starter due to its enhanced
yeast fermentation advantages (see Section~\ref{section:stiff-starter})
my ratio is never 1:5:5. My ratio would be 1:5:2.5 (1 part old starter,
5 parts flour, 2.5 parts water). If it is very warm where you live
yeast fermentation advantages (see Section~\ref{sec:stiff-starter})
my ratio is never 1:5:5. My ratio would be 1:5:2.5 (1~part old starter,
5~parts flour, 2.5~parts water). If it is very warm where you live
you could opt for the aforementioned 1:10:5 or 1:20:10. This
way you slow down the ripening of your starter. You can also use this
trick to make starter feeding work with your schedule.
@@ -160,7 +161,7 @@ regrows inside of your main dough. While I~would normally use
as low as \qty{1}{\percent} starter. This way the microorganisms have
more room to balance out while fermenting the dough. If my sourdough
starter has not been fed in a day, I~might use \qty{5}{\percent} of sourdough
to make a dough. If I~push this to 2 days without feedings,
to make a dough. If I~push this to 2~days without feedings,
I~lower the starter amount even further. I~would opt for the
previously mentioned \qty{1}{\percent} starter. If the food is very scarce,
your microorganisms will sporulate. They need to regrow again
@@ -175,8 +176,8 @@ Furthermore, you want your microorganisms to outcompete
other pathogens contained in the flour. The less starter
you use, the easier it is for them to reproduce. A strong
starter will outcompete other germs. While the method of
reducing the starter works, I~recommend Option 1 more.
It will reliably create better bread. Option 2 is typically
reducing the starter works, I~recommend Option~1 more.
It will reliably create better bread. Option~2 is typically
what I~use when I~fed my starter in the morning but didn't
manage to make a dough in the evening. I~don't want to feed
my starter again the next morning. I~would like to make a dough
@@ -204,7 +205,7 @@ Especially when getting started I~recommend using bread flour which
contains more gluten than all-purpose or cake flour. This is essential
when trying to bake a freestanding loaf with sourdough.
Find below an example recipe for 1 loaf including baker's math calculation:
Find below an example recipe for one loaf including baker's math calculation:
\begin{itemize}
\item \qty{400}{\gram} of bread flour
@@ -233,7 +234,7 @@ recipe would look like this:
This is the beauty of baker's math. Simply recalculate the percentages, and you
are good to go. If you are unsure about how this works, please check out the
full Section~\ref{section:bakers-math} which looks at the topic in detail.
full Section~\ref{sec:bakers-math} which looks at the topic in detail.
\section{Hydration}
@@ -247,8 +248,8 @@ When a seed gets into contact initially, the outer layers soak up the water.
That's why when using whole-wheat (still containing these layers) you have to
use a little bit more water.
By forming gluten strands, water is absorbed into your dough's gluten matrix. The higher the
protein value, the more water can be used.
By forming gluten strands, water is absorbed into your dough's gluten matrix.
The higher the protein value, the more water can be used.
Some bakers like to use highly hydrated doughs to create fluffier
bread\footnote{Sometimes it almost feels like a comparison of skill value
@@ -310,16 +311,16 @@ offers by simply letting your dough ferment for a longer period.
Slowing the fermentation process is easy. Use less
sourdough starter or ferment in a cooler environment.
There are two reasons for the slow fermentation advantages.
As explained earlier, both the protease enzyme and bacteria break down your
gluten network. So as fermentation progresses, your dough will automatically
become more extensible. This is because the rubber layers of your car tire
are slowly converted and eaten. Ultimately your car tire turns into a balloon
that can very easily be inflated. When waiting too long, the
balloon will burst. You will have no gluten left anymore, and your dough
becomes very sticky. Finding the sweet spot of enough rubber eating and not
too much is what the perfect wheat sourdough bread is about. But don't worry --- after reading
this chapter you will have the right tools at your disposal.
There are two reasons for the slow fermentation advantages. As explained
earlier, both the protease enzyme and bacteria break down your gluten network.
So as fermentation progresses, your dough will automatically become more
extensible. This is because the rubber layers of your car tire are slowly
converted and eaten. Ultimately your car tire turns into a balloon that can
very easily be inflated. When waiting too long, the balloon will burst. You
will have no gluten left anymore, and your dough becomes very sticky. Finding
the sweet spot of enough rubber eating and not too much is what the perfect
wheat sourdough bread is about. But don't worry---after reading this chapter
you will have the right tools at your disposal.
The advantages of slow fermentation can be nicely observed when experimenting
with a fast-fermenting yeast dough (\qty{1}{\percent} dry yeast based on flour). The
@@ -354,8 +355,8 @@ If you are just getting started with a new batch of flour,
I~recommend conducting the following test. This will help you to
identify the sweet spot of your flour's hydration capabilities.
Make 5 bowls with each \qty{100}{\gram} of flour. Add different slightly increasing
water amounts to each of the bowls.
Make five bowls with each \qty{100}{\gram} of flour. Add different slightly
increasing water amounts to each of the bowls.
\begin{itemize}
\item \qty{100}{\gram} of flour, \qty{55}{\gram} of water
@@ -377,6 +378,7 @@ to feed your starter.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{window-pane-effect}
\caption[The window pane test]{The window pane test allows you to see if you
developed your gluten well enough.}
@@ -407,7 +409,7 @@ your dough. The warmer the temperature, the faster the process; the colder, the
slower the process.
While food is available, the microorganisms will reproduce and increase in
quantity. The process is a self-limiting: it stops when there is no
quantity. The process is self-limiting: it stops when there is no
more food available. This can be compared to wine making where
the yeast ultimately sporulates and dies as ethanol levels increase. The ethanol creates an
environment that makes it impossible for other
@@ -450,11 +452,11 @@ explained earlier, your
bread dough is essentially a gigantic starter. The low inoculation rate allows
the starter to regrow inside your main dough into a desirable balance.
Furthermore, the enzymes have enough time to break down the flour. This also
allows me to skip the so-called autolysis step completely (more in the next chapter).
allows me to skip the so-called autolysis step completely (more in the next section).
This greatly simplifies the whole process.
\section{Autolysis}%
\label{section:autolysis}
\label{sec:autolysis}
Autolysis describes the process of just mixing flour and water and letting
this sit for a period of around 30~minutes up to several hours. After this
@@ -467,7 +469,7 @@ The overall time that flour and water are in contact is extended. Thus you get t
beneficial enzymatic reactions that improve the taste and characteristics of the
dough. I~do not recommend autolysis as it adds an unnecessary step to the
process. Instead, I~recommend the fermentolysis technique which will be covered in the
next chapter of this book.
next section of this book.
The effects of autolysis are very interesting. Try to mix just flour and
water and let that sit for a day. During the day, check the consistency of
@@ -506,7 +508,7 @@ For that reason, I~am strongly advocating utilizing the fermentolysis approach
which greatly simplifies the mixing and kneading process.
\section{Fermentolysis}%
\label{section:fermentolysis}
\label{sec:fermentolysis}
The fermentolysis creates the same advantageous dough properties the
autolysis creates without the headache of mixing your dough twice. You do this
@@ -520,32 +522,33 @@ value to \qtyrange{5}{10}{\percent}. The other option could be to place the doug
environment and thus reduce the speed at which your microorganisms replicate.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-starter-usage-activity.tex}
\caption[Quantity of sourdough]{A table visualizing how much sourdough
starter to use depending on temperature and the starter's activity
level.}
\end{center}
\end{table}
Based on my experience and my sourdough, my ideal bread always takes around 8
to 12~hours during bulk fermentation. Based on my availability throughout
the day, I~use a higher or lower starter quantity. If I~wanted to achieve a completed
fermentation in 8~hours, I~would opt for a \qty{10}{\percent} sourdough starter. If
I~wanted it to be ready in 12~hours, I~would opt for less starter, around \qty{5}{\percent}.
Simply mix all the ingredients and your fermentation begins. The
enzymes and microorganisms commence their work. On a very warm summer day, the
mentioned quantities no longer work. With a \qty{10}{\percent} starter, the same dough
would be ready in 5~hours up to a point of no return. Another additional hour
would cause the dough to break down too much. In this case, I~would opt for 5
percent sourdough starter to slow the whole process down to reach the 8 to 12
hour window again. If it is very hot, I~might use as little as \qty{1}{\percent}
sourdough starter\footnote{Please take these values with a grain of salt as
they depend on your flour and your sourdough starter. These are values that
you have to experiment with. After baking a couple of breads you will be able
to read your dough much better.}. You have to play with the timings on your own.
Rather than relying on timing though, I~will show you a much better and more precise approach
by using a fermentation sample. This will be covered later in this chapter.
to 12~hours during bulk fermentation. Based on my availability throughout the
day, I~use a higher or lower starter quantity. If I~wanted to achieve a
completed fermentation in 8~hours, I~would opt for a \qty{10}{\percent}
sourdough starter. If I~wanted it to be ready in 12~hours, I~would opt for
less starter, around \qty{5}{\percent}. Simply mix all the ingredients and
your fermentation begins. The enzymes and microorganisms commence their work.
On a very warm summer day, the mentioned quantities no longer work. With a
\qty{10}{\percent} starter, the same dough would be ready in 5~hours up to a
point of no return. Another additional hour would cause the dough to break
down too much. In this case, I~would opt for \qty{5}{\percent} sourdough
starter to slow the whole process down to reach the 8 to 12~hour window again.
If it is very hot, I~might use as little as \qty{1}{\percent} sourdough
starter\footnote{Please take these values with a grain of salt as they depend
on your flour and your sourdough starter. These are values that you have
to experiment with. After baking a couple of breads you will be able to
read your dough much better.}. You have to play with the timings on your
own. Rather than relying on timing though, I~will show you a much better and
more precise approach by using a fermentation sample. This will be covered
later in this chapter.
Even for yeasted doughs, I~no longer use autolysis. I~just reduce the amount
of yeast that I~am using. Opting for the fermentolysis will
@@ -561,11 +564,10 @@ all the gases during the fermentation process. Without the gluten network,
the gases would just diffuse out of your dough.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-kneading-process.tex}
\caption{The gluten development process for a wheat-based dough.}%
\label{fig:wheat-sourdough-kneading-process}
\end{center}
\end{flowchart}
It might sound odd, but the most important part of kneading is waiting. By
@@ -583,7 +585,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
@@ -591,8 +594,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
@@ -620,7 +621,7 @@ by adding water and kneading again. This is a great trick to make
a more extensible dough with lower-gluten flour~\cite{bassinage+technique}.
When machine kneading a dough, opt for the same technique shown in
figure~\ref{fig:wheat-sourdough-kneading-process}. Initially opt for a low
Flowchart~\ref{fig:wheat-sourdough-kneading-process}. Initially opt for a low
speed. This helps the homogenization process.
After waiting to allow the flour to soak up the water, proceed on a higher speed
setting. A good sign of a well-developed gluten network is
@@ -629,6 +630,7 @@ The elasticity is higher than the desire of the
dough to stick to the container.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{dough-strength-sourdough}
\caption[Dough strength over time with kneading]{A schematic visualization
of gluten development in sourdoughs with different kneading techniques.
@@ -645,6 +647,7 @@ much. This is a common problem beginners face. Sticky dough is frequently
the sign of a not well enough developed gluten network.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{dough-surface-touchpoints}
\caption[Touching the dough surface]{A schematic visualization of how a rough
dough surface creates more touch points compared to a smooth dough
@@ -675,7 +678,7 @@ affecting the quality of the bread~\cite{oxidization+dough}.
The last step before beginning bulk fermentation is to
create a smooth dough ball. By making sure your dough's surface is
smooth, you will have fewer touch points when touching the dough.
See figure~\ref{fig:dough-touch-points} for a schematic visualization
See Figure~\ref{fig:dough-touch-points} for a schematic visualization
of how your hand touches a rugged and smooth dough.
With the smooth surface, your dough is going to stick less on your hands. Applying
later stretches and folds will be a lot easier. Without a smooth
@@ -684,6 +687,7 @@ becomes an impossible task. This is a frequent mistake I~see many
new bakers commit.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{dough-ball-steps}
\caption[Creating a smooth surface]{The transformation of a sticky dough
blob to a dough with a smooth surface. The goal is to reduce surface
@@ -706,7 +710,7 @@ you can't stretch the gluten. Always imagine you are touching something utterly
By doing so you will automatically try to touch the dough as little
as possible. Keep repeating the process until you see that the dough
has a nice smooth surface. The final dough should look like the dough
shown in~\ref{fig:dough-ball-steps}.
shown in Figure~\ref{fig:dough-ball-steps}.
If your outer gluten layer tears, you have overstretched your dough. In
that case, take a 10-minute break, leaving your dough on the kitchen countertop.
@@ -721,7 +725,7 @@ Later, you don't have any room for error. Your technique has to be on point.
An over-pre-shaped dough can potentially not recover.
\section{Bulk fermentation}%
\label{section:bulk-fermentation}
\label{sec:bulk-fermentation}
After mixing the starter into your dough, the next stage of
the process known as bulk fermentation begins. The term
@@ -751,12 +755,11 @@ flavor of the resulting bread is better compared to a pale
underfermented dough.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-fermentation-effects.tex}
\caption[Stages of sourdough fermentation]{The different stages of
sourdough fermentation and the effects on crumb, alveoli, texture,
and overall taste.}
\end{center}
\end{table}
The worst thing you can do when fermenting sourdough
@@ -772,12 +775,12 @@ turning it into a gigantic sticky fermented pancake. This
is one of the reasons why the current baking industry prefers
to make solely yeast-based doughs. By removing the bacteria
from the fermentation, the whole process becomes a lot more
predictable. The room for error (as shown in figure~\ref{fig:wheat-yeast-sourdough-degradation})
is much larger. The doughs are perfect to be made in a
machine.
predictable. The room for error (as shown in
Figure~\ref{fig:wheat-yeast-sourdough-degradation}) is much larger. The doughs
are perfect to be made in a machine.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-bulk-fermentation.tex}
\caption[Process to check the bulk fermentation]{During the bulk
fermentation, multiple doughs are fermented together in bulk. A
@@ -785,7 +788,6 @@ machine.
stage of fermentation is completed. This chart shows multiple available
options to check on the bulk fermentation progress.}%
\label{fig:bulk-fermentation}
\end{center}
\end{flowchart}
Experienced bakers will tell you to go by the look and feel of
@@ -798,8 +800,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
@@ -814,12 +815,11 @@ up to \qty{100}{\percent} with subsequent bakes. Then identify a value
that you are happy with.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-dough-size-increase.tex}
\caption[Increase of size versus protein content]{Reference values for
how much size increase to aim for with an aliquot jar depending on
the dough's protein content.}
\end{center}
\end{table}
The beauty of the aliquot is that no matter the surrounding
@@ -830,6 +830,7 @@ dough exactly on point.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{aliquot-before-after}
\caption[Aliquot Jar]{An aliquot jar to monitor the dough's fermentation
progress. It took 10~hours for the dough to reach a \qty{50}{\percent}
@@ -896,12 +897,11 @@ bread didn't turn out the way you like, either shorten
the fermentation or extend it a little bit.
\begin{table}[!htb]
\begin{center}
\centering
\input{tables/table-ph-values-dough.tex}%
\caption[Dough's pH during bread preparation]{Example pH values for
the different breakpoints of my own sourdough process.}%
\label{table:sample-ph-values}
\end{center}
\end{table}
The beauty of this method is its reliability. Once you have found
@@ -921,7 +921,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,
@@ -949,6 +954,7 @@ mentioned aliquot sample, look out for a size increase that works
for your sourdough composition.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{bulk-finished-dough}
\caption[Dough at the end of bulk fermentation]{A dough in a good state to
finish bulk fermentation. Notice the tiny bubbles on the dough's surface.
@@ -996,6 +1002,7 @@ bread would feature an excellent, very tangy taste.
\section{Stretch and folds}
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{dough-being-glued}
\caption[Gluing dough]{A dough where two sticky sides are being glued
together using a stretch and fold. This process creates excellent dough
@@ -1011,16 +1018,16 @@ fermentation stage. The process involves stretching the dough and then
folding the dough onto itself. Some recipes call for a single stretch
and fold, others for multiple.
The primary goal of this technique is to provide
additional dough strength to your dough. As shown in figure~\ref{fig:dough-strength-sourdough}
there are multiple ways to create dough strength\footnote{In fact I~have seen many no-knead
recipes calling for no initial kneading, but then applying stretch and folds
during the bulk fermentation. The time required to do all the folds probably
matches the initial kneading time required.}. If you do not knead as much at
the start, you can reach the same level of dough strength by applying stretch
and folds later. The more stretch and folds you do, the more dough strength
you add to your dough. The result will be a more aesthetic loaf that has
increased vertical oven spring.
The primary goal of this technique is to provide additional dough strength to
your dough. As shown in Figure~\ref{fig:dough-strength-sourdough} there are
multiple ways to create dough strength\footnote{In fact I~have seen many
no-knead recipes calling for no initial kneading, but then applying
stretch and folds during the bulk fermentation. The time required to do
all the folds probably matches the initial kneading time required.}.
If you do not knead as much at the start, you can reach the same level of
dough strength by applying stretch and folds later. The more stretch and folds
you do, the more dough strength you add to your dough. The result will be a
more aesthetic loaf that has increased vertical oven spring.
Sometimes, if the dough is very extensible
and features very high hydration, stretching and folding is essential.
@@ -1040,11 +1047,12 @@ large cavities in your final dough's crumb, then you might be able to fix that
by applying more stretch and folds\footnote{In many cases these cavities can
also happen when a dough does not ferment enough. The crumb is commonly called
Fool's Crumb. Refer to the later Debugging Crumb Structures chapter of this
book to learn more about it.}. Please refer to Section~\ref{section:debugging-crumb-structure}
``\nameref{section:debugging-crumb-structure}'' for more information on reading
book to learn more about it.}. Please refer to Section~\ref{sec:debugging-crumb-structure}
``\nameref{sec:debugging-crumb-structure}'' for more information on reading
your crumb.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{stretch-and-fold-steps}
\caption[Stretch and fold steps]{An overview of the steps involved to perform
stretch and folds for wheat-based doughs.}%
@@ -1072,16 +1080,15 @@ once all around your dough until the dough is free of your container's edges.
Wet your hands one more time and then carefully lift one side of the dough with
two hands placed in the center upwards. Make a fold in the center of the dough.
The upper smooth side needs to be placed on the bottom of the container. By doing
so, you will be gluing together the two sticky bottom sides. The top smooth side should
not be sticky in your hands, while the bottom rough surface should tend
to stick to your hands. Rotate the container
and repeat the same thing from the other side. Rotate the container 90°
and then repeat the process once again. Rotate the container another 180° in
the same direction
and repeat the fold one last time. By doing so you have applied 4 folds in total. Your
dough should now stay in place and resist flowing outwards\footnote{Please
also refer to~\cite{stretch+and+fold+technique} for a video showing you how to
best perform the technique.}.
so, you will be gluing together the two sticky bottom sides. The top smooth
side should not be sticky in your hands, while the bottom rough surface should
tend to stick to your hands. Rotate the container and repeat the same thing
from the other side. Rotate the container \ang{90} and then repeat the process
once again. Rotate the container another \ang{180} in the same direction and
repeat the fold one last time. By doing so you have applied four folds in
total. Your dough should now stay in place and resist flowing
outwards\footnote{Please also refer to~\cite{stretch+and+fold+technique} for a
video showing you how to best perform the technique.}.
In theory, there is no limit to how often you can stretch and fold. You could
apply one every 15~minutes. If your dough has enough dough strength already,
@@ -1093,9 +1100,10 @@ will tear. In that case, you just have to wait for at least 5--10~minutes until
the gluten bonds heal and you can try again. When the gluten does not heal
anymore, chances are you have pushed the fermentation for too long. Likely
most of the gluten has broken down and you are already
in the decay stage shown in figure~\ref{fig:dough-strength-sourdough}.
in the decay stage shown in Figure~\ref{fig:dough-strength-sourdough}.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{dough-requiring-stretch-and-fold}
\caption[A flattened out dough]{A dough during bulk fermentation that has
flattened out. To improve its dough strength, a stretch and fold should
@@ -1120,12 +1128,11 @@ The step is required if you are making multiple loaves in one
batch. It is optional if you are making a single loaf.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-dividing-preshaping.tex}
\caption[Is dividing your dough required check]{Dividing is only required when you are
making multiple loaves in a single dough batch.}%
\label{fig:dividing-decision-tree}
\end{center}
\end{flowchart}
The goal of dividing your dough into smaller pieces is to portion
@@ -1141,6 +1148,7 @@ Quick movements with a knife or dough scraper help to prevent the
dough from sticking too much to your tools.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{divide-preshape}
\caption{The steps of dividing and preshaping your dough.}
\end{figure}
@@ -1148,7 +1156,7 @@ dough from sticking too much to your tools.
I~sometimes like to draw small lines with the dough scraper's edge
on the large dough mass before cutting it into smaller pieces.
This helps me to better plan where I~want to do my incisions. When
I~plan to make 8 loaves I~try to use the lines to divide the dough
I~plan to make 8~loaves I~try to use the lines to divide the dough
into 8 equally sized portions before cutting. If this is not precise enough,
you can use the aforementioned scale.
@@ -1170,14 +1178,16 @@ Pre-shaping is done for several reasons:
If you are making a single loaf from one dough batch the step is not required.
In that case, you can directly proceed with shaping, skipping this step.
The pre-shaping technique is the same as the process figure~\ref{fig:dough-ball-steps}.
Whereas earlier you could tear the dough's surface this could now result in a catastrophe.
For this reason, I~recommend practicing this step for as long as you need after kneading.
The gluten network might be so extensible and degraded at this point that there
is hardly any room for error. The dough wouldn't come together again. The only
way to save such dough is to use a loaf pan.
The pre-shaping technique is the same as the process
Figure~\ref{fig:dough-ball-steps}. Whereas earlier you could tear the dough's
surface this could now result in a catastrophe. For this reason, I~recommend
practicing this step for as long as you need after kneading. The gluten
network might be so extensible and degraded at this point that there is hardly
any room for error. The dough wouldn't come together again. The only way to
save such dough is to use a loaf pan.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{preshape-direction}
\caption[Dragging direction]{Drag the dough in the direction of the rough
surface area. This way you minimize the movements required to complete
@@ -1185,14 +1195,14 @@ way to save such dough is to use a loaf pan.
\label{fig:preshape-direction}
\end{figure}
Pre-shape the dough as much as is needed to round up the top
surface area. Try to touch the dough as little as possible
to reduce its ability to stick to your hands. Drag the dough
in the direction where you see a rough surface area. In
case you have too little space to drag the dough because it might
fall from the edge of your counter, simply lift it with a swift movement and place
it in a better position for pre-shaping. Please refer to figure~\ref{fig:preshape-direction}
for a visualization showing the pre-shaping direction.
Pre-shape the dough as much as is needed to round up the top surface area. Try
to touch the dough as little as possible to reduce its ability to stick to
your hands. Drag the dough in the direction where you see a rough surface
area. In case you have too little space to drag the dough because it might
fall from the edge of your counter, simply lift it with a swift movement and
place it in a better position for pre-shaping. Please refer to
Figure~\ref{fig:preshape-direction} for a visualization showing the
pre-shaping direction.
Try to set yourself a limit of movements to finish pre-shaping
a dough. Then you will be more conscious about each movement
@@ -1202,6 +1212,7 @@ numbers could be if you on purpose want to even out the crumb
structure of your final loaves further.
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{preshaped-dough}
\caption{Baguette doughs resting after preshaping.}%
\label{fig:dough-after-preshaping}
@@ -1235,12 +1246,11 @@ your environment.
\section{Shaping}
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-shaping-process.tex}
\caption[Sourdough shaping process]{A schematic visualization of the shaping process
including checks for an overfermented dough.}%
\label{fig:shaping-decision-tree}
\end{center}
\end{flowchart}
Shaping will give your dough the final shape before baking. After
@@ -1278,21 +1288,22 @@ batard bread rolls.
\label{fig:shaping-flour-surface}
\end{figure}
If you are only making 1 loaf out of your dough, apply flour
If you are only making one loaf out of your dough, apply flour
generously to the top layer of your dough. Rub the flour onto your
dough with your hands. Flip over your container. Wait a little bit
to allow the dough to release itself from the container. Proceed
with step 3.
with step~3.
If you divided and pre-shaped, apply flour generously to the dough's
top layer as well. With gentle hands spread the flour evenly across
the dough's surface. See figure~\ref{fig:shaping-flour-surface} for a
the dough's surface. See Figure~\ref{fig:shaping-flour-surface} for a
visual representation of how your dough should look after coating
the surface.
\subsection[Flipping the dough]{Flip the dough over}
\begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{step-2-flipped-over}
\caption[Step 2 of shaping process]{A flipped-over dough. Note how the
sticky side is facing you while the floured side is facing the
@@ -1313,6 +1324,7 @@ sticky side is facing you.
\subsection[Create rectangular shape]{Make the dough rectangular}
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{step-3-rectangular}
\caption[Step 3 of shaping process]{A flipped-over dough. Note how the
sticky side is facing you while the floured side is facing the
@@ -1329,12 +1341,13 @@ it has a more rectangular shape. While stretching, make sure to touch
the sticky side as little as possible. Place your hands on the bottom
floured side and the edge of the sticky side. With gentle hands,
stretch the dough until the shape in front of you looks rectangular.
Refer to figure~\ref{fig:shaping-rectangular-dough} and compare
Refer to Figure~\ref{fig:shaping-rectangular-dough} and compare
your dough with the shown dough.
\subsection[Folding]{Fold the dough together}
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{step-4-folding}
\caption[Step 4 of shaping process]{The process of folding a batard. Note
how the rectangle is first glued together and then rolled inwards to
@@ -1368,7 +1381,7 @@ now faces you.
Start to roll the dough inwards beginning at the top of the dough.
Keep rolling the dough inwards until you have created a dough roll.
Refer to figure~\ref{fig:shaping-folding} for a full visual
Refer to Figure~\ref{fig:shaping-folding} for a full visual
representation of the process.
If your dough does not hold its shape, chances are you have pushed
@@ -1377,7 +1390,7 @@ and the dough won't be able to hold its shape. In this case,
the best option is to use a loaf pan to bake your bread. The
final bread will taste amazing but not offer the same texture
a freestanding bread would offer. Please refer to
Section~\ref{section:debugging-crumb-structure} for more
Section~\ref{sec:debugging-crumb-structure} for more
details on how to properly read your dough's crumb structure.
\subsection[Sealing]{Sealing the edges}
@@ -1394,6 +1407,7 @@ from the other side as well.
\subsection[Proofing preparation]{Prepare for proofing}
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{step-6-prepare-proofing}
\caption[Step 5 of shaping process]{The shaped dough is ready for proofing
in the banneton. Note how the seam side is now facing you. The floured
@@ -1425,16 +1439,16 @@ applies when making other doughs such as baguette doughs. The floured
surface will always be downwards facing. The dough is then flipped over
once for baking.}.
Proceed and lift the dough with 2 hands from the counter.
Gently rotate it once and then place the dough in your
banneton for proofing\footnote{The seam side should now be facing you.
Some bakers like to seal the seam a little more. I~did
not notice that this improves the dough's strength. As far as I~can
tell, this only improves the visual appearance of the bottom side
of the final loaf.}. If you did everything right, then your
dough should look somewhat similar to the dough shown in figure~\ref{fig:shaping-prepare-proofing}.
As the last step of shaping, place a kitchen towel over your banneton
or bowl and begin proofing.
Proceed and lift the dough with both hands from the counter. Gently rotate it
once and then place the dough in your banneton for proofing\footnote{The seam
side should now be facing you. Some bakers like to seal the seam a little
more. I~did not notice that this improves the dough's strength. As far as
I~can tell, this only improves the visual appearance of the bottom side of
the final loaf.}.
If you did everything right, then your dough should look somewhat similar to
the dough shown in Figure~\ref{fig:shaping-prepare-proofing}. As the last
step of shaping, place a kitchen towel over your banneton or bowl and begin
proofing.
\section{Proofing}
@@ -1460,29 +1474,28 @@ their biochemical processes. More research is needed on the topic
of retarding and flavor development.
\begin{flowchart}[!htb]
\begin{center}
\centering
\input{figures/fig-proofing-process.tex}
\caption[Sourdough proofing process]{A schematic overview of the different steps of
the sourdough proofing process. The proofing technique to choose depends
on your availability and schedule.}%
\label{fig:proofing-process}
\end{center}
\end{flowchart}
To me, the sole purpose of cold-proofing is its ability to allow you
to better manage the timing of the whole process. Assuming you finished shaping
your dough at 10 pm, chances are you wouldn't want to wait for another
2~hours to proof the dough and then another 1 hour to bake it. In this case,
you can move your dough directly to the fridge after shaping. Your
dough will be proofing overnight in the fridge. Then it can be baked at any time
the following day (there are a few exceptions; more on that later).
This is especially handy for large-scale bakeries that use fridge-proofing
extensively. Some of the doughs are proofed a day before and placed in the fridge.
Early in the morning, they can be baked directly out of the fridge. Within 2
hours they will be ready to sell the first bread to morning customers. If
throughout the day more bread is needed, they simply take some proofed dough out
of the fridge and bake it. The time frame in which you can bake retarded
dough is big. It can be as little as 6~hours later up to 24~hours later.
To me, the sole purpose of cold-proofing is its ability to allow you to better
manage the timing of the whole process. Assuming you finished shaping your
dough at 10 pm, chances are you wouldn't want to wait for another 2~hours to
proof the dough and then another hour to bake it. In this case, you can move
your dough directly to the fridge after shaping. Your dough will be proofing
overnight in the fridge. Then it can be baked at any time the following day
(there are a few exceptions; more on that later). This is especially handy
for large-scale bakeries that use fridge-proofing extensively. Some of the
doughs are proofed a day before and placed in the fridge. Early in the
morning, they can be baked directly out of the fridge. Within 2~hours they
will be ready to sell the first bread to morning customers. If throughout the
day more bread is needed, they simply take some proofed dough out of the
fridge and bake it. The time frame in which you can bake retarded dough is
big. It can be as little as 6~hours later up to 24~hours later.
Assuming you made an overnight dough and your dough is ready in the morning,
the situation might be different. You potentially want to bake the dough directly
@@ -1501,6 +1514,7 @@ works great if you make an overnight dough and then proof it the next
morning.
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{step-13-finger-poke-test}
\caption[The finger poke test]{The finger poke test is a very reliable
method to check if your dough has been properly proofed. If the induced
@@ -1511,15 +1525,15 @@ morning.
The time it takes to proof your dough can be anything between 30~minutes and
3~hours. Rather than relying on timing, most bakers use the finger poke test.
Flour your thumb and gently press around 0.5cm up to 1cm deep into the dough.
Try this directly after shaping. You will notice that the created dent will
recover quickly. It will be gone again after 1 minute.
Flour your thumb and gently press around \qtyrange{0.5}{1}{cm} deep into the
dough. Try this directly after shaping. You will notice that the created dent
will recover quickly. It will be gone again after one minute.
As you proceed with proofing, your dough will fill up with more gas. At the
same time, the dough will become more extensible. Once it starts to reach the
right amount of fluffiness and extensibility, the dent will disappear more slowly.
Once the dough is ready for scoring and baking the dent should still be visible after
1 minute of waiting.
right amount of fluffiness and extensibility, the dent will disappear more
slowly. Once the dough is ready for scoring and baking the dent should still
be visible after one minute of waiting.
I~recommend performing the finger poke test once every 15~minutes throughout
the proofing stage. Realistically, based on my experience, proofing takes at least
@@ -1571,7 +1585,7 @@ A reliable way to ensure consistent proofing is to opt for using a pH
meter. By checking the amount of piled-up acidity you can ensure
each of your doughs has the right amount of acidity. Opt for an iterative
approach and check the pH for multiple proofing times. Find the pH
the value that creates the best bread for you. Once you have identified
value that creates the best bread for you. Once you have identified
your perfect pH value you can resort to that number on all following
doughs. See Table~\ref{table:sample-ph-values} for some sample pH values
to follow.
@@ -1594,6 +1608,7 @@ greatly boosts the contrast of the scoring incisions and thus
makes the final pattern look more visually appealing.
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{the-ear}
\caption[Bread's ear]{The ear is a characteristic that can be achieved on
wheat sourdough when fermenting and scoring your dough with the perfect
@@ -1609,6 +1624,7 @@ The dough's top side which was previously at the bottom of the
banneton should now be facing you.
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{artistic-scoring}
\caption[Artistic scoring]{A loaf by Nancy~Anne featuring an artistic
scoring pattern. The high contrast was achieved by rubbing the dough's
@@ -1618,7 +1634,7 @@ banneton should now be facing you.
\label{fig:artistic-scoring}
\end{figure}
The scoring cut for done at a \ang{45}~angle relative to the dough's
The scoring cut is done at a \ang{45}~angle relative to the dough's
surface slightly off the dough's center. With the \ang{45}~angle cut
the overlaying side will rise more in the oven than the other side.
This way you will achieve a so-called \emph{ear} on the final bread.
@@ -1628,6 +1644,7 @@ and thus offers additional flavor. In my opinion, the ear turns
a good loaf into a great loaf.
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{bread-scoring-angle}
\caption[Scoring angle]{The \ang{45}~angle at which you score the
dough is relative to the surface of the dough. When scoring more towards
@@ -1656,6 +1673,7 @@ ear. For this reason, drying out the surface is especially important. Scoring
will become a lot easier.
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{dry-dough-surface}
\caption[Drying the dough surface]{By applying flour to your dough's surface
after shaping, the outer part of the dough dries out a little bit. This
@@ -1676,10 +1694,10 @@ 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.
Another interesting trick is to bake your dough for 30~seconds without steam.
The hot air will dry out the dough's surface even further and simplify
the scoring technique. Experiment with the timing to identify your personal
sweet spot.

View File

@@ -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
# Dockers targets
build_docker_image:
@@ -14,17 +15,17 @@ push_docker_image: build_docker_image
docker push $(DOCKER_IMAGE):latest
# Books/website
build_serif_pdf:
$(DOCKER_CMD) "cd /opt/repo/book && make build_serif_pdf"
serif_pdf:
$(DOCKER_CMD) "cd /opt/repo/book && make serif_pdf"
build_ebook:
$(DOCKER_CMD) "cd /opt/repo/book && make build_ebook"
ebook:
$(DOCKER_CMD) "cd /opt/repo/book && make ebook"
build_pdf:
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"
@@ -44,3 +45,8 @@ print_os_version:
start_shell:
docker run -it -v $(PWD):/opt/repo $(DOCKER_IMAGE) /bin/bash
# Old names for backward compatibility
build_serif_pdf: serif_pdf
build_ebook: ebook
build_pdf: pdf

View File

@@ -1 +1 @@
3.1.2
3.3.7

View File

@@ -3,11 +3,9 @@ GEM
specs:
coderay (1.1.3)
method_source (1.0.0)
nokogiri (1.15.3-arm64-darwin)
racc (~> 1.4)
nokogiri (1.15.3-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.15.3-x86_64-linux)
mini_portile2 (2.8.8)
nokogiri (1.15.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
pry (0.14.2)
coderay (~> 1.1)
@@ -16,6 +14,7 @@ GEM
PLATFORMS
arm64-darwin-22
arm64-darwin-24
x86_64-darwin-22
x86_64-linux
@@ -24,7 +23,7 @@ DEPENDENCIES
pry
RUBY VERSION
ruby 3.1.2p20
ruby 3.3.7p123
BUNDLED WITH
2.4.12

View File

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