Outlining Doc

This commit is contained in:
John Haverlack 2025-11-11 13:07:57 -09:00
parent 61a5d14988
commit 15dd6fed2c
7 changed files with 541 additions and 128 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
scripts/tmp
scripts/deps
lib/mathjax

View File

@ -7,18 +7,52 @@
"id": "5235c353398dcc73",
"type": "tabs",
"children": [
{
"id": "7c859398719a1e19",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "README.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "README"
}
}
]
},
{
"id": "f638e1a8b87077ad",
"type": "tabs",
"children": [
{
"id": "b8c0b940e83a0cce",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "chapters/01_Getting_Started.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "01_Getting_Started"
}
},
{
"id": "aea7b6310a1ff6ff",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "chapters/02_Features.md",
"file": "chapters/00_Introduction.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "02_Features"
"title": "00_Introduction"
}
}
]
@ -257,14 +291,23 @@
"obsidian-kanban:Create new board": false
}
},
"active": "6852f526864219b9",
"active": "b8c0b940e83a0cce",
"lastOpenFiles": [
"lib/zotero.bib",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff",
"lib/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff",
"README.md",
"chapters/01_Getting_Started.md",
"chapters/02_Features.md",
"chapters/00_Introduction.md",
"conf/sedcoz12V",
"build/lib/diag",
"chapters/02_Features.md",
"build/lib/img/ACEP Logo for Canvas.png",
"build/lib/img/ACEP Logo.png",
"build/lib/img/ACEP-50px.png",
@ -273,17 +316,8 @@
"build/lib/img/UAF.png",
"build/lib/img/UAFLogo_A_black.png",
"build/lib/img/UAFLogo_A_blue.png",
"README.md",
"build/b3.epub",
"build/Paths-to-Perception.epub",
"build/media",
"chapters/Citations.md",
"chapters/Terminology.md",
"lib/old-citations.bib",
"build/b3.html",
"build/b3.tex",
"build/Paths-to-Perception.tex",
"build/Paths-to-Perception.html",
"build/lib/img/unit-circle-with-tau.png",
"build/lib/img/unit-circle-with-pi.png.png",
"pm/Book Action Items.md",

View File

@ -1,6 +1,6 @@
# basic-book-builder (b3)
This is a basic book (article) builder template based on a Pandoc build process in conjunction with a number of other tools to generate PDF, ODT, HTML, LaTex, and Epub book formats from Markdown source content in an Obsidian vault.
This is a basic book (article) builder template based on a Pandoc build process in conjunction with a number of other tools to generate PDF, ODT, HTML, LaTex, Markdown, and Epub book formats from Markdown source content in an Obsidian vault.
## Directory Structure
@ -75,8 +75,8 @@ Install the Better BibTex Plugin for Zotero
- Zotero > File > Export Library > Format: Better BibTeX
- [ ] Keep Updated
- [ ] Save to: ~/Documents/Lib/Citations.bib
- [ ] Symlink your ~/Documents/Lib/Citations.bib to basic-book-builder/lib/citations.bib
- [ ] Save to: ~/Documents/Lib/zotero.bib
- [ ] Symlink your ~/Documents/Lib/Citations.bib to basic-book-builder/lib/zotero.bib
#### Zotero Connector Browser Plugin
@ -91,6 +91,7 @@ Provides you the ability to auto add Web resources to your Zotero citation datab
```
sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb
```
#### Pandoc
- https://pandoc.org/
@ -141,6 +142,7 @@ sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4
```
sudo apt install calibre
```
#### MathJax
- https://www.mathjax.org/

View File

@ -146,10 +146,7 @@ window.MathJax = {
<ul>
<li><a href="#introduction">Introduction</a>
<ul>
<li><a href="#conventions">Conventions</a>
<ul>
<li><a href="#new-concepts">New Concepts</a></li>
</ul></li>
<li><a href="#conventions">Conventions</a></li>
</ul></li>
<li><a href="#getting-started">Getting Started</a>
<ul>
@ -160,7 +157,16 @@ window.MathJax = {
</ul></li>
<li><a href="#editing-the-configuration">Editing the
Configuration</a></li>
<li><a href="#editing-the-content">Editing the Content</a></li>
</ul></li>
<li><a href="#editing-the-book">Editing the Book</a>
<ul>
<li><a href="#configuration">Configuration</a></li>
<li><a href="#frontmatter-config">FrontMatter Config</a></li>
<li><a href="#editing-the-content">Editing the Content</a>
<ul>
<li><a href="#citations">Citations</a></li>
</ul></li>
<li><a href="#usage-building-the-book">Usage: Building the Book</a></li>
</ul></li>
<li><a href="#example-content">Example Content</a>
<ul>
@ -179,54 +185,39 @@ Constant</a></li>
<li><a href="#sage-code">Sage Code</a></li>
</ul></li>
<li><a href="#terminology">Terminology</a></li>
<li><a href="#citations">Citations</a></li>
<li><a href="#citations-1">Citations</a></li>
</ul>
</nav>
<h1 id="introduction">Introduction</h1>
<p>This is a basic book (or article) builder template based on a Pandoc
build process in conjunction with a number of other tools to generate
PDF, ODT, HTML, LaTex, Markdown, and Epub book output formats from
Markdown source content , which can optionally be edited as an Obsidian
vault.</p>
<p>This book builder template has been curated by John Haverlack.<span
class="citation" data-cites="JohnHaverlackACEP">(<a
href="#ref-JohnHaverlackACEP" role="doc-biblioref"><span>“John
<span>Haverlack</span> <span>ACEP</span></span> n.d.</a>)</span></p>
<blockquote>
<p><em>If I have seen further it is by standing on the shoulders of
Giants.</em></p>
<p> Isaac Newton</p>
</blockquote>
<h2 id="conventions">Conventions</h2>
<p>In this book well use a few conventions.</p>
<h3 id="new-concepts">New Concepts</h3>
<p>As many of the topics discussed in this book are a mix of
<strong>established</strong> math and physics, <strong>proposed</strong>
dualistic interpretations of established ideas, and also
<strong>speculative</strong> ideas that I dont yet know how to address,
I wanted a way to clearly distinguish these concepts. Ive come up with
the following convention to highlight these classes of concepts to
indicate their level of mainstream acceptance.</p>
<p>In this book, established concept may be highlighted in green, and
represent mainstream physics or math concepts.</p>
<p>A few callout box styles have been added to easily highlight
content.</p>
<div class="callout-established">
<p><strong>Established Concept</strong></p>
<p> Einsteins Relativistic Dynamics Equations <span
class="math display"><em>E</em><sup>2</sup>=(<em>m</em><sub>0</sub><em>c</em><sup>2</sup>)<sup>2</sup>+(<em>p</em><em>c</em>)<sup>2</sup></span></p>
</div>
<p>New ideas proposed by the author which have not been peer reviewed,
verified or tested, and should be looked at with scrutiny.</p>
<div class="callout-proposed">
<p><strong>Proposed Concept</strong></p>
<p> With the speed of light, <span
class="math inline"><em>c</em>=1</span>: <span
class="math display"><em>E</em><sup>2</sup>=<em>m</em><sub>0</sub><sup>2</sup>+<em>p</em><sup>2</sup></span></p>
</div>
<p>Speculative Idea, that the author wonders about, but does not know
how to demonstrate, or ideas that need further treatment to prove or
disprove.</p>
<div class="callout-speculative">
<p><strong>Speculative Concept</strong></p>
<p> With the speed of light, <span
class="math inline"><em>c</em>=1</span>: <span
class="math display"><em>E</em><sup>2</sup>=<em>m</em><sub>0</sub><sup>2</sup>+<em>p</em><sup>2</sup></span></p>
</div>
<p>Or Warnings…</p>
<div class="callout-caution">
<p><strong>Caution Note</strong></p>
<p> Beware of this section.</p>
@ -241,10 +232,179 @@ class="math display"><em>E</em><sup>2</sup>=<em>m</em><sub>0</sub><sup>2</
</div>
<h1 id="getting-started">Getting Started</h1>
<h2 id="installing-pre-requisites">Installing Pre-Requisites</h2>
<p>For Debian / ZorinOS and likely Ubuntu based systems.</p>
<div class="callout-caution">
<p><strong>TODO</strong></p>
<p> It would be nice to roll a setup script to take care of this.</p>
</div>
<h3 id="required">Required</h3>
<h4 id="pandoc">Pandoc</h4>
<ul>
<li>https://pandoc.org/</li>
<li><a
href="https://github.com/jgm/pandoc/releases/tag/3.8.2.1">Download</a></li>
</ul>
<pre><code>sudo apt install https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb</code></pre>
<h4 id="code-editor">Code Editor</h4>
<div class="callout-established">
<p><strong>Code Editor</strong></p>
<p> <a href="https://vscodium.com/">VSCodium</a> is recommend for
privacy (telemetry/tracking) reasons - https://vscodium.com/</p>
</div>
<p>But any text editor will work. #### make</p>
<pre><code>sudo apt install make</code></pre>
<h4 id="jq-and-yq">jq and yq</h4>
<pre><code>sudo apt install jq yq</code></pre>
<h4 id="texlive">texlive</h4>
<pre><code>sudo apt install texlive texlive-xetex texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra</code></pre>
<h4 id="mathjax">MathJax</h4>
<ul>
<li>https://www.mathjax.org/</li>
</ul>
<pre><code>wget https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz
tar xzf mathjax-3.2.2.tgz
mv package/es5/* lib/mathjax
rm -rf package mathjax-3.2.2.tgz</code></pre>
<div class="callout-caution">
<p><strong>TODO</strong></p>
<p> This need to be rolled into a setup script.</p>
</div>
<h3 id="optional">Optional</h3>
<p>The following are not strictly requires to use this book builder
template.</p>
<h4 id="obsidian">Obsidian</h4>
<div class="callout-established">
<p><strong>Highly Recommended</strong></p>
<p> Editing book chapter content in Obsidian is a very productive means
for editing Markdown source content.</p>
</div>
<ul>
<li>https://obsidian.md/</li>
<li><a
href="https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb">Deb
Package</a></li>
</ul>
<pre><code>sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb</code></pre>
<h4 id="zotero">Zotero</h4>
<div class="callout-established">
<p><strong>Highly Recommended</strong></p>
<p> If you need to managed citations and references, Zotero integration
is highly recommended.</p>
</div>
<ul>
<li>https://www.zotero.org/</li>
</ul>
<pre><code>sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/</code></pre>
<pre><code>sudo apt update</code></pre>
<pre><code>sudo apt install zotero</code></pre>
<h5 id="better-bibtex-for-zotero">Better BibTex for Zotero</h5>
<p>Install the Better BibTex Plugin for Zotero - Zotero &gt; Tool &gt;
Plugins</p>
<h5 id="export-citations.bib">Export citations.bib</h5>
<ul>
<li>Zotero &gt; File &gt; Export Library &gt; Format: Better BibTeX</li>
<li><input type="checkbox" disabled="" />
Keep Updated</li>
<li><input type="checkbox" disabled="" />
Save to: ~/Documents/Lib/zotero.bib</li>
<li><input type="checkbox" disabled="" />
Symlink your ~/Documents/Lib/Citations.bib to
basic-book-builder/lib/zotero.bib</li>
</ul>
<h5 id="zotero-connector-browser-plugin">Zotero Connector Browser
Plugin</h5>
<ul>
<li>https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc</li>
</ul>
<p>Provides you the ability to auto add Web resources to your Zotero
citation database.</p>
<h4 id="lmodern">lmodern</h4>
<pre><code>sudo apt install lmodern</code></pre>
<h4 id="epubcheck">epubcheck</h4>
<pre><code>sudo apt install epubcheck</code></pre>
<h4 id="foliate">foliate</h4>
<p>An EPub Reader</p>
<ul>
<li>https://johnfactotum.github.io/foliate/</li>
</ul>
<pre><code>sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb</code></pre>
<h4 id="calibre">calibre</h4>
<p>An EPub Reader</p>
<ul>
<li>https://calibre-ebook.com</li>
</ul>
<pre><code>sudo apt install calibre</code></pre>
<h2 id="editing-the-configuration">Editing the Configuration</h2>
<h1 id="editing-the-book">Editing the Book</h1>
<h3 id="configuration">Configuration</h3>
<p>There are a number of other config files for each format:</p>
<pre><code>conf/
├── epub-metadata.xml
├── epub_template.html
├── epub.yaml
├── frontmatter_epub.md
├── frontmatter_epub.xhtml
├── frontmatter.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── metadata.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css
</code></pre>
<h4 id="main-config-files">Main Config Files</h4>
<ul>
<li>metadata.yaml - Set Title, etc</li>
<li>pandoc.yaml - Main Pandoc Config #### Per format Configs</li>
<li><code>pdf.yaml</code></li>
<li><code>html.yaml</code></li>
<li><code>latex.yaml</code></li>
<li><code>epub.yaml</code></li>
</ul>
<h3 id="frontmatter-config">FrontMatter Config</h3>
<p>There are 2 Version of the FrontMatter for PDF, and HTML bases
formats that set the Title, Author, Verizon, Copyright, etc…</p>
<ul>
<li><code>frontmatter.tex</code></li>
<li><code>frontmatter.html</code></li>
<li><code>frontmatter_epub.*</code> - Work in Progress</li>
</ul>
<blockquote>
<p>There is probably a better way to do this.</p>
</blockquote>
<h2 id="editing-the-content">Editing the Content</h2>
<p>To edit the book open the <code>basic-book-builder</code> directory
as an Obsidian Vault.</p>
<ul>
<li>Edit the Markdown content in the <code>chapters</code>
directory.</li>
</ul>
<h3 id="citations">Citations</h3>
<blockquote>
<p>Note: the Zotero database needs configured to export automatically to
<code>lib/citations.bib</code></p>
</blockquote>
<p>To insert a Zotero Citation - Ensure the Zotero App and DB are
running on you system. - Alt + I (to insert citation) - Search for and
select citation reference</p>
<h2 id="usage-building-the-book">Usage: Building the Book</h2>
<h4 id="pdf">PDF</h4>
<pre><code>make pdf</code></pre>
<h4 id="html">HTML</h4>
<pre><code>make html</code></pre>
<h4 id="latex">LaTex</h4>
<pre><code>make latex</code></pre>
<h4 id="markdown">Markdown</h4>
<pre><code>make markdown</code></pre>
<h4 id="epub">EPub</h4>
<blockquote>
<p>Note: This ePub configuration still needs tuning.</p>
</blockquote>
<pre><code>make epub</code></pre>
<h1 id="example-content">Example Content</h1>
<p>In <span class="math inline"><em>R</em><em>ν</em></span> the <a
href="https://en.wikipedia.org/wiki/Planck_units#Planck_length">Planck
@ -842,68 +1002,68 @@ used to computer prior values is also consistent.</p>
<h2 id="sage-code">Sage Code</h2>
<p>Unit Analysis computations have been performed with <a
href="https://www.sagemath.org/">Sage Math</a>.</p>
<div class="sourceCode" id="cb1"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co"># Define constance</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="ex">one</span> = 1.n<span class="er">(</span><span class="va">digits</span><span class="op">=</span>6<span class="kw">)</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="ex">pi</span> = pi.n<span class="er">(</span><span class="va">digits</span><span class="op">=</span>6<span class="kw">)</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="ex">tau</span> = 2 <span class="pp">*</span> pi</span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="ex">t</span> = tau</span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="co"># Define the units</span></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="ex">meters</span> = var<span class="er">(</span><span class="st">&#39;m&#39;</span><span class="kw">)</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="ex">m</span> = one<span class="pp">*</span>meters</span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="ex">seconds</span> = var<span class="er">(</span><span class="st">&#39;s&#39;</span><span class="kw">)</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="ex">s</span> = seconds</span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a><span class="ex">kilograms</span> = var<span class="er">(</span><span class="st">&#39;kg&#39;</span><span class="kw">)</span></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="ex">kg</span> = kilograms</span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a><span class="ex">newtons</span> = kg <span class="pp">*</span> m / s^2</span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a><span class="ex">N</span> = newtons</span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="ex">joules</span> = N <span class="pp">*</span> m</span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="ex">J</span> = joules</span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;pi =&quot;</span><span class="ex">,</span> pi<span class="kw">)</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;tau =&quot;</span><span class="ex">,</span> t<span class="kw">)</span></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-26"><a href="#cb1-26" aria-hidden="true" tabindex="-1"></a><span class="co"># Speed of light in meters/second</span></span>
<span id="cb1-27"><a href="#cb1-27" aria-hidden="true" tabindex="-1"></a><span class="ex">speed_of_light</span> = 299792458 <span class="pp">*</span> meters/seconds</span>
<span id="cb1-28"><a href="#cb1-28" aria-hidden="true" tabindex="-1"></a><span class="ex">sol</span> = speed_of_light</span>
<span id="cb1-29"><a href="#cb1-29" aria-hidden="true" tabindex="-1"></a><span class="ex">c</span> = sol</span>
<span id="cb1-30"><a href="#cb1-30" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;si c =&quot;</span><span class="ex">,</span> c<span class="kw">)</span></span>
<span id="cb1-31"><a href="#cb1-31" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-32"><a href="#cb1-32" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_c</span> = c / c</span>
<span id="cb1-33"><a href="#cb1-33" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD c =&quot;</span><span class="ex">,</span> rnu_c<span class="kw">)</span></span>
<span id="cb1-34"><a href="#cb1-34" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-35"><a href="#cb1-35" aria-hidden="true" tabindex="-1"></a><span class="co"># Gravitational Constant</span></span>
<span id="cb1-36"><a href="#cb1-36" aria-hidden="true" tabindex="-1"></a><span class="ex">gravitational_constant</span> = 6.67384e-11 <span class="pp">*</span> N<span class="pp">*(</span>m^2/kg^2<span class="pp">)</span></span>
<span id="cb1-37"><a href="#cb1-37" aria-hidden="true" tabindex="-1"></a><span class="ex">G</span> = gravitational_constant</span>
<span id="cb1-38"><a href="#cb1-38" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;si G =&quot;</span><span class="ex">,</span> G<span class="kw">)</span></span>
<span id="cb1-39"><a href="#cb1-39" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-40"><a href="#cb1-40" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_G</span> = 4<span class="pp">*</span>pi<span class="pp">*</span>G/c^2</span>
<span id="cb1-41"><a href="#cb1-41" aria-hidden="true" tabindex="-1"></a><span class="ex">Go</span> = rnu_G</span>
<span id="cb1-42"><a href="#cb1-42" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD Go =&quot;</span><span class="ex">,</span> Go<span class="kw">)</span></span>
<span id="cb1-43"><a href="#cb1-43" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-44"><a href="#cb1-44" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-45"><a href="#cb1-45" aria-hidden="true" tabindex="-1"></a><span class="co"># Planck&#39;s Constant</span></span>
<span id="cb1-46"><a href="#cb1-46" aria-hidden="true" tabindex="-1"></a><span class="ex">reduced_plancks_constant</span> = 1.054571726e-34 <span class="pp">*</span> J<span class="pp">*</span>s</span>
<span id="cb1-47"><a href="#cb1-47" aria-hidden="true" tabindex="-1"></a><span class="ex">h_bar</span> = reduced_plancks_constant</span>
<span id="cb1-48"><a href="#cb1-48" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;si \u210F =&quot;</span><span class="ex">,</span> h_bar<span class="kw">)</span></span>
<span id="cb1-49"><a href="#cb1-49" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-50"><a href="#cb1-50" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_h_bar</span> = h_bar <span class="pp">*</span> Go / c</span>
<span id="cb1-51"><a href="#cb1-51" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD &quot;</span><span class="ex">u</span><span class="st">&quot;\u210F =&quot;</span><span class="ex">,</span> rnu_h_bar<span class="kw">)</span></span>
<span id="cb1-52"><a href="#cb1-52" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-53"><a href="#cb1-53" aria-hidden="true" tabindex="-1"></a><span class="co"># Planck Length</span></span>
<span id="cb1-54"><a href="#cb1-54" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_h_bar_str</span> = str<span class="er">(</span><span class="ex">rnu_h_bar</span><span class="kw">)</span> </span>
<span id="cb1-55"><a href="#cb1-55" aria-hidden="true" tabindex="-1"></a><span class="ex">numerical_part_str</span> = rnu_h_bar_str.split<span class="er">(</span><span class="st">&#39;*&#39;</span><span class="kw">)</span><span class="ex">[0]</span> </span>
<span id="cb1-56"><a href="#cb1-56" aria-hidden="true" tabindex="-1"></a><span class="ex">numerical_part_str</span> = numerical_part_str.strip<span class="er">(</span><span class="st">&#39;()&#39;</span><span class="kw">)</span></span>
<span id="cb1-57"><a href="#cb1-57" aria-hidden="true" tabindex="-1"></a><span class="ex">numerical_part</span> = float<span class="er">(</span><span class="ex">numerical_part_str</span><span class="kw">)</span></span>
<span id="cb1-58"><a href="#cb1-58" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_sqrt_h_bar</span> = numerical_part^<span class="er">(</span><span class="ex">1/2</span><span class="kw">)</span></span>
<span id="cb1-59"><a href="#cb1-59" aria-hidden="true" tabindex="-1"></a><span class="co"># ^ Sage cannot process sqrt on units... Lame.</span></span>
<span id="cb1-60"><a href="#cb1-60" aria-hidden="true" tabindex="-1"></a><span class="ex">lP</span> = rnu_sqrt_h_bar <span class="pp">*</span> m</span>
<span id="cb1-61"><a href="#cb1-61" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD \u221A\u210F =&quot;</span><span class="ex">,</span> lP<span class="kw">)</span></span></code></pre></div>
<div class="sourceCode" id="cb20"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a><span class="co"># Define constance</span></span>
<span id="cb20-2"><a href="#cb20-2" aria-hidden="true" tabindex="-1"></a><span class="ex">one</span> = 1.n<span class="er">(</span><span class="va">digits</span><span class="op">=</span>6<span class="kw">)</span></span>
<span id="cb20-3"><a href="#cb20-3" aria-hidden="true" tabindex="-1"></a><span class="ex">pi</span> = pi.n<span class="er">(</span><span class="va">digits</span><span class="op">=</span>6<span class="kw">)</span></span>
<span id="cb20-4"><a href="#cb20-4" aria-hidden="true" tabindex="-1"></a><span class="ex">tau</span> = 2 <span class="pp">*</span> pi</span>
<span id="cb20-5"><a href="#cb20-5" aria-hidden="true" tabindex="-1"></a><span class="ex">t</span> = tau</span>
<span id="cb20-6"><a href="#cb20-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-7"><a href="#cb20-7" aria-hidden="true" tabindex="-1"></a><span class="co"># Define the units</span></span>
<span id="cb20-8"><a href="#cb20-8" aria-hidden="true" tabindex="-1"></a><span class="ex">meters</span> = var<span class="er">(</span><span class="st">&#39;m&#39;</span><span class="kw">)</span></span>
<span id="cb20-9"><a href="#cb20-9" aria-hidden="true" tabindex="-1"></a><span class="ex">m</span> = one<span class="pp">*</span>meters</span>
<span id="cb20-10"><a href="#cb20-10" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-11"><a href="#cb20-11" aria-hidden="true" tabindex="-1"></a><span class="ex">seconds</span> = var<span class="er">(</span><span class="st">&#39;s&#39;</span><span class="kw">)</span></span>
<span id="cb20-12"><a href="#cb20-12" aria-hidden="true" tabindex="-1"></a><span class="ex">s</span> = seconds</span>
<span id="cb20-13"><a href="#cb20-13" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-14"><a href="#cb20-14" aria-hidden="true" tabindex="-1"></a><span class="ex">kilograms</span> = var<span class="er">(</span><span class="st">&#39;kg&#39;</span><span class="kw">)</span></span>
<span id="cb20-15"><a href="#cb20-15" aria-hidden="true" tabindex="-1"></a><span class="ex">kg</span> = kilograms</span>
<span id="cb20-16"><a href="#cb20-16" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-17"><a href="#cb20-17" aria-hidden="true" tabindex="-1"></a><span class="ex">newtons</span> = kg <span class="pp">*</span> m / s^2</span>
<span id="cb20-18"><a href="#cb20-18" aria-hidden="true" tabindex="-1"></a><span class="ex">N</span> = newtons</span>
<span id="cb20-19"><a href="#cb20-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-20"><a href="#cb20-20" aria-hidden="true" tabindex="-1"></a><span class="ex">joules</span> = N <span class="pp">*</span> m</span>
<span id="cb20-21"><a href="#cb20-21" aria-hidden="true" tabindex="-1"></a><span class="ex">J</span> = joules</span>
<span id="cb20-22"><a href="#cb20-22" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-23"><a href="#cb20-23" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;pi =&quot;</span><span class="ex">,</span> pi<span class="kw">)</span></span>
<span id="cb20-24"><a href="#cb20-24" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;tau =&quot;</span><span class="ex">,</span> t<span class="kw">)</span></span>
<span id="cb20-25"><a href="#cb20-25" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-26"><a href="#cb20-26" aria-hidden="true" tabindex="-1"></a><span class="co"># Speed of light in meters/second</span></span>
<span id="cb20-27"><a href="#cb20-27" aria-hidden="true" tabindex="-1"></a><span class="ex">speed_of_light</span> = 299792458 <span class="pp">*</span> meters/seconds</span>
<span id="cb20-28"><a href="#cb20-28" aria-hidden="true" tabindex="-1"></a><span class="ex">sol</span> = speed_of_light</span>
<span id="cb20-29"><a href="#cb20-29" aria-hidden="true" tabindex="-1"></a><span class="ex">c</span> = sol</span>
<span id="cb20-30"><a href="#cb20-30" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;si c =&quot;</span><span class="ex">,</span> c<span class="kw">)</span></span>
<span id="cb20-31"><a href="#cb20-31" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-32"><a href="#cb20-32" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_c</span> = c / c</span>
<span id="cb20-33"><a href="#cb20-33" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD c =&quot;</span><span class="ex">,</span> rnu_c<span class="kw">)</span></span>
<span id="cb20-34"><a href="#cb20-34" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-35"><a href="#cb20-35" aria-hidden="true" tabindex="-1"></a><span class="co"># Gravitational Constant</span></span>
<span id="cb20-36"><a href="#cb20-36" aria-hidden="true" tabindex="-1"></a><span class="ex">gravitational_constant</span> = 6.67384e-11 <span class="pp">*</span> N<span class="pp">*(</span>m^2/kg^2<span class="pp">)</span></span>
<span id="cb20-37"><a href="#cb20-37" aria-hidden="true" tabindex="-1"></a><span class="ex">G</span> = gravitational_constant</span>
<span id="cb20-38"><a href="#cb20-38" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;si G =&quot;</span><span class="ex">,</span> G<span class="kw">)</span></span>
<span id="cb20-39"><a href="#cb20-39" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-40"><a href="#cb20-40" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_G</span> = 4<span class="pp">*</span>pi<span class="pp">*</span>G/c^2</span>
<span id="cb20-41"><a href="#cb20-41" aria-hidden="true" tabindex="-1"></a><span class="ex">Go</span> = rnu_G</span>
<span id="cb20-42"><a href="#cb20-42" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD Go =&quot;</span><span class="ex">,</span> Go<span class="kw">)</span></span>
<span id="cb20-43"><a href="#cb20-43" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-44"><a href="#cb20-44" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-45"><a href="#cb20-45" aria-hidden="true" tabindex="-1"></a><span class="co"># Planck&#39;s Constant</span></span>
<span id="cb20-46"><a href="#cb20-46" aria-hidden="true" tabindex="-1"></a><span class="ex">reduced_plancks_constant</span> = 1.054571726e-34 <span class="pp">*</span> J<span class="pp">*</span>s</span>
<span id="cb20-47"><a href="#cb20-47" aria-hidden="true" tabindex="-1"></a><span class="ex">h_bar</span> = reduced_plancks_constant</span>
<span id="cb20-48"><a href="#cb20-48" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;si \u210F =&quot;</span><span class="ex">,</span> h_bar<span class="kw">)</span></span>
<span id="cb20-49"><a href="#cb20-49" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-50"><a href="#cb20-50" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_h_bar</span> = h_bar <span class="pp">*</span> Go / c</span>
<span id="cb20-51"><a href="#cb20-51" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD &quot;</span><span class="ex">u</span><span class="st">&quot;\u210F =&quot;</span><span class="ex">,</span> rnu_h_bar<span class="kw">)</span></span>
<span id="cb20-52"><a href="#cb20-52" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb20-53"><a href="#cb20-53" aria-hidden="true" tabindex="-1"></a><span class="co"># Planck Length</span></span>
<span id="cb20-54"><a href="#cb20-54" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_h_bar_str</span> = str<span class="er">(</span><span class="ex">rnu_h_bar</span><span class="kw">)</span> </span>
<span id="cb20-55"><a href="#cb20-55" aria-hidden="true" tabindex="-1"></a><span class="ex">numerical_part_str</span> = rnu_h_bar_str.split<span class="er">(</span><span class="st">&#39;*&#39;</span><span class="kw">)</span><span class="ex">[0]</span> </span>
<span id="cb20-56"><a href="#cb20-56" aria-hidden="true" tabindex="-1"></a><span class="ex">numerical_part_str</span> = numerical_part_str.strip<span class="er">(</span><span class="st">&#39;()&#39;</span><span class="kw">)</span></span>
<span id="cb20-57"><a href="#cb20-57" aria-hidden="true" tabindex="-1"></a><span class="ex">numerical_part</span> = float<span class="er">(</span><span class="ex">numerical_part_str</span><span class="kw">)</span></span>
<span id="cb20-58"><a href="#cb20-58" aria-hidden="true" tabindex="-1"></a><span class="ex">rnu_sqrt_h_bar</span> = numerical_part^<span class="er">(</span><span class="ex">1/2</span><span class="kw">)</span></span>
<span id="cb20-59"><a href="#cb20-59" aria-hidden="true" tabindex="-1"></a><span class="co"># ^ Sage cannot process sqrt on units... Lame.</span></span>
<span id="cb20-60"><a href="#cb20-60" aria-hidden="true" tabindex="-1"></a><span class="ex">lP</span> = rnu_sqrt_h_bar <span class="pp">*</span> m</span>
<span id="cb20-61"><a href="#cb20-61" aria-hidden="true" tabindex="-1"></a><span class="ex">print</span><span class="er">(</span><span class="st">&quot;R\u03BD \u221A\u210F =&quot;</span><span class="ex">,</span> lP<span class="kw">)</span></span></code></pre></div>
<h4 id="output">Output</h4>
<pre><code>pi = 3.14159
tau = 6.28319
@ -917,7 +1077,7 @@ Rν √ℏ = (5.72928e-35)*m
si lP = (1.61620e-35)*sqrt(m^2)
Rν lP = (2.77455e-47)*sqrt(m^3/kg)</code></pre>
<h1 id="terminology">Terminology</h1>
<h1 class="unnumbered" id="citations">Citations</h1>
<h1 class="unnumbered" id="citations-1">Citations</h1>
<div id="refs" class="references csl-bib-body hanging-indent"
role="doc-bibliography">
<div id="ref-JohnHaverlackACEP" class="csl-entry"

Binary file not shown.

View File

@ -1,48 +1,36 @@
# Introduction
This is a basic book (or article) builder template based on a Pandoc build process in conjunction with a number of other tools to generate PDF, ODT, HTML, LaTex, Markdown, and Epub book output formats from Markdown source content , which can optionally be edited as an Obsidian vault.
This book builder template has been curated by John Haverlack.[@JohnHaverlackACEP]
> “*If I have seen further it is by standing on the shoulders of Giants.*”
>
> -- Isaac Newton
## Conventions
In this book we'll use a few conventions.
### New Concepts
As many of the topics discussed in this book are a mix of **established** math and physics, **proposed** dualistic interpretations of established ideas, and also **speculative** ideas that I don't yet know how to address, I wanted a way to clearly distinguish these concepts. I've come up with the following convention to highlight these classes of concepts to indicate their level of mainstream acceptance.
In this book, established concept may be highlighted in green, and represent mainstream physics or math concepts.
A few callout box styles have been added to easily highlight content.
> [!established] Established Concept
> Einsteins Relativistic Dynamics Equations
> $$E^2 = (m_{0} \cdot c^2)^2 + (p \cdot c)^2 $$
New ideas proposed by the author which have not been peer reviewed, verified or tested, and should be looked at with scrutiny.
> [!proposed] Proposed Concept
With the speed of light, $c = 1$:
$$E^2 = m_{0}^2 + p^2 $$
Speculative Idea, that the author wonders about, but does not know how to demonstrate, or ideas that need further treatment to prove or disprove.
> [!speculative] Speculative Concept
With the speed of light, $c = 1$:
$$E^2 = m_{0}^2 + p^2 $$
Or Warnings...
> [!caution] Caution Note
> Beware of this section.
> [!warning] Warning Note
> Beware of this section.
> [!danger] Alerts
> Extreme Highlight

View File

@ -3,18 +3,246 @@
## Installing Pre-Requisites
For Debian / ZorinOS and likely Ubuntu based systems.
> [!caution] TODO
> It would be nice to roll a setup script to take care of this.
### Required
#### Pandoc
- https://pandoc.org/
- [Download](https://github.com/jgm/pandoc/releases/tag/3.8.2.1)
```
sudo apt install https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb
```
#### Code Editor
> [!established] Code Editor
> [VSCodium](https://vscodium.com/) is recommend for privacy (telemetry/tracking) reasons
> - https://vscodium.com/
But any text editor will work.
#### make
```
sudo apt install make
```
#### jq and yq
```
sudo apt install jq yq
```
#### texlive
```
sudo apt install texlive texlive-xetex texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra
```
#### MathJax
- https://www.mathjax.org/
```
wget https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz
tar xzf mathjax-3.2.2.tgz
mv package/es5/* lib/mathjax
rm -rf package mathjax-3.2.2.tgz
```
> [!caution] TODO
> This need to be rolled into a setup script.
### Optional
The following are not strictly requires to use this book builder template.
#### Obsidian
> [!established] Highly Recommended
> Editing book chapter content in Obsidian is a very productive means for editing Markdown source content.
- https://obsidian.md/
- [Deb Package](https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb)
```
sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb
```
#### Zotero
> [!established] Highly Recommended
> If you need to managed citations and references, Zotero integration is highly recommended.
- https://www.zotero.org/
```
sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/
```
```
sudo apt update
```
```
sudo apt install zotero
```
##### Better BibTex for Zotero
Install the Better BibTex Plugin for Zotero
- Zotero > Tool > Plugins
##### Export citations.bib
- Zotero > File > Export Library > Format: Better BibTeX
- [ ] Keep Updated
- [ ] Save to: ~/Documents/Lib/zotero.bib
- [ ] Symlink your ~/Documents/Lib/Citations.bib to basic-book-builder/lib/zotero.bib
##### Zotero Connector Browser Plugin
- https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc
Provides you the ability to auto add Web resources to your Zotero citation database.
#### lmodern
```
sudo apt install lmodern
```
#### epubcheck
```
sudo apt install epubcheck
```
#### foliate
An EPub Reader
- https://johnfactotum.github.io/foliate/
```
sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb
```
#### calibre
An EPub Reader
- https://calibre-ebook.com
```
sudo apt install calibre
```
## Editing the Configuration
# Editing the Book
### Configuration
There are a number of other config files for each format:
```
conf/
├── epub-metadata.xml
├── epub_template.html
├── epub.yaml
├── frontmatter_epub.md
├── frontmatter_epub.xhtml
├── frontmatter.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── metadata.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css
```
#### Main Config Files
- metadata.yaml - Set Title, etc
- pandoc.yaml - Main Pandoc Config
#### Per format Configs
- `pdf.yaml`
- `html.yaml`
- `latex.yaml`
- `epub.yaml`
### FrontMatter Config
There are 2 Version of the FrontMatter for PDF, and HTML bases formats that set the Title, Author, Verizon, Copyright, etc...
- `frontmatter.tex`
- `frontmatter.html`
- `frontmatter_epub.*` - Work in Progress
> There is probably a better way to do this.
## Editing the Content
To edit the book open the `basic-book-builder` directory as an Obsidian Vault.
- Edit the Markdown content in the `chapters` directory.
### Citations
> Note: the Zotero database needs configured to export automatically to `lib/citations.bib`
To insert a Zotero Citation
- Ensure the Zotero App and DB are running on you system.
- Alt + I (to insert citation)
- Search for and select citation reference
## Usage: Building the Book
#### PDF
```
make pdf
```
#### HTML
```
make html
```
#### LaTex
```
make latex
```
#### Markdown
```
make markdown
```
#### EPub
> Note: This ePub configuration still needs tuning.
```
make epub
```