diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index df1b445..6f053a4 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,51 +4,24 @@ "type": "split", "children": [ { - "id": "c327dc0e927bf66a", - "type": "split", + "id": "2d8c08f76d34c644", + "type": "tabs", "children": [ { - "id": "f0990ffd7a67a2ec", - "type": "tabs", - "children": [ - { - "id": "9f4cd104c7d85619", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "chapters/03_Features.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "03_Features" - } - } - ] - }, - { - "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" - } - } - ] + "id": "24988c076d2f30d6", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "chapters/04_Design.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "04_Design" + } } - ], - "direction": "horizontal" + ] } ], "direction": "vertical" @@ -279,7 +252,8 @@ } ], "direction": "horizontal", - "width": 200 + "width": 200, + "collapsed": true }, "left-ribbon": { "hiddenItems": { @@ -294,33 +268,35 @@ "obsidian-kanban:Create new board": false } }, - "active": "8fb585e598f88138", + "active": "24988c076d2f30d6", "lastOpenFiles": [ - "README.md", - "conf/sedTQLO9w", - "chapters/02_Usage.md", + "conf/sedufgozC", + "conf/sedQ287QU", + "conf/sedq3LRZz", "chapters/03_Features.md", - "chapters/Appendix.md", - "conf/sedkKV6c0", - "conf/sedAqcSmo", - "conf/sedk8YBK0", - "conf/sedzF3xOr", - "conf/sedtZNObL", - "chapters/AppendixB.md", - "chapters/Bibliography.md", - "chapters/AppendixA.md", - "conf/sed6ZdLUq", - "chapters/04_Design.md", + "conf/sedtBb3Os", + "conf/sedRcZh0D", + "conf/sed1CDdq2", + "conf/sedzZKUYL", + "conf/sedGlYwid", + "conf/sedB61nJB", + "conf/sedkPk5Sn", + "conf/seddNGzeb", "chapters/01_Getting_Started.md", - "conf/sedBapyXA", - "conf/sedYZ2rBJ", - "conf/sedbEPwZC", + "chapters/02_Usage.md", + "chapters/Bibliography.md", + "chapters/Index.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", "templates/frontmatter-docx.md", "chapters/02_Features.md", "chapters/Preface.md", - "chapters/Index.md", "chapters/Glossary.md", "lib/img/unit-circle-with-tau.png", "lib/img/unit-circle-with-pi.png.png", @@ -339,7 +315,6 @@ "build/basic-book-builder.md", "LICENSE.md", "pm/Book Action Items.md", - "chapters/Unitfication.md", - "chapters/03_Cylindrical_Spacetime.md" + "chapters/Unitfication.md" ] } \ No newline at end of file diff --git a/README.md b/README.md index ddc5231..9657820 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ | **Author** | John Haverlack | | **Copyright** | 2026 John Haverlack | | **License** | CC BY-ND 4.0 | -| **Version** | 1.2.2 | +| **Version** | v1.2.3 | | **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. diff --git a/build/docx/basic-book-builder.docx b/build/docx/basic-book-builder.docx index d4c92ee..ba06182 100644 Binary files a/build/docx/basic-book-builder.docx and b/build/docx/basic-book-builder.docx differ diff --git a/build/html/basic-book-builder.html b/build/html/basic-book-builder.html index d4a9e34..4cd3698 100644 --- a/build/html/basic-book-builder.html +++ b/build/html/basic-book-builder.html @@ -51,7 +51,7 @@

Basic Book Builder

-

A Pandoc build process for books, docs and articles

+

A Pandoc build process for books, docs and articles.

Cover illustration @@ -64,12 +64,12 @@

Basic Book Builder

