This commit is contained in:
John Haverlack 2026-02-05 17:36:18 -09:00
parent da0e59bd22
commit 8384c47f11
21 changed files with 980 additions and 973 deletions

View File

@ -4,51 +4,24 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "c327dc0e927bf66a", "id": "2d8c08f76d34c644",
"type": "split",
"children": [
{
"id": "f0990ffd7a67a2ec",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "9f4cd104c7d85619", "id": "24988c076d2f30d6",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "chapters/03_Features.md", "file": "chapters/04_Design.md",
"mode": "source", "mode": "source",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "03_Features" "title": "04_Design"
} }
} }
] ]
},
{
"id": "3de8dc3f3db46984",
"type": "tabs",
"children": [
{
"id": "8fb585e598f88138",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "chapters/03_Features.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "03_Features"
}
}
]
}
],
"direction": "horizontal"
} }
], ],
"direction": "vertical" "direction": "vertical"
@ -279,7 +252,8 @@
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 200 "width": 200,
"collapsed": true
}, },
"left-ribbon": { "left-ribbon": {
"hiddenItems": { "hiddenItems": {
@ -294,33 +268,35 @@
"obsidian-kanban:Create new board": false "obsidian-kanban:Create new board": false
} }
}, },
"active": "8fb585e598f88138", "active": "24988c076d2f30d6",
"lastOpenFiles": [ "lastOpenFiles": [
"README.md", "conf/sedufgozC",
"conf/sedTQLO9w", "conf/sedQ287QU",
"chapters/02_Usage.md", "conf/sedq3LRZz",
"chapters/03_Features.md", "chapters/03_Features.md",
"chapters/Appendix.md", "conf/sedtBb3Os",
"conf/sedkKV6c0", "conf/sedRcZh0D",
"conf/sedAqcSmo", "conf/sed1CDdq2",
"conf/sedk8YBK0", "conf/sedzZKUYL",
"conf/sedzF3xOr", "conf/sedGlYwid",
"conf/sedtZNObL", "conf/sedB61nJB",
"chapters/AppendixB.md", "conf/sedkPk5Sn",
"chapters/Bibliography.md", "conf/seddNGzeb",
"chapters/AppendixA.md",
"conf/sed6ZdLUq",
"chapters/04_Design.md",
"chapters/01_Getting_Started.md", "chapters/01_Getting_Started.md",
"conf/sedBapyXA", "chapters/02_Usage.md",
"conf/sedYZ2rBJ", "chapters/Bibliography.md",
"conf/sedbEPwZC", "chapters/Index.md",
"chapters/00_Introduction.md", "chapters/00_Introduction.md",
"chapters/AppendixB.md",
"chapters/04_Design.md",
"package/README.md",
"README.md",
"chapters/Appendix.md",
"chapters/AppendixA.md",
"conf/frontmatter-docx.md", "conf/frontmatter-docx.md",
"templates/frontmatter-docx.md", "templates/frontmatter-docx.md",
"chapters/02_Features.md", "chapters/02_Features.md",
"chapters/Preface.md", "chapters/Preface.md",
"chapters/Index.md",
"chapters/Glossary.md", "chapters/Glossary.md",
"lib/img/unit-circle-with-tau.png", "lib/img/unit-circle-with-tau.png",
"lib/img/unit-circle-with-pi.png.png", "lib/img/unit-circle-with-pi.png.png",
@ -339,7 +315,6 @@
"build/basic-book-builder.md", "build/basic-book-builder.md",
"LICENSE.md", "LICENSE.md",
"pm/Book Action Items.md", "pm/Book Action Items.md",
"chapters/Unitfication.md", "chapters/Unitfication.md"
"chapters/03_Cylindrical_Spacetime.md"
] ]
} }

View File

@ -5,7 +5,7 @@
| **Author** | John Haverlack | | **Author** | John Haverlack |
| **Copyright** | 2026 John Haverlack | | **Copyright** | 2026 John Haverlack |
| **License** | CC BY-ND 4.0 | | **License** | CC BY-ND 4.0 |
| **Version** | 1.2.2 | | **Version** | v1.2.3 |
| **Date** | 2026-02-05 | | **Date** | 2026-02-05 |
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, DOCX, ODT, HTML, LaTeX, Markdown, and Epub book formats all from a single set of 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, DOCX, ODT, HTML, LaTeX, Markdown, and Epub book formats all from a single set of Markdown source content in an Obsidian vault.

Binary file not shown.

View File

