mirror of
https://github.com/hendricius/the-sourdough-framework
synced 2025-11-29 06:13:58 -06:00
Compare commits
69 Commits
1a51a2b6ac
...
225-ebook-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac8f2038ee | ||
|
|
75dc8432bb | ||
|
|
8fd1df9d33 | ||
|
|
70d90781c8 | ||
|
|
d02e99c46e | ||
|
|
9e267a2b4b | ||
|
|
a93a19d40d | ||
|
|
7f2f010571 | ||
|
|
75b015cda6 | ||
|
|
d0a5d6d37e | ||
|
|
2c86529981 | ||
|
|
e73b0f331a | ||
|
|
3b8dfd8d81 | ||
|
|
374fb7adfa | ||
|
|
d1e3390360 | ||
|
|
bcdaf79479 | ||
|
|
8b581f3bc4 | ||
|
|
f6cf15156a | ||
|
|
864127e571 | ||
|
|
d884d588d6 | ||
|
|
42c9f31673 | ||
|
|
d5ae1315ce | ||
|
|
311bd55a7f | ||
|
|
b57089b777 | ||
|
|
ad94b9fabc | ||
|
|
194511d5cf | ||
|
|
7f6fde9e42 | ||
|
|
7014b1f5ea | ||
|
|
69c7b8bc5f | ||
|
|
b2dfd2e71c | ||
|
|
fad09e9b26 | ||
|
|
574eca71e6 | ||
|
|
7f86f2fc20 | ||
|
|
266de7b7ee | ||
|
|
92c5e418b3 | ||
|
|
66e8a57b51 | ||
|
|
cf1e2b03be | ||
|
|
8ae707a1c6 | ||
|
|
9faf2cfc63 | ||
|
|
d31372e063 | ||
|
|
20b058fbc6 | ||
|
|
c799d65826 | ||
|
|
d6dfb50beb | ||
|
|
240d6f4591 | ||
|
|
fd9924a7c4 | ||
|
|
c987ddfa92 | ||
|
|
996a6e6e47 | ||
|
|
93fb6bce30 | ||
|
|
e8748b7137 | ||
|
|
4af4287561 | ||
|
|
0fc8bf911b | ||
|
|
ae7e518106 | ||
|
|
e3a04ca337 | ||
|
|
5cd2b6862f | ||
|
|
ec6f9b335d | ||
|
|
dbc7d84610 | ||
|
|
9c7e75b104 | ||
|
|
a31d4c5e70 | ||
|
|
ae8ece92f0 | ||
|
|
042343819e | ||
|
|
29461db9ab | ||
|
|
11580d4647 | ||
|
|
a4235fd028 | ||
|
|
b8c080d17f | ||
|
|
f104287988 | ||
|
|
c73e297585 | ||
|
|
2c78aeb92d | ||
|
|
c85cc7caaa | ||
|
|
400305a172 |
111
book/book.tex
111
book/book.tex
@@ -12,7 +12,6 @@
|
|||||||
\input{cover/cover.tex}
|
\input{cover/cover.tex}
|
||||||
\titlepage
|
\titlepage
|
||||||
|
|
||||||
\frontmatter
|
|
||||||
{%
|
{%
|
||||||
\hypersetup{hidelinks}
|
\hypersetup{hidelinks}
|
||||||
\ifdefined\HCode\else\tableofcontents\fi
|
\ifdefined\HCode\else\tableofcontents\fi
|
||||||
@@ -21,43 +20,89 @@
|
|||||||
\input{intro/preface}
|
\input{intro/preface}
|
||||||
\input{intro/acknowledgments}
|
\input{intro/acknowledgments}
|
||||||
|
|
||||||
\mainmatter
|
\begin{flowchart}[!htb]
|
||||||
|
\begin{center}
|
||||||
|
\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
|
||||||
|
of the bake and then baked without cover for the second half of the
|
||||||
|
bake. The desired darkness and thickness of the crust depends on your
|
||||||
|
personal preference. Some bakers prefer a lighter crust and others a
|
||||||
|
darker.}%
|
||||||
|
\label{fig:dutch-oven-process}
|
||||||
|
\end{center}
|
||||||
|
\end{flowchart}
|
||||||
|
|
||||||
\input{history/sourdough-history}
|
At around \qty{60}{\degreeCelsius} (\qty{140}{\degF}) the microbes in your
|
||||||
|
dough start to die. There are rumors that until this happens the microbes
|
||||||
|
produce a lot of \ch{CO2}.
|
||||||
|
|
||||||
\input{basics/how-sourdough-works}
|
% Does not work
|
||||||
|
\begin{figure}[!htb]
|
||||||
|
\begin{center}
|
||||||
|
\input{figures/fig-ethanol-oxidation.tex}
|
||||||
|
\caption[Acetic acid creation]{Oxygen is required to create acetic
|
||||||
|
acid~\cite{acetic+acid+production}.}%
|
||||||
|
\label{fig:ethanol-oxidation}
|
||||||
|
\end{center}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\input{sourdough-starter/sourdough-starter}
|
%% Works
|
||||||
|
%% Generate first with: cd figures && pdflatex fig-ethanol-oxidation-external.tex
|
||||||
|
%\begin{figure}[!htb]
|
||||||
|
% \begin{center}
|
||||||
|
% \includegraphics{figures/fig-ethanol-oxidation-external.png}
|
||||||
|
% \caption[Acetic acid creation]{Oxygen is required to create acetic
|
||||||
|
% acid~\cite{acetic+acid+production}.}%
|
||||||
|
% \end{center}
|
||||||
|
%\end{figure}
|
||||||
|
%
|
||||||
|
%% Does not work
|
||||||
|
%\begin{figure}[!htb]
|
||||||
|
%\begin{center}
|
||||||
|
% \input{figures/fig-life-planet-sourdough-timeline.tex}
|
||||||
|
% \caption[Sourdough microbiology timeline]{Timeline giberrish on website}%
|
||||||
|
%\end{center}
|
||||||
|
%\end{figure}
|
||||||
|
%
|
||||||
|
%% Works
|
||||||
|
%% Generate first with: cd figures && pdflatex fig-life-planet-sourdough-timeline-external.pdf
|
||||||
|
%\begin{figure}[!htb]
|
||||||
|
% \includegraphics{figures/fig-life-planet-sourdough-timeline-external.png}
|
||||||
|
% \caption[Sourdough microbiology timeline]{Timeline works embedded as png}%
|
||||||
|
%\end{figure}
|
||||||
|
%
|
||||||
|
%\begin{figure}[!htb]
|
||||||
|
% \includegraphics[width=\textwidth]{baking-experiment-temperatures.png}
|
||||||
|
% \caption[Surface temperature for different steaming methods]{png file}
|
||||||
|
%\end{figure}
|
||||||
|
|
||||||
\input{sourdough-starter/sourdough-starter-types}
|
\begin{figure}[!htb]
|
||||||
|
\includegraphics[width=\textwidth]{baking-process-steam.jpg}
|
||||||
|
\caption[Steam building with inverted tray]{jpg file}%
|
||||||
|
\label{flc:inverted-tray}
|
||||||
|
\end{figure}
|
||||||
|
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
|
||||||
|
starches into sugar~\cite{beer+amylase}.
|
||||||
|
This test, called the \emph{Iodine Starch Test}, involves mixing iodine into
|
||||||
|
a sample of your brew and checking the color.
|
||||||
|
|
||||||
\input{flour-types/flour-types}
|
% https://github.com/hendricius/the-sourdough-framework/issues/358
|
||||||
|
\begin{table}[!htb]
|
||||||
|
\begin{center}
|
||||||
|
\input{tables/table-starter-usage-activity.tex}
|
||||||
|
\caption[Different oven types]{An overview of different oven types and
|
||||||
|
eheir different baking methods.}
|
||||||
|
\end{center}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
\input{bread-types/bread-types}
|
\begin{table}[!htb]
|
||||||
|
\begin{center}
|
||||||
\chapter{Wheat sourdough}%
|
\input{tables/table-oven-baking-overview.tex}
|
||||||
\label{chapter:wheat-sourdough}
|
\caption[Different oven types]{An overview of different oven types and their
|
||||||
\input{wheat-sourdough/wheat-sourdough}
|
different baking methods.}
|
||||||
|
\end{center}
|
||||||
\input{non-wheat-sourdough/non-wheat-sourdough}
|
\end{table}
|
||||||
|
|
||||||
\input{mix-ins/mix-ins.tex}
|
|
||||||
|
|
||||||
\input{baking/baking}
|
|
||||||
|
|
||||||
\input{storing-bread/storing-bread}
|
|
||||||
|
|
||||||
\chapter{Troubleshooting}
|
|
||||||
\input{troubleshooting/misc}
|
|
||||||
|
|
||||||
\backmatter
|
|
||||||
\input{glossary/glossary}
|
|
||||||
{%
|
|
||||||
\hypersetup{hidelinks}
|
|
||||||
\listofflowcharts
|
|
||||||
\listoftables
|
|
||||||
\listoffigures
|
|
||||||
}
|
|
||||||
\printbibliography
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ if [ "$#" -ne 1 ]; then
|
|||||||
done
|
done
|
||||||
else
|
else
|
||||||
target=figures/`basename $1 .png.pdf`.png
|
target=figures/`basename $1 .png.pdf`.png
|
||||||
|
echo ${target}
|
||||||
echo "Converting: " $1 " to: " ${target}
|
echo "Converting: " $1 " to: " ${target}
|
||||||
convert -density 900 -trim $1 -quality 100 ${target}
|
convert -density 900 -trim $1 -quality 100 ${target}
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,32 +1,8 @@
|
|||||||
\begin{tikzpicture}[node distance = 3cm, auto]
|
\begin{tikzpicture}[node distance = 3cm, auto]
|
||||||
\node [start] (heat_oven) {Preheat DO to \qty{230}{\degreeCelsius} (\qty{446}{\degF}) for 30~minutes};
|
\node [start] (heat_oven) {Preheat DO to \qty{230}{\degreeCelsius} (\qty{446}{\degF}) for 30~minutes};
|
||||||
\node [block, right of=heat_oven] (remove_oven) {Remove DO from oven };
|
\node [block, right of=heat_oven] (remove_oven) {Remove DO from oven ° \text{°} \textup{°}};
|
||||||
\node [block, right of=remove_oven] (open_load_dough) {Open DO \& load your dough};
|
\node [decision, below of=heat_oven, node distance=4cm] (is_ready_check) {Core temperature \qty{92}{\degreeCelsius} (\qty{197}{\degF})?};
|
||||||
\node [block, right of=open_load_dough] (score) {Score your dough};
|
\node [block, right of=is_ready_check, node distance=4cm] (remove_do_lid) {%
|
||||||
\node [block, right of=score] (spritz) {Spritz dough with water};
|
Jörg bäckt quasi zwei Haxenfüße vom Wildpony .Dès Noël, où un zéphyr haï me
|
||||||
\node [block, below of=spritz] (close) {Close DO};
|
vêt};
|
||||||
\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 [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 [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);
|
|
||||||
\path [line] (score) -- (spritz);
|
|
||||||
\path [line] (spritz) -- (close);
|
|
||||||
\path [line] (close) -- (back_oven);
|
|
||||||
\path [line] (back_oven) -- (bake);
|
|
||||||
\path [line] (bake.west) -- node{} ++(-2, 0) -| (is_ready_check.north);
|
|
||||||
\path [line] (is_ready_check) -- node{Yes} (remove_do_lid);
|
|
||||||
\path [line] (is_ready_check) -- node{No} (wait_5_minutes);
|
|
||||||
\path [line] (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.east) -- node{} ++(1, 0) -- node{} ++(0, 2.3) -| (dark_enough_decision.north);
|
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
|
|||||||
75
book/pgfsys-dvisvgm4ht.def
Normal file
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:
|
||||||
@@ -19,4 +19,18 @@
|
|||||||
font-family: 'Open Sans';
|
font-family: 'Open Sans';
|
||||||
}
|
}
|
||||||
</style>}}
|
</style>}}
|
||||||
|
|
||||||
|
% Deal with chemical equations in a single svg
|
||||||
|
\ExplSyntaxOn
|
||||||
|
\def\standaloneenv#1{}
|
||||||
|
\pend:def\schemestart{\Picture+{}}
|
||||||
|
\append:def\CF_schemestop{\EndPicture}
|
||||||
|
\ExplSyntaxOff
|
||||||
|
\makeatletter
|
||||||
|
\def\texfourht@tikz@begin{
|
||||||
|
\protect\csname nested:math\endcsname% support display math
|
||||||
|
\Picture+[\csname a:Picture-alt\endcsname]{}%
|
||||||
|
}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
\EndPreamble
|
\EndPreamble
|
||||||
|
|||||||
@@ -47,5 +47,17 @@
|
|||||||
}
|
}
|
||||||
\ConfigureToc{loc}{\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br />}}
|
\ConfigureToc{loc}{\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br />}}
|
||||||
|
|
||||||
|
\ExplSyntaxOn
|
||||||
|
\def\standaloneenv#1{}
|
||||||
|
\pend:def\schemestart{\Picture+{}}
|
||||||
|
\append:def\CF_schemestop{\EndPicture}
|
||||||
|
\ExplSyntaxOff
|
||||||
|
\makeatletter
|
||||||
|
\def\texfourht@tikz@begin{
|
||||||
|
\protect\csname nested:math\endcsname% support display math
|
||||||
|
\Picture+[\csname a:Picture-alt\endcsname]{}%
|
||||||
|
}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
\EndPreamble
|
\EndPreamble
|
||||||
|
|||||||
Reference in New Issue
Block a user