Compare commits
378 Commits
Last_MIT
...
cef0d9c8f7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cef0d9c8f7 | ||
|
|
656404782a | ||
|
|
ea75a1ac8a | ||
|
|
9e4e03bcfa | ||
|
|
b783b1e274 | ||
|
|
fb5f526b2f | ||
|
|
8b83e1c5b6 | ||
|
|
25f91cd7a1 | ||
|
|
5bb5d8a48a | ||
|
|
f64fc55977 | ||
|
|
3e02af03ad | ||
|
|
7da9f5b0ad | ||
|
|
19df1546f0 | ||
|
|
6b1d2c3de6 | ||
|
|
b2db06da5b | ||
|
|
47c2367e29 | ||
|
|
09e6e57bcc | ||
|
|
227740c5eb | ||
|
|
01a4d1d873 | ||
|
|
75357db7bb | ||
|
|
502a3f45c6 | ||
|
|
4c01b54039 | ||
|
|
f398c22843 | ||
|
|
b2a016ad10 | ||
|
|
680e91b9c1 | ||
|
|
8fa4869f23 | ||
|
|
3563f7a74a | ||
|
|
efc999f2c7 | ||
|
|
f77ff0fba5 | ||
|
|
8fce8a5abd | ||
|
|
c66e80161d | ||
|
|
9e70d91066 | ||
|
|
64d0ca53a6 | ||
|
|
2fa1e39f83 | ||
|
|
af5285efb1 | ||
|
|
f63d444c33 | ||
|
|
28affc645a | ||
|
|
7db993a176 | ||
|
|
a57da7815a | ||
|
|
3e602fa71f | ||
|
|
cbf67246e5 | ||
|
|
263eb74afe | ||
|
|
e0b99edff6 | ||
|
|
62880e7ff2 | ||
|
|
157cbb03b7 | ||
|
|
d37e2aa4bc | ||
|
|
9eaff81c49 | ||
|
|
6a2b334c2a | ||
|
|
14e1e7ae2e | ||
|
|
1b5d23a348 | ||
|
|
98a3360348 | ||
|
|
1b90bf669b | ||
|
|
427dcbfa37 | ||
|
|
eea69bb854 | ||
|
|
c3904d2f14 | ||
|
|
e77e7e5260 | ||
|
|
8a3b237f21 | ||
|
|
9ad48ea1a3 | ||
|
|
fe667b82e8 | ||
|
|
19029daf8a | ||
|
|
fa157c350e | ||
|
|
3069b5ff7c | ||
|
|
3a1b247bc4 | ||
|
|
c99efe6f20 | ||
|
|
0a0d227611 | ||
|
|
bbeef2d10f | ||
|
|
d7b2cb6be4 | ||
|
|
d6c862eea4 | ||
|
|
ae7c7fda8f | ||
|
|
1ab7970708 | ||
|
|
221119e6d0 | ||
|
|
bd1050d75d | ||
|
|
2afe5cff49 | ||
|
|
1166f6d925 | ||
|
|
bf6a319e8f | ||
|
|
a87cc723a6 | ||
|
|
127ca9423e | ||
|
|
54461ec45e | ||
|
|
35a0a89765 | ||
|
|
99e96c768f | ||
|
|
727cf0a16a | ||
|
|
8efa4fb424 | ||
|
|
48916a5eb7 | ||
|
|
0c0c5db7fe | ||
|
|
b4bce912b3 | ||
|
|
2429ceb825 | ||
|
|
cb73bf735c | ||
|
|
14509a9f4a | ||
|
|
8c5248e455 | ||
|
|
8952b62289 | ||
|
|
324585c172 | ||
|
|
eba366253c | ||
|
|
6efa956165 | ||
|
|
c5019a19f6 | ||
|
|
5753fdcd26 | ||
|
|
e9f6dba1f5 | ||
|
|
99de1839c6 | ||
|
|
d1ca7b8bb9 | ||
|
|
9462f0319e | ||
|
|
6202f44881 | ||
|
|
32d600005c | ||
|
|
d78c29ba66 | ||
|
|
60928bc404 | ||
|
|
e00f853063 | ||
|
|
2dea80a29c | ||
|
|
6eba9635dd | ||
|
|
7804bd8df1 | ||
|
|
cf49ab1ccc | ||
|
|
8743660c0a | ||
|
|
69acb8c04d | ||
|
|
972edd651b | ||
|
|
d462e5adba | ||
|
|
c6a5038d2f | ||
|
|
b57e9ba8c0 | ||
|
|
9adb64c1ee | ||
|
|
d2d79cd992 | ||
|
|
ef92cac0a1 | ||
|
|
a5b1fa93dc | ||
|
|
b588b55c1a | ||
|
|
78cf73bb2c | ||
|
|
16f3fe7338 | ||
|
|
e27e414291 | ||
|
|
d763c78f2f | ||
|
|
85144e4678 | ||
|
|
7565b83dde | ||
|
|
481a041d5d | ||
|
|
0c7756bc76 | ||
|
|
b03a81791b | ||
|
|
e339e73c62 | ||
|
|
a7564e93e3 | ||
|
|
9c18bfcff2 | ||
|
|
abd3a23486 | ||
|
|
296461f13d | ||
|
|
424f4c84c6 | ||
|
|
12bfae0710 | ||
|
|
aa2c80a048 | ||
|
|
e7c4590a0f | ||
|
|
ce2f210f3a | ||
|
|
2b34224954 | ||
|
|
6ef6901348 | ||
|
|
2daba55c3e | ||
|
|
ec589630ed | ||
|
|
792e1af0ef | ||
|
|
7c1feb3699 | ||
|
|
e82475bd74 | ||
|
|
2e4fae3d13 | ||
|
|
07a4657ee8 | ||
|
|
120677b8d7 | ||
|
|
cf935771d6 | ||
|
|
1b99fbe1ca | ||
|
|
044ed02a7d | ||
|
|
67adc3b54f | ||
|
|
e5bea976cd | ||
|
|
ee5e47de63 | ||
|
|
94c775d511 | ||
|
|
11ff3ca043 | ||
|
|
0c67489980 | ||
|
|
17bc88615f | ||
|
|
ebdf0ad3fc | ||
|
|
37d7ec12a8 | ||
|
|
a0bff5442f | ||
|
|
3d16d58817 | ||
|
|
24a9f5c31e | ||
|
|
5ba0b99b4e | ||
|
|
d371b11686 | ||
|
|
99cf6db279 | ||
|
|
66ae206cdc | ||
|
|
7d48364d80 | ||
|
|
2d0e0b2d73 | ||
|
|
52a35bb61d | ||
|
|
e4bd4632c5 | ||
|
|
10f75272c5 | ||
|
|
f3adfc2bd0 | ||
|
|
d1b0bbead1 | ||
|
|
76c0ba4ada | ||
|
|
2f385a82b7 | ||
|
|
84d7b38ba5 | ||
|
|
321179e6ce | ||
|
|
49d93f7573 | ||
|
|
bf4456ca80 | ||
|
|
b4ee25dd39 | ||
|
|
e952c48e5d | ||
|
|
2fcd9fc5bd | ||
|
|
4665d88241 | ||
|
|
5d95dd4f34 | ||
|
|
8920775067 | ||
|
|
a3e94d26d6 | ||
|
|
12afca6918 | ||
|
|
a037ae43f2 | ||
|
|
f8f2b80be4 | ||
|
|
617901cc81 | ||
|
|
fa714906a7 | ||
|
|
9fa7a768ea | ||
|
|
f2861e95e4 | ||
|
|
93ee46b5ca | ||
|
|
d1240f884b | ||
|
|
2eded7f10a | ||
|
|
39212f7318 | ||
|
|
15e008240f | ||
|
|
2e25850994 | ||
|
|
5eea8b8bf8 | ||
|
|
8e604075ae | ||
|
|
c8810f96f7 | ||
|
|
eb21e99945 | ||
|
|
77268bbb18 | ||
|
|
0a401eac14 | ||
|
|
ed7db871ed | ||
|
|
f4eb34d7f6 | ||
|
|
9e93cad31e | ||
|
|
4572a8b17b | ||
|
|
30bb9f46ed | ||
|
|
3338c140c7 | ||
|
|
4510616f20 | ||
|
|
e773d561a4 | ||
|
|
d0f71d9b0e | ||
|
|
0fecb8e252 | ||
|
|
6283e4e3d7 | ||
|
|
cefa998a61 | ||
|
|
9b529622cd | ||
|
|
99031a72df | ||
|
|
e6709b0f5e | ||
|
|
f2c68a9511 | ||
|
|
1c3ebed203 | ||
|
|
79a54c06a2 | ||
|
|
89f5ab6be3 | ||
|
|
0b550a4666 | ||
|
|
9e8acf257d | ||
|
|
8250789855 | ||
|
|
33c0f71a5e | ||
|
|
bc496f1ffd | ||
|
|
4b4d80d231 | ||
|
|
f143834379 | ||
|
|
bce4f84040 | ||
|
|
354737861f | ||
|
|
f9667718d4 | ||
|
|
990c4c0ec6 | ||
|
|
9dd617e661 | ||
|
|
b2af1be6ab | ||
|
|
4465e213b8 | ||
|
|
a809f17523 | ||
|
|
eeebc364e8 | ||
|
|
a09d94d7df | ||
|
|
008a35ffeb | ||
|
|
bad05c64b8 | ||
|
|
1c46efc01a | ||
|
|
a15d2f52ba | ||
|
|
cf28131082 | ||
|
|
bc8f002ee7 | ||
|
|
ed233e915b | ||
|
|
427ad656f3 | ||
|
|
91dc63f02b | ||
|
|
3bd1e95843 | ||
|
|
2408ca509e | ||
|
|
7cd3e04634 | ||
|
|
e9667f0565 | ||
|
|
ec4b02a8f2 | ||
|
|
1cb2de78cb | ||
|
|
446163f017 | ||
|
|
03707bf3e9 | ||
|
|
1c84b06e7f | ||
|
|
0282ba5ba6 | ||
|
|
febfee5240 | ||
|
|
0d713ed0ff | ||
|
|
2ef8f5e5e2 | ||
|
|
f5c7a027e4 | ||
|
|
44fdc87672 | ||
|
|
6a82cf6f41 | ||
|
|
6b56aeac1b | ||
|
|
737debe123 | ||
|
|
fcdd071302 | ||
|
|
b559d72781 | ||
|
|
fce5102095 | ||
|
|
2f3b8ec89b | ||
|
|
6b2153b27a | ||
|
|
eb2fc3eab8 | ||
|
|
a46eb52f7e | ||
|
|
0dd9c69c2c | ||
|
|
1e8db3a3c3 | ||
|
|
b91f00b103 | ||
|
|
60c5c4211a | ||
|
|
87b5e486bf | ||
|
|
1a5d1847b6 | ||
|
|
ca62dd3150 | ||
|
|
8640ed18ed | ||
|
|
afc9e37229 | ||
|
|
c774409759 | ||
|
|
d495757e15 | ||
|
|
ec254e80e0 | ||
|
|
5d89f81d52 | ||
|
|
a1eec0d84f | ||
|
|
2c353c46d7 | ||
|
|
a80558fc75 | ||
|
|
14abcdcbf0 | ||
|
|
c9aae55c8c | ||
|
|
6532f8d5f7 | ||
|
|
127c1ab882 | ||
|
|
7537d4c36f | ||
|
|
9d76ea1cf9 | ||
|
|
1ce9802689 | ||
|
|
8ab6cad1fb | ||
|
|
500f5e7dce | ||
|
|
a8e98595c7 | ||
|
|
9adcca73eb | ||
|
|
b22793f57e | ||
|
|
c2457763f6 | ||
|
|
2a6149520c | ||
|
|
1ebbcfa279 | ||
|
|
9b180ad0a1 | ||
|
|
0a205b02b0 | ||
|
|
77c0b4de00 | ||
|
|
b7e920737f | ||
|
|
0b24e4fd1a | ||
|
|
bf6fb72217 | ||
|
|
37bd36917d | ||
|
|
4b09656723 | ||
|
|
b2186209df | ||
|
|
7d0d9ab16c | ||
|
|
187fc1d0fc | ||
|
|
8492c123d4 | ||
|
|
ddd7a28298 | ||
|
|
f12f2253a0 | ||
|
|
bd143aff4e | ||
|
|
fc876a7d00 | ||
|
|
be954493e6 | ||
|
|
65702e0adf | ||
|
|
7c2b825cd1 | ||
|
|
b92c5de85d | ||
|
|
edf6b4e5c2 | ||
|
|
d591617819 | ||
|
|
56ba7ad21e | ||
|
|
8efb48fa51 | ||
|
|
3e7815f3c4 | ||
|
|
c34d635495 | ||
|
|
9d0a43c58a | ||
|
|
ffccbf8b9f | ||
|
|
6176d8fd7b | ||
|
|
62ee9cd9e4 | ||
|
|
ecbd8aafcb | ||
|
|
a53698de97 | ||
|
|
eabde1aba0 | ||
|
|
07f1351912 | ||
|
|
b17de32914 | ||
|
|
6c220059a3 | ||
|
|
0cbedf5ca1 | ||
|
|
72e4435019 | ||
|
|
60b6b4bc41 | ||
|
|
58758e5389 | ||
|
|
bdae960144 | ||
|
|
1eb305a3fe | ||
|
|
97f3a044c2 | ||
|
|
4e4c4e9048 | ||
|
|
4950897188 | ||
|
|
9fe88efca9 | ||
|
|
335c5eb86b | ||
|
|
474051f095 | ||
|
|
916fab0038 | ||
|
|
0ae310c329 | ||
|
|
31e8078216 | ||
|
|
eda72c860c | ||
|
|
78628adc3c | ||
|
|
31b4f12ae6 | ||
|
|
b18c6331e6 | ||
|
|
e6cccde72a | ||
|
|
cafbb11237 | ||
|
|
569e6e1624 | ||
|
|
d72d6c65b2 | ||
|
|
b403440c04 | ||
|
|
ec43cf2add | ||
|
|
59ace0e3eb | ||
|
|
9104ee0642 | ||
|
|
972b1ef8ba | ||
|
|
5ad773e092 | ||
|
|
74fca62bf2 | ||
|
|
a1b661e8fb | ||
|
|
722449c5ac | ||
|
|
d8c212ad73 | ||
|
|
07edb414e1 | ||
|
|
61af6372e0 |
45
.github/workflows/build-image.yml
vendored
@@ -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 }}
|
||||
|
||||
98
.github/workflows/release-book-website.yml
vendored
Normal 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
|
||||
51
.github/workflows/release-book.yml
vendored
@@ -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 }}
|
||||
51
.github/workflows/release-website.yml
vendored
@@ -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
@@ -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
|
||||
32
.github/workflows/validate-book-build.yml
vendored
@@ -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
@@ -1,3 +1,4 @@
|
||||
.DS_Store
|
||||
*.xbb
|
||||
*.aux
|
||||
*.fdb_latexmk
|
||||
@@ -12,52 +13,34 @@
|
||||
*.run.xml
|
||||
*.html
|
||||
*.dlog
|
||||
*.bak
|
||||
*.opf
|
||||
book/book.out
|
||||
.vscode/
|
||||
book/book.synctex*
|
||||
book/tikz-cache/*
|
||||
book/bookch*
|
||||
book/content.opf
|
||||
book/output-epub
|
||||
book/figures/*.png
|
||||
book/figures/*.pdf
|
||||
book/figures/*.in
|
||||
book/tables/*.png
|
||||
book/tables/*.pdf
|
||||
book/release/*
|
||||
book/book*.4ct
|
||||
book/book*.4tc
|
||||
book/book*.aux
|
||||
book/book*.bbl
|
||||
book/book*.bcf
|
||||
book/book*.blg
|
||||
book/book*.css
|
||||
book/book*.dvi
|
||||
book/book*.html
|
||||
book/book*.idv
|
||||
book/book*.lg
|
||||
book/book*.log
|
||||
book/book*.mobi
|
||||
book/book*.azw3
|
||||
book/book*.epub
|
||||
book/book*.ncx
|
||||
book/book*.out
|
||||
book/book*.pdf
|
||||
book/book*.run.xml
|
||||
book/book*.tmp
|
||||
book/book*.toc
|
||||
book/book*.xref
|
||||
book/book*.html
|
||||
book/book*.svg
|
||||
book/book-epub/
|
||||
book/book-mobi/
|
||||
book/book-azw3/
|
||||
*.bak
|
||||
book_sans_serif/
|
||||
book_serif/
|
||||
release_sans_serif/
|
||||
book/book_sans_serif-epub/
|
||||
# Directories created during build
|
||||
book/book_sans_serif/*
|
||||
book/book_serif/*
|
||||
book/static_website_html/*
|
||||
epub/
|
||||
*.opf
|
||||
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/*
|
||||
|
||||
57
Dockerfile
@@ -1,4 +1,4 @@
|
||||
FROM registry.gitlab.com/islandoftex/images/texlive
|
||||
FROM debian:trixie
|
||||
|
||||
LABEL "maintainer"="Hendrik Kleinwächter <hendrik.kleinwaechter@gmail.com>"
|
||||
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"
|
||||
|
||||
# Print release information if needed
|
||||
# RUN cat /etc/*release*
|
||||
RUN cat /etc/*release*
|
||||
|
||||
# Install base depdendencies
|
||||
# Install base dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install --yes -y --no-install-recommends \
|
||||
sudo \
|
||||
@@ -18,9 +18,51 @@ RUN apt-get update && \
|
||||
zip \
|
||||
git \
|
||||
wget \
|
||||
ruby3.1 \
|
||||
ruby3.3 \
|
||||
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
|
||||
|
||||
@@ -31,9 +73,4 @@ COPY website/Gemfile /root
|
||||
COPY website/.ruby-version /root
|
||||
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"]
|
||||
|
||||
440
LICENSE
@@ -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
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
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
|
||||
copies or substantial portions of the Software.
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
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.
|
||||
|
||||
52
README.md
@@ -32,7 +32,8 @@ make
|
||||
|
||||
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
|
||||
make bake
|
||||
@@ -42,23 +43,27 @@ You can check the files in the folder `book/release/`
|
||||
|
||||
## 🍞 Baking the book locally (LaTeX)
|
||||
|
||||
Make sure you have `biber` and `latexmk` installed. Refer to your system's
|
||||
installation instructions for LaTeX. To create the serif .pdf format, run:
|
||||
Make sure you have `biber`, `latexmk` and ``ImageMagick`` installed. Refer to
|
||||
your system's installation instructions for LaTeX. To create the serif .pdf
|
||||
format, run:
|
||||
|
||||
```console
|
||||
cd book/
|
||||
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
|
||||
cd book/
|
||||
make bake
|
||||
make -j bake
|
||||
```
|
||||
|
||||
You can check the files in the folder `book/release/`
|
||||
|
||||
Please note that while everything should build without any errors but you will get a fair amount of warnings, especially when building the ebook/website.
|
||||
|
||||
You can get some help on building various versions with:
|
||||
|
||||
```console
|
||||
@@ -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 .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 .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)
|
||||
* [Download compiled sans-serif .pdf version](https://www.the-bread-code.io/book-sans-serif.pdf)
|
||||
|
||||
## 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)
|
||||
|
||||
@@ -123,3 +138,14 @@ me to dedicate time to continuously update and improve this book.
|
||||
|
||||
* [My YouTube channel](https://youtube.com/c/thebreadcode)
|
||||
* [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
@@ -0,0 +1,4 @@
|
||||
% Common abbreviations
|
||||
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\newcommand{\etc}{etc\@ifnextchar.{}{.\@}}
|
||||
|
Before Width: | Height: | Size: 369 KiB |
@@ -1,35 +1,28 @@
|
||||
\chapter{Baking}%
|
||||
\label{ch:baking}
|
||||
\begin{quoting}
|
||||
Baking refers to the part of the process where you are loading
|
||||
your dough into the oven. This is typically done after your
|
||||
dough has gone through the bulk fermentation and proofing stage.
|
||||
Baking refers to the part of the process where you are loading your dough into
|
||||
the oven\footnote{While some breads like flatbreads could also be baked on the
|
||||
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}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\input{figures/fig-baking-process.tex}
|
||||
\caption[Different steaming methods]{A schematic visualization of the baking
|
||||
process using different sources of steam in a home oven.}%
|
||||
\label{fig:baking-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
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.
|
||||
\section{The process of baking}
|
||||
Once temperature starts to rise, the dough will go through several stages as
|
||||
summarized in Table~\ref{tab:baking-stages}. 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. The 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{center}
|
||||
\centering
|
||||
\input{tables/table-baking-process-stages.tex}
|
||||
\caption[Stages of dough during backing]{The different stages that
|
||||
your dough undergoes during the baking process.}
|
||||
\end{center}
|
||||
\caption[Stages of dough during baking]{The different stages that
|
||||
your dough undergoes during the baking process.}%
|
||||
\label{tab:baking-stages}
|
||||
\end{table}
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
for oven spring as it retains the gas of your dough very well.
|
||||
holds together nicely but is still extensible. This gel is essential
|
||||
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
|
||||
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
|
||||
still contains after the bake. The crumb is going to taste a bit
|
||||
more moist. The consistency will be different.
|
||||
still contains after the bake, changing its consistency. As a result the
|
||||
crumb is going to taste a bit more moist.
|
||||
|
||||
Another often undervalued step is the evaporation of acids. At
|
||||
\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough starts to evaporate.
|
||||
Shortly after at \qty{122}{\degreeCelsius} (\qty{252}{\degF}) the lactic acid begins evaporating.
|
||||
This is crucial to understand and opens a door to many interesting
|
||||
Another often undervalued step is the evaporation of acids.
|
||||
At~\qty{118}{\degreeCelsius} (\qty{244}{\degF}) the acetic acid in your dough
|
||||
starts to evaporate.
|
||||
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
|
||||
begins to evaporate the acids in your dough become more concentrated.
|
||||
There is less water but in relation you have more acids. A shorter
|
||||
bake will therefore lead to a more tangy dough. The longer you bake the bread,
|
||||
There is less water but in relation you have more acids, therefore a shorter
|
||||
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.
|
||||
They will be more concentrated. In absolute units, though, they
|
||||
will become less and less. The longer you bake, the less sour
|
||||
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}
|
||||
The longer you bake, the less sour your bread is going to be. By controlling
|
||||
baking time you can influence which sourness level you would like to achieve.
|
||||
|
||||
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
|
||||
full acidity? What if you were to just completely get rid of the acetic
|
||||
acid? How would the taste change?
|
||||
|
||||
As the temperature increases
|
||||
the crust thickens. The Maillard reaction kicks in, further 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})
|
||||
\begin{figure}[!htb]
|
||||
\input{plots/fig-temperature-surface.tex}
|
||||
\caption[Surface temperature for different steaming methods]{This
|
||||
chart shows how surface temperatures change using different steaming
|
||||
methods. In this case I~used a Dutch oven and an apple as dough
|
||||
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}),
|
||||
the caramelization process begins. The remaining sugars the microbes
|
||||
As the temperature increases further the crust thickens. The Maillard reaction
|
||||
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
|
||||
for as long as you like to achieve the crust color that you
|
||||
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.}.
|
||||
|
||||
The best method to know that your dough is done is to take
|
||||
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}),
|
||||
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}),
|
||||
you can stop the baking process. This is typically not done though
|
||||
as the crust hasn't been built yet\footnote{The thermometer is
|
||||
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
|
||||
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
|
||||
point, your bread is sterile as the temperature was too hot for
|
||||
for the microorganisms to survive\footnote{I~wonder though
|
||||
if a starter culture could be grown again from a slice of bread.
|
||||
Under heat stress the microorganisms begin sporulating. Maybe
|
||||
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.}.
|
||||
|
||||
\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
|
||||
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.
|
||||
|
||||
\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
|
||||
if you were to bake vegetables in your home oven, at some point
|
||||
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.
|
||||
Expansion stops when most of the microbes have died and
|
||||
the evaporating water no longer stays inside the alveoli.
|
||||
|
||||
The stronger the gluten network, the more gas can be retained
|
||||
during the baking process. This gluten network at some point
|
||||
loses its ability to contain gas as the temperature heats
|
||||
up. The dough stops increasing in size. The steam plays
|
||||
an important role as it condenses and evaporates on top
|
||||
of your dough. The surface temperature is rapidly increasing
|
||||
to around \qty{75}{\degreeCelsius} (\qty{160}{\degF}). At this temperature the gel starts
|
||||
to build. This gel is still extensible and allows expansion.
|
||||
to around~\qty{75}{\degreeCelsius} (\qty{160}{\degF}). At this temperature the
|
||||
gel starts to build, and is still extensible and allows expansion.
|
||||
Without the steam, the dough would never enter the gel stage,
|
||||
but instead directly go to the Maillard reaction zone. You
|
||||
want your dough to stay in this gel stage as long as possible
|
||||
to achieve maximum expansion\footnote{You can remove your
|
||||
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]
|
||||
\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
|
||||
incisions do not properly open up during the bake. They stay
|
||||
closed as the dough is unable to push through the crust.
|
||||
|
||||
Another common sign is that you have larger pockets
|
||||
of air towards the crust of your dough. As the dough increases
|
||||
vertically, expansion is halted by the crust. The pockets
|
||||
Another common sign, as you can see in Figure~\ref{fig:too-little-steam} is
|
||||
that you have larger pockets of air towards the crust of your dough. As the
|
||||
dough increases vertically, expansion is halted by the crust. The pockets
|
||||
of air converge into larger pockets as the pressure increases.
|
||||
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
|
||||
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
|
||||
indicator.}
|
||||
indicator.}%
|
||||
\label{fig:too-little-steam}
|
||||
\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]
|
||||
\includegraphics[width=\textwidth]{dutch-oven-example}
|
||||
@@ -200,7 +204,7 @@ way.
|
||||
\end{figure}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-dutch-oven-process.tex}
|
||||
\caption[Baking process with a dutch oven]{A visualization of the baking
|
||||
process using a dutch oven (DO). The dough is steamed for the first half
|
||||
@@ -209,7 +213,6 @@ way.
|
||||
personal preference. Some bakers prefer a lighter crust and others a
|
||||
darker.}%
|
||||
\label{fig:dutch-oven-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Dutch ovens are an ideal way to bake with a lot of
|
||||
@@ -239,18 +242,19 @@ as the size of the Dutch oven is limited.
|
||||
In many cases, it makes sense to bake multiple
|
||||
loaves in one go. It makes the whole process more
|
||||
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
|
||||
to preheat your oven twice for each loaf.
|
||||
|
||||
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
|
||||
a tedious exercise. Especially if the cast iron is
|
||||
heated you have to be very concise with your movements.
|
||||
Despite doing my best I have a few scars on my
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
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.
|
||||
By placing another tray on top of your dough, the steam
|
||||
created from the dough and water source stays
|
||||
around your dough.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\begin{flowchart}[!htb]
|
||||
\centering
|
||||
\input{figures/fig-inverted-tray-method.tex}
|
||||
\caption[Inverted tray baking process]{A schematic visualization the
|
||||
inverted tray baking method that works great for home ovens.}%
|
||||
\label{fig:inverted-tray-process}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\end{flowchart}
|
||||
|
||||
|
||||
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}
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-oven-baking-overview.tex}
|
||||
\caption[Different oven types]{An overview of different oven types and their
|
||||
different baking methods.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Depending on your home oven, a different method
|
||||
|
||||
@@ -9,17 +9,18 @@ learn more about the yeast and bacterial microorganisms involved.
|
||||
\end{quoting}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{infographic-enzymes}
|
||||
\caption[Interaction of amylases and flour]{How amylases and proteases
|
||||
interact with flour.}%
|
||||
\label{infographic-enzymes}
|
||||
\label{fig:infographic-enzymes}
|
||||
\end{figure}
|
||||
|
||||
\section{Enzymatic reactions}
|
||||
|
||||
To understand the many enzymatic reactions that take place when flour
|
||||
and water are mixed, we must first understand seeds and their role in
|
||||
the lifecycle of wheat and other grains.
|
||||
the life cycle of wheat and other grains.
|
||||
|
||||
Seeds are the primary means by which many plants, including wheat,
|
||||
reproduce. Each seed contains the embryo of another plant, and must
|
||||
@@ -43,7 +44,7 @@ activity so that it can thrive in its new environment.
|
||||
Of course, a ground flour can no longer sprout. But the enzymes that
|
||||
trigger this process are still present. That's why it's important not to
|
||||
mill grains at too high a temperature, as doing so could damage some of
|
||||
these enzymes\footnote{In a recent
|
||||
these enzymes\footnote{In a recent
|
||||
study~\cite{milling+commercial+home+mill+comparison} tests have shown that
|
||||
milling flour
|
||||
at home with a small mill had no significant negative impact on the resulting
|
||||
@@ -75,12 +76,13 @@ is used to create sugars out of the starch to then produce more plant matter.
|
||||
Normally,
|
||||
the microorganisms on the surface of the grain can't consume the freed maltose
|
||||
molecules, which remain hidden inside the germ. But as we grind the flour, a
|
||||
feeding frenzy takes place. Generally, the warmer the temperature, the faster
|
||||
this reaction occurs. That's why a long fermentation is key to making great
|
||||
bread. It takes time for the amylase to break down most of the starch into
|
||||
simple sugars, which are not only consumed by the yeast but are also essential
|
||||
to the \emph{Maillard reaction}, responsible for enhanced browning during the
|
||||
baking process.
|
||||
feeding frenzy takes place. Generally, the warmer the temperature, the faster
|
||||
this reaction occurs. However, it takes time for the amylase
|
||||
to break down most of the starch into simple sugars---which are not only
|
||||
consumed by the yeast but are also
|
||||
essential to the \emph{Maillard reaction}---responsible for
|
||||
enhanced browning during the baking process.
|
||||
That's why a long fermentation is key to making great bread.
|
||||
|
||||
If you're a hobby brewer, you'll know that it's important to keep your beer at
|
||||
certain temperatures to allow the different amylases to convert the contained
|
||||
@@ -176,13 +178,13 @@ gluten content, however, my bread always turned out great.
|
||||
|
||||
At the time, I~utilized an extended autolyse, which is just a fancy word for
|
||||
mixing flour and water in advance and then letting the mixture sit. Most
|
||||
recipes call for it as the process gives the dough an enzymatic head start, and
|
||||
in general it's a great idea. However, as an equally effective alternative,
|
||||
you could simply reduce the amount of leavening agent used --- in the case of
|
||||
sourdough, this would be your starter. This would allow the same biochemical
|
||||
reactions to occur at roughly the same rate without requiring you to mix your
|
||||
dough several times. My whole-wheat game improved dramatically after I~stopped
|
||||
autolysing my doughs.
|
||||
recipes call for it as the process gives the dough an enzymatic head start,
|
||||
and in general it's a great idea. However, as an equally effective
|
||||
alternative, you could simply reduce the amount of leavening agent used---in
|
||||
the case of sourdough, this would be your starter. This would allow the same
|
||||
biochemical reactions to occur at roughly the same rate without requiring you
|
||||
to mix your dough several times. My whole-wheat game improved dramatically
|
||||
after I~stopped autolysing my doughs.
|
||||
|
||||
Now that I've had time to think about it, the result I~observed makes sense.
|
||||
In nature, the outer parts of the seed come into contact with water first, and
|
||||
@@ -190,17 +192,19 @@ only after penetrating this barrier would the water slowly find its way to the
|
||||
center of the grain. The seed needs to sprout first to outcompete other nearby
|
||||
seeds, requiring water to enter quickly. Yet the seed must also defend itself
|
||||
against animals and potentially hazardous bacteria and fungi, requiring some
|
||||
barrier to protect the embryo inside. A way for the plant to achieve both goals
|
||||
would be for most of the enzymes to exist in the outer parts of the hull. As a
|
||||
result, they are activated first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a
|
||||
barrier to protect the embryo inside. A way for the plant to achieve both
|
||||
goals would be for most of the enzymes to exist in the outer parts of the
|
||||
hull. As a result, they are activated
|
||||
first~\cite{enzymatic+activity+whole+wheat}. Therefore, by just adding a
|
||||
little bit of whole flour to your dough, you should be able to significantly
|
||||
improve the enzymatic activity of your dough. That's why, for plain white flour
|
||||
doughs, I~usually add 10\textendash20\% whole-wheat flour.
|
||||
improve the enzymatic activity of your dough. That's why, for plain white
|
||||
flour doughs, I~usually add \qtyrange{10}{20}{\percent} whole-wheat flour.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{whole-wheat-crumb}
|
||||
\caption{A whole-wheat sourdough bread.}%
|
||||
\label{whole-wheat-crumb}
|
||||
\label{fig:whole-wheat-crumb}
|
||||
\end{figure}
|
||||
|
||||
By understanding the two key enzymes \emph{amylase} and \emph{protease}, you
|
||||
@@ -211,22 +215,22 @@ tweak just by adjusting the speed of your dough's fermentation.
|
||||
|
||||
\section{Yeast}
|
||||
|
||||
Yeasts are single-celled microorganisms belonging to the fungi kingdom, and
|
||||
spores that are hundreds of millions of years old have been identified by
|
||||
scientists. There are a wide variety of species --- so far, about \num{1500}
|
||||
have been identified. Unlike other members of the fungi kingdom such as mold,
|
||||
yeasts do not ordinarily create a mycelium
|
||||
network~\cite{molecular+mechanisms+yeast}.\footnote{For one interesting
|
||||
exception, skip ahead to the end of this section on
|
||||
page~\pageref{aggressive-yeast}.}
|
||||
Yeasts are single-celled microorganisms belonging to the fungi kingdom. They
|
||||
can reproduce through either budding or by building spores. The spores are
|
||||
incredibly tiny and resistant to external factors. Scientists have found
|
||||
undamaged spores that are hundreds of million years old. There are a wide
|
||||
variety of species---so far, about \num{1500} have been identified. Unlike
|
||||
other members of the fungi kingdom such as mold, yeasts do not ordinarily
|
||||
create a mycelium network~\cite{molecular+mechanisms+yeast}.\footnote{For one
|
||||
interesting exception, skip ahead to the end of this section on
|
||||
page~\pageref{sec:aggressive-yeast}.}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{saccharomyces-cerevisiae-microscope}
|
||||
\caption[Brewer's yeast]{Saccharomyces cerevisiae: Brewer's yeast under the
|
||||
microscope.}%
|
||||
\label{saccharomyces-cerevisiae-microscope}
|
||||
\end{center}
|
||||
\label{fig:saccharomyces-cerevisiae-microscope}
|
||||
\end{figure}
|
||||
|
||||
Yeasts are saprotrophic fungi. This means that they do not produce their own
|
||||
@@ -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
|
||||
sustained no significant damage~\cite{yeasts+biocontrol+agent}.
|
||||
|
||||
\phantomsection \label{aggressive-yeast}%
|
||||
\phantomsection~\label{sec:aggressive-yeast}%
|
||||
Intriguingly, there was also an experiment performed that showed how brewer's
|
||||
yeast could function as an aggressive pathogen to grapevines. Initially, the
|
||||
yeast lived in symbiosis with the plants, but after the vines sustained heavy
|
||||
@@ -332,7 +336,7 @@ so that they could penetrate the tissue of the plants.
|
||||
\section{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
|
||||
flavours for which sourdough has been named. These are due to the acidic
|
||||
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}.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{bacteria-microscope}
|
||||
\caption[Bacteria under the microscope]{Fructilactobacillus Sanfranciscensis
|
||||
under the microscope.}%
|
||||
\label{lactobacillus-franciscensis-microscope}
|
||||
\caption[Bacteria under the microscope]{Fructilactobacillus
|
||||
sanfranciscensis under the microscope.}%
|
||||
\label{fig:lactobacillus-franciscensis-microscope}
|
||||
\end{figure}
|
||||
|
||||
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
|
||||
and breaking down biological matter~\cite{lactobacillus+sanfrancisco}.
|
||||
|
||||
I~have yet to find a proper source that clearly describes the symbiosis between
|
||||
yeast and bacteria, but my current understanding is that they both coexist and
|
||||
sometimes benefit each other, but not always. Yeast, for example, tolerate the
|
||||
acidic environment created by the surrounding bacteria and are thus protected
|
||||
from other pathogens. Meanwhile, however, other research demonstrates that both
|
||||
types of microorganisms produce compounds that prevent the other from
|
||||
metabolizing food --- an interesting observation, by the way, as it could help to
|
||||
identify additional antibiotics or fungicides~\cite{mold+lactic+acid+bacteria}.
|
||||
I~have yet to find a proper source that clearly describes the symbiosis
|
||||
between yeast and bacteria, but my current understanding is that they both
|
||||
coexist and sometimes benefit each other, but not always. Yeast, for example,
|
||||
tolerate the acidic environment created by the surrounding bacteria and are
|
||||
thus protected from other pathogens. Meanwhile, however, other research
|
||||
demonstrates that both types of microorganisms produce compounds that prevent
|
||||
the other from metabolizing food---an interesting observation, by the way, as
|
||||
it could help to identify additional antibiotics or
|
||||
fungicides~\cite{mold+lactic+acid+bacteria}.
|
||||
|
||||
In the past, I've tried cultivating mushrooms and observed the mycelium
|
||||
attempting to defend itself against the surrounding bacteria; both types of
|
||||
|
||||
@@ -7,3 +7,12 @@
|
||||
object-fit: contain;
|
||||
width: auto;
|
||||
}
|
||||
.float {
|
||||
max-width: 100%;
|
||||
}
|
||||
.float img {
|
||||
max-width: 100% !important;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
@@ -18,9 +18,8 @@
|
||||
\ifdefined\HCode\else\tableofcontents\fi
|
||||
}
|
||||
|
||||
\input{intro/foreword}
|
||||
\input{intro/preface}
|
||||
\input{intro/acknowledgements}
|
||||
\input{intro/acknowledgments}
|
||||
|
||||
\mainmatter
|
||||
|
||||
@@ -28,45 +27,35 @@
|
||||
|
||||
\input{basics/how-sourdough-works}
|
||||
|
||||
\chapter{Making a sourdough starter}
|
||||
\input{sourdough-starter/sourdough-starter}
|
||||
|
||||
\chapter{Sourdough starter types}
|
||||
\input{sourdough-starter/sourdough-starter-types}
|
||||
|
||||
\chapter{Flour types}
|
||||
\input{flour-types/flour-types}
|
||||
|
||||
\chapter{Bread types}
|
||||
\input{bread-types/bread-types}
|
||||
|
||||
\chapter{Wheat sourdough}%
|
||||
\label{chapter:wheat-sourdough}
|
||||
\input{wheat-sourdough/wheat-sourdough}
|
||||
|
||||
\chapter{Non wheat sourdough}%
|
||||
\label{chapter:non-wheat-sourdough}
|
||||
\input{non-wheat-sourdough/non-wheat-sourdough}
|
||||
|
||||
% \input{mix-ins/mix-ins.tex}
|
||||
\chapter{Baking}%
|
||||
\label{chapter:baking}
|
||||
\input{mix-ins/mix-ins.tex}
|
||||
|
||||
\input{baking/baking}
|
||||
|
||||
\chapter{Storing bread}%
|
||||
\label{chapter:storing-bread}
|
||||
\input{storing-bread/storing-bread}
|
||||
|
||||
\chapter{Troubleshooting}
|
||||
\input{troubleshooting/misc}
|
||||
|
||||
\backmatter
|
||||
\printbibliography
|
||||
\input{glossary/glossary}
|
||||
{%
|
||||
\hypersetup{hidelinks}
|
||||
\listofflowcharts
|
||||
\listoftables
|
||||
\listoffigures
|
||||
}
|
||||
\printbibliography
|
||||
|
||||
\end{document}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
book.mk4
|
||||
@@ -1,4 +1,2 @@
|
||||
\def\isaccessible{1}
|
||||
% We have to use a symlink to book.tex to prevent tex4ebook to load book.ht4
|
||||
% before loading any other package and create conflicts
|
||||
\input{sourdough_book.tex}
|
||||
\input{book.tex}
|
||||
|
||||
@@ -1,53 +1,251 @@
|
||||
\chapter{Bread types}%
|
||||
\label{ch:bread-types}
|
||||
\begin{quoting}
|
||||
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
|
||||
simple flatbread recipe. This is probably the most accessible, least effort
|
||||
type of bread you can make. If you are a busy person and/or don't have an
|
||||
oven, this might be exactly the type of bread you should consider.
|
||||
advantages and disadvantages. You can also find very simple recipes for
|
||||
flatbread and pan loaf. The former is probably the most accessible, least
|
||||
effort type of bread you can make, while the latter is a little more involved.
|
||||
Free standing bread has its own chapter, due to its increased complexity.
|
||||
\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 don’t have an oven, this might be exactly the type of bread you should
|
||||
consider.
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-overview-bread-types.tex}
|
||||
\caption[Different bread types]{An overview of different bread types
|
||||
and their respective complexity.}%
|
||||
\label{tab:bread-types-comparison}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
\section{Flatbread}
|
||||
\section{Flatbread}%
|
||||
\label{sec:flatbread}
|
||||
|
||||
Flatbread is probably the simplest sourdough bread to make.
|
||||
To make a flatbread no oven is required; all you need is a stove.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sourdough-stove}
|
||||
\caption[Einkorn done on open fire]{An einkorn flatbread made directly over
|
||||
fire. This is part of a video where I~was trying to reproduce sourdough
|
||||
recipes of our ancestors. I~called the recipe ``cave bread''. Some
|
||||
viewers pointed out that probably not all our ancestors lived in caves.}
|
||||
\includegraphics[width=\textwidth]{flat-breads-selection}
|
||||
\caption[Flatbread selection with different flours]{An assorted selection of
|
||||
different flatbreads made with sourdough. From left to right:
|
||||
Wheat~tortilla, rye, spelt and corn.}%
|
||||
\end{figure}
|
||||
|
||||
This type of bread is super simple to make as you can skip
|
||||
a lot of the technique that is normally required. The flatbread
|
||||
can be made with all kinds of flours. You can even use
|
||||
a lot of the technique that is normally required to make wheat doughs.
|
||||
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
|
||||
dough. To make the flatbread a little more fluffy, you
|
||||
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.
|
||||
|
||||
Another trick to improve the texture of the flatbread is to
|
||||
make a very wet dough. A lot of the water will evaporate
|
||||
during the baking process and thus make the bread fluffier.
|
||||
|
||||
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}''
|
||||
to see a full recipe including the process of making such a flatbread.
|
||||
\begin{table}[!htb]
|
||||
\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
|
||||
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
|
||||
sticky dough. You can opt for a hydration of \qtyrange{90}{100}{\percent}, almost
|
||||
resembling a default sourdough starter. Just like with flatbread,
|
||||
the high humidity helps to make a more airy, fluffy crumb. At
|
||||
the same time the bread will be a bit chewier. This
|
||||
type of bread made with rye is my family's favorite style of bread.
|
||||
The hearty rye flavor paired with the sticky consistency really
|
||||
the high humidity helps to make a more airy, fluffy crumb. The bread will
|
||||
also be a bit chewier. This type of bread made with rye is my family's favorite
|
||||
style of bread. The hearty rye flavor paired with the sticky consistency really
|
||||
makes an excellent sandwich bread.
|
||||
|
||||
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.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{free-standing-loaf.jpg}
|
||||
\caption[Freestanding sourdough bread]{A freestanding sourdough bread. Note
|
||||
the incision known as an \emph{ear} and the oven spring clearly
|
||||
distinguish this type of bread from flatbread and loaf pan bread.}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
Normally you mix your dough. When using wheat you make sure
|
||||
that you mix enough to develop a gluten network.
|
||||
You allow the dough to reach
|
||||
a certain size increase during the fermentation. Afterwards you divide and pre-shape
|
||||
the dough into the desired visual shape that you like.
|
||||
Each shape requires a different technique. Sometimes achieving
|
||||
exactly the right shape can be challenging. Making a baguette,
|
||||
for instance, requires you to perform more steps. Mastering this
|
||||
technique takes several attempts.
|
||||
When using wheat, make sure to mix your dough enough to develop a gluten network.
|
||||
Allow the dough to reach a certain size increase during the fermentation.
|
||||
Afterward, divide and pre-shape the dough into the desired visual shape you
|
||||
would like. Each shape requires a different technique. Sometimes achieving
|
||||
the right shape can be challenging. Making a baguette, for instance,
|
||||
requires performing more steps. Mastering this technique takes several attempts.
|
||||
|
||||
Once the dough is shaped, it is proofed again for a certain
|
||||
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
|
||||
with great taste and consistency.
|
||||
|
||||
There is a fully dedicated recipe and tutorial
|
||||
for this type of bread in the~''\nameref{chapter: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.}.
|
||||
There is a dedicated recipe and tutorial for this type of bread in the
|
||||
\nameref{ch:wheat-sourdough} chapter.
|
||||
|
||||
BIN
book/cover/CC-BY-SA.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
@@ -29,9 +29,17 @@
|
||||
% Whitespace between the title block and the copyright text
|
||||
\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
|
||||
license. 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}}\\[\baselineskip]
|
||||
|
||||
{\noindent
|
||||
\begin{flushleft}
|
||||
\includegraphics[width=3cm]{cover/CC-BY-SA}\par
|
||||
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}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 [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 [block, below of=heat_oven, node distance=4cm] (inverted_tray_method) {Inverted tray method};
|
||||
\node [block, right of=inverted_tray_method, node distance=3cm] (dutch_oven) {Dutch oven};
|
||||
\node [block, right of=dutch_oven, node distance=3cm] (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, right 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=build_crust, node distance=3cm] (finish_baking) {Stop baking 10--30~minutes later depending on crust preference};
|
||||
\node [block, below of=decide_steam, node distance=3.5cm] (dutch_oven) {Dutch oven};
|
||||
\node [block, left of=dutch_oven] (inverted_tray_method) {Inverted tray method};
|
||||
\node [block, right of=dutch_oven] (steam_injection) {Steam injection oven};
|
||||
\node [block, below of=dutch_oven, node distance=3cm] (bake_30) {Bake dough for 30~minutes with steam};
|
||||
\node [block, below of=bake_30, node distance=3cm] (remove_steam) {Remove source of steam};
|
||||
\node [success, right of=remove_steam] (finish_baking) {Stop baking 10--30~minutes later depending on crust preference};
|
||||
\path [line] (heat_oven) -- (score_dough);
|
||||
\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) -- (steam_injection);
|
||||
\path [line] (steam_injection) -- (bake_30);
|
||||
\path [line] (inverted_tray_method) -- (bake_30);
|
||||
\path [line] (decide_steam) -- (steam_injection.north west);
|
||||
\path [line] (steam_injection.south west) -- (bake_30.north east);
|
||||
\path [line] (inverted_tray_method.south east) -- (bake_30.north west);
|
||||
\path [line] (dutch_oven) -- (bake_30);
|
||||
\path [line] (bake_30) -- (remove_steam);
|
||||
\path [line] (remove_steam) -- (build_crust);
|
||||
\path [line] (build_crust) -- (finish_baking);
|
||||
\path [line] (remove_steam) -- (finish_baking);
|
||||
\draw[BC, decoration=mirror] (remove_steam.south west) ++(0, -0.3) -- node[below=1em]{Building crust}(finish_baking.south east);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -1,26 +1,29 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\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, 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 [decision, right of=ph_value, node distance=4cm] (dough_ready) {Dough ready?};
|
||||
\node [success, below of=dough_ready] (divide_preshape) {Divide and preshape};
|
||||
\node [decision, below of=smell] (dough_flattened) {Dough flattened out?};
|
||||
\node [block, below of=check_dough, node distance=3cm] (wait_60_minutes) {Wait\\ 60~minutes};
|
||||
\node [block, below of=wait_60_minutes, node distance=4cm] (stretch_fold) {Stretch and fold};
|
||||
\node [decision, right of=size_increase, node distance=4cm] (dough_ready) {Dough ready?};
|
||||
\node [success] at(dough_ready |- smell) (divide_preshape) {Divide and preshape};
|
||||
\node [decision, above of=size_increase] (dough_flattened) {Dough flattened out?};
|
||||
\node [block, above of=check_dough] (wait_60_minutes) {Wait\\ 60~minutes};
|
||||
\node [block, above of=wait_60_minutes] (stretch_fold) {Stretch and fold};
|
||||
|
||||
\path [line] (init) -- (check_dough);
|
||||
\path [line] (check_dough) -- (size_increase);
|
||||
\path [line] (check_dough) -- node{or} (ph_value);
|
||||
\path [line] (check_dough) -- node{or} (smell);
|
||||
% Tricks not to get double lines
|
||||
\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] (ph_value) -- (dough_ready);
|
||||
\path [line] (smell) -- (dough_ready);
|
||||
\path [line] (dough_ready) -- node{yes} (divide_preshape);
|
||||
\path [line] (dough_ready) -- node{no} (dough_flattened);
|
||||
\path [line] (dough_flattened) -- node{yes} (stretch_fold);
|
||||
\path [line] (dough_flattened) -- node{no} (wait_60_minutes);
|
||||
% Same tricks not to get double lines and also we do _not_ want arrows
|
||||
\path [draw, thick] (ph_value) -- node{} ++(2, 0);
|
||||
\path [draw, thick] (smell) -| node{} ++(2, 4);
|
||||
\path [line] (dough_ready) -- node{Yes} (divide_preshape);
|
||||
\path [line] (dough_ready) |- node[right=3pt]{No} (dough_flattened);
|
||||
\path [line] (dough_flattened) |- node[right=3pt]{Yes} (stretch_fold);
|
||||
\path [line] (dough_flattened) -- node{No} (wait_60_minutes);
|
||||
\path [line] (stretch_fold) -- (wait_60_minutes);
|
||||
\path [line] (wait_60_minutes) -- (check_dough);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
\node [start] (init) {Dividing required?};
|
||||
\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, below of=yes, node distance=3cm] (no) {No};
|
||||
\node [success, below of=yes] (no) {No};
|
||||
\path [line] (init) -- (more_than_one_loaf);
|
||||
\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}
|
||||
|
||||
@@ -7,14 +7,13 @@
|
||||
\node [block, below of=spritz] (close) {Close DO};
|
||||
\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, below of=heat_oven] (wait_5_minutes) {Wait\\ 5 minutes};
|
||||
\node [decision, below of=wait_5_minutes, node distance=4cm] (is_ready_check) {Core temperature \qty{92}{\degreeCelsius} (\qty{197}{\degF})?};
|
||||
\node [decision, below right= 5cm and -1 cm of heat_oven] (is_ready_check)
|
||||
{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=wait_5_minutes] (test_temperature_again) {Test core temperature again};
|
||||
\node [decision, right of=remove_do_lid, node distance=4cm] (dark_enough_decision) {Crust color dark enough?};
|
||||
\node [success, below of=dark_enough_decision] (finish_baking) {Bread is finished};
|
||||
\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};
|
||||
\node [decision, right of=remove_do_lid, node distance=3.5cm] (dark_enough_decision) {Crust color dark enough?};
|
||||
\node [success, below of=dark_enough_decision, node distance=4cm] (finish_baking) {Bread is finished};
|
||||
\node [block, right of=dark_enough_decision, node distance=3.5cm] (bake_5_more_minutes) {Bake another 5~minutes};
|
||||
\path [line] (heat_oven) -- (remove_oven);
|
||||
\path [line] (remove_oven) -- (open_load_dough);
|
||||
\path [line] (open_load_dough) -- (score);
|
||||
@@ -22,14 +21,12 @@
|
||||
\path [line] (spritz) -- (close);
|
||||
\path [line] (close) -- (back_oven);
|
||||
\path [line] (back_oven) -- (bake);
|
||||
\path [line] (bake) -- (is_ready_check);
|
||||
\path [line] (is_ready_check) -- node{yes} (remove_do_lid);
|
||||
\path [line] (is_ready_check) -- node{no} (wait_5_minutes);
|
||||
\path [line] (wait_5_minutes) -- (test_temperature_again);
|
||||
\path [line] (test_temperature_again) -- (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{No} (wait_5_minutes);
|
||||
\path [line] (wait_5_minutes.west) -- node{} ++(-1.5, 0) |- (is_ready_check.west);
|
||||
\path [line] (remove_do_lid) -- (dark_enough_decision);
|
||||
\path [line] (dark_enough_decision) -- node{yes} (finish_baking);
|
||||
\path [line] (dark_enough_decision) -- node{no} (bake_5_more_minutes);
|
||||
\path [line] (bake_5_more_minutes) -- (test_crust_again);
|
||||
\path [line] (test_crust_again) -- (dark_enough_decision);
|
||||
\path [line] (dark_enough_decision) -- node{Yes} (finish_baking);
|
||||
\path [line] (dark_enough_decision) -- node{No} (bake_5_more_minutes);
|
||||
\path [line] (bake_5_more_minutes.east) -- node{} ++(1, 0) -- node{} ++(0, 2.3) -| (dark_enough_decision.north);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\begin{tikzpicture}[node distance = 4cm, auto]
|
||||
\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);
|
||||
\node [block, right of=wait1, node distance=3cm] (knead1) {Knead 5~minutes};
|
||||
\path [line] (wait1) -- (knead1);
|
||||
\node [block, right of=knead1, node distance=3cm] (wait2) {Wait\\15~minutes};
|
||||
\path [line] (knead1) -- (wait2);
|
||||
\node [decision, below of=wait2, node distance=3cm] (windowpane_test) {Window-pane?};
|
||||
\node [block, right of=wait1] (knead) {Knead 5~minutes};
|
||||
\path [line] (wait1) -- (knead);
|
||||
\node [block, right of=knead] (wait2) {Wait\\15~minutes};
|
||||
\path [line] (knead) -- (wait2);
|
||||
\node [decision, below of=wait2, node distance=4cm] (windowpane_test) {Window-pane?};
|
||||
\path [line] (wait2) -- (windowpane_test);
|
||||
\path [line] (windowpane_test) -- node{no} (knead1);
|
||||
\node [decision, left of=windowpane_test, node distance=4.5cm] (more_water) {Bassinage for more water?};
|
||||
\path [line] (windowpane_test) -- node{yes} (more_water);
|
||||
\node [block, left of=more_water, node distance=4.5cm] (add_water) {Add water};
|
||||
\path [line] (more_water) -- node{yes} (add_water);
|
||||
\path [line] (add_water) -- (knead1);
|
||||
\node [decision, below of=more_water, node distance=3.5cm] (dough_sample) {Aliquot 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};
|
||||
\path [line] (dough_sample) -- node{no} (dough_ball);
|
||||
\node [block, below of=dough_sample, node distance=3cm] (extract_sample) {Extract sample};
|
||||
\path [line] (dough_sample) -- node{yes} (extract_sample);
|
||||
\path [line] (extract_sample) -- (dough_ball);
|
||||
\node [success, below of=dough_ball, node distance=3cm] (begin_bulk) {Begin bulk fermentation};
|
||||
\path [line] (windowpane_test.east) -- node{No} ++(1, 0) -- node{} ++(0, 5.7) -| (knead.north);
|
||||
\node [decision] at (windowpane_test -| knead) (more_water) {Bassinage for more water?};
|
||||
\path [line] (windowpane_test) -- node{Yes} (more_water);
|
||||
\node [block] at (wait1 |- more_water) (add_water) {Add water};
|
||||
\path [line] (more_water) -- node{Yes} (add_water);
|
||||
\path [line] (add_water.north east) -- (knead.south west);
|
||||
\node [decision, below of=more_water, node distance=4.5cm] (dough_sample) {Aliquot sample?};
|
||||
\path [line] (more_water) -- node{No} (dough_sample);
|
||||
\node [block] at (dough_sample -| wait2) (dough_ball) {Make round dough ball};
|
||||
\path [line] (dough_sample) -- node{No} (dough_ball);
|
||||
\node [block, below of=dough_sample] (extract_sample) {Extract sample};
|
||||
\path [line] (dough_sample) -- node{Yes} (extract_sample);
|
||||
\path [line] (extract_sample.north east) -- (dough_ball.south west);
|
||||
\node [success, below of=dough_ball] (begin_bulk) {Begin bulk fermentation};
|
||||
\path [line] (dough_ball) -- (begin_bulk);
|
||||
\end{tikzpicture}
|
||||
|
||||
69
book/figures/fig-life-planet-sourdough-timeline.tex
Normal 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}
|
||||
@@ -1,19 +1,17 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\node [start] (init) {Make a regular or stiff starter};
|
||||
\begin{tikzpicture}[node distance = 5cm, auto]
|
||||
\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=feed_new_ratio] (next_day) {Wait\\ \qty{24}{\hour}};
|
||||
\node [block, below of=init, 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 [decision, below of=next_day, node distance=4cm] (ready_signs) {Sour yogurty smell and bubbles visible on flour?};
|
||||
\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};
|
||||
\node [decision, below of=feed_new_ratio, node distance=5cm] (ready_signs) {Sour yogurty smell and bubbles visible on flour?};
|
||||
\node [block, right of=ready_signs, node distance=4cm] (feed_again) {Feed again using 1:5:25 ratio};
|
||||
\node [block, left of=ready_signs, node distance=5cm] (last_feed) {Feed one last time};
|
||||
\node [success, below of=last_feed, node distance=4cm] (bread_dough) {Make bread dough};
|
||||
\path [line] (init) -- (feed_new_ratio);
|
||||
\path [line] (feed_new_ratio) -- (next_day);
|
||||
\path [line] (feed_again) -- node{repeat 3 times} (feed_new_ratio);
|
||||
\path [line] (next_day) -- node{after 3~days} (test);
|
||||
\path [line] (next_day) -- (feed_again);
|
||||
\path [line] (test) -- (ready_signs);
|
||||
\path [line] (ready_signs) -- node{no} (feed_again);
|
||||
\path [line] (ready_signs) -- node{yes} (last_feed);
|
||||
\path [line] (feed_new_ratio) -- node{Wait \qty{24}{\hour}} (ready_signs);
|
||||
\path [line] (feed_again) -- node[anchor=east] {} ++(2.2,0) |- (feed_new_ratio);
|
||||
\path [line] (ready_signs) -- node{No} (feed_again);
|
||||
\path [line] (ready_signs) -- node[above=2pt]{~Yes} (last_feed);
|
||||
\path [line] (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}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\node [start] (init) {Mix ingredients};
|
||||
\node [block, below of=init, node distance=3cm] (bulk_ferment) {Bulk ferment};
|
||||
\node [block, right of=init, node distance=3cm] (divide) {Divide};
|
||||
\node [block, below of=divide, node distance=3cm] (shape) {Shape};
|
||||
\node [block, right of=divide, node distance=3cm] (proof) {Proof};
|
||||
\node [success, below of=proof, node distance=3cm] (bake) {Bake};
|
||||
\begin{tikzpicture}[node distance = 3.8cm, auto]
|
||||
\node [start] (init) {Mix \\ingredients};
|
||||
\node [block, below of=init, node distance = 3cm] (bulk_ferment) {Bulk ferment};
|
||||
\node [block, right of=init] (divide) {Divide};
|
||||
\node [block] at (divide |- bulk_ferment) (shape) {Shape};
|
||||
\node [block, right of=divide] (proof) {Proof};
|
||||
\node [success] at (proof |- bulk_ferment) (bake) {Bake};
|
||||
\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] (shape) -- (proof);
|
||||
\path [line] (shape.north east) -- (proof.south west);
|
||||
\path [line] (proof) -- (bake);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\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_start] (init) {Room temperature-proofing?};
|
||||
\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, right of=poke, node distance=4cm] (wait_poke) {Wait\\ 15~minutes};
|
||||
\node [decision, below of=poke, node distance=3cm] (dent_visible_decision) {Dent still visible after 1~minute?};
|
||||
\node [block, left of=poke] (wait_poke) {Wait\\ 15~minutes};
|
||||
\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 [block, below of=retard_bake_decision, node distance=3cm] (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, 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{no} (retard_bake_decision);
|
||||
\node [block] at (retard_bake_decision |- poke) (wait_retard) {Wait\\ 15~minutes};
|
||||
\node [block] at (wait_retard |- bake) (retard) {Proof in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
|
||||
\path [line] (init) -- node{Yes} (poke);
|
||||
\path [line] (init) -- node{No} (retard_bake_decision);
|
||||
\path [line] (poke) -- (dent_visible_decision);
|
||||
\path [line] (dent_visible_decision) -- node{yes} (bake);
|
||||
\path [line] (dent_visible_decision) -- node{no} (wait_poke);
|
||||
\path [line] (dent_visible_decision) -- node{Yes} (bake);
|
||||
\path [line] (dent_visible_decision.west) -- node{No} ++(-1.4, 0) -- node{} (wait_poke.south);
|
||||
\path [line] (wait_poke) -- (poke);
|
||||
\path [line] (retard_bake_decision) -- node{yes} (wait_retard);
|
||||
\path [line] (retard_bake_decision) -- node{no} (move_to_fridge);
|
||||
\path [line] (retard_bake_decision) -- node{Yes} (wait_retard);
|
||||
\path [line] (retard_bake_decision.east) -- node{No} ++(1, 0) |- node{} (retard.east);
|
||||
\path [line] (wait_retard) -- (retard);
|
||||
\path [line] (move_to_fridge) -- (retard);
|
||||
\path [line] (retard) -- (bake);
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\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 [fail, right of=overfermented, node distance=3cm] (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, right of=shaping_technique, node distance=3cm] (flour) {Flour shaped dough};
|
||||
\node [block, right of=flour, node distance=3cm] (banneton) {Place upside down in banneton};
|
||||
\node [success, right of=banneton, node distance=3cm] (proof) {Begin proofing};
|
||||
\node [fail, right of=overfermented, node distance=4cm] (loafpan) {Move to loaf pan, short proof, then bake directly};
|
||||
\node [block, below of=overfermented_decision, node distance=4cm] (shaping_technique) {Proceed with shaping technique};
|
||||
\node [block, right of=shaping_technique] (flour) {Flour shaped dough};
|
||||
\node [block, right of=flour] (banneton) {Place upside down in banneton};
|
||||
\node [success, right of=banneton] (proof) {Begin proofing};
|
||||
\path [line] (init) -- (overfermented_decision);
|
||||
\path [line] (overfermented_decision) -- node{yes} (overfermented);
|
||||
\path [line] (overfermented_decision) -- node{no} (shaping_technique);
|
||||
\path [line] (overfermented_decision) -- node{Yes} (overfermented);
|
||||
\path [line] (overfermented_decision) -- node{No} (shaping_technique);
|
||||
\path [line] (shaping_technique) -- (flour);
|
||||
\path [line] (flour) -- (banneton);
|
||||
\path [line] (banneton) -- (proof);
|
||||
|
||||
69
book/figures/fig-sourdough-history-timeline.tex
Normal 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}
|
||||
@@ -4,8 +4,8 @@
|
||||
\path [line] (init) -- (all_starter_used);
|
||||
\node [block, right of=init, node distance=3cm] (use_dough) {Take \qty{10}{\gram} of your bread dough};
|
||||
\node [block, right of=all_starter_used, node distance=3cm] (use_starter) {Take all but not more than \qty{10}{\gram} of your starter};
|
||||
\path [line] (all_starter_used) -- node{yes} (use_dough);
|
||||
\path [line] (all_starter_used) -- node{no} (use_starter);
|
||||
\path [line] (all_starter_used) -- node{Yes} (use_dough);
|
||||
\path [line] (all_starter_used) -- node{No} (use_starter);
|
||||
\node [block, right of=use_dough, node distance=3cm] (feed_starter) {Feed using 1:5:5 ratio};
|
||||
\path [line] (use_dough) -- (feed_starter);
|
||||
\path [line] (use_starter) -- (feed_starter);
|
||||
@@ -13,20 +13,20 @@
|
||||
\path [line] (feed_starter) -- (bake_next_day_check);
|
||||
\node [success, right of=bake_next_day_check, node distance=3.5cm]
|
||||
(make_bread_dough) {Make bread dough again after \qtyrange{8}{12}{\hour}};
|
||||
\path [line] (bake_next_day_check) -- node{yes} (make_bread_dough);
|
||||
\path [line] (bake_next_day_check) -- node{Yes} (make_bread_dough);
|
||||
\node [decision, right of=use_starter, node distance=3cm] (bake_next_week_check) {Baking in next 2 weeks?};
|
||||
\node [block, right of=bake_next_week_check, node distance=3.5cm] (store_fridge) {Store starter in fridge at \qty{4}{\degreeCelsius} (\qty{40}{\degF})};
|
||||
\path [line] (bake_next_week_check) -- node{yes} (store_fridge);
|
||||
\path [line] (bake_next_week_check) -- node{Yes} (store_fridge);
|
||||
\node [success, right of=store_fridge, node distance=3cm] (feed_after_fridge) {Feed again using 1:5:5 ratio \qtyrange{8}{12}{\hour} before making dough};
|
||||
\path [line] (store_fridge) -- (feed_after_fridge);
|
||||
\path [line] (bake_next_day_check) -- node{no} (bake_next_week_check);
|
||||
\path [line] (bake_next_day_check) -- node{No} (bake_next_week_check);
|
||||
\node [decision, below of=use_starter, node distance=3cm] (freezer_check) {Have a freezer?};
|
||||
\path [line] (bake_next_week_check) -- (store_fridge);
|
||||
\path [line] (bake_next_week_check) -- node{no} (freezer_check);
|
||||
\path [line] (bake_next_week_check) -- node{No} (freezer_check);
|
||||
\node [block, right of=freezer_check, node distance=3cm] (dry_starter) {Dry your starter};
|
||||
\node [block, below of=dry_starter, node distance=3cm] (freeze_starter) {Freeze your starter};
|
||||
\path [line] (freezer_check) -- node{no} (dry_starter);
|
||||
\path [line] (freezer_check) -- node{yes} (freeze_starter);
|
||||
\path [line] (freezer_check) -- node{No} (dry_starter);
|
||||
\path [line] (freezer_check) -- node{Yes} (freeze_starter);
|
||||
\node [success, right of=dry_starter, node distance=3.5cm] (reactivate_freezer) {Reactivate starter for 3 days with daily 1:5:5 feedings};
|
||||
\path [line] (dry_starter) -- (reactivate_freezer);
|
||||
\path [line] (freeze_starter) -- (reactivate_freezer);
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
\begin{tikzpicture}[node distance = 3.5cm, auto]
|
||||
\node [start] (init) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
|
||||
\node [block, right of=init] (wait2) {Wait\\ \qty{24}{\hour}};
|
||||
\path [line] (init) -- (wait2);
|
||||
\node [block, below of=wait2, node distance=3.5cm] (feed) {\qty{10}{\gram} of previous day + \qty{50}{\gram} water + \qty{50}{\gram} flour, stir};
|
||||
\path [line] (wait2) -- (feed);
|
||||
\node [block, below of=feed] (discard) {Discard the rest};
|
||||
\path [line] (feed) -- (discard);
|
||||
\node [decision, right of=feed, node distance=3.5cm] (decide) {Is good?};
|
||||
\node [decision, above of=decide, node distance=3.5cm] (timeout) {Less than 10 feeds?};
|
||||
\node [fail, right of=timeout, node distance=3.5cm] (discard2) {Batch failed};
|
||||
\path [line] (timeout) -- node{no} (discard2);
|
||||
\path [line] (timeout) -- node{yes} (wait2);
|
||||
\path [line] (feed) -- (decide);
|
||||
\node [success, right of=decide, node distance=3.5cm] (use) {Ready to use};
|
||||
\path [line] (decide) -- node{no} (timeout);
|
||||
\path [line] (wait2) -- (feed);
|
||||
\path [line] (decide) -- node{yes} (use);
|
||||
\node [start] (start_n) {Mix \qty{50}{\gram} flour + \qty{50}{\gram} water, stir};
|
||||
\node [block, right of=start_n, node distance = 3.5cm] (wait_n) {Wait\\ \qty{24}{\hour}};
|
||||
\node [decision, right of=wait_n, node distance = 3.5cm] (readycheck_n) {Ready?};
|
||||
\node [block, below of=wait_n, node distance = 3.2cm] (feed_n) {Feed the mixture };
|
||||
\node [decision, right of=feed_n, node distance = 3.5cm] (limitcheck_n) {>10 feeds?};
|
||||
\node [fail, right of=limitcheck_n, node distance = 3.5cm] (abort_n) {Discard all. Start over};
|
||||
\node [success, right of=readycheck_n, node distance = 3.5cm] (final_n) {Ready to use};
|
||||
|
||||
\draw [line] (start_n) -- (wait_n);
|
||||
\draw [line] (wait_n) -- (readycheck_n);
|
||||
\draw [line] (feed_n) -- (wait_n);
|
||||
\draw [line] (readycheck_n) -- node {No} (limitcheck_n);
|
||||
\draw [line] (limitcheck_n) -- node (feedok_n) {No} (feed_n) ;
|
||||
\draw [line] (limitcheck_n) -- node {Yes} (abort_n);
|
||||
\draw [line] (readycheck_n) -- node {Yes} (final_n);
|
||||
|
||||
\node [below of=feedok_n, node distance=2cm, align=left] (details2) [shape=rectangle, draw, fill=maingray]{%
|
||||
\textbf{Ready}: Mixture has \emph{grown}, has \emph{bubbles}, and \emph{smells} vinegary/yoghurty. \\
|
||||
\textbf{Feed the mixture}: Discard all but \qty{10}{\gram}, mix in \qty{50}{\gram} flour and \qty{50}{\gram} water.
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
@@ -1,19 +1,40 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\node [start] (init) {Make a starter};
|
||||
\node [block, right of=init, node distance=3cm] (feed) {Feed your starter};
|
||||
\path [line] (init) -- (feed);
|
||||
\node [block, right of=feed, node distance=3cm] (wait_12_after_feed) {Wait\\ \qty{12}{\hour}};
|
||||
\path [line] (feed) -- (wait_12_after_feed);
|
||||
\node [block, right of=wait_12_after_feed, node distance=3cm] (ready_question) {Perform readiness check};
|
||||
\path [line] (wait_12_after_feed) -- (ready_question);
|
||||
\node [block, above of=feed, node distance=3cm] (wait_12) {Wait\\ \qty{12}{\hour}};
|
||||
\path [line] (wait_12) -- (feed);
|
||||
\node [decision, right of=ready_question, node distance=3.2cm] (is_bubbly) {Bubbly? Size Increase?};
|
||||
\path [line] (ready_question) -- (is_bubbly);
|
||||
\path [line] (is_bubbly) -- node[anchor=east, above=2pt] {no} ++(2.2,0) |- (wait_12);
|
||||
\node [decision, below of=is_bubbly, node distance=4.0cm] (check_smell) {Vinegary, or yogurt smell?};
|
||||
\path [line] (is_bubbly) -- node{yes} (check_smell);
|
||||
\node [success, below of=wait_12_after_feed, node distance=4cm] (make_dough) {Make your dough};
|
||||
\path [line] (check_smell) -- node[anchor=west, above=2pt]{yes} (make_dough);
|
||||
\path [line] (check_smell) -- node[anchor=east, above=2pt] {no} ++(2.2,0) |- (wait_12);
|
||||
\node [start] (init) {Create a starter};
|
||||
\node [decision, right of=init, node distance=3.5cm] (decision_start) {Starter last fed within 3~days?};
|
||||
\node [block, right of=decision_start, text width=7em, node distance=4cm] (feed_no_branch)
|
||||
{Feed starter twice:\par \qty{48}{\hour} before\par \qtyrange{6}{12}{\hour} before};
|
||||
\node [block, below of=feed_no_branch, text width=7em, node distance=2.7cm] (feed_yes_branch)
|
||||
{Feed starter \qtyrange{6}{12}{\hour} before making dough.};
|
||||
\node [block, right of=feed_no_branch, text width=7em, node distance=4cm] (high_ratio)
|
||||
{Use a 1:10:10 ratio:\par \begin{tabular}{r@{}l}
|
||||
10&~g starter,\\
|
||||
100&~g flour, \\
|
||||
100&~g water.\end{tabular}};
|
||||
\node [block, right of=feed_yes_branch, text width=7em, node distance=4cm] (low_ratio)
|
||||
{Use a 1:5:5 ratio:\par \begin{tabular}{r@{}l}
|
||||
10&~g starter,\\
|
||||
50&~g flour, \\
|
||||
50&~g water.\end{tabular}};
|
||||
\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}
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\node [start] (init) {Make a 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 [decision, right of=feed_new_ratio, node distance=3.5cm] (too_dry) {Starter very dry, hard to mix?};
|
||||
\begin{tikzpicture}[node distance = 4cm, auto]
|
||||
\node [start] (init) {Take your regular or liquid starter};
|
||||
\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=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, below of=add_water, node distance=2cm] (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, below of=feed_new_ratio, node distance=3.5cm] (feed_again) {Feed again using 1:5:2.5 ratio};
|
||||
\node [decision, below of=repeated_3_times, node distance=3.5cm] (ready_signs) {Size increase and sour smell?};
|
||||
\node [block, below of=next_day, node distance=2cm] (last_feed) {Feed one last time};
|
||||
\node [block, below of=too_dry] (next_day) {Wait\\ \qty{24}{\hour}};
|
||||
\node [block] at (feed_new_ratio |- next_day) (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 [block] at (ready_signs -| add_water) (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] (feed_again) -- (feed_new_ratio);
|
||||
\path [line] (next_day) -- (repeated_3_times);
|
||||
\path [line] (repeated_3_times) -- node{yes} (ready_signs);
|
||||
\path [line] (repeated_3_times) -- node{no} (feed_again);
|
||||
\path [line] (ready_signs) -- node{no} (feed_again);
|
||||
\path [line] (ready_signs) -- node{yes} (last_feed);
|
||||
\path [line] (next_day) -- (ready_signs);
|
||||
\path [line] (ready_signs) -- node{No} (feed_again |- last_feed) -| (feed_again.south);
|
||||
\path [line] (ready_signs) -- node{Yes} (last_feed);
|
||||
\path [line] (last_feed) -- node{after \qtyrange{6}{12}{\hour}} (bread_dough);
|
||||
\path [line] (feed_new_ratio) -- (too_dry);
|
||||
\path [line] (add_water) -- (next_day);
|
||||
\path [line] (too_dry) -- node{no} (next_day);
|
||||
\path [line] (too_dry) -- node{yes} (add_water);
|
||||
\path [line] (ready_signs) -- node{yes} (last_feed);
|
||||
\path [line] (add_water.north) -- node{} ++(0, 1.3) -| (too_dry.north);
|
||||
\path [line] (too_dry) -- node{No} (next_day);
|
||||
\path [line] (too_dry) -- node{Yes} (add_water);
|
||||
\path [line] (ready_signs) -- node{Yes} (last_feed);
|
||||
|
||||
\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}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||
\begin{tikzpicture}[node distance = 3.2cm, auto]
|
||||
\node [start] (init) {Ready starter};
|
||||
\node [block, right of=init, node distance=3cm] (mix_ingredients) {Mix ingredients};
|
||||
\node [block, right of=mix_ingredients, node distance=3cm] (dough_strength) {Create dough strength};
|
||||
\node [block, right of=dough_strength, node distance=3cm] (bulk) {Bulk ferment};
|
||||
\node [decision, below of=dough_strength, node distance=3cm] (divide_test) {Making 1 loaf?};
|
||||
\node [block, left of=divide_test, node distance=3cm] (divide) {Divide};
|
||||
\node [block, left of=divide, node distance=3cm] (preshape) {Preshape};
|
||||
\node [block, below of=preshape, node distance=3cm] (shape) {Shape};
|
||||
\node [block, right of=shape, node distance=3cm] (proof) {Proof};
|
||||
\node [success, right of=proof, node distance=3cm] (bake) {Bake};
|
||||
\node [block, right of=init] (mix_ingredients) {Mix ingredients};
|
||||
\node [block, right of=mix_ingredients] (dough_strength) {Create dough strength};
|
||||
\node [block, right of=dough_strength] (bulk) {Bulk ferment};
|
||||
\node [decision, below of=bulk] (divide_test) {Making one loaf?};
|
||||
\node [block, right of=divide_test] (divide) {Divide};
|
||||
\node [block, below of=divide] (preshape) {Preshape};
|
||||
\node [block, below of=divide_test] (shape) {Shape};
|
||||
\node [block, left of=shape] (proof) {Proof};
|
||||
\node [success, left of=proof] (bake) {Bake};
|
||||
\path [line] (init) -- (mix_ingredients);
|
||||
\path [line] (mix_ingredients) -- (dough_strength);
|
||||
\path [line] (dough_strength) -- (bulk);
|
||||
\path [line] (bulk) -- (divide_test);
|
||||
\path [line] (divide_test) -- node{yes} (shape);
|
||||
\path [line] (divide_test) -- node{no} (divide);
|
||||
\path [line] (divide_test) -- node{Yes} (shape);
|
||||
\path [line] (divide_test) -- node{No} (divide);
|
||||
\path [line] (divide) -- (preshape);
|
||||
\path [line] (preshape) -- (shape);
|
||||
\path [line] (shape) -- (proof);
|
||||
|
||||
@@ -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}
|
||||
@@ -1,5 +1,6 @@
|
||||
\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,
|
||||
text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt,
|
||||
line width=2mm]
|
||||
@@ -18,4 +19,17 @@
|
||||
\tikzstyle{fail} = [rectangle, draw=codeblack, fill=redpic, text=black,
|
||||
text width=5em, text centered, rounded corners, minimum height=4em,
|
||||
line width=0.4mm]
|
||||
\tikzstyle{line} = [draw, -latex', thick, ->,>=to]
|
||||
% The arrowed connector line between nodes
|
||||
\tikzstyle{line} = [draw, thick, ->, >={Latex}]
|
||||
|
||||
\tikzstyle{BC} = [decorate, % Brace Calligraphic
|
||||
decoration={calligraphic brace, amplitude=3mm, raise=1mm},
|
||||
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}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
\documentclass[tikz]{standalone}
|
||||
\usepackage{tikz}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{chemfig}
|
||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||
\DeclareSIUnit\degF{\text{°}F}
|
||||
\input{flowcharts_tikz.tex}
|
||||
\input{../colors.tex}
|
||||
\input{../abbreviations.tex}
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
\chapter{Flour types}%
|
||||
\label{ch:flour-types}
|
||||
\begin{quoting}
|
||||
In this chapter we will have a closer look at different flour types
|
||||
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
|
||||
purchase the flour that you need.
|
||||
ways to distinguish different flours of the same type, this way you can more
|
||||
confidently purchase the flour you need.
|
||||
\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,
|
||||
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.
|
||||
The seed already contains a pre-built germ from the plant waiting to be
|
||||
whiter flours. Together with sieves, mills remove larger parts of the seed's
|
||||
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.
|
||||
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.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-flour-types.tex}
|
||||
\caption[Labelling of wheat flour]{A comparison of how different types
|
||||
of wheat flour are labelled in different countries.}%
|
||||
\caption[Labeling of wheat flour]{A comparison of how different types
|
||||
of wheat flour are labeled in different countries.}%
|
||||
\label{tab:flour-types-comparison}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
In Germany, the ash content is used to describe the flours. The lab will burn
|
||||
\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
|
||||
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
|
||||
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, therefore the
|
||||
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
|
||||
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.
|
||||
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.
|
||||
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
|
||||
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
|
||||
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
|
||||
want the final bread to be too sour. You do not have to worry about the gluten
|
||||
degradation, removing a huge headache from the equation.
|
||||
described. For no/low gluten flour your main focus is managing acidity, you do not
|
||||
want the final bread to be too sour. Conversely you do not have to worry about
|
||||
the gluten degradation, removing a huge headache from the equation.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-grains-bread-making-process.tex}
|
||||
\caption[Different types of grain]{An overview of different grain
|
||||
types and the steps involved in the respective bread making process.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
As 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
|
||||
also contains significant amounts of gluten, so the same characteristics hold
|
||||
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. Like wheat
|
||||
spelt contains significant amounts of gluten, so the same characteristics hold
|
||||
true.
|
||||
|
||||
Several recipes call for wheat bread flour. Bread flour can refer to different types
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
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
|
||||
wheat. The category \textbf{A} refers to good quality wheat that can be blended
|
||||
with poorer qualities to improve the flour. The category \textbf{B} refers to
|
||||
average wheat that can be used to create different baked goods. Category \textbf{C}
|
||||
wheat. The category \emph{A} refers to good quality wheat that can be blended
|
||||
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 \emph{C}
|
||||
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
|
||||
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
|
||||
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
|
||||
value as a possible indicator. However, large mills blend flours together to
|
||||
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.
|
||||
|
||||
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.
|
||||
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
|
||||
@@ -108,20 +113,19 @@ The long fermentation period also means that your microbes will enrich
|
||||
your dough with more flavor.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-overview-w-values.tex}
|
||||
\caption[Fermentation time versus W-value]{An overview of different
|
||||
levels of W-values and the respective hydrations and fermentation
|
||||
levels of W-values and the respective hydration and fermentation
|
||||
times.}%
|
||||
\label{tab:w-value}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Generally, when aiming to
|
||||
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
|
||||
is still possible, but it might be easier to use tools such as a loaf pan, or
|
||||
to make skilled bread or flatbread.
|
||||
is still possible, but it might be easier to use other techniques such as a
|
||||
loaf pan, to consider skillet bread or flatbread.
|
||||
|
||||
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
|
||||
@@ -134,8 +138,8 @@ This also provides a larger surface that your microbes can use to attack the mol
|
||||
and start the fermentation process.
|
||||
|
||||
I~am still
|
||||
yet to find a good way of milling my own flour at home. Even after trying to
|
||||
mill the flour 10 times with short breaks, I~was not able to achieve the same
|
||||
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
|
||||
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
|
||||
de-gas quickly and turn into very flat breads. I~have had great success though when
|
||||
|
||||
467
book/glossary/glossary.tex
Normal 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 that’s 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[Baker’s Math] Baker’s math is a ratio based system of sharing recipes,
|
||||
making them easily scalable. It’s 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[Baker’s percentage] See Baker’s 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 dough’s 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 dough’s 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[Fool’s 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.
|
||||
There’s 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}
|
||||
@@ -9,17 +9,83 @@
|
||||
lessons from the past.
|
||||
\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
|
||||
sourdough breads has been excavated in Switzerland.
|
||||
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}.
|
||||
sourdough breads has been excavated in Switzerland~\cite{switzerland+bread}.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{einkorn-crumb}
|
||||
\caption[Ancient Einkorn flatbread]{An ancient Einkorn flatbread. Note the
|
||||
dense crumb structure.}%
|
||||
\label{einkorn-crumb}
|
||||
\label{fig:einkorn-crumb}
|
||||
\end{figure}
|
||||
|
||||
Another popular story is that a lady in Egypt was making
|
||||
@@ -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
|
||||
the dough anyway and was rewarded with a much
|
||||
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
|
||||
were the reason the bread was better. It is not clear when
|
||||
they started using a bit of the dough from the previous
|
||||
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
|
||||
plus bacteria start to decompose the flour-water mixture, also
|
||||
known as your dough. The yeast makes the dough fluffy, and
|
||||
the bacteria primarily creates acidity. The different
|
||||
bread making---as we know it today---was born: Wild yeast
|
||||
in the flour and in the air, with bacteria
|
||||
starting to decompose the flour-water mixture.
|
||||
The yeast makes the dough fluffy,
|
||||
and the bacteria primarily creates acidity. The different
|
||||
microorganisms work in a symbiotic relationship. Humans
|
||||
appreciated the enhanced airy structure and slight acidity
|
||||
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
|
||||
or making wine. A small tiny batch of the previous production
|
||||
would be used for the next production. In this way, humans created
|
||||
modern bread yeasts, wine yeasts, and beer yeasts. Only in 1680,
|
||||
the scientist Anton van~Leeuwenhoek first studied yeast microorganisms
|
||||
under a microscope. Over time with each batch, the yeasts and bacteria
|
||||
modern bread yeasts, wine yeasts, and beer yeasts~\cite{egypt+beer}.
|
||||
|
||||
Over time with each batch, the yeasts and bacteria
|
||||
would become better at consuming whatever they were thrown at.
|
||||
By feeding your sourdough starter, you are selectively breeding
|
||||
microorganisms that are good at eating your flour. With
|
||||
each iteration, your sourdough knows how to better ferment the flour
|
||||
at hand. This is also the reason why more mature sourdough starters sometimes
|
||||
tend to leaven doughs faster~\cite{review+of+sourdough+starters}. It is crazy if you
|
||||
think about it. People have been using this process despite not
|
||||
knowing what was actually going on for thousands of years! The
|
||||
sourdough in itself is a symbiotic relationship. But the sourdough
|
||||
at hand. This is also the reason\footnote{It is crazy if you think about it.
|
||||
People have been using this process despite not knowing what was going on for
|
||||
thousands of years!} why more mature sourdough starters sometimes tend to
|
||||
leaven doughs faster~\cite{review+of+sourdough+starters}. The sourdough in
|
||||
itself is a symbiotic relationship, but the sourdough
|
||||
also adapted to humans and formed a symbiotic relationship with us.
|
||||
For food and water, we are rewarded with delicious bread. In exchange,
|
||||
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
|
||||
further all around the world.
|
||||
|
||||
Brewers would start to experiment with utilizing the muddy leftovers
|
||||
of the beer fermentation to start making doughs. They would notice
|
||||
Evidence suggests early grain grinding in northern Australia around
|
||||
\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
|
||||
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).
|
||||
These are essentially bread rolls made with brewer's yeast instead
|
||||
of the sourdough leavening agent. As the process is more expensive,
|
||||
bread rolls like these were ultimately consumed by the noble people
|
||||
in Vienna~\cite{vienna+breadrolls}.
|
||||
|
||||
Industrialization of the grist milling process, starting in the late
|
||||
18\textsuperscript{th}~century with Oliver Evans (\num{1785}) and his mill
|
||||
designs for continuous hands-off flour production~\cite{evans+mill}, and
|
||||
evolving to steam-powered mills, made possible significant advancements in
|
||||
bread production.
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{sourdough-stove}
|
||||
\caption{A bread made over the stove without an oven.}%
|
||||
\label{sourdough-stove}
|
||||
\label{fig:sourdough-stove}
|
||||
\end{figure}
|
||||
|
||||
Only in 1857, the French microbiologist Louis Pasteur discovered
|
||||
the process of alcoholic fermentation. He would prove that
|
||||
yeast microorganisms are the reason for alcoholic fermentation
|
||||
and not other chemical catalysts. What would then start is
|
||||
what I~describe as the 150 lost years of bread making. In 1879
|
||||
the first machines and centrifuges were developed to centrifuge
|
||||
pure yeast. This yeast would be extracted from batches of sourdough.
|
||||
The pure yeast would prove to be excellent and turbocharged
|
||||
at leavening bread doughs. What would previously take 10~hours
|
||||
to leaven a bread dough could now be done within 1~hour.
|
||||
The process became much more efficient. During World~War~II
|
||||
the first packaged dry yeast was developed. This would ultimately
|
||||
allow bakeries and home bakers to make bread much faster.
|
||||
Thanks to pure yeast, building bread making machines was
|
||||
possible. Provided you maintain the same temperature,
|
||||
your yeast would always ferment exactly the same way.
|
||||
The biggest advancement of industrial bread making happened in \num{1857}.
|
||||
The French microbiologist Louis Pasteur discovered the process of alcoholic
|
||||
fermentation. He would prove that yeast microorganisms are the reason for
|
||||
alcoholic fermentation and not other chemical catalysts. He continued with his
|
||||
research and was the first person to isolate and grow pure yeast strains.
|
||||
Soon later in \num{1868} the Fleischmann brothers Charles and Maximilian were
|
||||
the first to patent pure yeast strains for bread making. The yeasts offered
|
||||
were isolated from batches of sourdough. By \num{1879} the machinery was built
|
||||
to multiply the yeast in large centrifuges~\cite{fleischmann+history}. The
|
||||
pure yeast would prove to be excellent and turbocharged at leavening bread
|
||||
doughs. What would previously take 10~hours to leaven a bread dough could now
|
||||
be done within 1~hour. The process became much more efficient. What
|
||||
ultimately made making large batches of dough possible, was the invention of
|
||||
the electrical kneader. Rufus Eastman, an American inventor, is often
|
||||
credited with an important advancement in mixer technology. In \num{1885}, he
|
||||
received a patent for an electric mixer with a mechanical hand-crank
|
||||
mechanism. This device was not as advanced or as widely adopted as later
|
||||
electric mixers, but it was an early attempt to mechanize mixing and kneading
|
||||
processes in the kitchen using electricity. Eastman's invention represented
|
||||
an important step in the development of electric mixers, but it wasn't as
|
||||
sophisticated or popular as later models like the KitchenAid mixer. The
|
||||
KitchenAid mixer, introduced in \num{1919}, is often recognized as one of the
|
||||
first widely successful electric mixers and played a significant role in
|
||||
revolutionizing kitchen appliances for home
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
@@ -151,8 +299,9 @@ During the California Gold Rush, French bakers brought the sourdough
|
||||
culture to Northern America. A popular bread became the
|
||||
San Francisco sourdough. It's characterized by its unique
|
||||
tang (which was previously common for every bread). It
|
||||
however remained more of a niche food. What really expedited
|
||||
the comeback of sourdough was the 2020 COVID-19 pandemic.
|
||||
however remained more of a niche food while industrial bread
|
||||
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 returned yeast couldn't be found. People started
|
||||
to look for alternatives and rediscovered the ancient
|
||||
|
||||
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 73 KiB |
BIN
book/images/external/hooch.jpg
vendored
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
BIN
book/images/flat-breads-selection.jpg
Normal file
|
After Width: | Height: | Size: 586 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
BIN
book/images/infographic-enzymes.jpg
Normal file
|
After Width: | Height: | Size: 564 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
@@ -1,5 +1,5 @@
|
||||
\chapter{Acknowledgements}%
|
||||
\label{ch:Acknowledgements}
|
||||
\chapter{Acknowledgments}%
|
||||
\label{ch:Acknowledgments}
|
||||
This book would not have been possible without your help.
|
||||
With all your donations I~have been able to focus on finishing
|
||||
this book. Your continuous support allows me to focus
|
||||
@@ -1,4 +0,0 @@
|
||||
\chapter{Foreword}%
|
||||
\label{ch:Foreword}
|
||||
Hopefully one day there is going to be an awesome foreword
|
||||
by another bread baker!
|
||||
@@ -46,7 +46,8 @@ seemingly
|
||||
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 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.
|
||||
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
|
||||
@@ -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
|
||||
bug. That is when the developer must dig deeper to see the \emph{what} and the
|
||||
\emph{why} behind what
|
||||
the framework is doing. You will need to read other engineer's source code, and you will be forced
|
||||
the framework is doing. You will need to read other engineers' source code, and you will be forced
|
||||
to understand \emph{why} things are happening.
|
||||
|
||||
Being unhappy with what I~was baking, my engineering mindset took over, and I~had
|
||||
to do my own deep dive to understand what was going on. Much to my surprise, however,
|
||||
none of the recipes I'd encountered would tell me \emph{why} I~should use amount X
|
||||
of water and amount Y of flour, or \emph{why} exactly I~should use fresh yeast over dry yeast. Why
|
||||
should I~slap my dough while kneading it on the counter? Why is a standmixer
|
||||
better than kneading by hand? Why should I~let the dough sit for this long?
|
||||
Why is steaming the dough during baking important? Do I~really need to
|
||||
get myself an expensive Dutch oven to bake bread?
|
||||
The problem compounded when I~started reading about sourdough. It all sounded like black
|
||||
magic. Why were some sourdoughs made from fruits, while others were made from flour?
|
||||
Why should one recipe use wheat while another used rye or spelt? How often should the
|
||||
sourdough be fed? The questions I~had then could have filled 20~pages. I~was confused,
|
||||
but I~became even more determined to learn how decent bread should be made at home.
|
||||
Being unhappy with what I~was baking, my engineering mindset took over, and
|
||||
I~had to do my own deep dive to understand what was going on. Much to my
|
||||
surprise, however, none of the recipes I'd encountered would tell me
|
||||
\emph{why} I~should use amount $X$ of water and amount $Y$ of flour, or
|
||||
\emph{why} exactly I~should use fresh yeast over dry yeast. Why should I~slap
|
||||
my dough while kneading it on the counter? Why is a stand mixer better than
|
||||
kneading by hand? Why should I~let the dough sit for this long? Why is
|
||||
steaming the dough during baking important? Do I~really need to get myself an
|
||||
expensive Dutch oven to bake bread? The problem compounded when I~started
|
||||
reading about sourdough. It all sounded like black magic. Why were some
|
||||
sourdoughs made from fruits, while others were made from flour? Why should
|
||||
one recipe use wheat while another used rye or spelt? How often should the
|
||||
sourdough be fed? The questions I~had then could have filled 20~pages. I~was
|
||||
confused, but I~became even more determined to learn how decent bread should
|
||||
be made at home.
|
||||
|
||||
The feedback I~received from friends helped me to improve with each
|
||||
iteration of homemade bread. Compared to coding, where you sometimes have to wait months
|
||||
@@ -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.
|
||||
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
|
||||
it open source and have asked the community to support my work financially via my ko-fi page
|
||||
\url{https://ko-fi.com/thebreadcode}. The community's feedback has been amazing so far, and
|
||||
it open source and have asked the community to support my work with
|
||||
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
|
||||
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}
|
||||
|
||||
588
book/makefile
@@ -1,324 +1,424 @@
|
||||
# Macros for commands
|
||||
# Macros for commands {{{
|
||||
LATEX := latexmk -cd -pdflua -lualatex="lualatex -interaction=nonstopmode" -synctex=1 -use-make
|
||||
EBOOK := tex4ebook --lua -d epub -c tex4ebook.cfg
|
||||
WEBSITE := make4ht --lua -c website.cfg -a debug -uf html5+tidy+common_domfilters+dvisvgm_hashes
|
||||
EBOOK := tex4ebook --lua -d epub -f epub -c tex4ebook.cfg -B epub_build
|
||||
WEBSITE := make4ht --lua -c website.cfg -uf html5+tidy+common_domfilters -B website_build
|
||||
CLEAN := latexmk -cd -lualatex -c -use-make
|
||||
EBOOK_CONVERT := kindlegen
|
||||
CHECK_1 := lacheck
|
||||
CHECK_2 := chktex
|
||||
CONVERT_PIC := convert
|
||||
REDUCE_PIC := -resize '800x800>' \
|
||||
-strip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
|
||||
-set colorspace Gray -separate -evaluate-sequence Mean
|
||||
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
|
||||
LATEX += -diagnostics
|
||||
EBOOK += -a debug
|
||||
WEBSITE += -a debug
|
||||
endif
|
||||
# }}}
|
||||
|
||||
website_dir := static_website_html
|
||||
# Default target is not all because most of the time we just want a pdf...
|
||||
# and building everything take a long time.
|
||||
.DEFAULT_GOAL := serif
|
||||
|
||||
# List all files that are dependencies
|
||||
# Dependencies {{{
|
||||
chapters = baking basics bread-types cover flour-types history intro mix-ins\
|
||||
non-wheat-sourdough sourdough-starter storing-bread troubleshooting\
|
||||
wheat-sourdough
|
||||
|
||||
src_tables := $(wildcard tables/table-*.tex)
|
||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
||||
wheat-sourdough glossary
|
||||
|
||||
# Actual book text and LaTeX code {{{
|
||||
src_tex := $(foreach directory, $(chapters), $(wildcard $(directory)/*.tex))
|
||||
src_tex += book.tex book_sans_serif.tex references.bib figures/vars.tex
|
||||
src_tex += supporters.csv sourdough.sty colors.tex
|
||||
src_tex += supporters.csv sourdough.sty colors.tex abbreviations.tex
|
||||
src_tex += $(src_recipes)
|
||||
# }}}
|
||||
|
||||
# Tables and TikZ flowcharts/plots/drawings... {{{
|
||||
src_tables := $(wildcard tables/table-*.tex)
|
||||
src_figures := $(wildcard figures/fig-*.tex) figures/flowcharts_tikz.tex
|
||||
src_figures += $(wildcard plots/fig-*.tex) abbreviations.tex colors.tex
|
||||
src_recipes := $(wildcard recipes/*.tex)
|
||||
src_plots := $(wildcard plots/*.table)
|
||||
# }}}
|
||||
|
||||
tgt_figures := $(patsubst %.tex, %.png,$(src_figures))
|
||||
|
||||
# Photos {{{
|
||||
images := $(wildcard images/*/*.jpg)
|
||||
images += $(wildcard images/*.jpg)
|
||||
images += $(wildcard images/*.png)
|
||||
images += $(wildcard images/*/*.png)
|
||||
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))
|
||||
|
||||
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/*)
|
||||
ruby_src := ../website/modify_build.rb $(website_assets)
|
||||
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) $<
|
||||
ruby_pkg := ../website/Gemfile ../website/Gemfile.lock
|
||||
# }}}
|
||||
|
||||
# Internal build rules {{{
|
||||
# Flowcharts {{{
|
||||
# TODO: check if it works on github CI
|
||||
%.png: %.tex
|
||||
@echo "\input{./vars.tex}" > $@.in
|
||||
# \b is backspace..
|
||||
@echo "\\\begin{document}" >> $@.in
|
||||
@printf '%s\n' "\input{./vars.tex}" > $@.in
|
||||
@printf '%s\n' "\begin{document}" >> $@.in
|
||||
@cat $< >> $@.in
|
||||
@echo "\\\end{document}" >> $@.in
|
||||
@printf '%s\n' "\end{document}" >> $@.in
|
||||
$(LATEX) $@.in
|
||||
figures/export_figures.sh $@.pdf
|
||||
|
||||
%.xbb: %.jpg
|
||||
ebb -x $<
|
||||
# }}}
|
||||
|
||||
# Pdf {{{
|
||||
# Default rules for pdf, getting overwritten when built in a sub-directory
|
||||
%.pdf: %.tex
|
||||
$(LATEX) $<
|
||||
|
||||
book_serif/book.pdf: $(src_all)
|
||||
$(LATEX) -output-directory=book_serif book.tex
|
||||
|
||||
book_sans_serif/book_sans_serif.pdf: $(src_all)
|
||||
$(LATEX) -output-directory=book_sans_serif book_sans_serif.tex
|
||||
# }}}
|
||||
|
||||
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb
|
||||
$(EBOOK) -f epub $<
|
||||
# Ebook {{{
|
||||
###################################
|
||||
.PHONY: copy_ebook_files copy_ebook_files_low_res
|
||||
epub/%.epub: %.tex $(ebook_src) cover/cover-page.xbb
|
||||
$(EBOOK) $<
|
||||
|
||||
epub/%.mobi: epub/%.epub
|
||||
$(EBOOK_CONVERT) $< -o $(notdir $@)
|
||||
copy_ebook_files: ebook
|
||||
$(RSYNC) --exclude '*.png' epub_build/book-epub/ bw-book-epub/
|
||||
|
||||
epub/%.azw3: epub/%.epub
|
||||
$(EBOOK_CONVERT) $< -o $(notdir $@)
|
||||
# Now that we have built the ebook we will generate 2 more versions
|
||||
#
|
||||
# 1) With kindle app on phone we want a colour version with size < 50 MB
|
||||
# 2) A black-white version for actual eink readers
|
||||
#
|
||||
# In both cases we just convert images and repack the ebpub
|
||||
|
||||
# Now with the rules
|
||||
# Expected usual rules first
|
||||
.PHONY: default
|
||||
default: build_serif_pdf
|
||||
# We do not convert SVG to B&W or lower res for now as they are super small
|
||||
# anyway
|
||||
bw-book-epub/OEBPS/%.jpg: %.jpg
|
||||
mkdir -p $(dir $@)
|
||||
$(CONVERT_PIC) $< $(REDUCE_PIC) $@
|
||||
|
||||
.PHONY: all
|
||||
all: bake
|
||||
bw-book-epub/OEBPS/%.png: %.png
|
||||
mkdir -p $(dir $@)
|
||||
$(CONVERT_PIC) $< $(REDUCE_PIC) $@
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo ""
|
||||
@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"
|
||||
epub/bw_book.epub: copy_ebook_files $(bw_images)
|
||||
cd bw-book-epub; zip -q0X ../epub/bw_book.epub mimetype
|
||||
cd bw-book-epub; zip -q9XrD ../epub/bw_book.epub ./
|
||||
|
||||
# Now the low res
|
||||
copy_ebook_files_low_res: ebook
|
||||
$(RSYNC) epub_build/book-epub/ low-res-book-epub/
|
||||
|
||||
# Finally project specif targets
|
||||
.PHONY: build_pdf
|
||||
build_pdf: build_serif_pdf build_sans_serif_pdf
|
||||
low-res-book-epub/OEBPS/%.jpg: %.jpg
|
||||
mkdir -p $(dir $@)
|
||||
$(CONVERT_PIC) $< $(REDUCE_PIC_COLOR) $@
|
||||
|
||||
.PHONY: build_serif_pdf
|
||||
build_serif_pdf: book_serif/book.pdf
|
||||
epub/low_res_book.epub: copy_ebook_files_low_res $(low_res_images)
|
||||
cd low-res-book-epub; zip -q0X ../epub/low_res_book.epub mimetype
|
||||
cd low-res-book-epub; zip -q9XrD ../epub/low_res_book.epub ./
|
||||
# }}}
|
||||
|
||||
.PHONY: build_sans_serif_pdf
|
||||
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf
|
||||
|
||||
.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 {{{
|
||||
###################################
|
||||
.PHONY: html website
|
||||
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb
|
||||
$(WEBSITE) -d $(website_dir) book.tex
|
||||
|
||||
.PHONY: html
|
||||
html: $(website_dir)/book.html
|
||||
cp $< $(website_dir)/index.html
|
||||
|
||||
# Because packages will be installed in hard to predict places use a file as
|
||||
# marker..
|
||||
../website/_bundle_install_done: $(ruby_pkg)
|
||||
- rm ../website/$@
|
||||
-rm ../website/$@
|
||||
cd ../website && bundle install
|
||||
touch ../website/$@
|
||||
|
||||
# TODO: this will run every single time, but is so fast we don't really care
|
||||
.PHONY: website
|
||||
website: html ../website/_bundle_install_done $(ruby_src)
|
||||
cd ../website && ruby modify_build.rb
|
||||
#}}}
|
||||
|
||||
# Debug Stuff from now on
|
||||
.PHONY: quick show_tools_version printvars
|
||||
# Figures only {{{
|
||||
###################################
|
||||
.PHONY: export_figures
|
||||
# Requires that you have docker running on your computer.
|
||||
export_figures: pdf $(tgt_figures)
|
||||
cd figures/ && bash export_figures.sh
|
||||
# }}}
|
||||
# }}}
|
||||
|
||||
# Those 2 targets allow fast debug cycles but not reolvig refrences etc
|
||||
quick: # run latex only once no biber, no references etc..
|
||||
$(LATEX) -e '$$max_repeat=1' -output-directory=book_serif book.tex
|
||||
# User level targets {{{
|
||||
# Build targets {{{
|
||||
.PHONY: all
|
||||
all: bake
|
||||
|
||||
quick_ebook: # run latex only once no biber, no references etc..
|
||||
$(EBOOK) --mode draft -f epub book.tex
|
||||
# Finally actual project targets (i.e. build pdf and ebooks)
|
||||
.PHONY: pdf serif sans_serif ebook
|
||||
|
||||
show_tools_version: # Show version of tools used on the build machine
|
||||
- git log -n 1
|
||||
@echo ""
|
||||
- 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 ""
|
||||
pdf: serif sans_serif
|
||||
serif: book_serif/book.pdf
|
||||
sans_serif: book_sans_serif/book_sans_serif.pdf
|
||||
|
||||
ebook: epub/book.epub
|
||||
bw_ebook: epub/bw_book.epub
|
||||
low_res_ebook: epub/low_res_book.epub
|
||||
# }}}
|
||||
|
||||
# Old target names are disabled with helpful help message {{{
|
||||
build_pdf:
|
||||
@echo "build_pdf target is not supported anymore, please use make pdf"
|
||||
@exit
|
||||
build_serif_pdf:
|
||||
@echo "build_serif_pdf target is not supported anymore, please use make serif"
|
||||
@exit
|
||||
build_sans_serif_pdf:
|
||||
@echo "build_sans_serif_pdf target is not supported anymore, please use make sans_serif"
|
||||
@exit
|
||||
build_ebook:
|
||||
@echo "build_ebook target is not supported anymore, please use make ebook"
|
||||
@exit
|
||||
build_bw_ebook:
|
||||
@echo "build_bw_ebook target is not supported anymore, please use make bw_ebook"
|
||||
@exit
|
||||
build_low_res_ebook:
|
||||
@echo "build_low_res_ebook target is not supported anymore, please use make low_res_ebook"
|
||||
@exit
|
||||
# }}}
|
||||
|
||||
# Top level releases rules {{{
|
||||
.PHONY: bake release_serif release_sans_serif
|
||||
bake: release_serif release_sans_serif website
|
||||
|
||||
release:
|
||||
mkdir -p release
|
||||
|
||||
release_serif: serif ebook bw_ebook low_res_ebook | release
|
||||
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
|
||||
cp epub/bw_book.epub release/TheBreadCode-The-Sourdough-Framework-black-and-white.epub
|
||||
cp epub/low_res_book.epub release/TheBreadCode-The-Sourdough-Framework.epub
|
||||
# Kindle does not allow files larger than 50 MB... so let's check
|
||||
@if [ `du -sb epub/low_res_book.epub | cut -f1` -gt 49500000 ]; then \
|
||||
echo "ERROR: epub File too big"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
release_sans_serif: sans_serif | release
|
||||
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
|
||||
# }}}
|
||||
|
||||
# Clean up {{{
|
||||
###################################
|
||||
|
||||
# delete generated files
|
||||
.PHONY: clean_figures clean_ebook_build clean_website_build clean mrproper
|
||||
clean_figures:
|
||||
-$(CLEAN) $(patsubst %.tex, %.png.in, $(src_figures))
|
||||
-rm $(patsubst %.tex, %.png.pdf, $(src_figures))
|
||||
-rm $(patsubst %.tex, %.png.in, $(src_figures))
|
||||
-rm $(wildcard figures/*.png.*)
|
||||
-rm cover/cover-page.xbb
|
||||
|
||||
clean_ebook_build:
|
||||
-rm epub_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||
-rm epub_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||
-rm epub_build/{book.css,content.opf} epub_build/book-epub/mimetype
|
||||
-rm epub_build/book*x.svg
|
||||
-rm -rf epub_build/book-epub/META-INF epub_build/book-epub/OEBPS
|
||||
|
||||
clean_website_build:
|
||||
-rm website_build/book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
|
||||
-rm website_build/book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
|
||||
-rm website_build/book.{loc,dlog}
|
||||
|
||||
clean: clean_ebook_build clean_figures clean_website_build
|
||||
$(CLEAN) -output-directory=book_serif book.tex
|
||||
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm book*/*.{bbl,loc,run.xml}
|
||||
|
||||
mrproper: clean
|
||||
$(CLEAN) -C $(src_figures)
|
||||
$(CLEAN) -C -output-directory=book_serif book.tex
|
||||
$(CLEAN) -C -output-directory=book_sans_serif book_sans_serif.tex
|
||||
-rm figures/*.png
|
||||
-rm -rf release/
|
||||
-rm -rf book_serif/ book_sans_serif/
|
||||
-rm -rf epub/ epub_build/ bw-book-epub/ low-res-book-epub/
|
||||
-rm -rf website_build/ $(website_dir)
|
||||
# }}}
|
||||
|
||||
# Help {{{
|
||||
###################################
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo ""
|
||||
@echo "default: builds the book in pdf format (serif)"
|
||||
@echo ""
|
||||
@echo "Releases:"
|
||||
@echo " all: pdf serif and sans-serif accessible version, ebooks in colours"
|
||||
@echo " and black&white versions as well as the website"
|
||||
@echo ""
|
||||
@echo " bake: same as build all"
|
||||
@echo ""
|
||||
@echo " release_serif: build serif only version of pdf and ebook"
|
||||
@echo " release_sans_serif: build sans-serif/accessible version of pdf"
|
||||
@echo ""
|
||||
@echo "Portable Document Format (pdf):"
|
||||
@echo " sans_serif: build accessible pdf only (same as release_sans_serif)"
|
||||
@echo " serif: build serif pdf only"
|
||||
@echo " pdf: builds both serif and accessible pdf"
|
||||
@echo ""
|
||||
@echo "Ebooks (epub):"
|
||||
@echo " ebook: builds only the colour ebook"
|
||||
@echo " low_res_ebook: builds the colour ebook in lower resolution"
|
||||
@echo " bw_ebook: builds the low res black & white ebook"
|
||||
@echo ""
|
||||
@echo "Website:"
|
||||
@echo " website: build the static website from LaTeX sources and post-process it"
|
||||
@echo " html: build the static website from LaTeX sources _without_ post-processing"
|
||||
@echo ""
|
||||
@echo "Cleanup:"
|
||||
@echo " mrproper: delete all generated files intermediate and pdf/ebooks/website"
|
||||
@echo " clean: delete all intermediate files keep targets (pdf/ebooks/website)"
|
||||
@echo " clean_figures: delete intermediate TikZ files"
|
||||
@echo " clean_website_build: delete intermediate website files"
|
||||
@echo " clean_ebook_build: delete intermediate ebook files"
|
||||
@echo ""
|
||||
@echo "Debug targets:"
|
||||
@echo ""
|
||||
@echo "figures: build TikZ figures only"
|
||||
@echo ""
|
||||
@echo "Quick builds:"
|
||||
@echo " quick: compiles serif_pdf but runs lulatex only once"
|
||||
@echo " quick_ebook: compiles ebook but runs lulatex only once"
|
||||
@echo ""
|
||||
@echo "Checks:"
|
||||
@echo " tex-check: runs static analysis checker on LaTeX source to spot"
|
||||
@echo " programming or typographic mistakes"
|
||||
@echo " spell-check: runs a spell checker"
|
||||
@echo " check: runs both checkers"
|
||||
@echo ""
|
||||
@echo "Dump informations:"
|
||||
@echo " show_tools_version: Show version of tools used on the build machine"
|
||||
@echo " printvars: print all variables in the makefile"
|
||||
@echo " print-X: print makefile variable X"
|
||||
@echo ""
|
||||
@echo "set DEBUG i.e make DEBUG=1 ebook to add debug flags to commands"
|
||||
# }}}
|
||||
# }}}
|
||||
|
||||
# Debug Stuff {{{
|
||||
###################################
|
||||
|
||||
# Verify your spelling and TeX warnings {{{
|
||||
.PHONY: check tex-check spell-check
|
||||
# Goal is not really to have 0 warning reported but we should check we don't
|
||||
# add many and if we do, we know they are false positive
|
||||
check: spell-check tex-check
|
||||
|
||||
tex-check: $(src_tex)
|
||||
@echo "Running: " $(CHECK_1)
|
||||
$(CHECK_1) book.tex
|
||||
@echo ""
|
||||
@echo "Running: " $(CHECK_2)
|
||||
$(CHECK_2) book.tex
|
||||
|
||||
# Should be 0 if not and you are really sure update the exception file
|
||||
spell-check: $(src_tex) spelling_exceptions.txt
|
||||
# Generate exceptions this way to avoid false positives
|
||||
# hunspell -t -l -d en_US **/*.tex *.csv *.sty *.sty | cut -f 2 -d ':' | sort -u > spelling_exceptions.txt
|
||||
$(SPELL_CHECK) -p spelling_exceptions.txt $(src_tex)
|
||||
#}}}
|
||||
|
||||
.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:
|
||||
# make print-X
|
||||
print-%: ; @echo $* = $($*) # Print a makefile variable
|
||||
print-%: ; @echo $* = $($*) # Print a makefile variable
|
||||
|
||||
printvars: # Print all variables in the makefile
|
||||
printvars: # Print all variables in the makefile
|
||||
@$(foreach V,$(sort $(.VARIABLES)), \
|
||||
$(if $(filter-out environ% default automatic, \
|
||||
$(origin $V)),$(info $V=$($V) ($(value $V)))))
|
||||
# }}}
|
||||
|
||||
BIN
book/mix-ins/apple-swirl.jpg
Normal file
|
After Width: | Height: | Size: 687 KiB |
BIN
book/mix-ins/beer-bread.jpg
Normal file
|
After Width: | Height: | Size: 384 KiB |
BIN
book/mix-ins/broa.jpg
Normal file
|
After Width: | Height: | Size: 860 KiB |
@@ -1,183 +1,352 @@
|
||||
\chapter{Mix-ins}%
|
||||
\label{ch:mix-ins}
|
||||
\begin{quoting}
|
||||
This work-in-progress chapter will describes altering and additions you
|
||||
could make to your dough to create beautiful or different tasting loafs.
|
||||
In this chapter, you will learn about the fascinating world of sourdough
|
||||
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}
|
||||
|
||||
\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
|
||||
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
|
||||
modifications to try and combine. Think of the loaf of bread as a blank canvas
|
||||
to express yourself.
|
||||
|
||||
One approach to sort through the options is to categorize mix-ins by shape
|
||||
(the transition between these categories is somewhat fuzzy):
|
||||
\section{Categories}
|
||||
|
||||
\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}
|
||||
\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
|
||||
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
|
||||
distribute somewhat evenly throughout the dough. Examples: Seeds (poppy
|
||||
seeds, sesame, pumpkin seeds), whole spices (coriander).
|
||||
distribute somewhat evenly throughout the dough. Examples: Seeds (wheat
|
||||
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
|
||||
when eating a slice of your bread. Examples: dried tomatoes, chunks of
|
||||
cheese,
|
||||
cheese, chunks of chocolate
|
||||
\end{itemize}
|
||||
|
||||
Another categorization approach looks at the changes to the bread. Most
|
||||
mix-ins actually impact multiple aspects.
|
||||
Another categorization approach looks at the changes to the bread:
|
||||
|
||||
\begin{itemize}
|
||||
\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,
|
||||
squid ink, beetroot juice.
|
||||
squid ink, beetroot juice, tomato juice.
|
||||
\item Texture: Significantly changes the feeling in the mouth when eaten.
|
||||
Examples: Cheese (gummy), seeds (crunchy), olives (squishy chunks).
|
||||
\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
|
||||
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.
|
||||
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
|
||||
of flour in most mix-ins, reduced to around \qtyrange{1}{5}{\percent} of the
|
||||
amount of flour for spices.
|
||||
|
||||
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
|
||||
inside, or char when peeking through the crust (\eg, vegetables). These
|
||||
problems can be mitigated to some degree with the right preparation (\eg,
|
||||
chopping into smaller pieces, soaking dry ingredients in water or oil first,
|
||||
inside, or char when peeking through the crust (\eg~vegetables). These
|
||||
problems can be mitigated to some degree with the right preparation (\eg~chopping
|
||||
into smaller pieces, soaking dry ingredients in water or oil first,
|
||||
or squeezing out excess moisture).
|
||||
% potential reference to link: https://food52.com/blog/25521-additions-to-sourdough-bread-ideas
|
||||
|
||||
\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}
|
||||
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
|
||||
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}
|
||||
\item Whole wheat flour (substitute any amount, makes the bread taste more
|
||||
complex, nutty)
|
||||
\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
|
||||
great with sweet toppings)
|
||||
\item Other non-wheat flours such as: Chickpea, corn, hemp, potato\dots{}
|
||||
\end{itemize}
|
||||
|
||||
\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}
|
||||
\item Coffee
|
||||
\item Beer
|
||||
\item Olive oil (mediterranean)
|
||||
\item Milk (for sweet, soft breads)
|
||||
\item Butter
|
||||
\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}
|
||||
|
||||
\subsection{Colors}
|
||||
These drastically change the color of the bread.
|
||||
\subsection{Colors}%
|
||||
\label{sec:colors}
|
||||
Some mix-ins will change the color and flavor of your bread. Common colorings
|
||||
include:
|
||||
|
||||
\begin{itemize}
|
||||
\item Activated charcoal powder (black)
|
||||
\item Beetroot juice (red)
|
||||
\item Blueberry juice (blue)
|
||||
\item Blue butterfly pea flower powder (blue)
|
||||
\item Carrot juice (orange)
|
||||
\item Pear juice (pink)
|
||||
\item Spinach juice (green)
|
||||
\item Squid ink (black)
|
||||
\item Strawberry juice (red)
|
||||
\item Tomato juice (red)
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Seeds and nuts}
|
||||
These are small bits, with some almost crossing into the chunk category. Most
|
||||
seeds benefit from being baked for about 10~minutes before adding them to the
|
||||
These are small bits, with some almost crossing into the chunk category. Some
|
||||
seeds benefit from being boiled for about 10~minutes before adding them to the
|
||||
dough.
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{stollen-close-up}
|
||||
\caption[Stollen closeup]{The Stollen is a traditional German sweet Christmas
|
||||
bread featuring a variety of mix-ins. The dough typically contains candied
|
||||
lemon, candied orange, and raisins. The mix-ins are soaked in rum before
|
||||
being added to the dough. While the stollen matures after baking (up to
|
||||
\num{6} months) the candied ingredients release their aroma to the baked
|
||||
product.}%
|
||||
\end{figure}
|
||||
|
||||
\begin{itemize}
|
||||
\item Pumpkin seed
|
||||
\item Cacao nibs
|
||||
\item Chia seed
|
||||
\item Flaxseed (soak these in water first)
|
||||
\item Hemp seed (very crunchy, a personal favorite)
|
||||
\item Chopped or whole nuts such as: Almonds, hazelnuts and walnuts
|
||||
\item Flaxseeds
|
||||
\item Hemp seed
|
||||
\item Poppy seed
|
||||
\item Pumpkin seed
|
||||
\item Sesame
|
||||
\item Sunflower seed
|
||||
\item Poppy seed
|
||||
\item Cacao nibs
|
||||
\item Chopped or whole walnuts
|
||||
\item Chopped or whole hazelnuts
|
||||
\item Whole rye berries (boil 10 minutes)
|
||||
\item Whole wheat berries (boil 10 minutes)
|
||||
\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}
|
||||
These are mostly powders or small bits.
|
||||
|
||||
\begin{itemize}
|
||||
\item Mediterranean herbs (oregano, thyme, rosemary, marjoram)
|
||||
\item Bread spice (coriander, cumin, fennel, anise)
|
||||
\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 Blueberry skins (press through a sieve to remove juice), raw
|
||||
blueberries
|
||||
\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 Molasses
|
||||
\item Sugar
|
||||
\item Spices such as: Anise, fennel, cinnamon, coriander, cumin\dots{}
|
||||
\item Zests such as: Lime, Lemon, orange\dots{}
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Highlights}
|
||||
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
|
||||
be complemented well by some flavor mix-in or flour.
|
||||
bread. Usually, you want to use only one (or a maximum of two) of these. The suggestions
|
||||
can often be complemented by some flavor or flour mix-in.
|
||||
|
||||
\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 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}
|
||||
|
||||
\subsection{Combinations}
|
||||
A few combinations where multiple mix-ins complement each other:
|
||||
|
||||
\begin{itemize}
|
||||
\item Semolina, mediterranen herbs, olives, sundried tomatoes.
|
||||
\item Cranberry and walnuts.
|
||||
\item Cheddar and pepperoni.
|
||||
\item Cocoa, cacao nibs, whole hazelnuts.
|
||||
\item Butter and milk. Then add cinnamon and brown sugar before shaping
|
||||
\item Cheddar and pepperoni
|
||||
\item Cheddar and jalapeño
|
||||
\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}
|
||||
|
||||
\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}
|
||||
This works best for either powders or small bits. Spread the mix-in in a flat
|
||||
container, wet the surface of the loaf, and dip it into the mix-in right
|
||||
before baking.
|
||||
Adding mix-ins to the dough is just the simplest approach. Add the mix-ins
|
||||
directly when you knead the dough. After the first kneading wait for 30
|
||||
minutes to see if the dough has enough or too much water. In the case of
|
||||
whole-soaked berries (\eg~rye or wheat) chances are that the berries will
|
||||
release some water and make the dough wetter. In this case, you will want to
|
||||
add a bit more flour to the dough to compensate for the high hydration.
|
||||
|
||||
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).
|
||||
\subsection[Incorporating seeds into the dough]{What is the best stage to
|
||||
incorporate inclusions (seeds) into the dough?}%
|
||||
\label{subec:incorporate-seeds}
|
||||
|
||||
You can include seeds directly at the start when mixing the dough. If you use
|
||||
whole seeds such as wheat or rye kernels, soak them in water overnight and
|
||||
then rinse them before adding them to the dough. This makes sure that they are
|
||||
not crunchy and are soft enough when eating the bread. If you forgot to soak
|
||||
them you can cook the seeds for 10~minutes in hot water. Rinse them with cold
|
||||
water before adding them to your dough.
|
||||
|
||||
If you want to sweeten the dough, your best option is to add sugar during the
|
||||
shaping stage. Sugar added too early in the process typically gets fermented
|
||||
until none of it remains. Adjust your shaping technique a little bit and
|
||||
spread your sugar mixture over a flattened-out dough. You can then roll the
|
||||
dough together, incorporating layers of sugar.
|
||||
|
||||
\subsection{Adding before shaping}
|
||||
|
||||
\begin{figure}[htb!]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{apple-swirl}
|
||||
\caption[Apple swirl buns]{A great technique is to add some of your mix-ins
|
||||
directly before shaping. In this case, a mixture of apples, cinnamon and
|
||||
brown sugar was applied. Proceed and roll the dough together. Afterward
|
||||
cut the roll into smaller pieces using a sharp knife, dough scraper or
|
||||
dental floss. Place each piece of dough next to each other in a greased
|
||||
bowl to allow them to be proofed. Proceed and bake as you would
|
||||
normally do. The benefit of this technique is that the mix-ins will not
|
||||
be fermented. This is typically required in the case of sugar since you
|
||||
want the final baked goods to feature sweetness. If included upon
|
||||
initial mixing most of the sugar would be fermented and the bread would
|
||||
not taste sweet.}%
|
||||
\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}
|
||||
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
|
||||
of dough before the last folding, just before shaping and bulk rise.
|
||||
|
||||
These can really become works of art.
|
||||
|
||||
% https://www.reddit.com/r/Sourdough/comments/onynqm/sourdough_with_dried_raspberries_recipe_in/
|
||||
% 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/
|
||||
of dough before the last folding, just before shaping. This way the colored
|
||||
layers won't mix and the resulting dough will have differently colored and
|
||||
tasting layers\footnote{I once made an experimental dough by merging a wheat,
|
||||
rye, spelt and einkorn dough into a single dough. The resulting dough was
|
||||
layered featuring different colors, textures, and flavors.}.
|
||||
|
||||
BIN
book/mix-ins/pumpkin-on-flour.jpg
Normal file
|
After Width: | Height: | Size: 741 KiB |
BIN
book/mix-ins/pumpkin-sourdough.jpg
Normal file
|
After Width: | Height: | Size: 529 KiB |
BIN
book/mix-ins/seeded-sourdough.jpg
Normal file
|
After Width: | Height: | Size: 385 KiB |
BIN
book/mix-ins/seeds-bread.jpg
Normal file
|
After Width: | Height: | Size: 805 KiB |
BIN
book/mix-ins/stollen-close-up.jpg
Normal file
|
After Width: | Height: | Size: 463 KiB |
BIN
book/mix-ins/surface-seeds.jpg
Normal file
|
After Width: | Height: | Size: 192 KiB |
238
book/nameref.4ht
Normal 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
|
||||
@@ -1,13 +1,37 @@
|
||||
\chapter{Non wheat sourdough}%
|
||||
\label{ch:non-wheat-sourdough}
|
||||
\begin{quoting}
|
||||
In this chapter you will learn how to make a basic sourdough bread
|
||||
using non-wheat flour. 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 quantity of gluten. Wheat and spelt feature a high amount
|
||||
of gluten. The non-wheat flours do not. In the case of rye flour,
|
||||
sugars called pentosans prevent gluten bonds from properly
|
||||
forming~\cite{rye+pentosans}.
|
||||
the quantity of gluten, the former feature a high amount
|
||||
of gluten, while the non-wheat flours do not.
|
||||
\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]
|
||||
\includegraphics[width=\textwidth]{final-bread}
|
||||
\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}
|
||||
\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
|
||||
be replaced with einkorn or emmer based on your preference.
|
||||
|
||||
The following recipe will make you 2 loaves:
|
||||
\begin{itemize}
|
||||
\item \qty{1000}{\gram} of whole rye flour
|
||||
\item \qty{800}{\gram} of room temperature water (\qty{80}{\percent})
|
||||
\item \qty{200}{\gram} of sourdough starter (\qty{20}{\percent})
|
||||
\item \qty{20}{\gram} of salt (\qty{2}{\percent})
|
||||
\end{itemize}
|
||||
|
||||
\begin{tabular}{r@{}rl@{}}
|
||||
\qty{1000}{\gram} &~(\qty{100}{\percent}) & Whole rye flour\\
|
||||
\qty{800}{\gram} & (\qty{80}{\percent}) & Water at room temperature\\
|
||||
\qty{200}{\gram} & (\qty{20}{\percent}) & Sourdough starter\\
|
||||
\qty{20}{\gram} & (\qty{2}{\percent}) & Salt\\
|
||||
\end{tabular}
|
||||
|
||||
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.
|
||||
The dough is very forgiving.
|
||||
|
||||
If you follow the suggested dough from the recipe you are making a relatively
|
||||
wet rye dough. It's so wet that it can only be made using a loaf pan. If
|
||||
you want to make a freestanding rye bread, consider reducing the hydration
|
||||
to around \qty{60}{\percent}.
|
||||
If you follow the suggested quantities from the recipe you are making a
|
||||
relatively wet rye dough. It's so wet that it can only be made using a loaf
|
||||
pan. If you want to make a freestanding rye bread, consider reducing the
|
||||
hydration to around~\qty{60}{\percent}.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{ingredients}
|
||||
@@ -68,12 +71,11 @@ to around \qty{60}{\percent}.
|
||||
\label{fig:non-wheat-ingredients}
|
||||
\end{figure}
|
||||
|
||||
Mix together all the ingredients with your hands. You can also
|
||||
opt for a spatula to simplify things. Rye flour itself is very
|
||||
sticky and unpleasant to mix by hand. The dough will stick
|
||||
a lot to your hands. If you use a stiff starter, it can be
|
||||
easier to dissolve it in the dough's water. Once dissolved,
|
||||
add the other ingredients.
|
||||
Mix together all the ingredients with your hands, or opt for a spatula to
|
||||
simplify things. Rye flour itself is very sticky and unpleasant to mix by
|
||||
hand, the dough will stick a lot to your hands. If you use a stiff starter, it
|
||||
could be easier to first dissolve it in the dough's water, then add the other
|
||||
ingredients.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sticky-hands}
|
||||
@@ -84,7 +86,7 @@ add the other ingredients.
|
||||
\label{fig:non-wheat-sticky-hands}
|
||||
\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
|
||||
your sourdough starter has been properly incorporated, your
|
||||
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
|
||||
final flavor profile by much.
|
||||
|
||||
I~recommend waiting until the dough has roughly increased by~\qty{50}{\percent}
|
||||
in size. If you are daring, you can taste the dough
|
||||
to get an idea of the acidity profile. The dough will likely
|
||||
taste very sour. However, a lot of the acid will evaporate
|
||||
during the baking process. So the final loaf will not be
|
||||
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.
|
||||
I~recommend waiting until the dough has roughly increased
|
||||
by~\qty{50}{\percent} in size. If you are daring, you can taste the dough to
|
||||
get an idea of the acidity profile, it will likely taste very sour. However, a
|
||||
lot of the acid will evaporate during the baking process, therefore the final
|
||||
loaf will not be as sour as the dough you are tasting.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{crumb}
|
||||
@@ -124,40 +116,45 @@ needed into your greased loaf pan.
|
||||
\label{fig:rye-crumb}
|
||||
\end{figure}
|
||||
|
||||
Carefully spread the dough with a spatula in your loaf pan. You
|
||||
can wet the spatula to make this process easier. Spread it
|
||||
until the surface looks smooth and shiny.
|
||||
Once you are happy with the acidity level, proceed to dividing
|
||||
and shaping your 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.
|
||||
|
||||
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
|
||||
proofing period does not make sense unless you want to further
|
||||
increase the dough's acidity. The dough will not become fluffier
|
||||
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
|
||||
dough to fully extend and fill the edges of the loaf pan. I~also
|
||||
like to move the dough to the fridge for proofing. The dough stays
|
||||
good in the fridge for weeks. You can proceed and bake it at a
|
||||
convenient time for you.
|
||||
convenient time for you.
|
||||
|
||||
Once you are happy with the proofing stage, proceed and bake your dough
|
||||
just like you'd normally do. For more details please refer to
|
||||
Chapter~\ref{chapter:baking}. One challenging aspect
|
||||
just like you'd normally do, more details can be found in
|
||||
Chapter~\ref{ch:baking}. One challenging aspect
|
||||
of using a loaf pan is to make sure that the center part of your
|
||||
dough is properly cooked. For this reason, it is best to use a thermometer
|
||||
and measure the internal temperature. The bread is
|
||||
ready once the internal temperature reaches \qty{92}{\degreeCelsius} (\qty{197}{\degF}). I~recommend
|
||||
removing the bread from the loaf pan once it reaches the desired
|
||||
temperature. Then you can continue baking the loaf without the pan and
|
||||
steam. This way you achieve a great crust all around your
|
||||
loaf. You can bake as long as you like until you have achieved
|
||||
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 been overly acidic, you can extend the baking time.
|
||||
The longer you bake, the more acidity will evaporate.
|
||||
and measure the internal temperature. The bread is ready once the internal
|
||||
temperature reaches \qty{92}{\degreeCelsius} (\qty{197}{\degF}). I~recommend
|
||||
removing the bread from the loaf pan once it reaches the desired temperature,
|
||||
then continue baking the loaf without the pan and steam. This way you achieve
|
||||
a great crust all around your loaf, and can bake as long as you like until you
|
||||
have achieved 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
|
||||
been overly acidic you can extend the baking time, as the longer you bake, the
|
||||
more acidity will evaporate.
|
||||
|
||||
This is one of my favorite breads to bake which I~eat on an
|
||||
almost daily basis. The effort required to make bread like
|
||||
this is much lower compared to a wheat-based dough. In some
|
||||
cases, I~extend the recipe and add additional sourdough discard
|
||||
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.
|
||||
|
||||
75
book/pgfsys-dvisvgm4ht.def
Normal 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:
|
||||
30
book/plots/fig-temperature-ambient.tex
Normal 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}
|
||||
30
book/plots/fig-temperature-surface.tex
Normal 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}
|
||||
43
book/plots/fig-yeast-sourdough-strength.tex
Normal 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}
|
||||
24
book/plots/icecube_ambient.table
Normal file
@@ -0,0 +1,24 @@
|
||||
#Ice Cube
|
||||
#Time Ambient
|
||||
1 95
|
||||
2 148
|
||||
3 165
|
||||
4 172
|
||||
5 175
|
||||
6 179
|
||||
7 179
|
||||
8 180
|
||||
9 181
|
||||
10 182
|
||||
11 182
|
||||
12 182
|
||||
13 182
|
||||
14 181
|
||||
15 182
|
||||
16 182
|
||||
17 181
|
||||
18 182
|
||||
19 182
|
||||
20 181
|
||||
21 182
|
||||
22 182
|
||||
24
book/plots/icecube_surface.table
Normal file
@@ -0,0 +1,24 @@
|
||||
#Ice Cube
|
||||
#Time Surface
|
||||
1 13
|
||||
2 50
|
||||
3 66
|
||||
4 71
|
||||
5 72
|
||||
6 74
|
||||
7 78
|
||||
8 81
|
||||
9 84
|
||||
10 86
|
||||
11 89
|
||||
12 91
|
||||
13 92
|
||||
14 94
|
||||
15 95
|
||||
16 96
|
||||
17 97
|
||||
18 98
|
||||
19 98
|
||||
20 99
|
||||
21 99
|
||||
22 99
|
||||
28
book/plots/non-preheated_ambient.table
Normal file
@@ -0,0 +1,28 @@
|
||||
#Non preheated
|
||||
#Time Ambient
|
||||
1 22
|
||||
2 25
|
||||
3 31
|
||||
4 36
|
||||
5 43
|
||||
6 49
|
||||
7 56
|
||||
8 63
|
||||
9 70
|
||||
10 77
|
||||
11 85
|
||||
12 91
|
||||
13 96
|
||||
14 102
|
||||
15 107
|
||||
16 113
|
||||
17 119
|
||||
18 124
|
||||
19 128
|
||||
20 132
|
||||
21 137
|
||||
22 141
|
||||
23 144
|
||||
24 147
|
||||
25 151
|
||||
26 151
|
||||
28
book/plots/non-preheated_surface.table
Normal file
@@ -0,0 +1,28 @@
|
||||
#Non preheated
|
||||
#Time Surface
|
||||
1 13
|
||||
2 14
|
||||
3 15
|
||||
4 15
|
||||
5 17
|
||||
6 18
|
||||
7 19
|
||||
8 21
|
||||
9 23
|
||||
10 26
|
||||
11 28
|
||||
12 31
|
||||
13 34
|
||||
14 37
|
||||
15 40
|
||||
16 43
|
||||
17 47
|
||||
18 50
|
||||
19 53
|
||||
20 57
|
||||
21 61
|
||||
22 65
|
||||
23 68
|
||||
24 71
|
||||
25 74
|
||||
26 75
|
||||
18
book/plots/preheated_ambient.table
Normal file
@@ -0,0 +1,18 @@
|
||||
#Pre-heated
|
||||
#Time Ambient
|
||||
1 110
|
||||
2 163
|
||||
3 181
|
||||
4 186
|
||||
5 189
|
||||
6 190
|
||||
7 190
|
||||
8 189
|
||||
9 189
|
||||
10 188
|
||||
11 188
|
||||
12 188
|
||||
13 189
|
||||
14 189
|
||||
15 190
|
||||
|
||||
37
book/plots/preheated_bottom_ambient.table
Normal file
@@ -0,0 +1,37 @@
|
||||
#Preheated Bottom
|
||||
#Time Ambient
|
||||
1 31
|
||||
2 105
|
||||
3 133
|
||||
4 143
|
||||
5 149
|
||||
6 151
|
||||
7 152
|
||||
8 152
|
||||
9 153
|
||||
10 154
|
||||
11 157
|
||||
12 159
|
||||
13 161
|
||||
14 162
|
||||
15 164
|
||||
16 167
|
||||
17 169
|
||||
18 171
|
||||
19 172
|
||||
20 173
|
||||
21 174
|
||||
22 176
|
||||
23 176
|
||||
24 176
|
||||
25 176
|
||||
26 176
|
||||
27 176
|
||||
28 176
|
||||
29 176
|
||||
30 176
|
||||
31 176
|
||||
32 176
|
||||
33 176
|
||||
34 176
|
||||
35 176
|
||||
36
book/plots/preheated_bottom_surface.table
Normal file
@@ -0,0 +1,36 @@
|
||||
#Preheated bottom
|
||||
#Time Surface
|
||||
#1 0
|
||||
2 7
|
||||
3 13
|
||||
4 18
|
||||
5 23
|
||||
6 29
|
||||
7 33
|
||||
8 38
|
||||
9 42
|
||||
10 47
|
||||
11 51
|
||||
12 55
|
||||
13 60
|
||||
14 64
|
||||
15 68
|
||||
16 71
|
||||
17 74
|
||||
18 78
|
||||
19 83
|
||||
20 90
|
||||
21 95
|
||||
22 97
|
||||
23 99
|
||||
24 99
|
||||
25 99
|
||||
26 100
|
||||
27 100
|
||||
28 100
|
||||
29 100
|
||||
30 100
|
||||
31 100
|
||||
32 100
|
||||
33 100
|
||||
34 101
|
||||
17
book/plots/preheated_surface.table
Normal file
@@ -0,0 +1,17 @@
|
||||
#Ice Cube
|
||||
#Time Surface
|
||||
1 7
|
||||
2 16
|
||||
3 25
|
||||
4 35
|
||||
5 43
|
||||
6 51
|
||||
7 58
|
||||
8 65
|
||||
9 70
|
||||
10 74
|
||||
11 78
|
||||
12 82
|
||||
13 85
|
||||
14 85
|
||||
15 85
|
||||
100
book/plots/sourdough.table
Normal file
@@ -0,0 +1,100 @@
|
||||
0.000000000000000000e+00 0.000000000000000000e+00
|
||||
2.424242424242424310e-01 4.240754653977794608e-01
|
||||
4.848484848484848619e-01 8.471491777276901614e-01
|
||||
7.272727272727272929e-01 1.268219383921863175e+00
|
||||
9.696969696969697239e-01 1.686284330912430240e+00
|
||||
1.212121212121212155e+00 2.100342265631521599e+00
|
||||
1.454545454545454586e+00 2.509391435011269600e+00
|
||||
1.696969696969697017e+00 2.912430085983805039e+00
|
||||
1.939393939393939448e+00 3.308456465481258935e+00
|
||||
2.181818181818181657e+00 3.696468820435762304e+00
|
||||
2.424242424242424310e+00 4.075465397779447052e+00
|
||||
2.666666666666666963e+00 4.444444444444444642e+00
|
||||
2.909090909090909172e+00 4.802404207362885202e+00
|
||||
3.151515151515151381e+00 5.148342933466899751e+00
|
||||
3.393939393939394034e+00 5.481258869688621971e+00
|
||||
3.636363636363636687e+00 5.800150262960180214e+00
|
||||
3.878787878787878896e+00 6.104015360213707275e+00
|
||||
4.121212121212121104e+00 6.391852408381334172e+00
|
||||
4.363636363636363313e+00 6.662659654395191033e+00
|
||||
4.606060606060606410e+00 6.915435345187411542e+00
|
||||
4.848484848484848619e+00 7.149177727690124051e+00
|
||||
5.090909090909090828e+00 7.362885048835461355e+00
|
||||
5.333333333333333925e+00 7.555555555555555358e+00
|
||||
5.575757575757576134e+00 7.726187494782536191e+00
|
||||
5.818181818181818343e+00 7.873779113448534872e+00
|
||||
6.060606060606060552e+00 7.997328658485683306e+00
|
||||
6.303030303030302761e+00 8.095834376826111622e+00
|
||||
6.545454545454545858e+00 8.168294515401953504e+00
|
||||
6.787878787878788067e+00 8.213707321145337303e+00
|
||||
7.030303030303030276e+00 8.231071040988396703e+00
|
||||
7.272727272727273373e+00 8.219383921863260056e+00
|
||||
7.515151515151515582e+00 8.177644210702062821e+00
|
||||
7.757575757575757791e+00 8.104850154436931575e+00
|
||||
8.000000000000000000e+00 8.000000000000000000e+00
|
||||
8.242424242424242209e+00 7.878787878787878896e+00
|
||||
8.484848484848484418e+00 7.757575757575757791e+00
|
||||
8.727272727272726627e+00 7.636363636363636687e+00
|
||||
8.969696969696970612e+00 7.515151515151514694e+00
|
||||
9.212121212121212821e+00 7.393939393939393590e+00
|
||||
9.454545454545455030e+00 7.272727272727272485e+00
|
||||
9.696969696969697239e+00 7.151515151515151381e+00
|
||||
9.939393939393939448e+00 7.030303030303030276e+00
|
||||
1.018181818181818166e+01 6.909090909090909172e+00
|
||||
1.042424242424242387e+01 6.787878787878788067e+00
|
||||
1.066666666666666785e+01 6.666666666666666075e+00
|
||||
1.090909090909091006e+01 6.545454545454544970e+00
|
||||
1.115151515151515227e+01 6.424242424242423866e+00
|
||||
1.139393939393939448e+01 6.303030303030302761e+00
|
||||
1.163636363636363669e+01 6.181818181818181657e+00
|
||||
1.187878787878787890e+01 6.060606060606060552e+00
|
||||
1.212121212121212110e+01 5.939393939393939448e+00
|
||||
1.236363636363636331e+01 5.818181818181818343e+00
|
||||
1.260606060606060552e+01 5.696969696969697239e+00
|
||||
1.284848484848484951e+01 5.575757575757575246e+00
|
||||
1.309090909090909172e+01 5.454545454545454142e+00
|
||||
1.333333333333333393e+01 5.333333333333333037e+00
|
||||
1.357575757575757613e+01 5.212121212121211933e+00
|
||||
1.381818181818181834e+01 5.090909090909090828e+00
|
||||
1.406060606060606055e+01 4.969696969696969724e+00
|
||||
1.430303030303030276e+01 4.848484848484848619e+00
|
||||
1.454545454545454675e+01 4.727272727272726627e+00
|
||||
1.478787878787878896e+01 4.606060606060605522e+00
|
||||
1.503030303030303116e+01 4.484848484848484418e+00
|
||||
1.527272727272727337e+01 4.363636363636363313e+00
|
||||
1.551515151515151558e+01 4.242424242424242209e+00
|
||||
1.575757575757575779e+01 4.121212121212121104e+00
|
||||
1.600000000000000000e+01 4.000000000000000000e+00
|
||||
1.624242424242424221e+01 3.878787878787878896e+00
|
||||
1.648484848484848442e+01 3.757575757575757791e+00
|
||||
1.672727272727272663e+01 3.636363636363636687e+00
|
||||
1.696969696969696884e+01 3.515151515151515582e+00
|
||||
1.721212121212121104e+01 3.393939393939394478e+00
|
||||
1.745454545454545325e+01 3.272727272727273373e+00
|
||||
1.769696969696969902e+01 3.151515151515150492e+00
|
||||
1.793939393939394122e+01 3.030303030303029388e+00
|
||||
1.818181818181818343e+01 2.909090909090908283e+00
|
||||
1.842424242424242564e+01 2.787878787878787179e+00
|
||||
1.866666666666666785e+01 2.666666666666666075e+00
|
||||
1.890909090909091006e+01 2.545454545454544970e+00
|
||||
1.915151515151515227e+01 2.424242424242423866e+00
|
||||
1.939393939393939448e+01 2.303030303030302761e+00
|
||||
1.963636363636363669e+01 2.181818181818181657e+00
|
||||
1.987878787878787890e+01 2.060606060606060552e+00
|
||||
2.012121212121212110e+01 1.939393939393939448e+00
|
||||
2.036363636363636331e+01 1.818181818181818343e+00
|
||||
2.060606060606060552e+01 1.696969696969697239e+00
|
||||
2.084848484848484773e+01 1.575757575757576134e+00
|
||||
2.109090909090908994e+01 1.454545454545455030e+00
|
||||
2.133333333333333570e+01 1.333333333333332149e+00
|
||||
2.157575757575757791e+01 1.212121212121211045e+00
|
||||
2.181818181818182012e+01 1.090909090909089940e+00
|
||||
2.206060606060606233e+01 9.696969696969688357e-01
|
||||
2.230303030303030454e+01 8.484848484848477312e-01
|
||||
2.254545454545454675e+01 7.272727272727266268e-01
|
||||
2.278787878787878896e+01 6.060606060606055223e-01
|
||||
2.303030303030303116e+01 4.848484848484844179e-01
|
||||
2.327272727272727337e+01 3.636363636363633134e-01
|
||||
2.351515151515151558e+01 2.424242424242422089e-01
|
||||
2.375757575757575779e+01 1.212121212121211045e-01
|
||||
2.400000000000000000e+01 0.000000000000000000e+00
|
||||
37
book/plots/spritzing_ambient.table
Normal file
@@ -0,0 +1,37 @@
|
||||
#Spritzing
|
||||
#Time Ambient
|
||||
1 31
|
||||
2 135
|
||||
3 168
|
||||
4 182
|
||||
5 189
|
||||
6 190
|
||||
7 190
|
||||
8 190
|
||||
9 190
|
||||
10 189
|
||||
11 190
|
||||
12 190
|
||||
13 189
|
||||
14 190
|
||||
15 190
|
||||
16 190
|
||||
17 189
|
||||
18 190
|
||||
19 190
|
||||
20 190
|
||||
21 190
|
||||
22 190
|
||||
23 189
|
||||
24 190
|
||||
25 190
|
||||
26 190
|
||||
27 190
|
||||
28 190
|
||||
29 190
|
||||
30 189
|
||||
31 190
|
||||
32 190
|
||||
33 190
|
||||
34 190
|
||||
35 190
|
||||
38
book/plots/spritzing_surface.table
Normal file
@@ -0,0 +1,38 @@
|
||||
#Spritzing
|
||||
#Time Surface
|
||||
1 6
|
||||
2 13
|
||||
3 29
|
||||
4 40
|
||||
5 47
|
||||
6 54
|
||||
7 60
|
||||
8 65
|
||||
9 70
|
||||
10 74
|
||||
11 78
|
||||
12 82
|
||||
13 85
|
||||
14 88
|
||||
15 91
|
||||
16 94
|
||||
17 96
|
||||
18 97
|
||||
19 98
|
||||
20 99
|
||||
21 99
|
||||
22 99
|
||||
23 99
|
||||
24 99
|
||||
25 99
|
||||
26 99
|
||||
27 99
|
||||
28 100
|
||||
29 100
|
||||
30 101
|
||||
31 101
|
||||
32 101
|
||||
33 102
|
||||
34 103
|
||||
35 103
|
||||
|
||||
100
book/plots/yeast.table
Normal file
@@ -0,0 +1,100 @@
|
||||
0.000000000000000000e+00 0.000000000000000000e+00
|
||||
4.242424242424242542e-01 7.169229458362316176e-01
|
||||
8.484848484848485084e-01 1.428572670524745458e+00
|
||||
1.272727272727272707e+00 2.130208499298593239e+00
|
||||
1.696969696969697017e+00 2.817089757390826232e+00
|
||||
2.121212121212121104e+00 3.484475770034495934e+00
|
||||
2.545454545454545414e+00 4.127625862462654283e+00
|
||||
2.969696969696969724e+00 4.741799359908352329e+00
|
||||
3.393939393939394034e+00 5.322255587604640681e+00
|
||||
3.818181818181818343e+00 5.864253870784571276e+00
|
||||
4.242424242424242209e+00 6.363053534681196055e+00
|
||||
4.666666666666666963e+00 6.813913904527567844e+00
|
||||
5.090909090909090828e+00 7.212094305556735030e+00
|
||||
5.515151515151515582e+00 7.552854063001753104e+00
|
||||
5.939393939393939448e+00 7.831452502095669566e+00
|
||||
6.363636363636364202e+00 8.043148948071538129e+00
|
||||
6.787878787878788067e+00 8.183202726162404517e+00
|
||||
7.212121212121211933e+00 8.246873161601330438e+00
|
||||
7.636363636363636687e+00 8.229419579621360725e+00
|
||||
8.060606060606060552e+00 8.142734264051528115e+00
|
||||
8.484848484848484418e+00 8.049102099819306133e+00
|
||||
8.909090909090910060e+00 7.954963367078545566e+00
|
||||
9.333333333333333925e+00 7.860318065829249967e+00
|
||||
9.757575757575757791e+00 7.765166196071416671e+00
|
||||
1.018181818181818166e+01 7.669507757805047454e+00
|
||||
1.060606060606060552e+01 7.573342751030141429e+00
|
||||
1.103030303030303116e+01 7.476671175746698594e+00
|
||||
1.145454545454545503e+01 7.379493031954719839e+00
|
||||
1.187878787878787890e+01 7.281808319654204276e+00
|
||||
1.230303030303030276e+01 7.183617038845151903e+00
|
||||
1.272727272727272840e+01 7.084919189527563610e+00
|
||||
1.315151515151515227e+01 6.985714771701438508e+00
|
||||
1.357575757575757613e+01 6.886003785366776597e+00
|
||||
1.400000000000000000e+01 6.785786230523578766e+00
|
||||
1.442424242424242387e+01 6.685062107171844126e+00
|
||||
1.484848484848484951e+01 6.583831415311573565e+00
|
||||
1.527272727272727337e+01 6.482094154942766195e+00
|
||||
1.569696969696969724e+01 6.379850326065422905e+00
|
||||
1.612121212121212110e+01 6.277123761538812907e+00
|
||||
1.654545454545454675e+01 6.174324510640207819e+00
|
||||
1.696969696969696884e+01 6.071597983435813362e+00
|
||||
1.739393939393939448e+01 5.968940305132156787e+00
|
||||
1.781818181818182012e+01 5.866347600935763573e+00
|
||||
1.824242424242424221e+01 5.763815996053158308e+00
|
||||
1.866666666666666785e+01 5.661341615690869133e+00
|
||||
1.909090909090908994e+01 5.558920585055421526e+00
|
||||
1.951515151515151558e+01 5.456549029353340075e+00
|
||||
1.993939393939394122e+01 5.354223073791151144e+00
|
||||
2.036363636363636331e+01 5.251938843575382876e+00
|
||||
2.078787878787878896e+01 5.149692463912558082e+00
|
||||
2.121212121212121104e+01 5.047480060009204905e+00
|
||||
2.163636363636363669e+01 4.945297757071848821e+00
|
||||
2.206060606060606233e+01 4.843141680307013530e+00
|
||||
2.248484848484848442e+01 4.741007954921228951e+00
|
||||
2.290909090909091006e+01 4.638892706121018783e+00
|
||||
2.333333333333333570e+01 4.536792059112909392e+00
|
||||
2.375757575757575779e+01 4.434702139103427143e+00
|
||||
2.418181818181818343e+01 4.332619071299096625e+00
|
||||
2.460606060606060552e+01 4.230538980906445978e+00
|
||||
2.503030303030303116e+01 4.128457993131998016e+00
|
||||
2.545454545454545681e+01 4.026372233182281768e+00
|
||||
2.587878787878787890e+01 3.924277826263822710e+00
|
||||
2.630303030303030454e+01 3.822170897583144988e+00
|
||||
2.672727272727272663e+01 3.720047572346776743e+00
|
||||
2.715151515151515227e+01 3.617903975761242119e+00
|
||||
2.757575757575757791e+01 3.515736233033067482e+00
|
||||
2.800000000000000000e+01 3.413540469368780528e+00
|
||||
2.842424242424242564e+01 3.311312809974904514e+00
|
||||
2.884848484848484773e+01 3.209049380057968470e+00
|
||||
2.927272727272727337e+01 3.106746304824495208e+00
|
||||
2.969696969696969902e+01 3.004399709481012870e+00
|
||||
3.012121212121212110e+01 2.902005719234047376e+00
|
||||
3.054545454545454675e+01 2.799560459290122427e+00
|
||||
3.096969696969696884e+01 2.697060054855767497e+00
|
||||
3.139393939393939448e+01 2.594500631137504953e+00
|
||||
3.181818181818182012e+01 2.491878313341862938e+00
|
||||
3.224242424242424221e+01 2.389189226675367816e+00
|
||||
3.266666666666666430e+01 2.286429496344544621e+00
|
||||
3.309090909090909349e+01 2.183595247555917496e+00
|
||||
3.351515151515151558e+01 2.080682605516016359e+00
|
||||
3.393939393939393767e+01 1.977687695431364912e+00
|
||||
3.436363636363636687e+01 1.874606642508488630e+00
|
||||
3.478787878787878896e+01 1.771435571953915211e+00
|
||||
3.521212121212121104e+01 1.668170608974169244e+00
|
||||
3.563636363636364024e+01 1.564807878775775540e+00
|
||||
3.606060606060606233e+01 1.461343506565263128e+00
|
||||
3.648484848484848442e+01 1.357773617549156597e+00
|
||||
3.690909090909091361e+01 1.254094336933980092e+00
|
||||
3.733333333333333570e+01 1.150301789926262863e+00
|
||||
3.775757575757575779e+01 1.046392101732529056e+00
|
||||
3.818181818181817988e+01 9.423613975593052583e-01
|
||||
3.860606060606060908e+01 8.382058026131148365e-01
|
||||
3.903030303030303116e+01 7.339214421004879307e-01
|
||||
3.945454545454545325e+01 6.295044412279485746e-01
|
||||
3.987878787878788245e+01 5.249509252020206906e-01
|
||||
4.030303030303030454e+01 4.202570192292340301e-01
|
||||
4.072727272727272663e+01 3.154188485161137923e-01
|
||||
4.115151515151515582e+01 2.104325382691821789e-01
|
||||
4.157575757575757791e+01 1.052942136949696628e-01
|
||||
4.200000000000000000e+01 4.440892098500626162e-16
|
||||
53
book/recipes/flat-bread.tex
Normal file
@@ -0,0 +1,53 @@
|
||||
\subsubsection*{Ingredients}
|
||||
\begin{tabular}{r@{}rl@{}}
|
||||
\qty{400}{\gram} &~(\qty{100}{\percent}) & Flour (wheat, rye, corn, whatever
|
||||
you have at hand)\\
|
||||
\qty{320}{\gram} & (\qty{80}{\percent}) & Water, preferably at room
|
||||
temperature\\
|
||||
\qty{80}{\gram} & (\qty{20}{\percent}) & Active sourdough starter\\
|
||||
\qty{8}{\gram} & (\qty{2}{\percent}) & Salt\\
|
||||
\end{tabular}
|
||||
|
||||
\subsubsection*{Instructions}
|
||||
\begin{description}
|
||||
\item[Prepare the dough] In a large mixing bowl, combine the flour and water.
|
||||
Mix until you have a shaggy dough with no dry spots.
|
||||
|
||||
Add the sourdough starter and salt to the mixture. Incorporate them
|
||||
thoroughly until you achieve a smooth and homogenized dough.
|
||||
|
||||
\item[Fermentation:] Cover the bowl with a lid or plastic wrap. Allow the dough
|
||||
to rest and ferment until it has increased by at least \qty{50}{\percent}
|
||||
in size. Depending on the temperature and activity of your starter, this
|
||||
can take anywhere from 4 to 24~hours.
|
||||
|
||||
\item[Cooking preparation:] Once the dough has risen, heat a pan over medium
|
||||
heat. Lightly oil the pan, ensuring to wipe away any excess oil with a
|
||||
paper towel.
|
||||
|
||||
\item[Shaping and cooking:] With a ladle or your hands, scoop out a portion of
|
||||
the dough and place it onto the hot pan, spreading it gently like a
|
||||
pancake.
|
||||
|
||||
Cover the pan with a lid. This traps the steam and ensures even cooking
|
||||
from the top, allowing for easier flipping later.
|
||||
|
||||
After about 5~minutes, or when the bottom of the flatbread has a
|
||||
golden-brown crust, carefully flip it using a spatula.
|
||||
|
||||
\emph{Adjusting cook time.} If the flatbread appears too dark, remember to
|
||||
reduce the cooking time slightly for the next one. Conversely, if it's
|
||||
too pale, allow it to cook a bit longer before flipping.
|
||||
|
||||
Cook the flipped side for an additional 5~minutes or until it's also
|
||||
golden brown.
|
||||
|
||||
\item[Storing:] Once cooked, remove the flatbread from the pan and place it on
|
||||
a kitchen towel. Wrapping the breads in the towel will help retain their
|
||||
softness and prevent them from becoming overly crisp. Repeat the cooking
|
||||
process for the remaining dough.
|
||||
|
||||
\item[Serving suggestion:] Enjoy your sourdough flatbreads warm, paired with
|
||||
your favorite dips, spreads, or as a side to any meal.
|
||||
|
||||
\end{description}
|
||||
@@ -1,11 +1,11 @@
|
||||
@article{raffaella+di+cagno,
|
||||
author = {Di Cagno, Raffaella et al.},
|
||||
title = {Proteolysis by sourdough lactic acid bacteria:
|
||||
effects on wheat flour protein fractions and
|
||||
gliadin peptides involved in human cereal intolerance},
|
||||
journal = {Applied and environmental microbiology},
|
||||
publisher = {Dover},
|
||||
volume = {68,2}
|
||||
author = {Di Cagno, Raffaella et al.},
|
||||
title = {Proteolysis by sourdough lactic acid bacteria:
|
||||
effects on wheat flour protein fractions and
|
||||
gliadin peptides involved in human cereal intolerance},
|
||||
journal = {Applied and environmental microbiology},
|
||||
publisher = {Dover},
|
||||
volume = {68,2}
|
||||
}
|
||||
|
||||
@misc{too+hot+baking,
|
||||
@@ -16,17 +16,17 @@
|
||||
note = {Accessed: 2022-03-24}
|
||||
}
|
||||
|
||||
@article{rye-defects,
|
||||
author = {Marie Oest et al.},
|
||||
title = {Rye Bread Defects: Analysis of Composition and
|
||||
Further Influence Factors as Determinants
|
||||
of Dry-Baking},
|
||||
journal = {Applied and environmental microbiology},
|
||||
publisher = {Foods},
|
||||
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
|
||||
@misc{rye-defects,
|
||||
author = {Marie Oest et al.},
|
||||
title = {Rye Bread Defects: Analysis of Composition and
|
||||
Further Influence Factors as Determinants
|
||||
of Dry-Baking},
|
||||
journal = {Applied and environmental microbiology},
|
||||
publisher = {Foods},
|
||||
howpublished = {\url{https://www.mdpi.com/2304-8158/9/12/1900/pdf}}
|
||||
}
|
||||
|
||||
@article{stiff+starter,
|
||||
@misc{stiff+starter,
|
||||
title = {Stiff sourdough starter},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=MqH3GVfjfBc}},
|
||||
@@ -34,7 +34,7 @@
|
||||
note = {Accessed: 2022-04-26}
|
||||
}
|
||||
|
||||
@article{baking+twice,
|
||||
@misc{baking+twice,
|
||||
title = {Baking your dough twice to make a sourer bread},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://youtu.be/0v1QhtyUic4}},
|
||||
@@ -42,7 +42,7 @@
|
||||
note = {Accessed: 2022-04-28}
|
||||
}
|
||||
|
||||
@article{more+active+starter,
|
||||
@misc{more+active+starter,
|
||||
title = {4 tips to make a more active starter},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=yYkTrGHNW2w}},
|
||||
@@ -50,7 +50,7 @@
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{baking+powder+reduce-acidity,
|
||||
@misc{baking+powder+reduce-acidity,
|
||||
title = {Use baking powder to reduce dough acidity},
|
||||
author = {Hendrik Kleinwächter},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=c8GId0ByASo}},
|
||||
@@ -58,7 +58,7 @@
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{food+safe+ph,
|
||||
@misc{food+safe+ph,
|
||||
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
||||
author = {Felix H. Barron and Angela M. Fraser},
|
||||
howpublished = {\url{https://www.intechopen.com/chapters/41654}},
|
||||
@@ -75,7 +75,7 @@
|
||||
year = {2022}
|
||||
}
|
||||
|
||||
@article{liquid+on+starter,
|
||||
@misc{liquid+on+starter,
|
||||
title = {Acidified Foods: Food Safety Considerations for Food Processors},
|
||||
author = {Sourdoughhome},
|
||||
howpublished = {\url{https://www.sourdoughhome.com/what-is-hooch/}},
|
||||
@@ -83,41 +83,149 @@
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{acetic+acid+production,
|
||||
@misc{acetic+acid+production,
|
||||
title = {Acetic Acid (or Ethanoic acid). The main constituent of vinegar.},
|
||||
author = {chm.bris.ac.uk},
|
||||
howpublished = {\url{http://www.chm.bris.ac.uk/motm/acetic-acid/acetic-acidjs.htm}},
|
||||
note = {Accessed: 2022-04-29}
|
||||
}
|
||||
|
||||
@article{jordan+bread,
|
||||
author = {Amaia Arranz-Otaegui et al.},
|
||||
title = {Archaeobotanical evidence reveals the origins of bread 14,400 years ago in northeastern Jordan},
|
||||
journal = {Proc Natl Acad Sci USA},
|
||||
year = {2018},
|
||||
@misc{jordan+bread,
|
||||
author = {Amaia Arranz-Otaegui et al.},
|
||||
title = {Archaeobotanical evidence reveals the origins of
|
||||
bread 14,400 years ago in northeastern Jordan},
|
||||
journal = {Proc Natl Acad Sci USA},
|
||||
year = {2018},
|
||||
howpublished = {\url{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6077754/}}
|
||||
}
|
||||
|
||||
@article{vienna+breadrolls,
|
||||
author = {Eben Norton Horsford},
|
||||
title = {Report on Vienna bread},
|
||||
year = {1875},
|
||||
@misc{fleischmann+history,
|
||||
author = {Fleischmann History},
|
||||
title = {History of Fleischmann's},
|
||||
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 = {World’s 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 = {488–490}
|
||||
}
|
||||
|
||||
@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}},
|
||||
note = {Accessed: 2022-05-02}
|
||||
}
|
||||
|
||||
@article{coeliac+disease,
|
||||
author = {Giovanni Battista Gasbarrini et al.},
|
||||
title = {Coeliac disease: an old or a new disease? History of a pathology},
|
||||
year = {2014},
|
||||
journal = {Intern Emerg Med.},
|
||||
@misc{coeliac+disease,
|
||||
author = {Giovanni Battista Gasbarrini et al.},
|
||||
title = {Coeliac disease: an old or a new disease? History of a pathology},
|
||||
year = {2014},
|
||||
journal = {Intern Emerg Med.},
|
||||
howpublished = {\url{https://pubmed.ncbi.nlm.nih.gov/24435555/}}
|
||||
}
|
||||
|
||||
@article{interview+karl+de+smedt,
|
||||
author = {Hendrik Kleinwächter},
|
||||
title = {Interview with Karl de Smedt},
|
||||
year = {2021},
|
||||
@misc{interview+karl+de+smedt,
|
||||
author = {Hendrik Kleinwächter},
|
||||
title = {Interview with Karl de Smedt},
|
||||
year = {2021},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=vfDIfkqBCuk}},
|
||||
note = {Accessed: 2022-05-06}
|
||||
}
|
||||
@@ -146,7 +254,8 @@
|
||||
|
||||
@article{effects+oxygen+yeast+growth,
|
||||
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},
|
||||
journal = {Journal of Fermentation and Bioengineering},
|
||||
publisher = {Elsevier},
|
||||
@@ -165,7 +274,8 @@
|
||||
|
||||
@article{leaf+surface+sugars+epiphytes,
|
||||
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},
|
||||
journal = {Applied and Environmental Microbiology},
|
||||
volume = {66,1}
|
||||
@@ -173,7 +283,8 @@
|
||||
|
||||
@article{yeasts+biocontrol+agent,
|
||||
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},
|
||||
journal = {International Journal of Food Microbiology},
|
||||
volume = {108,2}
|
||||
@@ -181,13 +292,14 @@
|
||||
|
||||
@article{saccharomyces+cerevisiae+pathogen,
|
||||
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},
|
||||
journal = {FEMS Microbiology Ecology},
|
||||
volume = {37,2}
|
||||
}
|
||||
|
||||
@article{pickled+foods+expiration,
|
||||
@misc{pickled+foods+expiration,
|
||||
title = {Hardcore hibernation},
|
||||
author = {David Adam},
|
||||
howpublished = {\url{https://www.nature.com/articles/news001019-9}},
|
||||
@@ -195,7 +307,7 @@
|
||||
note = {Accessed: 2022-06-23}
|
||||
}
|
||||
|
||||
@article{old+spores,
|
||||
@misc{old+spores,
|
||||
title = {Do Pickles Go Bad?},
|
||||
author = {thrillist.com},
|
||||
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}
|
||||
}
|
||||
|
||||
@article{mold+anaerobic,
|
||||
@misc{mold+anaerobic,
|
||||
title = {Differences between Yeasts and Molds},
|
||||
author = {Sagar Aryal},
|
||||
howpublished = {\url{https://microbenotes.com/differences-between-yeasts-and-molds/}},
|
||||
@@ -212,7 +324,8 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {2015},
|
||||
journal = {Food science},
|
||||
@@ -220,7 +333,9 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {2017},
|
||||
journal = {Food Research},
|
||||
@@ -228,7 +343,8 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {1997},
|
||||
journal = {Food Microbiology},
|
||||
@@ -244,7 +360,8 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {2009},
|
||||
journal = {Meat Science},
|
||||
@@ -252,7 +369,8 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {2016},
|
||||
journal = {Applied Microbiology and Biotechnology},
|
||||
@@ -260,7 +378,8 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {2016},
|
||||
journal = {Applied Microbiology and Biotechnology},
|
||||
@@ -268,14 +387,15 @@
|
||||
}
|
||||
|
||||
@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.},
|
||||
year = {2020},
|
||||
journal = {Food chemistry},
|
||||
volume = {15,31}
|
||||
}
|
||||
|
||||
@article{how+does+gluten+work,
|
||||
@misc{how+does+gluten+work,
|
||||
title = {Gluten: How Does It Work?},
|
||||
author = {Modernist Cuisine},
|
||||
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},
|
||||
author = {The Sourdough School},
|
||||
howpublished = {\url{https://www.sourdough.co.uk/glossary/bassinage/}},
|
||||
year = {2022},
|
||||
note = {Accessed: 2022-12-22}
|
||||
}
|
||||
}
|
||||
|
||||
@article{oxidization+dough,
|
||||
@misc{oxidization+dough,
|
||||
title = {Enzymes and pH matter, troubleshoot my loaf},
|
||||
author = {Bread Blog},
|
||||
howpublished = {\url{https://bread.blog/enzymes-and-ph-matter-troubleshoot-my-loaf/}},
|
||||
year = {2022},
|
||||
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},
|
||||
author = {The Bread Code YouTube},
|
||||
howpublished = {\url{https://www.youtube.com/watch?v=gMbZeUIVzZY}},
|
||||
year = {2022},
|
||||
note = {Accessed: 2023-01-06}
|
||||
}
|
||||
}
|
||||
|
||||
@article{rye+pentosans,
|
||||
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
|
||||
journal = {Food Research International},
|
||||
keywords = {Rye bread, Wholemeal, Pentosans, Starch},
|
||||
number = {8},
|
||||
pages = {2045-2051},
|
||||
title = {The role of pentosans and starch in baking of wholemeal rye bread},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0963996910002127},
|
||||
volume = {43},
|
||||
year = {2010}
|
||||
author = {Krzysztof Buksa and Anna Nowotna and Werner Praznik
|
||||
and Halina Gambu{\'s} and Rafa{\l} Ziobro and Jan Krawontka},
|
||||
journal = {Food Research International},
|
||||
keywords = {Rye bread, Wholemeal, Pentosans, Starch},
|
||||
number = {8},
|
||||
pages = {2045-2051},
|
||||
title = {The role of pentosans and starch in baking of wholemeal rye bread},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0963996910002127},
|
||||
volume = {43},
|
||||
year = {2010}
|
||||
}
|
||||
|
||||
@article{storing+bread,
|
||||
author = {King Author},
|
||||
title = {Storing yeast based bread},
|
||||
url = {https://www.kingarthurbaking.com/blog/2020/07/08/the-best-way-to-store-yeast-bread},
|
||||
note = {Accessed: 2023-02-03}
|
||||
author = {King Author},
|
||||
title = {Storing yeast based bread},
|
||||
url = {https://www.kingarthurbaking.com/blog/2020/07/08/the-best-way-to-store-yeast-bread},
|
||||
note = {Accessed: 2023-02-03}
|
||||
}
|
||||
|
||||
@misc{wheat+kernel,
|
||||
author = {W. Berghoff},
|
||||
title = {A wheat kernel and its nutritional value.},
|
||||
url = {https://en.wikipedia.org/wiki/Whole_grain#/media/File:Wheat-kernel_nutrition.svg},
|
||||
note = {Accessed: 2023-03-30}
|
||||
author = {W. Berghoff},
|
||||
title = {A wheat kernel and its nutritional value.},
|
||||
url = {https://en.wikipedia.org/wiki/Whole_grain#/media/File:Wheat-kernel_nutrition.svg},
|
||||
note = {Accessed: 2023-03-30}
|
||||
}
|
||||
|
||||
@article{enzymatic+activity+whole+wheat,
|
||||
author = {Rachana Poudel},
|
||||
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
|
||||
year = {2018},
|
||||
page = {67},
|
||||
author = {Rachana Poudel},
|
||||
title = {Enzymatic Activities and Compostional Properties of Whole Wheat Flour},
|
||||
year = {2018},
|
||||
page = {67}
|
||||
}
|
||||
|
||||
@article{review+of+sourdough+starters,
|
||||
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},
|
||||
year = {2021},
|
||||
page = {3},
|
||||
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
|
||||
note = {Accessed: 2023-03-30}
|
||||
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},
|
||||
year = {2021},
|
||||
page = {3},
|
||||
url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8117929/#ref-36},
|
||||
note = {Accessed: 2023-03-30}
|
||||
}
|
||||
|
||||
@article{gluten+development+temperatures,
|
||||
author = {Koga S., Böcker U. et al.},
|
||||
title = {Influence of temperature during grain filling on gluten viscoelastic properties and gluten protein composition.},
|
||||
year = {2015},
|
||||
author = {Koga S., Böcker U. et al.},
|
||||
title = {Influence of temperature during grain filling on gluten
|
||||
viscoelastic properties and gluten protein composition.},
|
||||
year = {2015},
|
||||
journal = {Journal of the Science of Food and Agriculture},
|
||||
number = {96},
|
||||
pages = {122-130}
|
||||
number = {96},
|
||||
pages = {122-130}
|
||||
}
|
||||
|
||||
@article{milling+commercial+home+mill+comparison,
|
||||
author = {Ross, Andrew S. and Kongraksawech, Teepakorn},
|
||||
journal = {Cereal Chemistry},
|
||||
number = {2},
|
||||
pages = {239-252},
|
||||
title = {Characterizing whole-wheat flours produced using a commercial stone mill, laboratory mills, and household single-stream flour mills},
|
||||
volume = {95},
|
||||
year = {2018}
|
||||
author = {Ross, Andrew S. and Kongraksawech, Teepakorn},
|
||||
journal = {Cereal Chemistry},
|
||||
number = {2},
|
||||
pages = {239-252},
|
||||
title = {Characterizing whole-wheat flours produced using a
|
||||
commercial stone mill, laboratory mills, and household
|
||||
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 = {594–599}
|
||||
}
|
||||
|
||||
BIN
book/sourdough-starter/sourdough-starter-activity-indicators.png
Normal file
|
After Width: | Height: | Size: 284 KiB |
BIN
book/sourdough-starter/sourdough-starter-hooch.jpg
Normal file
|
After Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 494 KiB After Width: | Height: | Size: 250 KiB |
|
Before Width: | Height: | Size: 724 KiB After Width: | Height: | Size: 1.3 MiB |
@@ -1,19 +1,15 @@
|
||||
\chapter{Sourdough starter types}%
|
||||
\label{ch:starter-types}
|
||||
\begin{quoting}
|
||||
In this chapter of the book we will have a closer look
|
||||
at different sourdough starter types and their respective
|
||||
traits.
|
||||
at different sourdough starter types, and their respective
|
||||
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}
|
||||
|
||||
\begin{table}[htp!]
|
||||
\begin{center}
|
||||
\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}
|
||||
\section{Introduction}%
|
||||
\label{sec:starter-types-intro}
|
||||
|
||||
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
|
||||
@@ -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
|
||||
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
|
||||
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]
|
||||
\includegraphics[width=\textwidth]{sourdough-starter-types}
|
||||
@@ -39,28 +54,23 @@ starter has half the water as flour.
|
||||
\label{fig:starter-types}
|
||||
\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
|
||||
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
|
||||
bacterial fermentation, then your dough will also have slightly more bacterial
|
||||
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
|
||||
working with a more mature unfed starter. Let's say your starter had last been
|
||||
fed 48~hours ago. Chances are that your bacteria is very active while the
|
||||
working with a more mature unfed starter.
|
||||
|
||||
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
|
||||
before making another dough. Just use a very tiny amount of starter. For \qty{1000}{\gram}
|
||||
of flour I~would take around \qty{10}{\gram} of starter (\qty{1}{\percent} in terms of baker's
|
||||
before making another dough. Just use a very tiny amount of starter. For
|
||||
\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
|
||||
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
|
||||
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
|
||||
a longer fermentation before most gluten is broken down.
|
||||
|
||||
\section{Regular starter}
|
||||
\section{Regular starter}%
|
||||
\label{sec:regular-starter}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\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}.
|
||||
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
|
||||
balance of yeast and bacteria. After a feeding, the volume increases and
|
||||
increases. After it reaches a certain peak, it will start to collapse again.
|
||||
balance of yeast and bacteria. After a feeding, the volume of the dough
|
||||
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
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
\section{Liquid starter}%
|
||||
\label{section:liquid-starter}
|
||||
\label{sec:liquid-starter}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{sourdough-starter-liquid.jpg}
|
||||
\caption[Liquid starter]{A liquid sourdough starter features a high level of
|
||||
water. The high water amount boosts lactic acid producing bacteria.
|
||||
After a while the liquid and flour start to separate. Bubbles on the
|
||||
side of the flour indicate that the starter is ready to be used.}%
|
||||
\label{fig:liquid-sourdough-starter}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\begin{flowchart}[!htb]
|
||||
\centering
|
||||
\input{figures/fig-liquid-starter-conversion.tex}
|
||||
\caption[Converting to a liquid starter]{The process to convert your regular
|
||||
or stiff starter into a liquid starter. The whole process takes around 3
|
||||
days. The longer you maintain your starter at the suggested hydration
|
||||
or stiff starter into a liquid starter. The whole process takes around
|
||||
3~days. The longer you maintain your starter at the suggested hydration
|
||||
level, the more adapted your microorganisms become. It is recommended to
|
||||
keep a backup of your original starter as the liquid environment will
|
||||
select anaerobic microorganisms. This boosts bacteria that create lactic
|
||||
acid rather than acetic acid. The resulting acidity will be perceived as
|
||||
milder.}%
|
||||
\label{fig:liquid-starter-conversion}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
milder. When beginning with a liquid starter your stiff starter will
|
||||
feature mild dairy notes. When beginning this process with a regular
|
||||
starter your created stiff starter will feature both dairy
|
||||
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 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
|
||||
producing acetic acid. The heterofermentative lactic acid bacteria will thrive
|
||||
in this environment. This is a neat little trick to change your starter's
|
||||
flavor profile from vinegary to lactic. Your starter is going to develop
|
||||
dairy creamy notes. Interestingly, when changing the hydration again, your starter
|
||||
flavor profile from vinegary to lactic. Your starter is going to develop dairy
|
||||
creamy notes. Interestingly, when changing the hydration again, your starter
|
||||
is going to maintain the liquid starter flavor profile, but then benefit again
|
||||
from enhanced yeast activity. The liquid starter conversion is non reversible.
|
||||
So ideally keep a backup of your stiff or regular starter.
|
||||
from enhanced yeast activity. The liquid starter conversion is irreversible.
|
||||
By changing to a liquid starter you will permanently select a subset of
|
||||
microbes that work better in the more liquid environment. So even after going
|
||||
back to a regular or stiff starter the subset of microbes created by the
|
||||
liquid conversion will remain. For this reason, it is recommended to keep a
|
||||
backup of the starter before the liquid starter conversion.
|
||||
|
||||
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
|
||||
\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
|
||||
@@ -173,12 +189,12 @@ and I~use \qty{50}{\gram} of starter, then I~would proceed and only use \qty{550
|
||||
water.
|
||||
|
||||
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
|
||||
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.
|
||||
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
|
||||
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.
|
||||
|
||||
\section{Stiff starter}%
|
||||
\label{section:stiff-starter}
|
||||
\label{sec:stiff-starter}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sourdough-starter-stiff.jpg}
|
||||
\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
|
||||
container. The dough does not fall out of the jar.}%
|
||||
\label{fig:stiff-sourdough-starter}
|
||||
container. The dough does not fall out of the jar. The moment
|
||||
the gluten structure breaks down due to fermentation the starter
|
||||
will ultimately fall in the jar.}%
|
||||
\label{flc:stiff-sourdough-starter}
|
||||
\end{figure}
|
||||
|
||||
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
|
||||
to your counter's surface. This test indicates that you hydrated the flour sufficiently.
|
||||
When the mixture is too dry, the fermentation speed is greatly reduced and
|
||||
the starter will seem inactive. The starter should be much drier
|
||||
than a regular starter, but also not too dry. Refer to figure~\ref{fig:stiff-starter-dry-check}
|
||||
for a visual example of the starter's required hydration level.
|
||||
the starter will seem inactive. The starter should be much drier than a
|
||||
regular starter, but also not too dry. Refer to
|
||||
Figure~\ref{fig:stiff-starter-dry-check} for a visual example of the starter's
|
||||
required hydration level.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{stiff-starter-dry-check.jpg}
|
||||
@@ -220,8 +239,8 @@ for a visual example of the starter's required hydration level.
|
||||
\label{fig:stiff-starter-dry-check}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\begin{center}
|
||||
\begin{flowchart}[!htb]
|
||||
\centering
|
||||
\input{figures/fig-stiff-starter-conversion.tex}
|
||||
\caption[Converting to a stiff starter]{The process to convert your regular
|
||||
starter into a stiff starter. The whole process takes around 3 days. The
|
||||
@@ -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
|
||||
stiff consider increasing this to \qty{60}{\percent}.}%
|
||||
\label{fig:stiff-starter-conversion}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
\end{flowchart}
|
||||
|
||||
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
|
||||
@@ -258,13 +276,13 @@ production.
|
||||
\label{fig:stollen}
|
||||
\end{figure}
|
||||
|
||||
I~then proceeded and bought a cheap low cake flour in my nearby supermarket.
|
||||
This flour before had caused me massive headaches before. I~made a sourdough bread
|
||||
exactly how I~would normally do. I~had to reduce the hydration a bit as a low
|
||||
I~then proceeded and bought a cheap low-gluten cake flour in my nearby supermarket.
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
alcoholic than the other starters.
|
||||
|
||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} depending on
|
||||
the ripeness of your starter. In summer I~typically use around
|
||||
\qty{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
|
||||
also control the fermentation speed.
|
||||
Mixing the starter can be a little bit annoying as it hardly homogenizes with
|
||||
the rest of the dough. In this case you can try to dissolve the starter in the
|
||||
When using a stiff starter, use around \qtyrange{1}{20}{\percent} starter in terms of
|
||||
baker's math for your
|
||||
dough. This depends on the ripeness of your starter.
|
||||
In summer I~typically use around
|
||||
\qtyrange{1}{10}{\percent} and in winter around \qty{20}{\percent}. This way you can
|
||||
also control the fermentation speed. If it is very hot where you live, consider
|
||||
lowering the starter amount to \qtyrange{1}{5}{\percent}. If it is very cold in your
|
||||
area consider increasing the starter amount up to \qty{30}{\percent}.
|
||||
Mixing the stiff starter can be a little bit annoying as it hardly homogenizes with
|
||||
the rest of the dough. In this case, you can try to dissolve the starter in the
|
||||
water you are about to use for your dough. This will make mixing a lot easier.
|
||||
|
||||
|
||||
\section{Lievito madre or pasta madre}
|
||||
|
||||
The lievito madre, also known as pasta madre, belongs to the same category as
|
||||
the stiff sourdough starter. After conducting hours of research, I~could not
|
||||
find a difference between pasta madre and lievito madre. Both terms seem to be
|
||||
used interchangeably in literature.
|
||||
The \emph{lievito madre}, also known as \emph{pasta madre}, belongs to the
|
||||
same category as the stiff sourdough starter. After conducting hours of
|
||||
research, I~could not find a difference between \emph{pasta madre} and
|
||||
\emph{lievito madre}. Both terms seem to be used interchangeably in
|
||||
literature.
|
||||
|
||||
In many recipes this starter is made directly
|
||||
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
|
||||
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
|
||||
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
|
||||
starter would need to remain in this environment for quite some time and not just
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
\chapter{Making a sourdough starter}%
|
||||
\label{ch:sourdough-starter}
|
||||
\begin{quoting}
|
||||
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,
|
||||
it's a very simple way how to write a recipe which
|
||||
is cleaner and more scalable. Once you get the hang
|
||||
of it you will want to write every recipe this way.
|
||||
You will learn to understand the signs to determine
|
||||
your starter's readiness. Furthermore you will
|
||||
also learn how to prepare your starter for long-term storage.
|
||||
You will learn to understand the signs indicating
|
||||
your starter's readiness, as well as
|
||||
how to prepare your starter for long-term storage.
|
||||
\end{quoting}
|
||||
|
||||
\section{Baker's math}%
|
||||
\label{section:bakers-math}
|
||||
\label{sec:bakers-math}
|
||||
|
||||
In a large bakery, a determining factor is how
|
||||
much flour you have at hand. Based on the amount
|
||||
@@ -21,7 +23,7 @@ for bakers, the quantity of each ingredient
|
||||
is calculated as a percentage based on how much flour you have.
|
||||
Let me demonstrate this with a small example from
|
||||
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.
|
||||
That would be a typical pizza dough, not too dry but
|
||||
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.}.
|
||||
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?
|
||||
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
|
||||
comes in handy. Let's look at the default recipe with baker's
|
||||
math and then adjust it for the \qty{1.4}{\kg} flour quantity.
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-bakers-math-example.tex}
|
||||
\caption[Baker's math example]{An example table demonstrating how to
|
||||
properly calculate using baker's math}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
Note how each of the ingredients is calculated as a percentage
|
||||
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}
|
||||
(\qty{1}{\kg}).
|
||||
amount of flour that you have at hand. In this case that's
|
||||
\qty{1000}{\gram}~(\qty{1}{\kg}).
|
||||
|
||||
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
|
||||
we have \qty{1.4}{\kg} at hand (\qty{1400}{\gram}).
|
||||
|
||||
\begin{table}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{tables/table-recipe-bakers-math.tex}
|
||||
\caption[Another baker's math example]{An example recipe that uses
|
||||
\qty{1400}{\gram} as its baseline and is then calculated using
|
||||
baker's math.}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
For each ingredient we calculate the percentage
|
||||
@@ -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
|
||||
your recipe.
|
||||
|
||||
|
||||
Let's say you would want to use \qty{50}{\kg} of flour
|
||||
the next day. What would you do? You would simply proceed
|
||||
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}
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sourdough-starter.jpg}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{sourdough-starter-activity-indicators}
|
||||
\caption[Very active sourdough]{A very active sourdough starter shown by the
|
||||
bubbles in the dough.}%
|
||||
\label{fig:sourdough-starter}
|
||||
\end{figure}
|
||||
|
||||
Making a sourdough starter is very easy. All you need
|
||||
is a little bit of patience. The flour you should
|
||||
use to setup your starter is ideally a whole flour.
|
||||
You could use whole-wheat, whole rye, whole spelt or
|
||||
Making a sourdough starter is very easy, all you need
|
||||
is a little bit of patience. It is in fact so easy that it can be summarized
|
||||
in a simple Flowchart~\ref{fig:sourdough-starter-process} The flour you should
|
||||
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
|
||||
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
|
||||
already have at hand.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\centering
|
||||
\input{figures/fig-starter-process.tex}
|
||||
\caption[The full sourdough starter process]{The process of making a sourdough
|
||||
starter from scratch.}%
|
||||
\label{fig:sourdough-starter-process}
|
||||
\end{flowchart}
|
||||
|
||||
Your flour is contaminated with millions of microbes. As explained
|
||||
before in the chapter about wild yeast and bacteria, these
|
||||
microbes live on the surface of the plant. That's why
|
||||
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
|
||||
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
|
||||
less or more, or just eyeball the proportions. These
|
||||
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.
|
||||
|
||||
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
|
||||
properly hydrated. This step activates the microbial spores
|
||||
in your mixture, drawing them out of hibernation and
|
||||
reviving them.
|
||||
|
||||
Finally, cover your mixture but make sure the covering is
|
||||
not airtight. I~like to use a glass and place another
|
||||
inverted one on top. The container shouldn't be airtight,
|
||||
you still want some gas exchange to be possible.
|
||||
not airtight. You still want some gas exchange to be possible.
|
||||
I~like to use a glass and place another
|
||||
inverted one on top.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\input{figures/fig-starter-process.tex}
|
||||
\caption[Process for starter from scratch]{The process of making a sourdough
|
||||
starter from scratch.}%
|
||||
\label{fig:sourdough-starter-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
Now an epic battle begins. In one study scientists
|
||||
have identified more than 150 different yeast species living
|
||||
on a single leaf of a plant~\cite{yeasts+biocontrol+agent}.
|
||||
Now an epic battle begins, as visualized in
|
||||
Figure~\ref{fig:sourdough-starter-microbial-war}. In one
|
||||
study~\cite{yeasts+biocontrol+agent} scientists have identified
|
||||
more than \num{150}~different yeast species living
|
||||
on a single leaf of a plant.
|
||||
All of the different yeasts and bacteria are trying to get
|
||||
the upper hand in this battle. Other pathogens such as mold
|
||||
are also being activated as we added water. Only the strongest
|
||||
most adaptable microorganisms will survive. By adding water to the
|
||||
flour the starches start to degrade. The seedling tries to
|
||||
sprout but it no longer can. Essential for this process is the
|
||||
amylase enzyme. The compact starch is broken down to more
|
||||
digestible sugars to fuel plant growth. Glucose is what the
|
||||
plant needs in order to grow. The microorganisms that survive
|
||||
this frenzy are adapted to consuming glucose. Luckily for us
|
||||
bakers, the yeast and bacteria know very well how to metabolize
|
||||
glucose. This is what they have been fed in the wild by the plants.
|
||||
By forming patches on the leaf and protecting the plant from
|
||||
pathogens they received glucose in return for their services.
|
||||
Each of the microbes tries to defeat the other by consuming the
|
||||
food fastest, producing agents to inhibit food uptake by others or by producing
|
||||
bactericides and/or fungicides. This early stage of the starter
|
||||
is very interesting as more research could possibly reveal
|
||||
new fungicides or antibiotics. Depending on where your flour
|
||||
is from, the starting microbes of your starter might be different
|
||||
than the ones from another starter. Some people have also reported
|
||||
how the microbes from your hand or air can influence your starter's
|
||||
microorganisms. This makes sense to a certain extent. Your
|
||||
hand's microbes might be good at fermenting your sweat, but
|
||||
probably not so good at metabolizing glucose. The contamination
|
||||
of your hands or air might play a minor role in the initial epic
|
||||
battle. But only the fittest microbes fitting the sourdough's
|
||||
niche are going to survive. This means the microorganisms 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.
|
||||
most adaptable microorganisms will survive.
|
||||
|
||||
\begin{figure}[!htb]
|
||||
\includegraphics[width=\textwidth]{sourdough-starter-microbial-war}
|
||||
@@ -195,48 +163,104 @@ my kitchen.
|
||||
\label{fig:sourdough-starter-microbial-war}
|
||||
\end{figure}
|
||||
|
||||
By adding water to the
|
||||
flour the starches start to degrade. The seedling tries to
|
||||
sprout but it no longer can. Essential for this process is the
|
||||
amylase enzyme. The compact starch is broken down to more
|
||||
digestible sugars to fuel plant growth. Glucose is what the
|
||||
plant needs in order to grow. The microorganisms that survive
|
||||
this frenzy are adapted to consuming glucose.
|
||||
|
||||
Luckily for us
|
||||
bakers, the yeast and bacteria know very well how to metabolize
|
||||
glucose. This is what they have been fed in the wild by the plants.
|
||||
By forming patches on the leaf and protecting the plant from
|
||||
pathogens they received glucose in return for their services.
|
||||
Each of the microbes tries to defeat the other by consuming the
|
||||
food fastest, producing agents to inhibit food uptake by others or by producing
|
||||
bactericides and/or fungicides. This early stage of the starter
|
||||
is very interesting as more research could possibly reveal
|
||||
new fungicides or antibiotics.
|
||||
|
||||
Depending on where your flour
|
||||
is from, the starting microbes of your starter might be different
|
||||
than the ones from another starter. Some people have also reported
|
||||
how the microbes from your hand or air can influence your starter's
|
||||
microorganisms. This makes sense to a certain extent. Your
|
||||
hand's microbes might be good at fermenting your sweat, but
|
||||
probably not so good at metabolizing glucose. The contamination
|
||||
of your hands or air might play a minor role in the initial epic
|
||||
battle. But only the fittest microbes fitting the sourdough's
|
||||
niche are going to survive.
|
||||
|
||||
This means the microorganisms knowing
|
||||
how to convert maltose or glucose will have the upper hand. Or the
|
||||
microbes fermenting the waste of the other microbes. Ethanol created
|
||||
by the yeast is metabolized by the bacteria in your sourdough. That's
|
||||
why a sourdough has no alcohol. I~can confirm the role of aerial
|
||||
contamination to a certain extent, when setting up a new sourdough
|
||||
starter the whole process is quite quick for me. After a few
|
||||
days my new starter seems to be quite alive already. This might
|
||||
be due to previous contamination of flour fermenting microbes in
|
||||
my kitchen.
|
||||
|
||||
Wait for around 24~hours and observe what happens to your starter.
|
||||
You might see some early signs of fermentation already. Use your nose
|
||||
to smell the dough. Look for bubbles in the dough. Your dough
|
||||
might already have increased in size a little bit. Whatever
|
||||
you see and notice is a sign of the first battle. Some microbes
|
||||
have already been outperformed. Others have won the first battle.
|
||||
After around 24~hours most of the starch has been broken down
|
||||
and your microbes are hungry for additional sugars. With a spoon
|
||||
take around \qty{10}{\gram} from the previous day's mixture and place
|
||||
it in a new container. Again --- you could also simply eye ball
|
||||
all the quantities. It does not matter that much. Mix the 10
|
||||
grams from the previous day with another \qty{50}{\gram} of flour
|
||||
and \qty{50}{\gram} of water. Note the ratio of 1:5. I~very often use
|
||||
1 part of old culture with 5 parts of flour and 5 parts of water.
|
||||
you see and notice is a sign of the first battle.
|
||||
|
||||
Some microbes have already been outperformed. Others have won the first
|
||||
battle. After around \qty{24}{hours} most of the starch has been broken down
|
||||
and your microbes are hungry for additional sugars. With a spoon take around
|
||||
\qty{10}{\gram} from the previous day's mixture and place it in a new
|
||||
container. Again---you could also simply eye ball all the quantities. It does
|
||||
not matter that much. Mix the \qty{10}{\gram} from the previous day with
|
||||
another \qty{50}{\gram} of flour and \qty{50}{\gram} of water.
|
||||
|
||||
Note the ratio of 1:5. I~very often use
|
||||
1~part of old culture with 5~parts of flour and 5~parts of water.
|
||||
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
|
||||
for around \qty{1000}{\gram} of flour (baker's math: \qtyrange{10}{20}{\percent}).
|
||||
|
||||
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
|
||||
your mixture dries out a lot consider using another cover. The
|
||||
dried-out parts will be composted by more adapted microbes such as
|
||||
mold. In many user reports, I~saw mold being able to damage
|
||||
the starter when the starter itself dried out a lot. 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
|
||||
possibly dangerous pathogens that have been activated we will discard
|
||||
this mixture. Once your sourdough starter is mature never
|
||||
discard it. It's long-fermented flour that is an excellent addon
|
||||
used to make crackers, pancakes and or delicious hearty sandwich
|
||||
bread. I~also frequently dry it and use it as a rolling agent
|
||||
for pizzas that I~am making.
|
||||
possibly dangerous pathogens that have been activated make sure you discard
|
||||
this mixture. A rule of thumb is to begin keeping the discard,
|
||||
the moment you made your first successful bread. At that point
|
||||
your discard is long-fermented flour that is an excellent addon
|
||||
used to make crackers, pancakes or delicious hearty sandwich
|
||||
bread\ldots I~also frequently dry it and use it as a rolling agent
|
||||
for pizzas that I~am making.\footnote{Discarding starter when preparing
|
||||
a new batch can be frustrating. With experience, bread-making
|
||||
becomes more efficient, and excess discard is rarely produced. It is
|
||||
possible to prepare just the right amount of starter
|
||||
needed for bread dough. In fact, a fully depleted starter can even be revived
|
||||
using a small portion of bread dough. Any leftover discard, rich in spores,
|
||||
can also serve as a backup to create a new sourdough starter. Simply mix the
|
||||
discard with a little flour and water, and it will spring back to life. That is a
|
||||
great option if the starter was accidentally depleted. A practical approach
|
||||
is to store all discard in a single jar in the fridge, adding new discard on
|
||||
top as needed and using it whenever required.}
|
||||
|
||||
You should hopefully again see some bubbles, the starter increasing
|
||||
in size and/or the starter changing its smell. Some people give
|
||||
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
|
||||
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
|
||||
of activity directly, don't worry. There is activity in
|
||||
your starter on a microscopic level.
|
||||
of activity directly, do not worry, there is activity in
|
||||
your starter at a microscopic level.
|
||||
|
||||
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
|
||||
@@ -245,7 +269,7 @@ next section of this book.
|
||||
\section{Determining starter readiness}
|
||||
|
||||
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
|
||||
are at fermenting flour. Generally speaking, with each feeding
|
||||
your starter becomes more adapted to its environment. Your
|
||||
@@ -257,20 +281,23 @@ yeast has been isolated like this from century old sourdough
|
||||
starters.
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-starter-readiness.tex}
|
||||
\caption[Sourdough readiness flow chart]{A flow chart showing you how to
|
||||
determine if your sourdough starter is ready to be used. For checking
|
||||
readiness look at a size increase and take note of your starter's smell.
|
||||
Both are important indicators to check for readiness.}%
|
||||
\caption[Determining sourdough starter readiness]{A flow chart showing you how to
|
||||
determine if your sourdough starter is ready to be used. Make sure to
|
||||
wait at least \qtyrange{6}{12}{\hour} after feeding your
|
||||
starter to check its readiness. To evaluate it, look at your starter's size
|
||||
increase, airy texture and take note of its smell.
|
||||
All three factors are important to properly evaluate your starter's activity level.
|
||||
An active starter is an important foundation for a successful dough fermentation}%
|
||||
\label{fig:sourdough-starter-readiness}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
The key 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
|
||||
dough and creates \ch{CO2}. The \ch{CO2} is trapped in your dough
|
||||
matrix and then visualized on the edges of the container.
|
||||
|
||||
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.
|
||||
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
|
||||
the flour of my sourdough starter quite often. I~had hoped to create
|
||||
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
|
||||
and won't allow other microbes to enter. My starter has initially
|
||||
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
|
||||
your starter's microbiome you should notice either the smell
|
||||
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.
|
||||
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
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
and thus in some cases will not float. That's why I~personally
|
||||
don't use this test and can't recommend it.
|
||||
|
||||
Once you see your starter is ready I~would recommend giving it
|
||||
one last feeding and then you are ready to make your dough in the
|
||||
evening or the next day. For the instructions to make your
|
||||
first dough please refer to the next chapters in this book.
|
||||
evening or the next day. For the instructions on how to make your
|
||||
first dough please refer to the next chapters (\ref{ch:wheat-sourdough}
|
||||
and~\ref{ch:non-wheat-sourdough}) in this book.
|
||||
|
||||
If your first bread failed, chances are your fermentation hasn't
|
||||
worked as expected. In many cases the 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
|
||||
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
|
||||
@@ -327,7 +357,7 @@ yeast part of your sourdough and balance the fermentation.
|
||||
\section{Maintenance}
|
||||
|
||||
\begin{flowchart}[!htb]
|
||||
\begin{center}
|
||||
\centering
|
||||
\input{figures/fig-starter-maintenance.tex}
|
||||
\caption[Sourdough starter maintenance flowchart]{A full flowchart showing
|
||||
you how to conduct proper sourdough starter maintenance. You can use a
|
||||
@@ -337,7 +367,6 @@ yeast part of your sourdough and balance the fermentation.
|
||||
\qty{100}{\percent} hydration level. Adjust the water content
|
||||
accordingly when you use a stiff starter.}%
|
||||
\label{fig:sourdough-maintenance-process}
|
||||
\end{center}
|
||||
\end{flowchart}
|
||||
|
||||
You have made your sourdough starter and your first bread. How do you perform
|
||||
@@ -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
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
water~\cite{mold+anaerobic}. Before using the starter again simply either stir
|
||||
the liquid into the dough or drain it. If you drain the liquid you can use it
|
||||
to make a lacto fermented hot sauce for instance.
|
||||
to make a lacto-fermented hot sauce for instance.
|
||||
|
||||
The colder it is the longer you preserve a good balance of yeast and
|
||||
bacteria. Generally, the warmer it is the faster the fermentation process is,
|
||||
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
|
||||
strains of wild yeast and bacteria
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
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
|
||||
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
|
||||
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
|
||||
@@ -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
|
||||
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
|
||||
sometimes ready after a single feeding. It seems that the microbes adapt. The ones
|
||||
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.
|
||||
The goal of each new feeding is to make sure your starter
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
\ProvidesPackage{sourdough}
|
||||
\usepackage{blindtext}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{pgfplots}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{longtable}
|
||||
\usepackage{chemformula}
|
||||
\usepackage{chemfig}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{makecell}
|
||||
\usepackage[mode=match, reset-text-family=false]{siunitx}
|
||||
\usepackage{fontspec}
|
||||
@@ -13,20 +13,31 @@
|
||||
\usepackage[font={sffamily, sbseries}]{quoting}
|
||||
\usepackage{microtype}
|
||||
|
||||
% style=nextline breaks on make4ht
|
||||
\ifdefined\HCode\else
|
||||
\usepackage{enumitem}
|
||||
\setlist[description]{style=nextline, leftmargin=0cm}
|
||||
\fi
|
||||
|
||||
\DeclareNewTOC[
|
||||
type=flowchart,%
|
||||
types=flowcharts,% ,
|
||||
float,
|
||||
floattype=4,%
|
||||
counterwithin=chapter,
|
||||
name=Flowchart,%
|
||||
listname = {List of Flowcharts}
|
||||
]{loc}
|
||||
\setuptoc{loc}{chapteratlist}
|
||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{figure}
|
||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{flowchart}
|
||||
\DeclareTOCStyleEntry[numwidth=3em]{tocline}{table}
|
||||
|
||||
% Common abbreviations
|
||||
\newcommand{\ie}{\emph{i.e.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\newcommand{\eg}{\emph{e.g.}\@ifnextchar.{\!\@gobble}{}}
|
||||
\input{abbreviations.tex}
|
||||
|
||||
% Consistent pH values
|
||||
\newcommand{\pHvalue}[1]{pH~\SI{#1}{}}
|
||||
|
||||
% For tables
|
||||
\renewcommand\theadfont{\bfseries}
|
||||
@@ -41,8 +52,9 @@
|
||||
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
|
||||
% Fonts for accessibility
|
||||
\ifdefined\isaccessible
|
||||
\setmainfont{Open Sans}[
|
||||
Scale=MatchLowercase]
|
||||
\usepackage[mathrm=sym]{unicode-math}
|
||||
\setmathfont{Fira Math}[Scale=MatchLowercase]
|
||||
\setmainfont{Open Sans}[Scale=MatchLowercase]
|
||||
\else
|
||||
\setmainfont{TeX Gyre Pagella}[Scale=1.0] % Or Palatino Linotype, etc.
|
||||
% TODO not available on github CI
|
||||
@@ -62,10 +74,11 @@
|
||||
\addbibresource{references.bib}
|
||||
|
||||
% Clickable links in the table of contents
|
||||
\usepackage[ocgcolorlinks]{hyperref}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{bookmark}
|
||||
\hypersetup{%
|
||||
linktoc=all,
|
||||
colorlinks = true,
|
||||
linkcolor = hlorange,
|
||||
urlcolor = codeblue,
|
||||
citecolor = hlocre,
|
||||
@@ -96,11 +109,12 @@
|
||||
{wheat-sourdough/}
|
||||
{wheat-sourdough/shaping/}
|
||||
{non-wheat-sourdough/}
|
||||
{mix-ins/}
|
||||
}
|
||||
|
||||
% Caption and figure size below images
|
||||
\usepackage{caption}
|
||||
\captionsetup[figure]{font=footnotesize}
|
||||
\addtokomafont{captionlabel}{\textbf}
|
||||
\addtokomafont{caption}{\small}
|
||||
|
||||
\DeclareSIUnit\degF{\text{°}F}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
book.tex
|
||||
562
book/spelling_exceptions.txt
Normal 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
|
||||
@@ -1,17 +1,19 @@
|
||||
\chapter{Storing bread}%
|
||||
\label{ch:storing-bread}
|
||||
\begin{quoting}
|
||||
In this chapter you will learn about different
|
||||
methods of storing your bread. This way
|
||||
your bread can be best enjoyed at a later
|
||||
time.
|
||||
In this chapter you will discuss different methods of storing your bread, each
|
||||
with their own pro and cons. This way your bread can be best enjoyed at a
|
||||
later time.
|
||||
\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{center}
|
||||
\centering
|
||||
\input{tables/table-storing-bread-overview.tex}
|
||||
\caption[Options to store bread]{A table visualizing the advantages
|
||||
and disadvantages of different bread storing options.}%
|
||||
\label{table:bread-storage}
|
||||
\end{center}
|
||||
\end{table}
|
||||
|
||||
\section{Room temperature}
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
crumb's starch to absorb a lot of water. Proceed and
|
||||
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
|
||||
bread inside a container. This could be a paper bag,
|
||||
a plastic bag, or a bread storage box. The paper bag and
|
||||
most bread boxes are not fully sealed. They allow some of
|
||||
the air to diffuse out of the container. This means that
|
||||
the bread will also slightly dry out.
|
||||
most bread boxes are not fully sealed, allowing some of
|
||||
the air to diffuse out of the container. This also means that
|
||||
the bread will slightly dry out.
|
||||
|
||||
When using a sealed bag such as a plastic bag, the bread
|
||||
will retain a lot of moisture. The bread will stay good
|
||||
@@ -81,7 +83,7 @@ inhibitor.
|
||||
\section{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
|
||||
fridge~\cite{storing+bread}. Supposedly the fridge
|
||||
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
|
||||
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
|
||||
hours. This way you can easily remove the frozen-together
|
||||
slices. Proceed and toast the slices in your toaster
|
||||
hours. This is needed so you can easily separate the frozen-together
|
||||
slices. Toast the slices in your toaster
|
||||
or bake them in the oven until they have the crispness
|
||||
that you like.
|
||||
|
||||
This option is great for very long-term storage. Personally
|
||||
I~like having a few slices of bread frozen as an emergency
|
||||
backup when I~have had no time to bake.
|
||||
|
||||
A 2008 study hints that there might be some health benefits to freezing and
|
||||
toasting your bread. By doing so the starch molecules could become more
|
||||
resistant to digestion and thus lower your body's blood sugar response by
|
||||
almost \qty{40}{\percent}~\cite{freezing+toasting+bread}.
|
||||
|
||||
289
book/style.css
@@ -1,16 +1,20 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;800&display=swap');
|
||||
|
||||
:root{
|
||||
--ff-sans: 'Open Sans', sans-serif;
|
||||
--fw-regular: 400;
|
||||
--fw-bold: 800;
|
||||
--f-lh: 28px;
|
||||
--c-black: #282828;
|
||||
--c-black-background: #1c1819;
|
||||
--fs-xxxl: 32px;
|
||||
--fs-xxl: 26px;
|
||||
--fs-xl: 24px;
|
||||
--fs-l: 22px;
|
||||
--fs-m: 16px;
|
||||
--padding-hamburger: 5px;
|
||||
--c-beige: #F3EDE6;
|
||||
--border-radius: 7px;
|
||||
--image-padding: 14px;
|
||||
--image-background: #ffffff;
|
||||
}
|
||||
|
||||
@media (min-width: 1200px){
|
||||
@@ -37,6 +41,7 @@ body{
|
||||
font-family: var(--ff-sans);
|
||||
font-weight: var(--fw-regular);
|
||||
font-size: var(--fs-m);
|
||||
color: var(--c-black);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 57rem) {
|
||||
@@ -59,7 +64,22 @@ body{
|
||||
/* ****************** */
|
||||
|
||||
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{
|
||||
@@ -125,11 +145,8 @@ nav.TOC a, nav.TOC a:visited{
|
||||
/* *** Colors *** */
|
||||
/* ************** */
|
||||
|
||||
|
||||
body{
|
||||
background-color:#F8F8F8;
|
||||
background: url("bg.jpg") center center no-repeat;
|
||||
background-size: cover;
|
||||
background-color: var(--c-beige);
|
||||
}
|
||||
|
||||
a {
|
||||
@@ -159,6 +176,7 @@ figure.texsource, figure.shellcommand, figure.htmlsource, figure.luasource, figu
|
||||
|
||||
.main-content {
|
||||
line-height: var(--f-lh);
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
div.footnotes {
|
||||
@@ -214,6 +232,7 @@ figcaption.caption {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.menu-items .chapterToc, .menu-items .likechapterToc {
|
||||
@@ -224,6 +243,18 @@ figcaption.caption {
|
||||
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) {
|
||||
.toggle-menu-label {
|
||||
display: block;
|
||||
@@ -233,7 +264,8 @@ figcaption.caption {
|
||||
|
||||
.hamb{
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
padding: var(--padding-hamburger);
|
||||
margin-right: calc(var(--padding-hamburger) * -1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
@@ -268,7 +300,7 @@ figcaption.caption {
|
||||
.menu {
|
||||
background: var(--c-black);
|
||||
display: flex;
|
||||
padding: 10px 0px;
|
||||
padding: 10px 1rem;
|
||||
position: relative;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
@@ -286,14 +318,17 @@ figcaption.caption {
|
||||
display: block;
|
||||
color: #000;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
padding-left: 17px;
|
||||
font-weight: var(--fw-bold);
|
||||
}
|
||||
|
||||
.chapterToc a, .sectionToc a, .subsectionToc a, .likechapterToc a {
|
||||
padding-left: 17px;
|
||||
}
|
||||
|
||||
.menu-items .chapterToc.home-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.home-title {
|
||||
display: none;
|
||||
}
|
||||
@@ -304,7 +339,7 @@ div.center {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
main.titlepage h2.chapterHead {
|
||||
main.main-content h2.chapterHead, main.main-content h2.likechapterHead {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
@@ -352,3 +387,233 @@ h4 {
|
||||
max-width: 100%;
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,22 @@
|
||||
Abu,
|
||||
Adam,
|
||||
Adele Schmitz,
|
||||
Agatha,
|
||||
Alanblue,
|
||||
Albert,
|
||||
Alicia,
|
||||
Amanda M.,
|
||||
Amanor,
|
||||
Andail,
|
||||
Andreas Schmid,
|
||||
Andrzej Mitelski,
|
||||
Anna G.,
|
||||
anonnn,
|
||||
aomanor,
|
||||
Anonnn,
|
||||
Anthony Atkinson,
|
||||
Aurore,
|
||||
Beatriz,
|
||||
Bee,
|
||||
Ben Davies,
|
||||
BigWullie,
|
||||
Blixikan,
|
||||
Blusie,
|
||||
@@ -17,9 +26,12 @@ BTSkete,
|
||||
C Fazio,
|
||||
Cal Kotz,
|
||||
Case,
|
||||
Cédric Andrieu,
|
||||
Charlene Adkins,
|
||||
Chin Pui Ling,
|
||||
Chris DuBosq,
|
||||
Chris G,
|
||||
Chris Toph,
|
||||
Christiane B,
|
||||
Christine,
|
||||
Chrysanna,
|
||||
@@ -30,26 +42,30 @@ David,
|
||||
Dee,
|
||||
Desiree S,
|
||||
DKitSeattle,
|
||||
dlenkes,
|
||||
douglas.penna,
|
||||
DRey,
|
||||
Douglas Penna,
|
||||
Drey,
|
||||
Duivelsjong,
|
||||
Elaine Leung,
|
||||
Ellie,
|
||||
Ethan,
|
||||
Francois le Danois,
|
||||
François le Danois,
|
||||
Fredrik,
|
||||
Geoff,
|
||||
Guillermo,
|
||||
HansAndreManfredsson,
|
||||
Hansandremanfredsson,
|
||||
Heather Currier,
|
||||
Hito,
|
||||
IlseFA,
|
||||
Inma McLeish,
|
||||
Ilsefa,
|
||||
Inma Mcleish,
|
||||
Jackie,
|
||||
Jacques Lucke,
|
||||
Jan Chrillesen,
|
||||
Jan-Pieter Van Den Wittenboer,
|
||||
Jane,
|
||||
Jc Bell,
|
||||
Jenny,
|
||||
Jessicat,
|
||||
JimJo,
|
||||
Jimjo,
|
||||
John E Bergman,
|
||||
Jonathan,
|
||||
JorisBelmans,
|
||||
@@ -57,18 +73,19 @@ Jose Lausuch,
|
||||
Judith Roth,
|
||||
Julian,
|
||||
Justin Dybedahl,
|
||||
JZ,
|
||||
Jz,
|
||||
Kankiti,
|
||||
Kathy Goldstein,
|
||||
kathy word,
|
||||
Kathy Word,
|
||||
Ken Miller,
|
||||
Kirill Sivy,
|
||||
Kuchengnom,
|
||||
Laurent Bouguetaïa,
|
||||
Leon,
|
||||
Lili1232000,
|
||||
Lise W,
|
||||
Lizabeth Kelly,
|
||||
lou,
|
||||
Lou,
|
||||
Lukasz G,
|
||||
Manse,
|
||||
Marcel,
|
||||
@@ -77,51 +94,57 @@ Marie,
|
||||
Marijke,
|
||||
Mark,
|
||||
Martin,
|
||||
Matthew Nowosiadly,
|
||||
Medea,
|
||||
Meghann,
|
||||
Melissa,
|
||||
Michaela,
|
||||
Michaela Gáliková,
|
||||
mieke,
|
||||
Michaela,
|
||||
Mieke,
|
||||
Mimi,
|
||||
moj shar,
|
||||
MonicaKS,
|
||||
Moj Shar,
|
||||
Monicaks,
|
||||
Nancy Anne Martin,
|
||||
Nancy Keary,
|
||||
Nic Lecloux,
|
||||
Nick,
|
||||
nirpf,
|
||||
Nirpf,
|
||||
Paaskus,
|
||||
Pascal H,
|
||||
Paula Jean McKenney Valadez,
|
||||
Paul Will,
|
||||
Paula Jean Mckenney Valadez,
|
||||
Pauline Roberts (Capyboppy),
|
||||
Pitdepitis,
|
||||
Rachelle and Omar,
|
||||
RaptorRich,
|
||||
Rachelle And Omar,
|
||||
Raptorrich,
|
||||
Rich,
|
||||
RiztheBread,
|
||||
RoijalBaker,
|
||||
Rizthebread,
|
||||
Roijalbaker,
|
||||
Rori,
|
||||
Ruben August Fischer,
|
||||
Sander,
|
||||
Sandy,
|
||||
Sarah,
|
||||
Scooter,
|
||||
Scott Mattson,
|
||||
SebastianKlocke,
|
||||
Sebastianklocke,
|
||||
Sharon Eicher,
|
||||
ShelleyMierle,
|
||||
SheriK,
|
||||
Shelleymierle,
|
||||
Sherik,
|
||||
Smirnov,
|
||||
Spencer,
|
||||
strambinha,
|
||||
Sue,
|
||||
Strambinha,
|
||||
Sue,
|
||||
Sune,
|
||||
Susan,
|
||||
Sven,
|
||||
tbonewilly,
|
||||
Tbonewilly,
|
||||
Thales Mello,
|
||||
TheRealBruce,
|
||||
Therealbruce,
|
||||
Tracy and Paul Will,
|
||||
Usliv,
|
||||
Vassil Dichev,
|
||||
Vladimir Smirnov,
|
||||
Vladimir Smirnov,
|
||||
Voicu,
|
||||
Zika,
|
||||
Zoltan
|
||||
Zoltan.
|
||||
|
||||
|
Can't render this file because it has a wrong number of fields in line 150.
|
@@ -7,7 +7,7 @@
|
||||
100 / 212 & Water evaporation & Water begins to evaporate and inflates your dough's alveoli.\\
|
||||
118 / 244 & Acetic acid evaporation & The vinegary tasting acid starts to evaporate, sourness decreases.\\
|
||||
122 / 252 & Lactic acid evaporation & The dairy tasting lactic acid begins to evaporate, sourness further decreases.\\
|
||||
140 / 284 & Maillard reaction & The maillard reaction starts to deform starches and proteins.
|
||||
140 / 284 & Maillard reaction & The Maillard reaction starts to deform starches and proteins.
|
||||
The dough starts browning.\\
|
||||
170 / 338 & Caramelization & Remaining sugars begin to caramelise giving your bread a distinct flavor.\\ \bottomrule
|
||||
170 / 338 & Caramelization & Remaining sugars begin to caramelize giving your bread a distinct flavor.\\ \bottomrule
|
||||
\end{tabular}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
%TODO: last line is not great
|
||||
-\begin{tabular}{lll}
|
||||
%TODO: Alignment is not great
|
||||
\begin{tabular}{@{}lll@{}}
|
||||
\toprule
|
||||
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
|
||||
\textbf{Flour} & 100g & 100g \\
|
||||
\textbf{Water} & 100g (100\%) & 300g (300\%) \\
|
||||
\textbf{Sourdough starter} & 5--20g (5--20\%) & 5--20g (5--20\%) \\
|
||||
\textbf{Salt} & 2g (2\%) & 2g (2\%) \\
|
||||
\textbf{Bake when?} & Dough increased 50 percent in size & Bubbles visible on surface \\ \bottomrule
|
||||
& \textbf{Flat breads} & \textbf{Pancakes} \\ \midrule
|
||||
Flour & \qty{100}{g} & \qty{100}{g} \\
|
||||
Water & up to \qty{100}{g} (\qty{100}{\percent}) & \qty{300}{g} (\qty{300}{\percent}) \\
|
||||
Sourdough starter & 5--\qty{20}{g} (5--\qty{20}{\percent}) & 5--\qty{20}{g} (5--\qty{20}{\percent}) \\
|
||||
Salt & \qty{2}{g} (\qty{2}{\percent}) & \qty{2}{g} (\qty{2}{\percent}) \\
|
||||
Bake when? & Dough increased \qty{50}{\percent} in size & Bubbles visible on surface \\ \bottomrule
|
||||
\end{tabular}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
\begin{tabular}{@{}llrrr@{}}
|
||||
\toprule
|
||||
\thead{USA} & \thead{UK} & {\thead{Germany}} & {\thead{France}} & {\thead{Italy}} \\ \midrule
|
||||
Cake & Soft flour & T405 & T45 & 00 \\
|
||||
All purpose & Plain flour & T550 & T55 & 0 \\
|
||||
& & T812 & T80 & 1 \\
|
||||
& & T1050 & T110 & 2 \\
|
||||
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
|
||||
\textbf{USA} & \textbf{UK} & {\textbf{Germany}} & {\textbf{France}} & {\textbf{Italy}} \\ \midrule
|
||||
Cake & Soft flour & T405 & T45 & 00 \\
|
||||
All purpose & Plain flour & T550 & T55 & 0 \\
|
||||
Bread flour & Bread flour & T405 or T550 & T45 or T55 & 00 or 0 \\
|
||||
& & T812 & T80 & 1 \\
|
||||
& & T1050 & T110 & 2 \\
|
||||
Whole & Whole & Vollkorn & T150 & Integrale \\ \bottomrule
|
||||
\end{tabular}
|
||||
|
||||