Merge branch 'main' of https://git.xyzzy31416.com/william/Books
This commit is contained in:
commit
577846b327
16
2026.08-PrayersForDailyLife/.gitignore
vendored
16
2026.08-PrayersForDailyLife/.gitignore
vendored
@ -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
|
||||
|
||||
BIN
2026.08-PrayersForDailyLife/art/o01.png
Normal file
BIN
2026.08-PrayersForDailyLife/art/o01.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
BIN
2026.08-PrayersForDailyLife/art/prayers101_qr.png
Normal file
BIN
2026.08-PrayersForDailyLife/art/prayers101_qr.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
2
2026.08-PrayersForDailyLife/art/prayers101_qr.svg
Normal file
2
2026.08-PrayersForDailyLife/art/prayers101_qr.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 20 KiB |
@ -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} "
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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
|
||||
\noindent \textit{George Marin}
|
||||
@ -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}
|
||||
|
||||
17
2026.08-PrayersForDailyLife/latex/template-review.tex
Normal file
17
2026.08-PrayersForDailyLife/latex/template-review.tex
Normal file
@ -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}
|
||||
32305
2026.08-PrayersForDailyLife/latex/update-tlmgr-latest.sh
Normal file
32305
2026.08-PrayersForDailyLife/latex/update-tlmgr-latest.sh
Normal file
File diff suppressed because one or more lines are too long
@ -8,10 +8,8 @@ Occasion: Inner turmoil
|
||||
There is a storm in my heart, Lord.
|
||||
I am calm on the outside,
|
||||
but not inside.
|
||||
Old hurt,
|
||||
new anger,
|
||||
shame,
|
||||
want,
|
||||
Old hurt, new anger,
|
||||
shame, want,
|
||||
all of it jostling against each other.
|
||||
|
||||
I do not know which feeling to trust.
|
||||
@ -28,14 +26,12 @@ without letting every thought take hold of me.
|
||||
|
||||
If I act out this churn,
|
||||
I will wound with my mouth,
|
||||
or go cold,
|
||||
or hide.
|
||||
or go cold, or hide.
|
||||
Pain so readily looks for someone else to wound.
|
||||
Still me while I am restless.
|
||||
|
||||
Give me a quiet center in Your care.
|
||||
Not a hard shell.
|
||||
Not numbness.
|
||||
Not a hard shell, not numbness.
|
||||
Not the pretense that none of this matters.
|
||||
A place where I can stand and not be swept away,
|
||||
where I can breathe before I speak
|
||||
@ -48,4 +44,4 @@ be my peace.
|
||||
Over everything,
|
||||
be my peace.
|
||||
|
||||
Amen.
|
||||
Amen.
|
||||
@ -1,7 +1,7 @@
|
||||
## 143:8
|
||||
## 92:2
|
||||
%% 4
|
||||
> Your lovingkindness in the morning
|
||||
>> Cause me to hear your lovingkindness in the morning, for I trust in you
|
||||
> To Proclaim Your Lovingkindness
|
||||
>> To proclaim your loving kindness in the morning, and your faithfulness every night.
|
||||
|
||||
Occasion: Waking up grateful
|
||||
|
||||
@ -13,7 +13,7 @@ Just what's here.
|
||||
This breath.
|
||||
Coffee warm in my hands.
|
||||
Sunlight streaming in the window.
|
||||
Birds singing in the trees outswide.
|
||||
Birds singing in the trees outside.
|
||||
A voice I love in the next room.
|
||||
|
||||
You have not left me.
|
||||
@ -1,4 +1,4 @@
|
||||
## 139.13
|
||||
## 139:13
|
||||
%% 5
|
||||
>You Knit Me Together
|
||||
>>For you formed my inward parts; you knitted me together in my mother's womb... my frame was not hidden from you when I was being made in secret, intricately woven in the depths of the earth.
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
|
||||
Occasion: Feeling small in a big world
|
||||
|
||||
The night feels too wide, Lord.
|
||||
The night feels too vast, Lord.
|
||||
The sky looms over my head.
|
||||
The road before me stretches to the horizon.
|
||||
Even on the map on my phone I'm just a tiny blue dot.
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
Occasion: Wonder at how I'm made
|
||||
|
||||
Lord, I stopped today
|
||||
%v
|
||||
to actually notice this body ---
|
||||
the heart that keeps its own time for a lifetime,
|
||||
the hand that knows how to hold a cup
|
||||
@ -47,4 +46,3 @@ Thank You for this one particular life
|
||||
carried inside it.
|
||||
|
||||
Amen.
|
||||
%^
|
||||
@ -1,4 +1,4 @@
|
||||
## 147:04
|
||||
## 147:4
|
||||
%% 4
|
||||
> He counts the number of the stars.
|
||||
>> He counts the number of the stars. He calls them all by their names.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
## 142:04
|
||||
## 142:4
|
||||
%% 4
|
||||
> No One Cares for My Soul
|
||||
>> Look on my right, and see; for there is no one who cares for me. Refuge has fled from me. No one cares for my soul.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user