Skip to content

Commit 52c0a49

Browse files
authored
Merge pull request #163 from dawnfield-institute/docs/pacseries-v0.3-pdfs
PACSeries v0.3: compiled paper PDFs (v0.2 parity)
2 parents f3dd2f2 + 9639900 commit 52c0a49

13 files changed

Lines changed: 182 additions & 116 deletions

File tree

foundational/docs/preprints/PACSeries/md_to_tex.py

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,19 @@
2222

2323
PREAMBLE = r"""\documentclass[11pt,a4paper]{article}
2424
\usepackage{iftex}
25+
\usepackage{amsmath,amsthm}
2526
\ifPDFTeX
2627
\usepackage[T1]{fontenc}
2728
\usepackage[utf8]{inputenc}
2829
\usepackage{textcomp}
30+
\usepackage{amssymb}
2931
\else
32+
%% XeTeX/LuaTeX: amssymb BEFORE unicode-math (unicode-math then overrides it cleanly;
33+
%% the reverse order clashes on \eth). Keeps \square, \mathbb, \mathfrak available.
34+
\usepackage{amssymb}
3035
\usepackage{unicode-math}
3136
\defaultfontfeatures{Scale=MatchLowercase}
3237
\fi
33-
\usepackage{amsmath,amssymb,amsthm}
3438
\usepackage{booktabs}
3539
\usepackage{longtable}
3640
\usepackage{array}
@@ -60,6 +64,15 @@
6064

6165
FOOTER = "\n\\end{document}\n"
6266

67+
# Brace a macro (and its single-brace arg) when it's a bare sub/superscript target:
68+
# `_\mathbb{C}` -> `_{\mathbb{C}}`, `^\top` -> `^{\top}`. Valid in amsmath but unicode-math
69+
# (XeTeX) requires the braces. Applied to math spans only, so it never touches prose.
70+
_SUBSUP = re.compile(r'([_^])(\\[a-zA-Z]+(?:\{[^{}]*\})?)')
71+
72+
73+
def _norm_math(s):
74+
return _SUBSUP.sub(r'\1{\2}', s)
75+
6376

6477
def escape_tex(s):
6578
# s has NO math/code spans (already protected). Escape LaTeX specials.
@@ -82,7 +95,10 @@ def inline(text, store):
8295
"""Protect math/code, escape, then apply md inline formatting, then restore."""
8396
# 1. protect $$...$$, $...$, `code`
8497
def protect(pat, m):
85-
store.append(m.group(0) if pat != 'code' else '\\texttt{' + escape_tex(m.group(1)) + '}')
98+
if pat == 'code':
99+
store.append('\\texttt{' + escape_tex(m.group(1)) + '}')
100+
else:
101+
store.append(_norm_math(m.group(0)))
86102
return f'\x00{len(store)-1}\x00'
87103
text = re.sub(r'\$\$.*?\$\$', lambda m: protect('math', m), text, flags=re.S)
88104
text = re.sub(r'(?<!\\)\$.+?(?<!\\)\$', lambda m: protect('math', m), text)
@@ -163,14 +179,14 @@ def convert(md, title):
163179

164180
# display math block
165181
if stripped.startswith('$$') and stripped.endswith('$$') and len(stripped) > 3:
166-
out.append(r'\[' + stripped[2:-2].strip() + r'\]')
182+
out.append(r'\[' + _norm_math(stripped[2:-2].strip()) + r'\]')
167183
i += 1; continue
168184
if stripped == '$$':
169185
i += 1; buf = []
170186
while i < n and lines[i].strip() != '$$':
171187
buf.append(lines[i]); i += 1
172188
i += 1
173-
out.append(r'\[' + '\n'.join(buf) + r'\]')
189+
out.append(r'\[' + _norm_math('\n'.join(buf)) + r'\]')
174190
continue
175191

176192
# headings
@@ -229,7 +245,12 @@ def convert(md, title):
229245
i += 1
230246
while i < n and lines[i].strip() != '' and not re.match(r'^(#{1,6}\s|\s*[-*]\s|\s*\d+\.\s|\$\$|```|-{3,}$)', lines[i]) and not ('|' in lines[i] and i+1 < n):
231247
para.append(lines[i]); i += 1
232-
out.append(inline(' '.join(p.strip() for p in para), store))
248+
# consecutive bold-only lines are a metadata block (author / paper no. / date /
249+
# version) — stack them with LaTeX line breaks instead of flowing into one line
250+
if len(para) > 1 and all(re.match(r'^\*\*.+\*\*', p.strip()) for p in para):
251+
out.append(' \\\\\n'.join(inline(p.strip(), store) for p in para))
252+
else:
253+
out.append(inline(' '.join(p.strip() for p in para), store))
233254

234255
return '\n'.join(out)
235256

Binary file not shown.

foundational/docs/preprints/PACSeries/v0.3/connection_identity_spacetime/paper.tex

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
\documentclass[11pt,a4paper]{article}
22
\usepackage{iftex}
3+
\usepackage{amsmath,amsthm}
34
\ifPDFTeX
45
\usepackage[T1]{fontenc}
56
\usepackage[utf8]{inputenc}
67
\usepackage{textcomp}
8+
\usepackage{amssymb}
79
\else
10+
% XeTeX/LuaTeX: amssymb BEFORE unicode-math (unicode-math then overrides it cleanly;
11+
% the reverse order clashes on \eth). Keeps \square, \mathbb, \mathfrak available.
12+
\usepackage{amssymb}
813
\usepackage{unicode-math}
914
\defaultfontfeatures{Scale=MatchLowercase}
1015
\fi
11-
\usepackage{amsmath,amssymb,amsthm}
1216
\usepackage{booktabs}
1317
\usepackage{longtable}
1418
\usepackage{array}
@@ -37,7 +41,10 @@
3741

3842
\subsection*{On deriving the Lorentz group, invariant interval, and speed of light from ADE graph structure and SEC complexification}
3943

40-
\textbf{Peter Groom, Dawn Field Institute} \textbf{PACSeries Paper 10} \textbf{Date}: May 2026 \textbf{Version}: 1.0 (Draft)
44+
\textbf{Peter Groom, Dawn Field Institute} \\
45+
\textbf{PACSeries Paper 10} \\
46+
\textbf{Date}: May 2026 \\
47+
\textbf{Version}: 1.0 (Draft)
4148

4249
\begin{center}\rule{0.5\linewidth}{0.4pt}\end{center}
4350

@@ -119,7 +126,7 @@ \subsection*{3.1 Convergence, not imposition}
119126

120127
The relaxation ratios between force depths follow $\varphi^{d_2 - d_1}$:
121128
\begin{itemize}\tightlist
122-
\item Strong/EM ratio: $\varphi^{13-3} = \varphi^{10} \approx 122.99$ (vs observed $\alpha_\text{EM}/\alpha_s \sim 130$)
129+
\item Strong/EM ratio: $\varphi^{13-3} = \varphi^{10} \approx 122.99$ (vs observed $\alpha_{\text{EM}}/\alpha_s \sim 130$)
123130
\item EM/weak ratio: $\varphi^{7-13}$ (inverse Fibonacci depth ordering)
124131
\end{itemize}
125132

@@ -145,7 +152,7 @@ \subsection*{4.1 The derivation}
145152
\begin{enumerate}\tightlist
146153
\item $A_1$ has Lie algebra $\mathfrak{su}(2)$ (3 generators: rotations)
147154
\item SEC promotes real parameters to complex: $\theta \to \theta + i\eta$
148-
\item Complexification: $\mathfrak{su}(2)_\mathbb{C} = \mathfrak{sl}(2, \mathbb{C})$
155+
\item Complexification: $\mathfrak{su}(2)_{\mathbb{C}} = \mathfrak{sl}(2, \mathbb{C})$
149156
\item Real form: $\mathfrak{sl}(2, \mathbb{C}) \cong \mathfrak{so}(3,1)$ (Lorentz algebra)
150157
\end{enumerate}
151158

@@ -205,7 +212,7 @@ \subsection*{6.3 The invariant interval}
205212

206213
\[ds^2 = -c^2 dt^2 + dx^2 + dy^2 + dz^2\]
207214

208-
The metric signature is not chosen; it is forced by the Killing form of the complexified $A_1$ algebra. On the 6-dimensional real algebra the Killing form has signature $(3,3)$ (rotations positive, boosts negative); restricted to the 4-dimensional vector representation it has signature $(1,3)$, the Minkowski metric (M13 exp\_09). The interval $s^2 = x^\top\eta\,x$ is preserved across 135 Lorentz transforms (maximum relative error $2.9\times10^{-6}$, growing with rapidity up to $\eta=10$), and the invariant form is unique: the space of symmetric bilinear forms preserved by all $\mathfrak{so}(3,1)$ generators is one-dimensional (Schur's lemma), so the metric is a consequence of the algebra rather than a choice.
215+
The metric signature is not chosen; it is forced by the Killing form of the complexified $A_1$ algebra. On the 6-dimensional real algebra the Killing form has signature $(3,3)$ (rotations positive, boosts negative); restricted to the 4-dimensional vector representation it has signature $(1,3)$, the Minkowski metric (M13 exp\_09). The interval $s^2 = x^{\top}\eta\,x$ is preserved across 135 Lorentz transforms (maximum relative error $2.9\times10^{-6}$, growing with rapidity up to $\eta=10$), and the invariant form is unique: the space of symmetric bilinear forms preserved by all $\mathfrak{so}(3,1)$ generators is one-dimensional (Schur's lemma), so the metric is a consequence of the algebra rather than a choice.
209216

210217
\begin{center}\rule{0.5\linewidth}{0.4pt}\end{center}
211218

Binary file not shown.

0 commit comments

Comments
 (0)