@ -51,7 +51,7 @@
<!-- Title Page --> <!-- Title Page -->
<h1 class="titlepage" style="margin-top:3em; font-size:2.4em; text-align:center;">Basic Book Builder</h1> <h1 class="titlepage" style="margin-top:3em; font-size:2.4em; text-align:center;">Basic Book Builder</h1>
<h2 style="text-align:center; font-weight:normal;">A Pandoc build process for books, docs and articles</h2> <h2 style="text-align:center; font-weight:normal;">A Pandoc build process for books, docs and articles.</h2>
<div style="text-align:center; margin:2em 0;"> <div style="text-align:center; margin:2em 0;">
<img src="lib/img/UAF-ACEP.png" alt="Cover illustration" style="max-width:350px;"> <img src="lib/img/UAF-ACEP.png" alt="Cover illustration" style="max-width:350px;">
@ -64,12 +64,12 @@
<div style="text-align:left; margin-top:5em;"> <div style="text-align:left; margin-top:5em;">
<h2>Basic Book Builder</h2> <h2>Basic Book Builder</h2>
<i>A Pandoc build process for books, docs and articles</i> <i>A Pandoc build process for books, docs and articles.</i>
<table style="margin-top:2em; width:50%; border-collapse:collapse;"> <table style="margin-top:2em; width:50%; border-collapse:collapse;">
<tbody> <tbody>
<tr><td style="font-weight:bold;">Author</td><td>John Haverlack</td></tr> <tr><td style="font-weight:bold;">Author</td><td>John Haverlack</td></tr>
<tr><td style="font-weight:bold;">Version</td><td>1.2.2</td></tr> <tr><td style="font-weight:bold;">Version</td><td>1.2.3</td></tr>
<tr><td style="font-weight:bold;">Date</td><td>2026-02-05</td></tr> <tr><td style="font-weight:bold;">Date</td><td>2026-02-05</td></tr>
<tr><td style="font-weight:bold;">Affiliation</td><td>Alaska Center for Energy and Power</td></tr> <tr><td style="font-weight:bold;">Affiliation</td><td>Alaska Center for Energy and Power</td></tr>
<tr><td style="font-weight:bold;">Institution</td><td>University of Alaska Fairbanks</td></tr> <tr><td style="font-weight:bold;">Institution</td><td>University of Alaska Fairbanks</td></tr>
@ -130,31 +130,25 @@ window.MathJax = {
<nav id="TOC" role="doc-toc"> <nav id="TOC" role="doc-toc">
<h2 id="toc-title">Contents</h2> <h2 id="toc-title">Contents</h2>
<ul> <ul>
<li><a href="#introduction" id="toc-introduction">Introduction</a></li> <li><a href="#introduction" id="toc-introduction">Introduction</a>
<ul>
<li><a href="#workflow" id="toc-workflow">Workflow</a></li>
</ul></li>
<li><a href="#getting-started" id="toc-getting-started">Getting <li><a href="#getting-started" id="toc-getting-started">Getting
Started</a> Started</a>
<ul> <ul>
<li><a href="#cloning-the-basic-book-builder" <li><a href="#clone-the-basic-book-builder"
id="toc-cloning-the-basic-book-builder">Cloning the Basic Book id="toc-clone-the-basic-book-builder">Clone the Basic Book
Builder</a></li> Builder</a></li>
<li><a href="#setting-up-build-environment" <li><a href="#setting-up-build-environment"
id="toc-setting-up-build-environment">Setting Up Build id="toc-setting-up-build-environment">Setting Up Build Environment</a>
Environment</a></li> <ul>
<li><a href="#non-deb-systems" id="toc-non-deb-systems">Non deb
systems</a></li>
</ul></li>
<li><a href="#testing" id="toc-testing">Testing</a></li> <li><a href="#testing" id="toc-testing">Testing</a></li>
<li><a href="#creating-a-new-project" <li><a href="#creating-a-new-project"
id="toc-creating-a-new-project">Creating a New Project</a> id="toc-creating-a-new-project">Creating a New Project</a></li>
<ul>
<li><a href="#zotero-configuration-optional"
id="toc-zotero-configuration-optional">Zotero Configuration
(Optional)</a></li>
</ul></li>
</ul></li>
<li><a href="#usage" id="toc-usage">Usage</a>
<ul>
<li><a href="#creating-a-project" id="toc-creating-a-project">Creating a
Project</a></li>
<li><a href="#editing-content" id="toc-editing-content">Editing
Content</a></li>
<li><a href="#building" id="toc-building">Building</a> <li><a href="#building" id="toc-building">Building</a>
<ul> <ul>
<li><a href="#pdf" id="toc-pdf">PDF</a></li> <li><a href="#pdf" id="toc-pdf">PDF</a></li>
@ -175,6 +169,8 @@ Page</a></li>
Illustration</a></li> Illustration</a></li>
<li><a href="#dedication" id="toc-dedication">Dedication</a></li> <li><a href="#dedication" id="toc-dedication">Dedication</a></li>
</ul></li> </ul></li>
<li><a href="#table-of-contents" id="toc-table-of-contents">Table of
Contents</a></li>
<li><a href="#chapters" id="toc-chapters">Chapters</a></li> <li><a href="#chapters" id="toc-chapters">Chapters</a></li>
<li><a href="#appendixes" id="toc-appendixes">Appendixes</a></li> <li><a href="#appendixes" id="toc-appendixes">Appendixes</a></li>
<li><a href="#glossary" id="toc-glossary">Glossary</a></li> <li><a href="#glossary" id="toc-glossary">Glossary</a></li>
@ -190,7 +186,8 @@ Integration</a></li>
<li><a href="#obsidian-citations" id="toc-obsidian-citations">Obsidian <li><a href="#obsidian-citations" id="toc-obsidian-citations">Obsidian
Citations</a></li> Citations</a></li>
</ul></li> </ul></li>
<li><a href="#mathjax-equations" id="toc-mathjax-equations">Mathjax <li><a href="#images" id="toc-images">Images</a></li>
<li><a href="#latex-equations" id="toc-latex-equations"><em>LaTeX</em>
Equations</a> Equations</a>
<ul> <ul>
<li><a href="#left-justified-inline" id="toc-left-justified-inline">Left <li><a href="#left-justified-inline" id="toc-left-justified-inline">Left
@ -202,19 +199,26 @@ Markdown</a>
<ul> <ul>
<li><a href="#call-outs" id="toc-call-outs">Call-outs</a></li> <li><a href="#call-outs" id="toc-call-outs">Call-outs</a></li>
</ul></li> </ul></li>
</ul></li> <li><a href="#advanced" id="toc-advanced">Advanced</a>
<li><a href="#appendix-a-build-environment-notes"
id="toc-appendix-a-build-environment-notes">Appendix A: Build
Environment Notes</a>
<ul> <ul>
<li><a href="#installing-pre-requisites" <li><a href="#changing-fonts" id="toc-changing-fonts">Changing
id="toc-installing-pre-requisites">Installing Pre-Requisites</a> Fonts</a></li>
<ul> <li><a href="#adding-filters" id="toc-adding-filters">Adding
<li><a href="#required" id="toc-required">Required</a></li> Filters</a></li>
<li><a href="#optional" id="toc-optional">Optional</a></li>
</ul></li> </ul></li>
<li><a href="#editing-the-configuration" </ul></li>
id="toc-editing-the-configuration">Editing the Configuration</a></li> <li><a href="#design" id="toc-design">Design</a>
<ul>
<li><a href="#directory-structure"
id="toc-directory-structure">Directory Structure</a></li>
<li><a href="#configuration-files"
id="toc-configuration-files">Configuration Files</a>
<ul>
<li><a href="#pandoc-main-config" id="toc-pandoc-main-config">Pandoc
Main Config</a></li>
</ul></li>
<li><a href="#build-workflow" id="toc-build-workflow">Build
Workflow</a></li>
</ul></li> </ul></li>
<li><a href="#glossary-1" id="toc-glossary-1">Glossary</a></li> <li><a href="#glossary-1" id="toc-glossary-1">Glossary</a></li>
<li><a href="#bibliography-1" <li><a href="#bibliography-1"
@ -222,13 +226,31 @@ id="toc-bibliography-1">Bibliography</a></li>
</ul> </ul>
</nav> </nav>
<h1 id="introduction">Introduction</h1> <h1 id="introduction">Introduction</h1>
<p>This is a basic book (or article / document) builder template based <p>This is a <strong>basic book builder</strong> template is based on a
on a Pandoc<span class="citation" data-cites="PandocIndex">(<a Pandoc<span class="citation" data-cites="PandocIndex">(<a
href="#ref-PandocIndex" role="doc-biblioref"><em>Pandoc - Index</em>, href="#ref-PandocIndex" role="doc-biblioref"><em>Pandoc - Index</em>,
n.d.</a>)</span> build process in conjunction with a number of other n.d.</a>)</span> + Makefile build process in conjunction Obsidian to
tools to generate PDF, HTML, LaTex, Markdown, ODT, DOCX, and Epub book edit content and Zotero to manage citation, to generate multiple format
output formats from a single set Markdown source content , which can of the document including:</p>
optionally be edited as an Obsidian vault.</p> <ul>
<li>PDF</li>
<li>HTML</li>
<li><em>LaTeX</em></li>
<li>Markdown</li>
<li>ODT</li>
<li>DOCX</li>
<li>Epub</li>
</ul>
<h3 id="workflow">Workflow</h3>
<ol type="1">
<li>Create a new project</li>
<li>Initialize <code>metadata.yaml</code> with title, copyright, author,
etc.</li>
<li>Customize <code>input-files:</code> in <code>pandoc.yaml</code></li>
<li>Edit <code>chapters</code> Markdown “conent” files using
Obidian</li>
<li>Build your document</li>
</ol>
<p>This <strong>basic book builder</strong><span class="citation" <p>This <strong>basic book builder</strong><span class="citation"
data-cites="JehaverlackBasicbookbuilderPandoca">(<a data-cites="JehaverlackBasicbookbuilderPandoca">(<a
href="#ref-JehaverlackBasicbookbuilderPandoca" href="#ref-JehaverlackBasicbookbuilderPandoca"
@ -238,8 +260,7 @@ class="citation" data-cites="JohnHaverlackACEP">(<a
href="#ref-JohnHaverlackACEP" role="doc-biblioref"><em>John href="#ref-JohnHaverlackACEP" role="doc-biblioref"><em>John
<span>Haverlack</span> <span>ACEP</span></em>, n.d.</a>)</span></p> <span>Haverlack</span> <span>ACEP</span></em>, n.d.</a>)</span></p>
<h1 id="getting-started">Getting Started</h1> <h1 id="getting-started">Getting Started</h1>
<h2 id="cloning-the-basic-book-builder">Cloning the Basic Book <h2 id="clone-the-basic-book-builder">Clone the Basic Book Builder</h2>
Builder</h2>
<div class="callout-cli"> <div class="callout-cli">
<p><strong>Clone the repository</strong></p> <p><strong>Clone the repository</strong></p>
<pre><code>git clone https://github.com/jehaverlack/basic-book-builder.git</code></pre> <pre><code>git clone https://github.com/jehaverlack/basic-book-builder.git</code></pre>
@ -251,56 +272,56 @@ Builder</h2>
<h2 id="setting-up-build-environment">Setting Up Build Environment</h2> <h2 id="setting-up-build-environment">Setting Up Build Environment</h2>
<div class="callout-caution"> <div class="callout-caution">
<p><strong>~Debian Linux</strong></p> <p><strong>~Debian Linux</strong></p>
<p> This script only support Debian based Linux system (Debian, Ubunutu, <p> This script only support Debian based Linux system (e.g Debian,
Zorin, etc) This script has not been widely tested across platforms</p> Ubuntu, Zorin). And this script will install several ATP packages on
your system.</p>
</div> </div>
<div class="callout-danger">
<p><strong>Warning</strong></p>
<p> This script <strong>has not</strong> been widely tested across many
platforms</p>
</div>
<p>To initialize your systems build environment run:</p>
<div class="callout-cli"> <div class="callout-cli">
<p><strong>Setup Build Environment</strong></p> <p><strong>Setup Build Environment</strong></p>
<pre><code>./scripts/setup-linux-deb.sh</code></pre> <pre><code>./scripts/setup-linux-deb.sh</code></pre>
</div> </div>
<h3 id="non-deb-systems">Non deb systems</h3>
<p>For more information on setting up the build environment for your <p>For more information on setting up the build environment for your
system see Appendix A.</p> system see: <strong>TBD: NEEDS DOCUMENTED</strong>.</p>
<h2 id="testing">Testing</h2> <h2 id="testing">Testing</h2>
<p>If you can build all format for the <strong>Basic Book Build</strong> <p>Once you have set up your build environment, you test by building the
then you have a working build environment.</p> <strong>basic book builder</strong>.</p>
<div class="callout-cli"> <div class="callout-cli">
<p><strong>Testing Build Environment</strong></p> <p><strong>Testing Build Environment</strong></p>
<pre><code>make all</code></pre> <pre><code>make all</code></pre>
</div> </div>
<h2 id="creating-a-new-project">Creating a New Project</h2> <h2 id="creating-a-new-project">Creating a New Project</h2>
<h3 id="zotero-configuration-optional">Zotero Configuration <div class="callout-proposed">
(Optional)</h3> <p><strong>Tip</strong></p>
<h1 id="usage">Usage</h1> <p> You do not want to edit your new project document in the
<h2 id="creating-a-project">Creating a Project</h2> <code>basic-book-builder</code> directory. You will want to create a
<p>To create a new Project based on the Basic Book Builder template:</p> <strong>new project</strong> for your document based on this
<ol type="1"> template.</p>
<li>Run the new-project.sh script.</li> </div>
</ol> <div class="callout-cli">
<pre><code>./scripts/new-project.sh &lt;PATH_TO_PROJECT&gt;</code></pre> <p><strong>Create a new project</strong></p>
<ul> <pre><code>./scripts/new-project.sh &lt;NEW_PROJECT_DIR&gt;</code></pre>
<li><PATH_TO_PROJECT> should be outside of the </div>
<strong>basic-book-builder</strong> directory</li> <pre><code>cd &lt;NEW_PROJECT_DIR&gt;</code></pre>
</ul> <p>Update your project configuration:</p>
<pre><code>cd &lt;PATH_TO_PROJECT&gt;</code></pre> <ol type="1">
<p>Update:</p> <li>Edit: <code>metadata.yaml</code>, for title, author, etc</li>
<ol type="1"> <li>Edit: <code>templates/pandoc.yaml</code></li>
<li><code>metadata.yaml</code></li> <li>Open: <code>&lt;NEW_PROJECT_DIR&gt;</code> with Obsidian, and edit
<li><code>templates/pandoc.yaml</code></li> <code>chapters</code> documents.</li>
</ol> <li>Build: <code>make pdf</code></li>
<div class="callout-info"> </ol>
<p><strong>Suggestion</strong></p> <div class="callout-warning">
<p> Create a git repository to version control your new <p><strong>Warning</strong></p>
<PATH_TO_PROJECT> content.</p> <p> <code>&lt;NEW_PROJECT_DIR&gt;</code> should be outside of the
<strong>basic-book-builder</strong> directory</p>
</div> </div>
<h2 id="editing-content">Editing Content</h2>
<p>Edit your source content Markdown under the <code>chapters</code>
directory.</p>
<p><strong>Optional</strong></p>
<ul>
<li>Open your <code>&lt;PATH_TO_PROJECT&gt;</code> directory as an
Obsidian vault.</li>
<li>Edit your Markdown with Obsidian</li>
</ul>
<h2 id="building">Building</h2> <h2 id="building">Building</h2>
<h3 id="pdf">PDF</h3> <h3 id="pdf">PDF</h3>
<pre><code>make pdf</code></pre> <pre><code>make pdf</code></pre>
@ -326,31 +347,30 @@ work.</p>
<p>To build all supported formats</p> <p>To build all supported formats</p>
<pre><code>make all</code></pre> <pre><code>make all</code></pre>
<h1 id="features">Features</h1> <h1 id="features">Features</h1>
<p>The basic book builder template integrates feature from many systems
including Pandoc, MathJax, Obsidian, and Zotero. The following list
covers these features from a functional point of view.</p>
<h2 id="metadata">Metadata</h2> <h2 id="metadata">Metadata</h2>
<p>Metadata for the project is managed in <code>metadata.yaml</code>. <p>Metadata for the project is managed in <code>metadata.yaml</code>.
Edit this file to make global changes to variables for your document. Edit this file to make <strong>global changes</strong> to variables for
Changes here will propagate to all format builds.</p> your document. Definitions in <code>metadata.yaml</code> will propagate
to all format builds.</p>
<h2 id="front-matter">Front-matter</h2> <h2 id="front-matter">Front-matter</h2>
<p>Front matter content is manged in:</p> <p>Front-Matter documents control the Title Page, Metadata and other
pages before the Title of Contents. Front matter content is manged in
these files:</p>
<ul> <ul>
<li><code>templates/frontmatter.tex</code></li> <li><code>templates/frontmatter.tex</code></li>
<li><code>templates/frontmatter.html</code></li> <li><code>templates/frontmatter.html</code></li>
<li><code>templates/frontmatter-md.html</code></li> <li><code>templates/frontmatter-md.html</code></li>
</ul> </ul>
<div class="callout-caution"> <p>Unfortunately when you edit one, you need to edit the respective
<p><strong>Tip</strong></p>
<p> Unfortunately when you edit one, you need to edit the respective
changes to the other front-matter formats. ### Title Page</p> changes to the other front-matter formats. ### Title Page</p>
</div>
<p>Edit the <strong>Front-matter</strong> files to modify the formatting <p>Edit the <strong>Front-matter</strong> files to modify the formatting
of the Title Page.</p> of the Title Page. Youll need to modify the HTML / LaTex code.</p>
<div class="callout-caution">
<p><strong>Tip</strong></p>
<p> Youll need to modify the HTML / LaTex.</p>
</div>
<h3 id="meta-data-page">Meta Data Page</h3> <h3 id="meta-data-page">Meta Data Page</h3>
<p>Edit the <strong>Front-matter</strong> files to modify the 2nd page <p>Edit the <strong>Front-matter</strong> files to modify the 2nd page
Metadata format.</p> Metadata format and fields to display.</p>
<h3 id="cover-illustration">Cover Illustration</h3> <h3 id="cover-illustration">Cover Illustration</h3>
<p>Edit the <strong>Front-matter</strong> files to optionally un-comment <p>Edit the <strong>Front-matter</strong> files to optionally un-comment
the Cover Art Acknowledgement.</p> the Cover Art Acknowledgement.</p>
@ -361,13 +381,20 @@ the Cover Art Acknowledgement.</p>
<p>Edit the <strong>Front-matter</strong> files to modify un-comment the <p>Edit the <strong>Front-matter</strong> files to modify un-comment the
Book Dedication.</p> Book Dedication.</p>
<ul> <ul>
<li>This is disabled by default ## Table of Contents</li> <li>This is disabled by default</li>
</ul> </ul>
<h2 id="table-of-contents">Table of Contents</h2>
<p>The table of contents is auto generated. But can be disabled in
<code>template\pandoc.yaml</code> by setting: -
<code>toc: false</code></p>
<h2 id="chapters">Chapters</h2> <h2 id="chapters">Chapters</h2>
<p>Chapter Markdown source files are located in the <p>Chapter Markdown source files are located in the
<code>chapters</code> directory. Edit the <code>chapters</code> directory. To edit which chapter files are
<code>template\pandoc.yaml</code> file to control which chapter markdown included the document:</p>
files are in what order.</p> <ul>
<li>Edit the <code>input-file:</code> section of the
<code>template\pandoc.yaml</code></li>
</ul>
<h2 id="appendixes">Appendixes</h2> <h2 id="appendixes">Appendixes</h2>
<p>TBD</p> <p>TBD</p>
<h2 id="glossary">Glossary</h2> <h2 id="glossary">Glossary</h2>
@ -382,14 +409,38 @@ files are in what order.</p>
<p>TBD</p> <p>TBD</p>
<h3 id="obsidian-citations">Obsidian Citations</h3> <h3 id="obsidian-citations">Obsidian Citations</h3>
<p>TBD</p> <p>TBD</p>
<h2 id="mathjax-equations">Mathjax Equations</h2> <h2 id="images">Images</h2>
<p>TBD</p> <p>You can use basic Markdown Images</p>
<pre><code>![ACEP](lib/img/ACEPLogo.png)</code></pre>
<figure>
<img src="lib/img/ACEPLogo.png" alt="ACEP" />
<figcaption aria-hidden="true">ACEP</figcaption>
</figure>
<h2 id="latex-equations"><em>LaTeX</em> Equations</h2>
<p>You can embed LaTeX equations directly in your Markdown pages.</p>
<h3 id="left-justified-inline">Left Justified / Inline</h3> <h3 id="left-justified-inline">Left Justified / Inline</h3>
<p>TBD</p> <p>To left justify <em>LaTex</em> surround the code inside single
<code>$</code>:</p>
<div class="callout-code">
<p><strong>Left Justified Equation</strong></p>
<pre><code>$x = \frac{1}{2}$</code></pre>
</div>
<p><span class="math inline">$x = \frac{1}{2}$</span></p>
<div class="callout-code">
<p><strong>Inline</strong></p>
<pre><code>Or inline, $x = \frac{1}{2}$, in a sentence.</code></pre>
</div>
<p>Or inline, <span class="math inline">$x = \frac{1}{2}$</span>, in a
sentence.</p>
<h3 id="centered">Centered</h3> <h3 id="centered">Centered</h3>
<p>TBD</p> <p>To center justify <em>LaTex</em> surround the code inside double
<code>$$</code>:</p>
<div class="callout-code">
<p><strong>Centered Equation</strong></p>
<pre><code>$$x = \frac{1}{2}$$</code></pre>
</div>
<p><span class="math display">$$x = \frac{1}{2}$$</span></p>
<h2 id="custom-markdown">Custom Markdown</h2> <h2 id="custom-markdown">Custom Markdown</h2>
<p>TBD</p>
<h3 id="call-outs">Call-outs</h3> <h3 id="call-outs">Call-outs</h3>
<p>A few call-out box styles have been custom added to easily highlight <p>A few call-out box styles have been custom added to easily highlight
certain types of content.</p> certain types of content.</p>
@ -417,17 +468,6 @@ A blue box</code></pre>
<hr /> <hr />
<div class="callout-code"> <div class="callout-code">
<p><strong>Markdown Example</strong></p> <p><strong>Markdown Example</strong></p>
<pre><code>[!info] Info Box
Same as a blue box</code></pre>
</div>
<p>Will render:</p>
<div class="callout-info">
<p><strong>Info Box</strong></p>
<p> Same as a blue box</p>
</div>
<hr />
<div class="callout-code">
<p><strong>Markdown Example</strong></p>
<pre><code>[!speculative] Purple Call-out Title <pre><code>[!speculative] Purple Call-out Title
A purple box</code></pre> A purple box</code></pre>
</div> </div>
@ -493,7 +533,8 @@ fi</code></pre>
A command line example A command line example
&#39;&#39;&#39; &#39;&#39;&#39;
$ ls $ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml &gt;README.md scripts templates build chapters conf filters lib LICENSE.md Makefile
metadata.yaml &gt;README.md scripts templates
&#39;&#39;&#39;</code></pre> &#39;&#39;&#39;</code></pre>
</div> </div>
<p>Will render:</p> <p>Will render:</p>
@ -501,118 +542,126 @@ build chapters conf filters lib LICENSE.md Makefile metadata.yaml &gt;RE
<p><strong>Command line</strong></p> <p><strong>Command line</strong></p>
<p> A command line example</p> <p> A command line example</p>
<pre><code>$ ls <pre><code>$ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates</code></pre> build chapters conf filters lib LICENSE.md Makefile
metadata.yaml README.md scripts templates</code></pre>
</div> </div>
<p>Appendix A</p> <h2 id="advanced">Advanced</h2>
<h1 id="appendix-a-build-environment-notes">Appendix A: Build <h3 id="changing-fonts">Changing Fonts</h3>
Environment Notes</h1> <p>It is possible to change fonts by editing
<h2 id="installing-pre-requisites">Installing Pre-Requisites</h2> <code>templates/pandoc.yaml</code>, and
<code>templates\styles.css</code>, but you will have to make sure you
have the proper fonts installed on your system first.</p>
<h3 id="adding-filters">Adding Filters</h3>
<p>Custom filters can be created. This is complicated and typically
needs done in 3 places for:</p>
<ul>
<li>obsidian</li>
<li><em>LaTeX</em></li>
<li>HTML</li>
</ul>
<h1 id="design">Design</h1>
<h2 id="directory-structure">Directory Structure</h2>
<p>The <strong>basic-book-builder</strong> directory tree.</p>
<pre><code>basic-book-builder
├── build
│   ├── docx
│   ├── html
│   │   ├── conf
│   │   └── lib
│   │   ├── diag
│   │   ├── img
│   │   └── mathjax
│   ├── latex
│   ├── odt
│   └── pdf
├── chapters
├── conf
├── filters
├── lib
│   ├── citations
│   ├── diag
│   ├── img
│   └── mathjax
├── scripts
│   └── tmp
└── templates</code></pre>
<h2 id="configuration-files">Configuration Files</h2>
<p>The <strong>basic-book-builder</strong> configuration files, scripts,
and build files.</p>
<pre><code>../basic-book-builder
├── chapters
├── conf
├── filters
│   ├── callouts-html.lua
│   └── callouts.lua
├── lib
│   ├── diag
│   ├── img
│   └── zotero.bib
├── Makefile
├── metadata.yaml
├── scripts
│   ├── new-project.sh
│   ├── replace-metadata.sh
│   ├── setup-linux-deb.sh
│   └── tmp
└── templates
├── docx.yaml
├── epub_template.html
├── epub.yaml
├── frontmatter-docx.md
├── frontmatter.html
├── frontmatter-md.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── odt.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css
</code></pre>
<div class="callout-caution"> <div class="callout-caution">
<p><strong>Not Cross-platform Tested</strong></p> <p><strong>About conf</strong></p>
<p> For Debian / ZorinOS and likely Ubuntu based systems.</p> <p> NEVER: edit file directly in <code>conf</code>. They will be
overwritten by the build process. ### Metadata</p>
</div> </div>
<h3 id="required">Required</h3> <p>Update the <code>metadata.yaml</code> file to globally configure your
<h4 id="pandoc">Pandoc</h4> document title and other metadata. Edit this file to control your
<ul> document title, author, etc.</p>
<li>https://pandoc.org/</li> <h3 id="pandoc-main-config">Pandoc Main Config</h3>
<li><a <p>Update the <code>input-files:</code> section of
href="https://github.com/jgm/pandoc/releases/tag/3.8.2.1">Download</a></li> <code>templates/pandoc.yaml</code> to control what chapter source files
</ul> are in which order in your document.</p>
<blockquote> <pre><code># pandoc.yaml
<p><code>sudo apt install https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb</code></p> input-files:
</blockquote> # - chapters/Preface.md
<h4 id="code-editor">Code Editor</h4> - chapters/00_Introduction.md
<div class="callout-established"> - chapters/01_Getting_Started.md
<p><strong>Code Editor</strong></p> - chapters/02_Usage.md
<p> <a href="https://vscodium.com/">VSCodium</a> is recommend for - chapters/03_Features.md
privacy (telemetry/tracking) reasons - https://vscodium.com/</p> - chapters/Appendix.md
</div> - chapters/AppendixA.md
<p>But any text editor will work. #### make</p> # - chapters/AppendixB.md
<pre><code>sudo apt install make</code></pre> - chapters/Glossary.md
<h4 id="jq-and-yq">jq and yq</h4> - chapters/Index.md
<pre><code>sudo apt install jq yq</code></pre> - chapters/Bibliography.md</code></pre>
<h4 id="texlive">texlive</h4> <h2 id="build-workflow">Build Workflow</h2>
<blockquote> <p>For a PDF Build:</p>
<p><code>sudo apt install texlive texlive-xetex texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra</code></p> <pre><code>make pdf</code></pre>
</blockquote> <p>will build dependencies on these file:</p>
<h4 id="mathjax">MathJax</h4> <ol type="1">
<ul> <li>Makefile</li>
<li>https://www.mathjax.org/</li> <li>conf/pandoc.yaml</li>
</ul> <li>conf/pdf.yaml</li>
<pre><code>wget https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz <li>lib/zotero.bib</li>
tar xzf mathjax-3.2.2.tgz <li>chapters/*.md</li>
mv package/es5/* lib/mathjax </ol>
rm -rf package mathjax-3.2.2.tgz</code></pre> <p>NOTE: the <code>Makefile</code> will copy
<div class="callout-caution"> <code>templates/*.yaml</code> to <code>conf/*.yaml</code>.
<p><strong>TODO</strong></p> <strong>Never</strong> edit <code>conf/*</code>directly.</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><label><input type="checkbox" />Keep Updated</label></li>
<li><label><input type="checkbox" />Save to:
~/Documents/Lib/zotero.bib</label></li>
<li><label><input type="checkbox" />Symlink your
~/Documents/Lib/Citations.bib to
basic-book-builder/lib/zotero.bib</label></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 class="unnumbered" id="glossary-1">Glossary</h1> <h1 class="unnumbered" id="glossary-1">Glossary</h1>
<table> <table>
<colgroup> <colgroup>

View File

@ -22,133 +22,107 @@
\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }}
\newlabel{introduction}{{1}{1}{Introduction}{chapter.1}{}} \newlabel{introduction}{{1}{1}{Introduction}{chapter.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.0.1}Workflow}{1}{subsection.1.0.1}\protected@file@percent }
\newlabel{workflow}{{1.0.1}{1}{Workflow}{subsection.1.0.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Getting Started}{2}{chapter.2}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{\numberline {2}Getting Started}{2}{chapter.2}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }}
\newlabel{getting-started}{{2}{2}{Getting Started}{chapter.2}{}} \newlabel{getting-started}{{2}{2}{Getting Started}{chapter.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Cloning the Basic Book Builder}{2}{section.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2.1}Clone the Basic Book Builder}{2}{section.2.1}\protected@file@percent }
\newlabel{cloning-the-basic-book-builder}{{2.1}{2}{Cloning the Basic Book Builder}{section.2.1}{}} \newlabel{clone-the-basic-book-builder}{{2.1}{2}{Clone the Basic Book Builder}{section.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Setting Up Build Environment}{2}{section.2.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2.2}Setting Up Build Environment}{2}{section.2.2}\protected@file@percent }
\newlabel{setting-up-build-environment}{{2.2}{2}{Setting Up Build Environment}{section.2.2}{}} \newlabel{setting-up-build-environment}{{2.2}{2}{Setting Up Build Environment}{section.2.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Testing}{2}{section.2.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Non deb systems}{3}{subsection.2.2.1}\protected@file@percent }
\newlabel{testing}{{2.3}{2}{Testing}{section.2.3}{}} \newlabel{non-deb-systems}{{2.2.1}{3}{Non deb systems}{subsection.2.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Testing}{3}{section.2.3}\protected@file@percent }
\newlabel{testing}{{2.3}{3}{Testing}{section.2.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}Creating a New Project}{3}{section.2.4}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2.4}Creating a New Project}{3}{section.2.4}\protected@file@percent }
\newlabel{creating-a-new-project}{{2.4}{3}{Creating a New Project}{section.2.4}{}} \newlabel{creating-a-new-project}{{2.4}{3}{Creating a New Project}{section.2.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}Zotero Configuration (Optional)}{3}{subsection.2.4.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2.5}Building}{4}{section.2.5}\protected@file@percent }
\newlabel{zotero-configuration-optional}{{2.4.1}{3}{Zotero Configuration (Optional)}{subsection.2.4.1}{}} \newlabel{building}{{2.5}{4}{Building}{section.2.5}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Usage}{4}{chapter.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.5.1}PDF}{4}{subsection.2.5.1}\protected@file@percent }
\newlabel{pdf}{{2.5.1}{4}{PDF}{subsection.2.5.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.2}HTML}{4}{subsection.2.5.2}\protected@file@percent }
\newlabel{html}{{2.5.2}{4}{HTML}{subsection.2.5.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.3}DocX}{4}{subsection.2.5.3}\protected@file@percent }
\newlabel{docx}{{2.5.3}{4}{DocX}{subsection.2.5.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.4}ODT}{4}{subsection.2.5.4}\protected@file@percent }
\newlabel{odt}{{2.5.4}{4}{ODT}{subsection.2.5.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.5}Make All}{4}{subsection.2.5.5}\protected@file@percent }
\newlabel{make-all}{{2.5.5}{4}{Make All}{subsection.2.5.5}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Features}{5}{chapter.3}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }}
\newlabel{usage}{{3}{4}{Usage}{chapter.3}{}} \newlabel{features}{{3}{5}{Features}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Creating a Project}{4}{section.3.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.1}Metadata}{5}{section.3.1}\protected@file@percent }
\newlabel{creating-a-project}{{3.1}{4}{Creating a Project}{section.3.1}{}} \newlabel{metadata}{{3.1}{5}{Metadata}{section.3.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Editing Content}{4}{section.3.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.2}Front-matter}{5}{section.3.2}\protected@file@percent }
\newlabel{editing-content}{{3.2}{4}{Editing Content}{section.3.2}{}} \newlabel{front-matter}{{3.2}{5}{Front-matter}{section.3.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Building}{4}{section.3.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Meta Data Page}{5}{subsection.3.2.1}\protected@file@percent }
\newlabel{building}{{3.3}{4}{Building}{section.3.3}{}} \newlabel{meta-data-page}{{3.2.1}{5}{Meta Data Page}{subsection.3.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}PDF}{4}{subsection.3.3.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Cover Illustration}{5}{subsection.3.2.2}\protected@file@percent }
\newlabel{pdf}{{3.3.1}{4}{PDF}{subsection.3.3.1}{}} \newlabel{cover-illustration}{{3.2.2}{5}{Cover Illustration}{subsection.3.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}HTML}{5}{subsection.3.3.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Dedication}{6}{subsection.3.2.3}\protected@file@percent }
\newlabel{html}{{3.3.2}{5}{HTML}{subsection.3.3.2}{}} \newlabel{dedication}{{3.2.3}{6}{Dedication}{subsection.3.2.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}DocX}{5}{subsection.3.3.3}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.3}Table of Contents}{6}{section.3.3}\protected@file@percent }
\newlabel{docx}{{3.3.3}{5}{DocX}{subsection.3.3.3}{}} \newlabel{table-of-contents}{{3.3}{6}{Table of Contents}{section.3.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}ODT}{5}{subsection.3.3.4}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.4}Chapters}{6}{section.3.4}\protected@file@percent }
\newlabel{odt}{{3.3.4}{5}{ODT}{subsection.3.3.4}{}} \newlabel{chapters}{{3.4}{6}{Chapters}{section.3.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Make All}{5}{subsection.3.3.5}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.5}Appendixes}{6}{section.3.5}\protected@file@percent }
\newlabel{make-all}{{3.3.5}{5}{Make All}{subsection.3.3.5}{}} \newlabel{appendixes}{{3.5}{6}{Appendixes}{section.3.5}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Features}{6}{chapter.4}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.6}Glossary}{6}{section.3.6}\protected@file@percent }
\newlabel{glossary}{{3.6}{6}{Glossary}{section.3.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.7}Index}{6}{section.3.7}\protected@file@percent }
\newlabel{index}{{3.7}{6}{Index}{section.3.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.1}Markdown Indexes}{6}{subsection.3.7.1}\protected@file@percent }
\newlabel{markdown-indexes}{{3.7.1}{6}{Markdown Indexes}{subsection.3.7.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.8}Bibliography}{7}{section.3.8}\protected@file@percent }
\newlabel{bibliography}{{3.8}{7}{Bibliography}{section.3.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.1}Zotero Integration}{7}{subsection.3.8.1}\protected@file@percent }
\newlabel{zotero-integration}{{3.8.1}{7}{Zotero Integration}{subsection.3.8.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.2}Obsidian Citations}{7}{subsection.3.8.2}\protected@file@percent }
\newlabel{obsidian-citations}{{3.8.2}{7}{Obsidian Citations}{subsection.3.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.9}Images}{7}{section.3.9}\protected@file@percent }
\newlabel{images}{{3.9}{7}{Images}{section.3.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces ACEP}}{7}{figure.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.10}\emph {LaTeX} Equations}{7}{section.3.10}\protected@file@percent }
\newlabel{latex-equations}{{3.10}{7}{\texorpdfstring {\emph {LaTeX} Equations}{LaTeX Equations}}{section.3.10}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.1}Left Justified / Inline}{7}{subsection.3.10.1}\protected@file@percent }
\newlabel{left-justified-inline}{{3.10.1}{7}{Left Justified / Inline}{subsection.3.10.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.2}Centered}{8}{subsection.3.10.2}\protected@file@percent }
\newlabel{centered}{{3.10.2}{8}{Centered}{subsection.3.10.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.11}Custom Markdown}{8}{section.3.11}\protected@file@percent }
\newlabel{custom-markdown}{{3.11}{8}{Custom Markdown}{section.3.11}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.11.1}Call-outs}{8}{subsection.3.11.1}\protected@file@percent }
\newlabel{call-outs}{{3.11.1}{8}{Call-outs}{subsection.3.11.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.12}Advanced}{11}{section.3.12}\protected@file@percent }
\newlabel{advanced}{{3.12}{11}{Advanced}{section.3.12}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.1}Changing Fonts}{11}{subsection.3.12.1}\protected@file@percent }
\newlabel{changing-fonts}{{3.12.1}{11}{Changing Fonts}{subsection.3.12.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.2}Adding Filters}{11}{subsection.3.12.2}\protected@file@percent }
\newlabel{adding-filters}{{3.12.2}{11}{Adding Filters}{subsection.3.12.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Design}{12}{chapter.4}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }}
\newlabel{features}{{4}{6}{Features}{chapter.4}{}} \newlabel{design}{{4}{12}{Design}{chapter.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Metadata}{6}{section.4.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.1}Directory Structure}{12}{section.4.1}\protected@file@percent }
\newlabel{metadata}{{4.1}{6}{Metadata}{section.4.1}{}} \newlabel{directory-structure}{{4.1}{12}{Directory Structure}{section.4.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Front-matter}{6}{section.4.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.2}Configuration Files}{12}{section.4.2}\protected@file@percent }
\newlabel{front-matter}{{4.2}{6}{Front-matter}{section.4.2}{}} \newlabel{configuration-files}{{4.2}{12}{Configuration Files}{section.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Meta Data Page}{6}{subsection.4.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Pandoc Main Config}{14}{subsection.4.2.1}\protected@file@percent }
\newlabel{meta-data-page}{{4.2.1}{6}{Meta Data Page}{subsection.4.2.1}{}} \newlabel{pandoc-main-config}{{4.2.1}{14}{Pandoc Main Config}{subsection.4.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Cover Illustration}{6}{subsection.4.2.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.3}Build Workflow}{14}{section.4.3}\protected@file@percent }
\newlabel{cover-illustration}{{4.2.2}{6}{Cover Illustration}{subsection.4.2.2}{}} \newlabel{build-workflow}{{4.3}{14}{Build Workflow}{section.4.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Dedication}{7}{subsection.4.2.3}\protected@file@percent }
\newlabel{dedication}{{4.2.3}{7}{Dedication}{subsection.4.2.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.3}Chapters}{7}{section.4.3}\protected@file@percent }
\newlabel{chapters}{{4.3}{7}{Chapters}{section.4.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.4}Appendixes}{7}{section.4.4}\protected@file@percent }
\newlabel{appendixes}{{4.4}{7}{Appendixes}{section.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.5}Glossary}{7}{section.4.5}\protected@file@percent }
\newlabel{glossary}{{4.5}{7}{Glossary}{section.4.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.6}Index}{7}{section.4.6}\protected@file@percent }
\newlabel{index}{{4.6}{7}{Index}{section.4.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.1}Markdown Indexes}{7}{subsection.4.6.1}\protected@file@percent }
\newlabel{markdown-indexes}{{4.6.1}{7}{Markdown Indexes}{subsection.4.6.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.7}Bibliography}{7}{section.4.7}\protected@file@percent }
\newlabel{bibliography}{{4.7}{7}{Bibliography}{section.4.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.7.1}Zotero Integration}{7}{subsection.4.7.1}\protected@file@percent }
\newlabel{zotero-integration}{{4.7.1}{7}{Zotero Integration}{subsection.4.7.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.7.2}Obsidian Citations}{8}{subsection.4.7.2}\protected@file@percent }
\newlabel{obsidian-citations}{{4.7.2}{8}{Obsidian Citations}{subsection.4.7.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.8}Mathjax Equations}{8}{section.4.8}\protected@file@percent }
\newlabel{mathjax-equations}{{4.8}{8}{Mathjax Equations}{section.4.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8.1}Left Justified / Inline}{8}{subsection.4.8.1}\protected@file@percent }
\newlabel{left-justified-inline}{{4.8.1}{8}{Left Justified / Inline}{subsection.4.8.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8.2}Centered}{8}{subsection.4.8.2}\protected@file@percent }
\newlabel{centered}{{4.8.2}{8}{Centered}{subsection.4.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.9}Custom Markdown}{8}{section.4.9}\protected@file@percent }
\newlabel{custom-markdown}{{4.9}{8}{Custom Markdown}{section.4.9}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.9.1}Call-outs}{8}{subsection.4.9.1}\protected@file@percent }
\newlabel{call-outs}{{4.9.1}{8}{Call-outs}{subsection.4.9.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {A}Appendix A: Build Environment Notes}{12}{appendix.A}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{appendix-a-build-environment-notes}{{A}{12}{Appendix A: Build Environment Notes}{appendix.A}{}}
\@writefile{toc}{\contentsline {section}{\numberline {A.1}Installing Pre-Requisites}{12}{section.A.1}\protected@file@percent }
\newlabel{installing-pre-requisites}{{A.1}{12}{Installing Pre-Requisites}{section.A.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.1}Required}{12}{subsection.A.1.1}\protected@file@percent }
\newlabel{required}{{A.1.1}{12}{Required}{subsection.A.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.1}Pandoc}{12}{subsubsection.A.1.1.1}\protected@file@percent }
\newlabel{pandoc}{{A.1.1.1}{12}{Pandoc}{subsubsection.A.1.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.2}Code Editor}{12}{subsubsection.A.1.1.2}\protected@file@percent }
\newlabel{code-editor}{{A.1.1.2}{12}{Code Editor}{subsubsection.A.1.1.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.3}jq and yq}{12}{subsubsection.A.1.1.3}\protected@file@percent }
\newlabel{jq-and-yq}{{A.1.1.3}{12}{jq and yq}{subsubsection.A.1.1.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.4}texlive}{12}{subsubsection.A.1.1.4}\protected@file@percent }
\newlabel{texlive}{{A.1.1.4}{12}{texlive}{subsubsection.A.1.1.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.5}MathJax}{13}{subsubsection.A.1.1.5}\protected@file@percent }
\newlabel{mathjax}{{A.1.1.5}{13}{MathJax}{subsubsection.A.1.1.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.2}Optional}{13}{subsection.A.1.2}\protected@file@percent }
\newlabel{optional}{{A.1.2}{13}{Optional}{subsection.A.1.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.1}Obsidian}{13}{subsubsection.A.1.2.1}\protected@file@percent }
\newlabel{obsidian}{{A.1.2.1}{13}{Obsidian}{subsubsection.A.1.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.2}Zotero}{13}{subsubsection.A.1.2.2}\protected@file@percent }
\newlabel{zotero}{{A.1.2.2}{13}{Zotero}{subsubsection.A.1.2.2}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {A.1.2.2.1}Better BibTex for Zotero}{14}{paragraph.A.1.2.2.1}\protected@file@percent }
\newlabel{better-bibtex-for-zotero}{{A.1.2.2.1}{14}{Better BibTex for Zotero}{paragraph.A.1.2.2.1}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {A.1.2.2.2}Export citations.bib}{14}{paragraph.A.1.2.2.2}\protected@file@percent }
\newlabel{export-citations.bib}{{A.1.2.2.2}{14}{Export citations.bib}{paragraph.A.1.2.2.2}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {A.1.2.2.3}Zotero Connector Browser Plugin}{14}{paragraph.A.1.2.2.3}\protected@file@percent }
\newlabel{zotero-connector-browser-plugin}{{A.1.2.2.3}{14}{Zotero Connector Browser Plugin}{paragraph.A.1.2.2.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.3}lmodern}{14}{subsubsection.A.1.2.3}\protected@file@percent }
\newlabel{lmodern}{{A.1.2.3}{14}{lmodern}{subsubsection.A.1.2.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.4}epubcheck}{14}{subsubsection.A.1.2.4}\protected@file@percent }
\newlabel{epubcheck}{{A.1.2.4}{14}{epubcheck}{subsubsection.A.1.2.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.5}foliate}{14}{subsubsection.A.1.2.5}\protected@file@percent }
\newlabel{foliate}{{A.1.2.5}{14}{foliate}{subsubsection.A.1.2.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.6}calibre}{14}{subsubsection.A.1.2.6}\protected@file@percent }
\newlabel{calibre}{{A.1.2.6}{14}{calibre}{subsubsection.A.1.2.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {A.2}Editing the Configuration}{14}{section.A.2}\protected@file@percent }
\newlabel{editing-the-configuration}{{A.2}{14}{Editing the Configuration}{section.A.2}{}}
\gdef \LT@i {\LT@entry \gdef \LT@i {\LT@entry
{1}{86.68152pt}\LT@entry {1}{86.68152pt}\LT@entry
{1}{383.07349pt}} {1}{383.07349pt}}
\newlabel{glossary-1}{{A.2}{15}{Glossary}{appendix*.2}{}} \newlabel{glossary-1}{{4.3}{15}{Glossary}{chapter*.2}{}}
\@writefile{toc}{\contentsline {chapter}{Glossary}{15}{appendix*.2}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{Glossary}{15}{chapter*.2}\protected@file@percent }
\@writefile{toc}{\contentsline {chapter}{Index}{17}{appendix*.3}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{Index}{17}{chapter*.3}\protected@file@percent }
\bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext } \bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext }
\bibcite{ref-JohnHaverlackACEP}{\citeproctext } \bibcite{ref-JohnHaverlackACEP}{\citeproctext }
\bibcite{ref-PandocIndex}{\citeproctext } \bibcite{ref-PandocIndex}{\citeproctext }
\bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext } \newlabel{bibliography-1}{{4.3}{19}{Bibliography}{chapter*.4}{}}
\bibcite{ref-JohnHaverlackACEP}{\citeproctext } \@writefile{toc}{\contentsline {chapter}{Bibliography}{19}{chapter*.4}\protected@file@percent }
\bibcite{ref-PandocIndex}{\citeproctext } \newlabel{refs}{{4.3}{19}{Bibliography}{section*.5}{}}
\newlabel{bibliography-1}{{A.2}{19}{Bibliography}{appendix*.4}{}}
\@writefile{toc}{\contentsline {chapter}{Bibliography}{19}{appendix*.4}\protected@file@percent }
\newlabel{refs}{{A.2}{19}{Bibliography}{section*.5}{}}
\gdef \@abspage@last{24} \gdef \@abspage@last{24}

View File

@ -1,4 +1,4 @@
This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022/Debian) (preloaded format=xelatex 2025.11.6) 5 FEB 2026 15:41 This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022/Debian) (preloaded format=xelatex 2025.11.6) 5 FEB 2026 17:35
entering extended mode entering extended mode
restricted \write18 enabled. restricted \write18 enabled.
file:line:error style messages enabled. file:line:error style messages enabled.
@ -1347,18 +1347,7 @@ File: bkm-dvipdfm.def 2020-11-06 v1.29 bookmark driver for dvipdfm (HO)
)) ))
Package hyperref Info: Option `colorlinks' set `true' on input line 306. Package hyperref Info: Option `colorlinks' set `true' on input line 306.
(./basic-book-builder.aux (./basic-book-builder.aux)
LaTeX Warning: Label `ref-JehaverlackBasicbookbuilderPandoca' multiply defined.
LaTeX Warning: Label `ref-JohnHaverlackACEP' multiply defined.
LaTeX Warning: Label `ref-PandocIndex' multiply defined.
)
\openout1 = `basic-book-builder.aux'. \openout1 = `basic-book-builder.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 311. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 311.
@ -1757,104 +1746,77 @@ LaTeX Font Info: Font shape `TU/NotoSerif(0)/b/n' will be
[2] [2]
Chapter 1. Chapter 1.
LaTeX Font Info: Font shape `TU/NotoSansMono(0)/m/n' will be
(Font) scaled to size 12.0pt on input line 463.
[1 [1
] ]
Chapter 2. Chapter 2.
LaTeX Font Info: Font shape `TU/NotoSansMono(0)/m/n' will be
(Font) scaled to size 12.0pt on input line 450.
Overfull \hbox (10.34296pt too wide) in paragraph at lines 451--451 Overfull \hbox (10.34296pt too wide) in paragraph at lines 485--485
[]\TU/NotoSansMono(0)/m/n/12 git clone https://github.com/jehaverlack/basic-boo []\TU/NotoSansMono(0)/m/n/12 git clone https://github.com/jehaverlack/basic-boo
k-builder.git[] k-builder.git[]
[] []
[2
] [3] Underfull \vbox (badness 2644) has occurred while \output is active []
Chapter 3.
[4
] [5] [2
Chapter 4.
[6
] [7] [8] [9] [10] ]
Overfull \hbox (262.34303pt too wide) in paragraph at lines 862--862 Underfull \hbox (badness 10000) in paragraph at lines 539--542
[]\TU/NotoSansMono(0)/m/n/12 build chapters conf filters lib LICENSE.md M []\TU/NotoSerif(0)/m/n/12 You do not want to edit your new project document in
akefile metadata.yaml >README.md scripts templates[] the
[] []
[3] [4]
Chapter 3.
[5
Overfull \hbox (255.14304pt too wide) in paragraph at lines 875--875 ]
[]\TU/NotoSansMono(0)/m/n/12 build chapters conf filters lib LICENSE.md M Overfull \hbox (19.09433pt too wide) in paragraph at lines 687--690
akefile metadata.yaml README.md scripts templates[] \TU/NotoSerif(0)/m/n/12 The table of contents is auto generated. But can be dis
abled in \TU/NotoSansMono(0)/m/n/12 template\pandoc.yaml
[]
[6]
File: lib/img/ACEPLogo.png Graphic file (type bmp)
<lib/img/ACEPLogo.png>
LaTeX Font Info: Font shape `TU/NotoSerif(0)/b/it' will be
(Font) scaled to size 17.28pt on input line 746.
[7] [8] [9] [10]
Overfull \hbox (71.729pt too wide) in paragraph at lines 945--949
\TU/NotoSerif(0)/m/n/12 It is possible to change fonts by editing \TU/NotoSansM
ono(0)/m/n/12 templates/pandoc.yaml\TU/NotoSerif(0)/m/n/12 , and \TU/NotoSansMo
no(0)/m/n/12 templates\styles.css\TU/NotoSerif(0)/m/n/12 ,
[] []
[11] [11]
Appendix A. Chapter 4.
Overfull \hbox (12.85075pt too wide) in paragraph at lines 885--885
|\TU/NotoSerif(0)/b/n/24.88 Appendix A: Build Environment Notes|
[]
Overfull \hbox (295.84503pt too wide) in paragraph at lines 906--907
[]\TU/NotoSansMono(0)/m/n/12 sudo apt install https://github.com/jgm/pandoc/rel
eases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb
[]
Underfull \hbox (badness 10000) in paragraph at lines 912--914
[][][]\TU/NotoSerif(0)/m/n/12 VSCodium[][] is recommend for privacy (telemetry/
tracking) reasons -
[]
[12 [12
] ]
Overfull \hbox (358.24503pt too wide) in paragraph at lines 975--975 Underfull \vbox (badness 10000) has occurred while \output is active []
[]\TU/NotoSansMono(0)/m/n/12 sudo apt install https://github.com/obsidianmd/obs
idian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb[]
[]
[13]
Overfull \hbox (12.02498pt too wide) in paragraph at lines 1020--1022
[]\TU/NotoSerif(0)/m/n/12 Symlink your ~/Documents/Lib/Citations.bib to basic-b
ook-builder/lib/zotero.bib
[]
Overfull \hbox (107.64897pt too wide) in paragraph at lines 1030--1031
[]\TU/NotoSerif(0)/m/n/12 https://chromewebstore.google.com/detail/zotero-conne
ctor/ekhagklcjbdpajgpjgmbionohlpdbjgc
[]
Overfull \hbox (430.245pt too wide) in paragraph at lines 1059--1059
[]\TU/NotoSansMono(0)/m/n/12 sudo apt install https://github.com/johnfactotum/f
oliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb[]
[]
[13]
[14] [14]
Underfull \hbox (badness 10000) in alignment at lines 1086--1094 Underfull \hbox (badness 10000) in alignment at lines 1106--1114
[] [] [] []
[] []
Underfull \hbox (badness 10000) in alignment at lines 1094--1096 Underfull \hbox (badness 10000) in alignment at lines 1114--1116
[] [] [] []
[] []
Overfull \hbox (1.68248pt too wide) in paragraph at lines 1100--1100 Overfull \hbox (1.68248pt too wide) in paragraph at lines 1120--1120
[]|\TU/NotoSerif(0)/b/n/12 Bibliography| []|\TU/NotoSerif(0)/b/n/12 Bibliography|
[] []
Underfull \hbox (badness 10000) in alignment at lines 1096--1148 Underfull \hbox (badness 10000) in alignment at lines 1116--1168
[] [] [] []
[] []
@ -1866,13 +1828,7 @@ Underfull \hbox (badness 10000) in alignment at lines 1096--1148
] [18 ] [18
] ]
Underfull \hbox (badness 3977) in paragraph at lines 1183--1185 Underfull \hbox (badness 3977) in paragraph at lines 1203--1205
[]\TU/NotoSerif(0)/m/it/12 John Haverlack | ACEP\TU/NotoSerif(0)/m/n/12 . n.d.
Https://www.uaf.edu/acep/about/our-team/john-
[]
Underfull \hbox (badness 3977) in paragraph at lines 1195--1197
[]\TU/NotoSerif(0)/m/it/12 John Haverlack | ACEP\TU/NotoSerif(0)/m/n/12 . n.d. []\TU/NotoSerif(0)/m/it/12 John Haverlack | ACEP\TU/NotoSerif(0)/m/n/12 . n.d.
Https://www.uaf.edu/acep/about/our-team/john- Https://www.uaf.edu/acep/about/our-team/john-
[] []
@ -1881,18 +1837,14 @@ Https://www.uaf.edu/acep/about/our-team/john-
] [20 ] [20
] (./basic-book-builder.aux) ] (./basic-book-builder.aux) )
LaTeX Warning: There were multiply-defined labels.
)
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
36437 strings out of 478775 36434 strings out of 478775
750795 string characters out of 5850945 751025 string characters out of 5850945
1859991 words of memory out of 5000000 1859991 words of memory out of 5000000
55860 multiletter control sequences out of 15000+600000 55855 multiletter control sequences out of 15000+600000
516036 words of font info for 92 fonts, out of 8000000 for 9000 516044 words of font info for 93 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191 14 hyphenation exceptions out of 8191
90i,11n,122p,1207b,959s stack positions out of 10000i,1000n,20000p,200000b,200000s 90i,12n,122p,1207b,1051s stack positions out of 10000i,1000n,20000p,200000b,200000s
Output written on basic-book-builder.pdf (24 pages). Output written on basic-book-builder.pdf (24 pages).

Binary file not shown.

View File

@ -274,7 +274,7 @@
\fancypagestyle{plain}{% \fancypagestyle{plain}{%
\fancyhf{}% \fancyhf{}%
\fancyhead[C]{\leftmark} % Chapter title \fancyhead[C]{\leftmark} % Chapter title
\cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles} % Book title \cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles.} % Book title
\rfoot{\thepage} % Page number \rfoot{\thepage} % Page number
\renewcommand{\headrulewidth}{0pt} \renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt}
@ -288,7 +288,7 @@
\fancyhead[C]{\leftmark} % Chapter title (centered) \fancyhead[C]{\leftmark} % Chapter title (centered)
% Footer % Footer
\cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles} % Book title \cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles.} % Book title
\rfoot{\thepage} % Page number \rfoot{\thepage} % Page number
% Line rules % Line rules
@ -321,7 +321,7 @@
{\Huge\bfseries Basic Book Builder \par} {\Huge\bfseries Basic Book Builder \par}
\vspace{0.4cm} \vspace{0.4cm}
{\Large A Pandoc build process for books, docs and articles \par} {\Large A Pandoc build process for books, docs and articles. \par}
\vspace{1.2cm} \vspace{1.2cm}
\includegraphics[width=0.5\textwidth]{lib/img/UAF-ACEP.png} \includegraphics[width=0.5\textwidth]{lib/img/UAF-ACEP.png}
@ -338,14 +338,14 @@
{\Large\bfseries Basic Book Builder \par} {\Large\bfseries Basic Book Builder \par}
\vspace{0.2cm} \vspace{0.2cm}
{\normalsize\textit{A Pandoc build process for books, docs and articles}\par} {\normalsize\textit{A Pandoc build process for books, docs and articles.}\par}
\vspace{0.4cm} \vspace{0.4cm}
\renewcommand{\arraystretch}{1.3} % row spacing \renewcommand{\arraystretch}{1.3} % row spacing
\setlength{\tabcolsep}{8pt} % column padding \setlength{\tabcolsep}{8pt} % column padding
\begin{tabular}{@{}p{0.28\textwidth}p{0.65\textwidth}@{}} \begin{tabular}{@{}p{0.28\textwidth}p{0.65\textwidth}@{}}
\textbf{Author:} & John Haverlack \\ \textbf{Author:} & John Haverlack \\
\textbf{Version:} & 1.2.2 \\ \textbf{Version:} & 1.2.3 \\
\textbf{Date:} & 2026-02-05 \\ \textbf{Date:} & 2026-02-05 \\
\textbf{Affiliation:} & Alaska Center for Energy and Power \\ \textbf{Affiliation:} & Alaska Center for Energy and Power \\
\textbf{Institution:} & University of Alaska Fairbanks \\ \textbf{Institution:} & University of Alaska Fairbanks \\
@ -428,12 +428,46 @@ Licensed under the Creative Commons Attribution-NoDerivatives 4.0 International
\mainmatter \mainmatter
\chapter{Introduction}\label{introduction} \chapter{Introduction}\label{introduction}
This is a basic book (or article / document) builder template based on a This is a \textbf{basic book builder} template is based on a
Pandoc(\citeproc{ref-PandocIndex}{\emph{Pandoc - Index}, Pandoc(\citeproc{ref-PandocIndex}{\emph{Pandoc - Index},
n.d.})\index{Pandoc} build process in conjunction with a number of other n.d.})\index{Pandoc} + Makefile build process in conjunction Obsidian to
tools to generate PDF, HTML, LaTex, Markdown, ODT, DOCX, and Epub book edit content and Zotero to manage citation, to generate multiple format
output formats from a single set Markdown source content , which can of the document including:
optionally be edited as an Obsidian vault.
\begin{itemize}
\tightlist
\item
PDF
\item
HTML
\item
\emph{LaTeX}
\item
Markdown
\item
ODT
\item
DOCX
\item
Epub
\end{itemize}
\subsection{Workflow}\label{workflow}
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
Create a new project
\item
Initialize \texttt{metadata.yaml} with title, copyright, author, etc.
\item
Customize \texttt{input-files:} in \texttt{pandoc.yaml}
\item
Edit \texttt{chapters} Markdown ``conent'' files using Obidian
\item
Build your document
\end{enumerate}
This \textbf{basic book This \textbf{basic book
builder}(\citeproc{ref-JehaverlackBasicbookbuilderPandoca}{\emph{Jehaverlack/Basic-Book-Builder}, builder}(\citeproc{ref-JehaverlackBasicbookbuilderPandoca}{\emph{Jehaverlack/Basic-Book-Builder},
@ -443,8 +477,8 @@ Haverlack.(\citeproc{ref-JohnHaverlackACEP}{\emph{John {Haverlack}
\chapter{Getting Started}\label{getting-started} \chapter{Getting Started}\label{getting-started}
\section{Cloning the Basic Book \section{Clone the Basic Book
Builder}\label{cloning-the-basic-book-builder} Builder}\label{clone-the-basic-book-builder}
\begin{clibox}[Clone the repository] \begin{clibox}[Clone the repository]
\begin{verbatim} \begin{verbatim}
@ -464,10 +498,17 @@ cd basic-book-builder
Environment}\label{setting-up-build-environment} Environment}\label{setting-up-build-environment}
\begin{cautionbox}[~Debian Linux] \begin{cautionbox}[~Debian Linux]
This script only support Debian based Linux system (Debian, Ubunutu, This script only support Debian based Linux system (e.g Debian, Ubuntu,
Zorin, etc) This script has not been widely tested across platforms Zorin). And this script will install several ATP packages on your
system.
\end{cautionbox} \end{cautionbox}
\begin{dangerbox}[Warning]
This script \textbf{has not} been widely tested across many platforms
\end{dangerbox}
To initialize your systems build environment run:
\begin{clibox}[Setup Build Environment] \begin{clibox}[Setup Build Environment]
\begin{verbatim} \begin{verbatim}
./scripts/setup-linux-deb.sh ./scripts/setup-linux-deb.sh
@ -475,13 +516,15 @@ Zorin, etc) This script has not been widely tested across platforms
\end{clibox} \end{clibox}
\subsection{Non deb systems}\label{non-deb-systems}
For more information on setting up the build environment for your system For more information on setting up the build environment for your system
see Appendix A. see: \textbf{TBD: NEEDS DOCUMENTED}.
\section{Testing}\label{testing} \section{Testing}\label{testing}
If you can build all format for the \textbf{Basic Book Build} then you Once you have set up your build environment, you test by building the
have a working build environment. \textbf{basic book builder}.
\begin{clibox}[Testing Build Environment] \begin{clibox}[Testing Build Environment]
\begin{verbatim} \begin{verbatim}
@ -492,66 +535,43 @@ make all
\section{Creating a New Project}\label{creating-a-new-project} \section{Creating a New Project}\label{creating-a-new-project}
\subsection{Zotero Configuration \begin{proposedbox}[Tip]
(Optional)}\label{zotero-configuration-optional} You do not want to edit your new project document in the
\texttt{basic-book-builder} directory. You will want to create a
\textbf{new project} for your document based on this template.
\end{proposedbox}
\chapter{Usage}\label{usage} \begin{clibox}[Create a new project]
\begin{verbatim}
./scripts/new-project.sh <NEW_PROJECT_DIR>
\end{verbatim}
\section{Creating a Project}\label{creating-a-project} \end{clibox}
To create a new Project based on the Basic Book Builder template: \begin{verbatim}
cd <NEW_PROJECT_DIR>
\end{verbatim}
Update your project configuration:
\begin{enumerate} \begin{enumerate}
\def\labelenumi{\arabic{enumi}.} \def\labelenumi{\arabic{enumi}.}
\tightlist \tightlist
\item \item
Run the new-project.sh script. Edit: \texttt{metadata.yaml}, for title, author, etc
\item
Edit: \texttt{templates/pandoc.yaml}
\item
Open: \texttt{\textless{}NEW\_PROJECT\_DIR\textgreater{}} with
Obsidian, and edit \texttt{chapters} documents.
\item
Build: \texttt{make\ pdf}
\end{enumerate} \end{enumerate}
\begin{verbatim} \begin{warningbox}[Warning]
./scripts/new-project.sh <PATH_TO_PROJECT> \texttt{\textless{}NEW\_PROJECT\_DIR\textgreater{}} should be outside of
\end{verbatim} the \textbf{basic-book-builder} directory
\end{warningbox}
\begin{itemize}
\tightlist
\item
should be outside of the \textbf{basic-book-builder} directory
\end{itemize}
\begin{verbatim}
cd <PATH_TO_PROJECT>
\end{verbatim}
Update:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
\texttt{metadata.yaml}
\item
\texttt{templates/pandoc.yaml}
\end{enumerate}
\begin{quote}
{[}!info{]} Suggestion Create a git repository to version control your
new content.
\end{quote}
\section{Editing Content}\label{editing-content}
Edit your source content Markdown under the \texttt{chapters} directory.
\textbf{Optional}
\begin{itemize}
\tightlist
\item
Open your \texttt{\textless{}PATH\_TO\_PROJECT\textgreater{}}
directory as an Obsidian vault.
\item
Edit your Markdown with Obsidian
\end{itemize}
\section{Building}\label{building} \section{Building}\label{building}
@ -602,15 +622,22 @@ make all
\chapter{Features}\label{features} \chapter{Features}\label{features}
The basic book builder template integrates feature from many systems
including Pandoc, MathJax, Obsidian, and Zotero. The following list
covers these features from a functional point of view.
\section{Metadata}\label{metadata} \section{Metadata}\label{metadata}
Metadata for the project is managed in \texttt{metadata.yaml}. Edit this Metadata for the project is managed in \texttt{metadata.yaml}. Edit this
file to make global changes to variables for your document. Changes here file to make \textbf{global changes} to variables for your document.
will propagate to all format builds. Definitions in \texttt{metadata.yaml} will propagate to all format
builds.
\section{Front-matter}\label{front-matter} \section{Front-matter}\label{front-matter}
Front matter content is manged in: Front-Matter documents control the Title Page, Metadata and other pages
before the Title of Contents. Front matter content is manged in these
files:
\begin{itemize} \begin{itemize}
\tightlist \tightlist
@ -622,22 +649,16 @@ Front matter content is manged in:
\texttt{templates/frontmatter-md.html} \texttt{templates/frontmatter-md.html}
\end{itemize} \end{itemize}
\begin{cautionbox}[Tip]
Unfortunately when you edit one, you need to edit the respective changes Unfortunately when you edit one, you need to edit the respective changes
to the other front-matter formats. \#\#\# Title Page to the other front-matter formats. \#\#\# Title Page
\end{cautionbox}
Edit the \textbf{Front-matter} files to modify the formatting of the Edit the \textbf{Front-matter} files to modify the formatting of the
Title Page. Title Page. You'll need to modify the HTML / LaTex code.
\begin{cautionbox}[Tip]
You'll need to modify the HTML / LaTex.
\end{cautionbox}
\subsection{Meta Data Page}\label{meta-data-page} \subsection{Meta Data Page}\label{meta-data-page}
Edit the \textbf{Front-matter} files to modify the 2nd page Metadata Edit the \textbf{Front-matter} files to modify the 2nd page Metadata
format. format and fields to display.
\subsection{Cover Illustration}\label{cover-illustration} \subsection{Cover Illustration}\label{cover-illustration}
@ -658,14 +679,26 @@ Dedication.
\begin{itemize} \begin{itemize}
\tightlist \tightlist
\item \item
This is disabled by default \#\# Table of Contents This is disabled by default
\end{itemize} \end{itemize}
\section{Table of Contents}\label{table-of-contents}
The table of contents is auto generated. But can be disabled in
\texttt{template\textbackslash{}pandoc.yaml} by setting: -
\texttt{toc:\ false}
\section{Chapters}\label{chapters} \section{Chapters}\label{chapters}
Chapter Markdown source files are located in the \texttt{chapters} Chapter Markdown source files are located in the \texttt{chapters}
directory. Edit the \texttt{template\textbackslash{}pandoc.yaml} file to directory. To edit which chapter files are included the document:
control which chapter markdown files are in what order.
\begin{itemize}
\tightlist
\item
Edit the \texttt{input-file:} section of the
\texttt{template\textbackslash{}pandoc.yaml}
\end{itemize}
\section{Appendixes}\label{appendixes} \section{Appendixes}\label{appendixes}
@ -695,22 +728,64 @@ TBD
TBD TBD
\section{Mathjax Equations}\label{mathjax-equations} \section{Images}\label{images}
TBD You can use basic Markdown Images
\begin{verbatim}
![ACEP](lib/img/ACEPLogo.png)
\end{verbatim}
\begin{figure}
\centering
\pandocbounded{\includegraphics[keepaspectratio,alt={ACEP}]{lib/img/ACEPLogo.png}}
\caption{ACEP}
\end{figure}
\section{\texorpdfstring{\emph{LaTeX}
Equations}{LaTeX Equations}}\label{latex-equations}
You can embed LaTeX equations directly in your Markdown pages.
\subsection{Left Justified / Inline}\label{left-justified-inline} \subsection{Left Justified / Inline}\label{left-justified-inline}
TBD To left justify \emph{LaTex} surround the code inside single
\texttt{\$}:
\begin{codebox}[Left Justified Equation]
\begin{verbatim}
$x = \frac{1}{2}$
\end{verbatim}
\end{codebox}
\(x = \frac{1}{2}\)
\begin{codebox}[Inline]
\begin{verbatim}
Or inline, $x = \frac{1}{2}$, in a sentence.
\end{verbatim}
\end{codebox}
Or inline, \(x = \frac{1}{2}\), in a sentence.
\subsection{Centered}\label{centered} \subsection{Centered}\label{centered}
TBD To center justify \emph{LaTex} surround the code inside double
\texttt{\$\$}:
\begin{codebox}[Centered Equation]
\begin{verbatim}
$$x = \frac{1}{2}$$
\end{verbatim}
\end{codebox}
\[x = \frac{1}{2}\]
\section{Custom Markdown}\label{custom-markdown} \section{Custom Markdown}\label{custom-markdown}
TBD
\subsection{Call-outs}\label{call-outs} \subsection{Call-outs}\label{call-outs}
A few call-out box styles have been custom added to easily highlight A few call-out box styles have been custom added to easily highlight
@ -748,22 +823,6 @@ A blue box
\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
\begin{codebox}[Markdown Example]
\begin{verbatim}
[!info] Info Box
Same as a blue box
\end{verbatim}
\end{codebox}
Will render:
\begin{quote}
{[}!info{]} Info Box Same as a blue box
\end{quote}
\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
\begin{codebox}[Markdown Example] \begin{codebox}[Markdown Example]
\begin{verbatim} \begin{verbatim}
[!speculative] Purple Call-out Title [!speculative] Purple Call-out Title
@ -859,7 +918,8 @@ fi
A command line example A command line example
''' '''
$ ls $ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml >README.md scripts templates build chapters conf filters lib LICENSE.md Makefile
metadata.yaml >README.md scripts templates
''' '''
\end{verbatim} \end{verbatim}
@ -872,208 +932,168 @@ A command line example
\begin{verbatim} \begin{verbatim}
$ ls $ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates build chapters conf filters lib LICENSE.md Makefile
metadata.yaml README.md scripts templates
\end{verbatim} \end{verbatim}
\end{clibox} \end{clibox}
\appendix \section{Advanced}\label{advanced}
Appendix A \subsection{Changing Fonts}\label{changing-fonts}
\chapter{Appendix A: Build Environment It is possible to change fonts by editing
Notes}\label{appendix-a-build-environment-notes} \texttt{templates/pandoc.yaml}, and
\texttt{templates\textbackslash{}styles.css}, but you will have to make
sure you have the proper font's installed on your system first.
\section{Installing Pre-Requisites}\label{installing-pre-requisites} \subsection{Adding Filters}\label{adding-filters}
\begin{cautionbox}[Not Cross-platform Tested] Custom filters can be created. This is complicated and typically needs
For Debian / ZorinOS and likely Ubuntu based systems. done in 3 places for:
\begin{itemize}
\tightlist
\item
obsidian
\item
\emph{LaTeX}
\item
HTML
\end{itemize}
\chapter{Design}\label{design}
\section{Directory Structure}\label{directory-structure}
The \textbf{basic-book-builder} directory tree.
\begin{verbatim}
basic-book-builder
├── build
│   ├── docx
│   ├── html
│   │   ├── conf
│   │   └── lib
│   │   ├── diag
│   │   ├── img
│   │   └── mathjax
│   ├── latex
│   ├── odt
│   └── pdf
├── chapters
├── conf
├── filters
├── lib
│   ├── citations
│   ├── diag
│   ├── img
│   └── mathjax
├── scripts
│   └── tmp
└── templates
\end{verbatim}
\section{Configuration Files}\label{configuration-files}
The \textbf{basic-book-builder} configuration files, scripts, and build
files.
\begin{verbatim}
../basic-book-builder
├── chapters
├── conf
├── filters
│   ├── callouts-html.lua
│   └── callouts.lua
├── lib
│   ├── diag
│   ├── img
│   └── zotero.bib
├── Makefile
├── metadata.yaml
├── scripts
│   ├── new-project.sh
│   ├── replace-metadata.sh
│   ├── setup-linux-deb.sh
│   └── tmp
└── templates
├── docx.yaml
├── epub_template.html
├── epub.yaml
├── frontmatter-docx.md
├── frontmatter.html
├── frontmatter-md.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── odt.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css
\end{verbatim}
\begin{cautionbox}[About conf]
NEVER: edit file directly in \texttt{conf}. They will be overwritten by
the build process. \#\#\# Metadata
\end{cautionbox} \end{cautionbox}
\subsection{Required}\label{required} Update the \texttt{metadata.yaml} file to globally configure your
document title and other metadata. Edit this file to control your
document title, author, etc.
\subsubsection{Pandoc}\label{pandoc} \subsection{Pandoc Main Config}\label{pandoc-main-config}
\begin{itemize} Update the \texttt{input-files:} section of
\texttt{templates/pandoc.yaml} to control what chapter source files are
in which order in your document.
\begin{verbatim}
# pandoc.yaml
input-files:
# - chapters/Preface.md
- chapters/00_Introduction.md
- chapters/01_Getting_Started.md
- chapters/02_Usage.md
- chapters/03_Features.md
- chapters/Appendix.md
- chapters/AppendixA.md
# - chapters/AppendixB.md
- chapters/Glossary.md
- chapters/Index.md
- chapters/Bibliography.md
\end{verbatim}
\section{Build Workflow}\label{build-workflow}
For a PDF Build:
\begin{verbatim}
make pdf
\end{verbatim}
will build dependencies on these file:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist \tightlist
\item \item
https://pandoc.org/ Makefile
\item \item
\href{https://github.com/jgm/pandoc/releases/tag/3.8.2.1}{Download} conf/pandoc.yaml
\end{itemize}
\begin{quote}
\texttt{sudo\ apt\ install\ https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb}
\end{quote}
\subsubsection{Code Editor}\label{code-editor}
\begin{establishedbox}[Code Editor]
\href{https://vscodium.com/}{VSCodium} is recommend for privacy
(telemetry/tracking) reasons - https://vscodium.com/
\end{establishedbox}
But any text editor will work. \#\#\#\# make
\begin{verbatim}
sudo apt install make
\end{verbatim}
\subsubsection{jq and yq}\label{jq-and-yq}
\begin{verbatim}
sudo apt install jq yq
\end{verbatim}
\subsubsection{texlive}\label{texlive}
\begin{quote}
\texttt{sudo\ apt\ install\ texlive\ texlive-xetex\ texlive-latex-extra\ texlive-fonts-recommended\ texlive-fonts-extra}
\end{quote}
\subsubsection{MathJax}\label{mathjax}
\begin{itemize}
\tightlist
\item \item
https://www.mathjax.org/ conf/pdf.yaml
\end{itemize}
\begin{verbatim}
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
\end{verbatim}
\begin{cautionbox}[TODO]
This need to be rolled into a setup script.
\end{cautionbox}
\subsection{Optional}\label{optional}
The following are not strictly requires to use this book builder
template.
\subsubsection{Obsidian}\label{obsidian}
\begin{establishedbox}[Highly Recommended]
Editing book chapter content in Obsidian is a very productive means for
editing Markdown source content.
\end{establishedbox}
\begin{itemize}
\tightlist
\item \item
https://obsidian.md/ lib/zotero.bib
\item \item
\href{https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb}{Deb chapters/*.md
Package} \end{enumerate}
\end{itemize}
\begin{verbatim} NOTE: the \texttt{Makefile} will copy \texttt{templates/*.yaml} to
sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb \texttt{conf/*.yaml}. \textbf{Never} edit \texttt{conf/*}directly.
\end{verbatim}
\subsubsection{Zotero}\label{zotero}
\begin{establishedbox}[Highly Recommended]
If you need to managed citations and references, Zotero integration is
highly recommended.
\end{establishedbox}
\begin{itemize}
\tightlist
\item
https://www.zotero.org/
\end{itemize}
\begin{verbatim}
sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/
\end{verbatim}
\begin{verbatim}
sudo apt update
\end{verbatim}
\begin{verbatim}
sudo apt install zotero
\end{verbatim}
\paragraph{Better BibTex for Zotero}\label{better-bibtex-for-zotero}
Install the Better BibTex Plugin for Zotero - Zotero \textgreater{} Tool
\textgreater{} Plugins
\paragraph{Export citations.bib}\label{export-citations.bib}
\begin{itemize}
\tightlist
\item
Zotero \textgreater{} File \textgreater{} Export Library
\textgreater{} Format: Better BibTeX
\item[$\square$]
Keep Updated
\item[$\square$]
Save to: \textasciitilde/Documents/Lib/zotero.bib
\item[$\square$]
Symlink your \textasciitilde/Documents/Lib/Citations.bib to
basic-book-builder/lib/zotero.bib
\end{itemize}
\paragraph{Zotero Connector Browser
Plugin}\label{zotero-connector-browser-plugin}
\begin{itemize}
\tightlist
\item
https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc
\end{itemize}
Provides you the ability to auto add Web resources to your Zotero
citation database.
\subsubsection{lmodern}\label{lmodern}
\begin{verbatim}
sudo apt install lmodern
\end{verbatim}
\subsubsection{epubcheck}\label{epubcheck}
\begin{verbatim}
sudo apt install epubcheck
\end{verbatim}
\subsubsection{foliate}\label{foliate}
An EPub Reader
\begin{itemize}
\tightlist
\item
https://johnfactotum.github.io/foliate/
\end{itemize}
\begin{verbatim}
sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb
\end{verbatim}
\subsubsection{calibre}\label{calibre}
An EPub Reader
\begin{itemize}
\tightlist
\item
https://calibre-ebook.com
\end{itemize}
\begin{verbatim}
sudo apt install calibre
\end{verbatim}
\section{Editing the Configuration}\label{editing-the-configuration}
\backmatter \backmatter
@ -1186,18 +1206,6 @@ Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.
\bibitem[\citeproctext]{ref-PandocIndex} \bibitem[\citeproctext]{ref-PandocIndex}
\emph{Pandoc - Index}. n.d. Https://pandoc.org/. \emph{Pandoc - Index}. n.d. Https://pandoc.org/.
\bibitem[\citeproctext]{ref-JehaverlackBasicbookbuilderPandoca}
\emph{Jehaverlack/Basic-Book-Builder: {A Pandoc} Workflow for Building
{PDF}, {HTML}, {EPUB}, and {LaTeX} Book Format.} n.d.
Https://github.com/jehaverlack/basic-book-builder.
\bibitem[\citeproctext]{ref-JohnHaverlackACEP}
\emph{John {Haverlack} \textbar{} {ACEP}}. n.d.
Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.
\bibitem[\citeproctext]{ref-PandocIndex}
\emph{Pandoc - Index}. n.d. Https://pandoc.org/.
\end{CSLReferences} \end{CSLReferences}
\backmatter \backmatter

View File

@ -1,57 +1,46 @@
\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}% \contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}%
\contentsline {subsection}{\numberline {1.0.1}Workflow}{1}{subsection.1.0.1}%
\contentsline {chapter}{\numberline {2}Getting Started}{2}{chapter.2}% \contentsline {chapter}{\numberline {2}Getting Started}{2}{chapter.2}%
\contentsline {section}{\numberline {2.1}Cloning the Basic Book Builder}{2}{section.2.1}% \contentsline {section}{\numberline {2.1}Clone the Basic Book Builder}{2}{section.2.1}%
\contentsline {section}{\numberline {2.2}Setting Up Build Environment}{2}{section.2.2}% \contentsline {section}{\numberline {2.2}Setting Up Build Environment}{2}{section.2.2}%
\contentsline {section}{\numberline {2.3}Testing}{2}{section.2.3}% \contentsline {subsection}{\numberline {2.2.1}Non deb systems}{3}{subsection.2.2.1}%
\contentsline {section}{\numberline {2.3}Testing}{3}{section.2.3}%
\contentsline {section}{\numberline {2.4}Creating a New Project}{3}{section.2.4}% \contentsline {section}{\numberline {2.4}Creating a New Project}{3}{section.2.4}%
\contentsline {subsection}{\numberline {2.4.1}Zotero Configuration (Optional)}{3}{subsection.2.4.1}% \contentsline {section}{\numberline {2.5}Building}{4}{section.2.5}%
\contentsline {chapter}{\numberline {3}Usage}{4}{chapter.3}% \contentsline {subsection}{\numberline {2.5.1}PDF}{4}{subsection.2.5.1}%
\contentsline {section}{\numberline {3.1}Creating a Project}{4}{section.3.1}% \contentsline {subsection}{\numberline {2.5.2}HTML}{4}{subsection.2.5.2}%
\contentsline {section}{\numberline {3.2}Editing Content}{4}{section.3.2}% \contentsline {subsection}{\numberline {2.5.3}DocX}{4}{subsection.2.5.3}%
\contentsline {section}{\numberline {3.3}Building}{4}{section.3.3}% \contentsline {subsection}{\numberline {2.5.4}ODT}{4}{subsection.2.5.4}%
\contentsline {subsection}{\numberline {3.3.1}PDF}{4}{subsection.3.3.1}% \contentsline {subsection}{\numberline {2.5.5}Make All}{4}{subsection.2.5.5}%
\contentsline {subsection}{\numberline {3.3.2}HTML}{5}{subsection.3.3.2}% \contentsline {chapter}{\numberline {3}Features}{5}{chapter.3}%
\contentsline {subsection}{\numberline {3.3.3}DocX}{5}{subsection.3.3.3}% \contentsline {section}{\numberline {3.1}Metadata}{5}{section.3.1}%
\contentsline {subsection}{\numberline {3.3.4}ODT}{5}{subsection.3.3.4}% \contentsline {section}{\numberline {3.2}Front-matter}{5}{section.3.2}%
\contentsline {subsection}{\numberline {3.3.5}Make All}{5}{subsection.3.3.5}% \contentsline {subsection}{\numberline {3.2.1}Meta Data Page}{5}{subsection.3.2.1}%
\contentsline {chapter}{\numberline {4}Features}{6}{chapter.4}% \contentsline {subsection}{\numberline {3.2.2}Cover Illustration}{5}{subsection.3.2.2}%
\contentsline {section}{\numberline {4.1}Metadata}{6}{section.4.1}% \contentsline {subsection}{\numberline {3.2.3}Dedication}{6}{subsection.3.2.3}%
\contentsline {section}{\numberline {4.2}Front-matter}{6}{section.4.2}% \contentsline {section}{\numberline {3.3}Table of Contents}{6}{section.3.3}%
\contentsline {subsection}{\numberline {4.2.1}Meta Data Page}{6}{subsection.4.2.1}% \contentsline {section}{\numberline {3.4}Chapters}{6}{section.3.4}%
\contentsline {subsection}{\numberline {4.2.2}Cover Illustration}{6}{subsection.4.2.2}% \contentsline {section}{\numberline {3.5}Appendixes}{6}{section.3.5}%
\contentsline {subsection}{\numberline {4.2.3}Dedication}{7}{subsection.4.2.3}% \contentsline {section}{\numberline {3.6}Glossary}{6}{section.3.6}%
\contentsline {section}{\numberline {4.3}Chapters}{7}{section.4.3}% \contentsline {section}{\numberline {3.7}Index}{6}{section.3.7}%
\contentsline {section}{\numberline {4.4}Appendixes}{7}{section.4.4}% \contentsline {subsection}{\numberline {3.7.1}Markdown Indexes}{6}{subsection.3.7.1}%
\contentsline {section}{\numberline {4.5}Glossary}{7}{section.4.5}% \contentsline {section}{\numberline {3.8}Bibliography}{7}{section.3.8}%
\contentsline {section}{\numberline {4.6}Index}{7}{section.4.6}% \contentsline {subsection}{\numberline {3.8.1}Zotero Integration}{7}{subsection.3.8.1}%
\contentsline {subsection}{\numberline {4.6.1}Markdown Indexes}{7}{subsection.4.6.1}% \contentsline {subsection}{\numberline {3.8.2}Obsidian Citations}{7}{subsection.3.8.2}%
\contentsline {section}{\numberline {4.7}Bibliography}{7}{section.4.7}% \contentsline {section}{\numberline {3.9}Images}{7}{section.3.9}%
\contentsline {subsection}{\numberline {4.7.1}Zotero Integration}{7}{subsection.4.7.1}% \contentsline {section}{\numberline {3.10}\emph {LaTeX} Equations}{7}{section.3.10}%
\contentsline {subsection}{\numberline {4.7.2}Obsidian Citations}{8}{subsection.4.7.2}% \contentsline {subsection}{\numberline {3.10.1}Left Justified / Inline}{7}{subsection.3.10.1}%
\contentsline {section}{\numberline {4.8}Mathjax Equations}{8}{section.4.8}% \contentsline {subsection}{\numberline {3.10.2}Centered}{8}{subsection.3.10.2}%
\contentsline {subsection}{\numberline {4.8.1}Left Justified / Inline}{8}{subsection.4.8.1}% \contentsline {section}{\numberline {3.11}Custom Markdown}{8}{section.3.11}%
\contentsline {subsection}{\numberline {4.8.2}Centered}{8}{subsection.4.8.2}% \contentsline {subsection}{\numberline {3.11.1}Call-outs}{8}{subsection.3.11.1}%
\contentsline {section}{\numberline {4.9}Custom Markdown}{8}{section.4.9}% \contentsline {section}{\numberline {3.12}Advanced}{11}{section.3.12}%
\contentsline {subsection}{\numberline {4.9.1}Call-outs}{8}{subsection.4.9.1}% \contentsline {subsection}{\numberline {3.12.1}Changing Fonts}{11}{subsection.3.12.1}%
\contentsline {chapter}{\numberline {A}Appendix A: Build Environment Notes}{12}{appendix.A}% \contentsline {subsection}{\numberline {3.12.2}Adding Filters}{11}{subsection.3.12.2}%
\contentsline {section}{\numberline {A.1}Installing Pre-Requisites}{12}{section.A.1}% \contentsline {chapter}{\numberline {4}Design}{12}{chapter.4}%
\contentsline {subsection}{\numberline {A.1.1}Required}{12}{subsection.A.1.1}% \contentsline {section}{\numberline {4.1}Directory Structure}{12}{section.4.1}%
\contentsline {subsubsection}{\numberline {A.1.1.1}Pandoc}{12}{subsubsection.A.1.1.1}% \contentsline {section}{\numberline {4.2}Configuration Files}{12}{section.4.2}%
\contentsline {subsubsection}{\numberline {A.1.1.2}Code Editor}{12}{subsubsection.A.1.1.2}% \contentsline {subsection}{\numberline {4.2.1}Pandoc Main Config}{14}{subsection.4.2.1}%
\contentsline {subsubsection}{\numberline {A.1.1.3}jq and yq}{12}{subsubsection.A.1.1.3}% \contentsline {section}{\numberline {4.3}Build Workflow}{14}{section.4.3}%
\contentsline {subsubsection}{\numberline {A.1.1.4}texlive}{12}{subsubsection.A.1.1.4}% \contentsline {chapter}{Glossary}{15}{chapter*.2}%
\contentsline {subsubsection}{\numberline {A.1.1.5}MathJax}{13}{subsubsection.A.1.1.5}% \contentsline {chapter}{Index}{17}{chapter*.3}%
\contentsline {subsection}{\numberline {A.1.2}Optional}{13}{subsection.A.1.2}% \contentsline {chapter}{Bibliography}{19}{chapter*.4}%
\contentsline {subsubsection}{\numberline {A.1.2.1}Obsidian}{13}{subsubsection.A.1.2.1}%
\contentsline {subsubsection}{\numberline {A.1.2.2}Zotero}{13}{subsubsection.A.1.2.2}%
\contentsline {paragraph}{\numberline {A.1.2.2.1}Better BibTex for Zotero}{14}{paragraph.A.1.2.2.1}%
\contentsline {paragraph}{\numberline {A.1.2.2.2}Export citations.bib}{14}{paragraph.A.1.2.2.2}%
\contentsline {paragraph}{\numberline {A.1.2.2.3}Zotero Connector Browser Plugin}{14}{paragraph.A.1.2.2.3}%
\contentsline {subsubsection}{\numberline {A.1.2.3}lmodern}{14}{subsubsection.A.1.2.3}%
\contentsline {subsubsection}{\numberline {A.1.2.4}epubcheck}{14}{subsubsection.A.1.2.4}%
\contentsline {subsubsection}{\numberline {A.1.2.5}foliate}{14}{subsubsection.A.1.2.5}%
\contentsline {subsubsection}{\numberline {A.1.2.6}calibre}{14}{subsubsection.A.1.2.6}%
\contentsline {section}{\numberline {A.2}Editing the Configuration}{14}{section.A.2}%
\contentsline {chapter}{Glossary}{15}{appendix*.2}%
\contentsline {chapter}{Index}{17}{appendix*.3}%
\contentsline {chapter}{Bibliography}{19}{appendix*.4}%

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,24 @@
# Introduction # Introduction
This is a basic book (or article / document) builder template based on a Pandoc[@PandocIndex]\index{Pandoc} build process in conjunction with a number of other tools to generate PDF, HTML, LaTex, Markdown, ODT, DOCX, and Epub book output formats from a single set Markdown source content , which can optionally be edited as an Obsidian vault. This is a **basic book builder** template is based on a Pandoc[@PandocIndex]\index{Pandoc} + Makefile build process in conjunction Obsidian to edit content and Zotero to manage citation, to generate multiple format of the document including:
- PDF
- HTML
- *LaTeX*
- Markdown
- ODT
- DOCX
- Epub
### Workflow
1. Create a new project
2. Initialize `metadata.yaml` with title, copyright, author, etc.
3. Customize `input-files:` in `pandoc.yaml`
4. Edit `chapters` Markdown "conent" files using Obidian
5. Build your document
This **basic book builder**[@JehaverlackBasicbookbuilderPandoca] template has been curated by John Haverlack.[@JohnHaverlackACEP] This **basic book builder**[@JehaverlackBasicbookbuilderPandoca] template has been curated by John Haverlack.[@JohnHaverlackACEP]

View File

@ -1,6 +1,6 @@
# Getting Started # Getting Started
## Cloning the Basic Book Builder ## Clone the Basic Book Builder
> [!cli] Clone the repository > [!cli] Clone the repository
@ -18,35 +18,99 @@
> [!caution] ~Debian Linux > [!caution] ~Debian Linux
> This script only support Debian based Linux system (Debian, Ubunutu, Zorin, etc) > This script only support Debian based Linux system (e.g Debian, Ubuntu, Zorin). And this script will install several ATP packages on your system.
> This script has not been widely tested across platforms
> [!danger] Warning
This script **has not** been widely tested across many platforms
To initialize your systems build environment run:
> [!cli] Setup Build Environment > [!cli] Setup Build Environment
> ``` > ```
> ./scripts/setup-linux-deb.sh > ./scripts/setup-linux-deb.sh
> ``` > ```
For more information on setting up the build environment for your system see Appendix A. ### Non deb systems
For more information on setting up the build environment for your system see: **TBD: NEEDS DOCUMENTED**.
## Testing ## Testing
Once you have set up your build environment, you test by building the **basic book builder**.
If you can build all format for the **Basic Book Build** then you have a working build environment.
> [!cli] Testing Build Environment > [!cli] Testing Build Environment
> ``` > ```
> make all > make all
> ``` > ```
## Creating a New Project ## Creating a New Project
### Zotero Configuration (Optional) > [!proposed] Tip
> You do not want to edit your new project document in the `basic-book-builder` directory. You will want to create a **new project** for your document based on this template.
> [!cli] Create a new project
> ```
> ./scripts/new-project.sh <NEW_PROJECT_DIR>
> ```
```
cd <NEW_PROJECT_DIR>
```
Update your project configuration:
1. Edit: `metadata.yaml`, for title, author, etc
2. Edit: `templates/pandoc.yaml`
3. Open: `<NEW_PROJECT_DIR>` with Obsidian, and edit `chapters` documents.
4. Build: `make pdf`
> [!warning] Warning
> `<NEW_PROJECT_DIR>` should be outside of the **basic-book-builder** directory
## Building
### PDF
```
make pdf
```
> NOTE: Building the PDF also builds the **LaTeX** version of the book.
### HTML
```
make html
```
### DocX
```
make docx
```
> NOTE: DocX is a work in progress. Frontmatter and formatting need work.
### ODT
```
make odt
```
> NOTE: ODT is a work in progress. Frontmatter and formatting need work.
### Make All
To build all supported formats
```
make all
```

View File

@ -1,4 +1,4 @@
# Usage # Basic Usage
## Creating a Project ## Creating a Project

View File

@ -1,30 +1,27 @@
# Features # Features
The basic book builder template integrates feature from many systems including Pandoc, MathJax, Obsidian, and Zotero. The following list covers these features from a functional point of view.
## Metadata ## Metadata
Metadata for the project is managed in `metadata.yaml`. Edit this file to make global changes to variables for your document. Changes here will propagate to all format builds. Metadata for the project is managed in `metadata.yaml`. Edit this file to make **global changes** to variables for your document. Definitions in `metadata.yaml` will propagate to all format builds.
## Front-matter ## Front-matter
Front matter content is manged in: Front-Matter documents control the Title Page, Metadata and other pages before the Title of Contents. Front matter content is manged in these files:
- `templates/frontmatter.tex` - `templates/frontmatter.tex`
- `templates/frontmatter.html` - `templates/frontmatter.html`
- `templates/frontmatter-md.html` - `templates/frontmatter-md.html`
Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats.
> [!caution] Tip
Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats.
### Title Page ### Title Page
Edit the **Front-matter** files to modify the formatting of the Title Page. Edit the **Front-matter** files to modify the formatting of the Title Page. You'll need to modify the HTML / LaTex code.
> [!caution] Tip
> You'll need to modify the HTML / LaTex.
### Meta Data Page ### Meta Data Page
Edit the **Front-matter** files to modify the 2nd page Metadata format. Edit the **Front-matter** files to modify the 2nd page Metadata format and fields to display.
### Cover Illustration ### Cover Illustration
@ -34,15 +31,21 @@ Edit the **Front-matter** files to optionally un-comment the Cover Art Acknowled
### Dedication ### Dedication
Edit the **Front-matter** files to modify un-comment the Book Dedication. Edit the **Front-matter** files to modify un-comment the Book Dedication.
- This is disabled by default - This is disabled by default
## Table of Contents ## Table of Contents
The table of contents is auto generated. But can be disabled in `template\pandoc.yaml` by setting:
- `toc: false`
## Chapters ## Chapters
Chapter Markdown source files are located in the `chapters` directory. Edit the `template\pandoc.yaml` file to control which chapter markdown files are in what order. Chapter Markdown source files are located in the `chapters` directory. To edit which chapter files are included the document:
- Edit the `input-file:` section of the `template\pandoc.yaml`
## Appendixes ## Appendixes
@ -72,22 +75,58 @@ TBD
TBD TBD
## Mathjax Equations ## Images
TBD You can use basic Markdown Images
```
![ACEP](lib/img/ACEPLogo.png)
```
![ACEP](lib/img/ACEPLogo.png)
## *LaTeX* Equations
You can embed LaTeX equations directly in your Markdown pages.
### Left Justified / Inline ### Left Justified / Inline
TBD To left justify *LaTex* surround the code inside single `$`:
> [!code] Left Justified Equation
> ```
> $x = \frac{1}{2}$
> ```
$x = \frac{1}{2}$
> [!code] Inline
> ```
> Or inline, $x = \frac{1}{2}$, in a sentence.
> ```
Or inline, $x = \frac{1}{2}$, in a sentence.
### Centered ### Centered
TBD To center justify *LaTex* surround the code inside double `$$`:
> [!code] Centered Equation
> ```
> $$x = \frac{1}{2}$$
> ```
$$x = \frac{1}{2}$$
## Custom Markdown ## Custom Markdown
TBD
### Call-outs ### Call-outs
A few call-out box styles have been custom added to easily highlight certain types of content. A few call-out box styles have been custom added to easily highlight certain types of content.
@ -118,19 +157,6 @@ Will render:
--- ---
> [!code] Markdown Example
> ```
> [!info] Info Box
> Same as a blue box
> ```
Will render:
> [!info] Info Box
> Same as a blue box
---
> [!code] Markdown Example > [!code] Markdown Example
> ``` > ```
> [!speculative] Purple Call-out Title > [!speculative] Purple Call-out Title
@ -210,7 +236,8 @@ Will render:
> A command line example > A command line example
>''' >'''
>$ ls >$ ls
>build chapters conf filters lib LICENSE.md Makefile metadata.yaml >README.md scripts templates >build chapters conf filters lib LICENSE.md Makefile
>metadata.yaml >README.md scripts templates
> ''' > '''
> ``` > ```
@ -220,7 +247,8 @@ Will render:
> A command line example > A command line example
> ``` > ```
> $ ls > $ ls
> build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates > build chapters conf filters lib LICENSE.md Makefile
> metadata.yaml README.md scripts templates
> ``` > ```
@ -228,11 +256,15 @@ Will render:
### Changing Fonts ### Changing Fonts
TBD It is possible to change fonts by editing `templates/pandoc.yaml`, and `templates\styles.css`, but you will have to make sure you have the proper font's installed on your system first.
### Adding Filters ### Adding Filters
TBD Custom filters can be created. This is complicated and typically needs done in 3 places for:
- obsidian
- *LaTeX*
- HTML

View File

@ -2,6 +2,8 @@
## Directory Structure ## Directory Structure
The **basic-book-builder** directory tree.
``` ```
basic-book-builder basic-book-builder
├── build ├── build
@ -30,6 +32,7 @@ basic-book-builder
## Configuration Files ## Configuration Files
The **basic-book-builder** configuration files, scripts, and build files.
``` ```
../basic-book-builder ../basic-book-builder
@ -70,9 +73,11 @@ basic-book-builder
``` ```
> [!caution] About conf
> NEVER: edit file directly in `conf`. They will be overwritten by the build process.
### Metadata ### Metadata
Update the `metadata.yaml` file to globally configure your document title and other metadata. Update the `metadata.yaml` file to globally configure your document title and other metadata. Edit this file to control your document title, author, etc.
### Pandoc Main Config ### Pandoc Main Config
@ -92,46 +97,22 @@ input-files:
- chapters/Glossary.md - chapters/Glossary.md
- chapters/Index.md - chapters/Index.md
- chapters/Bibliography.md - chapters/Bibliography.md
from: markdown+yaml_metadata_block+raw_tex
standalone: true
metadata:
mainfont: "Noto Serif"
sansfont: "Noto Sans"
monofont: "Noto Sans Mono"
# mainfont: "Libertinus Serif"
# sansfont: "Libertinus Sans"
# monofont: "DejaVu Sans Mono"
date: "" # <-- forces maketitle to exist, but blank
link-citations: true
variables:
documentclass: book # options: report, book, article
fontsize: 12pt
geometry:
- margin=1in
toc: true # ✅ Pandoc-recognized variable
toc-depth: 3 # ✅ nested inside variables
toc-title: "Contents" # ✅ controls TOC heading
numbersections: true # ✅ correct key (not number-sections)
colorlinks: true # nice PDF hyperlinks
linkcolor: blue
graphics: true
float: false
figure-latex-placement: H
# suppress-chapter: true
resource-path:
- .
- lib/img
- lib/diag
citeproc: true
bibliography: lib/zotero.bi
``` ```
## Build Workflow ## Build Workflow
TBD For a PDF Build:
```
make pdf
```
will build dependencies on these file:
1. Makefile
2. conf/pandoc.yaml
3. conf/pdf.yaml
4. lib/zotero.bib
5. chapters/*.md
NOTE: the `Makefile` will copy `templates/*.yaml` to `conf/*.yaml`. **Never** edit `conf/*`directly.

View File

@ -60,36 +60,3 @@ To insert a Zotero Citation
- Alt + I (to insert citation) - Alt + I (to insert citation)
- Search for and select citation reference - 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
```

View File

@ -4,5 +4,3 @@
# Bibliography {-} # Bibliography {-}
::: {#refs .references}
:::

View File

@ -1,11 +1,11 @@
# Title # Title
title: "Basic Book Builder" title: "Basic Book Builder"
subtitle: "A Pandoc build process for books, docs and articles" subtitle: "A Pandoc build process for books, docs and articles."
name: "basic-book-builder" name: "basic-book-builder"
logo: "lib/img/UAF-ACEP.png" logo: "lib/img/UAF-ACEP.png"
# Version / Repo # Version / Repo
version: "1.2.2" version: "1.2.3"
date: "2026-02-05" date: "2026-02-05"
state: "BETA" state: "BETA"
source: "https://github.com/jehaverlack/basic-book-builder" source: "https://github.com/jehaverlack/basic-book-builder"

View File

@ -45,4 +45,3 @@ resource-path:
- lib/img - lib/img
- lib/diag - lib/diag
citeproc: true

View File

@ -3,10 +3,11 @@ input-files:
# - chapters/Preface.md # - chapters/Preface.md
- chapters/00_Introduction.md - chapters/00_Introduction.md
- chapters/01_Getting_Started.md - chapters/01_Getting_Started.md
- chapters/02_Usage.md # - chapters/02_Usage.md
- chapters/03_Features.md - chapters/03_Features.md
- chapters/Appendix.md - chapters/04_Design.md
- chapters/AppendixA.md # - chapters/Appendix.md
# - chapters/AppendixA.md
# - chapters/AppendixB.md # - chapters/AppendixB.md
- chapters/Glossary.md - chapters/Glossary.md
- chapters/Index.md - chapters/Index.md
@ -27,8 +28,8 @@ metadata:
link-citations: true link-citations: true
variables: variables:
documentclass: book # options: report, book, article documentclass: extbook # options: report, book, article
fontsize: 12pt fontsize: 9pt
geometry: geometry:
- margin=1in - margin=1in
toc: true # ✅ Pandoc-recognized variable toc: true # ✅ Pandoc-recognized variable