- A Pandoc build process for books, docs and articles + A Pandoc build process for books, docs and articles. - + @@ -130,31 +130,25 @@ window.MathJax = {

Introduction

-

This is a basic book (or article / document) builder template based -on a Pandoc(This is a basic book builder template is based on a +Pandoc(Pandoc - Index, -n.d.) 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.

+n.d.) + Makefile build process in conjunction Obsidian to +edit content and Zotero to manage citation, to generate multiple format +of the document including:

+ +

Workflow

+
    +
  1. Create a new project
  2. +
  3. Initialize metadata.yaml with title, copyright, author, +etc.
  4. +
  5. Customize input-files: in pandoc.yaml
  6. +
  7. Edit chapters Markdown “conent” files using +Obidian
  8. +
  9. Build your document
  10. +

This basic book builder((John Haverlack ACEP, n.d.)

Getting Started

-

Cloning the Basic Book -Builder

+

Clone the Basic Book Builder

Clone the repository

git clone https://github.com/jehaverlack/basic-book-builder.git
@@ -251,56 +272,56 @@ Builder

Setting Up Build Environment

~Debian Linux

-

This script only support Debian based Linux system (Debian, Ubunutu, -Zorin, etc) This script has not been widely tested across platforms

+

This script only support Debian based Linux system (e.g Debian, +Ubuntu, Zorin). And this script will install several ATP packages on +your system.

+
+

Warning

+

This script has not been widely tested across many +platforms

+
+

To initialize your systems build environment run:

Setup Build Environment

./scripts/setup-linux-deb.sh
+

Non deb systems

For more information on setting up the build environment for your -system see Appendix A.

+system see: TBD: NEEDS DOCUMENTED.

Testing

-

If you can build all format for the Basic Book Build -then you have a working build environment.

+

Once you have set up your build environment, you test by building the +basic book builder.

Testing Build Environment

make all

Creating a New Project

-

Zotero Configuration -(Optional)

-

Usage

-

Creating a Project

-

To create a new Project based on the Basic Book Builder template:

-
    -
  1. Run the new-project.sh script.
  2. -
-
./scripts/new-project.sh <PATH_TO_PROJECT>
-
    -
  • should be outside of the -basic-book-builder directory
  • -
-
cd <PATH_TO_PROJECT>
-

Update:

-
    -
  1. metadata.yaml
  2. -
  3. templates/pandoc.yaml
  4. -
-
-

Suggestion

-

Create a git repository to version control your new - content.

+
+

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.

+
+
+

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. +
  3. Edit: templates/pandoc.yaml
  4. +
  5. Open: <NEW_PROJECT_DIR> with Obsidian, and edit +chapters documents.
  6. +
  7. Build: make pdf
  8. +
+
+

Warning

+

<NEW_PROJECT_DIR> should be outside of the +basic-book-builder directory

-

Editing Content

-

Edit your source content Markdown under the chapters -directory.

-

Optional

-
    -
  • Open your <PATH_TO_PROJECT> directory as an -Obsidian vault.
  • -
  • Edit your Markdown with Obsidian
  • -

Building

PDF

make pdf
@@ -326,31 +347,30 @@ work.

To build all supported formats

make all

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 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.

+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 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.html
  • templates/frontmatter-md.html
-
-

Tip

-

Unfortunately when you edit one, you need to edit the respective +

Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats. ### Title Page

-

Edit the Front-matter files to modify the formatting -of the Title Page.

-
-

Tip

-

You’ll need to modify the HTML / LaTex.

-
+of the Title Page. You’ll need to modify the HTML / LaTex code.

Meta Data Page

Edit the Front-matter files to modify the 2nd page -Metadata format.

+Metadata format and fields to display.

Cover Illustration

Edit the Front-matter files to optionally un-comment the Cover Art Acknowledgement.

@@ -361,13 +381,20 @@ the Cover Art Acknowledgement.

Edit the Front-matter files to modify un-comment the Book Dedication.

    -
  • This is disabled by default ## Table of Contents
  • +
  • This is disabled by default
+

Table of Contents

+

The table of contents is auto generated. But can be disabled in +template\pandoc.yaml by setting: - +toc: false

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.

+chapters directory. To edit which chapter files are +included the document:

+
    +
  • Edit the input-file: section of the +template\pandoc.yaml
  • +

Appendixes

TBD

Glossary

@@ -382,14 +409,38 @@ files are in what order.

TBD

Obsidian Citations

TBD

-

Mathjax Equations

-

TBD

+

Images

+

You can use basic Markdown Images

+
![ACEP](lib/img/ACEPLogo.png)
+
+ACEP + +
+

LaTeX Equations

+

You can embed LaTeX equations directly in your Markdown pages.

Left Justified / Inline

-

TBD

+

To left justify LaTex surround the code inside single +$:

+
+

Left Justified Equation

+
$x = \frac{1}{2}$
+
+

$x = \frac{1}{2}$

+
+

Inline

+
Or inline, $x = \frac{1}{2}$, in a sentence.
+
+

Or inline, $x = \frac{1}{2}$, in a +sentence.

Centered

-

TBD

+

To center justify LaTex surround the code inside double +$$:

+
+

Centered Equation

+
$$x = \frac{1}{2}$$
+
+

$$x = \frac{1}{2}$$

Custom Markdown

-

TBD

Call-outs

A few call-out box styles have been custom added to easily highlight certain types of content.

@@ -417,17 +468,6 @@ A blue box

Markdown Example

-
[!info] Info Box
-Same as a blue box
-
-

Will render:

-
-

Info Box

-

Same as a blue box

-
-
-
-

Markdown Example

[!speculative] Purple Call-out Title
 A purple box
@@ -493,7 +533,8 @@ fi A command line example ''' $ 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 '''

Will render:

@@ -501,118 +542,126 @@ build chapters conf filters lib LICENSE.md Makefile metadata.yaml >RE

Command line

A command line example

$ 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
-

Appendix A

-

Appendix A: Build -Environment Notes

-

Installing Pre-Requisites

+

Advanced

+

Changing Fonts

+

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

+

Custom filters can be created. This is complicated and typically +needs done in 3 places for:

+ +

Design

+

Directory Structure

+

The basic-book-builder directory tree.

+
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
+

Configuration Files

+

The basic-book-builder configuration files, scripts, +and build files.

+
../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
+
-

Not Cross-platform Tested

-

For Debian / ZorinOS and likely Ubuntu based systems.

+

About conf

+

NEVER: edit file directly in conf. They will be +overwritten by the build process. ### Metadata

-

Required

-

Pandoc

- -
-

sudo apt install https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb

-
-

Code Editor

-
-

Code Editor

-

VSCodium is recommend for -privacy (telemetry/tracking) reasons - https://vscodium.com/

-
-

But any text editor will work. #### make

-
sudo apt install make
-

jq and yq

-
sudo apt install jq yq
-

texlive

-
-

sudo apt install texlive texlive-xetex texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra

-
-

MathJax

- -
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
-
-

TODO

-

This need to be rolled into a setup script.

-
-

Optional

-

The following are not strictly requires to use this book builder -template.

-

Obsidian

-
-

Highly Recommended

-

Editing book chapter content in Obsidian is a very productive means -for editing Markdown source content.

-
- -
sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb
-

Zotero

-
-

Highly Recommended

-

If you need to managed citations and references, Zotero integration -is highly recommended.

-
- -
sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/
-
sudo apt update
-
sudo apt install zotero
-
Better BibTex for Zotero
-

Install the Better BibTex Plugin for Zotero - Zotero > Tool > -Plugins

-
Export citations.bib
- -
Zotero Connector Browser -Plugin
- -

Provides you the ability to auto add Web resources to your Zotero -citation database.

-

lmodern

-
sudo apt install lmodern
-

epubcheck

-
sudo apt install epubcheck
-

foliate

-

An EPub Reader

- -
sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb
-

calibre

-

An EPub Reader

- -
sudo apt install calibre
-

Editing the Configuration

- +

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

+

Update the input-files: section of +templates/pandoc.yaml to control what chapter source files +are in which order in your document.

+
# 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
+

Build Workflow

+

For a PDF Build:

+
make pdf
+

will build dependencies on these file:

+
    +
  1. Makefile
  2. +
  3. conf/pandoc.yaml
  4. +
  5. conf/pdf.yaml
  6. +
  7. lib/zotero.bib
  8. +
  9. chapters/*.md
  10. +
+

NOTE: the Makefile will copy +templates/*.yaml to conf/*.yaml. +Never edit conf/*directly.

Glossary

AuthorJohn Haverlack
Version1.2.2
Version1.2.3
Date2026-02-05
AffiliationAlaska Center for Energy and Power
InstitutionUniversity of Alaska Fairbanks
diff --git a/build/latex/basic-book-builder.aux b/build/latex/basic-book-builder.aux index c2b63c2..8e86d31 100644 --- a/build/latex/basic-book-builder.aux +++ b/build/latex/basic-book-builder.aux @@ -22,133 +22,107 @@ \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \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{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \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 } -\newlabel{cloning-the-basic-book-builder}{{2.1}{2}{Cloning the Basic Book Builder}{section.2.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Clone the Basic Book Builder}{2}{section.2.1}\protected@file@percent } +\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 } \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 } -\newlabel{testing}{{2.3}{2}{Testing}{section.2.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Non deb systems}{3}{subsection.2.2.1}\protected@file@percent } +\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 } \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 } -\newlabel{zotero-configuration-optional}{{2.4.1}{3}{Zotero Configuration (Optional)}{subsection.2.4.1}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {3}Usage}{4}{chapter.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.5}Building}{4}{section.2.5}\protected@file@percent } +\newlabel{building}{{2.5}{4}{Building}{section.2.5}{}} +\@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{lot}{\addvspace {10\p@ }} -\newlabel{usage}{{3}{4}{Usage}{chapter.3}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}Creating a Project}{4}{section.3.1}\protected@file@percent } -\newlabel{creating-a-project}{{3.1}{4}{Creating a Project}{section.3.1}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Editing Content}{4}{section.3.2}\protected@file@percent } -\newlabel{editing-content}{{3.2}{4}{Editing Content}{section.3.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3.3}Building}{4}{section.3.3}\protected@file@percent } -\newlabel{building}{{3.3}{4}{Building}{section.3.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}PDF}{4}{subsection.3.3.1}\protected@file@percent } -\newlabel{pdf}{{3.3.1}{4}{PDF}{subsection.3.3.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}HTML}{5}{subsection.3.3.2}\protected@file@percent } -\newlabel{html}{{3.3.2}{5}{HTML}{subsection.3.3.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}DocX}{5}{subsection.3.3.3}\protected@file@percent } -\newlabel{docx}{{3.3.3}{5}{DocX}{subsection.3.3.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}ODT}{5}{subsection.3.3.4}\protected@file@percent } -\newlabel{odt}{{3.3.4}{5}{ODT}{subsection.3.3.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Make All}{5}{subsection.3.3.5}\protected@file@percent } -\newlabel{make-all}{{3.3.5}{5}{Make All}{subsection.3.3.5}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {4}Features}{6}{chapter.4}\protected@file@percent } +\newlabel{features}{{3}{5}{Features}{chapter.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}Metadata}{5}{section.3.1}\protected@file@percent } +\newlabel{metadata}{{3.1}{5}{Metadata}{section.3.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Front-matter}{5}{section.3.2}\protected@file@percent } +\newlabel{front-matter}{{3.2}{5}{Front-matter}{section.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Meta Data Page}{5}{subsection.3.2.1}\protected@file@percent } +\newlabel{meta-data-page}{{3.2.1}{5}{Meta Data Page}{subsection.3.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Cover Illustration}{5}{subsection.3.2.2}\protected@file@percent } +\newlabel{cover-illustration}{{3.2.2}{5}{Cover Illustration}{subsection.3.2.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Dedication}{6}{subsection.3.2.3}\protected@file@percent } +\newlabel{dedication}{{3.2.3}{6}{Dedication}{subsection.3.2.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.3}Table of Contents}{6}{section.3.3}\protected@file@percent } +\newlabel{table-of-contents}{{3.3}{6}{Table of Contents}{section.3.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.4}Chapters}{6}{section.3.4}\protected@file@percent } +\newlabel{chapters}{{3.4}{6}{Chapters}{section.3.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.5}Appendixes}{6}{section.3.5}\protected@file@percent } +\newlabel{appendixes}{{3.5}{6}{Appendixes}{section.3.5}{}} +\@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{lot}{\addvspace {10\p@ }} -\newlabel{features}{{4}{6}{Features}{chapter.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}Metadata}{6}{section.4.1}\protected@file@percent } -\newlabel{metadata}{{4.1}{6}{Metadata}{section.4.1}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}Front-matter}{6}{section.4.2}\protected@file@percent } -\newlabel{front-matter}{{4.2}{6}{Front-matter}{section.4.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Meta Data Page}{6}{subsection.4.2.1}\protected@file@percent } -\newlabel{meta-data-page}{{4.2.1}{6}{Meta Data Page}{subsection.4.2.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Cover Illustration}{6}{subsection.4.2.2}\protected@file@percent } -\newlabel{cover-illustration}{{4.2.2}{6}{Cover Illustration}{subsection.4.2.2}{}} -\@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}{}} +\newlabel{design}{{4}{12}{Design}{chapter.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}Directory Structure}{12}{section.4.1}\protected@file@percent } +\newlabel{directory-structure}{{4.1}{12}{Directory Structure}{section.4.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}Configuration Files}{12}{section.4.2}\protected@file@percent } +\newlabel{configuration-files}{{4.2}{12}{Configuration Files}{section.4.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Pandoc Main Config}{14}{subsection.4.2.1}\protected@file@percent } +\newlabel{pandoc-main-config}{{4.2.1}{14}{Pandoc Main Config}{subsection.4.2.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.3}Build Workflow}{14}{section.4.3}\protected@file@percent } +\newlabel{build-workflow}{{4.3}{14}{Build Workflow}{section.4.3}{}} \gdef \LT@i {\LT@entry {1}{86.68152pt}\LT@entry {1}{383.07349pt}} -\newlabel{glossary-1}{{A.2}{15}{Glossary}{appendix*.2}{}} -\@writefile{toc}{\contentsline {chapter}{Glossary}{15}{appendix*.2}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{Index}{17}{appendix*.3}\protected@file@percent } +\newlabel{glossary-1}{{4.3}{15}{Glossary}{chapter*.2}{}} +\@writefile{toc}{\contentsline {chapter}{Glossary}{15}{chapter*.2}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{Index}{17}{chapter*.3}\protected@file@percent } \bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext } \bibcite{ref-JohnHaverlackACEP}{\citeproctext } \bibcite{ref-PandocIndex}{\citeproctext } -\bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext } -\bibcite{ref-JohnHaverlackACEP}{\citeproctext } -\bibcite{ref-PandocIndex}{\citeproctext } -\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}{}} +\newlabel{bibliography-1}{{4.3}{19}{Bibliography}{chapter*.4}{}} +\@writefile{toc}{\contentsline {chapter}{Bibliography}{19}{chapter*.4}\protected@file@percent } +\newlabel{refs}{{4.3}{19}{Bibliography}{section*.5}{}} \gdef \@abspage@last{24} diff --git a/build/latex/basic-book-builder.log b/build/latex/basic-book-builder.log index 6866ae7..ea82e59 100644 --- a/build/latex/basic-book-builder.log +++ b/build/latex/basic-book-builder.log @@ -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 restricted \write18 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. -(./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. - -) +(./basic-book-builder.aux) \openout1 = `basic-book-builder.aux'. 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] 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 ] 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 k-builder.git[] [] -[2 -] [3] -Chapter 3. -[4 +Underfull \vbox (badness 2644) has occurred while \output is active [] -] [5] -Chapter 4. -[6 + [2 -] [7] [8] [9] [10] -Overfull \hbox (262.34303pt too wide) in paragraph at lines 862--862 -[]\TU/NotoSansMono(0)/m/n/12 build chapters conf filters lib LICENSE.md M -akefile metadata.yaml >README.md scripts templates[] +] +Underfull \hbox (badness 10000) in paragraph at lines 539--542 +[]\TU/NotoSerif(0)/m/n/12 You do not want to edit your new project document in +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 -akefile metadata.yaml README.md scripts templates[] +] +Overfull \hbox (19.09433pt too wide) in paragraph at lines 687--690 +\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) + +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] -Appendix A. - -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 - - [] - +Chapter 4. [12 ] -Overfull \hbox (358.24503pt too wide) in paragraph at lines 975--975 -[]\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[] - - [] +Underfull \vbox (badness 10000) has occurred while \output is active [] + [13] [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| [] -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 ] -Underfull \hbox (badness 3977) in paragraph at lines 1183--1185 -[]\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 +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- [] @@ -1881,18 +1837,14 @@ Https://www.uaf.edu/acep/about/our-team/john- ] [20 -] (./basic-book-builder.aux) - -LaTeX Warning: There were multiply-defined labels. - - ) +] (./basic-book-builder.aux) ) Here is how much of TeX's memory you used: - 36437 strings out of 478775 - 750795 string characters out of 5850945 + 36434 strings out of 478775 + 751025 string characters out of 5850945 1859991 words of memory out of 5000000 - 55860 multiletter control sequences out of 15000+600000 - 516036 words of font info for 92 fonts, out of 8000000 for 9000 + 55855 multiletter control sequences out of 15000+600000 + 516044 words of font info for 93 fonts, out of 8000000 for 9000 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). diff --git a/build/latex/basic-book-builder.pdf b/build/latex/basic-book-builder.pdf index b10b41e..2ea75c8 100644 Binary files a/build/latex/basic-book-builder.pdf and b/build/latex/basic-book-builder.pdf differ diff --git a/build/latex/basic-book-builder.tex b/build/latex/basic-book-builder.tex index bc9c3ba..fde400d 100644 --- a/build/latex/basic-book-builder.tex +++ b/build/latex/basic-book-builder.tex @@ -274,7 +274,7 @@ \fancypagestyle{plain}{% \fancyhf{}% \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 \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} @@ -288,7 +288,7 @@ \fancyhead[C]{\leftmark} % Chapter title (centered) % 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 % Line rules @@ -321,7 +321,7 @@ {\Huge\bfseries Basic Book Builder \par} \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} \includegraphics[width=0.5\textwidth]{lib/img/UAF-ACEP.png} @@ -338,14 +338,14 @@ {\Large\bfseries Basic Book Builder \par} \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} \renewcommand{\arraystretch}{1.3} % row spacing \setlength{\tabcolsep}{8pt} % column padding \begin{tabular}{@{}p{0.28\textwidth}p{0.65\textwidth}@{}} \textbf{Author:} & John Haverlack \\ -\textbf{Version:} & 1.2.2 \\ +\textbf{Version:} & 1.2.3 \\ \textbf{Date:} & 2026-02-05 \\ \textbf{Affiliation:} & Alaska Center for Energy and Power \\ \textbf{Institution:} & University of Alaska Fairbanks \\ @@ -428,12 +428,46 @@ Licensed under the Creative Commons Attribution-NoDerivatives 4.0 International \mainmatter \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}, -n.d.})\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. +n.d.})\index{Pandoc} + Makefile build process in conjunction Obsidian to +edit content and Zotero to manage citation, to generate multiple format +of the document including: + +\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 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} -\section{Cloning the Basic Book -Builder}\label{cloning-the-basic-book-builder} +\section{Clone the Basic Book +Builder}\label{clone-the-basic-book-builder} \begin{clibox}[Clone the repository] \begin{verbatim} @@ -464,10 +498,17 @@ cd basic-book-builder Environment}\label{setting-up-build-environment} \begin{cautionbox}[~Debian Linux] -This script only support Debian based Linux system (Debian, Ubunutu, -Zorin, etc) This script has not been widely tested across platforms +This script only support Debian based Linux system (e.g Debian, Ubuntu, +Zorin). And this script will install several ATP packages on your +system. \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{verbatim} ./scripts/setup-linux-deb.sh @@ -475,13 +516,15 @@ Zorin, etc) This script has not been widely tested across platforms \end{clibox} +\subsection{Non deb systems}\label{non-deb-systems} + For more information on setting up the build environment for your system -see Appendix A. +see: \textbf{TBD: NEEDS DOCUMENTED}. \section{Testing}\label{testing} -If you can build all format for the \textbf{Basic Book Build} then you -have a working build environment. +Once you have set up your build environment, you test by building the +\textbf{basic book builder}. \begin{clibox}[Testing Build Environment] \begin{verbatim} @@ -492,66 +535,43 @@ make all \section{Creating a New Project}\label{creating-a-new-project} -\subsection{Zotero Configuration -(Optional)}\label{zotero-configuration-optional} +\begin{proposedbox}[Tip] +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 +\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 +\end{verbatim} + +Update your project configuration: \begin{enumerate} \def\labelenumi{\arabic{enumi}.} \tightlist \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} -\begin{verbatim} -./scripts/new-project.sh -\end{verbatim} - -\begin{itemize} -\tightlist -\item - should be outside of the \textbf{basic-book-builder} directory -\end{itemize} - -\begin{verbatim} -cd -\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} +\begin{warningbox}[Warning] +\texttt{\textless{}NEW\_PROJECT\_DIR\textgreater{}} should be outside of +the \textbf{basic-book-builder} directory +\end{warningbox} \section{Building}\label{building} @@ -602,15 +622,22 @@ make all \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} Metadata for the project is managed in \texttt{metadata.yaml}. Edit this -file to make global changes to variables for your document. Changes here -will propagate to all format builds. +file to make \textbf{global changes} to variables for your document. +Definitions in \texttt{metadata.yaml} will propagate to all format +builds. \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} \tightlist @@ -622,22 +649,16 @@ Front matter content is manged in: \texttt{templates/frontmatter-md.html} \end{itemize} -\begin{cautionbox}[Tip] Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats. \#\#\# Title Page -\end{cautionbox} Edit the \textbf{Front-matter} files to modify the formatting of the -Title Page. - -\begin{cautionbox}[Tip] -You'll need to modify the HTML / LaTex. -\end{cautionbox} +Title Page. You'll need to modify the HTML / LaTex code. \subsection{Meta Data Page}\label{meta-data-page} Edit the \textbf{Front-matter} files to modify the 2nd page Metadata -format. +format and fields to display. \subsection{Cover Illustration}\label{cover-illustration} @@ -658,14 +679,26 @@ Dedication. \begin{itemize} \tightlist \item - This is disabled by default \#\# Table of Contents + This is disabled by default \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} Chapter Markdown source files are located in the \texttt{chapters} -directory. Edit the \texttt{template\textbackslash{}pandoc.yaml} file to -control which chapter markdown files are in what order. +directory. To edit which chapter files are included the document: + +\begin{itemize} +\tightlist +\item + Edit the \texttt{input-file:} section of the + \texttt{template\textbackslash{}pandoc.yaml} +\end{itemize} \section{Appendixes}\label{appendixes} @@ -695,22 +728,64 @@ 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} -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} -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} -TBD - \subsection{Call-outs}\label{call-outs} 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{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{verbatim} [!speculative] Purple Call-out Title @@ -859,7 +918,8 @@ fi A command line example ''' $ 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} @@ -872,208 +932,168 @@ A command line example \begin{verbatim} $ 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{clibox} -\appendix +\section{Advanced}\label{advanced} -Appendix A +\subsection{Changing Fonts}\label{changing-fonts} -\chapter{Appendix A: Build Environment -Notes}\label{appendix-a-build-environment-notes} +It is possible to change fonts by editing +\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] -For Debian / ZorinOS and likely Ubuntu based systems. +Custom filters can be created. This is complicated and typically needs +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} -\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 \item - https://pandoc.org/ + Makefile \item - \href{https://github.com/jgm/pandoc/releases/tag/3.8.2.1}{Download} -\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 + conf/pandoc.yaml \item - https://www.mathjax.org/ -\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 + conf/pdf.yaml \item - https://obsidian.md/ + lib/zotero.bib \item - \href{https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb}{Deb - Package} -\end{itemize} + chapters/*.md +\end{enumerate} -\begin{verbatim} -sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb -\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} +NOTE: the \texttt{Makefile} will copy \texttt{templates/*.yaml} to +\texttt{conf/*.yaml}. \textbf{Never} edit \texttt{conf/*}directly. \backmatter @@ -1186,18 +1206,6 @@ Https://www.uaf.edu/acep/about/our-team/john-haverlack.php. \bibitem[\citeproctext]{ref-PandocIndex} \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} \backmatter diff --git a/build/latex/basic-book-builder.toc b/build/latex/basic-book-builder.toc index f06e4b9..66b561b 100644 --- a/build/latex/basic-book-builder.toc +++ b/build/latex/basic-book-builder.toc @@ -1,57 +1,46 @@ \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 {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.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 {subsection}{\numberline {2.4.1}Zotero Configuration (Optional)}{3}{subsection.2.4.1}% -\contentsline {chapter}{\numberline {3}Usage}{4}{chapter.3}% -\contentsline {section}{\numberline {3.1}Creating a Project}{4}{section.3.1}% -\contentsline {section}{\numberline {3.2}Editing Content}{4}{section.3.2}% -\contentsline {section}{\numberline {3.3}Building}{4}{section.3.3}% -\contentsline {subsection}{\numberline {3.3.1}PDF}{4}{subsection.3.3.1}% -\contentsline {subsection}{\numberline {3.3.2}HTML}{5}{subsection.3.3.2}% -\contentsline {subsection}{\numberline {3.3.3}DocX}{5}{subsection.3.3.3}% -\contentsline {subsection}{\numberline {3.3.4}ODT}{5}{subsection.3.3.4}% -\contentsline {subsection}{\numberline {3.3.5}Make All}{5}{subsection.3.3.5}% -\contentsline {chapter}{\numberline {4}Features}{6}{chapter.4}% -\contentsline {section}{\numberline {4.1}Metadata}{6}{section.4.1}% -\contentsline {section}{\numberline {4.2}Front-matter}{6}{section.4.2}% -\contentsline {subsection}{\numberline {4.2.1}Meta Data Page}{6}{subsection.4.2.1}% -\contentsline {subsection}{\numberline {4.2.2}Cover Illustration}{6}{subsection.4.2.2}% -\contentsline {subsection}{\numberline {4.2.3}Dedication}{7}{subsection.4.2.3}% -\contentsline {section}{\numberline {4.3}Chapters}{7}{section.4.3}% -\contentsline {section}{\numberline {4.4}Appendixes}{7}{section.4.4}% -\contentsline {section}{\numberline {4.5}Glossary}{7}{section.4.5}% -\contentsline {section}{\numberline {4.6}Index}{7}{section.4.6}% -\contentsline {subsection}{\numberline {4.6.1}Markdown Indexes}{7}{subsection.4.6.1}% -\contentsline {section}{\numberline {4.7}Bibliography}{7}{section.4.7}% -\contentsline {subsection}{\numberline {4.7.1}Zotero Integration}{7}{subsection.4.7.1}% -\contentsline {subsection}{\numberline {4.7.2}Obsidian Citations}{8}{subsection.4.7.2}% -\contentsline {section}{\numberline {4.8}Mathjax Equations}{8}{section.4.8}% -\contentsline {subsection}{\numberline {4.8.1}Left Justified / Inline}{8}{subsection.4.8.1}% -\contentsline {subsection}{\numberline {4.8.2}Centered}{8}{subsection.4.8.2}% -\contentsline {section}{\numberline {4.9}Custom Markdown}{8}{section.4.9}% -\contentsline {subsection}{\numberline {4.9.1}Call-outs}{8}{subsection.4.9.1}% -\contentsline {chapter}{\numberline {A}Appendix A: Build Environment Notes}{12}{appendix.A}% -\contentsline {section}{\numberline {A.1}Installing Pre-Requisites}{12}{section.A.1}% -\contentsline {subsection}{\numberline {A.1.1}Required}{12}{subsection.A.1.1}% -\contentsline {subsubsection}{\numberline {A.1.1.1}Pandoc}{12}{subsubsection.A.1.1.1}% -\contentsline {subsubsection}{\numberline {A.1.1.2}Code Editor}{12}{subsubsection.A.1.1.2}% -\contentsline {subsubsection}{\numberline {A.1.1.3}jq and yq}{12}{subsubsection.A.1.1.3}% -\contentsline {subsubsection}{\numberline {A.1.1.4}texlive}{12}{subsubsection.A.1.1.4}% -\contentsline {subsubsection}{\numberline {A.1.1.5}MathJax}{13}{subsubsection.A.1.1.5}% -\contentsline {subsection}{\numberline {A.1.2}Optional}{13}{subsection.A.1.2}% -\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}% +\contentsline {section}{\numberline {2.5}Building}{4}{section.2.5}% +\contentsline {subsection}{\numberline {2.5.1}PDF}{4}{subsection.2.5.1}% +\contentsline {subsection}{\numberline {2.5.2}HTML}{4}{subsection.2.5.2}% +\contentsline {subsection}{\numberline {2.5.3}DocX}{4}{subsection.2.5.3}% +\contentsline {subsection}{\numberline {2.5.4}ODT}{4}{subsection.2.5.4}% +\contentsline {subsection}{\numberline {2.5.5}Make All}{4}{subsection.2.5.5}% +\contentsline {chapter}{\numberline {3}Features}{5}{chapter.3}% +\contentsline {section}{\numberline {3.1}Metadata}{5}{section.3.1}% +\contentsline {section}{\numberline {3.2}Front-matter}{5}{section.3.2}% +\contentsline {subsection}{\numberline {3.2.1}Meta Data Page}{5}{subsection.3.2.1}% +\contentsline {subsection}{\numberline {3.2.2}Cover Illustration}{5}{subsection.3.2.2}% +\contentsline {subsection}{\numberline {3.2.3}Dedication}{6}{subsection.3.2.3}% +\contentsline {section}{\numberline {3.3}Table of Contents}{6}{section.3.3}% +\contentsline {section}{\numberline {3.4}Chapters}{6}{section.3.4}% +\contentsline {section}{\numberline {3.5}Appendixes}{6}{section.3.5}% +\contentsline {section}{\numberline {3.6}Glossary}{6}{section.3.6}% +\contentsline {section}{\numberline {3.7}Index}{6}{section.3.7}% +\contentsline {subsection}{\numberline {3.7.1}Markdown Indexes}{6}{subsection.3.7.1}% +\contentsline {section}{\numberline {3.8}Bibliography}{7}{section.3.8}% +\contentsline {subsection}{\numberline {3.8.1}Zotero Integration}{7}{subsection.3.8.1}% +\contentsline {subsection}{\numberline {3.8.2}Obsidian Citations}{7}{subsection.3.8.2}% +\contentsline {section}{\numberline {3.9}Images}{7}{section.3.9}% +\contentsline {section}{\numberline {3.10}\emph {LaTeX} Equations}{7}{section.3.10}% +\contentsline {subsection}{\numberline {3.10.1}Left Justified / Inline}{7}{subsection.3.10.1}% +\contentsline {subsection}{\numberline {3.10.2}Centered}{8}{subsection.3.10.2}% +\contentsline {section}{\numberline {3.11}Custom Markdown}{8}{section.3.11}% +\contentsline {subsection}{\numberline {3.11.1}Call-outs}{8}{subsection.3.11.1}% +\contentsline {section}{\numberline {3.12}Advanced}{11}{section.3.12}% +\contentsline {subsection}{\numberline {3.12.1}Changing Fonts}{11}{subsection.3.12.1}% +\contentsline {subsection}{\numberline {3.12.2}Adding Filters}{11}{subsection.3.12.2}% +\contentsline {chapter}{\numberline {4}Design}{12}{chapter.4}% +\contentsline {section}{\numberline {4.1}Directory Structure}{12}{section.4.1}% +\contentsline {section}{\numberline {4.2}Configuration Files}{12}{section.4.2}% +\contentsline {subsection}{\numberline {4.2.1}Pandoc Main Config}{14}{subsection.4.2.1}% +\contentsline {section}{\numberline {4.3}Build Workflow}{14}{section.4.3}% +\contentsline {chapter}{Glossary}{15}{chapter*.2}% +\contentsline {chapter}{Index}{17}{chapter*.3}% +\contentsline {chapter}{Bibliography}{19}{chapter*.4}% diff --git a/build/odt/basic-book-builder.odt b/build/odt/basic-book-builder.odt index cb37f98..47d7fd2 100644 Binary files a/build/odt/basic-book-builder.odt and b/build/odt/basic-book-builder.odt differ diff --git a/build/pdf/basic-book-builder.pdf b/build/pdf/basic-book-builder.pdf index b10b41e..2ea75c8 100644 Binary files a/build/pdf/basic-book-builder.pdf and b/build/pdf/basic-book-builder.pdf differ diff --git a/chapters/00_Introduction.md b/chapters/00_Introduction.md index 0c4f851..e735325 100644 --- a/chapters/00_Introduction.md +++ b/chapters/00_Introduction.md @@ -1,6 +1,24 @@ # 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] + + diff --git a/chapters/01_Getting_Started.md b/chapters/01_Getting_Started.md index 4e181fa..2d60f47 100644 --- a/chapters/01_Getting_Started.md +++ b/chapters/01_Getting_Started.md @@ -1,6 +1,6 @@ # Getting Started -## Cloning the Basic Book Builder +## Clone the Basic Book Builder > [!cli] Clone the repository @@ -18,35 +18,99 @@ > [!caution] ~Debian Linux -> This script only support Debian based Linux system (Debian, Ubunutu, Zorin, etc) -> This script has not been widely tested across platforms +> This script only support Debian based Linux system (e.g Debian, Ubuntu, Zorin). And this script will install several ATP packages on your system. +> [!danger] Warning +This script **has not** been widely tested across many platforms + + +To initialize your systems build environment run: > [!cli] Setup Build Environment > ``` > ./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 - -If you can build all format for the **Basic Book Build** then you have a working build environment. +Once you have set up your build environment, you test by building the **basic book builder**. > [!cli] Testing Build Environment > ``` > make all > ``` - ## Creating a New Project -### Zotero Configuration (Optional) \ No newline at end of file +> [!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 +> ``` + + +``` +cd +``` + + +Update your project configuration: + +1. Edit: `metadata.yaml`, for title, author, etc +2. Edit: `templates/pandoc.yaml` +3. Open: `` with Obsidian, and edit `chapters` documents. +4. Build: `make pdf` + + +> [!warning] Warning +> `` 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 +``` + diff --git a/chapters/02_Usage.md b/chapters/02_Usage.md index f96c4f5..b21c04e 100644 --- a/chapters/02_Usage.md +++ b/chapters/02_Usage.md @@ -1,4 +1,4 @@ -# Usage +# Basic Usage ## Creating a Project diff --git a/chapters/03_Features.md b/chapters/03_Features.md index 38e1ec9..98af2d2 100644 --- a/chapters/03_Features.md +++ b/chapters/03_Features.md @@ -1,30 +1,27 @@ # 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 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 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.html` - `templates/frontmatter-md.html` - -> [!caution] Tip - Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats. +Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats. ### Title Page -Edit the **Front-matter** files to modify the formatting of the Title Page. - -> [!caution] Tip -> You'll need to modify the HTML / LaTex. +Edit the **Front-matter** files to modify the formatting of the Title Page. You'll need to modify the HTML / LaTex code. ### 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 @@ -34,15 +31,21 @@ Edit the **Front-matter** files to optionally un-comment the Cover Art Acknowled ### Dedication - Edit the **Front-matter** files to modify un-comment the Book Dedication. - This is disabled by default + + ## Table of Contents +The table of contents is auto generated. But can be disabled in `template\pandoc.yaml` by setting: +- `toc: false` + ## 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 @@ -72,22 +75,58 @@ 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 -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 -TBD +To center justify *LaTex* surround the code inside double `$$`: + +> [!code] Centered Equation +> ``` +> $$x = \frac{1}{2}$$ +> ``` + +$$x = \frac{1}{2}$$ + ## Custom Markdown -TBD - ### Call-outs 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 > ``` > [!speculative] Purple Call-out Title @@ -210,7 +236,8 @@ Will render: > A command line example >''' >$ 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 > ``` > $ 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 -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 -TBD +Custom filters can be created. This is complicated and typically needs done in 3 places for: + +- obsidian +- *LaTeX* +- HTML diff --git a/chapters/04_Design.md b/chapters/04_Design.md index ad8c5a4..2798a83 100644 --- a/chapters/04_Design.md +++ b/chapters/04_Design.md @@ -2,6 +2,8 @@ ## Directory Structure +The **basic-book-builder** directory tree. + ``` basic-book-builder ├── build @@ -30,6 +32,7 @@ basic-book-builder ## Configuration Files +The **basic-book-builder** configuration files, scripts, and build files. ``` ../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 -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 @@ -92,46 +97,22 @@ input-files: - chapters/Glossary.md - chapters/Index.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 -TBD \ No newline at end of file +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. \ No newline at end of file diff --git a/chapters/AppendixB.md b/chapters/AppendixB.md index 495605c..d89df14 100644 --- a/chapters/AppendixB.md +++ b/chapters/AppendixB.md @@ -60,36 +60,3 @@ To insert a Zotero Citation - Alt + I (to insert citation) - Search for and select citation reference -## Usage: Building the Book - -#### PDF - -``` -make pdf -``` - -#### HTML - -``` -make html -``` - -#### LaTex - -``` -make latex -``` - -#### Markdown - -``` -make markdown -``` - -#### EPub - -> Note: This ePub configuration still needs tuning. - -``` -make epub -``` diff --git a/chapters/Bibliography.md b/chapters/Bibliography.md index ba674df..c716f67 100644 --- a/chapters/Bibliography.md +++ b/chapters/Bibliography.md @@ -4,5 +4,3 @@ # Bibliography {-} -::: {#refs .references} -::: diff --git a/metadata.yaml b/metadata.yaml index 734f605..4329abc 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,11 +1,11 @@ # Title 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" logo: "lib/img/UAF-ACEP.png" # Version / Repo -version: "1.2.2" +version: "1.2.3" date: "2026-02-05" state: "BETA" source: "https://github.com/jehaverlack/basic-book-builder" diff --git a/templates/latex.yaml b/templates/latex.yaml index f5cd782..8de1503 100644 --- a/templates/latex.yaml +++ b/templates/latex.yaml @@ -45,4 +45,3 @@ resource-path: - lib/img - lib/diag -citeproc: true diff --git a/templates/pandoc.yaml b/templates/pandoc.yaml index 2f14194..30e02e1 100644 --- a/templates/pandoc.yaml +++ b/templates/pandoc.yaml @@ -3,10 +3,11 @@ input-files: # - chapters/Preface.md - chapters/00_Introduction.md - chapters/01_Getting_Started.md - - chapters/02_Usage.md + # - chapters/02_Usage.md - chapters/03_Features.md - - chapters/Appendix.md - - chapters/AppendixA.md + - chapters/04_Design.md + # - chapters/Appendix.md + # - chapters/AppendixA.md # - chapters/AppendixB.md - chapters/Glossary.md - chapters/Index.md @@ -27,8 +28,8 @@ metadata: link-citations: true variables: - documentclass: book # options: report, book, article - fontsize: 12pt + documentclass: extbook # options: report, book, article + fontsize: 9pt geometry: - margin=1in toc: true # ✅ Pandoc-recognized variable