378 Commits

Author SHA1 Message Date
Hendrik Kleinwaechter
cef0d9c8f7 Rename action & final cleanups
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
2025-03-14 13:12:24 +01:00
Hendrik Kleinwaechter
656404782a Update website deployment script 2025-03-14 13:01:45 +01:00
Hendrik Kleinwaechter
ea75a1ac8a switch to rsync 2025-03-14 12:37:19 +01:00
Hendrik Kleinwaechter
9e4e03bcfa Attempt #2 2025-03-14 12:24:37 +01:00
Hendrik Kleinwaechter
b783b1e274 Fix 2025-03-14 12:12:04 +01:00
Hendrik Kleinwaechter
fb5f526b2f Begin migration away from S3 and Cloudfront 2025-03-14 12:10:32 +01: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
Hendrik Kleinwaechter
e4bd4632c5 Fix wrong image name in release workflow 2024-04-29 07:11:53 +02:00
cedounet
10f75272c5 Merge pull request #341 from hendricius/supporters
Update supporters file
2024-04-28 18:02:33 +01:00
Ced
f3adfc2bd0 Merge remote-tracking branch 'upstream/main' into supporters 2024-04-28 17:52:56 +01:00
Hendrik Kleinwaechter
d1b0bbead1 Simplify build process (#352)
Related to #349. This only builds the docker image on push to main. For
pull requests and pushes the whole build is tested.
2024-04-28 10:51:41 +02:00
Cedric
76c0ba4ada Update supporters file
As per the printed book.  Mostly done as an exercise to see how hard it
was to copy paste.
2024-04-27 17:53:08 +01:00
cedounet
2f385a82b7 Merge pull request #350 from hendricius/bw-book-mrpoper
Delete BW-book-epub directory in mrproper
2024-04-21 22:01:57 +01:00
Ced
84d7b38ba5 Delete BW-book-epub directory in mrproper
Also made clean target handle both
2024-04-21 21:24:02 +01:00
Hendrik Kleinwaechter
321179e6ce Fix some links on bibliography
https:/www was part of some of the links for some reason.
2024-04-11 16:16:11 +02:00
Hendrik Kleinwaechter
49d93f7573 Change docker build process (#346)
Uses latest image by default. For releasing the book and website a new
image is built and stored as "latest".
2024-04-11 16:03:16 +02:00
Hendrik Kleinwaechter
bf4456ca80 Installs make4ht from source (#347)
* Installs make4ht from source

* Fix dir
2024-04-11 16:02:59 +02:00
Hendrik Kleinwaechter
b4ee25dd39 Fix wrong preview image + add for mixins 2024-04-01 13:39:08 +02:00
Hendrik Kleinwaechter
e952c48e5d Provide images with some padding 2024-04-01 10:55:55 +02:00
Hendrik Kleinwaechter
2fcd9fc5bd Website Redesign (#344)
* Desktop version

* Mobile adjustments
2024-03-31 13:39:42 +02:00
Anthony Atkinson
4665d88241 Make audax happy, add anchors to glossary terms (#343)
* Add .DS_Store to ignore for Mac users

* Permalinks to glossary terms
2024-03-20 09:37:18 +01: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
Kevin Dungs
a3e94d26d6 Prevent reference from bleeding into the margin.
Because the namedref to the "Wheat sourdough" chapter is not broken up
on space by LaTeX, it bleeds into the margin.

Also: fix quotation marks and capitalization of "chapter".
2024-01-30 21:03:43 +00:00
Cedric
12afca6918 Merge remote-tracking branch 'hendiricus/main' 2024-01-30 20:54:55 +00:00
Kevin Dungs
a037ae43f2 Fix tiny typo in bread types. (#339) 2024-01-29 09:43:50 +01:00
cedounet
f8f2b80be4 Merge pull request #338 from hendricius/fix-ebook-flowchart-overflow
Force flowchart width to 100% Manx and makefile to track css files
2024-01-19 20:12:14 +00:00
Ced
617901cc81 Add css files as dependency in makefile
They were not tracked.  Also reorganised a little bit to decouple pdf
from ebook.
2024-01-19 14:06:01 +00:00
Cedric
fa714906a7 Force flowchart width to 100%
For all floats actually...
2024-01-19 09:38:39 +00:00
Hendrik Kleinwaechter
9fa7a768ea Fix https:/ links without www. Uses a regex now 2024-01-19 09:09:24 +01:00
cedounet
f2861e95e4 Typos (#336)
* Remove caps in Finger poke test

* Make sure empahasis work in receipe

---------

Co-authored-by: Cedric <ced@awase.ostal>
2024-01-18 19:50:40 +01:00
Cedric
93ee46b5ca Make sure empahasis work in receipe 2024-01-14 21:08:26 +00:00
Cedric
d1240f884b Remove caps in Finger poke test 2024-01-14 20:48:35 +00:00
Hendrik Kleinwaechter
2eded7f10a Fixed kneading soft milk breads 2024-01-11 12:00:03 +01:00
Hendrik Kleinwaechter
39212f7318 Add finger poke test 2024-01-11 00:01:38 +01:00
Hendrik Kleinwaechter
15e008240f Fix room temp proofing 2024-01-10 20:28:56 +01:00
Hendrik Kleinwaechter
2e25850994 Fix cold proofing spelling
Not cold proofing but cold-proofing
2024-01-10 17:20:19 +01:00
Hendrik Kleinwaechter
5eea8b8bf8 Text improvements
Adds some text improvements from the book review.
2024-01-10 14:04:59 +01:00
Hendrik Kleinwaechter
8e604075ae Remove foreword (#324)
* Remove foreword

It's empty and does not provide any value unless we actually manage to
have a decent foreword. So this removes it for now.

* Remove foreword everywhere

---------

Co-authored-by: Ced <ced@sdf.org>
2024-01-09 21:30:45 +01:00
Hendrik Kleinwaechter
c8810f96f7 Fix duplicate 2024-01-09 20:50:36 +01:00
Hendrik Kleinwaechter
eb21e99945 Change article types to misc
For some reason the article type didn't work well when a URL was
provided.
2024-01-08 22:32:04 +01:00
Hendrik Kleinwaechter
77268bbb18 Fix menu padding 2024-01-06 10:57:21 +01:00
Hendrik Kleinwaechter
0a401eac14 Fix quantities wrong 2024-01-05 11:52:08 +01:00
Hendrik Kleinwaechter
ed7db871ed Add more pictures 2024-01-04 10:46:17 +01:00
Hendrik Kleinwaechter
f4eb34d7f6 Fix capitalisation 2024-01-04 09:46:59 +01:00
Hendrik Kleinwaechter
9e93cad31e Fixes https links (#323) 2024-01-04 09:31:55 +01:00
Hendrik Kleinwaechter
4572a8b17b Book changes after reading through physical book (#322)
* Add word

* Add W-value

* Add note for wheat

* Specify

* Lowercase

* Add dry out note

* Add levain

* Add note

* Add bassinage

* Add ali

* Use qty/gram

* Add proofing

* Add fridge proofing

* Add apple

* Add more links, remove BG

* Update bread-types.tex
2024-01-04 09:23:19 +01:00
Hendrik Kleinwaechter
30bb9f46ed Fix text + space 2024-01-02 21:51:06 +01:00
Hendrik Kleinwaechter
3338c140c7 Improve yeast intro
Improves the yeast chapter intro
2023-12-28 12:16:41 +01:00
Hendrik Kleinwaechter
4510616f20 Mix-ins Chapter (#319)
* Mixins

This adds additional photos and ideas to the mixins chapter.

* Fix order
2023-12-23 18:11:41 +01:00
Hendrik Kleinwaechter
e773d561a4 Add note on float test (#318)
The float test is not super reliable - this adds some comments on when
it can work and when it does not.
2023-12-21 00:53:26 +01:00
Hendrik Kleinwaechter
d0f71d9b0e Runs tests on push (#317)
* Runs tests on push

* Move out config
2023-12-19 13:08:50 +01:00
Hendrik Kleinwaechter
0fecb8e252 Fix indentation/align on references (#316)
Just a small cleanup to make sure all references are similarly
formatted.
2023-12-18 13:55:32 +01:00
Hendrik Kleinwaechter
6283e4e3d7 Fix capitalization issue 2023-12-18 13:14:41 +01:00
Hendrik Kleinwaechter
cefa998a61 Freezing bread could have benefits (#315)
Add reference to a study pointing out to potential health benefits of
freezing and toasting bread.
2023-12-18 13:02:26 +01:00
Anthony Atkinson
9b529622cd Small changes to Docker command and .gitignore (#309)
* Add --rm to docker command to cleanup containers

* Add .DS_Store to .gitignore for Mac users

* Wrong docker command
2023-12-18 12:37:21 +01:00
Hendrik Kleinwaechter
99031a72df Revert "#308 — Build docker image for both amd64 and arm64 (#311)" (#314)
This reverts commit e6709b0f5e.
2023-12-18 12:37:04 +01:00
Anthony Atkinson
e6709b0f5e #308 — Build docker image for both amd64 and arm64 (#311)
* Build for both amd64 and arm64

* Moving line to retrigger Actions check

* Removal of the `platform` flag—let system choose

* Indicate to apt-get that there is no frontend
2023-12-18 09:43:12 +01:00
cedounet
f2c68a9511 Merge pull request #312 from hendricius/fix-kobo
Prevent tex4ht to load enumitem
2023-12-17 21:10:58 +00:00
Cedric
1c3ebed203 Prevent tex4ht to load enumitem
Apparently it breaks on kobo e-reader.
2023-12-16 13:48:15 +00:00
Hendrik Kleinwaechter
79a54c06a2 Fix dates not matching
Me stupid
2023-12-15 10:30:43 +01:00
Hendrik Kleinwaechter
89f5ab6be3 Fix list tables figures (#305)
* Add links

* Fix list of tables/flowcharts

Fixes the order and adds missing link
2023-12-12 11:48:12 +01:00
Hendrik Kleinwaechter
0b550a4666 Fix align of anchor 2023-12-12 09:17:11 +01:00
Hendrik Kleinwaechter
9e8acf257d Validate website format (#304)
* Validate website format

This validates the format of the website and throws an error if
something is fishy.

* Remove -j flag

* clean build

* Clean cache in between
2023-12-11 23:36:22 +01:00
cedounet
8250789855 Merge pull request #303 from hendricius/broken-links
Fix broken links
2023-12-10 18:29:08 +00:00
Cedric
33c0f71a5e Fix broken links 2023-12-10 18:09:40 +00:00
Hendrik Kleinwaechter
bc496f1ffd Upload build artifacts on release 2023-12-10 17:58:54 +01:00
cedounet
4b4d80d231 Bread types (#301)
* Review bread types chapter

* Fine tune bread tables

* Collect all flat bread into one section

Makes more sense to have it all within a section.

* Correct typos in bread types chap.

gasses is less ambigous than gases even if correct.

* Remove uppercases

More consistent withe the rest of the text.

* Rewrite bread type intro

* Rewrite some of the flatbread section

there is a lot of repetition though..

---------

Co-authored-by: Cedric <ced@awase.ostal>
2023-12-10 17:54:22 +01:00
Hendrik Kleinwaechter
f143834379 Update Sourdough History (#298)
* Update Sourdough History

This adds another timeline for the sourdough bread history, adds more
information and more references.

* Fix a few white spaces..

* Correct capitalization of Van Leeuwenhoek

Quoting Wikipedia: https://en.wikipedia.org/wiki/Van_(Dutch)
    Spelling conventions
    Collation and capitalisation

    Collation and capitalisation of names differs between countries. In the
    Netherlands and Suriname, names starting with "van" are filed under the
    initial letter of the following name proper, so Johannes van der Waals
    is filed under "W", as: "Waals, Johannes van der" or "van der Waals,
    Johannes".[3] The "v" is written in lower case, except when the surname
    is used as standalone (when the first name or initials are omitted), in
    which case it is capitalised, as in "de schilder Vincent van Gogh" and
    "de schilder Van Gogh" ("the painter Van Gogh").[4] In compound terms
    like "de Van Goghtentoonstelling" ("the Van Gogh exhibition") the "v" is
    capitalised, unless the connection between the person and the concept is
    or has become very weak.[5]

* Fix line

* Improve numbers on time chart

- Tausend separator
- Negative numbers
- Few typos

* Fixes

* Improve timeline

- narrower so it fits on page (text was leaking out), fits mostly but
  not schking anymore
- Different colour for BC as scale is different
- Broken line for discontinuity in AD

* Reduce line-break width

* Move dates around in timeline

Makes it neater IMHO

* Fix 12000 BC in timeline

* Fix typo and add labels

Also re-indent text (but only new one..)

* reunite can and not

* Prevent running validate when pushing on main

Rational is as follow:
    - We ran validate-book on each push on the PR branch anyway
    - We will run release_book which is a superset of validate

* Upload artifacts on each PR (#299)

* Upload artifacts on each PR

* Use artifact V3

* Build docker image for each PR (#300)

This builds a docker image for each PR and then one for the release
tagged as :latest.

---------

Co-authored-by: Ced <ced@sdf.org>
Co-authored-by: Cedric <ced@awase.ostal>
Co-authored-by: Paul Duguet <duguet.paul@gmail.com>
2023-12-10 02:28:09 +01:00
Hendrik Kleinwaechter
bce4f84040 Build docker image for each PR (#300)
This builds a docker image for each PR and then one for the release
tagged as :latest.
2023-12-10 00:04:32 +01:00
Hendrik Kleinwaechter
354737861f Upload artifacts on each PR (#299)
* Upload artifacts on each PR

* Use artifact V3
2023-12-07 09:00:18 +01:00
cedounet
f9667718d4 Merge pull request #297 from hendricius/no_validate_main
Prevent running validate when pushing on main
2023-12-02 16:35:22 +00:00
Cedric
990c4c0ec6 Prevent running validate when pushing on main
Rational is as follow:
    - We ran validate-book on each push on the PR branch anyway
    - We will run release_book which is a superset of validate
2023-12-02 16:11:26 +00:00
cedounet
9dd617e661 Merge pull request #296 from hendricius/oztk_changes
Fix grammar
2023-12-02 10:19:14 +00:00
Cedric
b2af1be6ab Merge remote-tracking branch 'oztk/main' into oztk_changes 2023-12-02 10:14:30 +00:00
Hendrik Kleinwaechter
4465e213b8 Improve wording (#295)
This improves the wording of the sentence
2023-12-01 20:27:05 +01:00
cedounet
a809f17523 Merge pull request #294 from hendricius/fix-history-duplication
Fix duplicate entry in history
2023-12-01 12:46:01 +00:00
Hendrik Kleinwaechter
eeebc364e8 Fix duplicate entry in history
Thanks @OzTK for the fixes.
2023-11-30 22:21:09 -05:00
cedounet
a09d94d7df Add black and white version epub on the website (#293)
Co-authored-by: Cedric <ced@awase.ostal>
2023-12-01 04:17:01 +01:00
cedounet
008a35ffeb Merge pull request #292 from hendricius/wheat-chapter
Wheat chapter small fixes
2023-11-30 08:05:48 +00:00
Paul Duguet
bad05c64b8 to -> also 2023-11-30 07:54:54 +00:00
Cedric
1c46efc01a Fix typo wheat bread chapter 2023-11-29 23:23:41 +00:00
Cedric
a15d2f52ba Fine tune the starter usage table 2023-11-29 22:49:36 +00:00
Cedric
cf28131082 Merge remote-tracking branch 'hendiricus/main' 2023-11-29 18:21:09 +00:00
Hendrik Kleinwaechter
bc8f002ee7 Revert previous changes - keep extra line to dinos
Accidentally broke some changes by @cedounet. This reverts it and adds
the same additional line for dinosaur extinction I previously added.
2023-11-28 21:12:42 -06:00
Paul Duguet
ed233e915b to -> also 2023-11-29 00:49:09 +00:00
Paul Duguet
427ad656f3 reunite can and not 2023-11-29 00:47:31 +00:00
Paul Duguet
91dc63f02b Remove duplicate word 2023-11-29 00:41:35 +00:00
Paul Duguet
3bd1e95843 Remove duplicate section 2023-11-29 00:40:59 +00:00
Cedric
2408ca509e Fix fonts in wheat chapter
I find bold too much in my face when I read text... and other little
changes.
2023-11-28 09:09:23 +00:00
Cedric
7cd3e04634 Correct the angle symbol
Wasn't showing degrees... because I used the wrong command :)
2023-11-28 08:58:27 +00:00
Hendrik Kleinwaechter
e9667f0565 Timeline improvements
This fixes some glitches in the display of the graphic
2023-11-27 17:50:26 -06:00
cedounet
ec4b02a8f2 Merge pull request #289 from hendricius/wheat-flowcharts
Wheat chapter flowcharts
2023-11-27 20:03:11 +00:00
Cedric
1cb2de78cb Fix bulk fermantation process flowchart 2023-11-27 18:52:38 +00:00
Cedric
446163f017 Fix proofing process flowchart 2023-11-26 16:08:23 +00:00
Cedric
03707bf3e9 Fix kneading process flowchart 2023-11-26 15:16:19 +00:00
Cedric
1c84b06e7f Improve wheat bread process flowchart 2023-11-26 13:56:16 +00:00
Cedric
0282ba5ba6 Improve shaping flowchart 2023-11-26 11:31:28 +00:00
Cedric
febfee5240 Improve divide and preshape flowchart 2023-11-26 11:23:37 +00:00
cedounet
0d713ed0ff Merge pull request #288 from hendricius/fix_timechart
Fix timechart
2023-11-25 22:31:45 +00:00
Cedric
2ef8f5e5e2 Fix few things on the timeline
1) Use arrows <--> to indicate duration
 2) Use : to introduce date
 3) Move some text around so slightly... First data moved right so we have
    full text width for the timeline
2023-11-24 14:46:24 +00:00
Cedric
f5c7a027e4 Fix date typo 2023-11-24 14:19:06 +00:00
Hendrik Kleinwaechter
44fdc87672 Retrigger build process 2023-11-23 22:33:00 -09:00
Hendrik Kleinwaechter
6a82cf6f41 Use trixie as base image (#287)
* Use trixie as base image

* Install dvisvgm manually and fix ruby encodign issues
2023-11-24 07:20:18 +01:00
cedounet
6b56aeac1b Merge pull request #285 from hendricius/fix-build
Revert "Revert "Fix giberrish website timeline""
2023-11-19 13:46:02 +00:00
Cedric
737debe123 Revert "Revert "Fix giberrish website timeline""
This reverts commit b559d72781.

This should prevent the build from breaking eveb if it does not fix
anything..
2023-11-19 13:39:57 +00:00
cedounet
fcdd071302 Merge pull request #284 from hendricius/reverse-hashes
Revert "Fix giberrish website timeline"
2023-11-18 21:47:16 +00:00
Cedric
b559d72781 Revert "Fix giberrish website timeline"
This reverts commit 2f3b8ec89b.

makes things worst...
2023-11-18 21:43:29 +00:00
cedounet
fce5102095 Merge pull request #283 from hendricius/273-fix-timeline-website
Fix giberrish website timeline
2023-11-18 21:31:45 +00:00
Cedric
2f3b8ec89b Fix giberrish website timeline
Solves https://github.com/hendricius/the-sourdough-framework/issues/279
by removing dvisvgm_hashes
2023-11-18 20:51:02 +00:00
cedounet
6b2153b27a Merge pull request #281 from hendricius/ebooks-flowcharts
Add dvsvgm to the docker image
2023-11-17 19:46:15 +00:00
Cedric
eb2fc3eab8 Add dvsvgm to the docker image
To deal with ebooks and tikz flowcharts
2023-11-17 19:36:45 +00:00
cedounet
a46eb52f7e Merge pull request #280 from hendricius/dvisvgm
Add dvisvgm version info
2023-11-15 14:45:21 +00:00
Ced
0dd9c69c2c Add dvisvgm version info 2023-11-15 14:39:39 +00:00
cedounet
1e8db3a3c3 Review baking (#275)
* Review backing chapter

* Improve baking process flowchart

* Use positioning Library in TikZ

* Improve Dutch Oven flowchart
2023-11-12 23:02:31 +01:00
Hendrik Kleinwaechter
b91f00b103 Create anchors in website generator (#274)
Moves it out of JS into the html directly
2023-11-12 23:01:53 +01:00
cedounet
60c5c4211a Merge pull request #276 from hendricius/biblio
Move bibliography at the end of the book
2023-11-10 14:20:20 +00:00
Ced
87b5e486bf Move bibliography at the end of the book
Where it belongs!
2023-11-08 16:50:02 +00:00
Anthony Atkinson
1a5d1847b6 Permalinks for website section heads (#272)
* Permalinks for website section heads

* Tabs vs spaces strikes again
2023-11-08 10:43:40 +01:00
Hendrik Kleinwaechter
ca62dd3150 Fix website build dir 2023-11-08 22:33:29 +13:00
Hendrik Kleinwaechter
8640ed18ed Add graphic showcasing evolution of life (#270)
* Add graphic showcasing evolution of life

* Add PR Feedback

* Add comment

* Update date format

* Fix small mistakes

* Add pangea, rewrite intro

* Fix citation, improve intro. Thanks alanblue

* Add indicator for full span and months

* Color improvements
2023-11-07 21:52:23 +01:00
cedounet
afc9e37229 Merge pull request #271 from hendricius/cleanup_bw_makefile
Cleanup tech debt in build system
2023-11-04 16:35:28 +00:00
Ced
c774409759 Factorize epub format
We only build that right now so let's put in main macro
2023-11-02 09:31:08 +00:00
Ced
d495757e15 Stop on first error in quick target
This is only useful when debugging so makes sense not to wait for the
entire compilation.

so support for epub though would require to change the config file with
Make:htlatex { latex_par="-halt-on-error"}
2023-11-02 09:28:28 +00:00
Ced
ec254e80e0 Fix the MIME type for BW ebook
last fix only fixed the xml container not the MIME type :(
2023-11-01 15:39:59 +00:00
Ced
5d89f81d52 Remove sans-serif ebook hacks
Those are not needed anymore.
- Symbolic links
- Update .gitignore files
2023-11-01 15:39:57 +00:00
Ced
a1eec0d84f Clean up makefile after BW ebook
Accumulated some debts through panic debug as CI was broken... Nothing
dramatic but could do with a bit of cleanup.

Simplify dependency graph, might also make the whole thing faster when
run in parallel
2023-11-01 15:39:50 +00:00
cedounet
2c353c46d7 Merge pull request #269 from hendricius/main_makefile
Main makefile
2023-10-30 15:30:21 +00:00
Ced
a80558fc75 Merge remote-tracking branch 'upstream/main' into main_makefile 2023-10-30 15:28:12 +00:00
Ced
14abcdcbf0 Ensure copy happened before BW conversion
as we have subdirs...
2023-10-30 15:23:59 +00:00
cedounet
c9aae55c8c Merge pull request #268 from hendricius/main_makefile
Ensure dir is created before image BW conversion
2023-10-30 15:06:06 +00:00
Ced
6532f8d5f7 Ensure dir is created before image BW conversion
Now that parallel build is enabled
2023-10-30 14:58:09 +00:00
cedounet
127c1ab882 Merge pull request #265 from hendricius/main_makefile
Main makefile
2023-10-30 13:42:51 +00:00
cedounet
7537d4c36f Update README wording for clarity (#267)
* Update README wording for clarity

* Add parallel builds to the README

They are now safe and runs much faster.
2023-10-30 11:48:00 +01:00
Hendrik Kleinwaechter
9d76ea1cf9 Add default target 2023-10-30 23:41:04 +13:00
cedounet
1ce9802689 Makefile tools version (#266)
* Fix details on tools version display in makefile

- Show OS version
- Use macro instead of harcoded tool for convert.
2023-10-29 17:26:33 +00:00
Ced
8ab6cad1fb Add some targets back in docker makefile
I now understand how they can be useful...
2023-10-27 21:44:35 +01:00
Ced
500f5e7dce Limit validate CI to serif pdf target and ebook 2023-10-27 21:17:51 +01:00
Ced
a8e98595c7 Use parallel build on github release action 2023-10-27 21:16:22 +01:00
Ced
9adcca73eb Remove unused targets in main makefile
Reorder logically and comment
2023-10-27 21:15:18 +01:00
Ced
b22793f57e Simplify verify target
Little value in building the sans-serif pdf... can only fails if a font
is missing.
2023-10-27 21:05:21 +01:00
cedounet
c2457763f6 Merge pull request #264 from hendricius/fix-b_w_mimetype
Fix mimetype for bw ebook
2023-10-27 17:29:20 +01:00
Ced
2a6149520c Fix BW epub not opening in apple books
The mime-type was not correct
2023-10-27 17:19:36 +01:00
Ced
1ebbcfa279 Merge remote-tracking branch 'upstream/main' 2023-10-26 09:00:58 +01:00
cedounet
9b180ad0a1 Merge pull request #263 from hendricius/261-update-readme
Add black & white to README
2023-10-26 08:51:07 +01:00
cedounet
0a205b02b0 Merge pull request #259 from hendricius/improve-retarding-section-overfermentation
Improve overfermentation when retarding a dough
2023-10-26 08:23:45 +01:00
Hendrik Kleinwaechter
77c0b4de00 Add black & white to README
This adds the black and white version to the repo's README.
2023-10-26 10:14:34 +13:00
Hendrik Kleinwaechter
b7e920737f Ignore bw ebook in git 2023-10-26 10:09:10 +13:00
Hendrik Kleinwaechter
0b24e4fd1a Add improvements 2023-10-26 10:09:00 +13:00
Hendrik Kleinwaechter
bf6fb72217 Merge branch 'main' into improve-retarding-section-overfermentation 2023-10-26 10:06:48 +13:00
cedounet
37bd36917d Fix glossary (#260)
* Correct spelling mistakes in glossary

* Rorder glossary

So it actually is in alphabetical order...

Samnly typos here adn there.

* Improve Glossary typography

* Fix make4ht enumitem

Basically we bypass the style for ebook and HTML.
2023-10-25 23:06:29 +02:00
Hendrik Kleinwaechter
4b09656723 Improve overfermentation when retarding a dough
This adds retarding to the glossary and adds a note on how the times can
be effected when starting with a warmer dough. This fixes #248
2023-10-23 21:51:23 -10:00
Ced
b2186209df Rorder glossary
So it actually is in alphabetical order...

Samnly typos here adn there.
2023-10-22 20:50:29 +01:00
Ced
7d0d9ab16c Correct spelling mistakes in glossary 2023-10-22 20:42:04 +01:00
Hendrik Kleinwaechter
187fc1d0fc Glossary (#258)
* Glossary

This adds a glossary with common terms to the book

* Apply ordering changes

* Add PR feedback

* Move to backmatter
2023-10-22 20:18:11 +02:00
cedounet
8492c123d4 Merge pull request #256 from hendricius/update_readme
Update Readme for recent ebooks changes
2023-10-13 11:07:56 +01:00
Ced
ddd7a28298 Update Readme for recent ebooks changes 2023-10-13 10:57:31 +01:00
cedounet
f12f2253a0 Merge pull request #254 from hendricius/fix-ci
Fix ci with Imagemagick
2023-10-13 10:36:26 +01:00
cedounet
bd143aff4e Merge pull request #255 from hendricius/storage_review
Storage review
2023-10-13 10:36:02 +01:00
Ced
fc876a7d00 Remove kindlegen
Not needed anymore now that we don't do azw3 files anymore.
2023-10-13 10:06:19 +01:00
Ced
be954493e6 Install imagemagick in Docker
To convert images in B&W or lower resolution.
2023-10-13 10:05:40 +01:00
Ced
65702e0adf Merge remote-tracking branch 'upstream/main' 2023-10-13 10:04:32 +01:00
cedounet
7c2b825cd1 Merge pull request #253 from hendricius/bw_ebook
Black and White ebook
2023-10-12 20:32:43 +01:00
Ced
b92c5de85d Fine tune store-bread table
More breathing space basically.
2023-10-12 13:38:14 +01:00
Ced
edf6b4e5c2 Merge remote-tracking branch 'upstream/main' 2023-10-11 09:38:45 +01:00
cedounet
d591617819 Review non wheat (#252)
* Tidyup non-wheat process flowchart

- Factorize code
- Spread the boxes
- Align arrows

* Review non-wheat chapter

Usual typos and text improvements plus a little LaTeX magic for better
typography
2023-10-10 17:12:58 +02:00
Ced
56ba7ad21e Review bread storage chapter 2023-10-10 15:42:45 +01:00
Ced
8efb48fa51 Add missing pic dependencies
The pictures inside sub-directories were not tracked as dependencies.
2023-10-09 18:47:41 +01:00
Ced
3e7815f3c4 Add Black and white epub to release 2023-10-09 18:26:05 +01:00
Ced
c34d635495 Simplify directory creation rules 2023-10-09 18:22:33 +01:00
Ced
9d0a43c58a Improve monochrome ebook generation in makefile
- Each picture is done independently
- Some comments
- Factor out commands
- Add the tools version
2023-10-09 17:48:03 +01:00
Ced
ffccbf8b9f Update CI as per renamed targets in makefile 2023-10-08 20:10:18 +01:00
Ced
6176d8fd7b Implement proof of concept BW ebook in makefile
Dependencies are not great but shows the idea
- Resize images
- Reduce quality
- Convert to Black and white

Result:
    57M  book.epub
    17M  bw_book.epub
2023-10-08 18:58:26 +01:00
Ced
62ee9cd9e4 Simplify and fix spelling mistakes in makefile
- Factorize PHONY targets
- Add comments
2023-10-08 18:09:52 +01:00
Ced
ecbd8aafcb Delete unused images 2023-10-08 18:09:52 +01:00
Ced
a53698de97 Rename makefile ebook targets
serif made no sense any more.  Prepare for the black_white version.
2023-10-07 17:29:58 +01:00
Ced
eabde1aba0 Review non-wheat chapter
Usual typos and text improvements plus a little LaTeX magic for better
typography
2023-10-07 13:55:17 +01:00
Ced
07f1351912 Tidyup non-wheat process flowchart
- Factorize code
- Spread the boxes
- Align arrows
2023-10-07 13:53:59 +01:00
Hendrik Kleinwaechter
b17de32914 This fixes a few images (#251)
1. I used the wrong image for the liquid starter
2. The picture of hooch is replaced with a new one
2023-10-06 23:40:22 +02:00
cedounet
6c220059a3 Merge pull request #250 from hendricius/mismatch_flowchart_figure
Fix mismatch between flowchart and figure
2023-10-04 13:55:57 +01:00
Ced
0cbedf5ca1 Fix mismatch between flowchart and figure
Hopefully the last one.
2023-10-04 10:28:59 +01:00
cedounet
72e4435019 Merge pull request #247 from nikolanedic/fix-typo
Fix typo
2023-10-04 09:22:29 +01:00
cedounet
60b6b4bc41 Merge pull request #249 from hendricius/makefile_fixes
Makefile fixes
2023-10-04 09:21:22 +01:00
cedounet
58758e5389 Merge pull request #245 from hendricius/fix-flour-table
Right align numbers in flour-types table
2023-10-04 09:20:51 +01:00
Ced
bdae960144 Add latexmk diagnostic in debug mode 2023-10-03 23:52:27 +01:00
Ced
1eb305a3fe Add shell version to the show_version_target 2023-10-03 23:51:22 +01:00
Ced
97f3a044c2 Enforce bash as shell in makefile
Was not the case on my debian machine for some reason...
2023-10-03 23:51:22 +01:00
Nikola Nedic
4e4c4e9048 Fix typo 2023-10-03 09:34:42 +02:00
Ced
4950897188 Right align numbers in flour-types table 2023-09-28 09:47:09 +01:00
cedounet
9fe88efca9 Review starter types (#238)
* Correct wording, category for starter conversion

- Now a flowchart (and a renamed label)
- More explicit wording as per
https://github.com/hendricius/the-sourdough-framework/issues/234

* Fix warnings from make check

The one I am 100% sure are mistakes

* Review starter type chapter

- Add some new sections
- fine tune tables
- some typos/new paragraphs

* Fix typos in sourdough starter types

* Simplify liquid conversion flowchart

* Simplify stiff conversion flowchart

* Fine tune liquid conversion flowchart

* Update some of the images

* Improve explanation of conversion

* Update explanation for stiff starter conversion

* Update fall note

---------

Co-authored-by: Hendrik Kleinwaechter <hendrik.kleinwaechter@gmail.com>
2023-09-27 17:23:06 +02:00
cedounet
335c5eb86b Remove azw3 (#243)
* Remove azw3 and mobi ebook format from build

they take a lot of time and are being deprecated on main branch.

* Remove kindlegen from tools version
2023-09-27 16:13:22 +02:00
cedounet
474051f095 Flour types (#241)
* Fine tune tables in flour types chapter

* Add list of flowcharts in ebook (#240)

* Add list of flowcharts in ebook

* Mark menu as selected on list of flowcharts

---------

Co-authored-by: Hendrik Kleinwaechter <hendrik.kleinwaechter@gmail.com>

* Review flour types chapter

---------

Co-authored-by: Hendrik Kleinwaechter <hendrik.kleinwaechter@gmail.com>
2023-09-27 16:12:56 +02:00
cedounet
916fab0038 Remove azw3 and mobi ebook format from build (#242)
they take a lot of time and are being deprecated on main branch.
2023-09-26 15:30:38 +02:00
cedounet
0ae310c329 Add list of flowcharts in ebook (#240)
* Add list of flowcharts in ebook

* Mark menu as selected on list of flowcharts

---------

Co-authored-by: Hendrik Kleinwaechter <hendrik.kleinwaechter@gmail.com>
2023-09-25 20:52:27 +02:00
cedounet
31e8078216 Fix warnings from make check (#237)
The one I am 100% sure are mistakes
2023-09-21 16:24:27 +02:00
cedounet
eda72c860c Correct wording, category for starter conversion (#235)
- Now a flowchart (and a renamed label)
- More explicit wording as per
https://github.com/hendricius/the-sourdough-framework/issues/234
2023-09-20 14:38:56 +02:00
cedounet
78628adc3c Correct LaTeX crime (#233)
* Add missing pic dependency on quick_ebook target

* Correct crime against LaTeX

Mostly proper use of LaTeX and one word changed.  Moving forward we
could have a proper recipe environment so we have also a listofrecipe
at the end in the pdf/website.
2023-09-20 14:38:27 +02:00
Ced
31b4f12ae6 Fix bug in makefile clean command 2023-09-17 14:53:36 +01:00
Ced
b18c6331e6 Merge remote-tracking branch 'upstream/main' 2023-09-15 10:40:57 +01:00
cedounet
e6cccde72a Makefile cleanup (#231)
* Add missing pic dependency on quick_ebook target

* Shorten Makefile clean rules

Less line mostly, should make it easier to read... and some wins from
not building sans-serif ebook anymore

* Simplify make help documentation

Was a bit tangled between ebook/ebook_serif/... should be clearer now.
2023-09-15 11:38:56 +02:00
Ced
cafbb11237 Merge remote-tracking branch 'upstream/main' 2023-09-15 09:33:03 +01:00
Hendrik Kleinwaechter
569e6e1624 Replace artistic scoring image
Better for the book as the image is not cropped
2023-09-15 10:31:26 +02:00
Hendrik Kleinwaechter
d72d6c65b2 Improve flatbread recipe (#230)
This creates a short section with detailed instructions on how to make a
flatbread.
2023-09-15 10:17:49 +02:00
cedounet
b403440c04 Remove sans serif ebook from makefile (#228)
* Add missing pic dependency on quick_ebook target

* Remove sans-serif ebooks from the build

* Remove sans-serif ebook from website and README

As per https://github.com/hendricius/the-sourdough-framework/issues/225
point 2.  The reader program will allow to change the font, no point
building it twice.

* Remove sans_serif mk4 file
2023-09-15 08:37:52 +02:00
Hendrik Kleinwaechter
ec43cf2add Replace one flat bread image (#229)
We used the same image several times. This adds a new different image.
2023-09-15 08:37:25 +02:00
Ced
59ace0e3eb Merge remote-tracking branch 'upstream/main' 2023-09-14 08:34:55 +01:00
cedounet
9104ee0642 Default target (#226)
* Add missing pic dependency on quick_ebook target

* Fix default target in makefile

The previous version was just lucky enough to be the first target not
starting with a .
2023-09-14 09:07:36 +02:00
cedounet
972b1ef8ba Remove obsolete ebook formats (#227)
* Add missing pic dependency on quick_ebook target

* Warn about deprecation of .mobi and .azw3 files.

* Remove kindle (azw3) from website front page
2023-09-14 09:07:14 +02:00
Ced
5ad773e092 Merge remote-tracking branch 'upstream/main' 2023-09-12 08:38:58 +01:00
cedounet
74fca62bf2 Starter chap (#214)
* Fix TeXnicalities in starter chapter

* Break text into paragraphs

* Reword sourdough chapter

* Add a label for the chapter
2023-09-12 07:27:31 +02:00
cedounet
a1b661e8fb Add missing pic dependency on quick_ebook target (#224) 2023-09-12 07:25:53 +02:00
Hendrik Kleinwaechter
722449c5ac Fix duplicate flowchart (#222)
* Fix duplicate flowchart

This combines both flowcharts into one

* Start on pink for starter readiness flowchart

* Add braces to TikZ flowcharts

* Rewired flowchart with right-angled transitions

* Change Arrows from right-angled to star connected

As I could not really find a way not to have diagonal arrows... I
decided to embrace it instead.  YMMV

* Homogenize box sizes

* Align on unit inside the flowchart node

* Fix code typo in starter readiness flowchart

* Create a MWE showing (known) ebook issues

Those issues are:
- Temp in flowchart
- No front image
- Chemical formula
- No list of flowcharts
- Weird looking table

Also test fonts, accents, etc.. seems ok.

* Make ebook the default target

* Revert "Create a MWE showing (known) ebook issues"

This reverts commit dac7f8f21d.

* Revert "Make ebook the default target"

This reverts commit e92e464459.

---------

Co-authored-by: Ced <ced@sdf.org>
2023-09-12 07:25:34 +02:00
Ced
d8c212ad73 Add missing pic dependency on quick_ebook target 2023-09-09 09:00:35 +01:00
Hendrik Kleinwaechter
07edb414e1 Fix image not showing on website 2023-09-08 14:17:18 +02:00
Hendrik Kleinwaechter
61af6372e0 Switch to creative commons license (#177)
* Switch to creative commons license

This updates the license to CC-BY-SA

* update img

* Add CC-BY-SA logo and licence link on 2nd page

* Fix compilation bug on title page

---------

Co-authored-by: Ced <ced@sdf.org>
2023-09-08 13:24:35 +02:00
125 changed files with 6052 additions and 2210 deletions

View File

@@ -1,45 +0,0 @@
name: Create and publish a Docker image
on:
push:
branches:
- main
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
- name: Build and push Docker image
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@@ -0,0 +1,98 @@
name: Release the book and website
on:
push:
branches:
- main
env:
LATEST_IMAGE: ghcr.io/${{ github.repository }}:latest
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# Buildx for caching
- uses: docker/setup-buildx-action@v3
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/${{ github.repository }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
release-book-website:
needs: build-and-push-image
runs-on: ubuntu-latest
steps:
- name: Set up git repository
uses: actions/checkout@v3
- name: Print dependency versions
uses: addnab/docker-run-action@v3
with:
image: ${{ env.LATEST_IMAGE }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make show_tools_version
- name: Print build variables
uses: addnab/docker-run-action@v3
with:
image: ${{ env.LATEST_IMAGE }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make printvars
- name: Bake the book
uses: addnab/docker-run-action@v3
with:
image: ${{ env.LATEST_IMAGE }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make -j -O bake
- name: Copy book to downloads server
uses: burnett01/rsync-deployments@7.0.2
with:
switches: "-avzr"
remote_host: ${{ secrets.SSH_HOST }}
remote_user: ${{ secrets.SSH_USERNAME }}
remote_key: ${{ secrets.SSH_KEY }}
path: "book/release/*"
remote_path: "~/downloads/the-sourdough-framework/"
- name: Upload book artifacts to GitHub
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: Copy website to downloads server
uses: burnett01/rsync-deployments@7.0.2
with:
switches: "-avzr --delete"
remote_host: ${{ secrets.SSH_HOST }}
remote_user: ${{ secrets.SSH_USERNAME }}
remote_key: ${{ secrets.SSH_KEY }}
path: "website/static_website_html/*"
remote_path: "~/the-sourdough-framework/"
- name: Upload website artifacts to GitHub
uses: actions/upload-artifact@v4
with:
name: website
path: website/static_website_html

View File

@@ -1,51 +0,0 @@
name: Release the book
on:
push:
branches:
- main
jobs:
build_and_release:
runs-on: ubuntu-latest
steps:
- name: Set up git repository
uses: actions/checkout@v3
- name: Print dependency versions
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make show_tools_version
- name: Print build variables
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make printvars
- name: Bake the book
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make bake
- name: Release baked book to S3
uses: shallwefootball/s3-upload-action@master
with:
aws_key_id: ${{ secrets.AWS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
aws_bucket: ${{ secrets.AWS_BUCKET_BOOK }}
source_dir: book/release
destination_dir: release
- name: Invalidate Cloudfront book cache
uses: chetan/invalidate-cloudfront-action@v2
env:
DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION_BOOK }}
PATHS: "/*"
AWS_REGION: "us-east-1"
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

View File

@@ -1,51 +0,0 @@
name: Release the website
on:
push:
branches:
- main
jobs:
build_and_release:
runs-on: ubuntu-latest
steps:
- name: Set up git repository
uses: actions/checkout@v3
- name: Print dependency versions
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make show_tools_version
- name: Print build variables
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make printvars
- name: Bake the book
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make website
- name: Release baked website to S3
uses: shallwefootball/s3-upload-action@master
with:
aws_key_id: ${{ secrets.AWS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
aws_bucket: ${{ secrets.AWS_BUCKET_WEBSITE }}
source_dir: website/static_website_html
destination_dir: static_html_root
- name: Invalidate Cloudfront website cache
uses: chetan/invalidate-cloudfront-action@v2
env:
DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION_WEBSITE }}
PATHS: "/*"
AWS_REGION: "us-east-1"
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

56
.github/workflows/test-book-website.yml vendored Normal file
View File

@@ -0,0 +1,56 @@
name: Test book and website for given image
on:
push:
branches-ignore:
- main
pull_request:
branches:
- '**'
env:
DOCKER_IMAGE: ghcr.io/${{ github.repository }}:latest
jobs:
test-book-website:
runs-on: ubuntu-latest
steps:
- name: Set up git repository
uses: actions/checkout@v3
- name: Print dependency versions
uses: addnab/docker-run-action@v3
with:
image: ${{ env.DOCKER_IMAGE }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make show_tools_version
- name: Print build variables
uses: addnab/docker-run-action@v3
with:
image: ${{ env.DOCKER_IMAGE }}
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make printvars
- 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 -O serif ebook website
- name: Upload book artifacts to GitHub
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: Upload website artifacts to GitHub
uses: actions/upload-artifact@v4
with:
name: website
path: website/static_website_html

View File

@@ -1,32 +0,0 @@
name: Validate LaTeX Document
on: [ push, pull_request ]
jobs:
test_building_book:
runs-on: ubuntu-latest
steps:
- name: Set up git repository
uses: actions/checkout@v3
- name: Print dependency versions
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make show_tools_version
- name: Print build variables
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make printvars
- name: Test baking the release versions
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/hendricius/the-sourdough-framework:latest
options: -v ${{ github.workspace }}:/app
run: |
cd /app/book
make -j build_pdf build_serif_ebook

43
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.DS_Store
*.xbb *.xbb
*.aux *.aux
*.fdb_latexmk *.fdb_latexmk
@@ -12,52 +13,34 @@
*.run.xml *.run.xml
*.html *.html
*.dlog *.dlog
*.bak
*.opf
book/book.out book/book.out
.vscode/ .vscode/
book/book.synctex*
book/tikz-cache/*
book/bookch* book/bookch*
book/content.opf
book/output-epub
book/figures/*.png book/figures/*.png
book/figures/*.pdf book/figures/*.pdf
book/figures/*.in book/figures/*.in
book/tables/*.png
book/tables/*.pdf
book/release/*
book/book*.4ct book/book*.4ct
book/book*.4tc book/book*.4tc
book/book*.aux
book/book*.bbl
book/book*.bcf
book/book*.blg
book/book*.css book/book*.css
book/book*.dvi book/book*.dvi
book/book*.html
book/book*.idv book/book*.idv
book/book*.lg book/book*.lg
book/book*.log
book/book*.mobi
book/book*.azw3
book/book*.epub
book/book*.ncx book/book*.ncx
book/book*.out book/book*.out
book/book*.pdf
book/book*.run.xml
book/book*.tmp book/book*.tmp
book/book*.toc
book/book*.xref book/book*.xref
book/book*.html
book/book*.svg book/book*.svg
book/book-epub/ # Directories created during build
book/book-mobi/ book/book_sans_serif/*
book/book-azw3/ book/book_serif/*
*.bak
book_sans_serif/
book_serif/
release_sans_serif/
book/book_sans_serif-epub/
book/static_website_html/* book/static_website_html/*
epub/
*.opf
website/static_website_html/* website/static_website_html/*
book/epub/
book/book-epub/
book/bw-book-epub/*
book/release/*
book/low-res-book-epub/*
book/epub_build/*
book/website_build/*

View File

@@ -1,4 +1,4 @@
FROM registry.gitlab.com/islandoftex/images/texlive FROM debian:trixie
LABEL "maintainer"="Hendrik Kleinwächter <hendrik.kleinwaechter@gmail.com>" LABEL "maintainer"="Hendrik Kleinwächter <hendrik.kleinwaechter@gmail.com>"
LABEL "repository"="https://github.com/hendricius/the-sourdough-framework" LABEL "repository"="https://github.com/hendricius/the-sourdough-framework"
@@ -6,9 +6,9 @@ LABEL "homepage"="https://github.com/hendricius/the-sourdough-framework"
LABEL org.opencontainers.image.source="https://github.com/hendricius/the-sourdough-framework" LABEL org.opencontainers.image.source="https://github.com/hendricius/the-sourdough-framework"
# Print release information if needed # Print release information if needed
# RUN cat /etc/*release* RUN cat /etc/*release*
# Install base depdendencies # Install base dependencies
RUN apt-get update && \ RUN apt-get update && \
apt-get install --yes -y --no-install-recommends \ apt-get install --yes -y --no-install-recommends \
sudo \ sudo \
@@ -18,9 +18,51 @@ RUN apt-get update && \
zip \ zip \
git \ git \
wget \ wget \
ruby3.1 \ ruby3.3 \
ruby-dev \ ruby-dev \
build-essential imagemagick \
rsync \
wget \
perl \
xzdec \
# dvisvgm dependencies
build-essential \
fonts-texgyre \
fontconfig \
libfontconfig1 \
libkpathsea-dev \
libptexenc-dev \
libsynctex-dev \
libx11-dev \
libxmu-dev \
libxaw7-dev \
libxt-dev \
libxft-dev \
libwoff-dev
# Install TeX
RUN apt-get update && \
apt-get install -y --no-install-recommends \
texlive-full \
texlive-luatex
# Compile latest dvisvgm
RUN wget https://github.com/mgieseki/dvisvgm/releases/download/3.1.2/dvisvgm-3.1.2.tar.gz && \
mv dvisvgm-3.1.2.tar.gz dvisvgm.tar.gz && \
tar -xzf dvisvgm.tar.gz && \
cd dvisvgm-* && \
./configure && \
make && \
make install
RUN git clone https://github.com/michal-h21/make4ht.git && \
cd make4ht && \
make && \
make install
# Make sure everything is UTF-8
RUN echo "export LC_ALL=en_US.UTF-8" >> /root/.bashrc && \
echo "export LANG=en_US.UTF-8" >> /root/.bashrc
WORKDIR /root WORKDIR /root
@@ -31,9 +73,4 @@ COPY website/Gemfile /root
COPY website/.ruby-version /root COPY website/.ruby-version /root
RUN bundle install RUN bundle install
# Install support to build amazon kindle books
RUN wget https://archive.org/download/kindlegen_linux_2_6_i386_v2_9/kindlegen_linux_2.6_i386_v2_9.tar.gz && \
tar xzf kindlegen_linux_2.6_i386_v2_9.tar.gz && \
mv kindlegen /usr/bin
CMD ["/bin/bash"] CMD ["/bin/bash"]

440
LICENSE
View File

@@ -1,21 +1,427 @@
MIT License Attribution-ShareAlike 4.0 International
Copyright (c) 2022 Hendrik Kleinwaechter =======================================================================
Permission is hereby granted, free of charge, to any person obtaining a copy Creative Commons Corporation ("Creative Commons") is not a law firm and
of this software and associated documentation files (the "Software"), to deal does not provide legal services or legal advice. Distribution of
in the Software without restriction, including without limitation the rights Creative Commons public licenses does not create a lawyer-client or
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell other relationship. Creative Commons makes its licenses and related
copies of the Software, and to permit persons to whom the Software is information available on an "as-is" basis. Creative Commons gives no
furnished to do so, subject to the following conditions: warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
The above copyright notice and this permission notice shall be included in all Using Creative Commons Public Licenses
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR Creative Commons public licenses provide a standard set of terms and
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, conditions that creators and other rights holders may use to share
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE original works of authorship and other material subject to copyright
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER and certain other rights specified in the public license below. The
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, following considerations are for informational purposes only, are not
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE exhaustive, and do not form part of our licenses.
SOFTWARE.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More_considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.

View File

@@ -32,7 +32,8 @@ make
Then you can check out the file `book/book.pdf` Then you can check out the file `book/book.pdf`
If you want to 🍞 bake all the versions including ebook formats (.pdf, .epub, .mobi, .azw3) run: If you want to 🍞 bake all the versions including ebook variants (.pdf, .epub
in colour and size optimized Black&White), run:
```console ```console
make bake make bake
@@ -42,23 +43,27 @@ You can check the files in the folder `book/release/`
## 🍞 Baking the book locally (LaTeX) ## 🍞 Baking the book locally (LaTeX)
Make sure you have `biber` and `latexmk` installed. Refer to your system's Make sure you have `biber`, `latexmk` and ``ImageMagick`` installed. Refer to
installation instructions for LaTeX. To create the serif .pdf format, run: your system's installation instructions for LaTeX. To create the serif .pdf
format, run:
```console ```console
cd book/ cd book/
make make
``` ```
If you want to 🍞 bake all the versions including ebook formats (.pdf, .epub, .mobi, .azw3) run: If you want to 🍞 bake all the versions including ebook variants (.pdf, .epub
in colour and size optimized Black&White, as well as website), run:
```console ```console
cd book/ cd book/
make bake make -j bake
``` ```
You can check the files in the folder `book/release/` 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: You can get some help on building various versions with:
```console ```console
@@ -71,17 +76,27 @@ The below versions are automatically built on every push to the `main` branch.
* [Download compiled .pdf version](https://www.the-bread-code.io/book.pdf) * [Download compiled .pdf version](https://www.the-bread-code.io/book.pdf)
* [Download compiled .epub version](https://www.the-bread-code.io/book.epub) * [Download compiled .epub version](https://www.the-bread-code.io/book.epub)
* [Download compiled .mobi version](https://www.the-bread-code.io/book.mobi)
* [Download compiled .azw3 version](https://www.the-bread-code.io/book.azw3)
There's an additional enhanced accessibility version using a sans serif font: There's an additional enhanced accessibility version using a sans-serif font:
* [Download compiled .pdf version](https://www.the-bread-code.io/book-sans-serif.pdf) * [Download compiled sans-serif .pdf version](https://www.the-bread-code.io/book-sans-serif.pdf)
* [Download compiled .epub version](https://www.the-bread-code.io/book-sans-serif.epub)
* [Download compiled .mobi version](https://www.the-bread-code.io/book-sans-serif.mobi)
* [Download compiled .azw3 version](https://www.the-bread-code.io/book-sans-serif.azw3)
## Online HTML version (WIP) An additional black and white ebook is provided with a greatly reduced file
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) Head over to [https://www.the-sourdough-framework.com](https://www.the-sourdough-framework.com)
@@ -123,3 +138,14 @@ me to dedicate time to continuously update and improve this book.
* [My YouTube channel](https://youtube.com/c/thebreadcode) * [My YouTube channel](https://youtube.com/c/thebreadcode)
* [Ask a question on Discord](https://breadco.de/discord) * [Ask a question on Discord](https://breadco.de/discord)
## License
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0
International License][cc-by-sa].
[![CC BY-SA 4.0][cc-by-sa-image]][cc-by-sa]
[cc-by-sa]: http://creativecommons.org/licenses/by-sa/4.0/
[cc-by-sa-image]: https://licensebuttons.net/l/by-sa/4.0/88x31.png
[cc-by-sa-shield]: https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg

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,35 +1,28 @@
\chapter{Baking}%
\label{ch:baking}
\begin{quoting} \begin{quoting}
Baking refers to the part of the process where you are loading Baking refers to the part of the process where you are loading your dough into
your dough into the oven. This is typically done after your the oven\footnote{While some breads like flatbreads could also be baked on the
dough has gone through the bulk fermentation and proofing stage. stove. This chapter focuses on the home oven.}. Baking is typically done after
your dough has gone through the bulk fermentation and proofing stage. This
chapter will review what happens to your dough during baking, as well as
several techniques used to improve the final result.
\end{quoting} \end{quoting}
\begin{flowchart}[!htb] \section{The process of baking}
\begin{center} Once temperature starts to rise, the dough will go through several stages as
\input{figures/fig-baking-process.tex} summarized in Table~\ref{tab:baking-stages}. As the dough heats up, the water
\caption[Different steaming methods]{A schematic visualization of the baking and acids in your dough start to evaporate. When baking a gluten based dough,
process using different sources of steam in a home oven.}% the bubbles in your dough start to expand. The dough starts to vertically
\label{fig:baking-process} rise, this is called oven spring. Your bread starts to build a crust of
\end{center} gel-like consistency, the crust is still extensible and can be stretched.
\end{flowchart}
Some other breads like flatbreads
could also be baked on the stove. This chapter focuses on the
home oven.
As the dough heats up, the water and acids
in your dough start to evaporate. When baking
a gluten based dough, the bubbles in your dough start to expand.
Your dough starts to vertically 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{table}[htp!]
\begin{center} \centering
\input{tables/table-baking-process-stages.tex} \input{tables/table-baking-process-stages.tex}
\caption[Stages of dough during backing]{The different stages that \caption[Stages of dough during baking]{The different stages that
your dough undergoes during the baking process.} your dough undergoes during the baking process.}%
\end{center} \label{tab:baking-stages}
\end{table} \end{table}
At around \qty{60}{\degreeCelsius} (\qty{140}{\degF}) the microbes in your dough start to die. At around \qty{60}{\degreeCelsius} (\qty{140}{\degF}) the microbes in your dough start to die.
@@ -41,51 +34,51 @@ More research should be done here to validate or invalidate this
claim. claim.
At \qty{75}{\degreeCelsius} (\qty{167}{\degF}) the surface of your dough turns into a gel. It At \qty{75}{\degreeCelsius} (\qty{167}{\degF}) the surface of your dough turns into a gel. It
holds together nicely and is still extensible. This gel is essential holds together nicely but is still extensible. This gel is essential
for oven spring as it retains the gas of your dough very well. for oven spring as it retains the gas inside your dough.
At around \qty{100}{\degreeCelsius} (\qty{212}{\degF}) the water starts to evaporate out of your At around \qty{100}{\degreeCelsius} (\qty{212}{\degF}) the water starts to evaporate out of your
dough. If this weren't the case, your dough would taste soggy and dough. If this weren't the case, your dough would taste soggy and
doughy. The higher hydration your dough has, the more water your bread doughy. The higher hydration your dough has, the more water your bread
still contains after the bake. The crumb is going to taste a bit still contains after the bake, changing its consistency. As a result the
more moist. The consistency will be different. crumb is going to taste a bit more moist.
Another often undervalued step is the evaporation of acids. At Another often undervalued step is the evaporation of acids.
\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough starts to evaporate. At~\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough
Shortly after at \qty{122}{\degreeCelsius} (\qty{252}{\degF}) the lactic acid begins evaporating. starts to evaporate.
This is crucial to understand and opens a door to many interesting Shortly after at~\qty{122}{\degreeCelsius} (\qty{252}{\degF}) the lactic acid begins evaporating.
This is crucial to understand and it opens the door to many interesting
ways to influence your final bread's taste. As more and more water ways to influence your final bread's taste. As more and more water
begins to evaporate the acids in your dough become more concentrated. begins to evaporate the acids in your dough become more concentrated.
There is less water but in relation you have more acids. A shorter There is less water but in relation you have more acids, therefore a shorter
bake will therefore lead to a more tangy dough. The longer you bake the bread, bake will lead to a more tangy dough. The longer you bake the bread,
the more of the water evaporates, but also ultimately the acids will follow. the more of the water evaporates, but also ultimately the acids will follow.
They will be more concentrated. In absolute units, though, they The longer you bake, the less sour your bread is going to be. By controlling
will become less and less. The longer you bake, the less sour baking time you can influence which sourness level you would like to achieve.
your bread is going to be. By baking you can
influence which sourness level you would like to achieve.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{baking-experiment-temperatures.png}
\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
replacement. All the apples were coming from the fridge. The temperature
was measured using a barbecue thermometer. The more steam, the faster
the surface temperature increases.}
\end{figure}
It would be a very interesting experiment to bake a bread at different exact It would be a very interesting experiment to bake a bread at different exact
temperatures. How would a bread taste with only evaporated water but temperatures. How would a bread taste with only evaporated water but
full acidity? What if you were to just completely get rid of the acetic full acidity? What if you were to just completely get rid of the acetic
acid? How would the taste change? acid? How would the taste change?
As the temperature increases \begin{figure}[!htb]
the crust thickens. The Maillard reaction kicks in, further deforming \input{plots/fig-temperature-surface.tex}
proteins and starches. The outside of your dough starts to become \caption[Surface temperature for different steaming methods]{This
browner and crisper. This process begins at around \qty{140}{\degreeCelsius} (\qty{284}{\degF}) chart shows how surface temperatures change using different steaming
methods. In this case I~used a Dutch oven and an apple as dough
replacement. All the apples were coming from the fridge. The temperature
was measured using a barbecue thermometer. The more steam, the faster
the apple's surface temperature increases.}
\end{figure}
Once the temperature increases even more to around \qty{170}{\degreeCelsius} (\qty{338}{\degF}), As the temperature increases further the crust thickens. The Maillard reaction
the caramelization process begins. The remaining sugars the microbes kicks in, deforming proteins and starches. The outside of your dough starts to
become browner and crisper, this process begins at
around~\qty{140}{\degreeCelsius} (\qty{284}{\degF})
Once the temperature increases even more to around~\qty{170}{\degreeCelsius}
(\qty{338}{\degF}),
the caramelization process begins, the remaining sugars and the microbes which
did not convert yet start to brown and darken. You can keep baking did not convert yet start to brown and darken. You can keep baking
for as long as you like to achieve the crust color that you for as long as you like to achieve the crust color that you
like\footnote{This really depends a lot on your personal preference. like\footnote{This really depends a lot on your personal preference.
@@ -95,65 +88,53 @@ heat your bread in the oven one more time to continue building a
darker crust.}. darker crust.}.
The best method to know that your dough is done is to take The best method to know that your dough is done is to take
the temperature of your dough. You can use a barbecue thermometer the temperature of your dough, you can use a barbecue thermometer
to measure it. Once the core temperature is at around \qty{92}{\degreeCelsius} (\qty{197}{\degF}), to measure it. Once the core temperature is at around~\qty{92}{\degreeCelsius}
(\qty{197}{\degF}),
you can stop the baking process. This is typically not done though you can stop the baking process. This is typically not done though
as the crust hasn't been built yet\footnote{The thermometer is as the crust hasn't been built yet\footnote{The thermometer is
especially important when using a large loaf pan. It is sometimes especially important when using a large loaf pan. It is sometimes
very hard to judge from the outside if the dough is done. I~failed very hard to judge from the outside if the dough is done. I~failed
many times and ended up having a semi baked dough.}. many times and ended up having a semi baked dough.}.
Once your dough has finished baking, it is ready to eat. Your Once your dough has finished baking, it is ready to eat: your
dough has turned into a bread. At this dough has turned into a bread. At this
point, your bread is sterile as the temperature was too hot for point, your bread is sterile as the temperature was too hot for
for the microorganisms to survive\footnote{I~wonder though for the microorganisms to survive\footnote{I~wonder though
if a starter culture could be grown again from a slice of bread. if a starter culture could be grown again from a slice of bread.
Under heat stress the microorganisms begin sporulating. Maybe Under heat stress the microorganisms begin sporulating. Maybe
some of the spores survive the baking process and could be reactivated some of the spores survive the baking process and could be reactivated
later? If this worked, you could use any store bought sourdough later? If this works, you could use any store bought sourdough
bread as a source for a new starter.}. bread as a source for a new starter.}.
\section{The role of steam} \section{The role of steam}
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{oven-example}
\caption[Home oven baking example to maximize steam]{My default home oven setup. The tray of rocks
and tray on top of the rolls greatly improve the steaming capabilities. This way the bread can
rise more during the initial stage of the baking process.}
\end{figure}
Steam is essential when baking as it helps to counter premature Steam is essential when baking as it helps to counter premature
crust building. During the first stage of the bake, the dough crust building. During the first stage of the bake, the dough
increases in size. The water in your dough evaporates and pushes increases in size as the water in your dough evaporates and pushes
the whole dough upwards. the whole dough upwards.
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{baking-process-steam.jpg}
\caption[Steam building with inverted tray]{How steam builds in your oven
using the later described inverted tray method.}
\end{figure}
Normally, under high heat a crust would form. Just like Normally, under high heat a crust would form. Just like
if you were to bake vegetables in your home oven, at some point if you were to bake vegetables in your home oven, at some point
they become darker and crisper. This is the same thing that they become darker and crisper. This is the same thing that
happens with your dough. You want to delay this process happens with your dough, and you want to delay this process
as long as possible until your dough no longer expands. as long as possible until your dough no longer expands.
Expansion stops when most of the microbes have died and Expansion stops when most of the microbes have died and
the evaporating water no longer stays inside the alveoli. the evaporating water no longer stays inside the alveoli.
The stronger the gluten network, the more gas can be retained The stronger the gluten network, the more gas can be retained
during the baking process. This gluten network at some point during the baking process. This gluten network at some point
loses its ability to contain gas as the temperature heats loses its ability to contain gas as the temperature heats
up. The dough stops increasing in size. The steam plays up. The dough stops increasing in size. The steam plays
an important role as it condenses and evaporates on top an important role as it condenses and evaporates on top
of your dough. The surface temperature is rapidly increasing of your dough. The surface temperature is rapidly increasing
to around \qty{75}{\degreeCelsius} (\qty{160}{\degF}). At this temperature the gel starts to around~\qty{75}{\degreeCelsius} (\qty{160}{\degF}). At this temperature the
to build. This gel is still extensible and allows expansion. gel starts to build, and is still extensible and allows expansion.
Without the steam, the dough would never enter the gel stage, Without the steam, the dough would never enter the gel stage,
but instead directly go to the Maillard reaction zone. You but instead directly go to the Maillard reaction zone. You
want your dough to stay in this gel stage as long as possible want your dough to stay in this gel stage as long as possible
to achieve maximum expansion\footnote{You can remove your to achieve maximum expansion\footnote{You can remove your
dough from the oven after 5~minutes to see the gel. You will notice dough from the oven after 5~minutes to see the gel. You will notice
that it holds the dough's structure. It has a very interesting consistency.}. that it holds the dough's structure and it has a very interesting consistency.}.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{baking-process-stage-2.jpg} \includegraphics[width=\textwidth]{baking-process-stage-2.jpg}
@@ -164,10 +145,9 @@ that it holds the dough's structure. It has a very interesting consistency.}.
When not steaming enough, you will notice that the scoring When not steaming enough, you will notice that the scoring
incisions do not properly open up during the bake. They stay incisions do not properly open up during the bake. They stay
closed as the dough is unable to push through the crust. closed as the dough is unable to push through the crust.
Another common sign, as you can see in Figure~\ref{fig:too-little-steam} is
Another common sign is that you have larger pockets that you have larger pockets of air towards the crust of your dough. As the
of air towards the crust of your dough. As the dough increases dough increases vertically, expansion is halted by the crust. The pockets
vertically, expansion is halted by the crust. The pockets
of air converge into larger pockets as the pressure increases. of air converge into larger pockets as the pressure increases.
This can also happen when you are baking at too high a temperature. This can also happen when you are baking at too high a temperature.
@@ -184,10 +164,34 @@ way.
\caption[Bread baked too hot]{A submission by Karomizu showing a bread that \caption[Bread baked too hot]{A submission by Karomizu showing a bread that
has been baked at too high a temperature or with too little steam. Note has been baked at too high a temperature or with too little steam. Note
the large pockets of air towards the crust. They are a typical the large pockets of air towards the crust. They are a typical
indicator.} indicator.}%
\label{fig:too-little-steam}
\end{figure} \end{figure}
\section{Dutch ovens} \section{Building up steam}
\begin{flowchart}[!htb]
\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{flowchart}
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{oven-example}
\caption[Home oven baking example to maximize steam]{My default home oven setup. The tray of rocks
and tray on top of the rolls greatly improve the steaming capabilities. This way the bread can
rise more during the initial stage of the baking process.}
\end{figure}
\begin{figure}[!htb]
\includegraphics[width=\textwidth]{baking-process-steam.jpg}
\caption[Steam building with inverted tray]{How steam builds in your oven
using the later described inverted tray method.}%
\label{flc:inverted-tray}
\end{figure}
\subsection{Dutch ovens}
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{dutch-oven-example} \includegraphics[width=\textwidth]{dutch-oven-example}
@@ -200,7 +204,7 @@ way.
\end{figure} \end{figure}
\begin{flowchart}[!htb] \begin{flowchart}[!htb]
\begin{center} \centering
\input{figures/fig-dutch-oven-process.tex} \input{figures/fig-dutch-oven-process.tex}
\caption[Baking process with a dutch oven]{A visualization of the baking \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 process using a dutch oven (DO). The dough is steamed for the first half
@@ -209,7 +213,6 @@ way.
personal preference. Some bakers prefer a lighter crust and others a personal preference. Some bakers prefer a lighter crust and others a
darker.}% darker.}%
\label{fig:dutch-oven-process} \label{fig:dutch-oven-process}
\end{center}
\end{flowchart} \end{flowchart}
Dutch ovens are an ideal way to bake with a lot of Dutch ovens are an ideal way to bake with a lot of
@@ -239,18 +242,19 @@ as the size of the Dutch oven is limited.
In many cases, it makes sense to bake multiple In many cases, it makes sense to bake multiple
loaves in one go. It makes the whole process more loaves in one go. It makes the whole process more
efficient as you have to knead less per loaf. The time it efficient as you have to knead less per loaf. The time it
takes to make one loaf is significantly reduced. Furthermore, takes to make one loaf is significantly reduced on average. Furthermore,
you don't require as much energy. You don't have you don't require as much energy. You don't have
to preheat your oven twice for each loaf. to preheat your oven twice for each loaf.
An additional disadvantage of Dutch ovens is the An additional disadvantage of Dutch ovens is the
need to move very hot and heavy cast iron. \footnote{ need to move very hot and heavy cast iron\footnote{%
Some of them can weigh up to 10 kg. Moving them is quite Some of them can weigh up to 10 kg. Moving them is quite
a tedious exercise. Especially if the cast iron is a tedious exercise. Especially if the cast iron is
heated you have to be very concise with your movements. heated you have to be very concise with your movements.
Despite doing my best I have a few scars on my Despite doing my best I have a few scars on my
hands and arms from operating the Dutch ovens. hands and arms from operating the Dutch ovens.
} You will need to be very careful and ideally use }.
You will need to be very careful and ideally use
heat-resilient gloves when touching your Dutch oven. heat-resilient gloves when touching your Dutch oven.
Furthermore, some of the Dutch ovens come at a hefty Furthermore, some of the Dutch ovens come at a hefty
@@ -259,24 +263,23 @@ top of other tools can be quite a hefty investment. For
this reason, I advocate the inverted tray method visualized this reason, I advocate the inverted tray method visualized
in the next section. In case you do not own an oven consider trying in the next section. In case you do not own an oven consider trying
the simple flatbread recipe which is baked in a pan. Please the simple flatbread recipe which is baked in a pan. Please
refer to section \ref{section:flat-bread-recipe} for more details. refer to Section~\ref{subsec:flat-bread-recipe} for more details.
\section{Inverted tray method} \subsection{Inverted tray method}
The inverted tray method simulates a Dutch oven. The inverted tray method simulates a Dutch oven.
By placing another tray on top of your dough, the steam By placing another tray on top of your dough, the steam
created from the dough and water source stays created from the dough and water source stays
around your dough. around your dough.
\begin{figure}[!htb] \begin{flowchart}[!htb]
\begin{center} \centering
\input{figures/fig-inverted-tray-method.tex} \input{figures/fig-inverted-tray-method.tex}
\caption[Inverted tray baking process]{A schematic visualization the \caption[Inverted tray baking process]{A schematic visualization the
inverted tray baking method that works great for home ovens.}% inverted tray baking method that works great for home ovens.}%
\label{fig:inverted-tray-process} \label{fig:inverted-tray-process}
\end{center} \end{flowchart}
\end{figure}
The biggest advantage of this method compared to the The biggest advantage of this method compared to the
@@ -328,11 +331,10 @@ crust color. In my case this is another 15--25~minutes typically.
\section{Conclusions} \section{Conclusions}
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-oven-baking-overview.tex} \input{tables/table-oven-baking-overview.tex}
\caption[Different oven types]{An overview of different oven types and their \caption[Different oven types]{An overview of different oven types and their
different baking methods.} different baking methods.}
\end{center}
\end{table} \end{table}
Depending on your home oven, a different method 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} \end{quoting}
\begin{figure}[!htb] \begin{figure}[!htb]
\centering
\includegraphics[width=\textwidth]{infographic-enzymes} \includegraphics[width=\textwidth]{infographic-enzymes}
\caption[Interaction of amylases and flour]{How amylases and proteases \caption[Interaction of amylases and flour]{How amylases and proteases
interact with flour.}% interact with flour.}%
\label{infographic-enzymes} \label{fig:infographic-enzymes}
\end{figure} \end{figure}
\section{Enzymatic reactions} \section{Enzymatic reactions}
To understand the many enzymatic reactions that take place when flour To understand the many enzymatic reactions that take place when flour
and water are mixed, we must first understand seeds and their role in 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, Seeds are the primary means by which many plants, including wheat,
reproduce. Each seed contains the embryo of another plant, and must 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 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 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 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 study~\cite{milling+commercial+home+mill+comparison} tests have shown that
milling flour milling flour
at home with a small mill had no significant negative impact on the resulting 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, Normally,
the microorganisms on the surface of the grain can't consume the freed maltose 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 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 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 this reaction occurs. However, it takes time for the amylase
bread. It takes time for the amylase to break down most of the starch into to break down most of the starch into simple sugars---which are not only
simple sugars, which are not only consumed by the yeast but are also essential consumed by the yeast but are also
to the \emph{Maillard reaction}, responsible for enhanced browning during the essential to the \emph{Maillard reaction}---responsible for
baking process. 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 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 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 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 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 recipes call for it as the process gives the dough an enzymatic head start,
in general it's a great idea. However, as an equally effective alternative, and in general it's a great idea. However, as an equally effective
you could simply reduce the amount of leavening agent used --- in the case of alternative, you could simply reduce the amount of leavening agent used---in
sourdough, this would be your starter. This would allow the same biochemical the case of sourdough, this would be your starter. This would allow the same
reactions to occur at roughly the same rate without requiring you to mix your biochemical reactions to occur at roughly the same rate without requiring you
dough several times. My whole-wheat game improved dramatically after I~stopped to mix your dough several times. My whole-wheat game improved dramatically
autolysing my doughs. after I~stopped autolysing my doughs.
Now that I've had time to think about it, the result I~observed makes sense. 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 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 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 seeds, requiring water to enter quickly. Yet the seed must also defend itself
against animals and potentially hazardous bacteria and fungi, requiring some 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 barrier to protect the embryo inside. A way for the plant to achieve both
would be for most of the enzymes to exist in the outer parts of the hull. As a goals would be for most of the enzymes to exist in the outer parts of the
result, they are activated first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a 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 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 improve the enzymatic activity of your dough. That's why, for plain white
doughs, I~usually add 10\textendash20\% whole-wheat flour. flour doughs, I~usually add \qtyrange{10}{20}{\percent} whole-wheat flour.
\begin{figure} \begin{figure}
\centering
\includegraphics[width=\textwidth]{whole-wheat-crumb} \includegraphics[width=\textwidth]{whole-wheat-crumb}
\caption{A whole-wheat sourdough bread.}% \caption{A whole-wheat sourdough bread.}%
\label{whole-wheat-crumb} \label{fig:whole-wheat-crumb}
\end{figure} \end{figure}
By understanding the two key enzymes \emph{amylase} and \emph{protease}, you By understanding the two key enzymes \emph{amylase} and \emph{protease}, you
@@ -211,22 +215,22 @@ tweak just by adjusting the speed of your dough's fermentation.
\section{Yeast} \section{Yeast}
Yeasts are single-celled microorganisms belonging to the fungi kingdom, and Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
spores that are hundreds of millions of years old have been identified by can reproduce through either budding or by building spores. The spores are
scientists. There are a wide variety of species --- so far, about \num{1500} incredibly tiny and resistant to external factors. Scientists have found
have been identified. Unlike other members of the fungi kingdom such as mold, undamaged spores that are hundreds of million years old. There are a wide
yeasts do not ordinarily create a mycelium variety of species---so far, about \num{1500} have been identified. Unlike
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting other members of the fungi kingdom such as mold, yeasts do not ordinarily
exception, skip ahead to the end of this section on create a mycelium network~\cite{molecular+mechanisms+yeast}.\footnote{For one
page~\pageref{aggressive-yeast}.} interesting exception, skip ahead to the end of this section on
page~\pageref{sec:aggressive-yeast}.}
\begin{figure}[!htb] \begin{figure}[!htb]
\begin{center} \centering
\includegraphics[width=0.8\textwidth]{saccharomyces-cerevisiae-microscope} \includegraphics[width=0.8\textwidth]{saccharomyces-cerevisiae-microscope}
\caption[Brewer's yeast]{Saccharomyces cerevisiae: Brewer's yeast under the \caption[Brewer's yeast]{Saccharomyces cerevisiae: Brewer's yeast under the
microscope.}% microscope.}%
\label{saccharomyces-cerevisiae-microscope} \label{fig:saccharomyces-cerevisiae-microscope}
\end{center}
\end{figure} \end{figure}
Yeasts are saprotrophic fungi. This means that they do not produce their own Yeasts are saprotrophic fungi. This means that they do not produce their own
@@ -321,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 leaves. They found that when the wound was inoculated with yeast, the grape
sustained no significant damage~\cite{yeasts+biocontrol+agent}. 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 Intriguingly, there was also an experiment performed that showed how brewer's
yeast could function as an aggressive pathogen to grapevines. Initially, the yeast could function as an aggressive pathogen to grapevines. Initially, the
yeast lived in symbiosis with the plants, but after the vines sustained heavy yeast lived in symbiosis with the plants, but after the vines sustained heavy
@@ -332,7 +336,7 @@ so that they could penetrate the tissue of the plants.
\section{Bacteria} \section{Bacteria}
The other most dominant microbial antagonists in your sourdough are bacteria. The other most dominant microbial antagonists in your sourdough are bacteria.
In fact, they are so dominant that they outnumber the yeast in your dough In fact, they are so dominant that they outnumber the yeast in your dough
100~to~1. Whereas yeast provides leavening power, bacteria create the distinct 100~to~1. Whereas yeast provides leavening power, bacteria create the distinct
flavours for which sourdough has been named. These are due to the acidic flavours for which sourdough has been named. These are due to the acidic
byproducts that result from bacterial feeding. As a bonus, these acids byproducts that result from bacterial feeding. As a bonus, these acids
@@ -340,10 +344,11 @@ can significantly increase the shelf life of sourdough
breads~\cite{shelflife+acidity}. breads~\cite{shelflife+acidity}.
\begin{figure} \begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{bacteria-microscope} \includegraphics[width=1.0\textwidth]{bacteria-microscope}
\caption[Bacteria under the microscope]{Fructilactobacillus Sanfranciscensis \caption[Bacteria under the microscope]{Fructilactobacillus
under the microscope.}% sanfranciscensis under the microscope.}%
\label{lactobacillus-franciscensis-microscope} \label{fig:lactobacillus-franciscensis-microscope}
\end{figure} \end{figure}
There are two predominant types of acid produced in sourdough bread: lactic and There are two predominant types of acid produced in sourdough bread: lactic and
@@ -367,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 versa. This makes sense, as nature generally does a superb job of composting
and breaking down biological matter~\cite{lactobacillus+sanfrancisco}. and breaking down biological matter~\cite{lactobacillus+sanfrancisco}.
I~have yet to find a proper source that clearly describes the symbiosis between I~have yet to find a proper source that clearly describes the symbiosis
yeast and bacteria, but my current understanding is that they both coexist and between yeast and bacteria, but my current understanding is that they both
sometimes benefit each other, but not always. Yeast, for example, tolerate the coexist and sometimes benefit each other, but not always. Yeast, for example,
acidic environment created by the surrounding bacteria and are thus protected tolerate the acidic environment created by the surrounding bacteria and are
from other pathogens. Meanwhile, however, other research demonstrates that both thus protected from other pathogens. Meanwhile, however, other research
types of microorganisms produce compounds that prevent the other from demonstrates that both types of microorganisms produce compounds that prevent
metabolizing food --- an interesting observation, by the way, as it could help to the other from metabolizing food---an interesting observation, by the way, as
identify additional antibiotics or fungicides~\cite{mold+lactic+acid+bacteria}. 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 In the past, I've tried cultivating mushrooms and observed the mycelium
attempting to defend itself against the surrounding bacteria; both types of attempting to defend itself against the surrounding bacteria; both types of

View File

@@ -7,3 +7,12 @@
object-fit: contain; object-fit: contain;
width: auto; width: auto;
} }
.float {
max-width: 100%;
}
.float img {
max-width: 100% !important;
height: auto;
object-fit: contain;
width: auto;
}

View File

@@ -18,9 +18,8 @@
\ifdefined\HCode\else\tableofcontents\fi \ifdefined\HCode\else\tableofcontents\fi
} }
\input{intro/foreword}
\input{intro/preface} \input{intro/preface}
\input{intro/acknowledgements} \input{intro/acknowledgments}
\mainmatter \mainmatter
@@ -28,45 +27,35 @@
\input{basics/how-sourdough-works} \input{basics/how-sourdough-works}
\chapter{Making a sourdough starter}
\input{sourdough-starter/sourdough-starter} \input{sourdough-starter/sourdough-starter}
\chapter{Sourdough starter types}
\input{sourdough-starter/sourdough-starter-types} \input{sourdough-starter/sourdough-starter-types}
\chapter{Flour types}
\input{flour-types/flour-types} \input{flour-types/flour-types}
\chapter{Bread types}
\input{bread-types/bread-types} \input{bread-types/bread-types}
\chapter{Wheat sourdough}%
\label{chapter:wheat-sourdough}
\input{wheat-sourdough/wheat-sourdough} \input{wheat-sourdough/wheat-sourdough}
\chapter{Non wheat sourdough}%
\label{chapter:non-wheat-sourdough}
\input{non-wheat-sourdough/non-wheat-sourdough} \input{non-wheat-sourdough/non-wheat-sourdough}
% \input{mix-ins/mix-ins.tex} \input{mix-ins/mix-ins.tex}
\chapter{Baking}%
\label{chapter:baking}
\input{baking/baking} \input{baking/baking}
\chapter{Storing bread}%
\label{chapter:storing-bread}
\input{storing-bread/storing-bread} \input{storing-bread/storing-bread}
\chapter{Troubleshooting} \chapter{Troubleshooting}
\input{troubleshooting/misc} \input{troubleshooting/misc}
\backmatter \backmatter
\printbibliography \input{glossary/glossary}
{% {%
\hypersetup{hidelinks} \hypersetup{hidelinks}
\listofflowcharts \listofflowcharts
\listoftables \listoftables
\listoffigures \listoffigures
} }
\printbibliography
\end{document} \end{document}

View File

@@ -1 +0,0 @@
book.mk4

View File

@@ -1,4 +1,2 @@
\def\isaccessible{1} \def\isaccessible{1}
% We have to use a symlink to book.tex to prevent tex4ebook to load book.ht4 \input{book.tex}
% before loading any other package and create conflicts
\input{sourdough_book.tex}

View File

@@ -1,53 +1,251 @@
\chapter{Bread types}%
\label{ch:bread-types}
\begin{quoting} \begin{quoting}
In this chapter you will learn about different bread types and their In this chapter you will learn about different bread types and their
advantages and disadvantages. At the end of this chapter you can find a very advantages and disadvantages. You can also find very simple recipes for
simple flatbread recipe. This is probably the most accessible, least effort flatbread and pan loaf. The former is probably the most accessible, least
type of bread you can make. If you are a busy person and/or don't have an effort type of bread you can make, while the latter is a little more involved.
oven, this might be exactly the type of bread you should consider. Free standing bread has its own chapter, due to its increased complexity.
\end{quoting} \end{quoting}
\section{Introduction}%
\label{sec:intro}
In this section we classify bread by its baking techniques. The appearance and
taste will of course be different, but you can get excellent bread with each
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.
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-overview-bread-types.tex} \input{tables/table-overview-bread-types.tex}
\caption[Different bread types]{An overview of different bread types \caption[Different bread types]{An overview of different bread types
and their respective complexity.}% and their respective complexity.}%
\label{tab:bread-types-comparison} \label{tab:bread-types-comparison}
\end{center}
\end{table} \end{table}
\section{Flatbread} \section{Flatbread}%
\label{sec:flatbread}
Flatbread is probably the simplest sourdough bread to make. Flatbread is probably the simplest sourdough bread to make.
To make a flatbread no oven is required; all you need is a stove. To make a flatbread no oven is required; all you need is a stove.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-stove} \includegraphics[width=\textwidth]{flat-breads-selection}
\caption[Einkorn done on open fire]{An einkorn flatbread made directly over \caption[Flatbread selection with different flours]{An assorted selection of
fire. This is part of a video where I~was trying to reproduce sourdough different flatbreads made with sourdough. From left to right:
recipes of our ancestors. I~called the recipe ``cave bread''. Some Wheat~tortilla, rye, spelt and corn.}%
viewers pointed out that probably not all our ancestors lived in caves.}
\end{figure} \end{figure}
This type of bread is super simple to make as you can skip This type of bread is super simple to make as you can skip
a lot of the technique that is normally required. The flatbread a lot of the technique that is normally required to make wheat doughs.
can be made with all kinds of flours. You can even use The flatbread can be made with all kinds of flours. You can even use
flour without gluten, such as corn or rice flour, to make the flour without gluten, such as corn or rice flour, to make the
dough. To make the flatbread a little more fluffy, you dough. To make the flatbread a little more fluffy, you
can use a little bit of wheat flour. The developing gluten can use a little bit of wheat flour. The developing gluten
will trap the gasses. During baking, these gasses will will trap the gases. During baking, these gases will
inflate the dough. inflate the dough.
Another trick to improve the texture of the flatbread is to Another trick to improve the texture of the flatbread is to
make a very wet dough. A lot of the water will evaporate make a very wet dough. A lot of the water will evaporate
during the baking process and thus make the bread fluffier. during the baking process and thus make the bread fluffier.
If your water content is very high, it will produce a If your water content is very high, it will produce a
pancake-like consistency. pancake-like consistency, as you can see in
Table~\ref{tab:flat-bread-ingredients}
Refer to Section~\ref{section:flat-bread-recipe}~``\nameref{section:flat-bread-recipe}'' \begin{table}[!htb]
to see a full recipe including the process of making such a flatbread. \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{sec:bakers-math}
``\nameref{sec:bakers-math}'' to learn how to understand and
use the percentages properly.}%
\label{tab:flat-bread-ingredients}
\end{table}
\section{Loaf pan bread} For a full recipe including the process of making such a flatbread, refer to
Subsection~\ref{subsec:flat-bread-recipe}
\subsection{Flatbread framework}%
\label{subsec:flat-bread-framework}
As explained above, if you are just getting started, making a flatbread is the
easiest way to start making great bread at home. With just a
few steps, you can stop buying bread forever. This works with
any flour, including gluten-free options.
\begin{flowchart}[!htb]
\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{flowchart}
This is my go-to recipe that I~use to make bread whenever
I~have little time or when I~am abroad. You can choose
between two options:
%
\begin{enumerate}
\item A flatbread similar to a roti or naan bread
\item Sourdough pancakes.
\end{enumerate}
To get started prepare your sourdough starter. If it has not been used for a very
long time, consider giving it another feed. To do so, simply take \qty{1}{\gram} of your
existing sourdough starter and feed it with \qty{5}{\gram} of flour and \qty{5}{\gram} of water.
If you do this in the morning, your sourdough starter will be ready in the evening. The
warmer it is, the sooner it will be ready, consider
using warm water if it is very cold where you live.
\begin{figure}[htb!]
\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{figure}
This way you should have around \qty{11}{\gram} of sourdough ready in the evening. You will have
the perfect quantity to make a dough for one person. In case you want to make more
bread, simply multiply the quantities shown in
Table~\ref{tab:flat-bread-ingredients}.
Then in the evening simply mix the ingredients as shown in the table. Your dough
is going to be ready in the morning. It's typically ready after 6--12~hours. If
you use more sourdough starter it will be ready faster, conversely it will take
longer if you use less. Try to aim for a fermentation time of 8--12~hours as
by using your dough too soon, the flavor might not be as good. By using your
dough later it might become a little more sour. The best option is to
experiment and see what you personally like the most.
After mixing the ingredients together cover the container, this prevents the
dough from drying out and makes
sure no fruit flies get access. A transparent container will be helpful
when getting started. You can observe the dough more easily and see when
it is ready.
\begin{figure}[htb]
\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{figure}
If you used the flatbread option with less water, look at the size increase
of your dough. It should have increased at least \qty{50}{\percent} in size.
Also look out for bubbles on the sides of your container.
When using the pancake recipe, look out for bubbles on the surface of your dough.
In both cases use your nose to check the scent of your dough. Depending
on your sourdough starter's microbiome your dough will have
dairy, fruity, alcoholic notes or vinegary, acetic notes. Relying
on the smell of your dough is the best way to judge whether your
dough is ready or not. Timings are not reliable as they
depend on your starter and the temperature. If your dough
is ready too soon, you can now move it directly to the fridge and bake
it at a later, more convenient time. The low temperature will halt the fermentation
process\footnote{There are some exceptions. In some rare cases your starter
might also work at lower temperatures. You might have cultivated microbes that work best at
low temperatures. Nevertheless, fermentation
is always slower the colder it gets. A fridge really helps to preserve the state
of your dough.}
and your dough will last for several days. The longer you wait, the more sour the
bread is going to be. The fridge is a great option in case you want to
take the dough with you when visiting friends. People are going
to love you for the freshly baked flatbreads or pancakes. If you dare,
you can also taste a little bit of your raw uncooked dough. It is likely
going to taste relatively sour. I~do this frequently to better evaluate the
state of my doughs.
\begin{figure}[!htb]
\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{figure}
If you are feeling lazy or don't have time, you could also use older sourdough starter
to make the dough directly without any prior starter feedings. Your sourdough starter
is going to regrow inside your dough. Remember that the
final bread might be a bit more on the sour side as the balance of yeast to
bacteria could be off. In the Table~\ref{tab:flat-bread-ingredients}
I~recommended using around \qtyrange{5}{20}{\percent}
of sourdough starter based on the flour to make the dough. If you were to follow
this approach, just use around \qty{1}{\percent} and make the dough directly.
The dough is probably going to be ready 24~hours later, depending on the temperature.
If you want to make sweet pancakes, add some sugar and optional eggs to your dough
now. A good quantity of eggs is around one~egg per \qty{100}{\gram} of flour.
Stir your dough a little bit and it will be ready to be used. You'll
have delicious sweet savory pancakes, the perfect combination. By
adding the sugar now, you make sure that the microbes don't have
enough time to fully ferment it. If you had added the sugar
earlier, no sweet flavor would be left 12~hours later.
To bake your dough heat your stove to medium temperature. Add a little bit of
oil to the pan. This helps with heat distribution and ensures even cooking.
With a spatula or a spoon place your dough in the pan. If your dough
was sitting in the fridge, bake it directly. There is no need to wait for your
dough to come to room temperature. If you have a lid,
place it on your pan. The lid helps to cook your dough from the top.
The evaporating water will circulate and heat up the dough's surface. When
making a flatbread, make the dough around \qty{1}{\cm} thick. When using the
pancake option, opt for around \qtyrange{0.1}{0.5}{\cm} depending on what you
like.
\begin{figure}[htb]
\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{figure}
After 2--4~minutes flip over the pancake or flatbread. Bake it for the same
time from the other side. Depending on what you like, you can wait a little
longer to allow the bread to become a bit charred. The longer you
bake your bread, the more of the acidity is going to evaporate. If your
dough is a bit more on the sour side, you can use this trick to balance
out the acidity. This really depends on which flavor you are looking for.
When making a flatbread I~recommend wrapping the baked flatbreads in a kitchen
towel. This way more of the evaporating humidity stays inside of your bread,
making sure your flatbreads stay nice and fluffy for a longer period after the
bake. A similar strategy is used when making corn tortillas.
You can safely store the baked flatbreads or pancakes in your fridge
for weeks. When storing make sure to store them in an airtight plastic bag so that
they do not dry out. If they dry out, spray them with some water and toast them.
They will be almost as good as when they were freshly baked.
Keep a little bit of your unbaked dough. You can use it to make the next
batch of bread or pancakes for the next day. If you want to bake a few days later, add
a little bit of water and flour and store this mixture in your fridge
for as long as you like\footnote{The starter will stay good for months. If you expect to
leave it longer, consider drying a little bit of your sourdough starter.}.
\subsection{Simple flatbread recipe}%
\label{subsec:flat-bread-recipe}
By following the steps outlined in this section,
you'll be introduced to a versatile bread that's perfect for a myriad of
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.
\input{recipes/flat-bread.tex}
\section{Loaf pan bread}%
\label{sec:loaf-pan-bread}
Loaf pan bread is made using the help of a special loaf pan Loaf pan bread is made using the help of a special loaf pan
or loaf tin. The edges of the pan provide additional support or loaf tin. The edges of the pan provide additional support
@@ -93,10 +291,9 @@ evaporating moisture will stay inside.
A good trick to make excellent loaf pan bread is to make a very A good trick to make excellent loaf pan bread is to make a very
sticky dough. You can opt for a hydration of \qtyrange{90}{100}{\percent}, almost sticky dough. You can opt for a hydration of \qtyrange{90}{100}{\percent}, almost
resembling a default sourdough starter. Just like with flatbread, resembling a default sourdough starter. Just like with flatbread,
the high humidity helps to make a more airy, fluffy crumb. At the high humidity helps to make a more airy, fluffy crumb. The bread will
the same time the bread will be a bit chewier. This also be a bit chewier. This type of bread made with rye is my family's favorite
type of bread made with rye is my family's favorite style of bread. style of bread. The hearty rye flavor paired with the sticky consistency really
The hearty rye flavor paired with the sticky consistency really
makes an excellent sandwich bread. makes an excellent sandwich bread.
To improve the structure you can also consider using around \qty{50}{\percent} To improve the structure you can also consider using around \qty{50}{\percent}
@@ -126,23 +323,19 @@ baking vessels in your oven. To make a freestanding loaf more steps
and tools are required. and tools are required.
\begin{figure}[!htb] \begin{figure}[!htb]
\begin{center} \centering
\includegraphics[width=1.0\textwidth]{free-standing-loaf.jpg} \includegraphics[width=1.0\textwidth]{free-standing-loaf.jpg}
\caption[Freestanding sourdough bread]{A freestanding sourdough bread. Note \caption[Freestanding sourdough bread]{A freestanding sourdough bread. Note
the incision known as an \emph{ear} and the oven spring clearly the incision known as an \emph{ear} and the oven spring clearly
distinguish this type of bread from flatbread and loaf pan bread.} distinguish this type of bread from flatbread and loaf pan bread.}
\end{center}
\end{figure} \end{figure}
Normally you mix your dough. When using wheat you make sure When using wheat, make sure to mix your dough enough to develop a gluten network.
that you mix enough to develop a gluten network. Allow the dough to reach a certain size increase during the fermentation.
You allow the dough to reach Afterward, divide and pre-shape the dough into the desired visual shape you
a certain size increase during the fermentation. Afterwards you divide and pre-shape would like. Each shape requires a different technique. Sometimes achieving
the dough into the desired visual shape that you like. the right shape can be challenging. Making a baguette, for instance,
Each shape requires a different technique. Sometimes achieving requires performing more steps. Mastering this technique takes several attempts.
exactly the right shape can be challenging. Making a baguette,
for instance, requires you to perform more steps. Mastering this
technique takes several attempts.
Once the dough is shaped, it is proofed again for a certain Once the dough is shaped, it is proofed again for a certain
period of time. Once the dough is ready, a sharp tool such period of time. Once the dough is ready, a sharp tool such
@@ -154,186 +347,5 @@ performed perfectly, without mistakes.
But after baking you will be rewarded with a beautiful bread But after baking you will be rewarded with a beautiful bread
with great taste and consistency. with great taste and consistency.
There is a fully dedicated recipe and tutorial There is a dedicated recipe and tutorial for this type of bread in the
for this type of bread in the~''\nameref{chapter:wheat-sourdough}''~chapter. \nameref{ch:wheat-sourdough} chapter.
\section{Simple flatbread recipe}%
\label{section:flat-bread-recipe}
If you are just getting started, making a flatbread is the
easiest way to start making great bread at home. With just a
few steps, you can stop buying bread forever. This works with
any flour, including gluten-free options.
\begin{flowchart}[!htb]
\begin{center}
\input{figures/fig-process-flat-bread.tex}
\caption[Flat bread process]{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
I~have little time or when I~am abroad. You can choose
between two options:
%
\begin{enumerate}
\item A flatbread similar to a roti or naan bread
\item sourdough pancakes.
\end{enumerate}
\begin{table}[!htb]
\begin{center}
\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
use the percentages properly.}%
\label{tab:flat-bread-ingredients}
\end{center}
\end{table}
To get started prepare your sourdough starter. If it has not been used for a very
long time, consider giving it another feed. To do so simply take \qty{1}{\gram} of your
existing sourdough starter and feed it with \qty{5}{\gram} of flour and \qty{5}{\gram} of water.
If you do this in the morning, your sourdough starter will be ready in the evening. The
warmer it is, the sooner it will be ready. If it is very cold where you live, consider
using warm water.
\begin{figure}[htb!]
\begin{center}
\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
the perfect quantity to make a dough for one person. In case you want to make more
bread, simply multiply the quantities shown in
Table~\ref{tab:flat-bread-ingredients}.
Then in the evening simply mix the ingredients as shown in the table. Your dough
is going to be ready in the morning. It's typically ready after 6--12~hours. If
you use more sourdough starter, it will be ready faster. If you use less it will take
longer. Try to aim for a fermentation time of 8--12~hours. If you use
your dough too soon, the flavor might not be as good. If you use it later
your dough might be a little more sour. The best option is to experiment
and see what you personally like the most.
After mixing the ingredients together, cover the container in which
you made the dough. This prevents the dough from drying out and makes
sure no fruit flies get access. A transparent container will be helpful
when getting started. You can observe the dough more easily and see when
it is ready.
\begin{figure}[htb!]
\begin{center}
\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
of your dough. The dough should have increased at least \qty{50}{\percent} in size.
Also look out for bubbles on the sides of your container.
When using the pancake recipe, look out for bubbles on the surface of your dough.
In both cases use your nose to check the scent of your dough. Depending
on your sourdough starter's microbiome your dough will have
dairy, fruity, alcoholic notes or vinegary, acetic notes. Relying
on the smell of your dough is the best way to judge whether your
dough is ready or not. Timings are not reliable as they
depend on your starter and the temperature. If your dough
is ready too soon, you can now move it directly to the fridge and bake
it at a later, more convenient time. The low temperature will halt the fermentation
process\footnote{There are some exceptions. In some rare cases your starter
might also work at lower temperatures. You might have cultivated microbes that work best at
low temperatures. Nevertheless, fermentation
is always slower the colder it gets. A fridge really helps to preserve the state
of your dough.}.
and your dough will last for several days. The longer you wait, the more sour the
bread is going to be. The fridge is a great option in case you want to
take the dough with you when visiting friends. People are going
to love you for the freshly baked flatbreads or pancakes. If you dare,
you can also taste a little bit of your raw uncooked dough. It is likely
going to taste relatively sour. I~do this frequently to better evaluate the
state of my doughs.
\begin{figure}[htb!]
\begin{center}
\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 Lukasz Nowak via Wikipedia.}
\end{center}
\end{figure}
If you are feeling lazy or don't have time, you could also use older sourdough starter
to make the dough directly without any prior starter feedings. Your sourdough starter
is going to regrow inside your dough. The
final bread might be a bit more on the sour side as the balance of yeast to
bacteria could be off. In the Table~\ref{tab:flat-bread-ingredients}
I~recommended using around \qtyrange{5}{20}{\percent}
of sourdough starter based on the flour to make the dough. If you were to follow
this approach, just use around \qty{1}{\percent} and make the dough directly.
The dough is probably going to be ready 24~hours later, depending on the temperature.
If you want to make sweet pancakes, add some sugar and optional eggs to your dough
now. A good quantity of eggs is around 1 egg per \qty{100}{\gram} of flour.
Stir your dough a little bit and it will be ready to be used. You'll
have delicious sweet savory pancakes, the perfect combination. By
adding the sugar now, you make sure that the microbes don't have
enough time to fully ferment it. If you had added the sugar
earlier, no sweet flavor would be left 12~hours later.
To bake your dough heat your stove to medium temperature. Add a little bit of
oil to the pan. This helps with heat distribution and ensures even cooking.
With a spatula or a spoon place your dough in the pan. If your dough
was sitting in the fridge, bake it directly. There is no need to wait for your
dough to come to room temperature. If you have a lid,
place it on your pan. The lid helps to cook your dough from the top.
The evaporating water will circulate and heat up the dough's surface. When
making a flatbread, make the dough around \qty{1}{\cm} thick. When using the
pancake option, opt for around \qtyrange{0.1}{0.5}{\cm} depending on what you
like.
\begin{figure}[htb!]
\begin{center}
\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
time from the other side. Depending on what you like, you can wait a little
longer to allow the bread to become a bit charred. The longer you
bake your bread, the more of the acidity is going to evaporate. If your
dough is a bit more on the sour side, you can use this trick to balance
out the acidity. This really depends on which flavor you are looking for.
When making a flatbread I~recommend wrapping the baked flatbreads
in a kitchen towel. This way more of the evaporating humidity
stays inside of your bread. This makes sure your flatbreads stay
nice and fluffy for a longer period after the bake. A similar strategy is
used when making corn tortillas.
You can safely store the baked flatbreads or pancakes in your fridge
for weeks. When storing make sure to store them in an airtight plastic bag so that
they do not dry out.
Keep a little bit of your unbaked dough. You can use it to make the next
batch of bread or pancakes for the next day. If you want to bake a few days later, add
a little bit of water and flour and store this mixture in your fridge
for as long as you like\footnote{The starter will stay good for months. If you expect to
leave it longer, consider drying a little bit of your sourdough starter.}.

BIN
book/cover/CC-BY-SA.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -29,9 +29,17 @@
% Whitespace between the title block and the copyright text % Whitespace between the title block and the copyright text
\vspace{0.5\textheight} \vspace{0.5\textheight}
{\noindent The full source code for the book is available at \\
\url{https://github.com/hendricius/the-sourdough-framework/} under MIT {\noindent
license. Do not hesitate to report mistakes or sug\-gestions for \begin{flushleft}
improvements. A hardcover version of the book is also available. More information here: \includegraphics[width=3cm]{cover/CC-BY-SA}\par
\url{https://www.breadco.de/hardcover-book}}\\[\baselineskip] The full source code for the book is available at
\url{https://github.com/hendricius/the-sourdough-framework/} under CC-BY-SA
license.
See \url{https://creativecommons.org/licenses/by-sa/4.0/} for more details.
Do not hesitate to report mistakes or sug\-gestions for
improvements. A hardcover version of the book is also available. More
information here: \url{https://www.breadco.de/hardcover-book}
\end{flushleft}
}
} }

View File

@@ -1,23 +1,22 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 4cm, auto]
\node [start] (heat_oven) {Heat oven to \qty{230}{\degreeCelsius} (\qty{446}{\degF}) for 30~minutes}; \node [start] (heat_oven) {Heat oven to \qty{230}{\degreeCelsius} (\qty{446}{\degF}) for 30~minutes};
\node [block, right of=heat_oven, node distance=3cm] (score_dough) {Score your dough}; \node [block, right of=heat_oven] (score_dough) {Score your dough};
\node [decision, right of=score_dough, node distance=4cm] (decide_steam) {Choose your steaming method}; \node [decision, right of=score_dough, node distance=4cm] (decide_steam) {Choose your steaming method};
\node [block, below of=heat_oven, node distance=4cm] (inverted_tray_method) {Inverted tray method}; \node [block, below of=decide_steam, node distance=3.5cm] (dutch_oven) {Dutch oven};
\node [block, right of=inverted_tray_method, node distance=3cm] (dutch_oven) {Dutch oven}; \node [block, left of=dutch_oven] (inverted_tray_method) {Inverted tray method};
\node [block, right of=dutch_oven, node distance=3cm] (steam_injection) {Steam injection oven}; \node [block, right of=dutch_oven] (steam_injection) {Steam injection oven};
\node [block, below of=inverted_tray_method, node distance=3cm] (bake_30) {Bake dough for 30~minutes with steam}; \node [block, below of=dutch_oven, node distance=3cm] (bake_30) {Bake dough for 30~minutes with steam};
\node [block, right of=bake_30, node distance=3cm] (remove_steam) {Remove source of steam}; \node [block, below of=bake_30, node distance=3cm] (remove_steam) {Remove source of steam};
\node [block, right of=remove_steam, node distance=3cm] (build_crust) {Build the crust}; \node [success, right of=remove_steam] (finish_baking) {Stop baking 10--30~minutes later depending on crust preference};
\node [success, right of=build_crust, node distance=3cm] (finish_baking) {Stop baking 10--30~minutes later depending on crust preference};
\path [line] (heat_oven) -- (score_dough); \path [line] (heat_oven) -- (score_dough);
\path [line] (score_dough) -- (decide_steam); \path [line] (score_dough) -- (decide_steam);
\path [line] (decide_steam) -- (inverted_tray_method); \path [line] (decide_steam) -- (inverted_tray_method.north east);
\path [line] (decide_steam) -- (dutch_oven); \path [line] (decide_steam) -- (dutch_oven);
\path [line] (decide_steam) -- (steam_injection); \path [line] (decide_steam) -- (steam_injection.north west);
\path [line] (steam_injection) -- (bake_30); \path [line] (steam_injection.south west) -- (bake_30.north east);
\path [line] (inverted_tray_method) -- (bake_30); \path [line] (inverted_tray_method.south east) -- (bake_30.north west);
\path [line] (dutch_oven) -- (bake_30); \path [line] (dutch_oven) -- (bake_30);
\path [line] (bake_30) -- (remove_steam); \path [line] (bake_30) -- (remove_steam);
\path [line] (remove_steam) -- (build_crust); \path [line] (remove_steam) -- (finish_baking);
\path [line] (build_crust) -- (finish_baking); \draw[BC, decoration=mirror] (remove_steam.south west) ++(0, -0.3) -- node[below=1em]{Building crust}(finish_baking.south east);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -1,26 +1,29 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 3cm, auto]
\node [start] (init) {Bulk fermentation}; \node [start] (init) {Bulk fermentation};
\node [block, right of=init] (check_dough) {Check the dough}; \node [block, right of=init, node distance=4cm] (check_dough) {Check the dough};
\node [block, right of=check_dough, node distance=4cm] (size_increase) {Check dough size increase}; \node [block, right of=check_dough, node distance=4cm] (size_increase) {Check dough size increase};
\node [block, below of=size_increase, node distance=2cm] (ph_value) {Check dough pH value}; \node [block, below of=size_increase, node distance=2cm] (ph_value) {Check dough pH value};
\node [block, below of=ph_value, node distance=2cm] (smell) {Check dough smell}; \node [block, below of=ph_value, node distance=2cm] (smell) {Check dough smell};
\node [decision, right of=ph_value, node distance=4cm] (dough_ready) {Dough ready?}; \node [decision, right of=size_increase, node distance=4cm] (dough_ready) {Dough ready?};
\node [success, below of=dough_ready] (divide_preshape) {Divide and preshape}; \node [success] at(dough_ready |- smell) (divide_preshape) {Divide and preshape};
\node [decision, below of=smell] (dough_flattened) {Dough flattened out?}; \node [decision, above of=size_increase] (dough_flattened) {Dough flattened out?};
\node [block, below of=check_dough, node distance=3cm] (wait_60_minutes) {Wait\\ 60~minutes}; \node [block, above of=check_dough] (wait_60_minutes) {Wait\\ 60~minutes};
\node [block, below of=wait_60_minutes, node distance=4cm] (stretch_fold) {Stretch and fold}; \node [block, above of=wait_60_minutes] (stretch_fold) {Stretch and fold};
\path [line] (init) -- (check_dough); \path [line] (init) -- (check_dough);
\path [line] (check_dough) -- (size_increase); \path [line] (check_dough) -- (size_increase);
\path [line] (check_dough) -- node{or} (ph_value); % Tricks not to get double lines
\path [line] (check_dough) -- node{or} (smell); \path [line] (check_dough) ++(2, -2) -- node{or} (ph_value);
\path [line] (check_dough) ++(2, 0) -- node{} ++(0, -4) -- node{or} (smell);
\path [line] (check_dough) ++(2, -4) -- node{or} (smell);
\path [line] (size_increase) -- (dough_ready); \path [line] (size_increase) -- (dough_ready);
\path [line] (ph_value) -- (dough_ready); % Same tricks not to get double lines and also we do _not_ want arrows
\path [line] (smell) -- (dough_ready); \path [draw, thick] (ph_value) -- node{} ++(2, 0);
\path [line] (dough_ready) -- node{yes} (divide_preshape); \path [draw, thick] (smell) -| node{} ++(2, 4);
\path [line] (dough_ready) -- node{no} (dough_flattened); \path [line] (dough_ready) -- node{Yes} (divide_preshape);
\path [line] (dough_flattened) -- node{yes} (stretch_fold); \path [line] (dough_ready) |- node[right=3pt]{No} (dough_flattened);
\path [line] (dough_flattened) -- node{no} (wait_60_minutes); \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] (stretch_fold) -- (wait_60_minutes);
\path [line] (wait_60_minutes) -- (check_dough); \path [line] (wait_60_minutes) -- (check_dough);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -2,8 +2,8 @@
\node [start] (init) {Dividing required?}; \node [start] (init) {Dividing required?};
\node [decision, right of=init, node distance=5cm] (more_than_one_loaf) {More than 1 loaf?}; \node [decision, right of=init, node distance=5cm] (more_than_one_loaf) {More than 1 loaf?};
\node [success, right of=more_than_one_loaf, node distance=5cm] (yes) {Yes}; \node [success, right of=more_than_one_loaf, node distance=5cm] (yes) {Yes};
\node [success, below of=yes, node distance=3cm] (no) {No}; \node [success, below of=yes] (no) {No};
\path [line] (init) -- (more_than_one_loaf); \path [line] (init) -- (more_than_one_loaf);
\path [line] (more_than_one_loaf) -- (yes); \path [line] (more_than_one_loaf) -- (yes);
\path [line] (more_than_one_loaf) -- (no); \path [line] (more_than_one_loaf.south) -- node{} ++(0, -1) |- (no);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -7,14 +7,13 @@
\node [block, below of=spritz] (close) {Close DO}; \node [block, below of=spritz] (close) {Close DO};
\node [block, left of=close] (back_oven) {Place DO back in oven}; \node [block, left of=close] (back_oven) {Place DO back in oven};
\node [block, left of=back_oven] (bake) {Bake 30~minutes at \qty{230}{\degreeCelsius} (\qty{446}{\degF})}; \node [block, left of=back_oven] (bake) {Bake 30~minutes at \qty{230}{\degreeCelsius} (\qty{446}{\degF})};
\node [block, below of=heat_oven] (wait_5_minutes) {Wait\\ 5 minutes}; \node [decision, below right= 5cm and -1 cm of heat_oven] (is_ready_check)
\node [decision, below of=wait_5_minutes, node distance=4cm] (is_ready_check) {Core temperature \qty{92}{\degreeCelsius} (\qty{197}{\degF})?}; {Core temperature \qty{92}{\degreeCelsius} (\qty{197}{\degF})?};
\node [block, below of=is_ready_check, node distance=4cm] (wait_5_minutes) {Wait\\ 5 minutes};
\node [block, right of=is_ready_check, node distance=4cm] (remove_do_lid) {Remove DO lid}; \node [block, right of=is_ready_check, node distance=4cm] (remove_do_lid) {Remove DO lid};
\node [block, right of=wait_5_minutes] (test_temperature_again) {Test core temperature again}; \node [decision, right of=remove_do_lid, node distance=3.5cm] (dark_enough_decision) {Crust color dark enough?};
\node [decision, right of=remove_do_lid, node distance=4cm] (dark_enough_decision) {Crust color dark enough?}; \node [success, below of=dark_enough_decision, node distance=4cm] (finish_baking) {Bread is finished};
\node [success, below of=dark_enough_decision] (finish_baking) {Bread is finished}; \node [block, right of=dark_enough_decision, node distance=3.5cm] (bake_5_more_minutes) {Bake another 5~minutes};
\node [block, below of=close] (test_crust_again) {Test crust color again};
\node [block, below of=test_crust_again] (bake_5_more_minutes) {Bake another 5~minutes};
\path [line] (heat_oven) -- (remove_oven); \path [line] (heat_oven) -- (remove_oven);
\path [line] (remove_oven) -- (open_load_dough); \path [line] (remove_oven) -- (open_load_dough);
\path [line] (open_load_dough) -- (score); \path [line] (open_load_dough) -- (score);
@@ -22,14 +21,12 @@
\path [line] (spritz) -- (close); \path [line] (spritz) -- (close);
\path [line] (close) -- (back_oven); \path [line] (close) -- (back_oven);
\path [line] (back_oven) -- (bake); \path [line] (back_oven) -- (bake);
\path [line] (bake) -- (is_ready_check); \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{Yes} (remove_do_lid);
\path [line] (is_ready_check) -- node{no} (wait_5_minutes); \path [line] (is_ready_check) -- node{No} (wait_5_minutes);
\path [line] (wait_5_minutes) -- (test_temperature_again); \path [line] (wait_5_minutes.west) -- node{} ++(-1.5, 0) |- (is_ready_check.west);
\path [line] (test_temperature_again) -- (is_ready_check);
\path [line] (remove_do_lid) -- (dark_enough_decision); \path [line] (remove_do_lid) -- (dark_enough_decision);
\path [line] (dark_enough_decision) -- node{yes} (finish_baking); \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{No} (bake_5_more_minutes);
\path [line] (bake_5_more_minutes) -- (test_crust_again); \path [line] (bake_5_more_minutes.east) -- node{} ++(1, 0) -- node{} ++(0, 2.3) -| (dark_enough_decision.north);
\path [line] (test_crust_again) -- (dark_enough_decision);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -1,26 +1,26 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 4cm, auto]
\node [start] (init) {Homogenize recipe ingredients}; \node [start] (init) {Homogenize recipe ingredients};
\node [block, right of=init, node distance=3cm] (wait1) {Wait\\15~minutes}; \node [block, right of=init] (wait1) {Wait\\15~minutes};
\path [line] (init) -- (wait1); \path [line] (init) -- (wait1);
\node [block, right of=wait1, node distance=3cm] (knead1) {Knead 5~minutes}; \node [block, right of=wait1] (knead) {Knead 5~minutes};
\path [line] (wait1) -- (knead1); \path [line] (wait1) -- (knead);
\node [block, right of=knead1, node distance=3cm] (wait2) {Wait\\15~minutes}; \node [block, right of=knead] (wait2) {Wait\\15~minutes};
\path [line] (knead1) -- (wait2); \path [line] (knead) -- (wait2);
\node [decision, below of=wait2, node distance=3cm] (windowpane_test) {Window-pane?}; \node [decision, below of=wait2, node distance=4cm] (windowpane_test) {Window-pane?};
\path [line] (wait2) -- (windowpane_test); \path [line] (wait2) -- (windowpane_test);
\path [line] (windowpane_test) -- node{no} (knead1); \path [line] (windowpane_test.east) -- node{No} ++(1, 0) -- node{} ++(0, 5.7) -| (knead.north);
\node [decision, left of=windowpane_test, node distance=4.5cm] (more_water) {Bassinage for more water?}; \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, left of=more_water, node distance=4.5cm] (add_water) {Add 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) -- (knead1); \path [line] (add_water.north east) -- (knead.south west);
\node [decision, below of=more_water, node distance=3.5cm] (dough_sample) {Aliquot sample?}; \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, right of=dough_sample, node distance=4.5cm] (dough_ball) {Make round dough ball}; \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, node distance=3cm] (extract_sample) {Extract sample}; \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) -- (dough_ball); \path [line] (extract_sample.north east) -- (dough_ball.south west);
\node [success, below of=dough_ball, node distance=3cm] (begin_bulk) {Begin bulk fermentation}; \node [success, below of=dough_ball] (begin_bulk) {Begin bulk fermentation};
\path [line] (dough_ball) -- (begin_bulk); \path [line] (dough_ball) -- (begin_bulk);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -0,0 +1,69 @@
\begin{tikzpicture}
% Draw horizontal line
\draw[line width=1pt] (0,0) -- (\textwidth,0);
% Define the width of each segment
\pgfmathsetlengthmacro{\segmentwidth}{\textwidth/12}
% Draw lines for the events, higher up so that they don't overflow the text
% Placing the lines has been a bit manual work of trying different values
% Maritime bacteria.
\draw[line width=1pt] (2.8*\segmentwidth,1) -- (2.8*\segmentwidth,0.2);
% Eukaryotes
\draw[line width=1pt] (5.8*\segmentwidth,1.5) -- (5.8*\segmentwidth,0.2);
% First bacteria on land
\draw[line width=1pt] (9.1*\segmentwidth,-1.25) -- (9.1*\segmentwidth,-0.2);
% Maritime fungi ancestors
\draw[line width=1pt] (9.5*\segmentwidth,-2) -- (9.5*\segmentwidth,-0.2);
% Fungi on land
\draw[line width=1pt] (10.8*\segmentwidth,-2.75) -- (10.8*\segmentwidth,-0.2);
% Yeasts on land
\draw[line width=1pt] (11.1*\segmentwidth,-3.0) -- (11.1*\segmentwidth,-0.2);
% First dinosaurs
\draw[line width=1pt] (11.4*\segmentwidth,0.5) -- (11.4*\segmentwidth,0.2);
% Pangea begins to rift apart
\draw[line width=1pt] (11.6*\segmentwidth,1) -- (11.6*\segmentwidth,0.2);
% Dinosaur extinction
\draw[line width=1pt] (11.9*\segmentwidth,1.5) -- (11.9*\segmentwidth,0.2);
% 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 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
\draw[line width=1pt] (12.0*\segmentwidth,2.99) -- (11.75*\segmentwidth,3.5); % Branch to Pasteur
% Draw months and month separators
\foreach \i/\month in {0/Jan, 1/Feb, 2/Mar, 3/Apr, 4/May, 5/Jun, 6/Jul, 7/Aug, 8/Sep, 9/Oct, 10/Nov, 11/Dec} {
% Separators
\draw[line width=1pt] (\i*\segmentwidth,0.1) -- (\i*\segmentwidth,-0.1);
% Month names
\node[timeline_event, below] at ({(\i+0.5)*\segmentwidth},-0.1) {\month};
}
\draw[line width=1pt] (\textwidth,0.1) -- (\textwidth,-0.1);
% Full timeline width for billion years
\draw[stealth-stealth, line width=1pt] (0,-3.8) -- node[midway, timeline_timespan] {4.45 billion years} (\textwidth,-3.8);
% Indicator for the period of 3 months = 1.1 billion years
\draw[stealth-stealth, line width=1pt] (0,-1.0) -- node[midway, timeline_timespan] {1.11 billion years} ({\segmentwidth * 3},-1.0);
% Place events on the timeline with dates using the timeline_event style
% As a calculation I used (4.54 billion years / 12 months = 0.3785 billion years/month.
\node[timeline_event, above] at (2.5*\segmentwidth,1) {Mar 25:~First maritime bacteria and archae};
\node[timeline_event, above] at (4.50*\segmentwidth,1.5) {June 25:~First organisms with nuklei (eukaryotes)};
\node[timeline_event, above] at (7.8*\segmentwidth,-1.5) {Oct 4:~First bacteria on land};
\node[timeline_event, above] at (8.0*\segmentwidth,-2.25) {Oct 15:~First maritime ancestors of fungi};
\node[timeline_event, above] at (9.7*\segmentwidth,-2.75) {Nov 24:~Fungi on land};
\node[timeline_event, above] at (10.5*\segmentwidth,-3.25) {Dec 3:~Yeasts on land};
\node[timeline_event, above] at (10.2*\segmentwidth,0.5) {Dec 14:~First dinosaurs};
\node[timeline_event, above] at (9.8*\segmentwidth,1) {Dec 17:~Pangea begins to rift apart};
\node[timeline_event, above] at (10.15*\segmentwidth,1.5) {Dec 29:~Dinosaurs go extinct};
\node[timeline_event, above, anchor=east, align=right] at (11.75*\segmentwidth,2.5) {Dec 31:~First humans};
\node[timeline_event, above, anchor=east, align=right] at (11.75*\segmentwidth,3.0) {Dec 31:~Sourdough in Jordan (23:59:55)};
\node[timeline_event, above, anchor=east, align=right] at (11.75*\segmentwidth,3.5) {Dec 31:~Louis Pasteur isolated yeast (23:59:59)};
\end{tikzpicture}

View File

@@ -1,19 +1,17 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 5cm, auto]
\node [start] (init) {Make a regular or stiff starter}; \node [start] (init) {Take your regular or stiff starter};
\node [block, right of=init] (feed_new_ratio) {Mix \qty{1}{\gram} existing starter, \qty{5}{\gram} flour and \qty{25}{\gram} water}; \node [block, right of=init] (feed_new_ratio) {Mix \qty{1}{\gram} existing starter, \qty{5}{\gram} flour and \qty{25}{\gram} water};
\node [block, right of=feed_new_ratio] (next_day) {Wait\\ \qty{24}{\hour}}; \node [decision, below of=feed_new_ratio, node distance=5cm] (ready_signs) {Sour yogurty smell and bubbles visible on flour?};
\node [block, below of=init, node distance=4cm] (feed_again) {Feed again using 1:5:25 ratio}; \node [block, right of=ready_signs, node distance=4cm] (feed_again) {Feed again using 1:5:25 ratio};
\node [block, right of=next_day, node distance=5cm] (test) {Check starter readiness?}; \node [block, left of=ready_signs, node distance=5cm] (last_feed) {Feed one last time};
\node [decision, below of=next_day, node distance=4cm] (ready_signs) {Sour yogurty smell and bubbles visible on flour?}; \node [success, below of=last_feed, node distance=4cm] (bread_dough) {Make bread dough};
\node [block, below of=test, node distance=4cm] (last_feed) {Feed one last time};
\node [success, below of=last_feed, node distance=3cm] (bread_dough) {Make bread dough};
\path [line] (init) -- (feed_new_ratio); \path [line] (init) -- (feed_new_ratio);
\path [line] (feed_new_ratio) -- (next_day); \path [line] (feed_new_ratio) -- node{Wait \qty{24}{\hour}} (ready_signs);
\path [line] (feed_again) -- node{repeat 3 times} (feed_new_ratio); \path [line] (feed_again) -- node[anchor=east] {} ++(2.2,0) |- (feed_new_ratio);
\path [line] (next_day) -- node{after 3~days} (test); \path [line] (ready_signs) -- node{No} (feed_again);
\path [line] (next_day) -- (feed_again); \path [line] (ready_signs) -- node[above=2pt]{~Yes} (last_feed);
\path [line] (test) -- (ready_signs);
\path [line] (ready_signs) -- node{no} (feed_again);
\path [line] (ready_signs) -- node{yes} (last_feed);
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough); \path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
\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} \end{tikzpicture}

View File

@@ -1,13 +1,13 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 3.8cm, auto]
\node [start] (init) {Mix ingredients}; \node [start] (init) {Mix \\ingredients};
\node [block, below of=init, node distance=3cm] (bulk_ferment) {Bulk ferment}; \node [block, below of=init, node distance = 3cm] (bulk_ferment) {Bulk ferment};
\node [block, right of=init, node distance=3cm] (divide) {Divide}; \node [block, right of=init] (divide) {Divide};
\node [block, below of=divide, node distance=3cm] (shape) {Shape}; \node [block] at (divide |- bulk_ferment) (shape) {Shape};
\node [block, right of=divide, node distance=3cm] (proof) {Proof}; \node [block, right of=divide] (proof) {Proof};
\node [success, below of=proof, node distance=3cm] (bake) {Bake}; \node [success] at (proof |- bulk_ferment) (bake) {Bake};
\path [line] (init) -- (bulk_ferment); \path [line] (init) -- (bulk_ferment);
\path [line] (bulk_ferment) -- (divide); \path [line] (bulk_ferment.north east) -- (divide.south west);
\path [line] (divide) -- (shape); \path [line] (divide) -- (shape);
\path [line] (shape) -- (proof); \path [line] (shape.north east) -- (proof.south west);
\path [line] (proof) -- (bake); \path [line] (proof) -- (bake);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -1,22 +1,20 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 3cm, auto]
\node [decision_start] (init) {Room temperature proofing?}; \node [decision_start] (init) {Room temperature-proofing?};
\node [decision, right of=init, node distance=9cm] (retard_bake_decision) {Bake in less than \qty{10}{\hour} from now?}; \node [decision, right of=init, node distance=8cm] (retard_bake_decision) {Bake in less than \qty{10}{\hour} from now?};
\node [block, below of=init, node distance=4cm] (poke) {Poke the dough}; \node [block, below of=init, node distance=4cm] (poke) {Poke the dough};
\node [block, right of=poke, node distance=4cm] (wait_poke) {Wait\\ 15~minutes}; \node [block, left of=poke] (wait_poke) {Wait\\ 15~minutes};
\node [decision, below of=poke, node distance=3cm] (dent_visible_decision) {Dent still visible after 1~minute?}; \node [decision, below of=poke] (dent_visible_decision) {Dent still visible after one~minute?};
\node [success, right of=dent_visible_decision, node distance=4cm] (bake) {Score and bake}; \node [success, right of=dent_visible_decision, node distance=4cm] (bake) {Score and bake};
\node [block, below of=retard_bake_decision, node distance=3cm] (wait_retard) {Wait\\ 15~minutes}; \node [block] at (retard_bake_decision |- poke) (wait_retard) {Wait\\ 15~minutes};
\node [block, below of=wait_retard, node distance=3cm] (retard) {Proof in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})}; \node [block] at (wait_retard |- bake) (retard) {Proof in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
\node [block, right of=wait_retard, node distance=3cm] (move_to_fridge) {Move dough directly to fridge}; \path [line] (init) -- node{Yes} (poke);
\path [line] (init) -- node{yes} (poke); \path [line] (init) -- node{No} (retard_bake_decision);
\path [line] (init) -- node{no} (retard_bake_decision);
\path [line] (poke) -- (dent_visible_decision); \path [line] (poke) -- (dent_visible_decision);
\path [line] (dent_visible_decision) -- node{yes} (bake); \path [line] (dent_visible_decision) -- node{Yes} (bake);
\path [line] (dent_visible_decision) -- node{no} (wait_poke); \path [line] (dent_visible_decision.west) -- node{No} ++(-1.4, 0) -- node{} (wait_poke.south);
\path [line] (wait_poke) -- (poke); \path [line] (wait_poke) -- (poke);
\path [line] (retard_bake_decision) -- node{yes} (wait_retard); \path [line] (retard_bake_decision) -- node{Yes} (wait_retard);
\path [line] (retard_bake_decision) -- node{no} (move_to_fridge); \path [line] (retard_bake_decision.east) -- node{No} ++(1, 0) |- node{} (retard.east);
\path [line] (wait_retard) -- (retard); \path [line] (wait_retard) -- (retard);
\path [line] (move_to_fridge) -- (retard);
\path [line] (retard) -- (bake); \path [line] (retard) -- (bake);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -1,15 +1,15 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 3cm, auto]
\node [start] (init) {Begin shaping}; \node [start] (init) {Begin shaping};
\node [decision, right of=init, node distance=5cm] (overfermented_decision) {Dough overly sticky or dough tears?}; \node [decision, right of=init, node distance=4cm] (overfermented_decision) {Dough overly sticky or dough tears?};
\node [block, right of=overfermented_decision, node distance=4cm] (overfermented) {Your dough is likely overfermented}; \node [block, right of=overfermented_decision, node distance=4cm] (overfermented) {Your dough is likely overfermented};
\node [fail, right of=overfermented, node distance=3cm] (loafpan) {Move to loaf pan, short proof, then bake directly}; \node [fail, right of=overfermented, node distance=4cm] (loafpan) {Move to loaf pan, short proof, then bake directly};
\node [block, below of=init, node distance=4cm] (shaping_technique) {Proceed with shaping technique}; \node [block, below of=overfermented_decision, node distance=4cm] (shaping_technique) {Proceed with shaping technique};
\node [block, right of=shaping_technique, node distance=3cm] (flour) {Flour shaped dough}; \node [block, right of=shaping_technique] (flour) {Flour shaped dough};
\node [block, right of=flour, node distance=3cm] (banneton) {Place upside down in banneton}; \node [block, right of=flour] (banneton) {Place upside down in banneton};
\node [success, right of=banneton, node distance=3cm] (proof) {Begin proofing}; \node [success, right of=banneton] (proof) {Begin proofing};
\path [line] (init) -- (overfermented_decision); \path [line] (init) -- (overfermented_decision);
\path [line] (overfermented_decision) -- node{yes} (overfermented); \path [line] (overfermented_decision) -- node{Yes} (overfermented);
\path [line] (overfermented_decision) -- node{no} (shaping_technique); \path [line] (overfermented_decision) -- node{No} (shaping_technique);
\path [line] (shaping_technique) -- (flour); \path [line] (shaping_technique) -- (flour);
\path [line] (flour) -- (banneton); \path [line] (flour) -- (banneton);
\path [line] (banneton) -- (proof); \path [line] (banneton) -- (proof);

View File

@@ -0,0 +1,69 @@
\begin{tikzpicture}
\pgfmathsetlengthmacro{\timelinewidth}{(\textwidth-0.5cm)}
% Define the width of each segment
\pgfmathsetlengthmacro{\segmentwidth}{\timelinewidth/12}
% Draw horizontal lines
\draw[line width=1pt, color=hlorange] (0,0) -- (\timelinewidth/2,0);
\draw[line width=1pt] (\timelinewidth/2,0) -- (\timelinewidth/2 +1.5*\segmentwidth/3,0);
\draw[line width=1pt] (\timelinewidth/2 + 2*\segmentwidth/3,0) --(\timelinewidth, 0);
\draw[line width=1pt] (\timelinewidth/2+1.5*\segmentwidth/3-5,-0.2) -- (\timelinewidth/2+1.5*\segmentwidth/3+5, 0.2);
\draw[line width=1pt] (\timelinewidth/2+2*\segmentwidth/3-5,-0.2) -- (\timelinewidth/2+2*\segmentwidth/3+5, 0.2);
% Lines for periods
\draw[stealth-stealth, line width=1pt] (0,-3.7)
-- node[midway, timeline_timespan] {Historic breadmaking} ({\segmentwidth * 7.8},-3.7);
\draw[stealth-stealth, line width=1pt] ({\segmentwidth * 7.8},-3.7)
-- node[midway, timeline_timespan] {Modern bread} ({\segmentwidth * 12},-3.7);
% Regularly placed events, not in chronological order
% since should be placed on top of others on the timeline
% BC
\draw[line width=1pt] ({\segmentwidth*3},1.0) -- ({\segmentwidth*3},0.3)
node[at start, left, timeline_event] {6000~BC: First beer in Egypt};
\draw[line width=1pt] ({\segmentwidth*5.95},1.5) -- ({\segmentwidth*5.95},0.3)
node[at start, left, timeline_event] {70~BC:~First water mill};
% Sourdough in Jordan
\draw[line width=1pt] (0,-0.3) -- (0,-1.5);
\draw[line width=1pt] (0,-1.5) -- (0.25,-1.5);
\node[timeline_event, below, anchor=west] at (0.25,-1.5)
{\begin{tabular}{@{}l@{}l@{}}
\num{12000}~BC:&~Sourdough in Jordan\\
&~Cultivation of Einkorn\\
\end{tabular}};
% AD
\draw[line width=1pt] ({\segmentwidth*10.50},1.0) -- ({\segmentwidth*10.50},0.3)
node[at start, above, timeline_event] {\hspace{1.0cm}1950:~Modern Wheat};
\draw[line width=1pt] ({\segmentwidth*9.60},1.5) -- ({\segmentwidth*9.60},0.3)
node[at start, above, timeline_event] {1868:~Commercial yeast};
\draw[line width=1pt] ({\segmentwidth*7.8},2) -- ({\segmentwidth*7.8},0.3)
node[at start, above, timeline_event] {1680:~Discovery of microorganisms};
\draw[line width=1pt] ({\segmentwidth*8.80},-1.25) -- ({\segmentwidth*8.80},-0.3)
node[at start, left, timeline_event] {1785:~Steam mill};
\draw[line width=1pt] ({\segmentwidth*9.57},-1.75) -- ({\segmentwidth*9.57},-0.3)
node[at start, left, timeline_event] {1857:~Isolated Yeast};
\draw[line width=1pt] ({\segmentwidth*9.80},-2.25) -- ({\segmentwidth*9.80},-0.3)
node[at start, left, timeline_event] {1885:~Electrical mixer};
\draw[line width=1pt] ({\segmentwidth*11.20},-2.75) -- ({\segmentwidth*11.20},-0.3)
node[at start, left, timeline_event] {2020:~COVID-19 Pandemic};
% Indicators for period
% Draw millenary and century separators
\foreach \i/\century in {0/-12000, 1/-10000, 2/-8000, 3/-6000, 4/-4000, 5/-2000}{
% Separators
\draw[line width=1pt, color=hlorange] (\i*\segmentwidth,0.1) -- (\i*\segmentwidth,-0.1);
% Events for timeline
\node[timeline_event, below, text=hlorange] at ({(\i)*\segmentwidth},-0.1) {\num{\century}};
}
\foreach \i/\century in {6/0, 7/1600, 8/1700, 9/1800, 10/1900, 11/2000, 12/2100}{
% Separators
\draw[line width=1pt] (\i*\segmentwidth,0.1) -- (\i*\segmentwidth,-0.1);
% Events for timeline
\node[timeline_event, below] at ({(\i)*\segmentwidth},-0.1) {\num{\century}};
}
\end{tikzpicture}

View File

@@ -4,8 +4,8 @@
\path [line] (init) -- (all_starter_used); \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=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}; \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{Yes} (use_dough);
\path [line] (all_starter_used) -- node{no} (use_starter); \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}; \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_dough) -- (feed_starter);
\path [line] (use_starter) -- (feed_starter); \path [line] (use_starter) -- (feed_starter);
@@ -13,20 +13,20 @@
\path [line] (feed_starter) -- (bake_next_day_check); \path [line] (feed_starter) -- (bake_next_day_check);
\node [success, right of=bake_next_day_check, node distance=3.5cm] \node [success, right of=bake_next_day_check, node distance=3.5cm]
(make_bread_dough) {Make bread dough again after \qtyrange{8}{12}{\hour}}; (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 [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})}; \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}; \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] (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?}; \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) -- (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, 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}; \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{No} (dry_starter);
\path [line] (freezer_check) -- node{yes} (freeze_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}; \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] (dry_starter) -- (reactivate_freezer);
\path [line] (freeze_starter) -- (reactivate_freezer); \path [line] (freeze_starter) -- (reactivate_freezer);

View File

@@ -1,19 +1,22 @@
\begin{tikzpicture}[node distance = 3.5cm, auto] \begin{tikzpicture}[node distance = 3.5cm, auto]
\node [start] (init) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir}; \node [start] (start_n) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
\node [block, right of=init] (wait2) {Wait\\ \qty{24}{\hour}}; \node [block, right of=start_n, node distance = 3.5cm] (wait_n) {Wait\\ \qty{24}{\hour}};
\path [line] (init) -- (wait2); \node [decision, right of=wait_n, node distance = 3.5cm] (readycheck_n) {Ready?};
\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}; \node [block, below of=wait_n, node distance = 3.2cm] (feed_n) {Feed the mixture };
\path [line] (wait2) -- (feed); \node [decision, right of=feed_n, node distance = 3.5cm] (limitcheck_n) {>10 feeds?};
\node [block, below of=feed] (discard) {Discard the rest}; \node [fail, right of=limitcheck_n, node distance = 3.5cm] (abort_n) {Discard all. Start over};
\path [line] (feed) -- (discard); \node [success, right of=readycheck_n, node distance = 3.5cm] (final_n) {Ready to use};
\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?}; \draw [line] (start_n) -- (wait_n);
\node [fail, right of=timeout, node distance=3.5cm] (discard2) {Batch failed}; \draw [line] (wait_n) -- (readycheck_n);
\path [line] (timeout) -- node{no} (discard2); \draw [line] (feed_n) -- (wait_n);
\path [line] (timeout) -- node{yes} (wait2); \draw [line] (readycheck_n) -- node {No} (limitcheck_n);
\path [line] (feed) -- (decide); \draw [line] (limitcheck_n) -- node (feedok_n) {No} (feed_n) ;
\node [success, right of=decide, node distance=3.5cm] (use) {Ready to use}; \draw [line] (limitcheck_n) -- node {Yes} (abort_n);
\path [line] (decide) -- node{no} (timeout); \draw [line] (readycheck_n) -- node {Yes} (final_n);
\path [line] (wait2) -- (feed);
\path [line] (decide) -- node{yes} (use); \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} \end{tikzpicture}

View File

@@ -1,19 +1,40 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 3cm, auto]
\node [start] (init) {Make a starter}; \node [start] (init) {Create a starter};
\node [block, right of=init, node distance=3cm] (feed) {Feed your starter}; \node [decision, right of=init, node distance=3.5cm] (decision_start) {Starter last fed within 3~days?};
\path [line] (init) -- (feed); \node [block, right of=decision_start, text width=7em, node distance=4cm] (feed_no_branch)
\node [block, right of=feed, node distance=3cm] (wait_12_after_feed) {Wait\\ \qty{12}{\hour}}; {Feed starter twice:\par \qty{48}{\hour} before\par \qtyrange{6}{12}{\hour} before};
\path [line] (feed) -- (wait_12_after_feed); \node [block, below of=feed_no_branch, text width=7em, node distance=2.7cm] (feed_yes_branch)
\node [block, right of=wait_12_after_feed, node distance=3cm] (ready_question) {Perform readiness check}; {Feed starter \qtyrange{6}{12}{\hour} before making dough.};
\path [line] (wait_12_after_feed) -- (ready_question); \node [block, right of=feed_no_branch, text width=7em, node distance=4cm] (high_ratio)
\node [block, above of=feed, node distance=3cm] (wait_12) {Wait\\ \qty{12}{\hour}}; {Use a 1:10:10 ratio:\par \begin{tabular}{r@{}l}
\path [line] (wait_12) -- (feed); 10&~g starter,\\
\node [decision, right of=ready_question, node distance=3.2cm] (is_bubbly) {Bubbly? Size Increase?}; 100&~g flour, \\
\path [line] (ready_question) -- (is_bubbly); 100&~g water.\end{tabular}};
\path [line] (is_bubbly) -- node[anchor=east, above=2pt] {no} ++(2.2,0) |- (wait_12); \node [block, right of=feed_yes_branch, text width=7em, node distance=4cm] (low_ratio)
\node [decision, below of=is_bubbly, node distance=4.0cm] (check_smell) {Vinegary, or yogurt smell?}; {Use a 1:5:5 ratio:\par \begin{tabular}{r@{}l}
\path [line] (is_bubbly) -- node{yes} (check_smell); 10&~g starter,\\
\node [success, below of=wait_12_after_feed, node distance=4cm] (make_dough) {Make your dough}; 50&~g flour, \\
\path [line] (check_smell) -- node[anchor=west, above=2pt]{yes} (make_dough); 50&~g water.\end{tabular}};
\path [line] (check_smell) -- node[anchor=east, above=2pt] {no} ++(2.2,0) |- (wait_12); \node [decision, below of=high_ratio, node distance=6cm] (size_check)
{Bubbly? Increased in size?};
\node [decision, below of=decision_start, node distance=6cm] (smell_check)
{Vinegary or yogurty smell?};
\node [success, below of=init, node distance=6cm] (make_dough)
{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] (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);
% braces
\draw[BC] (size_check.south) --
node[below=1em]{Check if starter is ready to be used}(smell_check.south);
\end{tikzpicture} \end{tikzpicture}

View File

@@ -1,25 +1,25 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 4cm, auto]
\node [start] (init) {Make a regular or liquid starter}; \node [start] (init) {Take your regular or liquid starter};
\node [block, right of=init] (feed_new_ratio) {Mix \qty{10}{\gram} existing starter, \qty{50}{\gram} flour and \qty{25}{\gram} water}; \node [block, right of=init, node distance = 4cm] (feed_new_ratio) {Mix \qty{10}{\gram} existing starter, \qty{50}{\gram} flour and \qty{25}{\gram} water};
\node [decision, right of=feed_new_ratio, node distance=3.5cm] (too_dry) {Starter very dry, hard to mix?}; \node [decision, right of=feed_new_ratio, node distance=5cm] (too_dry) {Starter very dry, hard to mix?};
\node [block, right of=too_dry, node distance=4cm] (add_water) {Add more water}; \node [block, right of=too_dry, node distance=4cm] (add_water) {Add more water};
\node [block, below of=add_water, node distance=2cm] (next_day) {Wait\\ \qty{24}{\hour}}; \node [block, below of=too_dry] (next_day) {Wait\\ \qty{24}{\hour}};
\node [decision, below of=too_dry, node distance=3.5cm] (repeated_3_times) {Stiff starter fed 3 times overall?}; \node [block] at (feed_new_ratio |- next_day) (feed_again) {Feed again using 1:5:2.5 ratio};
\node [block, below of=feed_new_ratio, node distance=3.5cm] (feed_again) {Feed again using 1:5:2.5 ratio}; \node [decision, below of=next_day, node distance=3.5cm] (ready_signs) {Size increase and sour smell?};
\node [decision, below of=repeated_3_times, node distance=3.5cm] (ready_signs) {Size increase and sour smell?}; \node [block] at (ready_signs -| add_water) (last_feed) {Feed one last time};
\node [block, below of=next_day, node distance=2cm] (last_feed) {Feed one last time};
\node [success, below of=last_feed, node distance=3cm] (bread_dough) {Make bread dough}; \node [success, below of=last_feed, node distance=3cm] (bread_dough) {Make bread dough};
\path [line] (init) -- (feed_new_ratio); \path [line] (init) -- (feed_new_ratio);
\path [line] (feed_again) -- (feed_new_ratio); \path [line] (feed_again) -- (feed_new_ratio);
\path [line] (next_day) -- (repeated_3_times); \path [line] (next_day) -- (ready_signs);
\path [line] (repeated_3_times) -- node{yes} (ready_signs); \path [line] (ready_signs) -- node{No} (feed_again |- last_feed) -| (feed_again.south);
\path [line] (repeated_3_times) -- node{no} (feed_again); \path [line] (ready_signs) -- node{Yes} (last_feed);
\path [line] (ready_signs) -- node{no} (feed_again);
\path [line] (ready_signs) -- node{yes} (last_feed);
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough); \path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
\path [line] (feed_new_ratio) -- (too_dry); \path [line] (feed_new_ratio) -- (too_dry);
\path [line] (add_water) -- (next_day); \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{No} (next_day);
\path [line] (too_dry) -- node{yes} (add_water); \path [line] (too_dry) -- node{Yes} (add_water);
\path [line] (ready_signs) -- node{yes} (last_feed); \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} \end{tikzpicture}

View File

@@ -1,20 +1,20 @@
\begin{tikzpicture}[node distance = 3cm, auto] \begin{tikzpicture}[node distance = 3.2cm, auto]
\node [start] (init) {Ready starter}; \node [start] (init) {Ready starter};
\node [block, right of=init, node distance=3cm] (mix_ingredients) {Mix ingredients}; \node [block, right of=init] (mix_ingredients) {Mix ingredients};
\node [block, right of=mix_ingredients, node distance=3cm] (dough_strength) {Create dough strength}; \node [block, right of=mix_ingredients] (dough_strength) {Create dough strength};
\node [block, right of=dough_strength, node distance=3cm] (bulk) {Bulk ferment}; \node [block, right of=dough_strength] (bulk) {Bulk ferment};
\node [decision, below of=dough_strength, node distance=3cm] (divide_test) {Making 1 loaf?}; \node [decision, below of=bulk] (divide_test) {Making one loaf?};
\node [block, left of=divide_test, node distance=3cm] (divide) {Divide}; \node [block, right of=divide_test] (divide) {Divide};
\node [block, left of=divide, node distance=3cm] (preshape) {Preshape}; \node [block, below of=divide] (preshape) {Preshape};
\node [block, below of=preshape, node distance=3cm] (shape) {Shape}; \node [block, below of=divide_test] (shape) {Shape};
\node [block, right of=shape, node distance=3cm] (proof) {Proof}; \node [block, left of=shape] (proof) {Proof};
\node [success, right of=proof, node distance=3cm] (bake) {Bake}; \node [success, left of=proof] (bake) {Bake};
\path [line] (init) -- (mix_ingredients); \path [line] (init) -- (mix_ingredients);
\path [line] (mix_ingredients) -- (dough_strength); \path [line] (mix_ingredients) -- (dough_strength);
\path [line] (dough_strength) -- (bulk); \path [line] (dough_strength) -- (bulk);
\path [line] (bulk) -- (divide_test); \path [line] (bulk) -- (divide_test);
\path [line] (divide_test) -- node{yes} (shape); \path [line] (divide_test) -- node{Yes} (shape);
\path [line] (divide_test) -- node{no} (divide); \path [line] (divide_test) -- node{No} (divide);
\path [line] (divide) -- (preshape); \path [line] (divide) -- (preshape);
\path [line] (preshape) -- (shape); \path [line] (preshape) -- (shape);
\path [line] (shape) -- (proof); \path [line] (shape) -- (proof);

View File

@@ -1,30 +0,0 @@
\begin{tikzpicture}[node distance = 3cm, auto]
\node [decision_start] (init) {Starter last fed within 3 days?};
\node [block, right of=init, node distance=4cm] (feed_no_branch)
{Feed starter twice. \qty{48}{\hour} before and \qtyrange{6}{12}{\hour} before};
\node [block, below of=feed_no_branch, node distance=3cm] (feed_yes_branch)
{Feed starter once \qtyrange{6}{12}{\hour} before making dough};
\node [block, right of=feed_no_branch, node distance=6cm] (high_ratio)
{Use a 1:10:10 ratio. \qty{10}{\gram} starter, \qty{100}{\gram} flour, \qty{100}{\gram} water};
\node [block, right of=feed_yes_branch, node distance=3cm] (low_ratio)
{Use a 1:5:5 ratio. \qty{10}{\gram} starter, \qty{50}{\gram} flour, \qty{50}{\gram} water};
\node [block, below of=high_ratio, node distance=6cm] (check_starter)
{Check if starter is ready to be used};
\node [decision, below of=init, node distance=6cm] (size_check)
{Bubbly? Increased in size?};
\node [decision, below of=size_check, node distance=5cm] (smell_check)
{Vinegary or yogurty smell?};
\node [success, right of=smell_check, node distance=6cm] (make_dough)
{Prepare dough};
\path [line] (init) -- node{no} (feed_no_branch);
\path [line] (init) -- node{yes} (feed_yes_branch);
\path [line] (feed_yes_branch) -- (low_ratio);
\path [line] (feed_no_branch) -- (high_ratio);
\path [line] (high_ratio) -- (check_starter);
\path [line] (low_ratio) -- (check_starter);
\path [line] (check_starter) -- (size_check);
\path [line] (size_check) -- node{no} (feed_yes_branch);
\path [line] (size_check) -- node{yes} (smell_check);
\path [line] (smell_check) -- node{no} (feed_yes_branch);
\path [line] (smell_check) -- node{yes} (make_dough);
\end{tikzpicture}

View File

@@ -1,5 +1,6 @@
\tikzstyle{every picture}+=[font=\footnotesize\sffamily] \tikzstyle{every picture}+=[font=\footnotesize\sffamily]
\usetikzlibrary{shapes,arrows} \usetikzlibrary{calc, shapes, arrows.meta, decorations.pathreplacing, calligraphy,
positioning}
\tikzstyle{decision} = [diamond, draw=codeblack, fill=codeblack, text=white, \tikzstyle{decision} = [diamond, draw=codeblack, fill=codeblack, text=white,
text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt, text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt,
line width=2mm] line width=2mm]
@@ -18,4 +19,17 @@
\tikzstyle{fail} = [rectangle, draw=codeblack, fill=redpic, text=black, \tikzstyle{fail} = [rectangle, draw=codeblack, fill=redpic, text=black,
text width=5em, text centered, rounded corners, minimum height=4em, text width=5em, text centered, rounded corners, minimum height=4em,
line width=0.4mm] 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},
very thick, pen colour={black} ]
\tikzstyle{loop} = [arc, draw=codeblack, line width=0.4mm]
\tikzstyle{timeline_event}=[align=center, fill=white, inner sep=2pt]
\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} \documentclass[tikz]{standalone}
\usepackage{tikz} \usepackage{tikz}
\usepackage{pgfplots}
\usepackage{chemfig}
\usepackage[mode=match, reset-text-family=false]{siunitx} \usepackage[mode=match, reset-text-family=false]{siunitx}
\DeclareSIUnit\degF{\text{°}F} \DeclareSIUnit\degF{\text{°}F}
\input{flowcharts_tikz.tex} \input{flowcharts_tikz.tex}
\input{../colors.tex} \input{../colors.tex}
\input{../abbreviations.tex}

View File

@@ -1,33 +1,34 @@
\chapter{Flour types}%
\label{ch:flour-types}
\begin{quoting} \begin{quoting}
In this chapter we will have a closer look at different flour types In this chapter we will have a closer look at different flour types
and their respective categorization. We will also look at common and their respective categorization. We will also look at common
ways to distinguish different flours of the same type. This way you can more confidently ways to distinguish different flours of the same type, this way you can more
purchase the flour that you need. confidently purchase the flour you need.
\end{quoting} \end{quoting}
The most basic flour type is a whole grain flour. In this case the whole seed has The most basic flour type is a whole grain flour, in this case the whole seed has
been grounded to smaller pieces. Sometimes, depending on what you want to bake, been grounded to smaller pieces. Sometimes, depending on what you want to bake,
the hearty taste of the bran might not be desired. In this case you can use the hearty taste of the bran might not be desired. In this case you can use
whiter flours. With sieves, mills remove larger parts of the hull of the seed. whiter flours. Together with sieves, mills remove larger parts of the seed's
The seed already contains a pre-built germ from the plant waiting to be hull. The seed already contains a pre-built germ from the plant waiting to be
activated. The whitest flour you can get is mostly just the starch part of the seed. activated. The whitest flour you can get is mostly just the starch part of the seed.
Depending on which layers are still present, names are used to describe the Depending on which layers are still present, different names are used to describe the
type of flour. type of flour.
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-flour-types.tex} \input{tables/table-flour-types.tex}
\caption[Labelling of wheat flour]{A comparison of how different types \caption[Labeling of wheat flour]{A comparison of how different types
of wheat flour are labelled in different countries.}% of wheat flour are labeled in different countries.}%
\label{tab:flour-types-comparison} \label{tab:flour-types-comparison}
\end{center}
\end{table} \end{table}
In Germany, the ash content is used to describe the flours. The lab will burn In Germany, the ash content is used to describe the flours. The lab will burn
\qty{100}{\gram} of flour in the oven. Then afterwards the remaining ash is extracted \qty{100}{\gram} of flour in the oven. Then afterwards the remaining ash is extracted
and measured. Depending on the quantity the flour is categorized. If the flour and measured. Depending on the quantity the flour is categorized. If the flour
is of type 405 then \qty{405}{\mg} of ash have remained after burning the is of type 405, then \qty{405}{\mg} of ash have remained after burning the
flour. The more hull parts the flour has, the more minerals remain. So the flour. The more hull parts the flour has, the more minerals remain, therefore the
higher the number, the closer the flour is to whole flour. The numbers are higher the number, the closer the flour is to whole flour. The numbers are
slightly different between each grain type. Generally though, the higher the slightly different between each grain type. Generally though, the higher the
value, the heartier the taste is going to be. value, the heartier the taste is going to be.
@@ -43,32 +44,35 @@ If you compare different grain types, there are grains with high gluten, low glu
and no gluten. Gluten is what enables bread to have its fluffy consistency. and no gluten. Gluten is what enables bread to have its fluffy consistency.
Without gluten the baked goods wouldn't have the same properties. Managing Without gluten the baked goods wouldn't have the same properties. Managing
gluten makes the whole bread-making process more complex as more steps are involved. gluten makes the whole bread-making process more complex as more steps are involved.
A dough without gluten doesn't have to be kneaded. Kneading creates
A dough without gluten doesn't have to be kneaded as the role of kneading is
to create
the gluten bonds. The more you knead, the stronger they become. With low-gluten the gluten bonds. The more you knead, the stronger they become. With low-gluten
and no-gluten flours, you only have to mix the ingredients together, making and no-gluten flours, you only have to mix the ingredients together, making
sure you properly homogenize everything. During fermentation sure you properly homogenize everything.
During fermentation
the gluten degrades as the microorganisms metabolize it. When too much gluten the gluten degrades as the microorganisms metabolize it. When too much gluten
has been converted your dough will no longer have the wheat-like structure previously has been converted your dough will no longer have the wheat-like structure previously
described. For no/low gluten flour your main focus is managing acidity. You do not described. For no/low gluten flour your main focus is managing acidity, you do not
want the final bread to be too sour. You do not have to worry about the gluten want the final bread to be too sour. Conversely you do not have to worry about
degradation, removing a huge headache from the equation. the gluten degradation, removing a huge headache from the equation.
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-grains-bread-making-process.tex} \input{tables/table-grains-bread-making-process.tex}
\caption[Different types of grain]{An overview of different grain \caption[Different types of grain]{An overview of different grain
types and the steps involved in the respective bread making process.} types and the steps involved in the respective bread making process.}
\end{center}
\end{table} \end{table}
As gluten has a special role, the rest of this chapter is dedicated to having a Because gluten has a special role, the rest of this chapter is dedicated to having a
closer look at different gluten flours and how to distinguish them. Spelt closer look at different gluten flours and how to distinguish them. Like wheat
also contains significant amounts of gluten, so the same characteristics hold spelt contains significant amounts of gluten, so the same characteristics hold
true. true.
Several recipes call for wheat bread flour. Bread flour can refer to different types Several recipes call for wheat bread flour, but bread flour can refer to different types
of flour. It could be a T405 or a T550 in Germany. This is very often of flour. It could be a T405 or a T550 in Germany---this is very often
classified incorrectly. The terms \emph{strong} or \emph{bread} flour in this case classified incorrectly---the terms \emph{strong} or \emph{bread} flour in this case
refer to the properties of the flour. A bread flour is considered to have a refer to the properties of the flour. A bread flour is considered to have a
higher amount of protein and thus gluten. This flour is excellent when you higher amount of protein and thus gluten. This flour is excellent when you
want to make a sourdough bread as your dough allows for a longer leavening want to make a sourdough bread as your dough allows for a longer leavening
@@ -80,16 +84,17 @@ properties might not be desirable since the final cake could have a chewy textur
In conclusion, not every T405, T45 or T00 flour is the same. Depending on the properties In conclusion, not every T405, T45 or T00 flour is the same. Depending on the properties
of the plant they come from, the flours will have different properties. For that reason of the plant they come from, the flours will have different properties. For that reason
some countries like Germany have introduced additional scales to evaluate the quality of the some countries like Germany have introduced additional scales to evaluate the quality of the
wheat. The category \textbf{A} refers to good quality wheat that can be blended wheat. The category \emph{A} refers to good quality wheat that can be blended
with poorer qualities to improve the flour. The category \textbf{B} refers to with poorer qualities to improve the flour. The category \emph{B} refers to
average wheat that can be used to create different baked goods. Category \textbf{C} average wheat that can be used to create different baked goods. Category \emph{C}
is used for wheat that has poor baking qualities. This could happen, for instance, is used for wheat that has poor baking qualities. This could happen, for instance,
if the wheat already started to sprout and thus lost some of its desirable if the wheat already started to sprout and thus lost some of its desirable
baking properties. This type of wheat is typically used in animal feed or baking properties. This type of wheat is typically used in animal feed or
as fermentable biomass for generators. Category \textbf{E} refers to \emph{Elite} wheat. It's as fermentable biomass for generators. Category \emph{E} refers to \emph{Elite} wheat. It's
the highest quality of wheat. This kind of wheat can only be harvested when the the highest quality of wheat. This kind of wheat can only be harvested when the
wheat has grown under optimal conditions. You can compare this to a winery wheat has grown under optimal conditions. You can compare this to a winery
that uses only the best grapes to make a reserve wine. Unfortunately, this is normally never printed that uses only the best grapes to make a reserve wine. Unfortunately, this is
usually not printed
on the packaging of the flour that you buy. You can look out for the protein on the packaging of the flour that you buy. You can look out for the protein
value as a possible indicator. However, large mills blend flours together to value as a possible indicator. However, large mills blend flours together to
maintain quality throughout the years. Blended flour is also not listed on maintain quality throughout the years. Blended flour is also not listed on
@@ -97,7 +102,7 @@ the packaging. It might be that bakeries extract gluten from some flour and
then mix it in order to create better baking flours. then mix it in order to create better baking flours.
In Italy the so-called In Italy the so-called
\textbf{W-value} has been introduced to better show how the flour will behave. \emph{W-value} has been introduced to better show how the flour will behave.
A dough is made, and then the resistance of this dough to kneading is measured. A dough is made, and then the resistance of this dough to kneading is measured.
The more gluten a flour has, the more elastic the dough is, and the more it will The more gluten a flour has, the more elastic the dough is, and the more it will
resist kneading. A higher W flour will have a higher gluten content and allow for a longer resist kneading. A higher W flour will have a higher gluten content and allow for a longer
@@ -108,20 +113,19 @@ The long fermentation period also means that your microbes will enrich
your dough with more flavor. your dough with more flavor.
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-overview-w-values.tex} \input{tables/table-overview-w-values.tex}
\caption[Fermentation time versus W-value]{An overview of different \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.}% times.}%
\label{tab:w-value} \label{tab:w-value}
\end{center}
\end{table} \end{table}
Generally, when aiming to Generally, when aiming to
bake free standing sourdough bread, aim for a higher protein content. If the bake free standing sourdough bread, aim for a higher protein content. If the
gluten value is relatively low, your bread will collapse faster. Baking bread gluten value is relatively low, your bread will collapse faster. Baking bread
is still possible, but it might be easier to use tools such as a loaf pan, or is still possible, but it might be easier to use other techniques such as a
to make skilled bread or flatbread. loaf pan, to consider skillet bread or flatbread.
An additional, rarely considered characteristic of good flour is the level of damage to the An additional, rarely considered characteristic of good flour is the level of damage to the
starch molecules. This is a common problem when you are trying to mill your own wheat flours at starch molecules. This is a common problem when you are trying to mill your own wheat flours at
@@ -134,8 +138,8 @@ This also provides a larger surface that your microbes can use to attack the mol
and start the fermentation process. and start the fermentation process.
I~am still I~am still
yet to find a good way of milling my own flour at home. Even after trying to yet to find a good way of milling my own wheat flour at home. Even after trying to
mill the flour 10 times with short breaks, I~was not able to achieve the same mill the flour 10~times with short breaks, I~was not able to achieve the same
properties as with commercially milled flour. The doughs I~would make felt properties as with commercially milled flour. The doughs I~would make felt
good, maybe a bit coarse. However, during baking the doughs would start to good, maybe a bit coarse. However, during baking the doughs would start to
de-gas quickly and turn into very flat breads. I~have had great success though when de-gas quickly and turn into very flat breads. I~have had great success though when

467
book/glossary/glossary.tex Normal file
View File

@@ -0,0 +1,467 @@
\chapter{Glossary}%
\label{ch:Glossary}
\begin{quoting}
This glossary provides definitions and explanations for terms frequently
used in bread making. Understanding these terms is essential for both
novice and experienced bakers aiming to master the art and science of
bread making. The glossary is arranged alphabetically for easy reference.
\end{quoting}
\begin{description}
\item[Acetic Acid] A type of organic acid produced by hetero fermentative lactic
acid bacteria and acetic acid bacteria during fermentation. It gives sourdough bread
its characteristic tangy flavor and helps to preserve the bread by lowering its pH.
The flavor of acetic acid has a more vinegary profile.
\item[Aliquot jar] A small piece of dough extracted after creating initial
dough strength. The aliquot jar is used to monitor the dough's fermentation progress.
It's important to ensure the dough's water temperature in the aliquot matches
your room temperature for accurate readings. Be mindful that the aliquot
jar may not be as effective if there are significant temperature
fluctuations in your kitchen. This is because the small dough sample in
the aliquot can heat up or cool down faster than the main dough mass,
potentially impairing its ability to accurately monitor fermentation.
It's crucial to use a cylindrical-shaped aliquot container to properly judge
the dough's size increase.
\item[All Purpose Flour] A general flour thats balanced to make breads and also
cakes. In Germany this is type~550.
\item[Alpha-amylase] A type of amylase that breaks down starch molecules into
shorter fragments, producing maltose and some glucose.
\item[Alveograph] A device used primarily in the evaluation of wheat flour's
baking quality. The alveograph assesses the dough's rheological properties,
particularly its extensibility and resistance to extension, by inflating a piece
of dough like a balloon until it bursts. The resulting chart, or \emph{alveogram},
displays a curve that represents the balance between the dough's elasticity and
extensibility. Specific parameters derived from the curve, such as the P (pressure
required to inflate the dough) and L (extensibility of the dough), provide invaluable
insights to bakers and millers regarding the flour's potential performance in
bread-making. By analyzing the alveogram, professionals can make informed decisions
about the suitability of a flour for certain baking applications, as well as
potential blending needs with other flours.
\item[Alveoli] (singular Alveolus) The little pockets that form the crumb,
formed by the gluten matrix trapping carbon dioxide.
\item[Amylase] An enzyme that breaks down starches into simpler sugars, facilitating
the fermentation process in beer and bread making. When making beer the temperature
of the brew is kept for extended periods at certain temperatures to ensure that most
starches are broken down to sugars. These sugars are then consumed by the microbes
during the fermentation process.
\item[Autolyse] A process where flour and water are mixed and then left to rest
before adding other ingredients. This activates enzymes such as amylase and protease.
By doing so the bulk fermentation time is shortened and the final loaf will have
better properties. The browning of the loaf becomes better and the crumb fluffier.
An autolyse is recommended when using a high percentage of starter to inoculate the
dough (>~\SI{20}{\percent}). An alternative easier approach can be the fermentolyse.
\item[Bacteria] Unicellular microorganisms that exist in diverse forms and
habitats. They play crucial roles in various natural processes, especially in food
preparation like sourdough fermentation. Lactic and acetic acid bacteria, in particular,
are pivotal in the sourdough process, contributing to its distinct taste and texture.
Some bacteria are beneficial, aiding in digestion or producing vitamins, while others
can be harmful and cause diseases.
\item[Bakers Math] Bakers math is a ratio based system of sharing recipes,
making them easily scalable. Its based on the total weight of the flour in a formula,
where each ingredients weight is divided by the flours weight to give a percentage.
For \SI{500}{\gram} of flour you could be using \SI{60}{\percent} of water (\SI{300}{\gram}),
\SI{10}{\percent} of starter (\SI{50}{\gram}) and \SI{2}{\percent} of salt (\SI{10}{\gram}).
\item[Bakers percentage] See Bakers math.
\item[Baking] The final, transformative step in bread making wherein dough is
exposed to high temperatures, causing a series of chemical and physical reactions
that result in a finished loaf of bread. During the baking stage:
\begin{enumerate}
\item \emph{Yeast Activity \& Oven Spring:} In the initial phase of baking, the
temperature inside the dough rises, increasing yeast activity. This results in rapid
carbon dioxide production, leading to what bakers refer to as \emph{oven spring}, or the
rapid rise of the loaf.
\item \emph{Protein Coagulation:} As the temperature continues to climb, the proteins
in the dough, primarily gluten, begin to coagulate or set, which gives the bread its
structure.
\item \emph{Starch Gelatinization:} Starches absorb water and swell, eventually
gelatinizing. This process contributes to the crumb structure of the bread.
\item \emph{Caramelization \& Maillard Reaction:} The crust of the bread browns due
to two primary reactions: caramelization of sugars and the Maillard reaction between
amino acids and reducing sugars. This not only affects the appearance but also imparts
a distinctive flavor and aroma to the bread.
\item \emph{Evaporation of Acids:} Some acids produced during fermentation evaporate at
certain temperatures during baking. This evaporation can influence the final flavor
profile of the bread, making it less tangy than the unbaked dough. By extending the
baking time the acids become less concentrated and the dough can lose some of its tang.
\item \emph{Moisture Evaporation:} Water in the dough turns to steam and begins to
evaporate. The steam contributes to the oven spring and also helps in gelatinizing
the starches.
\item \emph{Crust Formation:} The outer layer of the dough dries out and hardens to
form a crust, which acts as a protective barrier, keeping the inner crumb moist.
\end{enumerate}
\item[Banneton] A wicker basket used to shape and support dough during its final
proof. The bannetons are typically made out of rattan or wood pulp. An alternative
DIY solution is to use a bowl with a kitchen towel inside. While resting inside of
the banneton the doughs surface dries out and becomes easier to score before baking.
\item[Bassinage method] A bread making technique involving the staged addition of water
to the dough. Initially, the dough is mixed to a lower hydration level,
allowing gluten bonds to form more effectively. Once these gluten structures
are established, additional water is gradually incorporated through further
kneading. This method enhances the dough's extensibility, especially beneficial
when working with lower-gluten flours. By employing the bassinage method,
bakers can achieve a dough that is both strong and extensible.
\item[Bench Rest] A short resting period given to the dough after preshaping
allowing the gluten to relax a little bit and making shaping easier. Most people
bench rest for 10 minutes up to an hour. The bench rest becomes especially important
when making pizza doughs. Without an extended bench rest the dough is too elastic and
can not be shaped.
\item[Beta-amylase] An enzyme that further breaks down the starch fragments
produced by alpha-amylase into maltose.
\item[Bread Flour] A flour that is perfect for sourdough bread making. It features
a higher amount of gluten and can thus ferment for a longer period of time.
\item[Brühstück] A German baking technique similar to a scald. It translates as
\emph{boil piece}. Hot or boiling water is poured over whole grain flour or crushed grains,
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 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[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 minimizing damage
to the dough structure.
\item[Crumb] The inner texture of the bread, which is characterized by the size,
shape, and distribution of the holes (or \emph{alveoli}). It's what's inside once you slice
a loaf of bread open. A \emph{tight crumb} refers to bread with small, evenly distributed
holes, while an \emph{open crumb} has larger, more irregular holes.
\item[Diastatic Malt] Malted grain that has been dried and then ground into a powder.
This malt contains enzymes that can break down starches into sugars, which can be
beneficial in the fermentation process for bread. When added to dough, it can improve
the bread's flavor, color, and shelf life.
\item[Discard] The portion of sourdough starter that is removed and not fed when
maintaining the starter. This is often done to prevent the starter from becoming too
large and unmanageable. Discard can be used in various recipes or thrown away.
\item[Dividing] The process of breaking the dough mass into smaller pieces,
typically to shape into individual loaves or portions.
\item[Dough Hydration] Expressed as a percentage, it's the amount of water in a
dough relative to the amount of flour. A higher hydration dough will be wetter and
stickier, while a lower hydration dough will be firmer. For example, a dough
with \SI{500}{\gram} of flour and \SI{375}{\gram} of water has a hydration of
\SI{75}{\percent}
\item[Dough Strength] Refers to the dough's resilience, elasticity, and structure.
A strong dough can be stretched without tearing and holds its shape well. This is
largely influenced by the flour's protein content and the development of the gluten
network.
\item[Dutch Oven] A heavy-duty pot with a tight-fitting lid, often made of cast
iron. It's used in baking to trap steam during the initial phase of baking, helping
to create a crusty exterior on bread.
\item[Elasticity] A property of dough that describes its ability to return to
its original shape after being stretched or deformed. It's influenced by the flour's
protein content and the development of the gluten network.
\item[Extensibility] Refers to the doughs ability to be stretched or extended
without tearing. It's the opposite of elasticity and is desirable in certain types
of breads, like ciabatta, that have a more open crumb structure.
\item[Feed] The act of adding fresh flour and water to maintain a sourdough
starter. Regular feeding keeps the starter active and healthy.
\item[Fermentation] The metabolic process by which microorganisms such as yeast
and bacteria convert carbohydrates (like sugars) into alcohol or acids. In bread
making, this produces carbon dioxide which causes the dough to rise.
\item[Fermentolyse] Using a small amount of starter to slow fermentation.
It's a method where fermentation and autolyse are combined. Typically around \SI{10}{\percent}
of starter is used for the fermentolyse. The flour, water and starter are mixed
together. By adding the starter early the dough becomes more extensible and easier
to handle.
\item[Finger poke test] The finger poke test is a simple yet effective way to
check if your sourdough bread is ready to bake. After the final rise, lightly
flour your finger and gently press about half an inch into the dough.
If the dough springs back slowly and leaves a slight indentation, it's perfect
and ready for the oven. If it springs back quickly, it needs more time to rise.
However, if the dough collapses or doesn't spring back at all, it may be
over fermented.
\item[Float test] The float test is a technique for assessing the readiness
of a sourdough starter. To perform this test, take a small sample of
your starter and gently place it in a glass of water. The outcome
of this test can provide insights into your starter's fermentation stage.
\begin{itemize}
\item[] \emph{Positive result:} If your starter effortlessly floats on the
surface of the water, it's a clear indication that it has reached its peak
of fermentation and is ready to be used as a leavening agent in your dough.
This buoyancy is a result of the carbon dioxide gas produced during
the active fermentation process.
\item[] \emph{Negative result:} Conversely, if your starter sinks to the
bottom of the glass, it suggests that it's not quite ready yet.
This indicates that the fermentation process has not progressed
sufficiently for optimal leavening power.
\end{itemize}
It's worth noting that while the float test is a reliable indicator
for wheat-based sourdough starters, it may not be as effective for non-wheat
starters. This is because the gas generated during fermentation in non-wheat
starters tends to escape more readily, making it less buoyant. For non-wheat
starters, a more accurate approach involves observing the presence of
bubbles in your starter jar and assessing its aroma. A mature starter should
emit a mildly sour, but not overly pungent, scent.
\item[Fools Crumb] A term used to describe a crumb structure that has several
large pockets or holes, rather than an even distribution of smaller holes. This
isn't necessarily a desired feature, as it can indicate uneven fermentation or
improper shaping techniques.
\item[Gluten] A protein complex formed from gliadin and glutenin, found in wheat
and some other grains. It provides elasticity and strength to the dough when
properly aligned and developed. During the course of the bulk fermentation much of
the gluten is degraded by the protease enzyme and lactic acid bacteria.
\item[Homogenizing] The act of creating a consistent and uniform mixture. For
flours like einkorn and rye, where gluten alignment isn't the main goal, kneading
ensures that the dough achieves this homogeneous consistency.
\item[Hooch] A liquid layer that sometimes forms on top of a sourdough starter.
It's an indication that the starter is hungry and needs feeding. It acts as a
barrier shield and prevents the starter from catching mold. It can be mixed right
back into the starter or extracted to make hot sauces.
\item[Kneading] The manual or mechanical process of working dough to develop gluten
in wheat and spelt-based breads, or to homogenize the dough mass in flours like
einkorn or rye.
\item[Kochstück] When making a Kochstück, the flour or grains are heated
together with the fluid. The mixture needs to be stirred while heating up
to prevent clumping and burning it.
\item[Lactic Acid] Another organic acid produced by lactic acid bacteria during
fermentation. It imparts a mild tangy yogurty flavor to sourdough bread and, along
with acetic acid, contributes to the bread's overall acidity.
\item[Levain] See Sourdough starter.
\item[Maillard Reaction] The Maillard reaction is one of the causes of food browning
during cooking. The reaction occurs between reducing sugars and amino acids, and
depending on the initial reactants and cooking conditions can produce a wide variety
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 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.
\item[Non-diastatic Malt] Malted grain that has been dried at higher temperatures,
deactivating its enzymes. It's used primarily for flavor and color in bread making.
Amylase and protease become degraded at temperatures higher than 50°C.
\item[Oven Spring] The rapid rise of the dough in the oven during the early stages
of baking due to the expansion of trapped gases and water.
\item[Over Fermenting] A common problem when making wheat or spelt doughs. When the
dough is fermented for too long most of the gluten in the dough is broken down. The
resulting dough is very sticky. The final bread will be very flat and lose some of its
typical texture. The crumb structure features many tiny pockets of air. A lot of the
trapped gasses can diffuse out of the dough during baking. If you notice this during
bulk fermentation it is advised to place the loaf inside of a loaf pan and then bake
it after a 30 to 60 minute rest.
\item[Over Proofing] The same as over fermenting, however happening during the
proofing stage.
%Hack to make sure there is a carriage return
\item[pH] A measure of the acidity or alkalinity of a solution. The pH scale
ranges from 0 to 14, where a pH value of 7 is neutral. Solutions with a pH value below
7 are acidic, while those with a pH above 7 are alkaline or basic. Fermented
foods with a pH below 4.2 are generally considered foodsafe. A pH meter can be
used to monitor your sourdough bread's fermentation progress.
\item[P/L Value] A critical parameter derived from the alveograph test, the P/L
value represents the ratio of the dough's tenacity (P) to its extensibility (L).
Specifically:
\begin{itemize}
\item[] \emph{P (Pressure)} refers to the pressure required to inflate the
dough during the alveograph test. It indicates the dough's resistance
to deformation or its strength.
\item[] \emph{L (Length)} represents the extensibility of the dough, or
how far it can be stretched before tearing.
\end{itemize}
The P/L ratio provides insights into the balance between the dough's elasticity and
extensibility:
%
\begin{itemize}
\item[] \emph{Low P/L Value} indicates a dough that is more extensible
than resistant. This means the dough can be stretched easily, making
it suitable for certain products like pizza or ciabatta.
\item[] \emph{High P/L Value} suggests a dough that has more strength than
extensibility. Such a dough is more resistant to deformation, which
can be preferable for products that require good volume and structure,
like certain types of bread.
\end{itemize}
The P/L value helps bakers and millers determine the suitability of a flour for
specific baking applications. Adjustments in flour blends or baking processes might
be made based on this ratio to achieve desired bread characteristics.
\item[Preferment] A mixture of a proportion of the doughs ingredients which is
allowed to ferment before being added to the final bread dough. These can include
sourdough, poolish, biga, pâte fermentée, or a general sponge.
\item[Preshaping] When dividing your large dough mass into smaller portions you end
up having non-uniform pieces of dough. This makes shaping much harder because the
resulting shaped dough will not be uniform. For this reason bakers drag the tiny dough
pieces over the surface of the counter to create more uniform looking dough balls.
\item[Proof] The final rise of the shaped dough before baking.
\item[Protease] An enzyme that breaks down proteins, including gluten, into smaller
peptide chains and amino acids. In the context of bread making, protease activity can
both benefit and challenge bakers. Moderate protease activity can make dough more
extensible, which can be helpful in some bread-making processes. However, excessive
protease activity can weaken the gluten network, leading to doughs that are slack,
sticky, and challenging to handle, and may result in breads with poor volume and
structure. Factors such as fermentation time, dough temperature, and the source of the
flour can influence protease activity in bread doughs. In sourdoughs, longer
fermentation times, particularly at warmer temperatures, can lead to higher protease
activity, as the acidic conditions activate cereal proteases. Flour from sprouted
grains or malted grains can have higher protease activity due to the sprouting or
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 \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
bakers in scheduling, allowing them to have more control over when to bake their breads,
especially in large-scale bakeries where timing is essential to serve freshly baked bread
to early morning customers. While scheduling is the main reason, some bakers also assert
that retarding can enhance the bread's overall flavor profile. Also known as
fridge-proofing.
\item[Rye] A type of grain used in baking. Due to its low gluten content, breads
made solely from rye flour tend to be dense. However, rye has a unique flavor and
many health benefits, so it's often combined with wheat flour in baking. Pure rye
breads are typically made with a sourdough process to help the dough rise.
\item[Scald] A method where boiling water is poured over flour, grains, or other
ingredients and then allowed to cool. In baking, this process can gelatinize the
starches in the flour or grains, resulting in a dough that retains moisture better,
provides a softer crumb, and potentially extends the bread's shelf life. Additionally,
scalding can help inactivate certain enzymes which can be detrimental to the dough's
quality. The scalding technique can also enhance the overall flavor and aroma of
the bread, bringing out more pronounced grainy notes and reducing bitterness
sometimes found in certain whole grains.
\item[Scoring] Cutting the surface of the bread dough before it's baked. This
allows the dough to expand freely in the oven, preventing it from bursting in
unpredictable ways. It also provides a controlled aesthetic to the finished loaf.
\item[Sift] To pass flour or another dry ingredient through a sieve to
remove lumps and aerate it.
\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
easier to integrate into the dough and
providing a moister crumb in the finished bread.
\item[Sponge] A type of preferment, a sponge is a wet mixture of flour, water, and
yeast that is allowed to ferment for a certain period before being incorporated into
the final dough.
\item[Starter] A fermented mixture of flour and water containing a colony of
microorganisms including wild yeast and lactic acid bacteria. It's used to leaven
bread.
\item[Straight Dough] A bread-making method where all ingredients are mixed
together at once, without the use of a preferment.
\item[Stretch and Fold] S\&F is a technique used during the bulk fermentation phase
to strengthen the dough and help align the gluten structure. Instead of traditional
kneading, the dough is gently stretched and then folded over itself. This process is
typically repeated multiple times throughout bulk fermentation.
\item[Tangzhong] A Chinese technique for bread-making, similar to the
Japanese yudane method. It involves cooking a small portion of the flour
with water (or milk) to create a slurry or roux. This process, which can be seen as a
variant of scald, gelatinizes the starches in the flour, resulting in breads
that are softer, fluffier, and have improved moisture retention. Once cooled, the
Tangzhong is mixed with the remaining ingredients to produce the final dough.
\item[Tight Crumb] Refers to a bread crumb (the soft inner part of the bread) that
has small, uniform air holes.
\item[Wild Yeast] Naturally occurring yeast, present in the environment and on the
surface of grains, used in sourdough fermentation as opposed to commercial yeast.
Theres wild yeast on almost any surface of plants. The wild yeasts live in symbiosis
with the plant providing a shield against pathogens and receiving sugars from the
photosynthesis of the plant in return. When the plant becomes weak the wild yeasts
can become parasitic and consume the host.
\item[W-Value] A parameter representing the strength of flour in terms of its
baking quality. The W-value, derived from the Chopin Alveograph test,
measures the energy required to blow a bubble with the dough until it bursts.
It is a direct indicator of the flour's ability to withstand the fermentation
and baking processes. A higher W-value typically indicates a stronger
flour, suitable for breads with high volume and longer fermentation times.
Conversely, a lower W-value suggests a weaker flour, better suited for
products requiring less structure, like cakes and pastries.
\item[Yeast] Microorganisms that ferment the sugars present in the dough, producing
carbon alcohol, carbon dioxide and heat; thereby causing the dough to rise.
\item[Yudane] A Japanese method of bread-making which involves the preparation
of a starter by mixing boiling water with bread flour in a specific ratio, typically 1:1
by weight. After mixing, the paste is left to cool to room temperature and then
refrigerated overnight. The next day, it is combined with the remaining ingredients
to make the dough. The Yudane method, essentially a type of scald, helps in
improving the texture of the bread, making it softer and fluffier while also enhancing
its shelf life.
\end{description}

View File

@@ -9,17 +9,83 @@
lessons from the past. lessons from the past.
\end{quoting} \end{quoting}
Sourdough has been made since ancient times. The exact origins of fermented The story of sourdough bread begins in prehistoric oceans. These oceans were the
birthplace of all life on Earth. To better envision the vast history of
our planet, lets create a timeline in one~year/365~days. On this scale,
January~1 signifies Earth's
formation 4.54~billion years ago. Midnight on December~31 is the present.
Each day represents roughly 12~million years. This technique simplifies the
complexity of time but also renders the extraordinary expanse of our planet's
history into a more graspable timeframe. We humans, are in fact a recent
addition to our planet, so young that we made our first appearance on
the evening of December~31. It seems that humans managed to arrive just
in time to join the celebration at the end of the year.
On March~25, the oceans birthed the first single-celled bacteria. In these
waters, another single-celled life form, \emph{archaea}, also thrived. These
organisms inhabit extreme environments, from boiling vents to icy waters.
\begin{figure}[!htb]
\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,
divided into months, and extending to the present day,
marked at midnight. This visualization shows the pivotal steps
of life and sourdough on earth.}%
\label{fig:planet-timeline}
\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 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.
Life stayed aquatic for another three months.
On October~4, bacteria first colonized land. By October~15, the
first aquatic fungi appeared. They adapted and, by November~24, had colonized
land.
By December~3, yeasts emerged on land. This laid groundwork for bread-making.
Jump 140~million years to December~14, and dinosaurs arose. Just a couple
of days after their appearance on December~17 the super continent Pangea
started to rift apart, reshaping the continents into their current form.
The dinosaurs reigned until December~29 when they faced extinction.
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}.
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]
\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{figure}
The exact origins of fermented
bread are, however, unknown. One of the most ancient preserved bread are, however, unknown. One of the most ancient preserved
sourdough breads has been excavated in Switzerland. sourdough breads has been excavated in Switzerland~\cite{switzerland+bread}.
However, based on recent research, some scientists speculate that sourdough
bread had already been made in \num{12000}~BC in ancient Jordan~\cite{jordan+bread}.
\begin{figure}[ht] \begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{einkorn-crumb} \includegraphics[width=\textwidth]{einkorn-crumb}
\caption[Ancient Einkorn flatbread]{An ancient Einkorn flatbread. Note the \caption[Ancient Einkorn flatbread]{An ancient Einkorn flatbread. Note the
dense crumb structure.}% dense crumb structure.}%
\label{einkorn-crumb} \label{fig:einkorn-crumb}
\end{figure} \end{figure}
Another popular story is that a lady in Egypt was making Another popular story is that a lady in Egypt was making
@@ -28,16 +94,17 @@ dough and at her return a few days later, she noticed that the dough had
increased in size and smelled funky. She decided to bake increased in size and smelled funky. She decided to bake
the dough anyway and was rewarded with a much the dough anyway and was rewarded with a much
lighter, softer, better tasting bread dough. From that day lighter, softer, better tasting bread dough. From that day
on she continued to make bread this way. on she continued to make bread this way~\cite{egyptian+bread}.
Little did the people back then know that tiny microorganisms Little did the people back then know that tiny microorganisms
were the reason the bread was better. It is not clear when were the reason the bread was better. It is not clear when
they started using a bit of the dough from the previous they started using a bit of the dough from the previous
day for the next batch of dough. But by doing so, sourdough day for the next batch of dough. But by doing so, sourdough
bread making was born: Wild yeast in the flour and in the air bread making---as we know it today---was born: Wild yeast
plus bacteria start to decompose the flour-water mixture, also in the flour and in the air, with bacteria
known as your dough. The yeast makes the dough fluffy, and starting to decompose the flour-water mixture.
the bacteria primarily creates acidity. The different The yeast makes the dough fluffy,
and the bacteria primarily creates acidity. The different
microorganisms work in a symbiotic relationship. Humans microorganisms work in a symbiotic relationship. Humans
appreciated the enhanced airy structure and slight acidity appreciated the enhanced airy structure and slight acidity
of the dough. Furthermore, the shelf life of such bread of the dough. Furthermore, the shelf life of such bread
@@ -46,18 +113,18 @@ was extended due to the increased acidity.
Quickly, similar processes were discovered when brewing beer Quickly, similar processes were discovered when brewing beer
or making wine. A small tiny batch of the previous production or making wine. A small tiny batch of the previous production
would be used for the next production. In this way, humans created would be used for the next production. In this way, humans created
modern bread yeasts, wine yeasts, and beer yeasts. Only in 1680, modern bread yeasts, wine yeasts, and beer yeasts~\cite{egypt+beer}.
the scientist Anton van~Leeuwenhoek first studied yeast microorganisms
under a microscope. Over time with each batch, the yeasts and bacteria Over time with each batch, the yeasts and bacteria
would become better at consuming whatever they were thrown at. would become better at consuming whatever they were thrown at.
By feeding your sourdough starter, you are selectively breeding By feeding your sourdough starter, you are selectively breeding
microorganisms that are good at eating your flour. With microorganisms that are good at eating your flour. With
each iteration, your sourdough knows how to better ferment the flour each iteration, your sourdough knows how to better ferment the flour
at hand. This is also the reason why more mature sourdough starters sometimes at hand. This is also the reason\footnote{It is crazy if you think about it.
tend to leaven doughs faster~\cite{review+of+sourdough+starters}. It is crazy if you People have been using this process despite not knowing what was going on for
think about it. People have been using this process despite not thousands of years!} why more mature sourdough starters sometimes tend to
knowing what was actually going on for thousands of years! The leaven doughs faster~\cite{review+of+sourdough+starters}. The sourdough in
sourdough in itself is a symbiotic relationship. But the sourdough itself is a symbiotic relationship, but the sourdough
also adapted to humans and formed a symbiotic relationship with us. also adapted to humans and formed a symbiotic relationship with us.
For food and water, we are rewarded with delicious bread. In exchange, For food and water, we are rewarded with delicious bread. In exchange,
we shelter and protect the sourdough. Spores from the starter we shelter and protect the sourdough. Spores from the starter
@@ -65,39 +132,120 @@ are spread through aerial contamination or insects like fruit flies.
This allows the sourdough starter to spread its spores even This allows the sourdough starter to spread its spores even
further all around the world. further all around the world.
Brewers would start to experiment with utilizing the muddy leftovers Evidence suggests early grain grinding in northern Australia around
of the beer fermentation to start making doughs. They would notice \num{60000}~BC, notably at the Madjedbebe rock shelter in Arnhem
Land~\cite{aboriginal+grinding+stones}. However, a more significant
advancement occurred later, as documented by the ancient Greek geographer
Strabo in \num{71}~BC\@. Strabo's writings described the first water-powered
stone mill, known as a \emph{gristmill}. These mills advanced flour production
from a few kilograms up to several metric tons per day~\cite{history+mills}.
These early mills featured horizontal paddle wheels, eventually termed
\emph{Norse wheels} due to their prevalence in Scandinavia. The paddle wheels
connected to a shaft, which, in turn, linked to the central runner stone for
grinding. Water flow propelled the paddle wheels, transferring the grinding
force to the stationary \emph{bed}, typically a stone of similar size and
shape. This design was straightforward, avoiding the need for gears. However,
it had a limitation: the stone's rotation speed relied on water volume and
flow rate, making it most suitable for regions with fast-flowing streams,
often found in mountainous areas~\cite{mills+scandinavia}.
In the year \num{1680}, a remarkable scientist by the name of
Antonie~van~Leeuwenhoek introduced a groundbreaking innovation that would
forever alter our understanding of the microscopic world and ultimately bread
making. Van~Leeuwenhoek, a master of lens craftsmanship, possessed an
insatiable fascination with realms invisible to the naked eye. His pioneering
work birthed the first modern microscope. What set Van~Leeuwenhoek apart was
the exceptional quality of his lenses, capable of magnifying tiny
microorganisms by an astounding factor of \num{270}. Driven by an unrelenting
curiosity to unveil the unseen, he embarked on a journey of exploration. He
scrutinized flies, examined lice-infested hair, and ultimately turned his gaze
toward the tranquil waters of a small lake near Delft.
In this serene aquatic habitat, he made astonishing observations, discovering
algae and minuscule, dancing creatures hitherto hidden from human perception.
Eager to share his revelatory findings with the scientific community,
Van~Leeuwenhoek faced skepticism, as it was difficult to fathom that someone
had witnessed thousands of diminutive, dancing entities—entities so tiny that
they eluded the human eye.
Undeterred by skepticism, he continued his relentless pursuit of the unseen,
directing his lens towards a brewer's beer sludge. In this obscure medium,
Van~Leeuwenhoek made history by becoming the first human to lay eyes upon
bacteria and yeast, unraveling a previously concealed world that would
revolutionize our understanding of microbiology~\cite{Yong+2017+Leeuwen}.
At the same time brewers would start to experiment with utilizing the muddy
leftovers of the beer fermentation to start making doughs. They would notice
that the resulting bread doughs were becoming fluffy and compared that the resulting bread doughs were becoming fluffy and compared
to the sourdough process would lack the acidity in the final product. to the sourdough process would lack the acidity in the final product.
A popular example is shown in a report from 1875. Eben Norton Horsford A popular example is shown in a report from \num{1875}. Eben Norton Horsford
wrote about the famous \emph{Kaiser Semmeln} (Emperor's bread rolls). wrote about the famous \emph{Kaiser Semmeln} (Emperor's bread rolls).
These are essentially bread rolls made with brewer's yeast instead These are essentially bread rolls made with brewer's yeast instead
of the sourdough leavening agent. As the process is more expensive, of the sourdough leavening agent. As the process is more expensive,
bread rolls like these were ultimately consumed by the noble people bread rolls like these were ultimately consumed by the noble people
in Vienna~\cite{vienna+breadrolls}. in Vienna~\cite{vienna+breadrolls}.
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] \begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{sourdough-stove} \includegraphics[width=\textwidth]{sourdough-stove}
\caption{A bread made over the stove without an oven.}% \caption{A bread made over the stove without an oven.}%
\label{sourdough-stove} \label{fig:sourdough-stove}
\end{figure} \end{figure}
Only in 1857, the French microbiologist Louis Pasteur discovered The biggest advancement of industrial bread making happened in \num{1857}.
the process of alcoholic fermentation. He would prove that The French microbiologist Louis Pasteur discovered the process of alcoholic
yeast microorganisms are the reason for alcoholic fermentation fermentation. He would prove that yeast microorganisms are the reason for
and not other chemical catalysts. What would then start is alcoholic fermentation and not other chemical catalysts. He continued with his
what I~describe as the 150 lost years of bread making. In 1879 research and was the first person to isolate and grow pure yeast strains.
the first machines and centrifuges were developed to centrifuge Soon later in \num{1868} the Fleischmann brothers Charles and Maximilian were
pure yeast. This yeast would be extracted from batches of sourdough. the first to patent pure yeast strains for bread making. The yeasts offered
The pure yeast would prove to be excellent and turbocharged were isolated from batches of sourdough. By \num{1879} the machinery was built
at leavening bread doughs. What would previously take 10~hours to multiply the yeast in large centrifuges~\cite{fleischmann+history}. The
to leaven a bread dough could now be done within 1~hour. pure yeast would prove to be excellent and turbocharged at leavening bread
The process became much more efficient. During World~War~II doughs. What would previously take 10~hours to leaven a bread dough could now
the first packaged dry yeast was developed. This would ultimately be done within 1~hour. The process became much more efficient. What
allow bakeries and home bakers to make bread much faster. ultimately made making large batches of dough possible, was the invention of
Thanks to pure yeast, building bread making machines was the electrical kneader. Rufus Eastman, an American inventor, is often
possible. Provided you maintain the same temperature, credited with an important advancement in mixer technology. In \num{1885}, he
your yeast would always ferment exactly the same way. 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
ultimately allow bakeries and home bakers to make bread much faster and more
consistently. Thanks to pure yeast, building industrial bread making machines
was now possible. Provided you maintain the same temperature, same flour and
yeast strains fermentation became precisely reproducible. This ultimately lead
to the development of giga bakeries and flour blenders. The bakeries demanded
the same flour from year to year to bake bread in their machines. For this
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-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,
particularly dwarf wheat varieties, that were resistant to diseases and could
thrive in various environmental conditions. His work, which started in the
1940s and continued through the \num{1960}s, played a crucial role in
increasing wheat production worldwide and alleviating food
shortages~\cite{green+revolution}.
As fermentation As fermentation
times sped up, the taste of the final bread would deteriorate. times sped up, the taste of the final bread would deteriorate.
@@ -111,7 +259,7 @@ of true nerds would continue making bread with sourdough.
Suddenly people started to talk more often about celiac disease Suddenly people started to talk more often about celiac disease
and the role of gluten. The disease isn't new; it has first and the role of gluten. The disease isn't new; it has first
been described in 250 AD~\cite{coeliac+disease}. People been described in \num{250}~AD~\cite{coeliac+disease}. People
would note how modern bread has much more gluten compared would note how modern bread has much more gluten compared
to ancient bread. The bread in ancient times probably was much flatter. to ancient bread. The bread in ancient times probably was much flatter.
The grains over time have been bred more and more towards containing a higher The grains over time have been bred more and more towards containing a higher
@@ -151,8 +299,9 @@ During the California Gold Rush, French bakers brought the sourdough
culture to Northern America. A popular bread became the culture to Northern America. A popular bread became the
San Francisco sourdough. It's characterized by its unique San Francisco sourdough. It's characterized by its unique
tang (which was previously common for every bread). It tang (which was previously common for every bread). It
however remained more of a niche food. What really expedited however remained more of a niche food while industrial bread
the comeback of sourdough was the 2020 COVID-19 pandemic. was on the rise. What really expedited
the comeback of sourdough was the \num{2020} COVID-19 pandemic.
Flour and yeast became scarce in the supermarkets. While Flour and yeast became scarce in the supermarkets. While
flour returned yeast couldn't be found. People started flour returned yeast couldn't be found. People started
to look for alternatives and rediscovered the ancient to look for alternatives and rediscovered the ancient

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

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}% \chapter{Acknowledgments}%
\label{ch:Acknowledgements} \label{ch:Acknowledgments}
This book would not have been possible without your help. This book would not have been possible without your help.
With all your donations I~have been able to focus on finishing With all your donations I~have been able to focus on finishing
this book. Your continuous support allows me to focus this book. Your continuous support allows me to focus

View File

@@ -1,4 +0,0 @@
\chapter{Foreword}%
\label{ch:Foreword}
Hopefully one day there is going to be an awesome foreword
by another bread baker!

View File

@@ -46,7 +46,8 @@ seemingly
healthy bread consisted of so many other things aside from flour and water. healthy bread consisted of so many other things aside from flour and water.
The black color was not coming from the flour, but from caramelized sugar. The black color was not coming from the flour, but from caramelized sugar.
The packaging stated it was a sourdough bread, but then why was there additional yeast? The packaging stated it was a sourdough bread, but then why was there additional yeast?
I~thought that if it was really sourdough, it shouldn't require additional yeast, and I~soon I~thought that if it was really sourdough, it shouldn't require additional
yeast. I~soon
realized that something was wrong with the bread I~was buying. realized that something was wrong with the bread I~was buying.
I~proceeded to check the other supermarket breads, only to discover that they, too, I~proceeded to check the other supermarket breads, only to discover that they, too,
contained ingredients I'd never heard of. That was the day I~lost trust contained ingredients I'd never heard of. That was the day I~lost trust
@@ -80,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 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 bug. That is when the developer must dig deeper to see the \emph{what} and the
\emph{why} behind what \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. to understand \emph{why} things are happening.
Being unhappy with what I~was baking, my engineering mindset took over, and I~had Being unhappy with what I~was baking, my engineering mindset took over, and
to do my own deep dive to understand what was going on. Much to my surprise, however, I~had to do my own deep dive to understand what was going on. Much to my
none of the recipes I'd encountered would tell me \emph{why} I~should use amount X surprise, however, none of the recipes I'd encountered would tell me
of water and amount Y of flour, or \emph{why} exactly I~should use fresh yeast over dry yeast. Why \emph{why} I~should use amount $X$ of water and amount $Y$ of flour, or
should I~slap my dough while kneading it on the counter? Why is a standmixer \emph{why} exactly I~should use fresh yeast over dry yeast. Why should I~slap
better than kneading by hand? Why should I~let the dough sit for this long? my dough while kneading it on the counter? Why is a stand mixer better than
Why is steaming the dough during baking important? Do I~really need to kneading by hand? Why should I~let the dough sit for this long? Why is
get myself an expensive Dutch oven to bake bread? steaming the dough during baking important? Do I~really need to get myself an
The problem compounded when I~started reading about sourdough. It all sounded like black expensive Dutch oven to bake bread? The problem compounded when I~started
magic. Why were some sourdoughs made from fruits, while others were made from flour? reading about sourdough. It all sounded like black magic. Why were some
Why should one recipe use wheat while another used rye or spelt? How often should the sourdoughs made from fruits, while others were made from flour? Why should
sourdough be fed? The questions I~had then could have filled 20~pages. I~was confused, one recipe use wheat while another used rye or spelt? How often should the
but I~became even more determined to learn how decent bread should be made at home. 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 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 iteration of homemade bread. Compared to coding, where you sometimes have to wait months
@@ -162,8 +165,8 @@ and more. It should provide a detailed understanding as to why certain steps are
and how to adapt them when things go wrong while making bread. and how to adapt them when things go wrong while making bread.
It is my desire for this knowledge to be accessible to everyone around the world, regardless It is my desire for this knowledge to be accessible to everyone around the world, regardless
of budget, and as such, I~do not want to charge for the book. That's why I've decided to make of budget, and as such, I~do not want to charge for the book. That's why I've decided to make
it open source and have asked the community to support my work financially via my ko-fi page it open source and have asked the community to support my work with
\url{https://ko-fi.com/thebreadcode}. The community's feedback has been amazing so far, and donations. The community's feedback has been amazing so far, and
I've already raised much more money than initially expected. The digital version of this book I've already raised much more money than initially expected. The digital version of this book
will always remain free. There is also a hardcover version of the book available for purchase. will always remain free. There is also a hardcover version of the book available for purchase.
You can read more details here: \url{https://breadco.de/physical-book} You can read more details here: \url{https://breadco.de/physical-book}

View File

@@ -1,324 +1,424 @@
# Macros for commands # Macros for commands {{{
LATEX := latexmk -cd -pdflua -lualatex="lualatex -interaction=nonstopmode" -synctex=1 -use-make LATEX := latexmk -cd -pdflua -lualatex="lualatex -interaction=nonstopmode" -synctex=1 -use-make
EBOOK := tex4ebook --lua -d epub -c tex4ebook.cfg EBOOK := tex4ebook --lua -d epub -f epub -c tex4ebook.cfg -B epub_build
WEBSITE := make4ht --lua -c website.cfg -a debug -uf html5+tidy+common_domfilters+dvisvgm_hashes WEBSITE := make4ht --lua -c website.cfg -uf html5+tidy+common_domfilters -B website_build
CLEAN := latexmk -cd -lualatex -c -use-make CLEAN := latexmk -cd -lualatex -c -use-make
EBOOK_CONVERT := kindlegen
CHECK_1 := lacheck CHECK_1 := lacheck
CHECK_2 := chktex 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
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; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
ifdef DEBUG ifdef DEBUG
LATEX += -diagnostics
EBOOK += -a debug EBOOK += -a debug
WEBSITE += -a debug WEBSITE += -a debug
endif 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\ chapters = baking basics bread-types cover flour-types history intro mix-ins\
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\ non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
wheat-sourdough 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 := $(foreach directory, $(chapters), $(wildcard $(directory)/*.tex))
src_tex += book.tex book_sans_serif.tex references.bib figures/vars.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/*.jpg) images += $(wildcard images/*.jpg)
images += $(wildcard images/*.png) images += $(wildcard images/*.png)
images += $(wildcard images/*/*.png) images += $(wildcard images/*/*.png)
images += $(foreach directory, $(chapters), $(wildcard $(directory)/*.jpg)) images += $(foreach directory, $(chapters), $(wildcard $(directory)/*.jpg))
images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.jpg))
images += $(foreach directory, $(chapters), $(wildcard $(directory)/*.png)) images += $(foreach directory, $(chapters), $(wildcard $(directory)/*.png))
images += $(foreach directory, $(chapters), $(wildcard $(directory)/*/*.png))
src_all := $(src_tex) $(src_figures) $(src_tables) tex4ebook.cfg book.mk4 $(images) # Black and White ebook, we will just re-zip directory after converting the
# images to lower resolution and greyscale
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
website_src := $(src_all) website.cfg # 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/*) website_assets := $(wildcard ../website/assets/*)
ruby_src := ../website/modify_build.rb $(website_assets) ruby_src := ../website/modify_build.rb $(website_assets)
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
# }}}
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
# Default rules for pdf and ebooks, getting overwritten when built in a
# sub-directory
%.pdf: %.tex
$(LATEX) $<
# Internal build rules {{{
# Flowcharts {{{
# TODO: check if it works on github CI # TODO: check if it works on github CI
%.png: %.tex %.png: %.tex
@echo "\input{./vars.tex}" > $@.in @printf '%s\n' "\input{./vars.tex}" > $@.in
# \b is backspace.. @printf '%s\n' "\begin{document}" >> $@.in
@echo "\\\begin{document}" >> $@.in
@cat $< >> $@.in @cat $< >> $@.in
@echo "\\\end{document}" >> $@.in @printf '%s\n' "\end{document}" >> $@.in
$(LATEX) $@.in $(LATEX) $@.in
figures/export_figures.sh $@.pdf figures/export_figures.sh $@.pdf
%.xbb: %.jpg %.xbb: %.jpg
ebb -x $< ebb -x $<
# }}}
# Pdf {{{
# Default rules for pdf, getting overwritten when built in a sub-directory
%.pdf: %.tex
$(LATEX) $<
book_serif/book.pdf: $(src_all) book_serif/book.pdf: $(src_all)
$(LATEX) -output-directory=book_serif book.tex $(LATEX) -output-directory=book_serif book.tex
book_sans_serif/book_sans_serif.pdf: $(src_all) book_sans_serif/book_sans_serif.pdf: $(src_all)
$(LATEX) -output-directory=book_sans_serif book_sans_serif.tex $(LATEX) -output-directory=book_sans_serif book_sans_serif.tex
# }}}
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb # Ebook {{{
$(EBOOK) -f epub $< ###################################
.PHONY: copy_ebook_files copy_ebook_files_low_res
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
$(EBOOK) $<
epub/%.mobi: epub/%.epub copy_ebook_files: ebook
$(EBOOK_CONVERT) $< -o $(notdir $@) $(RSYNC) --exclude '*.png' epub_build/book-epub/ bw-book-epub/
epub/%.azw3: epub/%.epub # Now that we have built the ebook we will generate 2 more versions
$(EBOOK_CONVERT) $< -o $(notdir $@) #
# 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
# Now with the rules # We do not convert SVG to B&W or lower res for now as they are super small
# Expected usual rules first # anyway
.PHONY: default bw-book-epub/OEBPS/%.jpg: %.jpg
default: build_serif_pdf mkdir -p $(dir $@)
$(CONVERT_PIC) $< $(REDUCE_PIC) $@
.PHONY: all bw-book-epub/OEBPS/%.png: %.png
all: bake mkdir -p $(dir $@)
$(CONVERT_PIC) $< $(REDUCE_PIC) $@
.PHONY: help epub/bw_book.epub: copy_ebook_files $(bw_images)
help: cd bw-book-epub; zip -q0X ../epub/bw_book.epub mimetype
@echo "" cd bw-book-epub; zip -q9XrD ../epub/bw_book.epub ./
@echo "default: builds the book in pdf format (serif)"
@echo ""
@echo "all: pdf and ebooks serif and sans-serif accessible version, same as"
@echo " build release"
@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 "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_ebook: builds only the ebook serif and accessible version"
@echo "build_pdf: builds both serif and accessible pdf"
@echo ""
@echo "build_sans_serif_ebook: build accessible ebook only"
@echo "build_sans_serif_pdf: build accessible pdf only"
@echo ""
@echo "build_serif_ebook: build serif ebook only"
@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 and ebooks"
@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 serif_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"
# Now the low res
copy_ebook_files_low_res: ebook
$(RSYNC) epub_build/book-epub/ low-res-book-epub/
# Finally project specif targets low-res-book-epub/OEBPS/%.jpg: %.jpg
.PHONY: build_pdf mkdir -p $(dir $@)
build_pdf: build_serif_pdf build_sans_serif_pdf $(CONVERT_PIC) $< $(REDUCE_PIC_COLOR) $@
.PHONY: build_serif_pdf epub/low_res_book.epub: copy_ebook_files_low_res $(low_res_images)
build_serif_pdf: book_serif/book.pdf 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 ./
# }}}
.PHONY: build_sans_serif_pdf # Website {{{
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf ###################################
.PHONY: html website
.PHONY: build_ebook
build_ebook: build_serif_ebook build_sans_serif_ebook
.PHONY: build_serif_ebook
build_serif_ebook: epub/book.epub epub/book.mobi epub/book.azw3 | make_release_dir
.PHONY: build_sans_serif_ebook
build_sans_serif_ebook: epub/book_sans_serif.epub epub/book_sans_serif.mobi \
epub/book_sans_serif.azw3 | make_release_dir
.PHONY: export_figures
# 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
PHONY: check
check: $(SRC_TEX)
@echo "Running: " $(CHECK_1)
$(CHECK_1) book.tex
@echo ""
@echo "Running: " $(CHECK_2)
$(CHECK_2) book.tex
.PHONY: clean_figures
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
.PHONY: clean_ebook_build
clean_ebook_build:
-rm book*.loc
-rm book*.aux
-rm book*.run.xml
-rm book*.bcf
-rm book*.blg
-rm book*.log
-rm book*.4tc
-rm book*.4ct
-rm book*.dvi
-rm book.css
-rm book_sans_serif.css
-rm book*.idv
-rm book*.lg
-rm book*.ncx
-rm book*.tmp
-rm book*.xref
-rm book*.html
-rm book*.fls
-rm book*.fdb_latexmk
-rm book*.bbl
-rm content.opf
-rm book*x.svg
.PHONY: clean_website_build
clean_website_build: clean_ebook_build
-rm book-*.svg
-rm book.loc
-rm book.dlog
-rm $(subst $(website_dir)/,, $(wildcard $(website_dir)/*.html))
.PHONY: clean
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*/*.loc
-rm book*/*.bbl
-rm book*/*.run.xml
-rm -rf book*-epub/META-INF
-rm -rf book*-epub/OEBPS
-rm book*-epub/mimetype
.PHONY: mrproper
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 book_sans_serif-epub/
rm -rf $(website_dir)
.PHONY: bake
bake: release_serif release_sans_serif
.PHONY: make_release_dir
make_release_dir:
mkdir -p release
.PHONY: release_serif
release_serif: build_serif_pdf build_serif_ebook | make_release_dir
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
cp epub/book.mobi release/TheBreadCode-The-Sourdough-Framework.mobi
cp epub/book.epub release/TheBreadCode-The-Sourdough-Framework.epub
cp epub/book.azw3 release/TheBreadCode-The-Sourdough-Framework.azw3
.PHONY: release_sans_serif
release_sans_serif: build_sans_serif_pdf build_sans_serif_ebook | make_release_dir
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
cp epub/book_sans_serif.mobi release/TheBreadCode-The-Sourdough-Framework-sans-serif.mobi
cp epub/book_sans_serif.epub release/TheBreadCode-The-Sourdough-Framework-sans-serif.epub
cp epub/book_sans_serif.azw3 release/TheBreadCode-The-Sourdough-Framework-sans-serif.azw3
# Website stuff
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb $(website_dir)/book.html: $(website_src) cover/cover-page.xbb
$(WEBSITE) -d $(website_dir) book.tex $(WEBSITE) -d $(website_dir) book.tex
.PHONY: html
html: $(website_dir)/book.html html: $(website_dir)/book.html
cp $< $(website_dir)/index.html cp $< $(website_dir)/index.html
# Because packages will be installed in hard to predict places use a file as # Because packages will be installed in hard to predict places use a file as
# marker.. # marker..
../website/_bundle_install_done: $(ruby_pkg) ../website/_bundle_install_done: $(ruby_pkg)
- rm ../website/$@ -rm ../website/$@
cd ../website && bundle install cd ../website && bundle install
touch ../website/$@ touch ../website/$@
# TODO: this will run every single time, but is so fast we don't really care # TODO: this will run every single time, but is so fast we don't really care
.PHONY: website
website: html ../website/_bundle_install_done $(ruby_src) website: html ../website/_bundle_install_done $(ruby_src)
cd ../website && ruby modify_build.rb cd ../website && ruby modify_build.rb
#}}}
# Debug Stuff from now on # Figures only {{{
.PHONY: quick show_tools_version printvars ###################################
.PHONY: export_figures
# Requires that you have docker running on your computer.
export_figures: pdf $(tgt_figures)
cd figures/ && bash export_figures.sh
# }}}
# }}}
# Those 2 targets allow fast debug cycles but not reolvig refrences etc # User level targets {{{
quick: # run latex only once no biber, no references etc.. # Build targets {{{
$(LATEX) -e '$$max_repeat=1' -output-directory=book_serif book.tex .PHONY: all
all: bake
quick_ebook: # run latex only once no biber, no references etc.. # Finally actual project targets (i.e. build pdf and ebooks)
$(EBOOK) --mode draft -f epub book.tex .PHONY: pdf serif sans_serif ebook
show_tools_version: # Show version of tools used on the build machine pdf: serif sans_serif
- git log -n 1 serif: book_serif/book.pdf
@echo "" sans_serif: book_sans_serif/book_sans_serif.pdf
- latexmk --version
@echo ""
- lualatex --version
@echo ""
- tex4ebook --version
@echo ""
- make4ht --version
@echo ""
- tidy -version
@echo ""
- kindlegen --version
@echo ""
- lacheck --version
@echo ""
- chktex --version
@echo ""
- make --version
@echo ""
- biber -version
@echo ""
- ruby --version
@echo ""
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)
#}}}
.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...
$(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...
$(EBOOK) --mode draft book.tex
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
@echo ""
-$(SHELL) --version
@echo ""
-@echo "PATH:"
-@echo $(PATH) | tr ':' '\n'
@echo ""
-latexmk --version
@echo ""
-lualatex --version
@echo ""
-tex4ebook --version
@echo ""
-make4ht --version
@echo ""
-tidy -version
@echo ""
-dvisvgm --version
@echo ""
-lacheck | head -5 | tail -1
@echo ""
-chktex --version
@echo ""
-make --version
@echo ""
-biber -version
@echo ""
-ruby --version
@echo ""
-$(CONVERT_PIC) --version
@echo ""
-rsync --version
# }}}
# You can find the value of variable X with the following command: # You can find the value of variable X with the following command:
# make print-X # 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)), \ @$(foreach V,$(sort $(.VARIABLES)), \
$(if $(filter-out environ% default automatic, \ $(if $(filter-out environ% default automatic, \
$(origin $V)),$(info $V=$($V) ($(value $V))))) $(origin $V)),$(info $V=$($V) ($(value $V)))))
# }}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 KiB

BIN
book/mix-ins/beer-bread.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

BIN
book/mix-ins/broa.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

View File

@@ -1,183 +1,352 @@
\chapter{Mix-ins}% \chapter{Mix-ins}%
\label{ch:mix-ins} \label{ch:mix-ins}
\begin{quoting} \begin{quoting}
This work-in-progress chapter will describes altering and additions you In this chapter, you will learn about the fascinating world of sourdough
could make to your dough to create beautiful or different tasting loafs. mix-ins. Discover how these additions can elevate your bread, enhancing
flavor, adding vibrant colors, and creating delightful textures that make
each loaf a culinary masterpiece.
\end{quoting} \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
adds flavor and hydration to the dough.}%
\end{figure}
A loaf of wheat sourdough has a very pure aesthetic. Good craftsmanship and A loaf of wheat sourdough has a very pure aesthetic. Good craftsmanship and
precision transforms the ingredients into simple, but delicious food. With precision transform the ingredients into simple, but delicious food. With
mix-ins, the basic recipe can become the starting point for a whole world of mix-ins, the basic recipe can become the starting point for a whole world of
modifications to try and combine. Think of the loaf of bread as a blank canvas modifications to try and combine. Think of the loaf of bread as a blank canvas
to express yourself. to express yourself.
One approach to sort through the options is to categorize mix-ins by shape \section{Categories}
(the transition between these categories is somewhat fuzzy):
\begin{figure}[htb!]
\centering
\includegraphics[width=\textwidth]{pumpkin-on-flour}
\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.
However, the transition between these categories is somewhat fuzzy:
\begin{itemize} \begin{itemize}
\item Liquids: Integrate homogeneously into the dough, may replace some of \item Liquids: Integrate homogeneously into the dough, may replace some of
the water. Examples: Milk, oil, spinach juice. or all of the water. Examples: Milk, butter, oil, spinach juice, tomato
juice, eggs
\item Powders: Integrate homogeneously into the dough, may replace some of \item Powders: Integrate homogeneously into the dough, may replace some of
the flour. Examples: Rye flour, semolina, cocoa, ground spices. the flour. Examples: Milk powder, semolina, cocoa, spices
\item Small bits: Individually visible in the final loaf, small enough to \item Small bits: Individually visible in the final loaf, small enough to
distribute somewhat evenly throughout the dough. Examples: Seeds (poppy distribute somewhat evenly throughout the dough. Examples: Seeds (wheat
seeds, sesame, pumpkin seeds), whole spices (coriander). berries, rye berries, poppy seeds, sesame, pumpkin seeds,
flax seeds), whole spices (coriander)
\item Chunks: Larger pieces that will only be present in the occasional bite \item Chunks: Larger pieces that will only be present in the occasional bite
when eating a slice of your bread. Examples: dried tomatoes, chunks of when eating a slice of your bread. Examples: dried tomatoes, chunks of
cheese, cheese, chunks of chocolate
\end{itemize} \end{itemize}
Another categorization approach looks at the changes to the bread. Most Another categorization approach looks at the changes to the bread:
mix-ins actually impact multiple aspects.
\begin{itemize} \begin{itemize}
\item Flavor: Significantly changes the taste of the bread. Examples: rye \item Flavor: Significantly changes the taste of the bread. Examples: rye
flour, spices. flour, corn flour, spices, sugar.
\item Color: Significantly changes the look of the bread. Examples: cocoa, \item Color: Significantly changes the look of the bread. Examples: cocoa,
squid ink, beetroot juice. squid ink, beetroot juice, tomato juice.
\item Texture: Significantly changes the feeling in the mouth when eaten. \item Texture: Significantly changes the feeling in the mouth when eaten.
Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks). Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks).
\end{itemize} \end{itemize}
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.}%
\end{figure}
Mix-ins affect the structure of the dough. One aspect is the impact on Mix-ins affect the structure of the dough. One aspect is the impact on
hydration. Some mix-ins absorb a lot of water when added to the dough, so you hydration. Some mix-ins absorb a lot of water when added to the dough, so you
have to increase the amount of water to achieve the same dough consistency. have to increase the amount of water to achieve the same dough consistency.
The other impact is on the gluten network. Bits and chunks disrupt the gluten The other impact is on the gluten network. Bits and chunks disrupt the gluten
network, and may reduce the rise. All of this depends on the amount of mix-ins network and may reduce oven spring during baking. All of this depends on the amount of mix-ins
used. A good rule of thumb is to add \qtyrange{10}{20}{\percent} of the amount used. A good rule of thumb is to add \qtyrange{10}{20}{\percent} of the amount
of flour in most mix-ins, reduced to around \qtyrange{1}{5}{\percent} of the of flour in most mix-ins, reduced to around \qtyrange{1}{5}{\percent} of the
amount of flour for spices. amount of flour for spices.
An important factor is also the mix-in's behavior during baking. Particularly An important factor is also the mix-in's behavior during baking. Particularly
chunks may bake differently than dough, and either melt (cheese) leaving holes chunks may bake differently than dough, and either melt (cheese) leaving holes
inside, or char when peeking through the crust (\eg, vegetables). These inside, or char when peeking through the crust (\eg~vegetables). These
problems can be mitigated to some degree with the right preparation (\eg, problems can be mitigated to some degree with the right preparation (\eg~chopping
chopping into smaller pieces, soaking dry ingredients in water or oil first, into smaller pieces, soaking dry ingredients in water or oil first,
or squeezing out excess moisture). or squeezing out excess moisture).
% potential reference to link: https://food52.com/blog/25521-additions-to-sourdough-bread-ideas
\section{Examples} \section{Examples}
The following is a list of common mix-ins and their peculiarities: The following is a list of common mix-ins and their peculiarities. They can be
combined depending on your preference.
\subsection{Flours} \subsection{Flours}
These are powders. Usually you want to just replace some fraction of the These are powders. Usually, you want to just replace some fraction of the
regular bread flour. Different flours change the taste of the bread and regular bread flour. Different flours change the taste of the bread and
usually moderately affect the color. 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.}%
\end{figure}
\begin{itemize} \begin{itemize}
\item Whole wheat flour (substitute any amount, makes the bread taste more \item Whole wheat flour (substitute any amount, makes the bread taste more
complex, nutty) complex, nutty)
\item Rye flour (very hearty, nutty, malty taste) \item Rye flour (very hearty, nutty, malty taste)
\item Semolina (supports mediterranean flavors) \item Enzymatic malt (malty taste, improves enzymatic activity). The malt is
a great addition when making quicker yeast-based doughs.
\item Semolina (supports Mediterranean flavors)
\item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes \item Cocoa (replace \qty{10}{\percent} of the flour for a black loaf, goes
great with sweet toppings) great with sweet toppings)
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato\dots{}
\end{itemize} \end{itemize}
\subsection{Liquids} \subsection{Liquids}
Substitute some of the water with a different liquid, affecting taste and
texture. 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}%
\end{figure}
\begin{itemize} \begin{itemize}
\item Coffee
\item Beer \item Beer
\item Olive oil (mediterranean) \item Butter
\item Milk (for sweet, soft breads)
\item Buttermilk \item Buttermilk
\item Cereal milk (the leftover milk from eating cereals)
\item Coffee
\item Eggs
\item Fruit/vegetable juices (also see Section~\ref{sec:colors})
\item Milk (for sweet, soft breads)
\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\dots{}
\end{itemize} \end{itemize}
\subsection{Colors} \subsection{Colors}%
These drastically change the color of the bread. \label{sec:colors}
Some mix-ins will change the color and flavor of your bread. Common colorings
include:
\begin{itemize} \begin{itemize}
\item Activated charcoal powder (black)
\item Beetroot juice (red) \item Beetroot juice (red)
\item Blueberry juice (blue)
\item Blue butterfly pea flower powder (blue)
\item Carrot juice (orange) \item Carrot juice (orange)
\item Pear juice (pink)
\item Spinach juice (green) \item Spinach juice (green)
\item Squid ink (black) \item Squid ink (black)
\item Strawberry juice (red)
\item Tomato juice (red)
\end{itemize} \end{itemize}
\subsection{Seeds and nuts} \subsection{Seeds and nuts}
These are small bits, with some almost crossing into the chunk category. Most These are small bits, with some almost crossing into the chunk category. Some
seeds benefit from being baked for about 10~minutes before adding them to the seeds benefit from being boiled for about 10~minutes before adding them to the
dough. 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.}%
\end{figure}
\begin{itemize} \begin{itemize}
\item Pumpkin seed \item Cacao nibs
\item Chia seed \item Chia seed
\item Flaxseed (soak these in water first) \item Chopped or whole nuts such as: Almonds, hazelnuts and walnuts
\item Hemp seed (very crunchy, a personal favorite) \item Flaxseeds
\item Hemp seed
\item Poppy seed
\item Pumpkin seed
\item Sesame \item Sesame
\item Sunflower seed \item Sunflower seed
\item Poppy seed \item Whole rye berries (boil 10 minutes)
\item Cacao nibs \item Whole wheat berries (boil 10 minutes)
\item Chopped or whole walnuts
\item Chopped or whole hazelnuts
\end{itemize} \end{itemize}
\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.}%
\end{figure}
\subsection{Spices and flavor mix-ins} \subsection{Spices and flavor mix-ins}
These are mostly powders or small bits. These are mostly powders or small bits.
\begin{itemize} \begin{itemize}
\item Mediterranean herbs (oregano, thyme, rosemary, marjoram) \item Blueberry skins (press through a sieve to remove juice), raw
\item Bread spice (coriander, cumin, fennel, anise) blueberries
\item Grated hard cheese: Gruyère, parmesan
\item Blueberry skins (press through sieve to remove juice, raw blueberries
would add too much water)
\item Lemon zest (alternatively orange or lime)
\item Browned onions \item Browned onions
\item Molasses \item Candied fruits such as: Lemon, orange, pineapple\dots{}
\item Cinnamon
\item Grated hard cheese such as: Gruyère, parmesan\dots{}
\item Mediterranean herbs such as: Marjoram, oregano, rosemary, thyme\dots{}
\item Miso \item Miso
\item Molasses
\item Sugar
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin\dots{}
\item Zests such as: Lime, Lemon, orange\dots{}
\end{itemize} \end{itemize}
\subsection{Highlights} \subsection{Highlights}
Mostly chunks, that add a big contrast and flavorful highlight to the basic Mostly chunks, that add a big contrast and flavorful highlight to the basic
bread. Usually you want to use only one (or maximum two) of these. Often can bread. Usually, you want to use only one (or a maximum of two) of these. The suggestions
be complemented well by some flavor mix-in or flour. can often be complemented by some flavor or flour mix-in.
\begin{itemize} \begin{itemize}
\item Olives
\item Sundried tomatoes (squeeze out the oil if using pickled ones, or soak
dried ones in water)
\item Pickled pepperoni
\item Cornflakes
\item Dried fruit (\eg, cranberries, raisins)
\item Chunks of cheese (\eg, cheddar, feta)
\item Chunks of black garlic
\item Chocolate chunks or drops \item Chocolate chunks or drops
\item Chunks of black garlic
\item Chunks of cheese such as: Cheddar, feta\dots{}
\item Cornflakes
\item Dried fruits such as: Cranberries, dates, raisins\dots{}
\item Olives
\item Pickled pepperoni
\item Sun-dried tomatoes (squeeze out the oil if using pickled ones, or soak
dried ones in water)
\end{itemize} \end{itemize}
\subsection{Combinations} \subsection{Combinations}
A few combinations where multiple mix-ins complement each other: A few combinations where multiple mix-ins complement each other:
\begin{itemize} \begin{itemize}
\item Semolina, mediterranen herbs, olives, sundried tomatoes. \item Butter and milk. Then add cinnamon and brown sugar before shaping
\item Cranberry and walnuts. \item Cheddar and pepperoni
\item Cheddar and pepperoni. \item Cheddar and jalapeño
\item Cocoa, cacao nibs, whole hazelnuts. \item Cocoa, cacao nibs, whole hazelnuts
\item Cranberry and walnuts
\item Semolina, Mediterranean herbs, olives, sun-dried tomatoes
\item Tomato juice instead of water with \qty{20}{\percent} rye flour
\end{itemize} \end{itemize}
\section{Techniques} \section{Techniques}
Adding mix-ins into the dough is just the simplest approach. There are other,
more advanced ways to include them into a loaf.
\subsection{Covering the crust} Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
This works best for either powders or small bits. Spread the mix-in in a flat directly when you knead the dough. After the first kneading wait for 30
container, wet the surface of the loaf, and dip it into the mix-in right minutes to see if the dough has enough or too much water. In the case of
before baking. 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.
This does not work for all mix-ins, as some can't handle the high temperatures \subsection[Incorporating seeds into the dough]{What is the best stage to
during baking and char. Most commonly done with seeds (\eg, sesame). 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.}%
\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 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
dough is quickly dumped in water and then rolled in a bowl of seeds.
Afterward, the dough is directly baked in the preheated oven. These
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
coverings on the dough's surface. This works great too when covering your
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 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} \subsection{Swirled colors}
Mix-ins that change the color of the dough bring the opportunity for even more Mix-ins that change the color of the dough bring the opportunity for even more
creativity. creativity by merging the dough before shaping.
Separate the dough before adding a colorful ingredient. Combine the two (or Proceed and separate your base dough before adding a colorful ingredient. Bulk
ferment the dough in separate containers. Then Combine the two (or
more) differently colored doughs by laminating and stacking the colored sheets more) differently colored doughs by laminating and stacking the colored sheets
of dough before the last folding, just before shaping and bulk rise. 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
These can really become works of art. 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
% https://www.reddit.com/r/Sourdough/comments/onynqm/sourdough_with_dried_raspberries_recipe_in/ layered featuring different colors, textures, and flavors.}.
% https://natashasbaking.com/blueberry-sourdough/
% https://www.reddit.com/r/Sourdough/comments/mot8vq/chocolate_sourdough_loaf/
% https://www.reddit.com/r/Sourdough/comments/13sdex9/fairy_bread_for_my_daughters_class_party_with/
% https://www.reddit.com/r/Sourdough/comments/keyx88/roasted_onion_and_garlic_loaf_this_loaf_didnt/
% https://myloveofbaking.com/rye-molasses-and-orange-sourdough/
% https://www.reddit.com/r/Sourdough/comments/qd3y4k/pick_your_player_miso_sesame_or_cranberry_walnut/
% https://www.reddit.com/r/Sourdough/comments/lziedg/10_spelt_flour_80_hydration_50_buttermilk_50/
% https://www.reddit.com/r/Sourdough/comments/lbrc4a/squid_ink_sourdough_with_sharp_cheddar_and/
% https://www.reddit.com/r/Sourdough/comments/na0zed/was_hoping_for_a_more_pronounced_purple_but_i/
% https://www.reddit.com/r/Sourdough/comments/10rzgif/sesame_and_poppyseed_64_hydration/
% https://www.reddit.com/r/Sourdough/comments/11lcgvr/sesame_seed_crusted_loaf_w_everything_bagel/

Binary file not shown.

After

Width:  |  Height:  |  Size: 741 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

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,13 +1,37 @@
\chapter{Non wheat sourdough}%
\label{ch:non-wheat-sourdough}
\begin{quoting} \begin{quoting}
In this chapter you will learn how to make a basic sourdough bread In this chapter you will learn how to make a basic sourdough bread
using non-wheat flour. This includes all flour except spelt. using non-wheat flour, basically all flour except spelt.
The key difference between wheat and non-wheat flour is The key difference between wheat and non-wheat flour is
the quantity of gluten. Wheat and spelt feature a high amount the quantity of gluten, the former feature a high amount
of gluten. The non-wheat flours do not. In the case of rye flour, of gluten, while the non-wheat flours do not.
sugars called pentosans prevent gluten bonds from properly
forming~\cite{rye+pentosans}.
\end{quoting} \end{quoting}
The whole process (see Flowchart~\ref{flc:non-wheat-sourdough}) is a lot
easier: you mix the ingredients and wait for a certain period until the dough
has reached the level of acidity that you like. Afterward, you shape the
dough or pour it into a loaf pan. After a short proofing period, the bread can
be baked. Due to the lack of gluten development, the final bread will feature
a denser crumb compared to wheat, as you can see in
Picture~\ref{fig:rye-crumb}.
\begin{flowchart}[!htb]
\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{flowchart}
For non-wheat flours---including rye, emmer, and einkorn---no gluten
development has to be done, meaning there is no kneading, no
over-fermentation, and no issues with making flat bread. In the case of rye
flour, sugars called pentosans prevent gluten bonds from properly
forming~\cite{rye+pentosans}.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{final-bread} \includegraphics[width=\textwidth]{final-bread}
\caption[Sourdough rye bread]{A sourdough rye bread made using a loaf pan. \caption[Sourdough rye bread]{A sourdough rye bread made using a loaf pan.
@@ -16,49 +40,28 @@ forming~\cite{rye+pentosans}.
\label{fig:non-wheat-final-bread} \label{fig:non-wheat-final-bread}
\end{figure} \end{figure}
For these flours including rye, emmer, and einkorn, no gluten
development has to be done. This means there is no kneading,
no over-fermentation, and no issues with making flat bread.
The whole process
is a lot easier. You mix the ingredients and
wait for a certain period until the dough has
reached the level of acidity that you like. Afterward, you
shape the dough or pour it into a loaf pan. After a short proofing
period, the bread can be baked. Due to the lack
of gluten development, the final bread will feature a denser
crumb compared to wheat.
\begin{flowchart}[!htb]
\begin{center}
\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{fig:non-wheat-sourdough}
\end{center}
\end{flowchart}
This chapter will focus on making rye bread. The flour could This chapter will focus on making rye bread. The flour could
be replaced with einkorn or emmer based on your preference. be replaced with einkorn or emmer based on your preference.
The following recipe will make you 2 loaves: The following recipe will make you 2 loaves:
\begin{itemize}
\item \qty{1000}{\gram} of whole rye flour \begin{tabular}{r@{}rl@{}}
\item \qty{800}{\gram} of room temperature water (\qty{80}{\percent}) \qty{1000}{\gram} &~(\qty{100}{\percent}) & Whole rye flour\\
\item \qty{200}{\gram} of sourdough starter (\qty{20}{\percent}) \qty{800}{\gram} & (\qty{80}{\percent}) & Water at room temperature\\
\item \qty{20}{\gram} of salt (\qty{2}{\percent}) \qty{200}{\gram} & (\qty{20}{\percent}) & Sourdough starter\\
\end{itemize} \qty{20}{\gram} & (\qty{2}{\percent}) & Salt\\
\end{tabular}
The sourdough starter can be in an active or inactive state. If it has been The sourdough starter can be in an active or inactive state. If it has been
at room temperature for a week with no feedings then it will be okay, or at room temperature for a week with no feedings then it will be okay, same
if it has come right out of the fridge then still it will be no problem. if it has come right out of the fridge then still it will be no problem.
The dough is very forgiving. The dough is very forgiving.
If you follow the suggested dough from the recipe you are making a relatively If you follow the suggested quantities from the recipe you are making a
wet rye dough. It's so wet that it can only be made using a loaf pan. If relatively wet rye dough. It's so wet that it can only be made using a loaf
you want to make a freestanding rye bread, consider reducing the hydration pan. If you want to make a freestanding rye bread, consider reducing the
to around \qty{60}{\percent}. hydration to around~\qty{60}{\percent}.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{ingredients} \includegraphics[width=\textwidth]{ingredients}
@@ -68,12 +71,11 @@ to around \qty{60}{\percent}.
\label{fig:non-wheat-ingredients} \label{fig:non-wheat-ingredients}
\end{figure} \end{figure}
Mix together all the ingredients with your hands. You can also Mix together all the ingredients with your hands, or opt for a spatula to
opt for a spatula to simplify things. Rye flour itself is very simplify things. Rye flour itself is very sticky and unpleasant to mix by
sticky and unpleasant to mix by hand. The dough will stick hand, the dough will stick a lot to your hands. If you use a stiff starter, it
a lot to your hands. If you use a stiff starter, it can be could be easier to first dissolve it in the dough's water, then add the other
easier to dissolve it in the dough's water. Once dissolved, ingredients.
add the other ingredients.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{sticky-hands} \includegraphics[width=\textwidth]{sticky-hands}
@@ -84,7 +86,7 @@ add the other ingredients.
\label{fig:non-wheat-sticky-hands} \label{fig:non-wheat-sticky-hands}
\end{figure} \end{figure}
The goal of the mixing process is to homogenize the dough. There The goal of the mixing process is simply to homogenize the dough, there
is no need to develop any dough strength. Once you see that is no need to develop any dough strength. Once you see that
your sourdough starter has been properly incorporated, your your sourdough starter has been properly incorporated, your
dough is ready to begin bulk fermentation. dough is ready to begin bulk fermentation.
@@ -97,21 +99,11 @@ most of the nutrients have been eaten by your microorganisms.
You could let your dough sit for longer, but it wouldn't alter the You could let your dough sit for longer, but it wouldn't alter the
final flavor profile by much. final flavor profile by much.
I~recommend waiting until the dough has roughly increased by~\qty{50}{\percent} I~recommend waiting until the dough has roughly increased
in size. If you are daring, you can taste the dough by~\qty{50}{\percent} in size. If you are daring, you can taste the dough to
to get an idea of the acidity profile. The dough will likely get an idea of the acidity profile, it will likely taste very sour. However, a
taste very sour. However, a lot of the acid will evaporate lot of the acid will evaporate during the baking process, therefore the final
during the baking process. So the final loaf will not be loaf will not be as sour as the dough you are tasting.
as sour as the dough you are tasting.
Once you are happy with the acidity level, proceed to dividing
and shaping your dough. Shaping might not be possible if you opt
for the wetter dough. If you made a drier dough, use as much
flour as needed to dry the dough a little bit and form a dough ball.
There is no folding the dough. All you do is tuck it together
as much as is needed to apply the shape of your banneton.
For the wetter dough, use a spatula and pour as much dough as
needed into your greased loaf pan.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{crumb} \includegraphics[width=\textwidth]{crumb}
@@ -124,40 +116,45 @@ needed into your greased loaf pan.
\label{fig:rye-crumb} \label{fig:rye-crumb}
\end{figure} \end{figure}
Carefully spread the dough with a spatula in your loaf pan. You Once you are happy with the acidity level, proceed to dividing
can wet the spatula to make this process easier. Spread it and shaping your dough. If you made a drier dough, use as much
until the surface looks smooth and shiny. flour as needed to dry the dough a little bit and form a dough ball.
There is no folding the dough. All you do is tuck it together
as much as is needed to apply the shape of your banneton.
Shaping might not be possible if you opt for the wetter dough. Carefully spread
the dough with a spatula in your greased loaf pan, wetting the spatula to make
this process easier. Spread it until the surface looks smooth and shiny.
For proofing, I~recommend waiting around 60~minutes. An extended For proofing, I~recommend waiting around 60~minutes. An extended
proofing period does not make sense unless you want to further proofing period does not make sense unless you want to further
increase the dough's acidity. The dough will not become fluffier increase the dough's acidity. The dough will not become fluffier
the longer you proof. With the short proofing period, however, the longer you proof. With the short proofing period, however,
the dough will become a bit more homogenous. This way the final the dough will become a bit more homogeneous. This way the final
bread looks more uniform. The proofing period also allows the bread looks more uniform. The proofing period also allows the
dough to fully extend and fill the edges of the loaf pan. I~also 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 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 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 Once you are happy with the proofing stage, proceed and bake your dough
just like you'd normally do. For more details please refer to 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 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 dough is properly cooked. For this reason, it is best to use a thermometer
and measure the internal temperature. The bread is and measure the internal temperature. The bread is ready once the internal
ready once the internal temperature reaches \qty{92}{\degreeCelsius} (\qty{197}{\degF}). I~recommend temperature reaches \qty{92}{\degreeCelsius} (\qty{197}{\degF}). I~recommend
removing the bread from the loaf pan once it reaches the desired removing the bread from the loaf pan once it reaches the desired temperature,
temperature. Then you can continue baking the loaf without the pan and then continue baking the loaf without the pan and steam. This way you achieve
steam. This way you achieve a great crust all around your a great crust all around your loaf, and can bake as long as you like until you
loaf. You can bake as long as you like until you have achieved have achieved your crust color of choice. The darker, the more crunchy
your crust color of choice. The darker, the more crunchy the crust and the more flavor it offers. If you feel your dough might have
the crust and the more flavor it offers. If you feel your been overly acidic you can extend the baking time, as the longer you bake, the
dough might have been overly acidic, you can extend the baking time. more acidity will evaporate.
The longer you bake, the more acidity will evaporate.
This is one of my favorite breads to bake which I~eat on an This is one of my favorite breads to bake which I~eat on an
almost daily basis. The effort required to make bread like almost daily basis. The effort required to make bread like
this is much lower compared to a wheat-based dough. In some this is much lower compared to a wheat-based dough. In some
cases, I~extend the recipe and add additional sourdough discard cases, I~extend the recipe and add additional sourdough discard
to the dough. You can add as much discard as you like. The resulting to the dough. You can add as much discard as you like. The resulting
bread has a very complex but delicious flavor profile. bread will have a very complex but delicious flavor profile.

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}

View File

@@ -1,11 +1,11 @@
@article{raffaella+di+cagno, @article{raffaella+di+cagno,
author = {Di Cagno, Raffaella et al.}, author = {Di Cagno, Raffaella et al.},
title = {Proteolysis by sourdough lactic acid bacteria: title = {Proteolysis by sourdough lactic acid bacteria:
effects on wheat flour protein fractions and effects on wheat flour protein fractions and
gliadin peptides involved in human cereal intolerance}, gliadin peptides involved in human cereal intolerance},
journal = {Applied and environmental microbiology}, journal = {Applied and environmental microbiology},
publisher = {Dover}, publisher = {Dover},
volume = {68,2} volume = {68,2}
} }
@misc{too+hot+baking, @misc{too+hot+baking,
@@ -16,17 +16,17 @@
note = {Accessed: 2022-03-24} note = {Accessed: 2022-03-24}
} }
@article{rye-defects, @misc{rye-defects,
author = {Marie Oest et al.}, author = {Marie Oest et al.},
title = {Rye Bread Defects: Analysis of Composition and title = {Rye Bread Defects: Analysis of Composition and
Further Influence Factors as Determinants Further Influence Factors as Determinants
of Dry-Baking}, of Dry-Baking},
journal = {Applied and environmental microbiology}, journal = {Applied and environmental microbiology},
publisher = {Foods}, publisher = {Foods},
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}} howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
} }
@article{stiff+starter, @misc{stiff+starter,
title = {Stiff sourdough starter}, title = {Stiff sourdough starter},
author = {Hendrik Kleinwächter}, author = {Hendrik Kleinwächter},
howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}}, howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}},
@@ -34,7 +34,7 @@
note = {Accessed: 2022-04-26} note = {Accessed: 2022-04-26}
} }
@article{baking+twice, @misc{baking+twice,
title = {Baking your dough twice to make a sourer bread}, title = {Baking your dough twice to make a sourer bread},
author = {Hendrik Kleinwächter}, author = {Hendrik Kleinwächter},
howpublished = {\url{https://youtu.be/0v1QhtyUic4}}, howpublished = {\url{https://youtu.be/0v1QhtyUic4}},
@@ -42,7 +42,7 @@
note = {Accessed: 2022-04-28} note = {Accessed: 2022-04-28}
} }
@article{more+active+starter, @misc{more+active+starter,
title = {4 tips to make a more active starter}, title = {4 tips to make a more active starter},
author = {Hendrik Kleinwächter}, author = {Hendrik Kleinwächter},
howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}}, howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}},
@@ -50,7 +50,7 @@
note = {Accessed: 2022-04-29} note = {Accessed: 2022-04-29}
} }
@article{baking+powder+reduce-acidity, @misc{baking+powder+reduce-acidity,
title = {Use baking powder to reduce dough acidity}, title = {Use baking powder to reduce dough acidity},
author = {Hendrik Kleinwächter}, author = {Hendrik Kleinwächter},
howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}}, howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}},
@@ -58,7 +58,7 @@
note = {Accessed: 2022-04-29} note = {Accessed: 2022-04-29}
} }
@article{food+safe+ph, @misc{food+safe+ph,
title = {Acidified Foods: Food Safety Considerations for Food Processors}, title = {Acidified Foods: Food Safety Considerations for Food Processors},
author = {Felix H. Barron and Angela M. Fraser}, author = {Felix H. Barron and Angela M. Fraser},
howpublished = {\url{https://www.intechopen.com/chapters/41654}}, howpublished = {\url{https://www.intechopen.com/chapters/41654}},
@@ -75,7 +75,7 @@
year = {2022} year = {2022}
} }
@article{liquid+on+starter, @misc{liquid+on+starter,
title = {Acidified Foods: Food Safety Considerations for Food Processors}, title = {Acidified Foods: Food Safety Considerations for Food Processors},
author = {Sourdoughhome}, author = {Sourdoughhome},
howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}}, howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}},
@@ -83,41 +83,149 @@
note = {Accessed: 2022-04-29} note = {Accessed: 2022-04-29}
} }
@article{acetic+acid+production, @misc{acetic+acid+production,
title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.}, title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.},
author = {chm.bris.ac.uk}, author = {chm.bris.ac.uk},
howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}}, howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}},
note = {Accessed: 2022-04-29} note = {Accessed: 2022-04-29}
} }
@article{jordan+bread, @misc{jordan+bread,
author = {Amaia Arranz-Otaegui et al.}, author = {Amaia Arranz-Otaegui et al.},
title = {Archaeobotanical evidence reveals the origins of bread 14,400 years ago in northeastern Jordan}, title = {Archaeobotanical evidence reveals the origins of
journal = {Proc Natl Acad Sci USA}, bread 14,400 years ago in northeastern Jordan},
year = {2018}, journal = {Proc Natl Acad Sci USA},
year = {2018},
howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}} howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}}
} }
@article{vienna+breadrolls, @misc{fleischmann+history,
author = {Eben Norton Horsford}, author = {Fleischmann History},
title = {Report on Vienna bread}, title = {History of Fleischmann's},
year = {1875}, howpublished = {\url{https://www.fleischmannsyeast.com/our-history/}},
note = {Accessed: 2023-12-04}
}
@misc{evans+mill,
author = {Jeremy Norman},
title = {Oliver Evans Builds the First Automated Flour Mill: Origins
of the Integrated and Automated Factory},
howpublished = {\url{https://www.historyofinformation.com/detail.php?entryid=3567}},
note = {Accessed: 2023-12-04}
}
@misc{first+mixer,
author = {United States Patent office},
title = {Eastman Mixer for cream, eggs and liquors},
howpublished = {\url{https://patents.google.com/patent/US330829}},
note = {Accessed: 2023-12-04}
}
@misc{egypt+beer,
author = {Smithsonian Magazine},
title = {Worlds Oldest Industrial-Scale Brewery Found in Egypt},
howpublished = {\url{https://www.smithsonianmag.com/smart-news/worlds-oldest-industrial-scale-brewery-found-egypt-180977026/}},
note = {Accessed: 2023-12-04}
}
@misc{kitchenaid+history,
author = {KitchenAid},
title = {KitchenAid Brand History},
howpublished = {\url{https://www.kitchenaid.com/100year/history.html}},
note = {Accessed: 2023-12-04}
}
@misc{aboriginal+grinding+stones,
author = {First Peoples - State Relations},
title = {Fact sheet: Aboriginal grinding stones},
howpublished = {\url{https://www.firstpeoplesrelations.vic.gov.au/fact-sheet-aboriginal-grinding-stones}},
note = {Accessed: 2023-12-04}
}
@book{history+mills,
title = {Archaeological Evidence for Early Water-Mills. An Interim Report},
journal = {History of Technology},
number = {10},
author = {Wikander, Örjan},
year = {1985},
pages = {151--179}
}
@book{mills+scandinavia,
title = {Waterwheels and Windmills: Five machines that changed the world},
author = {Mark, Denny},
year = {2007},
pages = {36}
}
@article{green+revolution,
author = {Borlaug, Norman},
title = {Contributions of conventional plant breeding to food production},
journal = {Science},
volume = {219},
number = {4585},
pages = {689-693},
year = {1983},
doi = {10.1126/science.219.4585.689}
}
@article{switzerland+bread,
author = {Pasquale Catzeddu},
title = {Flour and Breads and their Fortification in Health and Disease Prevention},
pages = {37--46},
year = {2011}
}
@book{Yong+2017,
place = {London},
title = {I contain multitudes: The microbes within US and a grander view of life},
publisher = {Vintage},
author = {Yong, Ed},
year = {2017},
pages = {5--9}
}
@book{Yong+2017+Leeuwen,
place = {London},
title = {I contain multitudes: The microbes within US and a grander view of life},
publisher = {Vintage},
author = {Yong, Ed},
year = {2017},
pages = {39}
}
@article{egyptian+bread,
title = {Investigation of ancient Egyptian baking
and brewing methods by correlative microscopy},
volume = {273},
doi = {10.1126/science.273.5274.488},
number = {5274},
journal = {Science},
author = {Samuel, Delwen},
year = {1996},
pages = {488490}
}
@misc{vienna+breadrolls,
author = {Eben Norton Horsford},
title = {Report on Vienna bread},
year = {1875},
howpublished = {\url{https://archive.org/details/bub_gb_6jRDAAAAIAAJ/page/n100/mode/2up}}, howpublished = {\url{https://archive.org/details/bub_gb_6jRDAAAAIAAJ/page/n100/mode/2up}},
note = {Accessed: 2022-05-02} note = {Accessed: 2022-05-02}
} }
@article{coeliac+disease, @misc{coeliac+disease,
author = {Giovanni Battista Gasbarrini et al.}, author = {Giovanni Battista Gasbarrini et al.},
title = {Coeliac disease: an old or a new disease? History of a pathology}, title = {Coeliac disease: an old or a new disease? History of a pathology},
year = {2014}, year = {2014},
journal = {Intern Emerg Med.}, journal = {Intern Emerg Med.},
howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}} howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}}
} }
@article{interview+karl+de+smedt, @misc{interview+karl+de+smedt,
author = {Hendrik Kleinwächter}, author = {Hendrik Kleinwächter},
title = {Interview with Karl de Smedt}, title = {Interview with Karl de Smedt},
year = {2021}, year = {2021},
howpublished = {\url{https://www.youtube.com/watch?v=vfDIfkqBCuk}}, howpublished = {\url{https://www.youtube.com/watch?v=vfDIfkqBCuk}},
note = {Accessed: 2022-05-06} note = {Accessed: 2022-05-06}
} }
@@ -146,7 +254,8 @@
@article{effects+oxygen+yeast+growth, @article{effects+oxygen+yeast+growth,
author = {Hiroshi Kuriyama et al.}, author = {Hiroshi Kuriyama et al.},
title = {Effects of oxygen supply on yeast growth and metabolism in continuous fermentation}, title = {Effects of oxygen supply on yeast growth
and metabolism in continuous fermentation},
year = {1993}, year = {1993},
journal = {Journal of Fermentation and Bioengineering}, journal = {Journal of Fermentation and Bioengineering},
publisher = {Elsevier}, publisher = {Elsevier},
@@ -165,7 +274,8 @@
@article{leaf+surface+sugars+epiphytes, @article{leaf+surface+sugars+epiphytes,
author = {Julien Mercier}, author = {Julien Mercier},
title = {Role of Leaf Surface Sugars in Colonization of Plants by Bacterial Epiphytes}, title = {Role of Leaf Surface Sugars in Colonization of
Plants by Bacterial Epiphytes},
year = {2000}, year = {2000},
journal = {Applied and Environmental Microbiology}, journal = {Applied and Environmental Microbiology},
volume = {66,1} volume = {66,1}
@@ -173,7 +283,8 @@
@article{yeasts+biocontrol+agent, @article{yeasts+biocontrol+agent,
author = {Gianluca Bleve et al.}, author = {Gianluca Bleve et al.},
title = {Isolation of epiphytic yeasts with potential for biocontrol of Aspergillus carbonarius and A. niger on grape}, title = {Isolation of epiphytic yeasts with potential for
biocontrol of Aspergillus carbonarius and A. niger on grape},
year = {2006}, year = {2006},
journal = {International Journal of Food Microbiology}, journal = {International Journal of Food Microbiology},
volume = {108,2} volume = {108,2}
@@ -181,13 +292,14 @@
@article{saccharomyces+cerevisiae+pathogen, @article{saccharomyces+cerevisiae+pathogen,
author = {Sabine Gognies et al.}, author = {Sabine Gognies et al.},
title = {Saccharomyces cerevisiae, a potential pathogen towards grapevine, Vitis vinifera}, title = {Saccharomyces cerevisiae, a potential pathogen
towards grapevine, Vitis vinifera},
year = {2001}, year = {2001},
journal = {FEMS Microbiology Ecology}, journal = {FEMS Microbiology Ecology},
volume = {37,2} volume = {37,2}
} }
@article{pickled+foods+expiration, @misc{pickled+foods+expiration,
title = {Hardcore hibernation}, title = {Hardcore hibernation},
author = {David Adam}, author = {David Adam},
howpublished = {\url{https://www.nature.com/articles/news001019-9}}, howpublished = {\url{https://www.nature.com/articles/news001019-9}},
@@ -195,7 +307,7 @@
note = {Accessed: 2022-06-23} note = {Accessed: 2022-06-23}
} }
@article{old+spores, @misc{old+spores,
title = {Do Pickles Go Bad?}, title = {Do Pickles Go Bad?},
author = {thrillist.com}, author = {thrillist.com},
howpublished = {\url{https://www.thrillist.com/eat/nation/do-pickles-go-bad-refrigerator-pickles-shelf-life}}, howpublished = {\url{https://www.thrillist.com/eat/nation/do-pickles-go-bad-refrigerator-pickles-shelf-life}},
@@ -203,7 +315,7 @@
note = {Accessed: 2022-06-23} note = {Accessed: 2022-06-23}
} }
@article{mold+anaerobic, @misc{mold+anaerobic,
title = {Differences between Yeasts and Molds}, title = {Differences between Yeasts and Molds},
author = {Sagar Aryal}, author = {Sagar Aryal},
howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}}, howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}},
@@ -212,7 +324,8 @@
} }
@article{effects+temperature+flavor+wine, @article{effects+temperature+flavor+wine,
title = {Effects of Fermentation Temperature on Key Aroma Compounds and Sensory Properties of Apple Wine}, title = {Effects of Fermentation Temperature on Key Aroma
Compounds and Sensory Properties of Apple Wine},
author = {Bangzhu Peng et al.}, author = {Bangzhu Peng et al.},
year = {2015}, year = {2015},
journal = {Food science}, journal = {Food science},
@@ -220,7 +333,9 @@
} }
@article{effects+temperature+flavor, @article{effects+temperature+flavor,
title = {Analysis of domestic refrigerator temperatures and home storage time distributions for shelf-life studies and food safety risk assessment}, title = {Analysis of domestic refrigerator temperatures and home
storage time distributions for shelf-life
studies and food safety risk assessment},
author = {Anna Roccato et al.}, author = {Anna Roccato et al.},
year = {2017}, year = {2017},
journal = {Food Research}, journal = {Food Research},
@@ -228,7 +343,8 @@
} }
@article{lactobacillus+sanfrancisco, @article{lactobacillus+sanfrancisco,
title = {Lactobacillus sanfrancisco a key sourdough lactic acid bacterium: a review}, title = {Lactobacillus sanfrancisco a key sourdough
lactic acid bacterium: a review},
author = {M. Gobbetti et al.}, author = {M. Gobbetti et al.},
year = {1997}, year = {1997},
journal = {Food Microbiology}, journal = {Food Microbiology},
@@ -244,7 +360,8 @@
} }
@article{shelflife+acidity, @article{shelflife+acidity,
title = {The effect of pH on shelf-life of pork during aging and simulated retail display}, title = {The effect of pH on shelf-life of pork during
aging and simulated retail display},
author = {S F Holmer et al.}, author = {S F Holmer et al.},
year = {2009}, year = {2009},
journal = {Meat Science}, journal = {Meat Science},
@@ -252,7 +369,8 @@
} }
@article{temperature+bacteria+corn, @article{temperature+bacteria+corn,
title = {Effect of temperature (5-25°C) on epiphytic lactic acid bacteria populations and fermentation of whole-plant corn silage}, title = {Effect of temperature (5-25°C) on epiphytic lactic acid
bacteria populations and fermentation of whole-plant corn silage},
author = {Y Zhou et al.}, author = {Y Zhou et al.},
year = {2016}, year = {2016},
journal = {Applied Microbiology and Biotechnology}, journal = {Applied Microbiology and Biotechnology},
@@ -260,7 +378,8 @@
} }
@article{acetic+acid+oxygen, @article{acetic+acid+oxygen,
title = {Effects of Oxygen Availability on Acetic Acid Tolerance and Intracellular pH in Dekkera bruxellensis}, title = {Effects of Oxygen Availability on Acetic Acid Tolerance
and Intracellular pH in Dekkera bruxellensis},
author = {Claudia Capusoni et al.}, author = {Claudia Capusoni et al.},
year = {2016}, year = {2016},
journal = {Applied Microbiology and Biotechnology}, journal = {Applied Microbiology and Biotechnology},
@@ -268,14 +387,15 @@
} }
@article{starch+damage+flour, @article{starch+damage+flour,
title = {A review of milling damaged starch: Generation, measurement, functionality and its effect on starch-based food systems}, title = {A review of milling damaged starch: Generation, measurement,
functionality and its effect on starch-based food systems},
author = {Qingfa Wang et al.}, author = {Qingfa Wang et al.},
year = {2020}, year = {2020},
journal = {Food chemistry}, journal = {Food chemistry},
volume = {15,31} volume = {15,31}
} }
@article{how+does+gluten+work, @misc{how+does+gluten+work,
title = {Gluten: How Does It Work?}, title = {Gluten: How Does It Work?},
author = {Modernist Cuisine}, author = {Modernist Cuisine},
howpublished = {\url{https://modernistcuisine.com/mc/gluten-how-does-it-work/}}, howpublished = {\url{https://modernistcuisine.com/mc/gluten-how-does-it-work/}},
@@ -284,87 +404,105 @@
} }
@article{bassinage+technique, @misc{bassinage+technique,
title = {The Bassinage Method}, title = {The Bassinage Method},
author = {The Sourdough School}, author = {The Sourdough School},
howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}}, howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}},
year = {2022}, year = {2022},
note = {Accessed: 2022-12-22} note = {Accessed: 2022-12-22}
} }
@article{oxidization+dough, @misc{oxidization+dough,
title = {Enzymes and pH matter, troubleshoot my loaf}, title = {Enzymes and pH matter, troubleshoot my loaf},
author = {Bread Blog}, author = {Bread Blog},
howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}}, howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}},
year = {2022}, year = {2022},
note = {Accessed: 2022-12-28} note = {Accessed: 2022-12-28}
} }
@article{stretch+and+fold+technique, @misc{stretch+and+fold+technique,
title = {How And When To Stretch And Fold Your Sourdough}, title = {How And When To Stretch And Fold Your Sourdough},
author = {The Bread Code YouTube}, author = {The Bread Code YouTube},
howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}}, howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}},
year = {2022}, year = {2022},
note = {Accessed: 2023-01-06} note = {Accessed: 2023-01-06}
} }
@article{rye+pentosans, @article{rye+pentosans,
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka}, author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik
journal = {Food Research International}, and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
keywords = {Rye bread, Wholemeal, Pentosans, Starch}, journal = {Food Research International},
number = {8}, keywords = {Rye bread, Wholemeal, Pentosans, Starch},
pages = {2045-2051}, number = {8},
title = {The role of pentosans and starch in baking of wholemeal rye bread}, pages = {2045-2051},
url = {https://www.sciencedirect.com/science/article/pii/S0963996910002127}, title = {The role of pentosans and starch in baking of wholemeal rye bread},
volume = {43}, url = {https://www.sciencedirect.com/science/article/pii/S0963996910002127},
year = {2010} volume = {43},
year = {2010}
} }
@article{storing+bread, @article{storing+bread,
author = {King Author}, author = {King Author},
title = {Storing yeast based bread}, title = {Storing yeast based bread},
url = {https://www.kingarthurbaking.com/blog/2020/07/08/the-best-way-to-store-yeast-bread}, url = {https://www.kingarthurbaking.com/blog/2020/07/08/the-best-way-to-store-yeast-bread},
note = {Accessed: 2023-02-03} note = {Accessed: 2023-02-03}
} }
@misc{wheat+kernel, @misc{wheat+kernel,
author = {W. Berghoff}, author = {W. Berghoff},
title = {A wheat kernel and its nutritional value.}, title = {A wheat kernel and its nutritional value.},
url = {https://en.wikipedia.org/wiki/Whole_grain#/media/File:Wheat-kernel_nutrition.svg}, url = {https://en.wikipedia.org/wiki/Whole_grain#/media/File:Wheat-kernel_nutrition.svg},
note = {Accessed: 2023-03-30} note = {Accessed: 2023-03-30}
} }
@article{enzymatic+activity+whole+wheat, @article{enzymatic+activity+whole+wheat,
author = {Rachana Poudel}, author = {Rachana Poudel},
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour}, title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
year = {2018}, year = {2018},
page = {67}, page = {67}
} }
@article{review+of+sourdough+starters, @article{review+of+sourdough+starters,
author = {Calvert MD, Madden AA et al.}, author = {Calvert MD, Madden AA et al.},
title = {A review of sourdough starters: ecology, practices, and sensory quality with applications for baking and recommendations for future research}, title = {A review of sourdough starters: ecology, practices, and
year = {2021}, sensory quality with applications for baking
page = {3}, and recommendations for future research},
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36}, year = {2021},
note = {Accessed: 2023-03-30} page = {3},
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
note = {Accessed: 2023-03-30}
} }
@article{gluten+development+temperatures, @article{gluten+development+temperatures,
author = {Koga S., Böcker U. et al.}, author = {Koga S., Böcker U. et al.},
title = {Influence of temperature during grain filling on gluten viscoelastic properties and gluten protein composition.}, title = {Influence of temperature during grain filling on gluten
year = {2015}, viscoelastic properties and gluten protein composition.},
year = {2015},
journal = {Journal of the Science of Food and Agriculture}, journal = {Journal of the Science of Food and Agriculture},
number = {96}, number = {96},
pages = {122-130} pages = {122-130}
} }
@article{milling+commercial+home+mill+comparison, @article{milling+commercial+home+mill+comparison,
author = {Ross, Andrew S. and Kongraksawech, Teepakorn}, author = {Ross, Andrew S. and Kongraksawech, Teepakorn},
journal = {Cereal Chemistry}, journal = {Cereal Chemistry},
number = {2}, number = {2},
pages = {239-252}, pages = {239-252},
title = {Characterizing whole-wheat flours produced using a commercial stone mill, laboratory mills, and household single-stream flour mills}, title = {Characterizing whole-wheat flours produced using a
volume = {95}, commercial stone mill, laboratory mills, and household
year = {2018} single-stream flour mills},
volume = {95},
year = {2018}
}
@article{freezing+toasting+bread,
title = {The impact of freezing and toasting on the
glycaemic response of White Bread},
volume = {62},
doi = {10.1038/sj.ejcn.1602746},
number = {5},
journal = {European Journal of Clinical Nutrition},
author = {Burton, P and Lightowler, H J},
year = {2007},
pages = {594599}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -1,19 +1,15 @@
\chapter{Sourdough starter types}%
\label{ch:starter-types}
\begin{quoting} \begin{quoting}
In this chapter of the book we will have a closer look In this chapter of the book we will have a closer look
at different sourdough starter types and their respective at different sourdough starter types, and their respective
traits. traits and usage. They are mostly characterized by their hydration
level, and this will provide a trade-off between acidity, volume increase and
the gluten level of your flour.
\end{quoting} \end{quoting}
\begin{table}[htp!] \section{Introduction}%
\begin{center} \label{sec:starter-types-intro}
\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 level of water (hydration) that is used when
feeding the starter.}%
\label{tab:starter-types-comparison}
\end{center}
\end{table}
Depending on the flour you have at hand, the type of starter changes. With more Depending on the flour you have at hand, the type of starter changes. With more
bacterial activity you have more gluten consumption of your microbes. So if bacterial activity you have more gluten consumption of your microbes. So if
@@ -27,7 +23,26 @@ very strong wheat flour then you can try to play with a liquid sourdough
starter. The key difference between all of the starters is how much water starter. The key difference between all of the starters is how much water
is used in the starter. The regular starter has a 1:1 relationship of flour is used in the starter. The regular starter has a 1:1 relationship of flour
to water. The liquid starter has a 5:1 water-to-flour ratio, and the stiff to water. The liquid starter has a 5:1 water-to-flour ratio, and the stiff
starter has half the water as flour. starter has half as much water as flour, as summarized in
Table~\ref{tab:starter-types-comparison}.
\begin{table}[htp!]
\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{table}
You can change your starter type by just adjusting the feeding ratio of how
much flour and water you use. I~frequently change my starter type from
regular to liquid and then back to a stiff starter. After changing the
environment of your microbes, apply feedings at the same ratio over a couple of
days so that they can adapt to the new environment. I~typically see
changes after a single feeding, but I~recommend 2 to 3 feedings, one feeding per
day, to see a stronger effect.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-types} \includegraphics[width=\textwidth]{sourdough-starter-types}
@@ -39,28 +54,23 @@ starter has half the water as flour.
\label{fig:starter-types} \label{fig:starter-types}
\end{figure} \end{figure}
You can change your starter type by just adjusting the feeding ratio of how
much flour and water you use. I~frequently change my starter type from
regular to liquid and then back to a stiff starter. After changing the
environment of your microbes, apply feedings at the same ratio over a couple of
days so that they can adapt to the new environment. I~typically see
changes after a single feeding, but I~recommend 2 to 3 feedings, one feeding per
day, to see a stronger effect.
Your dough is generally just a big sourdough starter. So your starter is going Your dough is generally just a big sourdough starter. So your starter is going
to adapt and regrow inside of your main dough. But you can influence the to adapt and regrow inside of your main dough. But you can influence the
properties that your starter carries over to your main dough. If you have more properties that your starter carries over to your main dough. If you have more
bacterial fermentation, then your dough will also have slightly more bacterial bacterial fermentation, then your dough will also have slightly more bacterial
fermentation. If you have more yeast fermentation, then your main dough will fermentation. If you have more yeast fermentation, then your main dough will
have slightly more yeast fermentation. This is important to know when you are have slightly more yeast fermentation. This is important to know when you are
working with a more mature unfed starter. Let's say your starter had last been working with a more mature unfed starter.
fed 48~hours ago. Chances are that your bacteria is very active while the
Let's say your starter had last been
fed 48~hours ago. Chances are that your bacteria are very active while the
yeast could be dormant. In such a case you can skip feeding your starter yeast could be dormant. In such a case you can skip feeding your starter
before making another dough. Just use a very tiny amount of starter. For \qty{1000}{\gram} before making another dough. Just use a very tiny amount of starter. For
of flour I~would take around \qty{10}{\gram} of starter (\qty{1}{\percent} in terms of baker's \qty{1}{\kg} of flour I~would take around \qty{10}{\gram} of starter
(\qty{1}{\percent} in terms of baker's
math). If my starter is very young and had just been fed 6 to 8~hours ago I~might math). If my starter is very young and had just been fed 6 to 8~hours ago I~might
end up going up to \qty{20}{\percent} of starter. Remember that your dough is nothing end up going up to \qty{20}{\percent} of starter. As mentioned earlier,
remember that your dough is nothing
else other than a big starter. It will tremendously help you to figure out else other than a big starter. It will tremendously help you to figure out
your best next steps. your best next steps.
@@ -74,7 +84,8 @@ out during baking and no longer have the typical characteristics (fluffy crumb
structure). A stronger flour with more gluten is thus advised. It allows for structure). A stronger flour with more gluten is thus advised. It allows for
a longer fermentation before most gluten is broken down. a longer fermentation before most gluten is broken down.
\section{Regular starter} \section{Regular starter}%
\label{sec:regular-starter}
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter.jpg} \includegraphics[width=\textwidth]{sourdough-starter.jpg}
@@ -86,8 +97,8 @@ a longer fermentation before most gluten is broken down.
The regular sourdough starter is made at a hydration of around \qty{100}{\percent}. The regular sourdough starter is made at a hydration of around \qty{100}{\percent}.
This means the starter has equal parts of flour and water. This is the most This means the starter has equal parts of flour and water. This is the most
common and most universal sourdough starter there is. The starter has a good common and most universal sourdough starter there is. The starter has a good
balance of yeast and bacteria. After a feeding, the volume increases and balance of yeast and bacteria. After a feeding, the volume of the dough
increases. After it reaches a certain peak, it will start to collapse again. greatly increases. After it reaches a certain peak, it will start to collapse again.
The best way to judge whether the starter is ready is to look at signs such as The best way to judge whether the starter is ready is to look at signs such as
air pockets on the edges of your container. Also use the nose to evaluate the air pockets on the edges of your container. Also use the nose to evaluate the
@@ -100,7 +111,7 @@ A regular starter is a perfect choice to use when utilizing stronger wheat or sp
It also nicely works with rye, emmer or einkorn. If you only have a weak flour It also nicely works with rye, emmer or einkorn. If you only have a weak flour
at hand with less gluten, this starter might cause issues. As you tend to have at hand with less gluten, this starter might cause issues. As you tend to have
quite some bacterial activity, gluten is going to be broken down fast. When quite some bacterial activity, gluten is going to be broken down fast. When
using the starter, use around 1 to \qty{20}{\percent} starter based on the flour of your using the starter, use around \qtyrange{1}{20}{\percent} starter based on the flour of your
dough. dough.
Depending on the bacteria cultivated, a regular starter either has a lactic (dairy), Depending on the bacteria cultivated, a regular starter either has a lactic (dairy),
@@ -108,34 +119,35 @@ a vinegary (acetic) or mix of both flavor profiles. You can adjust your
starter's flavor by changing the type to a liquid starter. starter's flavor by changing the type to a liquid starter.
\section{Liquid starter}% \section{Liquid starter}%
\label{section:liquid-starter} \label{sec:liquid-starter}
\begin{figure}[!htb] \begin{figure}[!htb]
\begin{center} \centering
\includegraphics[width=0.5\textwidth]{sourdough-starter-liquid.jpg} \includegraphics[width=0.5\textwidth]{sourdough-starter-liquid.jpg}
\caption[Liquid starter]{A liquid sourdough starter features a high level of \caption[Liquid starter]{A liquid sourdough starter features a high level of
water. The high water amount boosts lactic acid producing bacteria. water. The high water amount boosts lactic acid producing bacteria.
After a while the liquid and flour start to separate. Bubbles on the 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.}% side of the flour indicate that the starter is ready to be used.}%
\label{fig:liquid-sourdough-starter} \label{fig:liquid-sourdough-starter}
\end{center}
\end{figure} \end{figure}
\begin{figure}[!htb] \begin{flowchart}[!htb]
\begin{center} \centering
\input{figures/fig-liquid-starter-conversion.tex} \input{figures/fig-liquid-starter-conversion.tex}
\caption[Converting to a liquid starter]{The process to convert your regular \caption[Converting to a liquid starter]{The process to convert your regular
or stiff starter into a liquid starter. The whole process takes around 3 or stiff starter into a liquid starter. The whole process takes around
days. The longer you maintain your starter at the suggested hydration 3~days. The longer you maintain your starter at the suggested hydration
level, the more adapted your microorganisms become. It is recommended to level, the more adapted your microorganisms become. It is recommended to
keep a backup of your original starter as the liquid environment will keep a backup of your original starter as the liquid environment will
select anaerobic microorganisms. This boosts bacteria that create lactic select anaerobic microorganisms. This boosts bacteria that create lactic
acid rather than acetic acid. The resulting acidity will be perceived as acid rather than acetic acid. The resulting acidity will be perceived as
milder.}% milder. When beginning with a liquid starter your stiff starter will
\label{fig:liquid-starter-conversion} feature mild dairy notes. When beginning this process with a regular
\end{center} starter your created stiff starter will feature both dairy
\end{figure} and vinegary notes.}%
\label{flc:liquid-starter-conversion}
\end{flowchart}
The liquid starter is made at a hydration of around \qty{500}{\percent}. This means The liquid starter is made at a hydration of around \qty{500}{\percent}. This means
the starter has much more water than flour. The additional layer of water on the starter has much more water than flour. The additional layer of water on
@@ -145,13 +157,17 @@ By introducing this layer of water, less oxygen is available throughout the
course of fermentation. This means that your starter will no longer be course of fermentation. This means that your starter will no longer be
producing acetic acid. The heterofermentative lactic acid bacteria will thrive producing acetic acid. The heterofermentative lactic acid bacteria will thrive
in this environment. This is a neat little trick to change your starter's 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 flavor profile from vinegary to lactic. Your starter is going to develop dairy
dairy creamy notes. Interestingly, when changing the hydration again, your starter creamy notes. Interestingly, when changing the hydration again, your starter
is going to maintain the liquid starter flavor profile, but then benefit again is going to maintain the liquid starter flavor profile, but then benefit again
from enhanced yeast activity. The liquid starter conversion is non reversible. from enhanced yeast activity. The liquid starter conversion is irreversible.
So ideally keep a backup of your stiff or regular starter. 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.
To commence with the To begin with the
conversion, simply take around \qty{1}{\gram} of your starter, mix with \qty{5}{\gram} flour and conversion, simply take around \qty{1}{\gram} of your starter, mix with \qty{5}{\gram} flour and
\qty{25}{\gram} water. Stir everything together properly. After a few minutes the flour is \qty{25}{\gram} water. Stir everything together properly. After a few minutes the flour is
going to start settling in at the bottom of your jar. Repeat this process over going to start settling in at the bottom of your jar. Repeat this process over
@@ -173,12 +189,12 @@ and I~use \qty{50}{\gram} of starter, then I~would proceed and only use \qty{550
water. water.
This type of starter is also an excellent mold combatant. As you are removing This type of starter is also an excellent mold combatant. As you are removing
oxygen from the equation, aerobic mold can not properly grow. If your starter oxygen from the equation, aerobic mold cannot properly grow. If your starter
has a mold problem then the liquid conversion could be the remedy. Take a has a mold problem then the liquid conversion could be the remedy. Take a
piece of your starter where you suspect mold growth. Apply the conversion piece of your starter where you suspect mold growth. Apply the conversion
as mentioned before. The mold will likely sporulate as it runs out of food. as mentioned before. The mold will likely sporulate as it runs out of food.
With each new feeding you are reducing the mold spores. The spores can no With each new feeding you are reducing the mold spores. The spores can no
longer reactivate as they can not do so in the anaerobic conditions. longer reactivate as they cannot do so in the anaerobic conditions.
The liquid on top of your starter is an excellent resource that you could use The liquid on top of your starter is an excellent resource that you could use
to make sauces. If you feel you would like to add a little bit of acidity, to make sauces. If you feel you would like to add a little bit of acidity,
@@ -186,14 +202,16 @@ drain the liquid part on your starter and use it. I~have used it numerous
times to make lacto-fermented hot sauces. times to make lacto-fermented hot sauces.
\section{Stiff starter}% \section{Stiff starter}%
\label{section:stiff-starter} \label{sec:stiff-starter}
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-stiff.jpg} \includegraphics[width=\textwidth]{sourdough-starter-stiff.jpg}
\caption[Stiff starter upside-down]{A stiff sourdough starter that I~used to \caption[Stiff starter upside-down]{A stiff sourdough starter that I~used to
make a Stollen dough for Christmas. Note the bubbles on the edge of the make a Stollen dough for Christmas. Note the bubbles on the edge of the
container. The dough does not fall out of the jar.}% container. The dough does not fall out of the jar. The moment
\label{fig:stiff-sourdough-starter} the gluten structure breaks down due to fermentation the starter
will ultimately fall in the jar.}%
\label{flc:stiff-sourdough-starter}
\end{figure} \end{figure}
The stiff starter is the driest of all the starters. It has a hydration of The stiff starter is the driest of all the starters. It has a hydration of
@@ -207,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 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. 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 When the mixture is too dry, the fermentation speed is greatly reduced and
the starter will seem inactive. The starter should be much drier the starter will seem inactive. The starter should be much drier than a
than a regular starter, but also not too dry. Refer to figure~\ref{fig:stiff-starter-dry-check} regular starter, but also not too dry. Refer to
for a visual example of the starter's required hydration level. Figure~\ref{fig:stiff-starter-dry-check} for a visual example of the starter's
required hydration level.
\begin{figure}[!htb] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{stiff-starter-dry-check.jpg} \includegraphics[width=\textwidth]{stiff-starter-dry-check.jpg}
@@ -220,8 +239,8 @@ for a visual example of the starter's required hydration level.
\label{fig:stiff-starter-dry-check} \label{fig:stiff-starter-dry-check}
\end{figure} \end{figure}
\begin{figure}[!htb] \begin{flowchart}[!htb]
\begin{center} \centering
\input{figures/fig-stiff-starter-conversion.tex} \input{figures/fig-stiff-starter-conversion.tex}
\caption[Converting to a stiff starter]{The process to convert your regular \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 starter into a stiff starter. The whole process takes around 3 days. The
@@ -231,8 +250,7 @@ for a visual example of the starter's required hydration level.
\qty{50}{\percent} hydration level for the starter. If the dough is too \qty{50}{\percent} hydration level for the starter. If the dough is too
stiff consider increasing this to \qty{60}{\percent}.}% stiff consider increasing this to \qty{60}{\percent}.}%
\label{fig:stiff-starter-conversion} \label{fig:stiff-starter-conversion}
\end{center} \end{flowchart}
\end{figure}
In the stiffer environment the yeast thrives more. This means you will have In the stiffer environment the yeast thrives more. This means you will have
more \ch{CO2} production and less acid production. In my tests this is a game more \ch{CO2} production and less acid production. In my tests this is a game
@@ -258,13 +276,13 @@ production.
\label{fig:stollen} \label{fig:stollen}
\end{figure} \end{figure}
I~then proceeded and bought a cheap low cake flour in my nearby supermarket. I~then proceeded and bought a cheap low-gluten cake flour in my nearby supermarket.
This flour before had caused me massive headaches before. I~made a sourdough bread This flour before had caused me massive headaches in the past. I~made a sourdough bread
exactly how I~would normally do. I~had to reduce the hydration a bit as a low exactly how I~would normally do---I~had to reduce the hydration a bit as a low
gluten flour does not soak up as much water. Then I~replaced the starter with gluten flour does not soak up as much water. Then I~replaced the starter with
the stiff starter. The dough felt amazing and was suddenly able to withstand a the stiff starter. The dough felt amazing and was suddenly able to withstand a
much longer fermentation period. The bread had great oven spring and tasted much longer fermentation period. The bread had great oven spring and tasted
very mild. I~am still yet to find a proper explanation why the yeast part of very mild. I~am still yet to find a proper scientific explanation why the yeast part of
the dough is more active. Maybe it is not. It could also be that the bacteria the dough is more active. Maybe it is not. It could also be that the bacteria
is inhibited by the lack of water. is inhibited by the lack of water.
@@ -281,21 +299,26 @@ 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 starter. It should have a mild smell. It also tends to smell much more
alcoholic than the other starters. alcoholic than the other starters.
When using a stiff starter, use around \qtyrange{1}{20}{\percent} depending on When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter in terms of
the ripeness of your starter. In summer I~typically use around baker's math for your
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can dough. This depends on the ripeness of your starter.
also control the fermentation speed. In summer I~typically use around
Mixing the starter can be a little bit annoying as it hardly homogenizes with \qtyrange{1}{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
the rest of the dough. In this case you can try to dissolve the starter in the 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. water you are about to use for your dough. This will make mixing a lot easier.
\section{Lievito madre or pasta madre} \section{Lievito madre or pasta madre}
The lievito madre, also known as pasta madre, belongs to the same category as The \emph{lievito madre}, also known as \emph{pasta madre}, belongs to the
the stiff sourdough starter. After conducting hours of research, I~could not same category as the stiff sourdough starter. After conducting hours of
find a difference between pasta madre and lievito madre. Both terms seem to be research, I~could not find a difference between \emph{pasta madre} and
used interchangeably in literature. \emph{lievito madre}. Both terms seem to be used interchangeably in
literature.
In many recipes this starter is made directly In many recipes this starter is made directly
from dried or fresh fruits. You can also make a starter from leaves from your from dried or fresh fruits. You can also make a starter from leaves from your
@@ -308,19 +331,21 @@ acidifies properly when making a dough. A tool such as a pH meter can be of
optimal help. Generally, the lower the pH, the higher the acidity. The acidity optimal help. Generally, the lower the pH, the higher the acidity. The acidity
should be below 4.2 to know that your starter produces sufficient acidity. should be below 4.2 to know that your starter produces sufficient acidity.
Some bakers cleanse the lievito madre in a bath of water. This is supposed to Some bakers cleanse the \emph{lievito madre} in a bath of water. This is supposed to
remove excess acidity. In my own experiments I~have not been able to confirm remove excess acidity. In my own experiments I~have not been able to confirm
this methodology. The acidity remains the same. The only reason this could this methodology. The acidity remains the same. The only reason this could
make sense is if you also tried to boost anaerobic microorganisms. However, then the make sense is if you also tried to boost anaerobic microorganisms. However, then the
starter would need to remain in this environment for quite some time and not just starter would need to remain in this environment for quite some time and not just
a few hours. a few hours.
\section{Conclusion}%
\label{sec:starter-type-conclusion}
Baking with sourdough is simple. It's just flour and water. When seeing a recipe Baking with sourdough is simple. It's just flour and water. When seeing a recipe
from an experienced baker you wonder, Wait, that's it? There is nothing more from an experienced baker you wonder, Wait, that's it? There is nothing more
to it? I~feel that this might be the reason why some bakers have such complicated to it? I~feel that this might be the reason why some bakers have such complicated
feeding procedures. They resort to several feedings per day at a certain given ratio. feeding procedures. They resort to several feedings per day at a certain given ratio.
This makes the baker feel a little more elitist. Of course over time as This makes the baker feel a little more elitist. Of course over time as
more and more people follow this procedure, it becomes a self fulfilling prophecy. more and more people follow this procedure, it became a self fulfilling prophecy.
The more experienced you become, the higher the chances are that a bogus starter The more experienced you become, the higher the chances are that a bogus starter
feeding guide will reward you with beautiful results. The reason however is feeding guide will reward you with beautiful results. The reason however is
not in the starter routine. The reason is that you understand the fermentation better not in the starter routine. The reason is that you understand the fermentation better

View File

@@ -1,17 +1,19 @@
\chapter{Making a sourdough starter}%
\label{ch:sourdough-starter}
\begin{quoting} \begin{quoting}
In this chapter you will learn how to make your In this chapter you will learn how to make your
own sourdough starter. Before doing so you will own sourdough starter, but before doing so you will
quickly learn about baker's math. Don't worry, quickly learn about baker's math. Don't worry,
it's a very simple way how to write a recipe which it's a very simple way how to write a recipe which
is cleaner and more scalable. Once you get the hang is cleaner and more scalable. Once you get the hang
of it you will want to write every recipe this way. of it you will want to write every recipe this way.
You will learn to understand the signs to determine You will learn to understand the signs indicating
your starter's readiness. Furthermore you will your starter's readiness, as well as
also learn how to prepare your starter for long-term storage. how to prepare your starter for long-term storage.
\end{quoting} \end{quoting}
\section{Baker's math}% \section{Baker's math}%
\label{section:bakers-math} \label{sec:bakers-math}
In a large bakery, a determining factor is how In a large bakery, a determining factor is how
much flour you have at hand. Based on the amount much flour you have at hand. Based on the amount
@@ -21,7 +23,7 @@ for bakers, the quantity of each ingredient
is calculated as a percentage based on how much flour you have. is calculated as a percentage based on how much flour you have.
Let me demonstrate this with a small example from Let me demonstrate this with a small example from
a pizzeria. In the morning you check and you realize you a pizzeria. In the morning you check and you realize you
have around \qty{1}{\kg} of flour. have around \qty{1}{\kg} of flour.
Your default recipe calls for around \qty{600}{\gram} of water. Your default recipe calls for around \qty{600}{\gram} of water.
That would be a typical pizza dough, not too dry but That would be a typical pizza dough, not too dry but
also not too wet. Then you would be using around \qty{20}{\gram} also not too wet. Then you would be using around \qty{20}{\gram}
@@ -30,35 +32,33 @@ pizza dough recipe. In Napoli modern pizzerias would use fresh or dry yeast.
However traditionally pizza has always been made with sourdough.}. However traditionally pizza has always been made with sourdough.}.
The next day you suddenly have \qty{1.4}{\kg} of flour The next day you suddenly have \qty{1.4}{\kg} of flour
at hand and thus can make more pizza dough. What do you do? at hand and thus can make more pizza dough. What do you do?
Do you multiply all the ingredients by 1.4? Yes you could, Do you multiply all the ingredients by \num{1.4}? Yes you could,
but there is an easier way. This is where baker's math but there is an easier way. This is where baker's math
comes in handy. Let's look at the default recipe with baker's comes in handy. Let's look at the default recipe with baker's
math and then adjust it for the \qty{1.4}{\kg} flour quantity. math and then adjust it for the \qty{1.4}{\kg} flour quantity.
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-bakers-math-example.tex} \input{tables/table-bakers-math-example.tex}
\caption[Baker's math example]{An example table demonstrating how to \caption[Baker's math example]{An example table demonstrating how to
properly calculate using baker's math} properly calculate using baker's math}
\end{center}
\end{table} \end{table}
Note how each of the ingredients is calculated as a percentage Note how each of the ingredients is calculated as a percentage
based on the flour. The \qty{100}{\percent} is the baseline and represents the absolute based on the flour. The \qty{100}{\percent} is the baseline and represents the absolute
amount of flour that you have at hand. In this case that's \qty{1000}{\gram} amount of flour that you have at hand. In this case that's
(\qty{1}{\kg}). \qty{1000}{\gram}~(\qty{1}{\kg}).
Now let's go back to our example and adjust the flour, as we have Now let's go back to our example and adjust the flour, as we have
more flour available the next day. As mentioned the next day more flour available the next day. As mentioned the next day
we have \qty{1.4}{\kg} at hand (\qty{1400}{\gram}). we have \qty{1.4}{\kg} at hand (\qty{1400}{\gram}).
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-recipe-bakers-math.tex} \input{tables/table-recipe-bakers-math.tex}
\caption[Another baker's math example]{An example recipe that uses \caption[Another baker's math example]{An example recipe that uses
\qty{1400}{\gram} as its baseline and is then calculated using \qty{1400}{\gram} as its baseline and is then calculated using
baker's math.} baker's math.}
\end{center}
\end{table} \end{table}
For each ingredient we calculate the percentage For each ingredient we calculate the percentage
@@ -70,7 +70,6 @@ For the second day, that is \qty{840}{\gram}. Proceed to do the same
thing for all the other ingredients and you will know thing for all the other ingredients and you will know
your recipe. your recipe.
Let's say you would want to use \qty{50}{\kg} of flour Let's say you would want to use \qty{50}{\kg} of flour
the next day. What would you do? You would simply proceed the next day. What would you do? You would simply proceed
to calculate the percentages one more time. I~like this to calculate the percentages one more time. I~like this
@@ -85,30 +84,40 @@ are completely lost when trying to scale it up.
\section{The process of making a starter} \section{The process of making a starter}
\begin{figure}[!htb] \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 \caption[Very active sourdough]{A very active sourdough starter shown by the
bubbles in the dough.}% bubbles in the dough.}%
\label{fig:sourdough-starter} \label{fig:sourdough-starter}
\end{figure} \end{figure}
Making a sourdough starter is very easy. All you need Making a sourdough starter is very easy, all you need
is a little bit of patience. The flour you should is a little bit of patience. It is in fact so easy that it can be summarized
use to setup your starter is ideally a whole flour. in a simple Flowchart~\ref{fig:sourdough-starter-process} The flour you should
You could use whole-wheat, whole rye, whole spelt or 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 any other flour you have. In fact gluten free flours such
as rice or corn would also work. Don't worry, you can as rice or corn would also work. Don't worry, you can always
change the flour later. Use whatever whole flour you change the flour later. Use whatever whole flour you
already have at hand. 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 Your flour is contaminated with millions of microbes. As explained
before in the chapter about wild yeast and bacteria, these before in the chapter about wild yeast and bacteria, these
microbes live on the surface of the plant. That's why microbes live on the surface of the plant. That's why
a whole flour works better because you have more natural a whole flour works better because you have more natural
contamination of the microbes you are trying to cultivate contamination from the microbes you are trying to cultivate
in your starter. More of them live on the hull compared to the in your starter. More of them live on the hull compared to the
endophytes living in the grain. endophytes living in the grain.
Start by measuring approximately \qty{50}{\gram} each of flour and Start by measuring approximately \qty{50}{\gram} of both flour and
water. The measurements don't have to be exact; you can use water. The measurements don't have to be exact; you can use
less or more, or just eyeball the proportions. These less or more, or just eyeball the proportions. These
values are just shown as a reference. values are just shown as a reference.
@@ -120,66 +129,25 @@ to water as a disinfectant to kill microorganisms, you will
not be able to grow a starter with chlorinated water. not be able to grow a starter with chlorinated water.
In this process, the hydration of your starter is \qty{100}{\percent}. In this process, the hydration of your starter is \qty{100}{\percent}.
This means you're using equal parts flour and This means you're using equal amount of flour and
water. Stir everything together so that all the flour is water. Stir everything together so that all the flour is
properly hydrated. This step activates the microbial spores properly hydrated. This step activates the microbial spores
in your mixture, drawing them out of hibernation and in your mixture, drawing them out of hibernation and
reviving them. reviving them.
Finally, cover your mixture but make sure the covering is Finally, cover your mixture but make sure the covering is
not airtight. I~like to use a glass and place another not airtight. You still want some gas exchange to be possible.
inverted one on top. The container shouldn't be airtight, I~like to use a glass and place another
you still want some gas exchange to be possible. inverted one on top.
\begin{flowchart}[!htb] Now an epic battle begins, as visualized in
\begin{center} Figure~\ref{fig:sourdough-starter-microbial-war}. In one
\input{figures/fig-starter-process.tex} study~\cite{yeasts+biocontrol+agent} scientists have identified
\caption[Process for starter from scratch]{The process of making a sourdough more than \num{150}~different yeast species living
starter from scratch.}% on a single leaf of a plant.
\label{fig:sourdough-starter-process}
\end{center}
\end{flowchart}
Now an epic battle begins. In one study scientists
have identified more than 150 different yeast species living
on a single leaf of a plant~\cite{yeasts+biocontrol+agent}.
All of the different yeasts and bacteria are trying to get All of the different yeasts and bacteria are trying to get
the upper hand in this battle. Other pathogens such as mold the upper hand in this battle. Other pathogens such as mold
are also being activated as we added water. Only the strongest are also being activated as we added water. Only the strongest
most adaptable microorganisms will survive. By adding water to the most adaptable microorganisms will survive.
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 that know
how to convert maltose or glucose will have the upper hand. Or the
microbes that ferment 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] \begin{figure}[!htb]
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war} \includegraphics[width=\textwidth]{sourdough-starter-microbial-war}
@@ -195,48 +163,104 @@ my kitchen.
\label{fig:sourdough-starter-microbial-war} \label{fig:sourdough-starter-microbial-war}
\end{figure} \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. Wait for around 24~hours and observe what happens to your starter.
You might see some early signs of fermentation already. Use your nose You might see some early signs of fermentation already. Use your nose
to smell the dough. Look for bubbles in the dough. Your dough to smell the dough. Look for bubbles in the dough. Your dough
might already have increased in size a little bit. Whatever might already have increased in size a little bit. Whatever
you see and notice is a sign of the first battle. Some microbes you see and notice is a sign of the first battle.
have already been outperformed. Others have won the first battle.
After around 24~hours most of the starch has been broken down Some microbes have already been outperformed. Others have won the first
and your microbes are hungry for additional sugars. With a spoon battle. After around \qty{24}{hours} most of the starch has been broken down
take around \qty{10}{\gram} from the previous day's mixture and place and your microbes are hungry for additional sugars. With a spoon take around
it in a new container. Again --- you could also simply eye ball \qty{10}{\gram} from the previous day's mixture and place it in a new
all the quantities. It does not matter that much. Mix the 10 container. Again---you could also simply eye ball all the quantities. It does
grams from the previous day with another \qty{50}{\gram} of flour not matter that much. Mix the \qty{10}{\gram} from the previous day with
and \qty{50}{\gram} of water. Note the ratio of 1:5. I~very often use another \qty{50}{\gram} of flour and \qty{50}{\gram} of water.
1 part of old culture with 5 parts of flour and 5 parts 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.
This is also very often the same ratio I~use when making a dough. This is also very often the same ratio I~use when making a dough.
A dough is nothing else than a sourdough starter with slightly different A dough is nothing else than a giant sourdough starter with slightly different
properties. I'd always be using around \qtyrange{100}{200}{\gram} of starter properties. I'd always be using around \qtyrange{100}{200}{\gram} of starter
for around \qty{1000}{\gram} of flour (baker's math: \qtyrange{10}{20}{\percent}). for around \qty{1000}{\gram} of flour (baker's math: \qtyrange{10}{20}{\percent}).
Homogenize your new mixture again with a spoon. Then cover Homogenize your new mixture again with a spoon. Then cover
the mix again with a glass or a lid. If you notice the top of 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 your mixture dries out a lot consider using another cover. The
dried-out parts will be composted by more adapted microbes such as dried-out parts will be composted by more adapted microbes such as
mold. In many user reports, I~saw mold being able to damage mold. In many user reports, I~saw mold being able to damage
the starter when the starter itself dried out a lot. You will the starter when the starter itself dried out a lot.
You will
still have some mixture left from your first day. As this contains still have some mixture left from your first day. As this contains
possibly dangerous pathogens that have been activated we will discard possibly dangerous pathogens that have been activated make sure you discard
this mixture. Once your sourdough starter is mature never this mixture. A rule of thumb is to begin keeping the discard,
discard it. It's long-fermented flour that is an excellent addon the moment you made your first successful bread. At that point
used to make crackers, pancakes and or delicious hearty sandwich your discard is long-fermented flour that is an excellent addon
bread. I~also frequently dry it and use it as a rolling agent used to make crackers, pancakes or delicious hearty sandwich
for pizzas that I~am making. bread\ldots I~also frequently dry it and use it as a rolling agent
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 You should hopefully again see some bubbles, the starter increasing
in size and/or the starter changing its smell. Some people give in size and/or the starter changing its smell. Some people give
up after the second or third day. That is because the signs might no longer up after the second or third day, because the signs might no longer
be as dominant as they were on day one. The reason for this lies in only a few be as dominant as they were on day one. The reason for this lies in only a few
select microbes starting to take over the whole sourdough starter. The most select microbes starting to take over the whole sourdough starter. The most
adaptable ones are going to win. They are very small in quantity and will adaptable ones are going to win, they are very small in quantity and will
grow in population with each subsequent feeding. Even if you see no signs grow in population with each subsequent feeding. Even if you see no signs
of activity directly, don't worry. There is activity in of activity directly, do not worry, there is activity in
your starter on a microscopic level. your starter at a microscopic level.
24~hours later again we will repeat the same thing again until 24~hours later again we will repeat the same thing again until
we see that our sourdough starter is active. More on that in the we see that our sourdough starter is active. More on that in the
@@ -245,7 +269,7 @@ next section of this book.
\section{Determining starter readiness} \section{Determining starter readiness}
For some people the whole process of setting up a starter takes For some people the whole process of setting up a starter takes
only 4 days. For others it can take 7 days, for some even 20 days. only 4~days. For others it can take 7~days, for some even 20~days.
This depends on several factors including how good your wild microbes This depends on several factors including how good your wild microbes
are at fermenting flour. Generally speaking, with each feeding are at fermenting flour. Generally speaking, with each feeding
your starter becomes more adapted to its environment. Your your starter becomes more adapted to its environment. Your
@@ -257,20 +281,23 @@ yeast has been isolated like this from century old sourdough
starters. starters.
\begin{flowchart}[!htb] \begin{flowchart}[!htb]
\begin{center} \centering
\input{figures/fig-starter-readiness.tex} \input{figures/fig-starter-readiness.tex}
\caption[Sourdough readiness flow chart]{A flow chart showing you how to \caption[Determining sourdough starter readiness]{A flow chart showing you how to
determine if your sourdough starter is ready to be used. For checking determine if your sourdough starter is ready to be used. Make sure to
readiness look at a size increase and take note of your starter's smell. wait at least \qtyrange{6}{12}{\hour} after feeding your
Both are important indicators to check for readiness.}% 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} \label{fig:sourdough-starter-readiness}
\end{center}
\end{flowchart} \end{flowchart}
The key signs to look at are bubbles that you see in your starter The key sign to look at is bubbles that you see in your starter
jar. This is a sign that the yeast is metabolizing your jar. This is a sign that the yeast is metabolizing your
dough and creates \ch{CO2}. The \ch{CO2} is trapped in your dough dough and creates \ch{CO2}. The \ch{CO2} is trapped in your dough
matrix and then visualized on the edges of the container. matrix and then visualized on the edges of the container.
Also note the size increase of your dough. The amount the dough increases Also note the size increase of your dough. The amount the dough increases
in size is irrelevant. Some bakers claim it doubles, triples or quadruples. in size is irrelevant. Some bakers claim it doubles, triples or quadruples.
The amount of size increase depends on your microbes, but also on The amount of size increase depends on your microbes, but also on
@@ -282,11 +309,13 @@ wheat microbes might be better at breaking down gluten compared
to rye microbes. That's one of the reasons why I~decided to change to rye microbes. That's one of the reasons why I~decided to change
the flour of my sourdough starter quite often. I~had hoped to create the flour of my sourdough starter quite often. I~had hoped to create
an all-around starter that can ferment all sorts of different an all-around starter that can ferment all sorts of different
flour\footnote{Whether this is working I~can't scientifically say. flour\footnote{Whether this is working, I~can't scientifically say.
Typically the microbes that have once taken place are very strong Typically the microbes that have once taken place are very strong
and won't allow other microbes to enter. My starter has initially and won't allow other microbes to enter. My starter has initially
been made with rye flour. So chances are that the majority of been made with rye flour. So chances are that the majority of
my microorganisms are from a rye source.}. Your nose is also my microorganisms are from a rye source.}.
Your nose is also
a great tool to determine starter readiness. Depending on a great tool to determine starter readiness. Depending on
your starter's microbiome you should notice either the smell your starter's microbiome you should notice either the smell
of lactic acid or acetic acid. Lactic acid has dairy yogurty notes. of lactic acid or acetic acid. Lactic acid has dairy yogurty notes.
@@ -298,25 +327,26 @@ to determine starter readiness.
In rare events your flour might be treated and prevent microbe growth. In rare events your flour might be treated and prevent microbe growth.
This can happen if the flour is not organic and a lot of biochemical This can happen if the flour is not organic and a lot of biochemical
agents have been used by the farmer. In that case simply try again agents have been used by the farmer. In that case simply try again
with different flour. 7 days is a good period of time to wait before with different flour. Ten~days is a good period of time to wait before
trying again. trying again.
Another methodology used by some bakers is the so called \emph{float test}. Another methodology used by some bakers is the so called \emph{float test}.
The idea is to take a piece of your sourdough starter and place it The idea is to take a piece of your sourdough starter and place it
on top of some water. If the dough is full with gas it will float on top of some water, if the dough is full with gas it will float
on top of the water. If it's not ready, it can't float and will on top of the water. If it's not ready, it can't float and will
sink to the bottom. This test does not work with every flour. sink to the bottom. This test does not work with every flour,
Rye flour for instance can't retain the gas as well as wheat flour rye flour for instance can't retain the gas as well as wheat flour
and thus in some cases will not float. That's why I~personally and thus in some cases will not float. That's why I~personally
don't use this test and can't recommend it. don't use this test and can't recommend it.
Once you see your starter is ready I~would recommend giving 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 one last feeding and then you are ready to make your dough in the
evening or the next day. For the instructions to make your evening or the next day. For the instructions on how to make your
first dough please refer to the next chapters 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 If your first bread failed, chances are your fermentation hasn't
worked as expected. In many cases the source is your sourdough starter. Maybe worked as expected. In many cases the reason is your sourdough starter. Maybe
the balance of bacteria and yeast isn't optimal yet. In that case a good the balance of bacteria and yeast isn't optimal yet. In that case a good
solution is to keep feeding your starter once per day. With each feeding your solution is to keep feeding your starter once per day. With each feeding your
starter becomes better at fermenting flour. The microbes will adapt more and starter becomes better at fermenting flour. The microbes will adapt more and
@@ -327,7 +357,7 @@ yeast part of your sourdough and balance the fermentation.
\section{Maintenance} \section{Maintenance}
\begin{flowchart}[!htb] \begin{flowchart}[!htb]
\begin{center} \centering
\input{figures/fig-starter-maintenance.tex} \input{figures/fig-starter-maintenance.tex}
\caption[Sourdough starter maintenance flowchart]{A full flowchart showing \caption[Sourdough starter maintenance flowchart]{A full flowchart showing
you how to conduct proper sourdough starter maintenance. You can use a you how to conduct proper sourdough starter maintenance. You can use a
@@ -337,7 +367,6 @@ yeast part of your sourdough and balance the fermentation.
\qty{100}{\percent} hydration level. Adjust the water content \qty{100}{\percent} hydration level. Adjust the water content
accordingly when you use a stiff starter.}% accordingly when you use a stiff starter.}%
\label{fig:sourdough-maintenance-process} \label{fig:sourdough-maintenance-process}
\end{center}
\end{flowchart} \end{flowchart}
You have made your sourdough starter and your first bread. How do you perform You have made your sourdough starter and your first bread. How do you perform
@@ -393,8 +422,8 @@ sourdough starter into the right shape again.
The following are a couple of scenarios that will help you to conduct proper The following are a couple of scenarios that will help you to conduct proper
starter maintenance, depending on when you want to bake the next time. starter maintenance, depending on when you want to bake the next time.
\textbf{I~would like to bake again the next day:} \begin{description}
\item[I~would like to bake again the next day:]
Simply take whatever starter you have left and feed it again. If you depleted Simply take whatever starter you have left and feed it again. If you depleted
all your starter you can cut a piece of your dough. The dough itself is all your starter you can cut a piece of your dough. The dough itself is
nothing different than a gigantic starter. I~recommend a 1:5:5 ratio like nothing different than a gigantic starter. I~recommend a 1:5:5 ratio like
@@ -405,8 +434,7 @@ case I~would go for a 1:10:10 ratio. Sometimes I~don't have enough starter.
Then I~even use a ratio of 1:50:50 or 1:100:100. Depending on how much new Then I~even use a ratio of 1:50:50 or 1:100:100. Depending on how much new
flour you feed it takes longer for your starter to be ready again. flour you feed it takes longer for your starter to be ready again.
\textbf{I~would like to take a break and bake next week:} \item[I~would like to take a break and bake next week:]
Simply take your leftover starter and place it inside of your fridge. It will stay good Simply take your leftover starter and place it inside of your fridge. It will stay good
for a very long period. The only thing I~see happening is the surface for a very long period. The only thing I~see happening is the surface
drying out in the fridge. So I~recommend drowning the starter in a little bit drying out in the fridge. So I~recommend drowning the starter in a little bit
@@ -414,18 +442,17 @@ 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 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 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 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 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, bacteria. Generally, the warmer it is the faster the fermentation process is,
and the colder it is the slower the whole process becomes. and the colder it is the slower the whole process becomes.
Below \qty{4}{\degreeCelsius} the starter fermentation almost completely stops. The Below~\qty{4}{\degreeCelsius} the starter fermentation almost completely stops. The
fermentation speed at low temperatures depends on the fermentation speed at low temperatures depends on the
strains of wild yeast and bacteria strains of wild yeast and bacteria
that you have cultivated. that you have cultivated.
\textbf{I~would like to take a several months break:} \item[I~would like to take a several months break:]
Drying your starter might be the best option to preserve it in this case. As Drying your starter might be the best option to preserve it in this case. As
you remove humidity and food your microbes will sporulate. As there is no you remove humidity and food your microbes will sporulate. As there is no
humidity the spores can resist other pathogens very well. A dried starter can humidity the spores can resist other pathogens very well. A dried starter can
@@ -435,7 +462,7 @@ Simply take your starter and mix it with flour. Try to crumble the starter as
much as possible. Add more flour continuously until you notice that there is no much as possible. Add more flour continuously until you notice that there is no
moisture left. Place the flour starter in a dry place in your house. Let it moisture left. Place the flour starter in a dry place in your house. Let it
dry out even more. If you have a dehydrator you can use this to speed up the dry out even more. If you have a dehydrator you can use this to speed up the
process. Set it to around \qty{30}{\degreeCelsius} and dry the starter for 12--20~hours. The next process. Set it to around~\qty{30}{\degreeCelsius} and dry the starter for 12--20~hours. The next
day your starter has dried out a bit. It is in a vulnerable state as there is still a bit day your starter has dried out a bit. It is in a vulnerable state as there is still a bit
of humidity left. Add some more flour to speed up the drying process. Repeat of humidity left. Add some more flour to speed up the drying process. Repeat
for another 2 days until you feel that there is no humidity left. This is for another 2 days until you feel that there is no humidity left. This is
@@ -445,10 +472,11 @@ the dried starter. Both options work perfectly fine. Your sporulated starter
is now waiting for your next feeding. If available you can add some silica is now waiting for your next feeding. If available you can add some silica
bags to the container to further absorb excess moisture. bags to the container to further absorb excess moisture.
Initially, it would take about 3 days for my starter to become alive again Initially, it would take about three~days for my starter to become alive again
after drying and reactivating it. If I~do the same thing now my starter is after drying and reactivating it. If I~do the same thing now my starter is
sometimes ready after a single feeding. It seems that the microbes adapt. The ones sometimes ready after a single feeding. It seems that the microbes adapt. The ones
that survive this shock become dominant subsequently. that survive this shock become dominant subsequently.
\end{description}
So in conclusion the maintenance mode you choose depends on when you want to bake next. So in conclusion the maintenance mode you choose depends on when you want to bake next.
The goal of each new feeding is to make sure your starter The goal of each new feeding is to make sure your starter

View File

@@ -1,11 +1,11 @@
\ProvidesPackage{sourdough} \ProvidesPackage{sourdough}
\usepackage{blindtext} \usepackage{blindtext}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{pgfplots}
\usepackage{booktabs} \usepackage{booktabs}
\usepackage{longtable} \usepackage{longtable}
\usepackage{chemformula} \usepackage{chemformula}
\usepackage{chemfig} \usepackage{chemfig}
\usepackage{booktabs}
\usepackage{makecell} \usepackage{makecell}
\usepackage[mode=match, reset-text-family=false]{siunitx} \usepackage[mode=match, reset-text-family=false]{siunitx}
\usepackage{fontspec} \usepackage{fontspec}
@@ -13,20 +13,31 @@
\usepackage[font={sffamily, sbseries}]{quoting} \usepackage[font={sffamily, sbseries}]{quoting}
\usepackage{microtype} \usepackage{microtype}
% style=nextline breaks on make4ht
\ifdefined\HCode\else
\usepackage{enumitem}
\setlist[description]{style=nextline, leftmargin=0cm}
\fi
\DeclareNewTOC[ \DeclareNewTOC[
type=flowchart,% type=flowchart,%
types=flowcharts,% , types=flowcharts,% ,
float, float,
floattype=4,% floattype=4,%
counterwithin=chapter,
name=Flowchart,% name=Flowchart,%
listname = {List of Flowcharts} listname = {List of Flowcharts}
]{loc} ]{loc}
\setuptoc{loc}{chapteratlist} \setuptoc{loc}{chapteratlist}
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{figure} \DeclareTOCStyleEntry[numwidth=3em]{tocline}{figure}
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{flowchart}
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{table}
% Common abbreviations % Common abbreviations
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}} \input{abbreviations.tex}
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
% Consistent pH values
\newcommand{\pHvalue}[1]{pH~\SI{#1}{}}
% For tables % For tables
\renewcommand\theadfont{\bfseries} \renewcommand\theadfont{\bfseries}
@@ -41,8 +52,9 @@
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont} \DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
% Fonts for accessibility % Fonts for accessibility
\ifdefined\isaccessible \ifdefined\isaccessible
\setmainfont{Open Sans}[ \usepackage[mathrm=sym]{unicode-math}
Scale=MatchLowercase] \setmathfont{Fira Math}[Scale=MatchLowercase]
\setmainfont{Open Sans}[Scale=MatchLowercase]
\else \else
\setmainfont{TeX Gyre Pagella}[Scale=1.0] % Or Palatino Linotype, etc. \setmainfont{TeX Gyre Pagella}[Scale=1.0] % Or Palatino Linotype, etc.
% TODO not available on github CI % TODO not available on github CI
@@ -62,10 +74,11 @@
\addbibresource{references.bib} \addbibresource{references.bib}
% Clickable links in the table of contents % Clickable links in the table of contents
\usepackage[ocgcolorlinks]{hyperref} \usepackage{hyperref}
\usepackage{bookmark} \usepackage{bookmark}
\hypersetup{% \hypersetup{%
linktoc=all, linktoc=all,
colorlinks = true,
linkcolor = hlorange, linkcolor = hlorange,
urlcolor = codeblue, urlcolor = codeblue,
citecolor = hlocre, citecolor = hlocre,
@@ -96,11 +109,12 @@
{wheat-sourdough/} {wheat-sourdough/}
{wheat-sourdough/shaping/} {wheat-sourdough/shaping/}
{non-wheat-sourdough/} {non-wheat-sourdough/}
{mix-ins/}
} }
% Caption and figure size below images % Caption and figure size below images
\usepackage{caption} \addtokomafont{captionlabel}{\textbf}
\captionsetup[figure]{font=footnotesize} \addtokomafont{caption}{\small}
\DeclareSIUnit\degF{\text{°}F} \DeclareSIUnit\degF{\text{°}F}

View File

@@ -1 +0,0 @@
book.tex

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,17 +1,19 @@
\chapter{Storing bread}%
\label{ch:storing-bread}
\begin{quoting} \begin{quoting}
In this chapter you will learn about different In this chapter you will discuss different methods of storing your bread, each
methods of storing your bread. This way with their own pro and cons. This way your bread can be best enjoyed at a
your bread can be best enjoyed at a later later time.
time.
\end{quoting} \end{quoting}
A summary can be found in Table~\ref{table:bread-storage}, with details and
explanation in the rest of this chapter.
\begin{table}[!htb] \begin{table}[!htb]
\begin{center} \centering
\input{tables/table-storing-bread-overview.tex} \input{tables/table-storing-bread-overview.tex}
\caption[Options to store bread]{A table visualizing the advantages \caption[Options to store bread]{A table visualizing the advantages
and disadvantages of different bread storing options.}% and disadvantages of different bread storing options.}%
\label{table:bread-storage} \label{table:bread-storage}
\end{center}
\end{table} \end{table}
\section{Room temperature} \section{Room temperature}
@@ -35,7 +37,7 @@ A low-hydration recipe can dry out after 1--2 days;
a high-hydration bread needs 3--4 days to dry out. a high-hydration bread needs 3--4 days to dry out.
Once your bread has dried out, you can run it under Once your bread has dried out, you can run it under
tap water for around 10 to 15 seconds. tap water for around 10 to 15~seconds.
This water bath allows the This water bath allows the
crumb's starch to absorb a lot of water. Proceed and crumb's starch to absorb a lot of water. Proceed and
bake your bread again in the oven. The resulting loaf bake your bread again in the oven. The resulting loaf
@@ -55,9 +57,9 @@ base ingredients for other recipes such as \emph{Knödel}\footnote{\emph{Knödel
Just like the previous option, you can also store your Just like the previous option, you can also store your
bread inside a container. This could be a paper bag, bread inside a container. This could be a paper bag,
a plastic bag, or a bread storage box. The paper bag and a plastic bag, or a bread storage box. The paper bag and
most bread boxes are not fully sealed. They allow some of most bread boxes are not fully sealed, allowing some of
the air to diffuse out of the container. This means that the air to diffuse out of the container. This also means that
the bread will also slightly dry out. the bread will slightly dry out.
When using a sealed bag such as a plastic bag, the bread When using a sealed bag such as a plastic bag, the bread
will retain a lot of moisture. The bread will stay good will retain a lot of moisture. The bread will stay good
@@ -81,7 +83,7 @@ inhibitor.
\section{Fridge} \section{Fridge}
In my own experience storing bread inside the fridge In my own experience storing bread inside the fridge
works well as long as you use a sealed container. Some works well as long as you use a sealed container, even if some
sources say that the bread dries out inside of the sources say that the bread dries out inside of the
fridge~\cite{storing+bread}. Supposedly the fridge fridge~\cite{storing+bread}. Supposedly the fridge
encourages liquid from the crumb to migrate to the bread's surface. encourages liquid from the crumb to migrate to the bread's surface.
@@ -103,13 +105,18 @@ that you can consume within a day. Store each portion
in a separate container and place them inside your in a separate container and place them inside your
freezer. freezer.
When you want to eat fresh bread, open one of the portions When you want to eat fresh bread, open one of the containers
in the morning and allow the bread to thaw over a few in the morning and allow the bread to thaw over a few
hours. This way you can easily remove the frozen-together hours. This is needed so you can easily separate the frozen-together
slices. Proceed and toast the slices in your toaster slices. Toast the slices in your toaster
or bake them in the oven until they have the crispness or bake them in the oven until they have the crispness
that you like. that you like.
This option is great for very long-term storage. Personally This option is great for very long-term storage. Personally
I~like having a few slices of bread frozen as an emergency I~like having a few slices of bread frozen as an emergency
backup when I~have had no time to bake. 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 \qty{40}{\percent}~\cite{freezing+toasting+bread}.

View File

@@ -1,16 +1,20 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;800&display=swap');
:root{ :root{
--ff-sans: 'Open Sans', sans-serif; --ff-sans: 'Open Sans', sans-serif;
--fw-regular: 400; --fw-regular: 400;
--fw-bold: 800; --fw-bold: 800;
--f-lh: 28px; --f-lh: 28px;
--c-black: #282828; --c-black: #282828;
--c-black-background: #1c1819;
--fs-xxxl: 32px; --fs-xxxl: 32px;
--fs-xxl: 26px; --fs-xxl: 26px;
--fs-xl: 24px; --fs-xl: 24px;
--fs-l: 22px; --fs-l: 22px;
--fs-m: 16px; --fs-m: 16px;
--padding-hamburger: 5px;
--c-beige: #F3EDE6;
--border-radius: 7px;
--image-padding: 14px;
--image-background: #ffffff;
} }
@media (min-width: 1200px){ @media (min-width: 1200px){
@@ -37,6 +41,7 @@ body{
font-family: var(--ff-sans); font-family: var(--ff-sans);
font-weight: var(--fw-regular); font-weight: var(--fw-regular);
font-size: var(--fs-m); font-size: var(--fs-m);
color: var(--c-black);
} }
@media screen and (min-width: 57rem) { @media screen and (min-width: 57rem) {
@@ -59,7 +64,22 @@ body{
/* ****************** */ /* ****************** */
main.main-content,main.titlepage,div.footnotes{ main.main-content,main.titlepage,div.footnotes{
padding:1rem; }
.permalink {
opacity: 0.5;
text-decoration: none;
font-size: 0.75rem;
line-height: 0.8rem;
margin-left: 0.25rem;
color: black;
display: inline-block;
}
.sectionHead, .subsectionHead {
display: flex;
align-items: center;
align-content: center;
} }
p.indent, p.noindent{ p.indent, p.noindent{
@@ -125,11 +145,8 @@ nav.TOC a, nav.TOC a:visited{
/* *** Colors *** */ /* *** Colors *** */
/* ************** */ /* ************** */
body{ body{
background-color:#F8F8F8; background-color: var(--c-beige);
background: url("bg.jpg") center center no-repeat;
background-size: cover;
} }
a { a {
@@ -159,6 +176,7 @@ figure.texsource, figure.shellcommand, figure.htmlsource, figure.luasource, figu
.main-content { .main-content {
line-height: var(--f-lh); line-height: var(--f-lh);
margin-left: 30px;
} }
div.footnotes { div.footnotes {
@@ -214,6 +232,7 @@ figcaption.caption {
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
width: 300px;
} }
.menu-items .chapterToc, .menu-items .likechapterToc { .menu-items .chapterToc, .menu-items .likechapterToc {
@@ -224,6 +243,18 @@ figcaption.caption {
text-decoration: none; text-decoration: none;
} }
.home-link {
display: block;
}
.home-title {
display: block;
}
.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc, .addchapToc a {
font-weight: var(--fw-bold);
}
@media (max-width: 768px) { @media (max-width: 768px) {
.toggle-menu-label { .toggle-menu-label {
display: block; display: block;
@@ -233,7 +264,8 @@ figcaption.caption {
.hamb{ .hamb{
cursor: pointer; cursor: pointer;
padding: 5px; padding: var(--padding-hamburger);
margin-right: calc(var(--padding-hamburger) * -1);
display: flex; display: flex;
align-items: center; align-items: center;
align-content: center; align-content: center;
@@ -268,7 +300,7 @@ figcaption.caption {
.menu { .menu {
background: var(--c-black); background: var(--c-black);
display: flex; display: flex;
padding: 10px 0px; padding: 10px 1rem;
position: relative; position: relative;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
@@ -286,14 +318,17 @@ figcaption.caption {
display: block; display: block;
color: #000; color: #000;
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: var(--fw-bold);
padding-left: 17px;
} }
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a { .chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
padding-left: 17px; padding-left: 17px;
} }
.menu-items .chapterToc.home-link {
display: none;
}
.home-title { .home-title {
display: none; display: none;
} }
@@ -304,7 +339,7 @@ div.center {
margin-right: 0 !important; margin-right: 0 !important;
} }
main.titlepage h2.chapterHead { main.main-content h2.chapterHead, main.main-content h2.likechapterHead {
margin-top: 0px; margin-top: 0px;
} }
@@ -352,3 +387,233 @@ h4 {
max-width: 100%; max-width: 100%;
margin-top: 1em; margin-top: 1em;
} }
main.main-content, div.footnotes, main.titlepage {
background-color: var(--c-beige);
}
.main-content {
flex: 1;
}
.wrapper {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.header {
background-color: var(--c-black-background);
width: 100%;
height: 340px;
display: flex;
align-content: center;
justify-content: center;
align-items: center;
margin-bottom: 40px;
}
.header img {
border-radius: 0px;
border: none;
width: 710px;
}
body {
display: block;
}
.book-content {
display: flex;
padding: 0px 40px;
max-width: 1200px;
}
.TOC.menu {
width: 330px;
}
.main-content {
width: 100%;
margin-bottom: 40px;
}
nav.TOC, nav.TOC a, nav.TOC a:visited {
background-color: transparent;
color: var(--c-black);
}
.menu-group {
display: flex;
flex-direction: column;
align-items: center;
}
.menu-inner {
border: 2px solid var(--c-black);
border-radius: var(--border-radius);
width: 100%;
}
.menu-entry {
padding: 1px;
border-radius: var(--border-radius);
}
.menu-arrow {
width: 14px;
border: none;
border-radius: 0px;
}
nav.TOC span:hover, nav.TOC span:hover *, nav.TOC span.chapterToc.selected, nav.TOC span.chapterToc.selected a {
background-color: transparent;
}
.menu-entry:hover {
background-color: #c8c8c8;
}
p.flowchart-image-wrapper {
display: flex;
justify-content: center;
}
.menu-items .menu-group:last-of-type .menu-arrow {
display: none;
}
blockquote {
margin-left: 0px;
margin-right: 0px;
}
.crosslinks-bottom {
margin-top: 1em;
}
.crosslinks-bottom a {
display: inline-block;
border-radius: var(--border-radius);
border: 2px solid var(--c-black);
color: var(--c-black);
padding: 4px;
font-weight: var(--fw-bold);
text-decoration: none;
}
.crosslinks-bottom a.prev {
margin-right: 7px;
}
.crosslinks-bottom a:hover {
color: #444;
}
.menu-group.selected .menu-inner {
background-color: #c8c8c8;
}
.TOC.menu {
margin-bottom: 40px;
}
.mobile-banner {
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;
}
.book-content {
padding: 0px;
display: flex;
width: 100%;
flex-direction: column;
}
.main-content {
width: 100%;
margin-left: 0px;
box-sizing: border-box;
padding: 0px 14px;
margin-top: 20px;
max-width: 100%;
}
.TOC.menu {
width: 100%;
max-width: 100%;
background: var(--c-black-background);
box-sizing: border-box;
}
nav.TOC, nav.TOC a, nav.TOC a:visited {
color: #fff;
}
.menu-arrow {
display: none;
}
.menu-inner {
border: none;
border-radius: 0px;
}
.menu-group.selected .menu-inner {
background: var(--c-black-background);
}
.menu-entry:hover {
background-color: transparent;
}
.TOC.menu {
margin-bottom: 0px;
}
.mobile-banner {
display: block;
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

@@ -1,13 +1,22 @@
Abu, Abu,
Adam, Adam,
Adele Schmitz,
Agatha,
Alanblue,
Albert,
Alicia, Alicia,
Amanda M.,
Amanor,
Andail,
Andreas Schmid, Andreas Schmid,
Andrzej Mitelski,
Anna G., Anna G.,
anonnn, Anonnn,
aomanor, Anthony Atkinson,
Aurore, Aurore,
Beatriz, Beatriz,
Bee, Bee,
Ben Davies,
BigWullie, BigWullie,
Blixikan, Blixikan,
Blusie, Blusie,
@@ -17,9 +26,12 @@ BTSkete,
C Fazio, C Fazio,
Cal Kotz, Cal Kotz,
Case, Case,
Cédric Andrieu,
Charlene Adkins, Charlene Adkins,
Chin Pui Ling,
Chris DuBosq, Chris DuBosq,
Chris G, Chris G,
Chris Toph,
Christiane B, Christiane B,
Christine, Christine,
Chrysanna, Chrysanna,
@@ -30,26 +42,30 @@ David,
Dee, Dee,
Desiree S, Desiree S,
DKitSeattle, DKitSeattle,
dlenkes, Douglas Penna,
douglas.penna, Drey,
DRey,
Duivelsjong, Duivelsjong,
Elaine Leung,
Ellie, Ellie,
Ethan, Ethan,
Francois le Danois, François le Danois,
Fredrik,
Geoff, Geoff,
Guillermo, Guillermo,
HansAndreManfredsson, Hansandremanfredsson,
Heather Currier, Heather Currier,
Hito, Hito,
IlseFA, Ilsefa,
Inma McLeish, Inma Mcleish,
Jackie, Jackie,
Jacques Lucke,
Jan Chrillesen, Jan Chrillesen,
Jan-Pieter Van Den Wittenboer,
Jane, Jane,
Jc Bell,
Jenny, Jenny,
Jessicat, Jessicat,
JimJo, Jimjo,
John E Bergman, John E Bergman,
Jonathan, Jonathan,
JorisBelmans, JorisBelmans,
@@ -57,18 +73,19 @@ Jose Lausuch,
Judith Roth, Judith Roth,
Julian, Julian,
Justin Dybedahl, Justin Dybedahl,
JZ, Jz,
Kankiti, Kankiti,
Kathy Goldstein, Kathy Goldstein,
kathy word, Kathy Word,
Ken Miller, Ken Miller,
Kirill Sivy, Kirill Sivy,
Kuchengnom, Kuchengnom,
Laurent Bouguetaïa,
Leon, Leon,
Lili1232000, Lili1232000,
Lise W, Lise W,
Lizabeth Kelly, Lizabeth Kelly,
lou, Lou,
Lukasz G, Lukasz G,
Manse, Manse,
Marcel, Marcel,
@@ -77,51 +94,57 @@ Marie,
Marijke, Marijke,
Mark, Mark,
Martin, Martin,
Matthew Nowosiadly,
Medea, Medea,
Meghann, Meghann,
Melissa, Melissa,
Michaela,
Michaela Gáliková, Michaela Gáliková,
mieke, Michaela,
Mieke,
Mimi, Mimi,
moj shar, Moj Shar,
MonicaKS, Monicaks,
Nancy Anne Martin, Nancy Anne Martin,
Nancy Keary, Nancy Keary,
Nic Lecloux,
Nick, Nick,
nirpf, Nirpf,
Paaskus,
Pascal H, Pascal H,
Paula Jean McKenney Valadez, Paul Will,
Paula Jean Mckenney Valadez,
Pauline Roberts (Capyboppy), Pauline Roberts (Capyboppy),
Pitdepitis, Pitdepitis,
Rachelle and Omar, Rachelle And Omar,
RaptorRich, Raptorrich,
Rich, Rich,
RiztheBread, Rizthebread,
RoijalBaker, Roijalbaker,
Rori, Rori,
Ruben August Fischer,
Sander, Sander,
Sandy, Sandy,
Sarah, Sarah,
Scooter, Scooter,
Scott Mattson, Scott Mattson,
SebastianKlocke, Sebastianklocke,
Sharon Eicher, Sharon Eicher,
ShelleyMierle, Shelleymierle,
SheriK, Sherik,
Smirnov,
Spencer, Spencer,
strambinha, Strambinha,
Sue,
Sue, Sue,
Sune, Sune,
Susan, Susan,
Sven, Sven,
tbonewilly, Tbonewilly,
Thales Mello, Thales Mello,
TheRealBruce, Therealbruce,
Tracy and Paul Will,
Usliv, Usliv,
Vassil Dichev, Vassil Dichev,
Vladimir Smirnov, Vladimir Smirnov,
Voicu, Voicu,
Zika, Zika,
Zoltan Zoltan.
Can't render this file because it has a wrong number of fields in line 150.

View File

@@ -7,7 +7,7 @@
100 / 212 & Water evaporation & Water begins to evaporate and inflates your dough's alveoli.\\ 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.\\ 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.\\ 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.\\ 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} \end{tabular}

View File

@@ -1,10 +1,10 @@
%TODO: last line is not great %TODO: Alignment is not great
-\begin{tabular}{lll} \begin{tabular}{@{}lll@{}}
\toprule \toprule
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule & \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
\textbf{Flour} & 100g & 100g \\ Flour & \qty{100}{g} & \qty{100}{g} \\
\textbf{Water} & 100g (100\%) & 300g (300\%) \\ Water & up to \qty{100}{g} (\qty{100}{\percent}) & \qty{300}{g} (\qty{300}{\percent}) \\
\textbf{Sourdough starter} & 5--20g (5--20\%) & 5--20g (5--20\%) \\ Sourdough starter & 5--\qty{20}{g} (5--\qty{20}{\percent}) & 5--\qty{20}{g} (5--\qty{20}{\percent}) \\
\textbf{Salt} & 2g (2\%) & 2g (2\%) \\ Salt & \qty{2}{g} (\qty{2}{\percent}) & \qty{2}{g} (\qty{2}{\percent}) \\
\textbf{Bake when?} & Dough increased 50 percent in size & Bubbles visible on surface \\ \bottomrule Bake when? & Dough increased \qty{50}{\percent} in size & Bubbles visible on surface \\ \bottomrule
\end{tabular} \end{tabular}

View File

@@ -1,9 +1,10 @@
\begin{tabular}{@{}llrrr@{}} \begin{tabular}{@{}llrrr@{}}
\toprule \toprule
\thead{USA} & \thead{UK} & {\thead{Germany}} & {\thead{France}} & {\thead{Italy}} \\ \midrule \textbf{USA} & \textbf{UK} & {\textbf{Germany}} & {\textbf{France}} & {\textbf{Italy}} \\ \midrule
Cake & Soft flour & T405 & T45 & 00 \\ Cake & Soft flour & T405 & T45 & 00 \\
All purpose & Plain flour & T550 & T55 & 0 \\ All purpose & Plain flour & T550 & T55 & 0 \\
& & T812 & T80 & 1 \\ Bread flour & Bread flour & T405 or T550 & T45 or T55 & 00 or 0 \\
& & T1050 & T110 & 2 \\ & & T812 & T80 & 1 \\
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule & & T1050 & T110 & 2 \\
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
\end{tabular} \end{tabular}

Some files were not shown because too many files have changed in this diff Show More