diff --git a/2026.08-PrayersForDailyLife/.gitignore b/2026.08-PrayersForDailyLife/.gitignore
index 36918c8..96ab011 100644
--- a/2026.08-PrayersForDailyLife/.gitignore
+++ b/2026.08-PrayersForDailyLife/.gitignore
@@ -1,14 +1,14 @@
__pycache__
.venv/
*.tar
-latex/main.aux
-latex/main.idx
-latex/main.ilg
-latex/main.ind
-latex/main.ind
-latex/main.log
-latex/main.pdf
-latex/main.toc
+*.log
+*.aux
+*.idx
+*.ilg
+*.ind
+*.ind
+*.pdf
+*.toc
latex/CON*.tex
latex/CRI*.tex
latex/DRY*.tex
diff --git a/2026.08-PrayersForDailyLife/art/o01.png b/2026.08-PrayersForDailyLife/art/o01.png
new file mode 100644
index 0000000..cac31bc
Binary files /dev/null and b/2026.08-PrayersForDailyLife/art/o01.png differ
diff --git a/2026.08-PrayersForDailyLife/art/prayers101_qr.png b/2026.08-PrayersForDailyLife/art/prayers101_qr.png
new file mode 100644
index 0000000..005e23d
Binary files /dev/null and b/2026.08-PrayersForDailyLife/art/prayers101_qr.png differ
diff --git a/2026.08-PrayersForDailyLife/art/prayers101_qr.svg b/2026.08-PrayersForDailyLife/art/prayers101_qr.svg
new file mode 100644
index 0000000..00321fd
--- /dev/null
+++ b/2026.08-PrayersForDailyLife/art/prayers101_qr.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/2026.08-PrayersForDailyLife/latex/generate_latex.py b/2026.08-PrayersForDailyLife/latex/generate_latex.py
index a54936d..ce05672 100644
--- a/2026.08-PrayersForDailyLife/latex/generate_latex.py
+++ b/2026.08-PrayersForDailyLife/latex/generate_latex.py
@@ -107,6 +107,24 @@ from pathlib import Path
from categories import CATEGORIES, VALID_CODES, category_name
+
+class _Tee:
+ """Duplicates writes to multiple streams -- used so every print()
+ already in this script (stdout AND stderr) also lands in a log
+ file, without having to touch each individual print() call. Set up
+ once args are parsed and latex_dir exists; see main()."""
+
+ def __init__(self, *streams):
+ self._streams = streams
+
+ def write(self, data):
+ for s in self._streams:
+ s.write(data)
+
+ def flush(self):
+ for s in self._streams:
+ s.flush()
+
# --- Parsing ----------------------------------------------------------------
HEADER_RE = re.compile(
@@ -282,15 +300,81 @@ def split_blocks(text: str):
# --- LaTeX rendering ----------------------------------------------------
+# Matches a line that starts DIRECTLY with a letter -- the case where a
+# real lettrine-style drop cap (which must be the literal first token of
+# the paragraph) can be used cleanly. Captures the first letter and the
+# rest of that same word separately, since \lettrine{first}{restofword}
+# wants them split (lettrine.cfg renders the rest of the word in small
+# caps by default).
+LETTRINE_RE = re.compile(r"^([A-Za-z])([A-Za-z']*)(.*)$", re.DOTALL)
+
+# Fallback for a line that opens with punctuation (a quote mark, an em
+# dash, etc.) -- tested against real lettrine output and confirmed it
+# looks cramped/wrong when the leading punctuation is folded into
+# \lettrine's argument, so these get the simpler inline \dropcap{}
+# treatment instead, with the punctuation left on the normal baseline
+# in front of it.
+DROPCAP_RE = re.compile(r"^(\W*)([A-Za-z])(.*)$", re.DOTALL)
+
+
+# Drop cap height, in lines -- fixed at 2 regardless of how long the
+# first stanza actually runs. Note this means the margin WILL snap back
+# for any stanza longer than 2 lines (most of them), same artifact
+# flagged and fixed-away earlier in this file's history -- kept here
+# anyway because the shorter, more compact cap was explicitly preferred
+# over avoiding that artifact. min() with the stanza's own line count
+# just guards the rare 1-line-stanza case, where reserving 2 lines of
+# indent for a stanza that only has 1 would leave dead space.
+DROPCAP_LINES = 2
+
+
+def apply_dropcap(line: str, stanza_line_count: int) -> str:
+ """Wraps the first letter of a prayer's opening line in a drop cap.
+ Uses a real multi-line \\lettrine{}{} when the line starts directly
+ with a letter -- lines= is fixed at DROPCAP_LINES (see above).
+
+ Falls back to a simple enlarged inline \\dropcap{} only when the
+ line opens with punctuation (e.g. a quotation mark), since lettrine
+ can't cleanly absorb a leading non-letter character into its own
+ argument.
+
+ Both macros need defining in your preamble, e.g.:
+ \\usepackage{lettrine}
+ \\newcommand{\\dropcap}[1]{{\\bfseries\\Large #1}}
+ """
+ lm = LETTRINE_RE.match(line)
+ if lm and not line[:1].isspace():
+ first, restword, rest = lm.groups()
+ lines_opt = min(stanza_line_count, DROPCAP_LINES)
+ return (
+ f"\\lettrine[lines={lines_opt},nindent=0pt]{{" + escape_latex(first) + "}{" + escape_latex(restword) + "}"
+ + escape_latex(rest)
+ )
+ dm = DROPCAP_RE.match(line)
+ if not dm:
+ return escape_latex(line)
+ lead, letter, rest = dm.groups()
+ return escape_latex(lead) + "\\dropcap{" + escape_latex(letter) + "}" + escape_latex(rest)
+
+
def render_prayer(entry: dict) -> str:
"""Prayer body only. No occasion label, no index -- those live in
render_occasion_label, which fills the separate [[OCCASIONS]]
- placeholder (shown above the verse quote, per the template's layout)."""
+ placeholder (shown above the verse quote, per the template's layout).
+
+ The very first letter of the prayer's opening line gets a drop cap --
+ see apply_dropcap() for the lettrine/fallback split and how its
+ height is chosen."""
stanzas = split_blocks(entry["text"])
stanza_texts = []
- for stanza in stanzas:
+ for s_idx, stanza in enumerate(stanzas):
raw_lines = [ln.strip() for ln in stanza.split("\n") if ln.strip()]
- esc_lines = [escape_latex(ln) for ln in raw_lines]
+ esc_lines = []
+ for l_idx, ln in enumerate(raw_lines):
+ if s_idx == 0 and l_idx == 0:
+ esc_lines.append(apply_dropcap(ln, len(raw_lines)))
+ else:
+ esc_lines.append(escape_latex(ln))
stanza_texts.append(" \\\\\n".join(esc_lines))
body = " \\\\[\\medskipamount]\n".join(stanza_texts)
return "\\noindent " + body
@@ -345,19 +429,23 @@ def render_entry_tex(number: int, parsed: dict, template: str) -> str:
def render_inputs_block(grouped: "OrderedDictType", category_macro: str) -> str:
- """grouped: ordered mapping of code -> list of basenames (already in
- Psalm-reference order), for categories that have at least one entry.
- Returns the raw chapter+\\input{} block -- this is what gets written
- to inputs.tex when it doesn't exist yet, NOT injected into main.tex
+ """grouped: ordered mapping of code -> list of (basename, occasion)
+ pairs (already in Psalm-reference order), for categories that have
+ at least one entry. Each \\input{} line gets a trailing comment with
+ that entry's occasion text, purely to make a hand-edited inputs.tex
+ easier to skim/reorder -- comments are inert to LaTeX, so this is
+ just a courtesy to whoever's editing the file by hand. Returns the
+ raw chapter+\\input{} block -- this is what gets written to
+ inputs.tex when it doesn't exist yet, NOT injected into main.tex
directly (main.tex now \\input{}s inputs.tex itself, per the
template)."""
blocks = []
- for code, basenames in grouped.items():
- if not basenames:
+ for code, entries in grouped.items():
+ if not entries:
continue
name = category_name(code)
heading = f"\\{category_macro}{{{escape_latex(name)}}}"
- inputs = "\n".join(f"\\input{{{name_}}}" for name_ in basenames)
+ inputs = "\n".join(f"\\input{{{basename}}} % {occasion}" for basename, occasion in entries)
blocks.append(f"{heading}\n{inputs}")
text = "\n\n".join(blocks)
if not text.endswith("\n"):
@@ -427,6 +515,17 @@ def main():
sys.exit(f"Main template not found: {main_template_path}")
latex_dir.mkdir(parents=True, exist_ok=True)
+ # From here on, everything printed (stdout and stderr both) also goes
+ # to generate_latex.log in latex_dir -- so skip/warning messages
+ # survive even when this script's own output gets buried in the
+ # surrounding pdflatex/makeindex noise of a full build pipeline.
+ log_path = latex_dir / "generate_latex.log"
+ log_file = log_path.open("w", encoding="utf-8")
+ sys.stdout = _Tee(sys.stdout, log_file)
+ sys.stderr = _Tee(sys.stderr, log_file)
+ print(f"(full log also being written to {log_path})")
+ print()
+
if args.category_order:
order = [c.strip().upper() for c in args.category_order.split(",")]
bad = [c for c in order if c not in VALID_CODES]
@@ -532,7 +631,10 @@ def main():
code_by_name = {category_name(c): c for c in VALID_CODES}
if not inputs_path.exists():
- grouped = OrderedDict((c, [item["path"].stem for item in by_category[c]]) for c in order)
+ grouped = OrderedDict(
+ (c, [(item["path"].stem, item["parsed"]["entries"][0]["occasion"]) for item in by_category[c]])
+ for c in order
+ )
inputs_path.write_text(render_inputs_block(grouped, args.category_macro), encoding="utf-8")
final_order = list(default_order)
print(f"No inputs.tex found -- generated a fresh one at {inputs_path} "
diff --git a/2026.08-PrayersForDailyLife/latex/inputs.tex b/2026.08-PrayersForDailyLife/latex/inputs.tex
index 95d593c..bd9048a 100644
--- a/2026.08-PrayersForDailyLife/latex/inputs.tex
+++ b/2026.08-PrayersForDailyLife/latex/inputs.tex
@@ -1,121 +1,122 @@
\chapter{Wonder \& Thanksgiving}
-\input{WON-008.04}
-\input{WON-018.02}
-\input{WON-019.01}
-\input{WON-024.01}
-\input{WON-139.14}
-\input{WON-147.04}
-\input{WON-150.06}
+\input{WON-008.04} % Feeling small in a big world
+\input{WON-018.02} % After a close call
+\input{WON-019.01} % Thanking God for creation
+\input{WON-024.01} % Caring for the natural world
+\input{WON-139.14} % Wonder at how I'm made
+\input{WON-147.04} % The stars on a clear night
+\input{WON-150.06} % Wonder at absolutely everything
\chapter{Weariness, Worry \& Fear}
-\input{WWF-001.03}
-\input{WWF-004.08}
-\input{WWF-005.03}
-\input{WWF-006.02}
-\input{WWF-016.11}
-\input{WWF-019.14}
-\input{WWF-023.02}
-\input{WWF-037.25}
-\input{WWF-046.01}
-\input{WWF-130.05}
-\input{WWF-131.02}
-\input{WWF-142.04}
+\input{WWF-001.03} % Waiting for the right season
+\input{WWF-004.08} % Trouble falling asleep
+\input{WWF-005.03} % Waking up worried
+\input{WWF-006.02} % Slow recovery from illness
+\input{WWF-016.11} % Fearing joy won't last
+\input{WWF-019.14} % Before speaking in public
+\input{WWF-023.02} % When I'm bone tired
+\input{WWF-037.25} % Fear of not having enough
+\input{WWF-046.01} % After losing a job
+\input{WWF-130.05} % When I have to wait
+\input{WWF-131.02} % When I can't stop worrying
+\input{WWF-142.04} % During a lonely season
\chapter{Guidance \& Decisions}
-\input{GUI-020.04}
-\input{GUI-025.04}
-\input{GUI-027.01}
-\input{GUI-032.08}
-\input{GUI-034.08}
-\input{GUI-039.04}
-\input{GUI-082.08}
-\input{GUI-090.12}
-\input{GUI-119.105}
-\input{GUI-143.10}
+\input{GUI-020.04} % Bringing dreams before God
+\input{GUI-025.04} % Making a big move
+\input{GUI-027.01} % Facing an important morning
+\input{GUI-032.08} % Seeking God before decisions
+\input{GUI-034.08} % When I reach for the wrong refuge
+\input{GUI-039.04} % Making the most of today
+\input{GUI-082.08} % Stress from too many decisions
+\input{GUI-090.12} % Choosing how to spend your time
+\input{GUI-119.105} % Taking one step at a time
+\input{GUI-143.10} % Needing moral clarity
\chapter{Crisis \& Emergency}
-\input{CRI-023.06}
-\input{CRI-027.14}
-\input{CRI-055.05}
-\input{CRI-056.03}
-\input{CRI-061.02}
-\input{CRI-073.26}
-\input{CRI-090.01}
-\input{CRI-112.07}
+\input{CRI-027.14} % Waiting for test results
+\input{CRI-055.05} % When panic takes over
+\input{CRI-056.03} % Before a big surgery
+\input{CRI-061.02} % Bad news from far away
+\input{CRI-073.26} % Bad news from the doctor
+\input{CRI-090.01} % Starting over after disaster
+\input{CRI-112.07} % After hearing bad news
+\input{CRI-023.06} % Facing the end of life
\chapter{Loss}
-\input{LOS-006.06}
-\input{LOS-027.10}
-\input{LOS-034.18}
-\input{LOS-068.05}
-\input{LOS-088.03}
-\input{LOS-088.18}
-\input{LOS-102.01}
-\input{LOS-145.09}
-\input{LOS-139.13}
+\input{LOS-102.01} % A loss of something important
+\input{LOS-145.09} % Loss of a pet
+\input{LOS-034.18} % Grieving a broken family
+\input{LOS-006.06} % Loss of a child
+\input{LOS-139.13} % Miscarriage
+\input{LOS-088.18} % Loss of a friend
+\input{LOS-027.10} % Loss of parents
+\input{LOS-068.05} % Loss of a spouse
+\input{LOS-088.03} % Grieving a suicide
\chapter{Milestones}
-\input{MIL-037.05}
-\input{MIL-071.09}
-\input{MIL-071.17}
-\input{MIL-103.17}
-\input{MIL-127.03}
-\input{MIL-128.01}
+\input{MIL-037.05} % Starting a new job
+\input{MIL-068.06} % Moving into a new home
+\input{MIL-071.17} % Graduation
+\input{MIL-128.01} % Wedding
+\input{MIL-127.03} % The arrival of a new child
+\input{MIL-103.17} % The arrival of a new grandchild
+\input{MIL-071.09} % Retirement
\chapter{Temptation \& Self-Examination}
-\input{TMP-037.07}
-\input{TMP-040.02}
-\input{TMP-046.10}
-\input{TMP-051.10}
-\input{TMP-055.22}
-\input{TMP-086.05}
-\input{TMP-090.17}
-\input{TMP-103.01}
-\input{TMP-103.12}
-\input{TMP-103.14}
-\input{TMP-119.131}
-\input{TMP-139.23}
+\input{TMP-037.07} % Envy over someone else's success
+\input{TMP-040.02} % After a failure
+\input{TMP-046.10} % Letting go of control
+\input{TMP-051.10} % Asking forgiveness for hurtful words
+\input{TMP-055.22} % When I can't let something go
+\input{TMP-086.05} % When shame keeps me away
+\input{TMP-090.17} % When I don't want to do what needs doing
+\input{TMP-103.01} % Wanting wholehearted worship
+\input{TMP-103.12} % Confessing hidden wrongdoing
+\input{TMP-103.14} % When I'm disappointed in myself
+\input{TMP-119.131} % Wanting to break old habits
+\input{TMP-139.23} % When my motives are mixed
\chapter{Spiritual Dryness \& Discontent}
-\input{DRY-027.04}
-\input{DRY-042.01}
-\input{DRY-042.05}
-\input{DRY-084.02}
-\input{DRY-092.12}
-\input{DRY-094.19}
-\input{DRY-100.05}
-\input{DRY-136.01}
-\input{DRY-143.08}
+\input{DRY-027.04} % A distracted heart
+\input{DRY-042.01} % Coming back after drifting
+\input{DRY-042.05} % When today feels wasted
+\input{DRY-084.02} % Restless after getting what you wanted
+\input{DRY-092.12} % Discouraged by slow growth
+\input{DRY-094.19} % Inner turmoil
+\input{DRY-100.05} % When God's goodness feels distant
+\input{DRY-136.01} % When gratitude feels hard
+\input{DRY-143.08} % Praying first thing
\chapter{Relationships}
-\input{REL-041.09}
-\input{REL-051.17}
-\input{REL-062.08}
-\input{REL-078.04}
-\input{REL-091.05}
-\input{REL-103.10}
-\input{REL-127.01}
-\input{REL-141.03}
+\input{REL-041.09} % After being let down
+\input{REL-051.17} % After hurting someone deeply
+\input{REL-062.08} % When you have no one to talk to
+\input{REL-078.04} % Teaching a child about God
+\input{REL-091.05} % Children afraid of the dark
+\input{REL-103.10} % When I need to forgive
+\input{REL-127.01} % Building a marriage
+\input{REL-141.03} % When I need courage for an ordinary conversation
\chapter{Conflicts }
-\input{CON-001.01}
-\input{CON-004.01}
-\input{CON-004.04}
-\input{CON-016.08}
-\input{CON-059.16}
-\input{CON-133.01}
+\input{CON-001.01} % Joining in cruel jokes
+\input{CON-004.01} % Stress over unfair treatment
+\input{CON-004.04} % When I'm angry with someone I love
+\input{CON-016.08} % Walking into a hard meeting
+\input{CON-059.16} % Trouble that follows you home
+\input{CON-133.01} % A church split healing
\chapter{Gratitude}
-\input{GRA-023.01}
-\input{GRA-028.07}
-\input{GRA-030.05}
-\input{GRA-037.04}
-\input{GRA-065.11}
-\input{GRA-090.14}
-\input{GRA-095.01}
-\input{GRA-103.02}
-\input{GRA-104.33}
-\input{GRA-107.01}
-\input{GRA-116.12}
-\input{GRA-118.24}
-\input{GRA-143.08}
+\input{GRA-023.01} % Learning to trust God's provision
+\input{GRA-028.07} % Thanking God for answered prayer
+\input{GRA-030.05} % Coming out of a hard season
+\input{GRA-037.04} % Seeking contentment in God
+\input{GRA-065.11} % Giving thanks for enough
+\input{GRA-090.14} % Thankfulness for this morning
+\input{GRA-092.02} % Waking up grateful
+\input{GRA-095.01} % Singing with joy again
+\input{GRA-103.02} % Remembering past help
+\input{GRA-104.33} % Staying faithful in old age
+\input{GRA-107.01} % When blessings feel ordinary
+\input{GRA-116.12} % When I'm grateful but don't quite know how to say it
+\input{GRA-118.24} % When I've had a good day
diff --git a/2026.08-PrayersForDailyLife/latex/main.tex b/2026.08-PrayersForDailyLife/latex/main.tex
index 0ccb5cb..74b0233 100644
--- a/2026.08-PrayersForDailyLife/latex/main.tex
+++ b/2026.08-PrayersForDailyLife/latex/main.tex
@@ -2,15 +2,37 @@
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\usepackage{ebgaramond}
-\usepackage[paperwidth=6in,paperheight=9in,margin=0.8in]{geometry}
+%\usepackage{ebgaramond}
+%\usepackage{libertine}
+%\usepackage{crimson}
+%\usepackage{fbb} % <<
+\usepackage{gentium}
+%\usepackage{garamondx} % BROKEN
+%\usepackage{Alegreya}
+
+\usepackage[
+ paperwidth = 6in,
+ paperheight = 9in,
+ inner = 0.9in, % Total margin on binding side
+ outer = 36pt,
+ top = 36pt,
+ bottom = 36pt,
+ includeheadfoot,
+ headsep = 0.25in,
+ footskip = 0.45in, % Ensure comma here if you add more keys later
+]{geometry}
+
\usepackage{makeidx}
\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage{lettrine}
+
\makeindex
\renewcommand{\indexname}{Index of Psalm References}
-\title{Prayer 101: Prayers for Daily Life \\[0.5em]
-\large 101 Devotional Prayers for Every Occasion}
+\title{\Huge Prayers for Daily Life \\[1.0em]
+\large 101 Devotional Prayers for Every Occasion \\[2.2em]
+\includegraphics[width=0.3\textwidth]{../art/o01.png} \\[2.0em]}
\author{George Marin}
\date{}
@@ -25,6 +47,8 @@
}
\newenvironment{versequote}{\begin{quote}\itshape}{\end{quote}}
+\newcommand{\dropcap}[1]{{\bfseries\Large #1}}
+
% Chapter title + page number in the footer, header left empty. Regular
% content pages: chapter name on the left, page number on the right.
% "plain"-style pages (every chapter-opening page, automatically, plus
@@ -34,24 +58,24 @@
% only -- \pagestyle{fancy} itself is activated at \mainmatter below, so
% it doesn't touch the front matter's own (already-correct) page styles.
\fancyhf{}
-\fancyfoot[L]{\leftmark}
-\fancyfoot[R]{\thepage}
+\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{%
\fancyhf{}%
- \fancyfoot[C]{\thepage}%
+ %\fancyfoot[C]{\thepage}%
\renewcommand{\headrulewidth}{0pt}%
}
+
% Table of contents doesn't set a running head the way \chapter does (it's
% typeset as a starred heading), so it gets its own named style rather than
% relying on \leftmark -- applies to every page the TOC spans, not just
% the first, since \pagestyle{} (not \thispagestyle{}) persists.
-\fancypagestyle{toc}{%
- \fancyhf{}%
- \fancyfoot[L]{\contentsname}%
- \fancyfoot[R]{\thepage}%
- \renewcommand{\headrulewidth}{0pt}%
-}
+% \fancypagestyle{toc}{%
+% \fancyhf{}%
+% \fancyfoot[L]{\leftmark}%
+% \fancyfoot[R]{\thepage}%
+% \renewcommand{\headrulewidth}{0pt}%
+% }
% \cleardoublepage (called internally by \frontmatter/\mainmatter/\backmatter
% in this two-sided book) inserts a blank filler page when needed so the
@@ -64,6 +88,18 @@
{\pagestyle{empty}\origcleardoublepage}%
}
+\usepackage{titlesec}
+
+\titleformat{\chapter}[display]
+ {\normalfont\huge\bfseries\centering}
+ {}
+ {0pt}
+ {\Huge}
+ [{\vspace{1em}\centering\includegraphics[width=0.3\textwidth]{../art/o01.png}}]
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\frontmatter
@@ -75,14 +111,15 @@
\thispagestyle{empty}
\vspace*{\fill}
-\noindent Prayers for Daily Life
+\noindent Prayers for Daily Life: \\
+101 Devotional Prayers for Every Occasion
-\medskip
-\noindent Copyright \textcopyright\ 2026 by George Marin
+\bigskip
+\noindent Copyright \textcopyright\ 2026 by William Zeitler
\noindent All rights reserved.
-\medskip
+\bigskip
\noindent No part of this publication may be reproduced, distributed,
or transmitted in any form or by any means, including photocopying,
recording, or other electronic or mechanical methods, without the
@@ -90,16 +127,29 @@ prior written permission of the publisher, except in the case of
brief quotations embodied in critical reviews and certain other
noncommercial uses permitted by copyright law.
-\medskip
+\bigskip
+\noindent Individual prayers from this collection may be reproduced for use
+in worship services, church bulletins, small group materials, or
+similar noncommercial ministry settings, provided the following
+attribution is included: ``From \emph{Prayers for Daily Life: 101 Devotional Prayers for Every Occasion}
+by George Marin. Published by Zechariah
+Press. Used by permission.'' This permission does not extend to
+compiling multiple prayers into another published work, whether
+print or digital, or to any use involving a fee, sale, or other
+commercial purpose.
+
+\bigskip
\noindent Scripture quotations are taken from the \textit{World English Bible}, British Edition (WEBBE),
a modern English translation dedicated to the public domain by its translators.
No permission is required for its use.
-\medskip
-\noindent Published by Zebedee Press
+\vspace{2.0em}
+
+\noindent Published by Zechariah Press
\noindent ISBN: 000-0-000000-00-0 % TODO: replace with the assigned ISBN before publication
+\medskip
\noindent First Edition
\vspace*{\fill}
\clearpage
@@ -109,18 +159,16 @@ No permission is required for its use.
% the table of contents itself starts at "i", not "iii".
\setcounter{page}{1}
-\pagestyle{toc}
+% \pagestyle{toc}
+% \tableofcontents
+% \thispagestyle{toc}
+\pagestyle{fancy}
\tableofcontents
-% \tableofcontents calls \thispagestyle{plain} internally on its own
-% first page (same mechanism \chapter uses) -- override that back to
-% our footer style for this specific page; any overflow page benefits
-% from \pagestyle{toc} above without needing this.
-\thispagestyle{toc}
\input{template-foreward}
\mainmatter
-\pagestyle{fancy}
+%\pagestyle{fancy}
\input{inputs}
\backmatter
@@ -128,4 +176,5 @@ No permission is required for its use.
\addcontentsline{toc}{chapter}{\indexname}
\printindex
+\input{template-review}
\end{document}
diff --git a/2026.08-PrayersForDailyLife/latex/template-foreward.tex b/2026.08-PrayersForDailyLife/latex/template-foreward.tex
index 86f16b8..645c82c 100644
--- a/2026.08-PrayersForDailyLife/latex/template-foreward.tex
+++ b/2026.08-PrayersForDailyLife/latex/template-foreward.tex
@@ -3,42 +3,37 @@
\noindent I didn't set out to write a hundred and one prayers.
I set out to write the ones I needed and couldn't find ---
-short enough to pray before the day got away from me,
-plain enough that I wasn't translating my own life into churchier language before I brought them to God.
+short enough to pray before the day got away,
+plain enough to skip the churchier language.
\medskip
-\noindent Somewhere past the first dozen I noticed a pattern:
-almost every hard morning, every long night, every ordinary Tuesday
-turned out to rhyme with something a psalmist had already said three thousand years ago.
-Weariness, worry, envy, gratitude, grief, the particular ache of a decision you can't quite make ---
-none of it is new.
+\noindent It didn't take long to notice a pattern:
+that every prayer
+rhymed with something a psalmist had already said three thousand years ago.
+Weariness, wonder, gratitude, grief --- none of it is new.
\medskip
-\noindent So this book borrows their voice.
+\noindent This book borrows their voice.
Each prayer opens with a verse from the Psalms and stays close to it,
-but with present-day concerns. You'll notice they're specific ---
-a wristband, a gurney, plastic bins after a storm. I've written them this way on purpose.
-A prayer that stays too general, ``Lord, help me in my trouble,'' rarely moves anyone,
-because it asks for nothing you can actually picture.
-But a prayer that is \textit{too} specific runs a different risk:
-what if your trouble doesn't look quite like mine?
+but with present-day concerns --- a hospital wristband, a gurney, plastic bins after a storm.
+A prayer too general, ``Lord, help me in my trouble,'' rarely moves anyone;
+it asks for nothing you can picture.
+But one too specific runs a different risk: what if your trouble doesn't look like mine?
\medskip
-\noindent So hold these loosely. Think of each one less as a script to recite word for word,
-and more as an aperture --- a way of opening your imagination onto something
-you already recognize, even if the details differ from your own.
-Let your words take over where mine leave off.
+\noindent So hold these loosely. Think of each one less as a script
+and more as an aperture --- a way of opening your imagination onto something
+you already recognize. Let your words take over where mine leave off.
\medskip
-\noindent Scripture quotations throughout are drawn from the \textit{World English Bible},
-a modern and freely available public domain translation,
-with one small and consistent adjustment:
-I've used the traditional rendering ``the LORD'' in place of the divine name ``Yahweh,''
-simply because it's what most of us are used to.
+\noindent Scripture quotations are drawn from the \textit{World English Bible},
+a public domain translation, with one adjustment:
+I've used the traditional ``the LORD'' in place of the divine name ``Yahweh,''
+since it's what most of us are used to.
\medskip
\noindent Wherever you are today --- weary, waiting, grateful, undone ---
my prayer is that you'll find something here that meets you there.
\bigskip
-\noindent George Marin
\ No newline at end of file
+\noindent \textit{George Marin}
\ No newline at end of file
diff --git a/2026.08-PrayersForDailyLife/latex/template-main.synctex(busy) b/2026.08-PrayersForDailyLife/latex/template-main.synctex(busy)
new file mode 100644
index 0000000..e69de29
diff --git a/2026.08-PrayersForDailyLife/latex/template-main.tex b/2026.08-PrayersForDailyLife/latex/template-main.tex
index 0ccb5cb..74b0233 100644
--- a/2026.08-PrayersForDailyLife/latex/template-main.tex
+++ b/2026.08-PrayersForDailyLife/latex/template-main.tex
@@ -2,15 +2,37 @@
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\usepackage{ebgaramond}
-\usepackage[paperwidth=6in,paperheight=9in,margin=0.8in]{geometry}
+%\usepackage{ebgaramond}
+%\usepackage{libertine}
+%\usepackage{crimson}
+%\usepackage{fbb} % <<
+\usepackage{gentium}
+%\usepackage{garamondx} % BROKEN
+%\usepackage{Alegreya}
+
+\usepackage[
+ paperwidth = 6in,
+ paperheight = 9in,
+ inner = 0.9in, % Total margin on binding side
+ outer = 36pt,
+ top = 36pt,
+ bottom = 36pt,
+ includeheadfoot,
+ headsep = 0.25in,
+ footskip = 0.45in, % Ensure comma here if you add more keys later
+]{geometry}
+
\usepackage{makeidx}
\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage{lettrine}
+
\makeindex
\renewcommand{\indexname}{Index of Psalm References}
-\title{Prayer 101: Prayers for Daily Life \\[0.5em]
-\large 101 Devotional Prayers for Every Occasion}
+\title{\Huge Prayers for Daily Life \\[1.0em]
+\large 101 Devotional Prayers for Every Occasion \\[2.2em]
+\includegraphics[width=0.3\textwidth]{../art/o01.png} \\[2.0em]}
\author{George Marin}
\date{}
@@ -25,6 +47,8 @@
}
\newenvironment{versequote}{\begin{quote}\itshape}{\end{quote}}
+\newcommand{\dropcap}[1]{{\bfseries\Large #1}}
+
% Chapter title + page number in the footer, header left empty. Regular
% content pages: chapter name on the left, page number on the right.
% "plain"-style pages (every chapter-opening page, automatically, plus
@@ -34,24 +58,24 @@
% only -- \pagestyle{fancy} itself is activated at \mainmatter below, so
% it doesn't touch the front matter's own (already-correct) page styles.
\fancyhf{}
-\fancyfoot[L]{\leftmark}
-\fancyfoot[R]{\thepage}
+\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{%
\fancyhf{}%
- \fancyfoot[C]{\thepage}%
+ %\fancyfoot[C]{\thepage}%
\renewcommand{\headrulewidth}{0pt}%
}
+
% Table of contents doesn't set a running head the way \chapter does (it's
% typeset as a starred heading), so it gets its own named style rather than
% relying on \leftmark -- applies to every page the TOC spans, not just
% the first, since \pagestyle{} (not \thispagestyle{}) persists.
-\fancypagestyle{toc}{%
- \fancyhf{}%
- \fancyfoot[L]{\contentsname}%
- \fancyfoot[R]{\thepage}%
- \renewcommand{\headrulewidth}{0pt}%
-}
+% \fancypagestyle{toc}{%
+% \fancyhf{}%
+% \fancyfoot[L]{\leftmark}%
+% \fancyfoot[R]{\thepage}%
+% \renewcommand{\headrulewidth}{0pt}%
+% }
% \cleardoublepage (called internally by \frontmatter/\mainmatter/\backmatter
% in this two-sided book) inserts a blank filler page when needed so the
@@ -64,6 +88,18 @@
{\pagestyle{empty}\origcleardoublepage}%
}
+\usepackage{titlesec}
+
+\titleformat{\chapter}[display]
+ {\normalfont\huge\bfseries\centering}
+ {}
+ {0pt}
+ {\Huge}
+ [{\vspace{1em}\centering\includegraphics[width=0.3\textwidth]{../art/o01.png}}]
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\frontmatter
@@ -75,14 +111,15 @@
\thispagestyle{empty}
\vspace*{\fill}
-\noindent Prayers for Daily Life
+\noindent Prayers for Daily Life: \\
+101 Devotional Prayers for Every Occasion
-\medskip
-\noindent Copyright \textcopyright\ 2026 by George Marin
+\bigskip
+\noindent Copyright \textcopyright\ 2026 by William Zeitler
\noindent All rights reserved.
-\medskip
+\bigskip
\noindent No part of this publication may be reproduced, distributed,
or transmitted in any form or by any means, including photocopying,
recording, or other electronic or mechanical methods, without the
@@ -90,16 +127,29 @@ prior written permission of the publisher, except in the case of
brief quotations embodied in critical reviews and certain other
noncommercial uses permitted by copyright law.
-\medskip
+\bigskip
+\noindent Individual prayers from this collection may be reproduced for use
+in worship services, church bulletins, small group materials, or
+similar noncommercial ministry settings, provided the following
+attribution is included: ``From \emph{Prayers for Daily Life: 101 Devotional Prayers for Every Occasion}
+by George Marin. Published by Zechariah
+Press. Used by permission.'' This permission does not extend to
+compiling multiple prayers into another published work, whether
+print or digital, or to any use involving a fee, sale, or other
+commercial purpose.
+
+\bigskip
\noindent Scripture quotations are taken from the \textit{World English Bible}, British Edition (WEBBE),
a modern English translation dedicated to the public domain by its translators.
No permission is required for its use.
-\medskip
-\noindent Published by Zebedee Press
+\vspace{2.0em}
+
+\noindent Published by Zechariah Press
\noindent ISBN: 000-0-000000-00-0 % TODO: replace with the assigned ISBN before publication
+\medskip
\noindent First Edition
\vspace*{\fill}
\clearpage
@@ -109,18 +159,16 @@ No permission is required for its use.
% the table of contents itself starts at "i", not "iii".
\setcounter{page}{1}
-\pagestyle{toc}
+% \pagestyle{toc}
+% \tableofcontents
+% \thispagestyle{toc}
+\pagestyle{fancy}
\tableofcontents
-% \tableofcontents calls \thispagestyle{plain} internally on its own
-% first page (same mechanism \chapter uses) -- override that back to
-% our footer style for this specific page; any overflow page benefits
-% from \pagestyle{toc} above without needing this.
-\thispagestyle{toc}
\input{template-foreward}
\mainmatter
-\pagestyle{fancy}
+%\pagestyle{fancy}
\input{inputs}
\backmatter
@@ -128,4 +176,5 @@ No permission is required for its use.
\addcontentsline{toc}{chapter}{\indexname}
\printindex
+\input{template-review}
\end{document}
diff --git a/2026.08-PrayersForDailyLife/latex/template-review.tex b/2026.08-PrayersForDailyLife/latex/template-review.tex
new file mode 100644
index 0000000..5ad9f6c
--- /dev/null
+++ b/2026.08-PrayersForDailyLife/latex/template-review.tex
@@ -0,0 +1,17 @@
+\clearpage
+\thispagestyle{empty}
+\vspace*{\fill}
+\begin{center}
+{\Large Did this book meet you somewhere?}
+
+\medskip
+{\large If it did, a review helps the next reader \\
+find their way here too.}
+
+\vspace{2em}
+\includegraphics[width=1.1in]{../art/prayers101_qr.pdf}
+
+\vspace{1em}
+{\small zechariahpress.com/q/PrayersForDailyLife}
+\end{center}
+\vspace*{\fill}
\ No newline at end of file
diff --git a/2026.08-PrayersForDailyLife/latex/update-tlmgr-latest.sh b/2026.08-PrayersForDailyLife/latex/update-tlmgr-latest.sh
new file mode 100644
index 0000000..6512470
--- /dev/null
+++ b/2026.08-PrayersForDailyLife/latex/update-tlmgr-latest.sh
@@ -0,0 +1,32305 @@
+#!/bin/sh
+# This script was generated using Makeself 2.5.0
+# The license covering this archive and its contents, if any, is wholly independent of the Makeself license (GPL)
+
+ORIG_UMASK=`umask`
+if test "y" = n; then
+ umask 077
+fi
+
+CRCsum="2385338396"
+MD5="61813de54ade3e39312b7b2b3e53a8f0"
+SHA="0000000000000000000000000000000000000000000000000000000000000000"
+SIGNATURE=""
+TMPROOT=${TMPDIR:=/tmp}
+USER_PWD="$PWD"
+export USER_PWD
+ARCHIVE_DIR=`dirname "$0"`
+export ARCHIVE_DIR
+
+label="TeX Live Manager Updater"
+script="./runme.sh"
+scriptargs=""
+cleanup_script=""
+licensetxt=""
+helpheader=""
+targetdir="tmp.NHpqctcW6Xtlmksel"
+filesizes="8767145"
+totalsize="8767145"
+keep="n"
+nooverwrite="n"
+quiet="n"
+accept="n"
+nodiskspace="n"
+export_conf="n"
+decrypt_cmd=""
+skip="716"
+
+print_cmd_arg=""
+if type printf > /dev/null; then
+ print_cmd="printf"
+elif test -x /usr/ucb/echo; then
+ print_cmd="/usr/ucb/echo"
+else
+ print_cmd="echo"
+fi
+
+if test -d /usr/xpg4/bin; then
+ PATH=/usr/xpg4/bin:$PATH
+ export PATH
+fi
+
+if test -d /usr/sfw/bin; then
+ PATH=$PATH:/usr/sfw/bin
+ export PATH
+fi
+
+unset CDPATH
+
+MS_Printf()
+{
+ $print_cmd $print_cmd_arg "$1"
+}
+
+MS_PrintLicense()
+{
+ PAGER=${PAGER:=more}
+ if test x"$licensetxt" != x; then
+ PAGER_PATH=`exec <&- 2>&-; which $PAGER || command -v $PAGER || type $PAGER`
+ if test -x "$PAGER_PATH"; then
+ echo "$licensetxt" | $PAGER
+ else
+ echo "$licensetxt"
+ fi
+ if test x"$accept" != xy; then
+ while true
+ do
+ MS_Printf "Please type y to accept, n otherwise: "
+ read yn
+ if test x"$yn" = xn; then
+ keep=n
+ eval $finish; exit 1
+ break;
+ elif test x"$yn" = xy; then
+ break;
+ fi
+ done
+ fi
+ fi
+}
+
+MS_diskspace()
+{
+ (
+ df -k "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }'
+ )
+}
+
+MS_dd()
+{
+ blocks=`expr $3 / 1024`
+ bytes=`expr $3 % 1024`
+ # Test for ibs, obs and conv feature
+ if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then
+ dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \
+ { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \
+ test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null
+ else
+ dd if="$1" bs=$2 skip=1 2> /dev/null
+ fi
+}
+
+MS_dd_Progress()
+{
+ if test x"$noprogress" = xy; then
+ MS_dd "$@"
+ return $?
+ fi
+ file="$1"
+ offset=$2
+ length=$3
+ pos=0
+ bsize=4194304
+ while test $bsize -gt $length; do
+ bsize=`expr $bsize / 4`
+ done
+ blocks=`expr $length / $bsize`
+ bytes=`expr $length % $bsize`
+ (
+ dd ibs=$offset skip=1 count=1 2>/dev/null
+ pos=`expr $pos \+ $bsize`
+ MS_Printf " 0%% " 1>&2
+ if test $blocks -gt 0; then
+ while test $pos -le $length; do
+ dd bs=$bsize count=1 2>/dev/null
+ pcent=`expr $length / 100`
+ pcent=`expr $pos / $pcent`
+ if test $pcent -lt 100; then
+ MS_Printf "\b\b\b\b\b\b\b" 1>&2
+ if test $pcent -lt 10; then
+ MS_Printf " $pcent%% " 1>&2
+ else
+ MS_Printf " $pcent%% " 1>&2
+ fi
+ fi
+ pos=`expr $pos \+ $bsize`
+ done
+ fi
+ if test $bytes -gt 0; then
+ dd bs=$bytes count=1 2>/dev/null
+ fi
+ MS_Printf "\b\b\b\b\b\b\b" 1>&2
+ MS_Printf " 100%% " 1>&2
+ ) < "$file"
+}
+
+MS_Help()
+{
+ cat << EOH >&2
+Makeself version 2.5.0
+ 1) Getting help or info about $0 :
+ $0 --help Print this message
+ $0 --info Print embedded info : title, default target directory, embedded script ...
+ $0 --lsm Print embedded lsm entry (or no LSM)
+ $0 --list Print the list of files in the archive
+ $0 --check Checks integrity of the archive
+ $0 --verify-sig key Verify signature agains a provided key id
+
+ 2) Running $0 :
+ $0 [options] [--] [additional arguments to embedded script]
+ with following options (in that order)
+ --confirm Ask before running embedded script
+ --quiet Do not print anything except error messages
+ --accept Accept the license
+ --noexec Do not run embedded script (implies --noexec-cleanup)
+ --noexec-cleanup Do not run embedded cleanup script
+ --keep Do not erase target directory after running
+ the embedded script
+ --noprogress Do not show the progress during the decompression
+ --nox11 Do not spawn an xterm
+ --nochown Do not give the target folder to the current user
+ --chown Give the target folder to the current user recursively
+ --nodiskspace Do not check for available disk space
+ --target dir Extract directly to a target directory (absolute or relative)
+ This directory may undergo recursive chown (see --nochown).
+ --tar arg1 [arg2 ...] Access the contents of the archive through the tar command
+ --ssl-pass-src src Use the given src as the source of password to decrypt the data
+ using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl.
+ Default is to prompt the user to enter decryption password
+ on the current terminal.
+ --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide
+ multiple arguments.
+ -- Following arguments will be passed to the embedded script${helpheader}
+EOH
+}
+
+MS_Verify_Sig()
+{
+ GPG_PATH=`exec <&- 2>&-; which gpg || command -v gpg || type gpg`
+ MKTEMP_PATH=`exec <&- 2>&-; which mktemp || command -v mktemp || type mktemp`
+ test -x "$GPG_PATH" || GPG_PATH=`exec <&- 2>&-; which gpg || command -v gpg || type gpg`
+ test -x "$MKTEMP_PATH" || MKTEMP_PATH=`exec <&- 2>&-; which mktemp || command -v mktemp || type mktemp`
+ offset=`head -n "$skip" "$1" | wc -c | sed "s/ //g"`
+ temp_sig=`mktemp -t XXXXX`
+ echo $SIGNATURE | base64 --decode > "$temp_sig"
+ gpg_output=`MS_dd "$1" $offset $totalsize | LC_ALL=C "$GPG_PATH" --verify "$temp_sig" - 2>&1`
+ gpg_res=$?
+ rm -f "$temp_sig"
+ if test $gpg_res -eq 0 && test `echo $gpg_output | grep -c Good` -eq 1; then
+ if test `echo $gpg_output | grep -c $sig_key` -eq 1; then
+ test x"$quiet" = xn && echo "GPG signature is good" >&2
+ else
+ echo "GPG Signature key does not match" >&2
+ exit 2
+ fi
+ else
+ test x"$quiet" = xn && echo "GPG signature failed to verify" >&2
+ exit 2
+ fi
+}
+
+MS_Check()
+{
+ OLD_PATH="$PATH"
+ PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"}
+ MD5_ARG=""
+ MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum`
+ test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5`
+ test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest`
+ PATH="$OLD_PATH"
+
+ SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum`
+ test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum`
+
+ if test x"$quiet" = xn; then
+ MS_Printf "Verifying archive integrity..."
+ fi
+ offset=`head -n "$skip" "$1" | wc -c | sed "s/ //g"`
+ fsize=`cat "$1" | wc -c | sed "s/ //g"`
+ if test $totalsize -ne `expr $fsize - $offset`; then
+ echo " Unexpected archive size." >&2
+ exit 2
+ fi
+ verb=$2
+ i=1
+ for s in $filesizes
+ do
+ crc=`echo $CRCsum | cut -d" " -f$i`
+ if test -x "$SHA_PATH"; then
+ if test x"`basename $SHA_PATH`" = xshasum; then
+ SHA_ARG="-a 256"
+ fi
+ sha=`echo $SHA | cut -d" " -f$i`
+ if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then
+ test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2
+ else
+ shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`;
+ if test x"$shasum" != x"$sha"; then
+ echo "Error in SHA256 checksums: $shasum is different from $sha" >&2
+ exit 2
+ elif test x"$quiet" = xn; then
+ MS_Printf " SHA256 checksums are OK." >&2
+ fi
+ crc="0000000000";
+ fi
+ fi
+ if test -x "$MD5_PATH"; then
+ if test x"`basename $MD5_PATH`" = xdigest; then
+ MD5_ARG="-a md5"
+ fi
+ md5=`echo $MD5 | cut -d" " -f$i`
+ if test x"$md5" = x00000000000000000000000000000000; then
+ test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2
+ else
+ md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`;
+ if test x"$md5sum" != x"$md5"; then
+ echo "Error in MD5 checksums: $md5sum is different from $md5" >&2
+ exit 2
+ elif test x"$quiet" = xn; then
+ MS_Printf " MD5 checksums are OK." >&2
+ fi
+ crc="0000000000"; verb=n
+ fi
+ fi
+ if test x"$crc" = x0000000000; then
+ test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2
+ else
+ sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'`
+ if test x"$sum1" != x"$crc"; then
+ echo "Error in checksums: $sum1 is different from $crc" >&2
+ exit 2
+ elif test x"$quiet" = xn; then
+ MS_Printf " CRC checksums are OK." >&2
+ fi
+ fi
+ i=`expr $i + 1`
+ offset=`expr $offset + $s`
+ done
+ if test x"$quiet" = xn; then
+ echo " All good."
+ fi
+}
+
+MS_Decompress()
+{
+ if test x"$decrypt_cmd" != x""; then
+ { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd"
+ else
+ eval "gzip -cd"
+ fi
+
+ if test $? -ne 0; then
+ echo " ... Decompression failed." >&2
+ fi
+}
+
+UnTAR()
+{
+ if test x"$quiet" = xn; then
+ tar $1vf - 2>&1 || { echo " ... Extraction failed." >&2; kill -15 $$; }
+ else
+ tar $1f - 2>&1 || { echo Extraction failed. >&2; kill -15 $$; }
+ fi
+}
+
+MS_exec_cleanup() {
+ if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then
+ cleanup=n
+ cd "$tmpdir"
+ eval "\"$cleanup_script\" $scriptargs $cleanupargs"
+ fi
+}
+
+MS_cleanup()
+{
+ echo 'Signal caught, cleaning up' >&2
+ MS_exec_cleanup
+ cd "$TMPROOT"
+ rm -rf "$tmpdir"
+ eval $finish; exit 15
+}
+
+finish=true
+xterm_loop=
+noprogress=n
+nox11=n
+copy=none
+ownership=n
+verbose=n
+cleanup=y
+cleanupargs=
+sig_key=
+
+initargs="$@"
+
+while true
+do
+ case "$1" in
+ -h | --help)
+ MS_Help
+ exit 0
+ ;;
+ -q | --quiet)
+ quiet=y
+ noprogress=y
+ shift
+ ;;
+ --accept)
+ accept=y
+ shift
+ ;;
+ --info)
+ echo Identification: "$label"
+ echo Target directory: "$targetdir"
+ echo Uncompressed size: 18920 KB
+ echo Compression: gzip
+ if test x"n" != x""; then
+ echo Encryption: n
+ fi
+ echo Date of packaging: Sun Aug 16 02:28:42 CEST 2026
+ echo Built with Makeself version 2.5.0
+ echo Build command was: "/usr/local/share/makeself/makeself.sh \\
+ \"-q\" \\
+ \"--keep-umask\" \\
+ \"/tmp/tmp.NHpqctcW6Xtlmksel\" \\
+ \"update-tlmgr-r79982.sh\" \\
+ \"TeX Live Manager Updater\" \\
+ \"./runme.sh\""
+ if test x"$script" != x; then
+ echo Script run after extraction:
+ echo " " $script $scriptargs
+ fi
+ if test x"" = xcopy; then
+ echo "Archive will copy itself to a temporary location"
+ fi
+ if test x"n" = xy; then
+ echo "Root permissions required for extraction"
+ fi
+ if test x"n" = xy; then
+ echo "directory $targetdir is permanent"
+ else
+ echo "$targetdir will be removed after extraction"
+ fi
+ exit 0
+ ;;
+ --dumpconf)
+ echo LABEL=\"$label\"
+ echo SCRIPT=\"$script\"
+ echo SCRIPTARGS=\"$scriptargs\"
+ echo CLEANUPSCRIPT=\"$cleanup_script\"
+ echo archdirname=\"tmp.NHpqctcW6Xtlmksel\"
+ echo KEEP=n
+ echo NOOVERWRITE=n
+ echo COMPRESS=gzip
+ echo filesizes=\"$filesizes\"
+ echo totalsize=\"$totalsize\"
+ echo CRCsum=\"$CRCsum\"
+ echo MD5sum=\"$MD5sum\"
+ echo SHAsum=\"$SHAsum\"
+ echo SKIP=\"$skip\"
+ exit 0
+ ;;
+ --lsm)
+cat << EOLSM
+No LSM.
+EOLSM
+ exit 0
+ ;;
+ --list)
+ echo Target directory: $targetdir
+ offset=`head -n "$skip" "$0" | wc -c | sed "s/ //g"`
+ for s in $filesizes
+ do
+ MS_dd "$0" $offset $s | MS_Decompress | UnTAR t
+ offset=`expr $offset + $s`
+ done
+ exit 0
+ ;;
+ --tar)
+ offset=`head -n "$skip" "$0" | wc -c | sed "s/ //g"`
+ arg1="$2"
+ shift 2 || { MS_Help; exit 1; }
+ for s in $filesizes
+ do
+ MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@"
+ offset=`expr $offset + $s`
+ done
+ exit 0
+ ;;
+ --check)
+ MS_Check "$0" y
+ exit 0
+ ;;
+ --verify-sig)
+ sig_key="$2"
+ shift 2 || { MS_Help; exit 1; }
+ MS_Verify_Sig "$0"
+ ;;
+ --confirm)
+ verbose=y
+ shift
+ ;;
+ --noexec)
+ script=""
+ cleanup_script=""
+ shift
+ ;;
+ --noexec-cleanup)
+ cleanup_script=""
+ shift
+ ;;
+ --keep)
+ keep=y
+ shift
+ ;;
+ --target)
+ keep=y
+ targetdir="${2:-.}"
+ shift 2 || { MS_Help; exit 1; }
+ ;;
+ --noprogress)
+ noprogress=y
+ shift
+ ;;
+ --nox11)
+ nox11=y
+ shift
+ ;;
+ --nochown)
+ ownership=n
+ shift
+ ;;
+ --chown)
+ ownership=y
+ shift
+ ;;
+ --nodiskspace)
+ nodiskspace=y
+ shift
+ ;;
+ --xwin)
+ if test "n" = n; then
+ finish="echo Press Return to close this window...; read junk"
+ fi
+ xterm_loop=1
+ shift
+ ;;
+ --phase2)
+ copy=phase2
+ shift
+ ;;
+ --ssl-pass-src)
+ if test x"n" != x"openssl"; then
+ echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2
+ exit 1
+ fi
+ decrypt_cmd="$decrypt_cmd -pass $2"
+ shift 2 || { MS_Help; exit 1; }
+ ;;
+ --cleanup-args)
+ cleanupargs="$2"
+ shift 2 || { MS_Help; exit 1; }
+ ;;
+ --)
+ shift
+ break ;;
+ -*)
+ echo Unrecognized flag : "$1" >&2
+ MS_Help
+ exit 1
+ ;;
+ *)
+ break ;;
+ esac
+done
+
+if test x"$quiet" = xy -a x"$verbose" = xy; then
+ echo Cannot be verbose and quiet at the same time. >&2
+ exit 1
+fi
+
+if test x"n" = xy -a `id -u` -ne 0; then
+ echo "Administrative privileges required for this archive (use su or sudo)" >&2
+ exit 1
+fi
+
+if test x"$copy" \!= xphase2; then
+ MS_PrintLicense
+fi
+
+case "$copy" in
+copy)
+ tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$
+ mkdir "$tmpdir" || {
+ echo "Could not create temporary directory $tmpdir" >&2
+ exit 1
+ }
+ SCRIPT_COPY="$tmpdir/makeself"
+ echo "Copying to a temporary location..." >&2
+ cp "$0" "$SCRIPT_COPY"
+ chmod +x "$SCRIPT_COPY"
+ cd "$TMPROOT"
+ export USER_PWD="$tmpdir"
+ exec "$SCRIPT_COPY" --phase2 -- $initargs
+ ;;
+phase2)
+ finish="$finish ; rm -rf `dirname $0`"
+ ;;
+esac
+
+if test x"$nox11" = xn; then
+ if test -t 1; then # Do we have a terminal on stdout?
+ :
+ else
+ if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X?
+ if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable
+ GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology"
+ for a in $GUESS_XTERMS; do
+ if type $a >/dev/null 2>&1; then
+ XTERM=$a
+ break
+ fi
+ done
+ chmod a+x $0 || echo Please add execution rights on $0 >&2
+ if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal!
+ exec $XTERM -e "$0 --xwin $initargs"
+ else
+ exec $XTERM -e "./$0 --xwin $initargs"
+ fi
+ fi
+ fi
+ fi
+fi
+
+if test x"$targetdir" = x.; then
+ tmpdir="."
+else
+ if test x"$keep" = xy; then
+ if test x"$nooverwrite" = xy && test -d "$targetdir"; then
+ echo "Target directory $targetdir already exists, aborting." >&2
+ exit 1
+ fi
+ if test x"$quiet" = xn; then
+ echo "Creating directory $targetdir" >&2
+ fi
+ tmpdir="$targetdir"
+ dashp="-p"
+ else
+ tmpdir="$TMPROOT/selfgz$$$RANDOM"
+ dashp=""
+ fi
+ mkdir $dashp "$tmpdir" || {
+ echo 'Cannot create target directory' $tmpdir >&2
+ echo 'You should try option --target dir' >&2
+ eval $finish
+ exit 1
+ }
+fi
+
+location="`pwd`"
+if test x"$SETUP_NOCHECK" != x1; then
+ MS_Check "$0"
+fi
+offset=`head -n "$skip" "$0" | wc -c | sed "s/ //g"`
+
+if test x"$verbose" = xy; then
+ MS_Printf "About to extract 18920 KB in $tmpdir ... Proceed ? [Y/n] "
+ read yn
+ if test x"$yn" = xn; then
+ eval $finish; exit 1
+ fi
+fi
+
+if test x"$quiet" = xn; then
+ # Decrypting with openssl will ask for password,
+ # the prompt needs to start on new line
+ if test x"n" = x"openssl"; then
+ echo "Decrypting and uncompressing $label..."
+ else
+ MS_Printf "Uncompressing $label"
+ fi
+fi
+res=3
+if test x"$keep" = xn; then
+ trap MS_cleanup 1 2 3 15
+fi
+
+if test x"$nodiskspace" = xn; then
+ leftspace=`MS_diskspace "$tmpdir"`
+ if test -n "$leftspace"; then
+ if test "$leftspace" -lt 18920; then
+ echo
+ echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (18920 KB)" >&2
+ echo "Use --nodiskspace option to skip this check and proceed anyway" >&2
+ if test x"$keep" = xn; then
+ echo "Consider setting TMPDIR to a directory with more free space."
+ fi
+ eval $finish; exit 1
+ fi
+ fi
+fi
+
+for s in $filesizes
+do
+ if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then
+ if test x"$ownership" = xy; then
+ (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .)
+ fi
+ else
+ echo >&2
+ echo "Unable to decompress $0" >&2
+ eval $finish; exit 1
+ fi
+ offset=`expr $offset + $s`
+done
+if test x"$quiet" = xn; then
+ echo
+fi
+
+cd "$tmpdir"
+res=0
+if test x"$script" != x; then
+ if test x"$export_conf" = x"y"; then
+ MS_BUNDLE="$0"
+ MS_LABEL="$label"
+ MS_SCRIPT="$script"
+ MS_SCRIPTARGS="$scriptargs"
+ MS_ARCHDIRNAME="$archdirname"
+ MS_KEEP="$KEEP"
+ MS_NOOVERWRITE="$NOOVERWRITE"
+ MS_COMPRESS="$COMPRESS"
+ MS_CLEANUP="$cleanup"
+ export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS
+ export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS
+ fi
+
+ if test x"$verbose" = x"y"; then
+ MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] "
+ read yn
+ if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then
+ eval "\"$script\" $scriptargs \"\$@\""; res=$?;
+ fi
+ else
+ eval "\"$script\" $scriptargs \"\$@\""; res=$?
+ fi
+ if test "$res" -ne 0; then
+ test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2
+ fi
+fi
+
+MS_exec_cleanup
+
+if test x"$keep" = xn; then
+ cd "$TMPROOT"
+ rm -rf "$tmpdir"
+fi
+eval $finish; exit $res
+‹ :�jì\}lçy§íxq.q•!b;ŽýÚPÉ–(R¤H[Ó–d*•eA’ã%+°œÈWäEÇ;öî(Y«±%ˆÝÙ`ÔÝG1´†®[ûGQ,Y—5k±&K“4ˆ“nC—µË
+´èþp›MºKº-ÜïyÞ»ãÑŸq§ZØÊ³åã=ï÷óù{ž£ï¯è®'�þñ±ƒ#Ó#ñƒ3¹‰ØÊ^ \™tšïÙÌ ßq÷t"3K&™l6�ÌÄÉô º‹Dì\5×Óle^wÌËõslÛ»Ò!#‡Šý¹ºÆŠC"*{10��X_boßÀ‘Ì¥’Cé�±HtiÚÁ#“÷�M�L�ÍŒ™˜£G¦�žžÈMNç�ÌiZN¸–^u˶'ì9á•¥8hWªŽ,KË5¤˜‘¿*rN¡LŸ'¤·h;ó¢›&éeÛ,VɆ«yú¼´ÄœcW„gT¤ðlu×¢(®ç³5O…m‰jyÉ5
+º)*²hèq!Æ