% Options for packages loaded elsewhere \PassOptionsToPackage{unicode}{hyperref} \PassOptionsToPackage{hyphens}{url} \PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor} \documentclass[ 12pt, openany]{book} \usepackage{xcolor} \usepackage[margin=1in]{geometry} \usepackage{amsmath,amssymb} \setcounter{secnumdepth}{5} \usepackage{iftex} \ifPDFTeX \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{textcomp} % provide euro and other symbols \else % if luatex or xetex \usepackage{unicode-math} % this also loads fontspec \defaultfontfeatures{Scale=MatchLowercase} \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} \fi \usepackage{lmodern} \ifPDFTeX\else % xetex/luatex font selection \setmainfont[]{Noto Serif} \setsansfont[]{Noto Sans} \setmonofont[]{Noto Sans Mono} \fi % Use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} \IfFileExists{microtype.sty}{% use microtype if available \usepackage[]{microtype} \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \makeatletter \@ifundefined{KOMAClassName}{% if non-KOMA class \IfFileExists{parskip.sty}{% \usepackage{parskip} }{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}} }{% if KOMA class \KOMAoptions{parskip=half}} \makeatother \usepackage{longtable,booktabs,array} \newcounter{none} % for unnumbered tables \usepackage{calc} % for calculating minipage widths % Correct order of tables after \paragraph or \subparagraph \usepackage{etoolbox} \makeatletter \patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{} \makeatother % Allow footnotes in longtable head/foot \IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}} \makesavenoteenv{longtable} \usepackage{graphicx} \makeatletter \newsavebox\pandoc@box \newcommand*\pandocbounded[1]{% scales image to fit in text height/width \sbox\pandoc@box{#1}% \Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}% \Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}% \ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both \ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}% \else\usebox{\pandoc@box}% \fi% } % Set default figure placement to htbp \def\fps@figure{htbp} \makeatother % definitions for citeproc citations \NewDocumentCommand\citeproctext{}{} \NewDocumentCommand\citeproc{mm}{% \begingroup\def\citeproctext{#2}\cite{#1}\endgroup} \makeatletter % allow citations to break across lines \let\@cite@ofmt\@firstofone % avoid brackets around text for \cite: \def\@biblabel#1{} \def\@cite#1#2{{#1\if@tempswa , #2\fi}} \makeatother \newlength{\cslhangindent} \setlength{\cslhangindent}{1.5em} \newlength{\csllabelwidth} \setlength{\csllabelwidth}{3em} \newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing {\begin{list}{}{% \setlength{\itemindent}{0pt} \setlength{\leftmargin}{0pt} \setlength{\parsep}{0pt} % turn on hanging indent if param 1 is 1 \ifodd #1 \setlength{\leftmargin}{\cslhangindent} \setlength{\itemindent}{-1\cslhangindent} \fi % set entry spacing \setlength{\itemsep}{#2\baselineskip}}} {\end{list}} \usepackage{calc} \newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}} \newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}} \newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}} \newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} \setlength{\emergencystretch}{3em} % prevent overfull lines \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \usepackage{etoolbox} \usepackage[most]{tcolorbox} \usepackage{graphicx} \usepackage{xparse} \usepackage{titlesec} \tcbuselibrary{breakable} % --- Disable floating figures globally --- \usepackage{float} \let\origfigure\figure \let\endorigfigure\endfigure \renewenvironment{figure}[1][H]{\origfigure[H]}{\endorigfigure} % --- Colors --- \usepackage{xcolor} \definecolor{speculativeback}{RGB}{247,232,255} % #f7e8ff \definecolor{speculativeframe}{RGB}{139,43,226} % #8b2be2 \definecolor{lightgrayback}{RGB}{245,245,245} \definecolor{lightgrayframe}{RGB}{180,180,180} % --- Left-align all Pandoc tables --- \usepackage{longtable} \usepackage{etoolbox} \makeatletter \patchcmd\longtable{\par}{\par\raggedright}{}{} \setlength{\LTleft}{0pt} \setlength{\LTright}{0pt} \makeatother % Enable index generation \usepackage{makeidx} \makeindex % Helper to show a blank title if empty \newcommand{\blanktitle}{\mbox{}} % ========================================================= % Chapter Formatting (Suppress "Chapter 1") % ========================================================= \titleformat{\chapter}[display] {\normalfont\huge\bfseries} % formatting of title text {} % <-- empty label removes "Chapter 1" {0pt} % space between label and title {\Huge} % formatting of title itself \titlespacing*{\chapter} {0pt} % left margin {0pt} % space before title {20pt} % space after title % ========================================================= % Concept Boxes % ========================================================= \newtcolorbox{infobox}[1][Information]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=blue!3!white, colframe=blue!50!black, colbacktitle=blue!10!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{proposedbox}[1][Proposed Concept]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=blue!5!white, colframe=blue!75!black, colbacktitle=blue!15!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{establishedbox}[1][Established Concept]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=green!5!white, colframe=green!75!black, colbacktitle=green!15!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{speculativebox}[1][Speculative Concept]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=speculativeback, colframe=speculativeframe, colbacktitle=speculativeback!80!white, % lighter variant for title bar fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{cautionbox}[1][Caution]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=orange!5!white, colframe=orange!75!black, colbacktitle=orange!15!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{warningbox}[1][Warning]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=orange!5!white, colframe=orange!75!black, colbacktitle=orange!15!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{dangerbox}[1][Danger]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=red!5!white, colframe=red!75!black, colbacktitle=red!15!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } % ========================================================= % Code / CLI Boxes % ========================================================= \newtcolorbox{codebox}[1][Code]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=lightgrayback, colframe=lightgrayframe, colbacktitle=lightgrayback!90!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \newtcolorbox{clibox}[1][Command Line]{% title=\ifstrempty{#1}{\blanktitle}{#1}, colback=lightgrayback, colframe=lightgrayframe, colbacktitle=lightgrayback!90!white, fonttitle=\bfseries, coltitle=black, enhanced, sharp corners, breakable, after=\par\vspace{6pt} } \usepackage{xurl} \usepackage{fancyhdr} \setlength{\headheight}{15pt} % --- Chapter-opening pages (plain style) --- \fancypagestyle{plain}{% \fancyhf{}% \fancyhead[C]{\leftmark} % Chapter 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} } % --- Normal running pages --- \pagestyle{fancy} \fancyhf{} % Header \fancyhead[C]{\leftmark} % Chapter title (centered) % Footer \cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles} % Book title \rfoot{\thepage} % Page number % Line rules \renewcommand{\headrulewidth}{0pt} % rule under header \renewcommand{\footrulewidth}{0pt} % no rule above footer \usepackage{bookmark} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available \urlstyle{same} \hypersetup{ colorlinks=true, linkcolor={blue}, filecolor={Maroon}, citecolor={Blue}, urlcolor={Blue}, pdfcreator={LaTeX via pandoc}} \author{} \date{} \begin{document} \frontmatter % ------------------------- % 1. Title Page % ------------------------- \begin{titlepage} \centering \vspace*{2cm} {\Huge\bfseries Basic Book Builder \par} \vspace{0.4cm} {\Large A Pandoc build process for books, docs and articles \par} \vspace{1.2cm} \includegraphics[width=0.5\textwidth]{lib/img/UAF-ACEP.png} \vfill \end{titlepage} % ------------------------- % 2. COPYRIGHT / META PAGE % ------------------------- \newpage \thispagestyle{empty} {\Large\bfseries Basic Book Builder \par} \vspace{0.2cm} {\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.1.0 \\ \textbf{Date:} & 2026-02-04 \\ \textbf{Affiliation:} & Alaska Center for Energy and Power \\ \textbf{Institution:} & University of Alaska Fairbanks \\ \textbf{ISBN:} & UNSPECIFIED \\ \textbf{DOI:} & UNSPECIFIED \\ \textbf{Maturity:} & BETA \\ \end{tabular} \vspace{0.5cm} \textbf{Copyright} © 2026 Alaska Center for Energy and Power \vspace{0.5cm} % ----- Licensing Section ----- \section*{Licensing} \subsection*{Open Source Edition (PDF and HTML)} Licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. \begin{itemize} \item License: \href{https://creativecommons.org/licenses/by-nd/4.0/}{CC BY-ND 4.0} \end{itemize} % \subsection*{Commercial Edition (ebook and print)} % All Rights Reserved. No part of the EPUB or printed editions may be reproduced or redistributed without permission. \vspace*{\fill} % ------------------------- % 3. Cover Illustration Page % ------------------------- % ----- Title Page Image Note ----- \newpage \thispagestyle{empty} % \vspace*{1.5cm} % {\Large\bfseries Cover Illustration\par} % \begin{center} % \includegraphics[width=0.33\textwidth]{lib/img/UAF-ACEP.png} % \vspace{0.6cm} % \vspace{0.8cm} % {\small % \textit{“Cover illustration by****”} % \end{center} % ------------------------- % Reset numbering % ------------------------- \clearpage \pagenumbering{roman} % ------------------------- % Insert dedication % ------------------------- % \begin{titlepage} % \centering % \vspace*{\fill} % \textit{This book is dedicated to ****.} % \vspace*{\fill} % \end{titlepage} % (Pandoc will insert the TOC next, using roman numerals) \renewcommand*\contentsname{Contents} { \setcounter{tocdepth}{3} \tableofcontents } \mainmatter \chapter{Introduction}\label{introduction} This is a basic book (or article / document) builder template 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. This \textbf{basic book builder}(\citeproc{ref-JehaverlackBasicbookbuilderPandoca}{\emph{Jehaverlack/Basic-Book-Builder}, n.d.}) template has been curated by John Haverlack.(\citeproc{ref-JohnHaverlackACEP}{\emph{John {Haverlack} \textbar{} {ACEP}}, n.d.}) \chapter{Getting Started}\label{getting-started} \section{Cloning the Basic Book Builder}\label{cloning-the-basic-book-builder} \begin{clibox}[Clone the repository] \begin{verbatim} git clone https://github.com/jehaverlack/basic-book-builder.git \end{verbatim} \end{clibox} \begin{clibox}[Navigate to the repo directory] \begin{verbatim} cd basic-book-builder \end{verbatim} \end{clibox} \section{Setting Up Build 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 \end{cautionbox} \begin{clibox}[Setup Build Environment] \begin{verbatim} ./scripts/setup-linux-deb.sh \end{verbatim} \end{clibox} For more information on setting up the build environment for your system see Appendix A. \section{Testing}\label{testing} If you can build all format for the \textbf{Basic Book Build} then you have a working build environment. \begin{clibox}[Testing Build Environment] \begin{verbatim} make all \end{verbatim} \end{clibox} \section{Creating a New Project}\label{creating-a-new-project} \subsection{Zotero Configuration (Optional)}\label{zotero-configuration-optional} \chapter{Usage}\label{usage} \section{Creating a Project}\label{creating-a-project} To create a new Project based on the Basic Book Builder template: \begin{enumerate} \def\labelenumi{\arabic{enumi}.} \tightlist \item Run the new-project.sh script. \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} \section{Building}\label{building} \subsection{PDF}\label{pdf} \begin{verbatim} make pdf \end{verbatim} \begin{quote} NOTE: Building the PDF also builds the \textbf{LaTeX} version of the book. \end{quote} \subsection{HTML}\label{html} \begin{verbatim} make html \end{verbatim} \subsection{DocX}\label{docx} \begin{verbatim} make docx \end{verbatim} \begin{quote} NOTE: DocX is a work in progress. Frontmatter and formatting need work. \end{quote} \subsection{ODT}\label{odt} \begin{verbatim} make odt \end{verbatim} \begin{quote} NOTE: ODT is a work in progress. Frontmatter and formatting need work. \end{quote} \subsection{Make All}\label{make-all} To build all supported formats \begin{verbatim} make all \end{verbatim} \chapter{Features}\label{features} \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. \section{Front-matter}\label{front-matter} Front matter content is manged in: \begin{itemize} \tightlist \item \texttt{templates/frontmatter.tex} \item \texttt{templates/frontmatter.html} \item \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} \subsection{Meta Data Page}\label{meta-data-page} Edit the \textbf{Front-matter} files to modify the 2nd page Metadata format. \subsection{Cover Illustration}\label{cover-illustration} Edit the \textbf{Front-matter} files to optionally un-comment the Cover Art Acknowledgement. \begin{itemize} \tightlist \item This is disabled by default \end{itemize} \subsection{Dedication}\label{dedication} Edit the \textbf{Front-matter} files to modify un-comment the Book Dedication. \begin{itemize} \tightlist \item This is disabled by default \#\# Table of Contents \end{itemize} \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. \section{Appendixes}\label{appendixes} TBD \section{Glossary}\label{glossary} TBD \section{Index}\label{index} TBD \subsection{Markdown Indexes}\label{markdown-indexes} TBD \section{Bibliography}\label{bibliography} TBD \subsection{Zotero Integration}\label{zotero-integration} TBD \subsection{Obsidian Citations}\label{obsidian-citations} TBD \section{Mathjax Equations}\label{mathjax-equations} TBD \subsection{Left Justified / Inline}\label{left-justified-inline} TBD \subsection{Centered}\label{centered} TBD \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 certain types of content. \begin{codebox}[Markdown Example] \begin{verbatim} [!established] Green Call-out Title A green box \end{verbatim} \end{codebox} Will render: \begin{establishedbox}[Green Call-out Title] A green box \end{establishedbox} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{codebox}[Markdown Example] \begin{verbatim} [!proposed] Blue Call-out Title A blue box \end{verbatim} \end{codebox} Will render: \begin{proposedbox}[Blue Call-out Title] A blue box \end{proposedbox} \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 A purple box \end{verbatim} \end{codebox} Will render: \begin{speculativebox}[Purple Call-out Title] A purple box \end{speculativebox} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{codebox}[Markdown Example] \begin{verbatim} [!caution] Caution Note Beware of this section. AKA a orange box. \end{verbatim} \end{codebox} Will render: \begin{cautionbox}[Caution Note] Beware of this section. AKA a orange box. \end{cautionbox} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{codebox}[Markdown Example] \begin{verbatim} [!warning] Warning Note Same as the Caution Box \end{verbatim} \end{codebox} Will render: \begin{warningbox}[Warning Note] Same as the Caution Box \end{warningbox} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{codebox}[Markdown Example] \begin{verbatim} [!danger] Alert A slightly stronger warning. AKA a red box. \end{verbatim} \end{codebox} Will render: \begin{dangerbox}[Alert] A slightly stronger warning. AKA a red box. \end{dangerbox} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{codebox}[Markdown Example] \begin{verbatim} [!code] Code Block ''' if [ true ]; do echo "The Cow Jumps over the Moon" fi ''' \end{verbatim} \end{codebox} Will render: \begin{codebox}[Code Block] \begin{verbatim} if [ true ]; do echo "The Cow Jumps over the Moon" fi \end{verbatim} \end{codebox} \begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} \begin{codebox}[Markdown Example] \begin{verbatim} [!cli] Command line A command line example ''' $ ls build chapters conf filters lib LICENSE.md Makefile metadata.yaml >README.md scripts templates ''' \end{verbatim} \end{codebox} Will render: \begin{clibox}[Command line] A command line example \begin{verbatim} $ ls build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates \end{verbatim} \end{clibox} \appendix Appendix A \chapter{Appendix A: Build Environment Notes}\label{appendix-a-build-environment-notes} \section{Installing Pre-Requisites}\label{installing-pre-requisites} \begin{cautionbox}[Not Cross-platform Tested] For Debian / ZorinOS and likely Ubuntu based systems. \end{cautionbox} \subsection{Required}\label{required} \subsubsection{Pandoc}\label{pandoc} \begin{itemize} \tightlist \item https://pandoc.org/ \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 \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 \item https://obsidian.md/ \item \href{https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb}{Deb Package} \end{itemize} \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} \backmatter \chapter*{Glossary}\label{glossary-1} \addcontentsline{toc}{chapter}{Glossary} {\def\LTcaptype{none} % do not increment counter \begin{longtable}[]{@{} >{\raggedright\arraybackslash}p{(\linewidth - 2\tabcolsep) * \real{0.1734}} >{\raggedright\arraybackslash}p{(\linewidth - 2\tabcolsep) * \real{0.8266}}@{}} \toprule\noalign{} \begin{minipage}[b]{\linewidth}\raggedright Term \end{minipage} & \begin{minipage}[b]{\linewidth}\raggedright Description \end{minipage} \\ \midrule\noalign{} \endhead \bottomrule\noalign{} \endlastfoot \textbf{AST (Abstract Syntax Tree)} & Pandoc's internal structured representation of a document. Lua filters operate on the AST before rendering to a target format. \\ \textbf{Bibliography} & A \texttt{.bib} file (e.g., Zotero export) used by Pandoc with \texttt{citeproc} to generate formatted citations and reference lists. \\ \textbf{Callout} & A styled block (e.g., \texttt{{[}!warning{]}}) transformed by Lua filters into format-specific output such as LaTeX environments or HTML \texttt{\textless{}div\textgreater{}} elements. \\ \textbf{Defaults File (YAML)} & A Pandoc configuration file defining output format, filters, metadata, and rendering options (e.g., \texttt{pdf.yaml}, \texttt{html.yaml}). \\ \textbf{DOCX} & Microsoft Word document format generated by Pandoc; styling is controlled via a \texttt{reference.docx} file. \\ \textbf{Filter (Lua)} & A script that modifies Pandoc's AST before rendering. Used in this workflow for callouts and other structural transformations. \\ \textbf{Frontmatter} & Format-specific content inserted before the main body (e.g., \texttt{frontmatter.tex}, \texttt{frontmatter.html}, \texttt{frontmatter-docx.md}). \\ \textbf{HTML} & Web output format generated by Pandoc, typically styled via CSS and supporting interactive features. \\ \textbf{LaTeX} & Typesetting system used for high-quality PDF generation via XeLaTeX in this workflow. \\ \textbf{Lua Filter} & A lightweight scripting extension used by Pandoc to customize document transformations programmatically. \\ \textbf{Makefile} & Automation script orchestrating the build pipeline for PDF, HTML, DOCX, ODT, and Markdown outputs. \\ \textbf{Markdown} & Plain-text markup language serving as the source format for all outputs in the workflow. \\ \textbf{Metadata} & Key--value pairs (e.g., \texttt{metadata.yaml}) defining title, author, license, version, and other document variables. \\ \textbf{ODT} & OpenDocument Text format used by LibreOffice; similar to DOCX but open-standard. \\ \textbf{Pandoc} & Universal document converter used to transform Markdown into PDF, HTML, DOCX, ODT, EPUB, and more. \\ \textbf{PDF} & Portable Document Format output produced via Pandoc + XeLaTeX. \\ \textbf{Reference Document} & A DOCX or ODT file defining styles (fonts, headings, spacing) used when generating Word/LibreOffice outputs. \\ \textbf{Resource Path} & Directories Pandoc searches for images, diagrams, and other assets during rendering. \\ \textbf{Template} & A format-specific layout file (e.g., LaTeX template) used to control document structure beyond styling. \\ \textbf{TOC (Table of Contents)} & Automatically generated navigation structure controlled by \texttt{toc} and \texttt{toc-depth} options. \\ \textbf{XeLaTeX} & LaTeX engine used to generate PDFs with modern font support (via \texttt{fontspec}). \\ \textbf{Zotero} & Reference manager used to generate \texttt{.bib} files for citation processing with Pandoc. \\ \end{longtable} } \clearpage \thispagestyle{plain} \markboth{Index}{Index} \let\oldclearpage\clearpage \let\oldcleardoublepage\cleardoublepage \renewcommand{\clearpage}{} \renewcommand{\cleardoublepage}{} \chapter*{Index} \addcontentsline{toc}{chapter}{Index} \printindex \renewcommand{\clearpage}{\oldclearpage} \renewcommand{\cleardoublepage}{\oldcleardoublepage} \clearpage \thispagestyle{plain} \markboth{Bibliography}{Bibliography} \chapter*{Bibliography}\label{bibliography-1} \addcontentsline{toc}{chapter}{Bibliography} \protect\phantomsection\label{refs} \begin{CSLReferences}{1}{1} \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/. \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 \end{document}