summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/novel
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/luatex/latex/novel
Initial commit
Diffstat (limited to 'macros/luatex/latex/novel')
-rw-r--r--macros/luatex/latex/novel/README.md30
-rw-r--r--macros/luatex/latex/novel/doc/extras/CPmodified.otfbin0 -> 51972 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/NovelDeco-glyphs.pdfbin0 -> 42202 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdfbin0 -> 311166 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-example.tex127
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-extras-README.html36
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-testimage.jpgbin0 -> 1990 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-testimage.pngbin0 -> 1908 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-testscript.jpgbin0 -> 2456 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-testscript.pngbin0 -> 2064 bytes
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-testsuite.tex312
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/10transold.pngbin0 -> 563 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/10trueold.pngbin0 -> 608 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/CPmodified-sample.pngbin0 -> 5898 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/I-shade.pngbin0 -> 5508 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/Iboxcap.pngbin0 -> 7616 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/acronym2.pngbin0 -> 5475 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/alphabetagamma.pngbin0 -> 11185 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/authorsnote.pngbin0 -> 142528 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/badaboom.pngbin0 -> 4711 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/bixby-original.pngbin0 -> 239173 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/bixby-softproof.pngbin0 -> 246911 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/bookmanglerdashboard.pngbin0 -> 22434 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/bookofbeirh.pngbin0 -> 22144 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/chaptertitlesubtitle.pngbin0 -> 21460 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/charscaletext.pngbin0 -> 10831 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/closecrop.pngbin0 -> 19382 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/colormax-original.pngbin0 -> 12701 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/colormax-softproof.pngbin0 -> 14287 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/colorsampler-softproof.pngbin0 -> 95659 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/colorsampler.pngbin0 -> 54423 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/cropmarks.pngbin0 -> 22507 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/cropview.pngbin0 -> 19907 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/ctimg35.pngbin0 -> 4523 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/doordie.pngbin0 -> 39286 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/dorfmcnorf.pngbin0 -> 2349 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/dropcap-antestar.pngbin0 -> 6548 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/dropcap-gap.pngbin0 -> 6181 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/dropcap-scalebloat.pngbin0 -> 6806 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/dropcap.pngbin0 -> 18252 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/emblembar.pngbin0 -> 5479 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/emblemdingbats.pngbin0 -> 6019 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/emblemimg.pngbin0 -> 7415 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/endnotetext.pngbin0 -> 27873 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/firstletterspecial.pngbin0 -> 17688 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/firstlinespecial.pngbin0 -> 17690 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/fluffy-conspiracy.pngbin0 -> 8518 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/font-tree.pngbin0 -> 15268 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/fontbyfamily.pngbin0 -> 5151 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/fontbyfilenamei.pngbin0 -> 4331 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/fpaper.pngbin0 -> 8144 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/frankenfont.pngbin0 -> 5029 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/gnome-censored.pngbin0 -> 37436 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/graytext.pngbin0 -> 9856 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/head-foot-jumps.pngbin0 -> 15625 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfont-default.pngbin0 -> 8187 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfont-montserrat-el.pngbin0 -> 7254 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfont-roboto.pngbin0 -> 7940 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfoot1.pngbin0 -> 14569 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfoot2.pngbin0 -> 14028 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfoot3.pngbin0 -> 14028 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfoot4.pngbin0 -> 14605 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfoot5.pngbin0 -> 14973 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/headfoot6.pngbin0 -> 14429 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/human-robot-talk.pngbin0 -> 16097 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/imgdialogs.pngbin0 -> 33975 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/info18.pngbin0 -> 1288 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/inlineimagest.pngbin0 -> 42231 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/jackbequick.pngbin0 -> 12057 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/jollybeers.pngbin0 -> 7043 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/jpgcolorspace.pngbin0 -> 4533 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/jump-change.pngbin0 -> 69093 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/looseheads.pngbin0 -> 6412 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/lowdown.pngbin0 -> 17173 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/map.pngbin0 -> 7449 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/margins-trim-media.pngbin0 -> 30606 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/mcdingle.pngbin0 -> 20701 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/mediasize.pngbin0 -> 30516 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/megadocprops.pngbin0 -> 24517 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/megatitlepagesm.pngbin0 -> 8567 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/monitorgamut.pngbin0 -> 18804 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/no-brainer.pngbin0 -> 34282 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/novel-color-sampler.pngbin0 -> 80977 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/overflowrule.pngbin0 -> 15026 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/page-leaf.pngbin0 -> 12898 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/parascale.pngbin0 -> 36954 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/perfectbinding.pngbin0 -> 10407 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/pngcolortype.pngbin0 -> 4599 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/printgamut.pngbin0 -> 19633 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/quickchapter.pngbin0 -> 33749 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/raffaelino-original.pngbin0 -> 246157 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/raffaelino-softproof.pngbin0 -> 241149 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/robberies.pngbin0 -> 9411 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/scenebreaks.pngbin0 -> 25213 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/shademargins.pngbin0 -> 30022 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/shakepi.pngbin0 -> 1894 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/signature.pngbin0 -> 5233 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/simpletoc.pngbin0 -> 18412 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/sixpage-frontmatter.pngbin0 -> 9584 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/skygrad.jpgbin0 -> 56275 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/smallcapsrealfake.pngbin0 -> 5448 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/smfingerprint8.pngbin0 -> 13322 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/smythsewn.pngbin0 -> 7134 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/toc.pngbin0 -> 13553 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/topmargins.pngbin0 -> 12250 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/trdol.pngbin0 -> 27867 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/trimsize.pngbin0 -> 41850 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/ublibser.pngbin0 -> 34135 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/unsafe-vs-margin.pngbin0 -> 19235 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/whichgutter.pngbin0 -> 19012 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/win10libser.pngbin0 -> 10690 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/workedforme.pngbin0 -> 62302 bytes
-rw-r--r--macros/luatex/latex/novel/doc/html-resources/wrapme.pngbin0 -> 4256 bytes
-rw-r--r--macros/luatex/latex/novel/doc/novel-documentation.html3270
-rw-r--r--macros/luatex/latex/novel/doc/novel.pdf860
-rw-r--r--macros/luatex/latex/novel/doc/novel.tex125
-rw-r--r--macros/luatex/latex/novel/fonts/NovelDeco.otfbin0 -> 132000 bytes
-rw-r--r--macros/luatex/latex/novel/novel-CGATSTR001.clo28
-rw-r--r--macros/luatex/latex/novel/novel-CalculateLayout.sty328
-rw-r--r--macros/luatex/latex/novel/novel-ChapterScene.sty406
-rw-r--r--macros/luatex/latex/novel/novel-DropCap.sty235
-rw-r--r--macros/luatex/latex/novel/novel-FOGRA39.clo27
-rw-r--r--macros/luatex/latex/novel/novel-FileData.sty208
-rw-r--r--macros/luatex/latex/novel/novel-Fonts.sty416
-rw-r--r--macros/luatex/latex/novel/novel-Footnotes.sty431
-rw-r--r--macros/luatex/latex/novel/novel-HeadFootStyles.sty498
-rw-r--r--macros/luatex/latex/novel/novel-Images.sty567
-rw-r--r--macros/luatex/latex/novel/novel-JC200103.clo27
-rw-r--r--macros/luatex/latex/novel/novel-LayoutSettings.sty435
-rw-r--r--macros/luatex/latex/novel/novel-Obsolete.sty485
-rw-r--r--macros/luatex/latex/novel/novel-PostLayout.sty263
-rw-r--r--macros/luatex/latex/novel/novel-Sandbox.sty145
-rw-r--r--macros/luatex/latex/novel/novel-TextMacros.sty587
-rw-r--r--macros/luatex/latex/novel/novel-microtype.cfg252
-rw-r--r--macros/luatex/latex/novel/novel-pdfx.sty517
-rw-r--r--macros/luatex/latex/novel/novel-xmppacket.sty186
-rw-r--r--macros/luatex/latex/novel/novel.cls678
137 files changed, 11479 insertions, 0 deletions
diff --git a/macros/luatex/latex/novel/README.md b/macros/luatex/latex/novel/README.md
new file mode 100644
index 0000000000..db96138c6b
--- /dev/null
+++ b/macros/luatex/latex/novel/README.md
@@ -0,0 +1,30 @@
+# THE NOVEL DOCUMENT CLASS
+
+The *novel* LuaLaTeX document class is specifically written to meet the needs of original fiction writers, who are typesetting their own novels for non-color print-on-demand technology. If that does not describe your objective, then this is the wrong document class for you. There is no support for E-books. The needs of academic writers and picture-book layout are largely unmet.
+
+If your book is a detective novel, science fiction, romance, or collection of short stories, then you are in the right place. This document class has been used for creating several actual printed novels, both text interior and color cover. Internal code can create PDF/X files for the interior and cover. Furthermore, a color cover image can be separated to CMYK at 240% ink limit, as required by some print-on-demand services.
+
+This class requires TeXLive 2016 or later, or recent MiKTeX. Distributions based on TeXLive 2015 or earlier will fail.
+
+Extensive documentation is in HTML format. The "novel.pdf" file is merely a place-holder.
+
+## News:
+
+Version 1.52, April 26, 2018: Enhanced detection and Warnings, using Lua code.
+
+Version 1.50.5, April 11, 2018: Minor bug fix (incorrect warning message).
+
+Version 1.50.4, April 7, 2018: Enhancements to novel-scripts.
+
+Version 1.50.3, April 5, 2018: Further minor enhancements to novel-scripts.
+
+Version 1.50.2, April 3, 2018: Minor enhancements to novel-scripts.
+
+Version 1.50.1, March 29, 2018: New features pertaining to image placement. Scripts for pre-processing images. Sandbox mode. Internal drop cap capability. Reference to obsolete macros removed from documentation. General cleanup of documentation and internal code.
+
+Version 1.46.2, January 14, 2018: Now called the "old" version. Internal code cleanup, docs cleanup. No known bugs.
+
+## License:
+
+The LaTeX code and documentation are licensed under the LaTeX Project Public License, v.1.3c. The included fonts NovelDeco.otf and CPmodified.otf are licensed under the SIL Open Font License, v.1.1.
+
diff --git a/macros/luatex/latex/novel/doc/extras/CPmodified.otf b/macros/luatex/latex/novel/doc/extras/CPmodified.otf
new file mode 100644
index 0000000000..29df311a97
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/CPmodified.otf
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/NovelDeco-glyphs.pdf b/macros/luatex/latex/novel/doc/extras/NovelDeco-glyphs.pdf
new file mode 100644
index 0000000000..27fa8e9905
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/NovelDeco-glyphs.pdf
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf b/macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf
new file mode 100644
index 0000000000..2e623ca54b
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-Gallery-ChapterStart.pdf
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/novel-example.tex b/macros/luatex/latex/novel/doc/extras/novel-example.tex
new file mode 100644
index 0000000000..c6f025585c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-example.tex
@@ -0,0 +1,127 @@
+% !TeX TS-program = LuaLaTeX
+% !TeX encoding = UTF-8
+%
+% EXAMPLE OF NOVEL DOCUMENT CLASS
+% Uses mostly default layout.
+% IF YOU COMPILE THIS DOCUMENT: Be sure that this file, and its generated PDF,
+% have read/write permissions for any user. If they don't, then
+% compile will fail at the point where files are written.
+\documentclass{novel} % v. 1.52.
+\SetTitle{Dark and Stormy}
+\SetSubtitle{A Tale of Nights}
+\SetAuthor{Dirk Hardcase}
+\SetPDFX[CGATSTR001]{X-1a:2001}
+\begin{document}
+
+\frontmatter
+
+% i. Half-Title page:
+\thispagestyle{empty}
+\vspace*{6\nbs}
+\hfill\charscale[1.8]{\textbf{Dark and}}\par
+\vspace{\nbs}
+\hfill\charscale[2.4]{\textbf{\color{gray}Stormy}}\par
+\clearpage
+
+% ii. Blank page:
+\thispagestyle{empty}
+\null
+\clearpage
+
+% iii. Full Title page:
+\thispagestyle{empty}
+\vspace*{5\nbs}
+\begin{center}
+\charscale[3.6]{\textbf{Dark and}}\par
+\vspace{2\nbs}
+\charscale[4.8]{\textbf{\color{gray}Stormy}}\par
+\vspace{1.5\nbs}
+\charscale[1.6]{A Tale of Nights}\par
+\vspace{4\nbs}
+\ChapterDeco[6]{\decoglyph{n9548}}
+\vspace{4\nbs}
+{\addfontfeature{Scale=3}\theAuthor}
+\vfill
+{\addfontfeature{Scale=1.25} Nonexistent Publications\\
+Anytown • Anyplace • Anywhere}\par
+
+\end{center}
+\clearpage
+
+
+% iv. Copyright page:
+\thispagestyle{empty}
+\begin{center}
+\itshape{
+\null
+\vfill
+\textsc{Dark and Stormy}\par
+Copyright ©2017 Dirk Hardcase.\par % Whichever year, copyright holder.
+All Rights Reserved.\par % Usually no need to be elaborate.
+\null
+This is a work of fiction.\\
+All persons and events are\\
+from the author's imagination.\\
+Resemblance to any real person,\\
+living or dead, is coincidental.\par % Or similar language.
+\null
+Printed on acid-free paper.\par % If true. Usually is true.
+Printed in the United States of America.\par % Or whichever nation.
+\null
+ISBN 0-12345678-9\par % Whatever it is. No barcode, just number.
+\null
+
+Independently Published by Dirk Hardcase,\par % Publisher is you, not the print/distribution service.
+Anytown, Anystate USA\par % Publisher's location.
+www.example.com/dhardcase/publications/\par % Contact for publisher or author.
+\null
+Publisher's Cataloging-In-Publication Data\\
+available upon request.\par
+% Fiction often does not need catalog data.
+} % end itshape
+\end{center}
+\clearpage
+
+% v. Epigraph, Dedication, Table of Contents, or repeated Half-Title.
+% In this case, an Epigraph:
+\thispagestyle{empty}
+\vspace*{7\nbs}
+\begin{adjustwidth}{5em}{5em}
+\noindent When the lone raccoon howls at dusk,\\
+And white birds cease their twitter,\\
+Then shall the rivers overflow with mead.\par
+\hfill---\textit{Prophecy of Claudius}\par
+\end{adjustwidth}
+\cleartorecto % here, inserts blank, so mainmatter begins recto
+
+% Now to begin your story:
+\mainmatter
+
+% Chapter One:
+\begin{ChapterStart}
+\vspace*{3\nbs}
+\ChapterTitle{Chapter One}
+\end{ChapterStart}
+
+It was a dark and stormy night. Lord Withens rode his horse through the gloom, which was, as heretofore mentioned, dark. Most gloom is dark, eh wot?
+
+Moving right along, his horse arrived at the back door of Lady Wishintale's quarters. Sadly, Lord Withens was not on it, having slipped off his saddle along the way. That was because the weather was stormy.
+
+\lipsum
+
+% Chapter Two:
+\clearpage % next chapter may begin recto or verso
+\begin{ChapterStart}
+\vspace*{3\nbs}
+\ChapterTitle{Chapter Two}
+\end{ChapterStart}
+
+The night was still dark and stormy. This should not be surprising, seeing as how only half an hour has elapsed since the first chapter. That information was necessary, in case you put the book down and haven't read any of it for the last two weeks.
+
+Lord Withens, wet and bruised, finally arrived at his destination. The reason he was wet was because, as has been noted, the weather was stormy. It was dark, too.
+
+\lipsum
+
+
+\end{document}
+
diff --git a/macros/luatex/latex/novel/doc/extras/novel-extras-README.html b/macros/luatex/latex/novel/doc/extras/novel-extras-README.html
new file mode 100644
index 0000000000..c199c3cad5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-extras-README.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+<meta charset="UTF-8" />
+<title>README for novel extras</title>
+</head>
+<body style="padding:16px">
+
+<h2>README for novel extras</h2>
+
+<p>This folder contains items that may be helpful, but are not essential to operation of the <i>novel</i> document class. Version 1.52.</p>
+
+<p>File <i>novel-example.tex</i> is a fake short novel. If you wish to compile it, place a copy in your user home folder (or other place where you have read/write privilege) and compile it there.</p>
+
+<p>File <i>novel-testsuite.tex</i> exercises the various capabilities of the document class. You can look at the code, and see how it compiles. You may also change settings, to see what they do. It requires files <i>novel-testimage.png</i>, <i>novel-testimage.jpg</i>, <i>novel-testscript.png</i>, and <i>novel-testscript.jpg</i>. If you wish to compile it, place a copy (along with images) in your user home folder (or other place where you have read/write privilege) and compile it there.</p>
+
+<p>File <i>novel-decoglyphs.pdf</i> shows the decorative characters in the <i>NovelDeco.otf</i> file, along with the codes needed to retrieve them.</p>
+
+<p>File <i>novel-Gallery-ChapterStart.pdf</i> shows a number of different ways to begin a chapter, making use of the ChapterStart environment and related commands. These are only suggestions.</p>
+
+<p>File <i>CPmodified.otf</i> is not (normally) for use in TeX. I use it when editing my work in a word processor, prior to TeX markup. To use it, install the font in your operating system (not in TeX) where a word processor can find it. This font is nearly-monospaced, with exaggerated punctuation marks. I have found that punctuation errors are most frequently overlooked during editing, since they are so small in many fonts, and the spell-check software doesn't find the errors.</p>
+
+
+<div>
+<h3>novel-scripts.zip</h3>
+<p>This zip archive contains Windows batch scripts, and Linux/OSX BASH scripts, for automatic image conversion.</p>
+<p>The scripts are meant to ensure that your use of images complies with commercial printing standards. In particular, they provide a method for converting color cover artwork to CMYK at 240% ink limit, in a PDF/X-1a:2001 file.</p>
+<p>Complete usage instructions are documented within the zip archive.</p>
+</div>
+
+
+
+
+</body>
+</html>
diff --git a/macros/luatex/latex/novel/doc/extras/novel-testimage.jpg b/macros/luatex/latex/novel/doc/extras/novel-testimage.jpg
new file mode 100644
index 0000000000..6e39d29be5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-testimage.jpg
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/novel-testimage.png b/macros/luatex/latex/novel/doc/extras/novel-testimage.png
new file mode 100644
index 0000000000..1fabb2ccf2
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-testimage.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/novel-testscript.jpg b/macros/luatex/latex/novel/doc/extras/novel-testscript.jpg
new file mode 100644
index 0000000000..e1fac7cd45
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-testscript.jpg
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/novel-testscript.png b/macros/luatex/latex/novel/doc/extras/novel-testscript.png
new file mode 100644
index 0000000000..77fb7e1da9
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-testscript.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/extras/novel-testsuite.tex b/macros/luatex/latex/novel/doc/extras/novel-testsuite.tex
new file mode 100644
index 0000000000..ae341921db
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/extras/novel-testsuite.tex
@@ -0,0 +1,312 @@
+% !TeX TS-program = LuaLaTeX
+% !TeX encoding = UTF-8
+%
+% TEST SUITE FOR NOVEL DOCUMENT CLASS
+%
+% IF YOU COMPILE THIS DOCUMENT: Be sure that this file, and its generated PDF,
+% have read/write permissions for any user. If they don't, then
+% compile will fail at the point where files are written.
+%
+% This document tests the various capabilities of `novel' document class.
+% The Preamble settings are originally the defaults.
+% Change them to exercise the setting, and see the result.
+% In the document body, various commands are exercised.
+%
+% You need all fonts from the `libertinus' package,
+% all fonts from `lmodern' package,
+% and the included NovelDeco.otf.
+%
+% You also need the file` novel-testimage.png'
+% in the same folder as this document.
+% It is grayscale png, 150x150 pixels, with resolution 300pdi.
+%
+% The `test' class option is required. You may add others.
+\documentclass[test,shademargins,draft]{novel} % v. 1.52.
+\SetTitle{Test Suite}
+\SetSubtitle{Novel Document Class}
+\SetAuthor{Author Name}
+% Additional Preamble, if desired.
+
+
+\begin{document}
+
+\frontmatter % begins at page i.
+
+\thispagestyle{footer}
+\vspace*{5\nbs}
+\begin{center}
+\charscale[3.6]{\textbf{Test Suite}}\par
+\vspace{1.5\nbs}
+\charscale[1.6]{Novel Document Class}\par
+\vspace{4\nbs}
+\ChapterDeco[6]{\decoglyph{n9548}}
+\vspace{2\nbs}
+\charscale[1.5]{The following page will be blank!}\par
+\vfill
+If you choose a head/foot style with footer, then page number i (lowercase roman) will appear in the footer below.\par
+But if the head/foot style has no footer, then nothing below.\par
+\end{center}
+\clearpage
+
+
+% Now to begin at page 1:
+\mainmatter
+
+\begin{ChapterStart}[10]
+\vspace*{3\nbs}
+\ChapterTitle{Chapter One}
+\ChapterSubtitle{Dark and Stormy}
+\ChapterDeco[4]{\decoglyph{n9548}}
+\end{ChapterStart}
+
+This tests the ChapterStart environment, plus \string\ChapterTitle, \string\ChapterSubtitle, \string\ChapterDeco, and \string\decoglyph.
+
+In the TeX document, you can change the height of the environment, the alignment of its components, the decoglyph, and so forth.
+
+The first paragraph will not be indented, but all following paragraphs will be indented.
+
+Since this is a recto (odd-numbered) page at right side, the default margins will be a little larger at left, where there is an allowance for binding gutter.
+
+Unless you change the head/foot style, you should see no heading. Arabic page number 1 should be at the bottom.
+
+\clearpage
+
+
+% NEXT PAGE:
+
+This page tests the \string\charscale\space command, and \string\rotatebox. The combined effect is shown below:\par
+\vspace{1.5\nbs} % trial and error
+\charscale[2,3em,-4em]{\rotatebox[origin=c]{45}{Random Test Items}}
+\vspace{7.5\nbs} % trial and error
+
+Above, you should see the phrase Random Test Items in larger than normal text, tilted 45 degrees, nicely fitting between the text above and this text. Offset has been used, so it is not quite centered.
+
+If you change the font size or number of lines per page, then the tilted phrase might not fit nicely. That can be fixed by changing the amount of \string\vspace\space above and below the rotated text.
+
+The amount of \string\vspace\space is not calculated automatically. You have to determine it by trial and error (or do some math). The total amount of \string\vspace, top and bottom, must be an integer.
+
+If you use \string\rotatebox\space without \string\charscale, then it will create its own vertical gap. Unfortunately, the height of this gap is very difficult for you to calculate, so you would not be able to easily restore the line grid by adding some amount of \string\vspace. So, don't use \string\rotatebox\space without \string\charscale.
+
+\clearpage
+
+
+% NEXT PAGE:
+
+This page tests \string\FloatImage\space effects. Remember that \textit{novel} uses its own methods of placing images.
+
+There will be a gap before the image appears. In the tex code, find \string\vspace\space there, and change the space. At some point, the image will float to the top of the following page.
+
+\vspace{7\nbs}
+
+\FloatImage[ht]{novel-testimage.png}
+
+Above, the top of the image sits where the baseline of text would be. If the image fits where placed, then this paragraph comfortably clears the bottom of the image. If the gap is increased so that the image flats to the top of the next page, then this paragraph will be directly beneath the preceding paragraph.
+
+
+
+\clearpage
+
+% NEXT PAGE:
+
+This page tests \string\InlineImage\space effects. Note that the command also has a starred version. The difference: Unstarred, the width of the image is taken into account. Starred, the width of the image is ignored.
+
+\null
+
+\noindent\InlineImage*[0,\normalXheight]{novel-testimage.png}This paragraph is not indented. The starred command places an image, offset so that its top sits at the X-height of the text. The image underlies the following text. If you use this effect, then be sure that the image is much lighter, or the text will be hard to read.
+
+\null\null\null
+
+\noindent\InlineImage[0,b-\normaldescender]{novel-testimage.jpg}This paragraph is not indented. The unstarred command places an image, offset so that its bottom sits at the descender of the text. It was necessary to insert previous blank lines, or the image would overlie (and obscure) the preceding paragraph.
+
+\null\null
+
+\noindent\InlineImage[0,1.5em]{novel-testscript.png}This paragraph is not indented. The unstarred command places an image, offset so that it rises above the paragraph, and also descends beneath the following text.
+
+\null\null
+
+In all of the above, the alignments will change, if you change the text size or lines per page.
+
+\clearpage
+
+
+% NEXT PAGE:
+
+This page tests \string\WrapImage. The command is written following the paragraph you are now reading.
+
+\WrapImage[r]{novel-testscript.jpg}
+
+The image will appear at right, with this text flowing around it. the first few lines will be at the left of the image. Then, as the paragraph continues, it eventually is restored to full text width, once it gets past the bottom of the image. Note that the top of the image is aligned to the X-height of the first line of text.
+
+\null
+\null
+
+\clearpage
+
+% NEXT 2 PAGES:
+
+This page, combined with the following page, test the detection mechanism for \string\scenebreak, \string\sceneline, and \string\scenestars.
+
+In the source document, there is \string\vspace\space following this paragraph. To detect the effects, vary the \string\vspace.
+
+% Change this to see the effects:
+\vspace{20\nbs} % originally 20\nbs
+
+Following this paragraph is the \string\scenestars\space command. It prints a few asterisks centered in a gap. It is one way to indicate that a scenbreak is present, when the break occurs at the very top or bottom of a page (because a blank line might not be noticed there).
+
+\scenestars
+
+If you change the above \string\vspace\space to 25\string\nbs, you will get a Warning about the line being too close to the bottom. Change to 28\string\nbs, and the Warning will say that it is too close to the top (of the following page. Note that \string\scenestars\space is allowed to be at the very bottom or very top, or somewhere in the middle of the page. The same applies to \string\sceneline.
+
+If you wish, you can always use \string\scenestars\space or \string\sceneline\space to indicate a scene break. But more common practice is to use a blank line, \string\scenebreak, except for those cases where you ``must'' use one of the others.
+
+\scenebreak
+
+Above this paragraph is \string\scenebreak, which appears as a blank line. A \string\scenebreak\space cannot be located close to the top or bottom of a page. Unlike \string\sceneline\space or \string\scenestars, you cannot place \string\scenebreak\space at the very top or bottom, either. So, changing the \string\vspace\space to any of 14\string\nbs\space through 17\string\nbs\space will generate a Warning.
+
+\clearpage
+
+
+% NEXT PAGE:
+
+This page tests the footnote and endnote capabilities.\footnote{This is the first sample footnote. Unless you change the marker style, it will be marked with an asterisk.} Two footnotes have been placed.\footnote{This is the second footnote. Unless you change the marker style, it will be marked by a dagger.}
+
+\null
+
+Test of \string\QuickChapter:
+
+
+\QuickChapter[3em]{Just Before Midnight}
+
+Above, \string\QuickChapter\space inserted two blank lines, in which a phrase is followed by a short line. The text is slightly larger than normal, and sits slightly above the normal baseline.
+
+\null
+
+There is a \string\bigemdash\space between here\makebox[2.5em]{\bigemdash}and here. Its length is set at 2.5em, using \string\makebox. Compare to normal—emdash. Thickness and yoffset is adjustable.
+
+\null
+
+This tests the endnote capability.\endnote You will see marker 1 after the last sentence, and marker 2 after this one.\endnote\memo{This text does not print.} But no actual endnotes are created. You may manually place them wherever you wish. For that, you may use the \string\endnotetext\space command (if its style works for you), or any other method.
+
+\null
+
+\endnotetext{1}{This tests the \string\endnotetext\space command, although you would not normally place the text of an endnote here. It is only a test.\par}
+
+\endnotetext{2}{Text for a second endnote.\par}
+
+\clearpage
+
+
+% NEXT PAGE:
+
+The following tests the \textit{parascale} environment:
+
+\begin{parascale}[0.8]
+But this text has a different scale than normal. Both the font size and the baseline skip have been proportionately changed. As a result, the lines are not on the normal line grid.\par
+If the following normal text needs to be back on grid (usually the case), here is what you must do: Compile, and note the number of lines occupied by the scaled text. Calculate the discrepancy, and fix with \string\vspace. Or let \textit{novel} do the thinking for you; there will be a Warning message with advice.\par
+\vspace{0.2\nbs} % based on result of Warning.
+\end{parascale}
+
+Back to normal text. At the dimensions originally used for this test, there are 9 lines of scaled text. Not counting the first scaled line, the remaining 8 scaled lines each introduce a deficit of 0.2\string\nbs. So, the cumulative deficit is 1.6\string\nbs. The integer part doesn't matter. So, \string\vspace{0.6\string\nbs} must be added prior to \string\end\{parascale\}, to restore the normal line grid.
+
+It is also possible to split the \string\vspace, prior to \string\begin\{parascale\} and \string\end\{parascale\}, as long as the total is correct.
+
+If the \string\vspace\space is not added, then there will be a Warning message.
+
+If the parascale spans more than one page, then the correct amount to add will depend on the lines present on the final page, not the total number of lines.
+
+\clearpage
+
+
+% NEXT PAGE
+
+This page tests the \textit{adjustwidth} environment. Changing textwidth is a useful way to create block indents, occasionally used for long quotations, or for other special text that must be visually distinguished from normal.
+
+\begin{adjustwidth}{2\normalparindent}{\normalparindent}
+\forceindent This text uses the \textit{adjustwidth} environment. It is set to block indent 2\string\normalparindent\space at left, and indent 1\string\normalparindent\space at right. The \string\forceindent\space command precedes the text, so that (within the block) it indents like an ordinary paragraph.\par
+\end{adjustwidth}
+
+This text is after the environment, so it occupies the normal amount of text width.
+
+\clearpage
+
+
+% NEXT PAGE:
+
+This tests various text effects:
+
+\null
+
+\FirstLine{\noindent\charscale[2]{T}\hspace{-2pt}his line has its first letter enlarged, and sets the first line in small caps. After the first line, text continues as usual. Note that space must be provided prior to this paragraph, so that the first letter does not intrude on text (or margin) above it.}
+
+The \string\charscale\space command scales the letter, and \string\FirstLine\space performs the small caps. Also, some kerning was applied so that the large T has the following \textsc{h} resting beneath its top. The \string\noindent\space command goes inside \string\FirstLine.
+
+\null\null
+
+\dropcap{H}ere is placed is a drop cap, using \textit{novel's} \string\dropcap\space command. Alternatively, the \textit{lettrine} package could be used. There are differences in how the drop caps are specified, depending on what you do. So, be sure to read the documentation, or you will be surprised.\par
+In general, it is difficult to style drop caps so that they look good for many different letters. An alternative is to use images for the drop caps. If you use images, please read the \textit{novel} documentation, as the method is not the same as the usual methods from the \textsc{lettrine} package.\par
+Note that there is no automated way to combine a drop cap with a first line in small caps. This is discussed in \textsc{novel} documentation.
+
+\null
+This line is in the main font.\par
+\textsf{This line is in the sans font.}\par
+\texttt{This line is in the mono font.}\par
+{\mustbelibertinus This line is in Libertinus Serif.}\par % specific to testsuite
+{\mustbelmodern This line is in Latin Modern Roman.}\par % specific to testsuite
+
+
+\clearpage
+
+
+% NEXT PAGE:
+
+\thispagestyle{dropfoliobeneath} % compare to dropfolioinside
+
+This page tests drop folio. There will be no page header. If your head/foot style normally has a footer, then you will see it as usual.
+
+If you choose a head/foot style without footer, you will still see a page number centered below. Exactly where it appears will depend on which kind of drop folio is used.
+
+If using \string\thispagestyle\{dropfoliobeneath\} then the page number will appear within the lower margin.
+
+If using \string\thispagestyle\{dropfolioinside\} then the page number will appear just above the lower margin, where the final line of text would otherwise be placed.
+
+Use class options [draft,shademargins] to see the position.
+
+The initial choice is \textit{dropfoliobeneath}.
+
+\clearpage
+
+% NEXT PAGE:
+
+This tests the \string\cleartoend\space command. If this page is recto (odd), then exactly one blank page will follow. If this page is verso (even), then exactly two blank pages will follow.
+
+\null\null
+
+
+When you request PDF/X (default), whether or not you are in draft mode, each image placed in your document is inspected. This is one of those things that require Lua code, which is one reason why the \textit{novel} class requires LuaLaTeX only.
+
+When an image is inspected, it is added to one of two lists, either good or unknown. Each time an image is requested, the lists are examined, so the same image file is not inspected twice. This saves time.
+
+The lists are saved in the \textit{aux} file. Then, if you re-compile, images already inspected won't be re-inspected. To re-initialize the lists, discard the \textit{aux} file.
+
+\null
+
+Two of the images were pre-processed via \textit{novel-scripts}. These will be detected as good. They are:
+
+\makeatletter\@AllGoodImages\makeatother
+
+\null
+
+Two of the images were not pre-processed, so their compliance is unknown. They might be good or bad. They are:
+
+ \makeatletter\@UnknownImages\makeatother
+
+\null
+
+Note: If you change the document settings to \string\SetPDFX\{off\} then you will not see either of the image lists, and will not get the Warning message.
+
+Also, using \string\SetPDFX\{off\} will re-initialize the lists.
+
+
+
+\end{document}
+
diff --git a/macros/luatex/latex/novel/doc/html-resources/10transold.png b/macros/luatex/latex/novel/doc/html-resources/10transold.png
new file mode 100644
index 0000000000..515a544795
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/10transold.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/10trueold.png b/macros/luatex/latex/novel/doc/html-resources/10trueold.png
new file mode 100644
index 0000000000..5b9809dc25
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/10trueold.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/CPmodified-sample.png b/macros/luatex/latex/novel/doc/html-resources/CPmodified-sample.png
new file mode 100644
index 0000000000..e7efeb44ae
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/CPmodified-sample.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/I-shade.png b/macros/luatex/latex/novel/doc/html-resources/I-shade.png
new file mode 100644
index 0000000000..b22694e83f
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/I-shade.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/Iboxcap.png b/macros/luatex/latex/novel/doc/html-resources/Iboxcap.png
new file mode 100644
index 0000000000..f23548fe79
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/Iboxcap.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/acronym2.png b/macros/luatex/latex/novel/doc/html-resources/acronym2.png
new file mode 100644
index 0000000000..62399d36b7
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/acronym2.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/alphabetagamma.png b/macros/luatex/latex/novel/doc/html-resources/alphabetagamma.png
new file mode 100644
index 0000000000..da3750d618
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/alphabetagamma.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/authorsnote.png b/macros/luatex/latex/novel/doc/html-resources/authorsnote.png
new file mode 100644
index 0000000000..a07b0b1b1f
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/authorsnote.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/badaboom.png b/macros/luatex/latex/novel/doc/html-resources/badaboom.png
new file mode 100644
index 0000000000..209e3638e6
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/badaboom.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/bixby-original.png b/macros/luatex/latex/novel/doc/html-resources/bixby-original.png
new file mode 100644
index 0000000000..60b88ab019
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/bixby-original.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/bixby-softproof.png b/macros/luatex/latex/novel/doc/html-resources/bixby-softproof.png
new file mode 100644
index 0000000000..e30c22804c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/bixby-softproof.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/bookmanglerdashboard.png b/macros/luatex/latex/novel/doc/html-resources/bookmanglerdashboard.png
new file mode 100644
index 0000000000..860ba4db7b
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/bookmanglerdashboard.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/bookofbeirh.png b/macros/luatex/latex/novel/doc/html-resources/bookofbeirh.png
new file mode 100644
index 0000000000..75c93f7358
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/bookofbeirh.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/chaptertitlesubtitle.png b/macros/luatex/latex/novel/doc/html-resources/chaptertitlesubtitle.png
new file mode 100644
index 0000000000..f82d20a9fe
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/chaptertitlesubtitle.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/charscaletext.png b/macros/luatex/latex/novel/doc/html-resources/charscaletext.png
new file mode 100644
index 0000000000..1f7dc9a245
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/charscaletext.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/closecrop.png b/macros/luatex/latex/novel/doc/html-resources/closecrop.png
new file mode 100644
index 0000000000..0aee0430d5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/closecrop.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/colormax-original.png b/macros/luatex/latex/novel/doc/html-resources/colormax-original.png
new file mode 100644
index 0000000000..f7ba4e22da
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/colormax-original.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/colormax-softproof.png b/macros/luatex/latex/novel/doc/html-resources/colormax-softproof.png
new file mode 100644
index 0000000000..cd0072ecd5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/colormax-softproof.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/colorsampler-softproof.png b/macros/luatex/latex/novel/doc/html-resources/colorsampler-softproof.png
new file mode 100644
index 0000000000..ecc217db4c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/colorsampler-softproof.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/colorsampler.png b/macros/luatex/latex/novel/doc/html-resources/colorsampler.png
new file mode 100644
index 0000000000..bc1850a71d
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/colorsampler.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/cropmarks.png b/macros/luatex/latex/novel/doc/html-resources/cropmarks.png
new file mode 100644
index 0000000000..56bb38f4c0
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/cropmarks.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/cropview.png b/macros/luatex/latex/novel/doc/html-resources/cropview.png
new file mode 100644
index 0000000000..4c317fdfef
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/cropview.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/ctimg35.png b/macros/luatex/latex/novel/doc/html-resources/ctimg35.png
new file mode 100644
index 0000000000..17f17cc90e
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/ctimg35.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/doordie.png b/macros/luatex/latex/novel/doc/html-resources/doordie.png
new file mode 100644
index 0000000000..7d2682b3ac
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/doordie.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/dorfmcnorf.png b/macros/luatex/latex/novel/doc/html-resources/dorfmcnorf.png
new file mode 100644
index 0000000000..71d5d6cc1d
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/dorfmcnorf.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/dropcap-antestar.png b/macros/luatex/latex/novel/doc/html-resources/dropcap-antestar.png
new file mode 100644
index 0000000000..8032e77c39
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/dropcap-antestar.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/dropcap-gap.png b/macros/luatex/latex/novel/doc/html-resources/dropcap-gap.png
new file mode 100644
index 0000000000..f224662d6c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/dropcap-gap.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/dropcap-scalebloat.png b/macros/luatex/latex/novel/doc/html-resources/dropcap-scalebloat.png
new file mode 100644
index 0000000000..10642ee212
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/dropcap-scalebloat.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/dropcap.png b/macros/luatex/latex/novel/doc/html-resources/dropcap.png
new file mode 100644
index 0000000000..19343ec823
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/dropcap.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/emblembar.png b/macros/luatex/latex/novel/doc/html-resources/emblembar.png
new file mode 100644
index 0000000000..ace8baa000
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/emblembar.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/emblemdingbats.png b/macros/luatex/latex/novel/doc/html-resources/emblemdingbats.png
new file mode 100644
index 0000000000..d7a1963dcb
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/emblemdingbats.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/emblemimg.png b/macros/luatex/latex/novel/doc/html-resources/emblemimg.png
new file mode 100644
index 0000000000..6d85eab129
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/emblemimg.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/endnotetext.png b/macros/luatex/latex/novel/doc/html-resources/endnotetext.png
new file mode 100644
index 0000000000..b8364968fd
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/endnotetext.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/firstletterspecial.png b/macros/luatex/latex/novel/doc/html-resources/firstletterspecial.png
new file mode 100644
index 0000000000..e527dfab3b
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/firstletterspecial.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/firstlinespecial.png b/macros/luatex/latex/novel/doc/html-resources/firstlinespecial.png
new file mode 100644
index 0000000000..e1ebfe3cb5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/firstlinespecial.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/fluffy-conspiracy.png b/macros/luatex/latex/novel/doc/html-resources/fluffy-conspiracy.png
new file mode 100644
index 0000000000..00e9d5b89b
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/fluffy-conspiracy.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/font-tree.png b/macros/luatex/latex/novel/doc/html-resources/font-tree.png
new file mode 100644
index 0000000000..8dfd260197
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/font-tree.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/fontbyfamily.png b/macros/luatex/latex/novel/doc/html-resources/fontbyfamily.png
new file mode 100644
index 0000000000..1f67748159
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/fontbyfamily.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/fontbyfilenamei.png b/macros/luatex/latex/novel/doc/html-resources/fontbyfilenamei.png
new file mode 100644
index 0000000000..77c8ca74db
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/fontbyfilenamei.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/fpaper.png b/macros/luatex/latex/novel/doc/html-resources/fpaper.png
new file mode 100644
index 0000000000..204be0027d
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/fpaper.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/frankenfont.png b/macros/luatex/latex/novel/doc/html-resources/frankenfont.png
new file mode 100644
index 0000000000..3ecb22dd7e
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/frankenfont.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/gnome-censored.png b/macros/luatex/latex/novel/doc/html-resources/gnome-censored.png
new file mode 100644
index 0000000000..7a362452b6
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/gnome-censored.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/graytext.png b/macros/luatex/latex/novel/doc/html-resources/graytext.png
new file mode 100644
index 0000000000..c37f843954
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/graytext.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/head-foot-jumps.png b/macros/luatex/latex/novel/doc/html-resources/head-foot-jumps.png
new file mode 100644
index 0000000000..d7f3495735
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/head-foot-jumps.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfont-default.png b/macros/luatex/latex/novel/doc/html-resources/headfont-default.png
new file mode 100644
index 0000000000..57b57c46a6
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfont-default.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfont-montserrat-el.png b/macros/luatex/latex/novel/doc/html-resources/headfont-montserrat-el.png
new file mode 100644
index 0000000000..d19d0664c1
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfont-montserrat-el.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfont-roboto.png b/macros/luatex/latex/novel/doc/html-resources/headfont-roboto.png
new file mode 100644
index 0000000000..8363bb9baa
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfont-roboto.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfoot1.png b/macros/luatex/latex/novel/doc/html-resources/headfoot1.png
new file mode 100644
index 0000000000..d418c4a6f5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfoot1.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfoot2.png b/macros/luatex/latex/novel/doc/html-resources/headfoot2.png
new file mode 100644
index 0000000000..9dbd29dd6c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfoot2.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfoot3.png b/macros/luatex/latex/novel/doc/html-resources/headfoot3.png
new file mode 100644
index 0000000000..90b2ffecfe
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfoot3.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfoot4.png b/macros/luatex/latex/novel/doc/html-resources/headfoot4.png
new file mode 100644
index 0000000000..1970088379
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfoot4.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfoot5.png b/macros/luatex/latex/novel/doc/html-resources/headfoot5.png
new file mode 100644
index 0000000000..c8ddd6f1bc
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfoot5.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/headfoot6.png b/macros/luatex/latex/novel/doc/html-resources/headfoot6.png
new file mode 100644
index 0000000000..bf39f21d3a
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/headfoot6.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/human-robot-talk.png b/macros/luatex/latex/novel/doc/html-resources/human-robot-talk.png
new file mode 100644
index 0000000000..461b4eb6d4
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/human-robot-talk.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/imgdialogs.png b/macros/luatex/latex/novel/doc/html-resources/imgdialogs.png
new file mode 100644
index 0000000000..a8fce8d662
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/imgdialogs.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/info18.png b/macros/luatex/latex/novel/doc/html-resources/info18.png
new file mode 100644
index 0000000000..7a58a6c706
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/info18.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/inlineimagest.png b/macros/luatex/latex/novel/doc/html-resources/inlineimagest.png
new file mode 100644
index 0000000000..18420d8b20
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/inlineimagest.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/jackbequick.png b/macros/luatex/latex/novel/doc/html-resources/jackbequick.png
new file mode 100644
index 0000000000..5a63e4d37e
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/jackbequick.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/jollybeers.png b/macros/luatex/latex/novel/doc/html-resources/jollybeers.png
new file mode 100644
index 0000000000..f9f94ffc4f
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/jollybeers.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/jpgcolorspace.png b/macros/luatex/latex/novel/doc/html-resources/jpgcolorspace.png
new file mode 100644
index 0000000000..33c1fb7eb9
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/jpgcolorspace.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/jump-change.png b/macros/luatex/latex/novel/doc/html-resources/jump-change.png
new file mode 100644
index 0000000000..e9bf5a1b72
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/jump-change.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/looseheads.png b/macros/luatex/latex/novel/doc/html-resources/looseheads.png
new file mode 100644
index 0000000000..8eda2d17da
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/looseheads.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/lowdown.png b/macros/luatex/latex/novel/doc/html-resources/lowdown.png
new file mode 100644
index 0000000000..3d0f6ae7cd
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/lowdown.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/map.png b/macros/luatex/latex/novel/doc/html-resources/map.png
new file mode 100644
index 0000000000..f11a133a93
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/map.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/margins-trim-media.png b/macros/luatex/latex/novel/doc/html-resources/margins-trim-media.png
new file mode 100644
index 0000000000..55cca64c0f
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/margins-trim-media.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/mcdingle.png b/macros/luatex/latex/novel/doc/html-resources/mcdingle.png
new file mode 100644
index 0000000000..f6449ce9a6
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/mcdingle.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/mediasize.png b/macros/luatex/latex/novel/doc/html-resources/mediasize.png
new file mode 100644
index 0000000000..6e2319389c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/mediasize.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/megadocprops.png b/macros/luatex/latex/novel/doc/html-resources/megadocprops.png
new file mode 100644
index 0000000000..e89828153d
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/megadocprops.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/megatitlepagesm.png b/macros/luatex/latex/novel/doc/html-resources/megatitlepagesm.png
new file mode 100644
index 0000000000..6726c89395
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/megatitlepagesm.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/monitorgamut.png b/macros/luatex/latex/novel/doc/html-resources/monitorgamut.png
new file mode 100644
index 0000000000..0bbabd4a94
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/monitorgamut.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/no-brainer.png b/macros/luatex/latex/novel/doc/html-resources/no-brainer.png
new file mode 100644
index 0000000000..7bf7f96468
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/no-brainer.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/novel-color-sampler.png b/macros/luatex/latex/novel/doc/html-resources/novel-color-sampler.png
new file mode 100644
index 0000000000..259d4e1ed7
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/novel-color-sampler.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/overflowrule.png b/macros/luatex/latex/novel/doc/html-resources/overflowrule.png
new file mode 100644
index 0000000000..97c4f63cd4
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/overflowrule.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/page-leaf.png b/macros/luatex/latex/novel/doc/html-resources/page-leaf.png
new file mode 100644
index 0000000000..70562ef094
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/page-leaf.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/parascale.png b/macros/luatex/latex/novel/doc/html-resources/parascale.png
new file mode 100644
index 0000000000..60fc03b15e
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/parascale.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/perfectbinding.png b/macros/luatex/latex/novel/doc/html-resources/perfectbinding.png
new file mode 100644
index 0000000000..3073971ea7
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/perfectbinding.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/pngcolortype.png b/macros/luatex/latex/novel/doc/html-resources/pngcolortype.png
new file mode 100644
index 0000000000..78cce712fe
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/pngcolortype.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/printgamut.png b/macros/luatex/latex/novel/doc/html-resources/printgamut.png
new file mode 100644
index 0000000000..3b14f07365
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/printgamut.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/quickchapter.png b/macros/luatex/latex/novel/doc/html-resources/quickchapter.png
new file mode 100644
index 0000000000..59f2dcf4d7
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/quickchapter.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/raffaelino-original.png b/macros/luatex/latex/novel/doc/html-resources/raffaelino-original.png
new file mode 100644
index 0000000000..4767d1290f
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/raffaelino-original.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/raffaelino-softproof.png b/macros/luatex/latex/novel/doc/html-resources/raffaelino-softproof.png
new file mode 100644
index 0000000000..b542d6097c
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/raffaelino-softproof.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/robberies.png b/macros/luatex/latex/novel/doc/html-resources/robberies.png
new file mode 100644
index 0000000000..6e93704cbd
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/robberies.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/scenebreaks.png b/macros/luatex/latex/novel/doc/html-resources/scenebreaks.png
new file mode 100644
index 0000000000..8ef958c7e5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/scenebreaks.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/shademargins.png b/macros/luatex/latex/novel/doc/html-resources/shademargins.png
new file mode 100644
index 0000000000..a0b48f41c1
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/shademargins.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/shakepi.png b/macros/luatex/latex/novel/doc/html-resources/shakepi.png
new file mode 100644
index 0000000000..6104e38c2a
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/shakepi.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/signature.png b/macros/luatex/latex/novel/doc/html-resources/signature.png
new file mode 100644
index 0000000000..8d0b0d782d
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/signature.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/simpletoc.png b/macros/luatex/latex/novel/doc/html-resources/simpletoc.png
new file mode 100644
index 0000000000..752f122326
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/simpletoc.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/sixpage-frontmatter.png b/macros/luatex/latex/novel/doc/html-resources/sixpage-frontmatter.png
new file mode 100644
index 0000000000..e8b206679d
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/sixpage-frontmatter.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/skygrad.jpg b/macros/luatex/latex/novel/doc/html-resources/skygrad.jpg
new file mode 100644
index 0000000000..14cc5b7014
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/skygrad.jpg
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/smallcapsrealfake.png b/macros/luatex/latex/novel/doc/html-resources/smallcapsrealfake.png
new file mode 100644
index 0000000000..9c367cb1fa
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/smallcapsrealfake.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/smfingerprint8.png b/macros/luatex/latex/novel/doc/html-resources/smfingerprint8.png
new file mode 100644
index 0000000000..7370d52370
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/smfingerprint8.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/smythsewn.png b/macros/luatex/latex/novel/doc/html-resources/smythsewn.png
new file mode 100644
index 0000000000..c877c9b9dc
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/smythsewn.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/toc.png b/macros/luatex/latex/novel/doc/html-resources/toc.png
new file mode 100644
index 0000000000..27d15fa5f0
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/toc.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/topmargins.png b/macros/luatex/latex/novel/doc/html-resources/topmargins.png
new file mode 100644
index 0000000000..7f4ecfc34b
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/topmargins.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/trdol.png b/macros/luatex/latex/novel/doc/html-resources/trdol.png
new file mode 100644
index 0000000000..d61c3e96fd
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/trdol.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/trimsize.png b/macros/luatex/latex/novel/doc/html-resources/trimsize.png
new file mode 100644
index 0000000000..b21a18b026
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/trimsize.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/ublibser.png b/macros/luatex/latex/novel/doc/html-resources/ublibser.png
new file mode 100644
index 0000000000..7d4c393cb5
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/ublibser.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/unsafe-vs-margin.png b/macros/luatex/latex/novel/doc/html-resources/unsafe-vs-margin.png
new file mode 100644
index 0000000000..1b70d3c350
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/unsafe-vs-margin.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/whichgutter.png b/macros/luatex/latex/novel/doc/html-resources/whichgutter.png
new file mode 100644
index 0000000000..f1d1274104
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/whichgutter.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/win10libser.png b/macros/luatex/latex/novel/doc/html-resources/win10libser.png
new file mode 100644
index 0000000000..5c5459a5e1
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/win10libser.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/workedforme.png b/macros/luatex/latex/novel/doc/html-resources/workedforme.png
new file mode 100644
index 0000000000..aeb26f6025
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/workedforme.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/html-resources/wrapme.png b/macros/luatex/latex/novel/doc/html-resources/wrapme.png
new file mode 100644
index 0000000000..b2f433cefb
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/html-resources/wrapme.png
Binary files differ
diff --git a/macros/luatex/latex/novel/doc/novel-documentation.html b/macros/luatex/latex/novel/doc/novel-documentation.html
new file mode 100644
index 0000000000..c2f454e47a
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/novel-documentation.html
@@ -0,0 +1,3270 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
+<title>Document class "novel" - documentation</title>
+
+<style>
+body {font-family:sans-serif; line-height:150%; font-size:14pt; color:#000000; background:#ffffff none;}
+p {font-family:sans-serif,sans-serif; font-size:1em; margin:0px 16px 0px 16px; text-indent:16px;}
+ol, ul {list-style-type:none; margin:0px; padding:0px;}
+li {margin:3px 8px 3px 16px; padding:0px;}
+li p {margin: 0px 8px 0px 44px; text-indent:-44px;}
+a {text-decoration:none; color:#990000}
+h1 {font-size:1.33em; margin:16px 16px 0px 8px; font-weight:bold; clear:both; padding-top:8px;}
+h2 {font-size:1.25em; margin:8px 16px 0px 8px; font-weight:bold; clear:both; padding-top:8px;}
+h3 {font-size:1.15em; margin:8px 16px 0px 8px; font-weight:bold; clear:both; padding-top:8px;}
+h4 {font-size:1em; margin:8px 16px 0px 8px; font-weight:bold; clear:both; padding-top:8px;}
+h5 {font-size:1em; margin:8px 16px 0px 8px; clear:both; padding-top:8px;}
+h6 {font-size:1em; margin:8px 16px 0px 8px; clear:both; padding-top:8px;}
+em {font-weight:normal}
+img {max-width:100%;}
+img.nodisplaynav {display:none; height:1em;}
+img.openclose {display:none; height:1em;}
+*.noimg {padding-left:1.5em;}
+div.d1 {margin:0px 16px 16px 16px;}
+div.d2 {margin:0px 0px 16px 16px; padding-bottom:1em; border-top:0; border-right: 0px; border-bottom:1px dotted #666666; border-left:1px dotted #666666;}
+div.d3 {margin:0px 0px 16px 16px; padding-bottom:1em; border-top:0; border-right: 0px; border-bottom:1px dotted #666666; border-left:1px dotted #666666;}
+div.d4 {margin:0px 0px 16px 16px; padding-bottom:1em; border-top:0; border-right: 0px; border-bottom:1px dotted #666666; border-left:1px dotted #666666;}
+div.d5 {margin:0px 0px 16px 16px; padding-bottom:1em; border-top:0; border-right: 0px; border-bottom:1px dotted #666666; border-left:1px dotted #666666;}
+div.d6 {margin:0px 0px 16px 16px; padding-bottom:1em; border-top:0; border-right: 0px; border-bottom:1px dotted #666666; border-left:1px dotted #666666;}
+div.page {padding:16px 0px 16px 0px; border-top:4px solid #505050;}
+div.codeblock {overflow:auto; margin:16px; padding: 8px; border: 1px solid #000000;}
+code {font-size:1em; font-family:monospace,monospace; color:#200050; background:transparent none; padding:0px 3px 0px 3px;}
+*.smaller {font-weight:normal; font-size:88%;}
+*.noindent {text-indent:0px;}
+*.noindent1 {text-indent:0px; margin-top:8px;}
+*.noindent2 {text-indent:0px; margin-bottom:8px;}
+*.noindentcmd {text-indent:0px; margin-top:16px;}
+*.isolate {padding-left:10px;margin-top:10px; margin-bottom:10px; text-indent:0px;}
+*.dbloc {padding-left:1.8em; visibility:hidden}
+table.preconf {margin-left:auto; margin-right:auto; margin-top:20px; margin-bottom:20px; border:1px solid #000000}
+table.preconf caption {font-weight:bold;}
+table.preconf th {text-align:left; padding:6px; font-weight:normal; border-bottom:1px solid #000000;}
+table.preconf td {text-align:left; padding:6px;}
+table.preconf tfoot td {border-top:1px solid #000000;}
+table.preconf p {text-indent:0px; margin:6px;}
+*.onedown {font-size:smaller}
+*.menuitem {text-indent:-8px; margin-left:24px; margin-top:0px; margin-bottom:0px;}
+small {line-height:50%;}
+span.ap {color: #996633;} /* percent comment in code */
+*.floatright {float:right; margin-left:1em; margin-right:16px;}
+*.n {display:none; border:1px solid #990000; font-family:monospace,monospace; font-size:0.92em; font-weight:bold; padding: 0 0.3em 0 0.3em; color:#990000; background: #ffdddd none; margin-right:0.5em;}
+p.centerimg {text-indent:0px; text-align:center; margin-top:0.5em; margin-bottom:0.5em;}
+p.code {text-indent:0px; margin: 4px 16px 4px 16px; padding-left:32px;}
+p.item {text-indent:0px; padding-top:8px;}
+b em {font-weight:normal;}
+hr.newpage {margin-top:2em; margin-bottom:2em; height:4px; color:#505050; background:#505050;}
+p.overhang {margin-left:32px; text-indent:-16px;}
+*.sampledoc {margin:1em}
+*.sampledoc em {font-size:92%; color:#666666}
+#master {position:relative;}
+#finish {clear:both;}
+#toc {display:block;}
+#toc li ul li {display:none;}
+#main {width:auto; float:none; background:#ffffff none;}
+*.noshowprint {display:none;}
+div.codeblock p {text-indent:0px;}
+*.screennoscript {display:none;}
+</style>
+
+<style id="screenstyle">
+@media screen {
+ body {color:#203310; background:#cccccc none;}
+ #toc {display:block; font-size:14pt; width:30%; background:#ffffff none; position:fixed; overflow:scroll; height:98%;}
+ #toc li ul li {display:block;}
+ #main {float:right; background:#ffffff none; width:68%; padding-bottom:40px;}
+ div.codeblock p {text-indent:0px; white-space:nowrap;}
+ *.screennoscript {display:inline;}
+ *.toptitle {display:none;}
+}
+</style>
+<script>var doprint=false;</script>
+
+
+<!-- Trouble Printing? Remove the following line, and another one below: -->
+<!-- REMOVE ME
+
+<style>
+ body {color:#000000; background:#ffffff none;}
+ #toc {display:block; font-size:1em; width:auto; background:#ffffff none; position:static; overflow:auto; height:auto;}
+ #toc li ul li {display:none;}
+ #main {float:none; background:#ffffff none; width:auto; padding-bottom:0;}
+ div.codeblock p {text-indent:0px; white-space:auto;}
+ *.screennoscript {display:none;}
+ *.toptitle {display:block;}
+ *.notprinted {display:none;}
+</style>
+<script>doprint=true;</script>
+
+REMOVE ME TOO -->
+<!-- Also remove the above line, if trouble printing. Then load with JavaScript off. -->
+
+
+<script>
+if(!doprint) {window.onload = loadnav;}
+function loadnav() {
+ nspans = document.getElementsByClassName("n");
+ placenav();
+}
+function placenav(){
+ for(var n=0; nspans.length>n; n++){
+ nspans[n].style.display="inline";
+ nspans[n].style.cursor="pointer";
+ nspans[n].title="open";
+ nspans[n].setAttribute("data-state",0);
+ nspans[n].innerHTML="+";
+ nspans[n].onclick=openclose;
+ lstartclose(n);
+ }
+}
+function lstartclose(whichn) {
+ whichparid = nspans[whichn].parentElement.id;
+ whichdiv = document.getElementById("u" + whichparid.substring(1));
+ if(whichdiv) whichdiv.style.display="none";
+}
+function openclose(){
+ thisparid = this.parentElement.id;
+ thisdiv = document.getElementById("u" + thisparid.substring(1));
+ if(this.title=="close") {thisdiv.style.display="none";}
+ if(this.title=="open") {thisdiv.style.display="block";}
+ thisstate = this.getAttribute("data-state");
+ thisval = 1 - thisstate;
+ this.setAttribute("data-state",thisval);
+ if(this.getAttribute("data-state")=="1") {this.title="close"; this.innerHTML="&ndash;";}
+ if(this.getAttribute("data-state")=="0") {this.title="open"; this.innerHTML="+";}
+}
+function openall() {
+ for(var n=0; nspans.length>n; n++){
+ nspans[n].setAttribute("data-state",1);
+ nspans[n].title="close";
+ nspans[n].innerHTML="&ndash;";
+ thisparid = nspans[n].parentElement.id;
+ thisdiv = document.getElementById("u" + thisparid.substring(1));
+ thisdiv.style.display="block";
+ }
+}
+function closeall() {
+ placenav();
+}
+</script>
+
+</head>
+
+<body>
+<div id="master">
+
+
+<div id="toc" class="toc">
+
+<h1 class="toptitle">Document class <em>novel</em> - Documentation</h1>
+<h3 class="noshowprint"><a href="#main">Contents</a> &nbsp; <span class="smaller"><a href="javascript:openall();">(open all)</a> &nbsp; <a href="javascript:closeall();">(close all)</a></span></h3>
+
+<ul><!-- master toc ul -->
+
+ <li id="l0"><a href="#h0"><b>&ldquo;Novel&rdquo; Document Class</b></a></li>
+
+ <li id="l1"><span class="n"></span><a href="#h1"><b>1. Before You Begin</b></a>
+ <ul id="u1">
+ <li id="l1.1"><span class="n"></span><a href="#h1.1">1.1 Do These Things</a>
+ <ul id="u1.1">
+ <li><a href="#h1.1.1">1.1.1 LuaLateX Compiler</a></li>
+ <li><a href="#h1.1.2">1.1.2 UTF-8 Encoding</a></li>
+ <li><a href="#h1.1.3">1.1.3 Polyglossia</a></li>
+ <li><a href="#h1.1.4">1.1.4 Open Type Fonts</a></li>
+ <li><a href="#h1.1.5">1.1.5 Book Design</a></li>
+ </ul>
+ </li><!-- end 1.1 -->
+ <li id="l1.2"><span class="n"></span><a href="#h1.2">1.2 Avoid These Things</a>
+ <ul id="u1.2">
+ <li><a href="#h1.2.1">1.2.1 Non-Fontspec Font Loader</a></li>
+ <li><a href="#h1.2.2">1.2.2 TeX Font Sizes</a></li>
+ <li><a href="#h1.2.3">1.2.3 Academic Structures</a></li>
+ <li><a href="#h1.2.4">1.2.4 TeX Editors and IDEs</a></li>
+ </ul>
+ </li><!-- end 1.2 -->
+ <li id="l1.3"><span class="n"></span><a href="#h1.3">1.3 Beware of These Things</a>
+ <ul id="u1.3">
+ <li><a href="#h1.3.1">1.3.1 TeX Special Characters</a></li>
+ <li><a href="#h1.3.2">1.3.2 Layout Surprises</a></li>
+ </ul>
+ </li><!-- end 1.3 -->
+ </ul>
+ </li><!-- end 1 -->
+
+ <li id="l2"><span class="n"></span><a href="#h2"><b>2. Document Class Options</b></a>
+ <ul id="u2">
+ <li><a href="#h2.1">2.1 draft</a></li>
+ <li><a href="#h2.2">2.2 sandbox</a></li>
+ <li><a href="#h2.3">2.3 shademargins</a></li>
+ <li><a href="#h2.4">2.4 cropmarks</a></li>
+ <li><a href="#h2.5">2.5 cropview</a></li>
+ <li><a href="#h2.6">2.6 closecrop</a></li>
+ <li><a href="#h2.7">2.7 xml</a></li>
+ <li><a href="#h2.8">2.8 coverart</a></li>
+ <li><a href="#h2.9">2.9 developer options</a></li>
+ </ul>
+ </li><!-- end 2 -->
+
+ <li id="l3"><span class="n"></span><a href="#h3"><b>3. Metadata, File Data, PDF/X</b></a>
+ <ul id="u3">
+ <li id="l3.1"><span class="n"></span><a href="#h3.1">3.1 Definitions of Terms</a>
+ <ul id="u3.1">
+ <li><a href="#h3.1.1">3.1.1 ISBN Metadata</a></li>
+ <li><a href="#h3.1.2">3.1.2 Printed Metadata</a></li>
+ <li><a href="#h3.1.3">3.1.3 File (PDF) Metadata</a></li>
+ </ul>
+ </li><!-- end 3.1 -->
+ <li id="l3.2"><span class="n"></span><a href="#h3.2">3.2 Rules for File Data</a>
+ <ul id="u3.2">
+ <li><a href="#h3.2.1">3.2.1 Required, Prohibited?</a></li>
+ <li><a href="#h3.2.2">3.2.2 Limited to Latin-1?</a></li>
+ <li><a href="#h3.2.3">3.2.3 TeX Escapes</a></li>
+ <li><a href="#h3.2.4">3.2.4 Forbidden Characters</a></li>
+ </ul>
+ </li><!-- end 3.2 -->
+ <li id="l3.3"><span class="n"></span><a href="#h3.3">3.3 File Data Commands</a>
+ <ul id="u3.3">
+ <li><a href="#h3.3.1">3.3.1 \SetTitle</a></li>
+ <li><a href="#h3.3.2">3.3.2 \SetAuthor</a></li>
+ <li><a href="#h3.3.3">3.3.3 \SetSubtitle</a></li>
+ <li><a href="#h3.3.4">3.3.4 \SetApplication, \SetProducer</a></li>
+ </ul>
+ </li><!-- end 3.3 -->
+ <li id="l3.4"><span class="n"></span><a href="#h3.4">3.4 PDF/X</a>
+ <ul id="u3.4">
+ <li><a href="#h3.4.1">3.4.1 Compliance Standards</a></li>
+ <li><a href="#h3.4.2">3.4.2 Output Intents</a></li>
+ <li><a href="#h3.4.3">3.4.3 Built-IN OI Codes</a></li>
+ <li><a href="#h3.4.4">3.4.4 Other Output Intents</a></li>
+ <li><a href="#h3.4.5">3.4.5 Embed *.icc or Not?</a></li>
+ <li><a href="#h3.4.6">3.4.6 Finding *.icc Files</a></li>
+ </ul>
+ </li><!-- end 3.4 -->
+ </ul>
+ </li><!-- end 3 -->
+
+ <li id="l4"><span class="n"></span><a href="#h4"><b>4. Book Size, Page Layout, Fonts</b></a>
+ <ul id="u4">
+ <li id="l4.1"><span class="n"></span><a href="#h4.1">4.1 Book Dimensions</a>
+ <ul id="u4.1">
+ <li><a href="#h4.1.1">4.1.1 Trim Size, TrimBox</a></li>
+ <li><a href="#h4.1.2">4.1.2 Media Size, MediaBox</a></li>
+ </ul>
+ </li><!-- end 4.1 -->
+ <li id="l4.2"><span class="n"></span><a href="#h4.2">4.2 Fonts, Normal Font Size</a>
+ <ul id="u4.2">
+ <li><a href="#h4.2.1">4.2.1 Parent (Main) Font, Size</a>
+ <ul id="u4.2.1">
+ <li><a href="#h4.2.1.1">4.2.1.1 \SetParentFont</a></li>
+ <li><a href="#h4.2.1.2">4.2.1.2 \SetFontSize</a></li>
+ </ul>
+ </li>
+ <li><a href="#h4.2.2">4.2.2 Descendant Fonts</a></li>
+ <li><a href="#h4.2.3">4.2.3 Advanced: Deco Font</a></li>
+ <li><a href="#h4.2.4">4.2.4 Advanced: Mono, Sans, Math</a></li>
+ <li><a href="#h4.2.5">4.2.5 Advanced: New Fonts</a></li>
+ </ul>
+ </li><!-- end 4.2 -->
+ <li id="l4.3"><span class="n"></span><a href="#h4.3">4.3 Interior Page Layout</a>
+ <ul id="u4.3">
+ <li><a href="#h4.3.1">4.3.1 Margins</a>
+ <ul id="u4.3.1">
+ <li><a href="#h4.3.1.1">4.3.1.1 Gutter? Which?</a></li>
+ <li><a href="#h4.3.1.2">4.3.1.2 Unsafe Zone</a></li>
+ </ul>
+ </li>
+ <li><a href="#h4.3.2">4.3.2 Lines Per Page</a></li>
+ <li><a href="#h4.3.3">4.3.3 Global Header/Footer</a>
+ <ul id="u4.3.3">
+ <li><a href="#h4.3.3.1">4.3.3.1 H/F Style Choices</a></li>
+ <li><a href="#h4.3.3.2">4.3.3.2 Custom H/F Style</a></li>
+ </ul>
+ </li>
+ <li><a href="#h4.3.4">4.3.4 Tweaking Global H/F Style</a>
+ <ul id="u4.3.4">
+ <li><a href="#h4.3.4.1">4.3.4.1 Head/Foot Jump</a></li>
+ <li><a href="#h4.3.4.2">4.3.4.2 \SetHeadFont</a></li>
+ <li><a href="#h4.3.4.3">4.3.4.3 \SetLooseHead</a></li>
+ <li><a href="#h4.3.4.4">4.3.4.4 \SetPageNumberStyle</a></li>
+ <li><a href="#h4.3.4.5">4.3.4.5 \SetEmblems</a></li>
+ <li><a href="#h4.3.4.6">4.3.4.6 Header Text</a></li>
+ </ul>
+ </li>
+ <li><a href="#h4.3.5">4.3.5 H/F Exceptional Pages</a>
+ <ul id="u4.3.5">
+ <li><a href="#h4.3.5.1">4.3.5.1 \thispagestyle</a></li>
+ <li><a href="#h4.3.5.2">4.3.5.2 \SetChapterStartStyle</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li><!-- end 4.3 -->
+ </ul>
+ </li><!-- end 4 -->
+
+ <li id="l5"><span class="n"></span><a href="#h5"><b>5. Chapter Structure</b></a>
+ <ul id="u5">
+ <li id="l5.1"><span class="n"></span><a href="#h5.1">5.1 Starting a Chapter</a>
+ <ul id="u5.1">
+ <li><a href="#h5.1.1">5.1.1 \clearpage, \cleartorecto</a></li>
+ <li><a href="#h5.1.2">5.1.2 ChapterStart Environment</a>
+ <ul>
+ <li><a href="#h5.1.2.1">5.1.2.1 \SetChapterStartStyle</a></li>
+ <li><a href="#h5.1.2.2">5.1.2.2 \SetChapterStartHeight</a></li>
+ <li><a href="#h5.1.2.3">5.1.2.3 Begin ChapterStart</a></li>
+ </ul>
+ </li>
+ <li><a href="#h5.1.3">5.1.3 Chapter Title, etc.</a>
+ <ul>
+ <li><a href="#h5.1.3.1">5.1.3.1 \SetChapterFont, \SetSubchFont</a></li>
+ <li><a href="#h5.1.3.2">5.1.3.2 \ChapterTitle, \ChapterSubtitle</a></li>
+ <li><a href="#h5.1.3.3">5.1.3.3 \ChapterDeco</a></li>
+ <li><a href="#h5.1.3.4">5.1.3.4 Chapter Epigraph</a></li>
+ </ul>
+ </li>
+ <li><a href="#h5.1.4">5.1.4 ChapterStart With Image</a>
+ <ul>
+ <li><a href="#h5.1.4.1">5.1.4.1 Text Over Image</a></li>
+ <li><a href="#h5.1.4.2">5.1.4.2 Text Within Image</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li><!-- end 5.1 -->
+ <li id="l5.2"><span class="n"></span><a href="#h5.2">5.2 Continuous Chapters</a>
+ <ul id="u5.2">
+ <li><a href="#h5.2.1">5.2.1 Short ChapterStart</a></li>
+ <li><a href="#h5.2.2">5.2.2 \QuickChapter</a></li>
+ </ul>
+ </li><!-- end 5.2 -->
+ <li id="l5.3"><span class="n"></span><a href="#h5.3">5.3 Scene Breaks</a>
+ <ul id="u5.3">
+ <li><a href="#h5.3.1">5.3.1 \SetScenebreakIndent</a></li>
+ </ul>
+ </li><!-- end 5.3 -->
+ <li id="l5.4"><span class="n" style="visibility:hidden"></span><a href="#h5.4">5.4 Chapter Numbering</a>
+ </li><!-- end 5.4 -->
+ <li id="l5.5"><span class="n"></span><a href="#h5.5">5.5 First Lines</a>
+ <ul id="u5.5">
+ <li><a href="#h5.5.1">5.5.1 First Character Special</a></li>
+ <li><a href="#h5.5.2">5.5.2 First Line Small Caps</a></li>
+ <li><a href="#h5.5.3">5.5.3 Drop Caps</a></li>
+ </ul>
+ </li><!-- end 5.5 -->
+ </ul>
+ </li><!-- end 5 -->
+
+ <li id="l6"><span class="n"></span><a href="#h6"><b>6. Text Size, Style, Position</b></a>
+ <ul id="u6">
+ <li id="l6.1"><span class="n"></span><a href="#h6.1">6.1 Text Sizes</a>
+ <ul id="u6.1">
+ <li><a href="#h6.1.1">6.1.1 Standard Sizes: Disabled!</a></li>
+ <li><a href="#h6.1.2">6.1.2 Local sizing: \charscale</a></li>
+ <li><a href="#h6.1.3">6.1.3 Environment: parascale</a></li>
+ <li><a href="#h6.1.4">6.1.4 Open Type Scale</a></li>
+ </ul>
+ </li><!-- end 6.1 -->
+ <li id="l6.2"><span class="n"></span><a href="#h6.2">6.2 General Styling</a>
+ <ul id="u6.2">
+ <li><a href="#h6.2.1">6.2.1 Italics and Emphasis</a></li>
+ <li><a href="#h6.2.2">6.2.2 Bold and Semibold</a></li>
+ <li><a href="#h6.2.3">6.2.3 Underlining</a></li>
+ <li><a href="#h6.2.4">6.2.4 Small Caps, Midcase</a></li>
+ <li><a href="#h6.2.5">6.2.5 Local Tracking</a></li>
+ <li><a href="#h6.2.6">6.2.6 Local Font Selection</a></li>
+ <li><a href="#h6.2.7">6.2.7 Local Font Features</a></li>
+ <li><a href="#h6.2.8">6.2.8 Grayscale Text</a></li>
+ </ul>
+ </li><!-- end 6.2 -->
+ <li id="l6.3"><span class="n"></span><a href="#h6.3">6.3 Positioning and Alignment</a>
+ <ul id="u6.3">
+ <li><a href="#h6.3.1">6.3.1 What to Avoid</a></li>
+ <li><a href="#h6.3.2">6.3.2 Some Useful Commands</a></li>
+ </ul>
+ </li><!-- end 6.3 -->
+ <li id="l6.4"><span class="n"></span><a href="#h6.4">6.4 Superscripts, Subscripts</a>
+ <ul id="u6.4">
+ <li><a href="#h6.4.1">6.4.1 Global Marker Style</a></li>
+ <li><a href="#h6.4.2">6.4.2 Local Real or Fake</a></li>
+ </ul>
+ </li><!-- end 6.4 -->
+ </ul>
+ </li><!-- end 6 -->
+
+ <li id="l7"><span class="n"></span><a href="#h7"><b>7. Images, Pictures, Drawings</b></a>
+ <ul id="u7">
+ <li id="l7.1"><span class="n"></span><a href="#h7.1">7.1 Technical Requirements</a>
+ <ul id="u7.1">
+ <li><a href="#h7.1.1">7.1.1 Interior B/W, Grayscale</a></li>
+ <li><a href="#h7.1.2">7.1.2 Color Cover</a></li>
+ </ul>
+ </li><!-- end 7.1 -->
+ <li id="l7.2"><span class="n"></span><a href="#h7.2">7.2 Placing Interior Images</a>
+ <ul id="u7.2">
+ <li><a href="#h7.2.1">7.2.1 Image-Like Text</a></li>
+ <li><a href="#h7.2.2">7.2.2 \InlineImage</a></li>
+ <li><a href="#h7.2.3">7.2.3 Text Over \InlineImage</a></li>
+ <li><a href="#h7.2.4">7.2.4 \FloatImage</a></li>
+ <li><a href="#h7.2.5">7.2.5 \WrapImage</a></li>
+ </ul>
+ </li><!-- end 7.2 -->
+ </ul>
+ </li><!-- end 7 -->
+
+ <li id="l8"><span class="n"></span><a href="#h8"><b>8. Tables, Lists</b></a>
+ <ul id="u8">
+ <li id="l8.1"><span class="n"></span><a href="#h8.1">8.1 The toc Environment</a>
+ <ul id="u8.1">
+ <li><a href="#h8.1.1">8.1.1 Entries Using \tocitem</a></li>
+ <li><a href="#h8.1.2">8.1.2 Example Table</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li id="l9"><span class="n"></span><a href="#h9"><b>9. Footnotes, Endnotes</b></a>
+ <ul id="u9">
+ <li id="l9.1"><span class="n" style="visibility:hidden"></span><a href="#h9.1">9.1 Footnotes</a></li>
+ <li id="l9.2"><span class="n"></span><a href="#h9.2">9.2 Endnotes</a>
+ <ul id="u9.2">
+ <li><a href="#h9.2.1">9.2.1 Placing: \endnote</a></li>
+ <li><a href="#h9.2.2">9.2.2 Writing: \endnotetext</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li><i>Appendices:</i></li>
+
+ <li id="lA"><span class="n" style="visibility:hidden"></span><a href="#hA"><b>A. Sample Document</b></a>
+ </li><!-- end A -->
+
+ <li id="lB"><span class="n"></span><a href="#hB"><b>B. Six-Page Front Matter</b></a>
+ <ul id="uB">
+ <li><a href="#hB.1">B.1 Half-Title to Copyright</a></li>
+ <li><a href="#hB.2">B.2 Post-Copyright</a></li>
+ </ul>
+ </li><!-- end B -->
+
+ <li id="lC"><span class="n"></span><a href="#hC"><b>C. Shopping for Fonts</b></a>
+ <ul id="uC">
+ <li><a href="#hC.1">C.1 Licensing Issues</a></li>
+ <li><a href="#hC.2">C.2 Technical Issues</a></li>
+ <li><a href="#hC.3">C.3 Appearance Issues</a></li>
+ </ul>
+ </li><!-- end C -->
+
+ <li id="lD"><span class="n"></span><a href="#hD"><b>D. Book Design</b></a>
+ <ul id="uD">
+ <li id="lD.1"><span class="n"></span><a href="#hD.1">D.1 Terminology</a>
+ <ul id="uD.1">
+ <li><a href="#hD.1.1">D.1.1 Sheet, Page, Leaf</a></li>
+ <li><a href="#hD.1.2">D.1.2 Folio, Spine</a></li>
+ <li><a href="#hD.1.3">D.1.3 Signature, Imposition</a></li>
+ </ul>
+ </li><!-- end D.1 -->
+ <li id="lD.2"><span class="n"></span><a href="#hD.2">D.2 Book Manufacture</a>
+ <ul id="uD.2">
+ <li><a href="#hD.2.1">D.2.1 Perfect Binding</a></li>
+ <li><a href="#hD.2.2">D.2.2 Library Binding</a></li>
+ <li><a href="#hD.2.3">D.2.3 Other Bindings</a></li>
+ <li><a href="#hD.2.4">D.2.4 Paper, Cover Materials</a></li>
+ </ul>
+ </li><!-- end D.2 -->
+ <li id="lD.3"><span class="n"></span><a href="#hD.3">D.3 Interior Structure</a>
+ <ul id="uD.3">
+ <li id="lD.3.1"><span class="n"></span><a href="#hD.3.1">D.3.1 Display, Chapter-Like</a>
+ <ul id="uD.3.1">
+ <li><a href="#hD.3.1.1">D.3.1.1 Display Pages</a></li>
+ <li><a href="#hD.3.1.2">D.3.1.2 Chapter-Like Sections</a></li>
+ </ul>
+ </li>
+ <li id="lD.3.2"><span class="n"></span><a href="#hD.3.2">D.3.2 Front Matter</a>
+ <ul id="uD.3.2">
+ <li><a href="#hD.3.2.1">D.3.2.1 Half-Title, i</a></li>
+ <li><a href="#hD.3.2.2">D.3.2.2 Blank, ii</a></li>
+ <li><a href="#hD.3.2.3">D.3.2.3 Title Page, iii</a></li>
+ <li><a href="#hD.3.2.4">D.3.2.4 Copyright Page, iv</a></li>
+ <li><a href="#hD.3.2.5">D.3.2.5 Dedication</a></li>
+ <li><a href="#hD.3.2.6">D.3.2.6 Epigraph</a></li>
+ <li><a href="#hD.3.2.7">D.3.2.7 Table of Contents</a></li>
+ <li><a href="#hD.3.2.8">D.3.2.8 Foreword, Preface, Intro</a></li>
+ <li><a href="#hD.3.2.9">D.3.2.9 Acknowledgements</a></li>
+ <li><a href="#hD.3.2.10">D.3.2.10 Author's Note</a></li>
+ <li><a href="#hD.3.2.11">D.3.2.11 Map</a></li>
+ <li><a href="#hD.3.2.12">D.3.2.12 Second Half-Title</a></li>
+ <li><a href="#hD.3.2.13">D.3.2.13 End of Front Matter</a></li>
+ </ul>
+ </li>
+ <li id="lD.3.3"><span class="n"></span><a href="#hD.3.3">D.3.3 Main Matter</a>
+ <ul id="uD.3.3">
+ <li><a href="#hD.3.3.1">D.3.3.1 Half-Title in Main</a></li>
+ <li><a href="#hD.3.3.2">D.3.3.2 Part Separator</a></li>
+ <li><a href="#hD.3.3.3">D.3.3.3 Introduction</a></li>
+ <li><a href="#hD.3.3.4">D.3.3.4 Prologue</a></li>
+ <li><a href="#hD.3.3.5">D.3.3.5 Chapters</a></li>
+ <li><a href="#hD.3.3.6">D.3.3.6 Epilogue, Conclusion</a></li>
+ <li><a href="#hD.3.3.7">D.3.3.7 End Notes, Appendix</a></li>
+ </ul>
+ </li>
+ <li id="lD.3.4"><span class="n"></span><a href="#hD.3.4">D.3.4 At the End</a>
+ <ul id="uD.3.4">
+ <li><a href="#hD.3.4.1">D.3.4.1 Back Matter? Not!</a></li>
+ <li><a href="#hD.3.4.2">D.3.4.2 About the Author</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li><!-- end D.3 -->
+ </ul>
+ </li><!-- end D -->
+
+ <li id="lE"><span class="n"></span><a href="#hE"><b>E. Fontspec Syntax</b></a>
+ <ul id="uE">
+ <li id="lE.1"><span class="n"></span><a href="#hE.1">E.1 Family vs. File Name</a>
+ <ul id="uE.1">
+ <li><a href="#hE.1.1">E.1.1 Set/New by Name</a></li>
+ </ul>
+ </li>
+ <li id="lE.2"><span class="n"></span><a href="#hE.2">E.2 Open Type Features</a>
+ <ul id="uE.2">
+ <li><a href="#hE.2.1">E.2.1 Scale Pseudo-Feature</a></li>
+ <li><a href="#hE.2.2">E.2.2 Color and Opacity</a></li>
+ <li><a href="#hE.2.3">E.2.3 Create Font Feature</a></li>
+ </ul>
+ </li>
+ <li id="lE.3"><a href="#hE.3">E.3 Local Font Modification</a></li>
+ </ul>
+ </li><!-- end E -->
+
+ <li id="lF"><span class="n"></span><a href="#hF"><b>F. Drop Caps</b></a>
+ <ul id="uF">
+ <li><a href="#hF.1">F.1 Built-In vs Lettrine</a></li>
+ <li><a href="#hF.2">F.2 \dropcap[]{}</a></li>
+ <li><a href="#hF.3">F.3 \dropcap*[]{}</a></li>
+ <li><a href="#hF.4">F.4 Drop Cap Font, Color</a></li>
+ <li><a href="#hF.5">F.5 Drop Cap and First Line</a></li>
+ </ul>
+ </li><!-- end F -->
+
+ <li id="lY"><span class="n" style="visibility:hidden"></span><a href="#hY"><b>Y. Licensing and Credits</b></a>
+ </li><!-- end Y -->
+
+ <li id="lZ"><span class="n" style="visibility:hidden"></span><a href="#hZ"><b>Z. Important Changes</b></a>
+ </li><!-- end Z -->
+
+</ul><!-- end master toc ul -->
+
+<div style="height:1em"></div>
+
+</div><!-- end toc -->
+
+
+<!-- **************************************************************************************** -->
+
+<div id="main">
+<!-- **************************************************************************************** -->
+
+<h1 id="h0" style="padding-top:16px">Document class <i>novel</i> - documentation. &nbsp; <span style="font-size:75%">V. 1.52, 2018/04/26</span></h1>
+<p class="noindent"><span id="screennoscript" class="screennoscript"><b>For enhanced navigation of this file, turn on JavaScript.</b></span></p>
+<div><script>if(document.getElementById("screennoscript")){document.getElementById("screennoscript").style.display="none";}</script></div>
+
+<p class="item">ALERT: If you have been using this document class prior to version 1.50, see <a href="#hZ">Appendix Z</a> for important changes.</p>
+
+<!-- ********************************************************************** -->
+<div id="page01" class="page">
+
+<p class="noindent">The <i>novel</i> document class is for authors of text-intensive original fiction, such as detective novels, murder mysteries, romance, sci-fi, and collections of short stories. Academic works and graphic novels are excluded.</p>
+<p>The resulting PDF uses built-in technology to produce PDF/X compliant files for print-on-demand (P.O.D.) services. There is no capability for E-books, and never will be.</p>
+<p>To use <i>novel</i>, you need TeXLive 2016 or later, or recent MikTeX. Open your TeX package manager, and install both <i>novel</i> and <i>libertinus</i>.</p>
+
+
+<h2 id="h1">1. Before You Begin</h2>
+<div class="d2" id="d1">
+<p class="noindent"><img src="html-resources/doordie.png" class="floatright" width="167" height="171" title="TeX Commandments" alt="TeX Commandments"/>This documentation assumes that you have some familiarity with TeX, but not much expertise.</p>
+<p>You usually cannot take an existing document, written with some other class, and just change it to <i>novel</i>. The command set used by <i>novel</i> is very different from that used by others.</p>
+<p>Before you wonder why your document doesn't work, you need to understand the differences. All of these are features, not bugs. They are done with the intent of making <i>novel</i> best for its intended purpose. But if you have been in the habit of writing academic papers, the differences may surprise you.</p>
+
+
+<h3 id="h1.1">1.1. Do These Things</h3>
+<div class="d3" id="d1.1">
+
+<h4 id="h1.1.1">1.1.1. Use the LuaLaTeX Compiler</h4>
+<div class="d4" id="d1.1.1">
+<p class="item"><b>A.</b> At the top of your *.tex main document, before the document class, place these lines:</p>
+<p class="code"><code>% !TeX TS-program = LuaLaTeX</code><br/>
+<code>% !TeX encoding = UTF-8</code></p>
+<p>Those instructions are read and understood by many TeX editors, and also serve as a reminder to yourself.</p>
+<p class="item"><b>B.</b> If you compile by command line, try this:</p>
+<p class="code"><code>lualatex yourdocument.tex</code><p>
+<p class="item"><b>C.</b> If using a service such as ShareLaTeX online, open the Menu, and scroll down to where you can choose the compiler. Set it to LuaLaTeX.</p>
+</div><!-- end 1.1.1 -->
+
+<h4 id="h1.1.2">1.1.2. Use UTF-8 Encoding</h4>
+<div class="d4" id="d1.1.2">
+<p class="item"><b>A.</b> You must create your document in <span style="white-space:nowrap">utf-8</span> encoding. No OT1, no T1, no LY1, or other TeX font encoding that pre-dates cell phones. Do not call for <i>fontenc</i> in your Preamble, because <span style="white-space:nowrap">utf-8</span> is <span style="white-space:nowrap">pre-configured</span>.</p>
+<p class="item"><b>B.</b> If you use a plain text editor, or TeXWorks, or export plain text from a word processor, be sure that your text is encoded as <span style="white-space:nowrap">utf-8</span>, <i>without</i> byte order mark (BOM).</p>
+<p class="item"><b>C.</b> Instead of typing TeX codes such as <code>\`{e}</code> you can simply paste <code>è</code> from a Unicode character map. Other alphabets such as Greek and Cyrillic are directly supported, as long as you choose fonts that support those character sets.</p>
+<p class="item"><b>D.</b> If you are on Windows, <i>do not</i> use Notepad! The free <a class="external" rel="external" target="new" href="https://notepad-plus-plus.org">Notepad++</a> (also <a class="external" rel="external" target="new" href="https://portableapps.com/apps/development/notepadpp_portable">Portable</a> version) is a suitable plain text editor. Configure it as specified, with utf-8 but without BOM. Does not matter whether UNIX or DOS line endings, as long as you are consistent.</p>
+</div><!-- end 1.1.2 -->
+
+<h4 id="h1.1.3">1.1.3. Use Polyglossia Language Support</h4>
+<div class="d4" id="d1.1.3">
+<p class="item"><b>A.</b> The pre-loaded <i>polyglossia</i> package provides language support. By default, <i>novel</i> is configured for American English.</p>
+<p class="item"><b>B.</b> If your document's language is something else, or if you will be writing in multiple languages, see the <i>polyglossia</i> package documentation regarding <code>\setdefaultlanguage</code> and related commands.</p>
+</div><!-- end 1.1.3 -->
+
+<h4 id="h1.1.4">1.1.4. Use Open Type Fonts</h4>
+<div class="d4" id="d1.1.4">
+<p class="item"><b>A.</b> The built-in <i>fontspec</i> package requires utf-8 encoding. It is able to load Open Type fonts, and access their internal feature sets. Forget Type 1 fonts and special encodings! If you wish to use Greek or Cyrillic, all you need are compatible fonts.</p>
+<p class="item"><b>B.</b> If you accept the pre-configured fonts (from <i>libertinus</i>), then you do not need to know anything about <i>fontspec</i>. But if you wish to configure your own fonts, <a href="#hE">Appendix E</a> reviews the most important parts of <i>fontspec</i> syntax.</p>
+<div style="clear:both"></div>
+</div><!-- end 1.1.4 -->
+
+<h4 id="h1.1.5">1.1.5. Read About Book Design</h4>
+<div class="d4" id="d1.1.5">
+<p class="item"><b>A.</b> This documentation has an extensive section regarding <a href="#hD">book design</a>. Read it.</p>
+<p class="item"><b>B.</b> In particular, you will learn how to format pages according to their position and purpose in the book; you will learn how to construct a table of contents; you will learn how you must end your document.</p>
+<div style="clear:both"></div>
+</div><!-- end 1.1.5 -->
+</div><!-- end 1.1 -->
+
+
+<h3 id="h1.2">1.2. Avoid These Things</h3>
+<div class="d3" id="d1.2">
+
+<h4 id="h1.2.1">1.2.1. Avoid Non-Fontspec Font Loaders</h4>
+<div class="d4" id="d1.2.1">
+<p class="item"><b>A.</b> The method for loading fonts is described in <a href="#h4.2">section 4.2</a>. Be sure you read it.</p>
+<p class="item"><b>B.</b> Do not load fonts via <code>\usepackage</code> or <code>\RequirePackage</code>, or by <code>\setmainfont</code>.</p>
+</div><!-- end 1.2.1 -->
+
+<h4 id="h1.2.2">1.2.2. Avoid TeX Font Sizes</h4>
+<div class="d4" id="d1.2.2">
+<p class="item"><b>A.</b> Standard text size commands, such as <code>\small</code> or <code>\LARGE</code>, will be ignored. The text will appear at its normal size, just as if the commands did not exist.</p>
+<p class="item"><b>B.</b> <i>Novel</i> provides its own capability to size text, using <a href="#h6.1">different commands</a>.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The <i>novel</i>-specific size commands maintain text line grid, where possible. This is important for printed fiction.</p>
+</div><!-- end 1.2.2 -->
+
+<h4 id="h1.2.3">1.2.3. Avoid Academic Structures</h4>
+<div class="d4" id="d1.2.3">
+<p class="item"><img class="floatright" src="html-resources/fpaper.png" width="134" height="215" alt="flunked math"/><b>A.</b> Commands such as <code>\section</code>, <code>\chapter</code>, <code>\abstract</code>, <code>\index</code>, <code>\tableofcontents</code>, <code>\maketitle</code>, and many other structural commands will not work with <i>novel</i>. This is intentional.</p>
+<p class="item"><b>B.</b> The <i>float</i>, <i>picture</i>, and <i>table</i> environments are disallowed, unless you are in <a href="#h2.2">sandbox</a> mode. This is intentional. In <i>novel</i> there are specific ways to <a href="#h7.3">place images</a> or construct a <a href="#hD.3.2.7">table of contents</a>.</p>
+<p class="item"><b>C.</b> <i>Novel</i> has <a href="#h5">chapter-related commands</a> specifically created for the needs of fictional works.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> <i>Novel</i> is focused on doing one thing well, rather than many things poorly. That is why so many "academic" commands have been discarded. They are not necessary in popular fiction.</p>
+<div style="clear:both"></div>
+</div><!-- end 1.2.3 -->
+
+<h4 id="h1.2.4">1.2.4. Avoid TeX Editors and IDEs</h4>
+<div class="d4" id="d1.2.4">
+<p class="item"><b>A.</b> Many TeX editors assume that you are using a standard TeX document class. They may attempt to insert code that does not work in <i>novel</i> class. Or, they may not understand the commands specific to <i>novel</i>. Do not use those editors.</p>
+<p class="item"><b>B.</b> The TeXWorks editor is satisfactory. Be sure that you do not run scripts that change the content of your document.</p>
+</div><!-- end 1.2.4 -->
+</div><!-- end 1.2 -->
+
+
+<h3 id="h1.3">1.3. Beware of These</h3>
+<div class="d3" id="d1.3">
+
+<h4 id="h1.3.1">1.3.1. Beware of $, %, and Other TeX Special Characters</h4>
+<div class="d4" id="d1.3.1">
+<p class="item"><b>A.</b> This is standard TeX behavior. Just a reminder!</p>
+<p class="item"><img class="floatright" src="html-resources/trdol.png" width="238" height="67" alt="dollar is math mode"/><b>B.</b> TeX has a number of special characters. If you type them in a document, they will not appear as an ordinary printed character, but will do something else. These are:</p>
+<p class="code"><code>$ % # _ ^ & ~ \ { }</code> and sometimes <code>[ ]</code></p>
+<p class="item"><b>C.</b> In some cases, an incorrect usage will provide an error message that can be easily deciphered.</p>
+<p class="item"><b>D.</b> Incorrect use of the dollar sign may either place your text in math mode (not your intent) or produce a baffling error message that points to an innocent package.</p>
+<p class="item"><b>E.</b> The percent symbol normally produces no error, since it is a comment character. But then, whatever text follows on that line will be missing from your PDF. Unless you carefully review the PDF, you might not notice that text is missing.</p>
+<p class="item"><b>F.</b> Special characters, other than the backslash, are escaped by placing a backslash in front, thus: <code>\$</code> for the dollar sign, <code>\%</code> for percent. If you must print a backslash, <code>\string\</code> does it.</p>
+<p class="item" style="position:relative"><b>G.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> To avoid unforeseen problems, you should review your document in a text editor, prior to compiling. Search for any instances of special characters, particularly dollar and percent. Backslash them as needed.</p>
+<div style="clear:both"></div>
+</div><!-- end 1.3.1 -->
+
+
+<h4 id="h1.3.2">1.3.2. Beware of Layout Surprises</h4>
+<div class="d4" id="d1.3.2">
+<p class="item"><b>A.</b> In <i>novel</i>, inter-line spacing is fixed. There is no padding between paragraphs. No plus/minus "flexible glue." This is standard for printed fiction.</p>
+<p class="item"><b>B.</b> When TeX processes a document on a paragraph-by-paragraph basis, it chooses the layout that has the least total "penalty." Penalties are assessed based on factors such as word spacing, hyphenation, widows, and orphans (clubs). <i>Novel</i> applies a moderately strong penalty to hyphens; they are allowed, but discouraged. Widows and orphans are penalized very little. Word spacing, and even the spacing and characters within words, are controlled by moderate settings of the built-in <i>microtype</i> package.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> You are likely to find widows and orphans on many pages. If you wish to remove them, you must edit your text. This choice was made for several reasons: First, attention to widows and orphans would reduce the effectiveness of the other, more important, layout penalties. Second, fiction often has numerous short paragraphs (especially with dialogue), and it is very difficult for software to deal with all of them. Third, a great deal of contemporary fiction allows widows and orphans, when they are not distracting.</p>
+</div><!-- end 1.3.2 -->
+</div><!-- end 1.3 -->
+
+
+</div><!-- end 1 -->
+</div><!-- end page01 -->
+<!-- ********************************************************************** -->
+<div id="page02" class="page">
+
+
+<h2 id="h2">2. Document Class Options</h2>
+<div class="d2" id="d2">
+<p class="item"><b>A.</b> As with other LaTeX classes, <i>novel</i> is called this way:</p>
+<p><code>\documentclass[options,separated,by,commas]{novel}</code></p>
+<p class="item"><b>B.</b> You do NOT use class options to choose paper size, font size, or any other dimensions. The settings are described in <a href="#h4">section 4</a>.</p>
+<p class="item"><b>C.</b> Default sizes are appropriate for most print-on-demand, softcover fiction.</p>
+
+<h3 id="h2.1">2.1. draft</h3>
+<div class="d3" id="d2.1">
+<p class="item"><b>A.</b> May NOT be used for final, print-ready PDF.</p>
+<p class="item"><b>B.</b> The word DRAFT will appear at the upper left of each page.</p>
+<p class="item"><b>C.</b> When text cannot be precisely wrapped, a small black bar (overflow rule) appears at right. These locations are reported in the log file as "overfull hbox" warnings. Example:</p>
+<p class="centerimg"><img src="html-resources/overflowrule.png" width="525" height="155" title="draft mode, overflow rule" alt="overflow rule"/></p>
+<p class="item"><b>D.</b> Some class options are only effective when used with <i>draft</i> option.</p>
+<p class="item"><b>E.</b> PDF/X compliance is turned <i>off</i>. This over-rides any PDF/X setting.</p>
+<p class="item"><b>F.</b> Some packages take note of whether or not the document is in draft mode, and change their behavior accordingly. However, the included <i>microtype</i> package will always be in final mode, and the included <i>hyperref</i> package will always be in draft mode.</p>
+</div><!-- end 2.1 -->
+
+<h3 id="h2.2">2.2. sandbox</h3>
+<div class="d3" id="d2.2">
+<p class="noindent">New in version 1.50. You work in <code>sandbox</code> mode as a class option:</p>
+<p class="code"><code>\documentclass[sandbox]{novel}</code></p>
+<p class="item"><b>A.</b> In <code>sandbox</code> mode, you can use many packages that would otherwise be prohibited. This will allow you to create tables and diagrams using nearly any methods ordinarily available in most other document classes. Of course, you may have to load some additional packages.</p>
+<p>Also, when in <code>sandbox</code> mode, many glues and lengths are set to values that are typical of other document classes, rather than the special values ordinarily used by <i>novel</i>.
+<p class="item"><b>B.</b> The <code>sandbox</code> is limited to 4 pages of output, regardless of document length. So, you cannot use <code>sandbox</code> for your whole book. Instead, create one or more separate <code>sandbox</code> files.</p>
+<p class="item"><b>C.</b> Your <code>sandbox</code> document should have the same layout as your full document. Then it is a drawing canvas. On a per-page basis, whatever fits in <code>sandbox</code> will also fit in your main document.</p>
+<p class="item"><b>D.</b> If you also enable draft mode and shademargins, you can see the size of available space on the <code>sandbox</code> pages.</p>
+<p class="item"><b>E.</b> When not in draft mode, the <code>sandbox</code> pages will have empty headers and footers (no matter which style you use).</p>
+<p class="item"><b>F.</b> Post-process your <code>sandbox</code> PDF using <i style="white-space:nowrap">novel-scripts</i>. Then you will obtain black/white or grayscale raster images, with surrounding white space trimmed away. These images can be placed as ordinary images in your main document.</p>
+<p class="item" style="position:relative"><b>G.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Why <code>sandbox</code>? Certain ordinary TeX commands and environments will disturb the <i>novel</i> page layout. Others will invalidate PDF/X. When you create something in <code>sandbox</code>, then convert it to a raster image, those bad effects are neutralized.</p>
+
+</div><!-- end 2.2 -->
+
+<h3 id="h2.3">2.3. shademargins</h3>
+<div class="d3" id="d2.3">
+<p class="item"><img class="floatright" style="margin-top:6px" src="html-resources/shademargins.png" width="132" height="205" title="shademargins" alt="shademargins"/><b>A.</b> Only effective with <i>draft</i> option.</p>
+<p class="item"><b>B.</b> Helps to visualize and detect possible layout problems.</p>
+<p class="item"><b>C.</b> Applies dark gray shade to unsafe areas (if set). Applies medium gray shade to margin areas. Applies light gray shade to header/footer areas.
+<p class="item"><b>D.</b> <a href="#h4.3.1">Margins</a> include areas inside and outside the <a href="#h4.3.1.2">unsafe zones</a>.</p>
+<p class="item"><b>E.</b> If <a href="#h4.1.2">Media Size</a> exceeds <a href="#h4.1.1">Trim Size</a>, the area outside the Trim Size will <em>not</em> be gray, because it is not part of the finished book.</p>
+<p class="item" style="position:relative"><b>F.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Technical Info: During page shipout, the gray areas are added as background colors, with a white box above it, then text (and images, if any) on top.</p>
+<div style="clear:both"></div>
+</div><!-- end 2.3 -->
+
+<h3 id="h2.4">2.4. cropmarks <em>(do not use unless required)</em></h3>
+<div class="d3" id="d2.4">
+<p class="item"><img class="floatright" style="margin-top:6px" src="html-resources/cropmarks.png" width="205" height="265" title="cropmarks" alt="cropmarks"/><b>A.</b> May be used with or without <i>draft</i> option.</p>
+<p class="item"><b>B.</b> Marks are 0.25pt weight, 0.125in long, beginning 0.125in from the <a href="#h4.1.1">TrimBox</a>, ending 0.25in away from TrimBox.</p>
+<p>The illustration shows a document with <a href="#h4.1.1">Trim Size</a> floated in a larger <a href="#h4.1.2">Media Size</a>. The invisible <a href="#h4.1.1">TrimBox</a> is outlined in green. The tiny crop marks sit outside the TrimBox.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Do not load any package that provides other cropmarks. They are incompatible, whether or not you use the <code>cropmarks</code> option.</p>
+<p class="item"><b>D.</b> Most print-on-demand services do NOT want crop marks (also known as trim marks). Do not use this option unless you are certain that you need crop marks!</p>
+<p class="item"><b>E.</b> Whether or not you use <code>cropmarks</code> option: In PDF/X, the file contains invisible information (TrimBox) that is understood by automatic print/cut machines.</p>
+<p class="item"><b>F.</b> The PDF term CropBox is related to <a href="#h2.5">cropview</a>, NOT crop marks.</p>
+</div><!-- end 2.4 -->
+
+<h3 id="h2.5">2.5. cropview</h3>
+<div class="d3" id="d2.5">
+<p class="item"><img class="floatright" style="margin-top:6px" src="html-resources/cropview.png" width="132" height="203" title="cropview" alt="cropview"/><b>A.</b> Only effective with <i>draft</i> option.</p>
+<p class="item"><b>B.</b> Ignored if <a href="#h4.1.1">Trim Size</a> is same as <a href="#h4.1.2">Media Size</a>.</p>
+<p class="item"><b>C.</b> Instructs PDF viewer: Only display Trim Size on screen.</p>
+<p class="item"><b>D.</b> Helps to visualize trimmed book size, when Media Size is larger than Trim Size.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Technical Info: Normally, the PDF CropBox is equal to the MediaBox. This option sets the CropBox equal to the TrimBox.</p>
+<div style="clear:both"></div>
+</div><!-- end 2.5 -->
+
+<h3 id="h2.6">2.6. closecrop</h3>
+<div class="d3" id="d2.6">
+<p class="item"><img class="floatright" style="margin-top:6px" src="html-resources/closecrop.png" width="110" height="186" title="closecrop" alt="closecrop"/><b>A.</b> Only effective with <i>draft</i> option.</p>
+<p class="item"><b>B.</b> Minimizes white space surrounding the text/header/footer, so that the result may be viewed on a hand-held device at largest practical text size.</p>
+<p class="item"><b>C.</b> Purpose: Helps you to visualize your own book, while traveling, before you make final edits.</p>
+<p class="item"><b>D.</b> This is NOT an e-book. It does not meet e-book standards, and cannot be changed to meet e-book standards.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Technical Info: First, the live area (text plus head/foot) is calculated from the original settings. Then, small margins are added, and the Trim Size is reduced to fit. So, the closecrop PDF size is not the same as in the print-ready PDF, although the page layout is the same.</p>
+<div style="clear:both"></div>
+</div><!-- end 2.6 -->
+
+<h3 id="h2.7">2.7. xml</h3>
+<div class="d3" id="d2.7">
+<p class="item"><b>A.</b> Only effective with PDF/X. Only effective when NOT in draft mode.</p>
+<p class="item"><b>B.</b> Copies internal XMP Metadata to a separate <i>jobname-XMPasXML.xml</i> file.</p>
+<p class="item"><b>C.</b> Not necessary. Only informative. Does not affect structure or content of PDF.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Technical Info: XMP packet may be isolated by editing the *.xml file, in a plain text editor (requires utf-8). Necessary edits are obvious.</p>
+</div><!-- end 2.7 -->
+
+<h3 id="h2.8">2.8. coverart</h3>
+<div class="d3" id="d2.8">
+<p class="item">This option is only used for cover artwork. See <a href="#h7.1.2">section 7.1.2</a>.</p>
+</div><!-- end 2.8 -->
+
+<h3 id="h2.9">2.9. Developer Options</h3>
+<div class="d3" id="d2.9">
+<p class="noindent">These options are primarily used for developer testing, not user production. Using them may cause compilation to fail, or produce an undesirable result. That is not considered a bug.</p>
+<p class="item"><b>A.</b> <code>mtoff</code> The <i>microtype</i> package will not be loaded.</p>
+<p class="item"><b>B.</b> <code>polyoff</code> The <i>polyglossia</i> package will not be loaded.</p>
+<p class="item"><b>C.</b> <code>test</code> Only used with file <i>novel-testsuite.tex</i>.</p>
+<p class="item"><b>D.</b> <code>unblock</code> Allows use of some packages that would otherwise be blocked.</p>
+</div><!-- end 2.9 -->
+
+
+</div><!-- end 2 -->
+</div><!-- end page02 -->
+<!-- ********************************************************************* -->
+<div id="page03" class="page">
+
+<h2 id="h3">3. Metadata, File Data, and PDF/X</h2>
+<div class="d2" id="d3">
+<p class="item"><b>A.</b> The commands described on this page are used only in the Preamble.</p>
+<p class="item"><b>B.</b> These commands write non-printing information to the PDF file. Some of the information is used to identify and classify the file. Other information is read by the printer, to assist it with printing choices.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Some of the terms have different meanings, depending on whether they are used in the context of printing, book distribution, or ebooks. To avoid confusion <em>within this documentation</em> I will use different terms when they mean different things. When you are communicating with your printing and distribution service, take care to ensure that your understanding of terminology is what they really mean.</p>
+
+<h3 id="h3.1">3.1. Definition of Terms</h3>
+<div class="d3" id="d3.1">
+<p class="noindent">This section is more detailed than it needs to be, because my review of various online forums (unrelated to TeX) shows a lot of user confusion.</p>
+
+<h4 id="h3.1.1">3.1.1. ISBN Metadata</h4>
+<div class="d4" id="d3.1.1">
+<p class="item"><b>A.</b> When you obtain the ISBN for your book, either directly through the issuing agency or via your chosen print service, you will enter <em>ISBN Metadata</em> in an online form.</p>
+<p class="item"><img class="floatright" src="html-resources/bookmanglerdashboard.png" width="500" height="309" alt="online form for ISBN metadata"/><b>B.</b> This metadata goes into a database, and identifies your printed book in distribution and sales channels. It neither knows nor cares about PDF. (If you were marketing a PDF ebook, instead of print, that would be a different story.)</p>
+<p class="item"><b>C.</b> ISBN Metadata includes title, author(s), subtitle if any, ISBN, and other identifying information. Once the book is released, this information (normally) cannot be changed.</p>
+<p class="item"><b>D.</b> You may also enter a description, genre classification, and other information that will help people find your book by browsing, and help to sell your book. This information can usually be changed at a later date.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The ISBN refers to your <em>printed book</em>, not to the PDF file. You are not selling copies of the PDF.</p>
+<div style="clear:both"></div>
+</div><!-- end 3.1.1 -->
+
+<h4 id="h3.1.2">3.1.2. Printed Metadata</h4>
+<div class="d4" id="d3.1.2">
+<p class="item"><b>A.</b> <em>Printed Metadata</em> refers to the information that can be seen on paper, in expected places: the book cover, the title page, and the copyright page.</p>
+<p class="item"><img class="floatright" src="html-resources/megatitlepagesm.png" width="165" height="256" alt="printed metadata, cover page"/><b>B.</b> Whether your book was printed from a PDF file, or by some other method, is not relevant.</p>
+<p class="item"><b>C.</b> Your print service will insist that the title, subtitle (if any), author, and ISBN in these places exactly match what appears in the ISBN database. Of course, you can (and usually will) use styling or images to make the Printed Metadata more attractive than the plain-text ISBN Metadata.</p>
+<p class="item"><b>D.</b> Some print services may object to artwork that is too fancy, on the grounds that it is difficult to discern the title and author. Although this is very unlikely, it is better to ask before committing resources.</p>
+<div style="clear:both"></div>
+</div><!-- end 3.1.2 -->
+
+<h4 id="h3.1.3">3.1.3. File Data (PDF Metadata)</h4>
+<div class="d4" id="d3.1.3">
+<p class="item"><b>A.</b> Your PDF has internal metadata, which can been seen by PDF reader software.</p>
+<p class="item"><img class="floatright" src="html-resources/megadocprops.png" width="298" height="215" alt="PDF metadata"/><b>B.</b> To avoid confusion, this documentation uses the term <i>File Data</i> to mean this internal PDF Metadata.</p>
+<p class="item"><b>C.</b> You can see some of the File Data when you open the PDF in any reader, and go to <i>File&gt;Properties</i>. To see all of it, you need professional software (such as Adobe Acrobat Pro).</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Be sure to read the rules for File Data, below. Some of it is generic, and some is particular to TeX or to the <i>novel</i> class.</p>
+<div style="clear:both"></div>
+</div><!-- end 3.1.3 -->
+</div><!-- end 3.1 -->
+
+<h3 id="h3.2">3.2. Rules for File Data</h3>
+<div class="d3" id="d3.2">
+<p class="item">File Data must conform to several specifications, in terms of what you may or may not write. Some of the limitations are imposed by the book distribution industry, which stores information in its databases a certain way.</p>
+<p>What File Data do you need, if any? Ask your print service.</p>
+
+<h4 id="h3.2.1">3.2.1. Required, Prohibited, Optional?</h4>
+<div class="d4" id="d3.2.1">
+<p class="item"><b>A.</b> If PDF/X compliance is required, then you <em>must</em> at least set the title in File Data, using the <code><a href="#h3.3.1">\SetTitle</a></code> command. Note that this title is not styled in any way.</p>
+<p class="item"><b>B.</b> Some print services require a minimum amount of file data, particularly title and author, which must match the printed metadata and ISBN metadata for these fields.</p>
+<p class="item"><b>C.</b> Other services may require that the book's ISBN number, with something like <i>_text</i> added, be used in place of the title. Remember that underscore is a special character in LaTeX, so it must be preceded by a backslash.</p>
+<p class="item"><b>D.</b> Many print services do not care about File Data, one way or the other. Your PDF is passed through production according to its file name, not its internals. In such a case, assume that title and author are required.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Be sure that any included images are stripped of their own image metadata, such as EXIF. The procedure is described in <i>novel-scripts</i>.</p>
+</div><!-- end 3.2.1 -->
+
+<h4 id="h3.2.2">3.2.2. Limited to Latin-1?</h4>
+<div class="d4" id="d3.2.2">
+<p class="item"><b>A.</b> At least in the USA, your print service may require that File Data be limited to characters in the Latin-1 set. This is because their production and distribution software uses Latin-1 for the database.</p>
+<p class="item"><b>B.</b> Latin-1 does not include curly quotes or em dash. You will still be using utf-8 encoding in your document files, but your choice of characters is restricted.</p>
+<p class="item"><b>C.</b> <i>Novel</i> allows the title, and other File Data, to be in alphabets such as Greek or Cyrillic. If you are limited to Latin-1, the limitation has nothing to do with TeX or PDF.</p>
+<p class="item"><b>D.</b> If your book has File Data using quotes, then use the special commands <code>\straightquote{}</code> and <code>\straightdblquote{}</code>. Be sure to use the braces, so that you don't have to worry about gobbled space. When you use these commands, you eliminate the risk that your software will automatically convert them to the forbidden curly quotes. Example:</p>
+<p class="code"><code>\SetTitle{That\straightquote{}s Amore} % That's Amore</code></p>
+<p class="item"><b>E.</b> If you are limited to Latin-1 in File Data, you can still use curly quotes and em dash on the cover and title page, and in headings.</p>
+<p class="item" style="position:relative"><b>F.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> There is no <code>\maketitle</code> command in <i>novel</i>. You may (and should) apply styling to the printed title, even though the File Data title cannot be styled.</p>
+</div><!-- end 3.2.2 -->
+
+<h4 id="h3.2.3">3.2.3. TeX escapes</h4>
+<div class="d4" id="d3.2.3">
+<p class="item"><b>A.</b> In File Data, you must obey the same TeX rules that apply everywhere: Certain characters have special meaning, and must be preceded by a backslash, if you wish to use them as ordinary characters.</p>
+<p class="item"><b>B.</b> The list of special characters:</p>
+<p><code># $ % &amp; _</code> &nbsp; &nbsp; (hash, dollar, percent, ampersand, underscore)</p>
+<p>Example: The title <em>Doing 9% &amp; Gone</em> is coded:</p>
+<p class="code"><code>\SetTitle{Doing 9\% \&amp; Gone}</code></p>
+<p class="item"><b>C.</b> The above characters are rarely needed in File Data. Sometimes they must be spelled out, in order to agree with your book's ISBN Metadata. For example, you may need to write "and" rather than the ampersand, "dollar" rather than the dollar symbol, and "percent" or "per-cent" rather than the percent symbol.</p>
+<p class="item"><b>D.</b> Fun fact: <i>The Seven-Per-Cent Solution</i> and <i>The 7% Solution</i> are different books, in entirely different gnres.</p>
+
+</div><!-- end 3.2.3 -->
+
+<h4 id="h3.2.4">3.2.4. Forbidden Characters</h4>
+<div class="d4" id="d3.2.4">
+<p class="item"><b>A.</b> Do not use the backslash <code>\</code> except as described above.</p>
+<p class="item"><b>B.</b> Do not use the tilde <code>~</code> or the circumflex <code>^</code>.</p>
+<p class="item"><b>C.</b> Do not use TeX code, such as <code>\`e</code> for e with grave; instead paste <code>è</code> directly from a character map.</p>
+<p class="item"><b>D.</b> Do not use styling, such as <code>{\small text}</code> or <code>\textit{text}</code>.</p>
+<p class="item"><b>E.</b> If necessary, use <code>\straightquote{}</code> and <code>\straightdblquote{}</code>. Do not use TeX code for apostrophe or quote.</p>
+<p class="item"><b>F.</b> Do not use multiple hyphens to create longer dashes. Do not use em dash or en dash.</p>
+</div><!-- end 3.2.4 -->
+</div><!-- end 3.2 -->
+
+<h3 id="h3.3">3.3. File Data Commands</h3>
+<div class="d3" id="d3.3">
+<p class="noindent">Now that you understand what File Data means, and how it may be written, you can use commands to write it.</p>
+
+<h4 id="h3.3.1">3.3.1. <code>\SetTitle{<em>text</em>}</code></h4>
+<div class="d4" id="d3.3.1">
+<p class="item"><b>A.</b> The <i>novel</i> document class does not have <code>\maketitle</code>. The title is <i>not</i> automatically transferred to a title page, because there is no automatic title page.</p>
+<p class="item"><b>B.</b> The title can be retrieved as <code>\theTitle</code> anywhere in your document.</p>
+<p class="item"><b>C.</b> In certain page layouts, the title is used as default text in recto page headings. You may <a href="#h4.3.4.6">over-ride</a> this behavior.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> You may set the title as empty (or blank space). In <i>very rare</i> cases, that is useful. However, if you do that, then you must follow <code>\SetTitle{}</code> with <code>\SetPDFX{off}</code>, or an error will result. This is because PDF/X standards require a real title.</p>
+</div><!-- end 3.3.1 -->
+
+<h4 id="h3.3.2">3.3.2. <code>\SetAuthor{<em>text</em>}</code></h4>
+<div class="d4" id="d3.3.2">
+<p class="item"><b>A.</b> The default author is empty (no author).</p>
+<p class="item"><b>B.</b> In certain page layouts, the author is used as default text in verso page headings. You may <a href="#h4.3.4.6">over-ride</a> this behavior.</p>
+<p class="item"><b>C.</b> The author can be retrieved as <code>\theAuthor</code> anywhere in your document.</p>
+<p class="item"><b>D.</b> If in doubt, use the name as it is spoken. <i>Correct:</i> Mary Smith. <i>Incorrect:</i> Smith, Mary. <i>Possibly correct, if true:</i> Mary Smith, Ph. D.</p>
+<p class="item"><b>E.</b> Your PDF file is <i>not</i> seen by a public database. Instead, the public database contains the <a href="#h3.1.1">information you entered</a>, when you obtained the ISBN. So, if you have multiple authors or minor contributors, that is the place to provide search information.</p>
+<p class="item"><b>F.</b> Ask your print service about how to enter multiple authors, and how to display them in print. Do not assume that authorship rules pertaining to academic papers will also apply to your novel.</p>
+<p class="item" style="position:relative"><b>G.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Print-On-Demand services do not like to split royalty payments among multiple authors. Instead, the entire account is the responsibility of one main author or editor.</p>
+<p>If anyone else is involved, that is a matter of private contract betwen the one main author/editor, and any other contributors. The print service neither knows nor cares about such agreements, and will do nothing to cooperate.</p>
+<p>[DISCLAIMER] Here is my amateur advice: Consider using other contributors on a <i><span style="white-space:nowrap">work-for-hire</span></i> basis. This involves a written contract, prior payment of a fixed amount that does not depend on sales, and no grant of rights. You also need written assurance that the hired persons have the right to sell you the work they provide. If you need professional advice, then consult a professional.</p>
+</div><!-- end 3.3.2 -->
+
+<h4 id="h3.3.3">3.3.3. <code>\SetSubtitle{<em>text</em>}</code></h4>
+<div class="d4" id="d3.3.3">
+<p class="item"><b>A.</b> The subtitle can be retrieved as <code>\theSubtitle</code> anywhere in your document.</p>
+<p class="item"><b>B.</b> The subtitle does <i>not</i> appear in File Data, and does <i>not</i> appear anywhere in your book, unless you manually write it there (either manually, or via <code>\theSubtitle</code>.</p>
+<p class="item"><b>C.</b> If you want the subtitle to appear in File Data, manually include it via <code>\SetTitle</code>. Example:</p>
+<p class="code"><code>\SetTitle{Megabarf: The Green Plague of London}</code></p>
+<p>Then, you may need to <a href="#h4.3.4.6">adjust page headings</a> so that only the main title appears.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Usually, there is no benefit to including the subtitle in File Data. The search database does not read your PDF. It reads the information you entered as <a href="#h3.1.1">ISBN Metadata</a>, which does have an entry for subtitle.</p>
+</div><!-- end 3.3.3 -->
+
+<h4 id="h3.3.4">3.3.4 Advanced: <code>\SetApplication{<em>text</em>}</code> and <code>\SetProducer{<em>text</em>}</code></h4>
+<div class="d4" id="d3.3.4">
+<p class="item"><b>A.</b> The <i>Application</i>, also known as <i>CreatorTool</i>, is the program used to create your source document. Text editors, word processors, and page layout programs are the most common Applications (not specific to TeX).</p>
+<p class="item"><b>B.</b> The PDF <i>Producer</i> is the program that converts the source document to PDF. In many cases, the Producer is a back-end, directly linked to the Application.</p>
+<p class="item"><b>C.</b> These details are automatically created when you compile your document, without any input from you. However, if you have the need to provide a custom text string for the Application or Producer, these commands will do it.</p>
+</div><!-- end 3.3.4 -->
+</div><!-- end 3.3 -->
+
+<h3 id="h3.4">3.4. PDF/X</h3>
+<div class="d3" id="d3.4">
+<p class="item"><b>A.</b> Commercial printers are very likely to require PDF/X compliance. This ensures that your PDF meets a variety of criteria, by containing those things it must contain, and omitting those things it must not contain.</p>
+<p class="item"><b>B.</b> Most perfectly valid PDF files are <em>not</em> PDF/X compliant, simply because they are not intended for commercial printing.</p>
+<p class="item"><b>C.</b> To set PDF/X compliance, use this command in Preamble:</p>
+<p class="code"><code>\SetPDFX[<em>OutputIntent</em>]{<em>ComplianceStandard</em>}</code> &nbsp; and starred version</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> A non-PDF/X file is not a defective file! It complies with PDF standards, but not PDF/X standards. Some print services insist on PDF/X. Others don't care, as long as the fonts are embedded (which they always are).</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Some document class options are not used for final print production. When you use these options, PDF/X will be temporarily turned <i>off</i>, regardless of your setting.</p>
+
+<h4 id="h3.4.1">3.4.1. Compliance Standards</h4>
+<div class="d4" id="d3.4.1">
+<p class="item"><b>A.</b> The following choices are available:</p>
+<p><code>X-1a:2001</code> (default)</p>
+<p><code>X-1a:2003</code></p>
+<p><code>X-3:2002</code></p>
+<p><code>X-3:2003</code></p>
+<p><code>off</code></p>
+<p class="item"><b>B.</b> The first of these is the one that is most widely accepted in commercial printing. Anything meeting X-1a:2001 necessarily meets the other standards.</p>
+<p class="item"><b>C.</b> If your book involved complicated color artwork, then the correct choice might be crucial. But for a black and white book block, <span style="white-space:nowrap">X-1a:2001</span> is the preferred choice, unless your print service says otherwise.</p>
+</div><!-- end 3.4.1 -->
+
+<h4 id="h3.4.2">3.4.2. Output Intent</h4>
+<div class="d4" id="d3.4.2">
+<p class="item"><b>A.</b> Output Intent informs the printer that you "intend" your PDF to be printed according to certain technical capabilities, particularly regarding color.</p>
+<p class="item"><b>B.</b> If your are using color-managed workflow with a calibrated monitor and color profile, and if the actual printer matches your intent, then you can expect accurate printed colors within the technical limits.</p>
+<p class="item"><b>C.</b> If the intended printer does not match the actual printer, there are three possible results: (1) The file will still be printed, but colors may be inaccurate. Home and office printers do this routinely. (2) If the printer is very advanced, it will adjust its properties to emulate the intended printer. (3) The printer may reject the print job, because it knows that it cannot produce the intended results.</p>
+<p class="item"><b>D.</b> The above considerations are very important for glossy fashion magazines, somewhat important for color book covers, and unimportant for non-color book text. Nevertheless, an Output Intent is required to meet PDF/X compliance, even when it does not matter.</p>
+<p class="item"><b>E.</b> The Output Intent is an optional argument to <code>\SetPDFX</code>, because a default will be used when the Intent is not specified.</p>
+</div><!-- end 3.4.2 -->
+
+<h4 id="h3.4.3">3.4.3. Built-in Output Intent Codes</h4>
+<div class="d4" id="d3.4.3">
+<p class="item"><b>A.</b> There are three pre-defined choices for Output Intent:</p>
+<p><code>CGATS TR 001</code> (default) (can also use CGATSTR001)</p>
+<p><code>FOGRA39</code></p>
+<p><code>JC200103</code></p>
+<p class="item"><b>B.</b> The first of these is known as "US&nbsp;Web&nbsp;Coated&nbsp;SWOP&nbsp;v2" in the USA, and is the most commonly-used American print standard for this kind of book.</p>
+<p class="item"><b>C.</b> The second is widely used in Europe, the third in Japan.</p>
+</div><!-- end 3.4.3 -->
+
+<h4 id="h3.4.4">3.4.4. Other Output Intents</h4><div class="d4" id="d3.4.4">
+<p class="item"><b>A.</b> If you are required to use an Output Intent that is not one of the above three, then you have to code it yourself.</p>
+<p class="item"><b>B.</b> In a place where TeX can find it, create a plain text file with its file name in the following format:</p>
+<p class="code">File name begins with <code>novel-</code> (note the hyphen).</p>
+<p class="code">No spaces or underscores in file name, no matter what the Intent.</p>
+<p class="code">File extension is <code>.clo</code></p>
+<p class="item"><b>C.</b> Example valid file name: <code>novel-YourIntent.clo</code>.</p>
+<p class="code">The above file is loaded using <code>\SetPDFX[YourIntent]{<em>compliance</em>}</code>.</p>
+<p class="item"><b>D.</b> The file contains (up to) five <code>\gdef</code> commands. The <code>\@OIidentifier</code> is called "reference name" by some authorities. Here is the code used for <code>CGATS TR 001</code>:</p>:
+<div style="margin:0px 16px 0px 16px; background: #dddddd none">
+<p class="code"><code>\gdef\@OIidentifier{CGATS TR 001}</code></p>
+<p class="code"><code>\gdef\@OIcondition{SWOP (Publication) printing in USA (Printing process definition: ANSI CGATS.6).}</code></p>
+<p class="code"><code>\gdef\@OIinfo{U.S. Web Coated (SWOP) v2}</code></p>
+<p class="code"><code>\gdef\@OIregistry{http://www.color.org}</code></p>
+<p class="code"><code>\gdef\@OIprofile{USWebCoatedSWOP.icc}</code></p>
+</div>
+<p class="item"><b>E.</b> If the data contains any TeX special characters, such as underscore, percent, ampersand, or number sign, they must be escaped using a backslash.</p>
+<p class="item"><b>F.</b> The necessary data may be provided by your print service, or perhaps can be found at resources such as the <a href="http://color.org/registry/index.xalter" rel="external" class="external" target="new">International Color Consortium</a>. Alas, this source (and others) do not make it easy to discern the data.</p>
+<p class="item"><b>G.</b> Another place to look for Output Intent data is in your (texmf)/tex/latex/pdfx folder. This will be in your TeX system if package <i>pdfx</i> is installed (but do not load this package into <i>novel</i> class). Files <i>AdobeColorProfiles.tex</i> and <i>AdobeExternalProfiles.tex</i> contain code prepared by the author of the <i>pdfx</i> package. The macro names are not the same, but they are easy to decode: <code>\@OIidentifer</code> is <i>/OutputConditionIdentifier</i>; <code>\@OIcondition</code> is <i>/ProfileName</i>; <code>\@OIinfo</code> is <i>/OutputCondition</i>; <code>\@OIregistry</code> is <i>/RegistryName</i>; and <code>\@OIprofile</code> follows <i>\setCMYKcolorprofile</i>.</p>
+</div><!-- end 3.4.4 -->
+
+<h4 id="h3.4.5">3.4.5. Whether or Not to Embed *.icc</h4><div class="d4" id="d3.4.5">
+<p class="item"><b>A.</b> Each Output Intent has a color profile, in the form of a file with extension <i>*.icc</i>.</p>
+<p class="item"><b>B.</b> You usually do not need the color profile, because the printer knows which profile corresponds with which standard Output Intent code.</p>
+<p class="item"><b>C.</b> When you use <code>\SetPDFX</code> in its un-starred form, the *.icc color profile will not be embedded in the PDF. This is the normal situation.</p>
+<p class="item"><b>D.</b> If your print service demands that you embed the *.icc color profile, then use <code>\SetPDFX*</code> (with the asterisk). You must have the actual *.icc file available where TeX can find it.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Do not embed the *.icc color profile unless specifically requested by your print service. If you embed it when you should not, the result may be worse!</p>
+<p class="item" style="position:relative"><b>F.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If your printer requests "US Web Coated SWOP v2" and, as usual, requests that you <em>not</em> embed the corresponding *.icc color profile, then some software will read the Output Intent as "CGATS&nbsp;TR&nbsp;001" instead of "US&nbsp;Web&nbsp;Coated&nbsp;SWOP&nbsp;v2". They are identical.</p>
+</div><!-- end 3.4.5 -->
+
+<h4 id="h3.4.6">3.4.6. Where to Find *.icc Files</h4><div class="d4" id="d3.4.6">
+<p class="item"><b>A.</b> You do not need an *.icc color profile unless you choose to embed it.</p>
+<p class="item"><b>B.</b> Although many *.icc color profiles are freely available, they usually cannot be distributed within an open-source project. You might already have them in your system, wherever such files are stored. Note that TeX uses forward slash in file paths, not backslash, even if the platform is Windows:</p>
+<p class="isolate">
+Windows: <code>C:/Windows/System32/spool/drivers/color/</code><br/>
+Linux: <code>/usr/share/color</code> or hidden <code>~/.local/share/icc/</code> or other places<br/>
+OSX: <code>/Library/Colorsync/Profiles/</code> or hidden <code>(username)/Library/Colorsync/Profiles/</code>
+</p>
+<p class="item"><b>C.</b> If you do not have a file you need, look on the Internet <a href="https://www.adobe.com/support/downloads/iccprofiles/icc_eula_win_end.html" target="new">here</a> and <a href="http://www.color.org/profiles.xalter" target="new">here</a>. These links also have many other profiles, beyond the basic three.</p>
+<p class="item"><b>D.</b> In a few cases, your print service may provide the necessary *.icc file.</p>
+<p class="item"><b>E.</b> You want <i>printer</i> profiles, usually CMYK. Don't worry about the files being "for Windows," as they are actually cross-platform.</p>
+<p class="item"><b>F.</b> If your system has the necessary <i>*.icc</i> file for your Output Intent, but <i>novel</i> cannot find it, then copy the file to the same folder as your TeX document.</p>
+<p class="item" style="position:relative"><b>G.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Again: Do not embed the color profile unless the printer requests embedding.</p>
+</div><!-- end 3.4.6 -->
+</div><!-- end 3.4 -->
+
+
+</div><!-- end 3 -->
+</div><!-- end page03 -->
+<!-- ************************************************************ -->
+<div id="page04" class="page">
+
+
+<h2 id="h4">4. Book Size, Page Layout, and Fonts</h2>
+<div class="d2" id="d4">
+<p class="noindent">In <i>novel</i>, you do not use class options to set the size or layout of your book, or font size.</p>
+
+<h3 id="h4.1">4.1. Book Dimensions</h3>
+<div class="d3" id="d4.1">
+
+<h4 id="h4.1.1">4.1.1. Trim Size and TrimBox</h4>
+<div class="d4" id="d4.1.1">
+<p class="noindent">Trim Size is globally set in Preamble:</p>
+<p class="code"><code>\SetTrimSize{<em>width</em>}{<em>height</em>}</code></p>
+<p>The width and height must have dimensions, such as <i>in</i> or <i>cm</i>.</p>
+<p class="item"><img src="html-resources/trimsize.png" class="floatright" width="130" height="190" alt="Trim Size" title="Trim Size"/><b>A.</b> <b>Trim Size</b> is the finished size of your book, width and height (but not thickness). In the case of softcover books, it is the exact size.</p>
+<p>In the case of hardcover books, where the cover is slightly larger than the pages, your print service will tell you whether they mean the cover size or the page size.</p>
+<p class="item"><b>B.</b> PDF/X internally specifies the Trim Size as a rectangular <b>TrimBox</b>. This provides invisible instructions to an automated cutting machine, when the Trim Size is smaller than the actual paper sheet. You do not set the TrimBox yourself.</p>
+<p class="item"><b>C.</b> Your print service has a list of standard trim sizes. For fiction, you probably want "creme" (off-white) paper, which eliminates a few of the choices. Choice of size may also be limited by the distribution channels.</p>
+<p class="item"><b>D.</b> If you do not specify the Trim Size, the default is <i>5.5in</i> wide, <i>8.5in</i> high. This is a widely-used "trade" size for softcover print-on-demand fiction in the U.S.A. If in doubt, leave the default.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Do not request a <i>mass-market paperback</i> Trim Size unless you really, truly, know what you are doing. Since you are not a major writer for a major publishing house, you don't know; so, don't do it.</p>
+</div><!-- end 4.1.1 -->
+
+<h4 id="h4.1.2">4.1.2. Media Size, MediaBox, Bleed, and BleedBox</h4>
+<div class="d4" id="d4.1.2">
+<p class="noindent"><b>PDF page size</b> is known as <b>Media Size</b>, defined by an invisible <b>MediaBox</b> in PDF internal code. It is known as <b>paperwidth</b> and <b>paperheight</b> in TeX terminology.</p>
+<p class="item"><b>A.</b> For cover artwork, the PDF page size <i>must</i> be larger than the artwork <a href="#h4.1.1">Trim Size</a>, so that the image can <b>bleed</b> outside the <a href="#h4.1.1">TrimBox</a>. Use this command in Preamble:</p>
+<p class="code"><code>\SetMediaSize{<i>width</i>}{<i>height</i>}</code></p>
+<p>This will center the Trim Size in the larger Media Size.</p>
+<p class="item"><b>B.</b> Generally, the American standard is 0.125in bleed on all four sides of the cover image; metric nations may use 3mm. Then, the Media Size would be 0.25in (or 6mm) larger than Trim Size in both dimensions.</p>
+<p class="item"><b>C.</b> <b>Example:</b> Suppose that the Trim Size of your book is 5.5in wide x 8.5in high. Based on the number of pages, its spine width is 0.6in.</p>
+<p>Then, the Trim Width of the (Perfect Print) cover will be 5.5in + 0.6in + 5.5in = 11.6in. The Trim Height is 8.5in.</p>
+<p>If you are required to provide 0.125in bleed on all four sides, the Media Width is 0.125in + 11.6in + 0.125in = 11.85in. The Media Height is 0.125in + 8.5in + 0.125in = 8.75in. The commands:</p>
+<p class="code"><code>\SetTrimSize{11.6in}{8.5in}</code></p>
+<p class="code"><code>\SetMediaSize{11.85in}{8.75in}</code></p>
+<p class="item"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you fail to use <code>\SetMediaSize</code> with <code>coverart</code>, or choose surprising values, then you will get an error or warning from <i>novel</i>.</p>
+<p class="item"><b>E.</b> For the interior book block, almost all P.O.D. services require that the PDF page size be identical to the <a href="#h4.1.1">Trim Size</a>. This is done automatically. You do not use <code>\SetMediaSize</code>.</p>
+<p class="item"><b>F.</b> In rare cases, a P.O.D. service will ask you to float the interior book block in a larger, standard paper size. You may use <code>\SetMediaSize</code> for this purpose. The <i>novel</i> class does not support interior bleed, so when you are not using <code>coverart</code> mode, no BleedBox is set.</p>
+</div><!-- end 4.1.2 -->
+</div><!-- end 4.1 -->
+
+<h3 id="h4.2">4.2. Fonts and Normal Font Size</h3>
+<div class="d3" id="d4.2">
+
+<h4 id="h4.2.1">4.2.1. Parent (Main) Font and Size</h4>
+<div class="d4" id="d4.2.1">
+<p class="item"><b>A.</b> In <i>novel</i> you do not directly set the main font (also known as <i>roman default</i>). Instead, you set a parent font, from which the main font is derived.</p>
+<p class="item"><b>B.</b> The default parent font is <i>Libertinus Serif</i>, which is an updated branch of <i>Linux Libertine O</i>. You must install it as package <i>libertinus</i>.</p>
+<p>Online services, such as ShareLaTeX, have <i>libertinus</i>.</p>
+<p> If you do not have the Libertinus fonts, then <i>Latin Modern Roman</i> will be used as fallback. But LMR is not really suitable for use in printed fiction; it is allowed so that test documents can compile, until you choose a more suitable font.</p>
+<p class="item"><b>C.</b> Choose only Open Type or TrueType fonts, not the ancient Type 1 (PostScript) or Metafonts. The font you choose does not have to be part of any TeX package, because you do not need any <i>*.sty</i> file or TeX metrics. All of that is built into the font itself. This is thanks to <i>LuaLaTeX</i> and the built-in <i>fontspec</i> package.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> You do <i>not</i> write <code>\usepackage{<i>fontname</i>}</code>, or <code>\RequirePackage{<i>fontname</i>}</code>, or <code>\setmainfont{<i>fontname</i>}</code>. If you do that, then a warning or error will result, and in any case the font you get won't be the one you were expecting.</p>
+
+<h5 id="h4.2.1.1">4.2.1.1. <code>\SetParentFont[<em>features</em>]{<em>fontname</em>}</code></h5>
+<div class="d5" id="d4.2.1.1">
+<p class="item"><b>A.</b> In <i>novel</i> you set a parent font, which is the ancestor of several pre-defined font styles, including the main font. In Preamble:</p>
+<p class="code"><code>\SetParentFont[<em>features</em>]{<em>fontname</em>}</code><p>
+<p class="item"><b>B.</b> The command uses <i>fontspec</i> syntax, which is reviewed in <a href="#hE">Appendix E</a>, and described in full detail by the <i>fontspec</i> package documentation.</p>
+<p class="item"><b>C.</b> Whether you use <code>\SetParentFont</code> or accept the default, the features and fontname are stored as strings in macros <code>\parentfontfeatures</code> and <code>\parentfontname</code>. You may use <code>\parentfontfeatures</code> and <code>\parentfontname</code> as arguments to other font commands.</p>
+<p class="item"><b>D.</b> If you have the proper license, you can use a commercial font. For example:</p>
+<p class="code"><code>\SetParentFont{Adobe Garamond Pro}</code></p>
+<p>See how easy that is? By default, <i>novel</i> will apply TeX Ligatures and Kerning to the parent font and all its descendants. Common Ligatures and OldStyle numbers will be added for the main font. This is ideal for fiction.</p>
+</div><!-- end 4.2.1.1 -->
+
+<h5 id="h4.2.1.2">4.2.1.2. <code>\SetFontSize{<em>length</em>}</code></h5>
+<div class="d5" id="d4.2.1.2">
+<p class="item"><b>A.</b> In the <i>novel</i> document class, you do not set point size as a class option. Instead you use <code>\SetFontSize</code> in the Preamble. It applies to the parent (main) font, and is used as the basis for scaling font sizes.</p>
+<p class="item"><b>B.</b> The size may be any units TeX understands, including decimal values. So, <i>12.8bp</i> and <i>13.1pt</i> are acceptable. This is because you will be using scalable, Open&nbsp;Type and TrueType fonts throughout your document. They do not need TeX metrics.<p>
+<p class="item"><b>C.</b> If you insist on using ancient TeX fonts, then you may need to specify a convenient integer font size such as 11pt or 12pt. But why? Forget those fonts! Welcome to the Twenty-First Century.</p>
+<p class="item"><b>D.</b> The minimum global font size is <i>8pt</i>, and the maximum is <i>18bp</i>. On a local basis, text may be larger or smaller than this.</p>
+<p class="item"><b>E.</b> If you do not use <code>\SetFontSize</code>, the default will be <i>11.4pt</i> more or less. That is, the size is calculated from other layout settings. When there is less available text area, the default size is <i>11pt</i>. For larger books, the default is <i>12pt</i>.</p>
+<p class="item"><b>F.</b> Once you have set the Trim Size, margins, and parent font, set the font size for readability. Depending on whom you ask, each line of free-running text should average 60 to 66 characters (including spaces). If you use all of the <i>novel</i> default settings, including <i>Libertinus Serif</i> parent font, that's what you will get. But if you change anything, then do a test document to see what font size works best.</p>
+</div><!-- end 4.2.1.2 -->
+</div><!-- end 4.2.1 -->
+
+<h4 id="h4.2.2">4.2.2. Descendant Fonts: main font, chapter font, subch font, head font</h4>
+<div class="d4" id="d4.2.2">
+<p class="item"><b>A.</b> The descendant fonts are automatically set, as variations of the <i>parent font</i>:</p>
+<p class="centerimg"><img src="html-resources/font-tree.png" width="600" height="177" title="font tree" alt="font tree"/></p>
+<p>For example, the <i>main font</i> uses the <i>parent font</i> family. It has TeX Ligatures and Kerning (inherited from the <i>parent font</i>), and also Common Ligatures and OldStyle numbers.</p>
+<p class="item"><b>B.</b> The <i>main font</i> is not configured directly. Instead, configure the <i>parent font</i>, then the <i>main font</i> (and other descendants) will obey. For example, if you don't want OldStyle numbers:</p>
+<p class="code"><code>\SetParentFont[<em>Numbers=Lining</em>]{<em>fontname</em>}</code></p>
+<p>Then, Lining numbers will be used for the <i>main font</i> (and other descendants).<p>
+<p class="item"><b>C.</b> If you don't like the defaults, you can set the other descendant fonts directly, in Preamble:</p>
+<p class="code">
+<code>\SetChapterFont[<em>features</em>]{<em>fontname</em>}</code> &nbsp; % <em>see section <a href="#h5.1.3.1">5.1.3.1</a></em><br/>
+<code>\SetSubchFont[<em>features</em>]{<em>fontname</em>}</code> &nbsp; % <em>see section <a href="#h5.1.3.1">5.1.3.1</a></em><br/>
+<code>\SetHeadFont[<em>features</em>]{<em>fontname</em>}</code> &nbsp; % <em>see section <a href="#h4.3.4.2">4.3.4.2</a></em>
+</p>
+<p class="item"><b>D.</b> You may use <code>\parentfontfeatures</code> and/or <code>\parentfontname</code> as arguments, if you wish.</p>
+</div><!-- end 4.2.2 -->
+
+<h4 id="h4.2.3">4.2.3. Advanced: The Deco Font</h4>
+<div class="d4" id="d4.2.3">
+<p class="item"><b>A.</b> Open Type font <i>NovelDeco.otf</i> is packaged with the <i>novel</i> class. It is a special-purpose font that provides characters for the <code><a href="#h5.1.3.3">\decoglyph</a></code> and <code><a href="#h6.2.4">\midcase</a></code> commands.</p>
+<p class="item"><b>B.</b> Normally, you do not need to configure this font, as it is automatic. The only reason for changng it is if you are an advanced user, who wishes to use a substitute font with different decorations. However, you may <i>not</i> specify just any font! The substitute must be an edited version of <i>NovelDeco.otf</i>, with a different font name. If you don't know what that means, then don't do it.</p>
+<p class="code">
+<code>\SetDecoFont[<em>features</em>]{<em>fontname</em>}</code> &nbsp; % <em>see section <a href="#h5.1.3.3">5.1.3.3</a></em>
+</p>
+</div><!-- end 4.2.3 -->
+
+<h4 id="h4.2.4">4.2.4. Advanced: Mono, Sans, and Math Fonts</h4>
+<div class="d4" id="d4.2.4">
+<p class="item"><b>A.</b> There are several pre-defined fonts that do not descend from the <i>parent font</i>. In each case, an appropriate default font is selected. You will probably never need to use them; but TeX being what it is, default fonts are chosen "whether you like it or not."</p>
+<p class="item"><b>B.</b> The default sans-serif font will be <i>Libertinus Sans</i> if available. If not, the fallback font is <i>Latin Modern Sans</i>. To choose your own, use this command in Preamble, with <i>fontspec</i> syntax:</p>
+<p class="code"><code>\SetSansFont[<em>features</em>]{<em>fontname</em>}</code></p>
+<p class="item"><b>C.</b> The default monospaced font will be <i>Libertinus Mono</i> if available. If not, the fallback font is <i>Latin Modern Mono</i>. To choose your own, use this command in Preamble, with <i>fontspec</i> syntax:</p>
+<p class="code"><code>\SetMonoFont[<em>features</em>]{<em>fontname</em>}</code></p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you need a math font, then may I gently suggest that maybe <i>novel</i> is not the right document class for you?</p>
+<p>Nevertheless, <i>Libertinus Math</i> is loaded if available; otherwise <i>Latin Modern Math</i>.</p>
+<p>If neither of those fonts are found, then <i>NovelDeco.otf</i> will be loaded as a fake math font, with no actual math symbols. That allows you to proceed without a real math font. But if you attempt to print math, it will look wrong.</p>
+<p>You may choose your own math font using <code>\setmathfont</code> from package <i>unicode-math</i>. See that package documentation for details.</p>
+</div><!-- end 4.2.4 -->
+
+<h4 id="h4.2.5">4.2.5. Advanced: Defining New Font Commands</h4>
+<div class="d4" id="d4.2.5">
+<p class="item"><b>A.</b> You can define new font commands in Preamble. The syntax depends on whether the new font is part of a family (where you might have bold and italic variants), or just a single file (no variants). If part of a family, use <code>\NewFontFamily</code>. If alone, use <code>\NewFontFace</code>.</p>
+<p>The <code>\NewFontFamily</code> command (or <code>\NewFontFace</code>) takes three arguments: First, the name you assign to the new font command is required. Second, font features are optional. Third, the font name is required. The <i>fontspec</i> syntax is used in Preamble:</p>
+<p class="code"><code>
+\NewFontFamily<em>\pickaname</em>[<em>features</em>]{<em>fontfamily</em>}<br/>
+\NewFontFace<em>\pickaname</em>[<em>features</em>]{<em>singlefont</em>}
+</code></p>
+<p>In the document body, you use the new font command:</p>
+<p class="code"><code>{\pickaname Text in the font selected by pickaname command.}</code></p>
+<p class="item"><b>B.</b> If you define a font <em>family</em> when you should have just defined a font <em>face</em>, there will be complaints in the log file, because the font loader cannot find the (nonexistent) other members of the family. But the document will compile.</p>
+<p>On the other hand, if you define a font <em>face</em> when you should have defined a font <em>family</em>, then commands for bold or italic will have no effect, since the other family members were not loaded. Again, the document will compile.</p>
+<p class="item"><b>C.</b> Example: Suppose your work is science fiction, and one if its characters is a talking robot. You wish to depict its utterances in a robotic-looking font, which will be called using a new <code>\robovoice</code> command. You shop around, and find that the <em>Orbitron</em> font suits your purpose, except that it is too large compared to your <i>main font</i>. So, you scale it.</p>
+<p>In the Preamble, you define the new font command:</p>
+<p class="code"><code>\NewFontFace\robovoice[Scale=0.8]{Orbitron} % not part of a family</code></p>
+<p>After some experimentation, you realize that the \robovoice letters need to be spread apart a bit. Do not use <code>\textls</code>. Instead, go back and change the font definition like this:
+<p class="code"><code>\NewFontFace\robovoice[Scale=0.8,LetterSpace=<em>number</em>]{Orbitron} % pick a number</code></p>
+<p>In the document body:</p>
+<p class="code"><code>
+``Want some oil?'' asked Captain Withens.\par<br/>
+{\robovoice ``Is it Gamma-42 Special oil?''} asked the robot.\par<br/>
+``No, I got it on sale at Cosmo-Mart.''\par<br/>
+{\robovoice ``Forget it. I'm an oil gourmet.''}\par
+</code></p>
+<p>The result:</p>
+<p class="centerimg"><img src="html-resources/human-robot-talk.png" width="483" height="127" alt="conversation, human-robot"/></p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Caution: If you are using a new font within body text (as above), then it is a bad idea to use Scale greater than 1.0. Reason: An excessively tall font will cause lines to spread apart, and you will lose the line grid.</p>
+<p class="item"><b>E.</b> <img class="floatright" src="html-resources/fluffy-conspiracy.png" width="265" height="409" alt="the fluffy conspiracy"/> Example: Suppose that you wish to style the title of your book, in a font that is not used for other things such as chapter titles. You purchase a license for the <em>Bernhard Modern Std</em> fonts, in Regular and Italic.</p>
+<p>In the Preamble:</p>
+<p class="code"><code>\NewFontFamily\booktitlefont{Bernhard Modern Std}</code></p>
+<p>The title page, using <code><a href="#h6.1.2">\charscale</a></code> for size:</p>
+<p class="code"><code>
+\thispagestyle{empty}<br/>
+\vspace*{7<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\begin{center}<br/>
+\charscale[3]{\booktitlefont The \textit{Fluffy} Conspiracy}\par<br/>
+\vspace{6<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\charscale[2]{Priscilla Milde}\par<br/>
+\vfill<br/>
+Nonexistent Publications • Portland, Oregon\par<br/>
+\end{center}
+</code></p>
+<div style="clear:both"></div>
+</div><!-- end 4.2.5 -->
+</div><!-- end 4.2 -->
+
+<h3 id="h4.3">4.3. Interior Page Layout</h3>
+<div class="d3" id="d4.3">
+<p class="noindent">Everything is pre-configured, specifically for the purpose of fiction. You only need to write a layout command if you don't like the defaults.</p>
+
+<h4 id="h4.3.1">4.3.1. Margins</h4>
+<div class="d4" id="d4.3.1">
+<p class="noindent">Margins are globally set in Preamble:</p>
+<p class="code"><code>\SetMargins{<em>top</em>}{<em>outer</em>}{<em>bottom</em>}{<em>inner</em>}</code></p>
+<p>Mnemonic for order of margins (<i>Hamlet</i>): "TOBI, or not TOBI, that is the question."</p>
+<p>Each of the settings must have dimension, such as <i>in</i> or <i>mm</i>.</p>
+<p class="item"><b>A.</b> <b>Margins</b> are required on all four edges of the page (but not cover art). They do not have to be the same width. Generally the margin at the inside edge (spine margin) is wider. The <i>novel</i> class does not provide for marginal notes.</p>
+<p class="item"><b>B.</b> In the case of fiction, it is usually the case that the inner margin is the widest. But this is not a rule for all books. All that is required is that each margin be "wide enough" for the printing process.</p>
+<p class="item"><b>C.</b> Print services are not used to seeing books with exotic margins (such as bottom margin twice the size of top margin). They may think that there is a mistake in your PDF, or in the print job, if you do that.</p>
+<p class="item"><img class="floatright" src="html-resources/margins-trim-media.png" width="202" height="264" title="Trim Size floated in larger Media Size" alt="Trim Size floated in larger Media Size"/><b>D.</b> Normally, your TeX document will be compiled to a PDF that is electronically at the exact Trim Size. And normally, print services want it to be that way. When you view your PDF, the text will shift from side to side as you move through the pages, due to the slightly increased margin at the inside edge.</p>
+<p class="item"><b>E.</b> Margins are always relative to the Trim Size. If you are using a larger Media Size, the area outside the TrimBox is <i>not</i> counted among the margins; it is simply wasted area. This is illustrated at right, where a smaller Trim Size is floated in a marger Media Size. The margins are shown in gray.</p>
+<p class="item" style="clear:both"><img src="html-resources/topmargins.png" class="floatright" width="158" height="292" alt="top margins, with and without header" title="top margins, with and without header"/><b>F.</b> If you do not use <code>\SetMargins</code>, then margins are pre-configured. The minimum pre-configured margins are 0.5in at top, outside, and bottom, and 0.75in at inside. This meets the requirements of nearly any printing technology, unless your book is extremely thick. </p>
+<p>If your Trim Size is among the larger ones, then the pre-configured margins are larger than these minimums.</p>
+<p class="item"><b>G.</b> If your page layout uses header and/or footer, these elements sit within the rectangle bounded by the four margins. That is, they share the same space as main text.</p>
+<p>At right, the top margin is shown in gray, for three situations. Layout #1 has a header. Layout #2 also has a header, but this particular page leaves the header empty. Layout #3 has no header.</p>
+<div style="clear:both"></div>
+
+<h5 id="h4.3.1.1">4.3.1.1. Gutter? Which Gutter?</h5>
+<div class="d5" id="d4.3.1.1">
+<p><img class="floatright" src="html-resources/whichgutter.png" width="276" height="219" title="Which gutter?" alt="Which gutter?"/>Be aware that there is a lot of confusion regarding the word "gutter."</p>
+<p>In the accompanying diagram, the central shaded area is at the spine, where there must be an allowance for the book assembly process. "Gutter" might mean any of A, B, C, or D, depending on who is doing the talking, and which software is in use.</p>
+<p>The <i>novel</i> class uses <em>inner margin</em>, also known as <em>spine margin</em>, to mean <i>C</i>. There is no setting for "gutter" as such.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.1.1 -->
+
+<h5 id="h4.3.1.2">4.3.1.2. Unsafe Zone</h5>
+<div class="d5" id="d4.3.1.2">
+<p class="noindent">Optional global setting, in Preamble:</p>
+<p class="code"><code>\SetUnsafeZone{<em>top</em>}{<em>outer</em>}{<em>bottom</em>}{<em>inner</em>}</code></p>
+<p class="item"><b>A.</b> This applies only to interior text block. Although cover artwork has unsafe zones, they are specified by a graphic design template.</p>
+<p class="item"><img class="floatright" src="html-resources/unsafe-vs-margin.png" width="228" height="150" title="unsafe zone vs margin" alt="unsafe zone vs margin"/><b>B.</b> Printers have a "safe zone," where you are allowed to place text and images. The area outside the safe zone is the "unsafe zone." If anything lies within the unsafe zone, even in part, then the file may print badly, or be rejected by commercial printers.</p>
+<p class="item"><b>C.</b> Unsafe zone is a sub-area of the margins. That is, the margins include the unsafe zone (if set), and usually some additional area. The accompanying image shows a page with narrow unsafe zone, and wider margin.</p>
+<p class="item"><b>D.</b> Some printers describe the unsafe zone as "minimum margin." But in most cases, visually appealing margins are wider than the unsafe zone. You may be able to place items out there, for special effects.</p>
+<p class="item"><b>E.</b> You do not need to set the unsafe zone. Whether or not you do, and regardless of any values you choose, the result does not affect the finished, final PDF. The zones are not enforced. Margins are unaffected.</p>
+<p class="item"><b>F.</b> If you set unsafe zone, then the unsafe area will have a dark gray background, when you use <code>[draft,shademargins]</code> as class options. This allows you to visualize whether anything intrudes into the unsafe zone.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.1.1 -->
+</div><!-- end 4.3.1 -->
+
+<h4 id="h4.3.2">4.3.2. Lines Per Page</h4>
+<div class="d4" id="d4.3.2">
+<p class="item"><b>A.</b> Lines per page refers only to the textblock, and does <em>not</em> include header/footer. Lines are not stretched to fill short pages.</p>
+<p class="item"><b>B.</b> By default, a suitable number of lines per page are automatically set, based on other dimensions. You can change the default with this command, in Preamble:</p>
+<p class="code"><code>\SetLinesPerPage{<em>integer</em>}</code></p>
+<p> Any non-integer will be rounded. There is no direct command to set the <em>leading</em>, also known as line-to-line spacing or <em>baselineskip</em>. Instead, it is calculated from the textblock height and number of lines.</p>
+<p class="item"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you change any other dimensions (margins, head/foot, font size, etc.) then the calculated default number of lines per page will probably change. If you like the initial default value, then set it manually.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If the calculated leading is less than <i>1.2x</i> the font size, an error will result. It is difficult for TeX to honor all layout settings with such a small leading, which would normally be unacceptable for fiction in any case.</p>
+<p>If the calculated leading is at least <i>1.2x</i> the normal size, but less than <i>1.25x</i> the normal size, then the log file will have an Alert message, suggesting that you should consider using fewer lines per page. If the leading exceeds <i>1.4x</i> the font size, then the log will have an Alert, suggesting more lines per page. The Alert messages are friendly; you do not necessarily have to do anything.</p>
+</div><!-- end 4.3.2 -->
+
+<h4 id="h4.3.3">4.3.3. Global Header/Footer Styles</h4>
+<div class="d4" id="d4.3.3">
+<p class="item"><b>A.</b> Global choice of header/footer style is made in Preamble. Although some individual pages may have no visible header or footer, in reality the header/footer is "still there" in terms of occupying space, but has no content.</p>
+<p class="item"><b>B.</b> There are six pre-configured header/footer styles, numbered <i>1</i> through <i>6</i>. These address every style I have seen in fiction. When you choose one of these styles, it reserves space for a header (if any) above the main text, and space for a footer (if any) below the main text. You may <i>not</i> write multi-line headers or footers.</p>
+<p class="item"><b>C.</b> The default style is <i>1</i>, which has header, but no footer. Page numbers appear at the outside. Text (such as author or title) appears centered.</p>
+<p class="item"><b>D.</b> Style <i>0</i> has no header or footer. This is not used in fiction, but it is available.</p>
+<p class="item"><b>E.</b> Throughout the body of your document, you can use <a href="#h4.3.5">local commands</a> to <a href="#h4.3.4.6">change the content</a> of headers and footers, or blank them. But you may not change the global header/footer style mid-document.</p>
+
+<h5 id="h4.3.3.1">4.3.3.1. List of Header/Footer Style Choices</h5>
+<div class="d5" id="d4.3.3.1">
+<p>&nbsp;</p>
+<img class="floatright" style="margin-bottom:8px" src="html-resources/headfoot1.png" width="276" height="219" alt="style 1" title="style 1"/>
+<p class="overhang">
+<code><b>\SetHeadFootStyle{1}</b></code><br/>
+Only Header.<br/>
+Page number at outside (left verso, right recto).<br/>
+Optional emblem adjacent to page number.<br/>
+Text centered. Default author verso, title recto.<br/>
+<em>This is the default for the novel document class.</em></p>
+<div style="clear:both"></div>
+<img class="floatright" style="margin-bottom:8px" src="html-resources/headfoot2.png" width="276" height="219" alt="style 2" title="style 2"/>
+<p class="overhang">
+<code><b>\SetHeadFootStyle{2}</b></code><br/>
+Only Footer.<br/>
+Page number at outside (left verso, right recto).<br/>
+Optional emblem adjacent to page number.</p>
+<div style="clear:both"></div>
+<img class="floatright" style="margin-bottom:8px" src="html-resources/headfoot3.png" width="276" height="219" alt="style 3" title="style 3"/>
+<p class="overhang">
+<code><b>\SetHeadFootStyle{3}</b></code><br/>
+Only Footer.<br/>
+Page number centered.<br/>
+Disregards emblem, if coded.</p>
+<div style="clear:both"></div>
+<img class="floatright" style="margin-bottom:8px" src="html-resources/headfoot4.png" width="276" height="219" alt="style 4" title="style 4"/>
+<p class="overhang">
+<code><b>\SetHeadFootStyle{4}</b></code><br/>
+Only Header.<br/>
+Page number at outside (left verso, right recto).<br/>
+Optional emblem adjacent to page number.<br/>
+Text towards outside, instead of centered.<br/>
+Text begins or ends 1em from the emblem.<br/>
+Default author verso, title recto.</p>
+<div style="clear:both"></div>
+<img class="floatright" style="margin-bottom:8px" src="html-resources/headfoot5.png" width="276" height="219" alt="style 5" title="style 5"/>
+<p class="overhang">
+<code><b>\SetHeadFootStyle{5}</b></code><br/>
+Header and Footer.<br/>
+Page number centered in footer.<br/>
+Disregards emblem, if coded.<br/>
+Text centered in header.<br/>
+Default author verso, title recto.</p>
+<div style="clear:both"></div>
+<img class="floatright" style="margin-bottom:8px" src="html-resources/headfoot6.png" width="276" height="219" alt="style 6" title="style 6"/>
+<p class="overhang">
+<code><b>\SetHeadFootStyle{6}</b></code><br/>
+Only Header.<br/>
+Page number at outside (left verso, right recto).<br/>
+Optional emblem adjacent to page number.<br/>
+Text towards inside, instead of centered.<br/>
+Default author verso, title recto.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.3.1 -->
+
+<h5 id="h4.3.3.2">4.3.3.2. Custom Header/Footer Style</h5>
+<div class="d5" id="d4.3.3.2">
+<p class="item"><b>A.</b> Before you think about writing a custom header/footer style, be sure to try the above pre-configured choices. I have looked through a lot of fiction of all kinds. The pre-configured choices include every style I have seen, with the exception of the most highly decorative.</p>
+<p class="item"><b>B.</b> If none of the above are satisfactory, then you can write your own headers and footers using the syntax of the <i>fancyhdr</i> package. Strategy:</p>
+<p>&bull; In the Preamble, you must use one of the above <code>\SetHeadFootStyle</code> choices to pick a starting point, in terms of whether or not there is a header and/or footer. <em>This is required, so that the layout engine knows how to calculate space.</em> After that, write the <i>fancyhdr</i> code for your custom header/footer in the Preamble. It will over-ride the numerical style in terms of appearance, but occupy the same space.</p>
+<p>&bull; You normally cannot use a header or footer with more than one line. If you have the expertise, two lines can be used, with sufficient <a href="#h4.3.4.1">jump</a>. Not recommended, and not documented.</p>
+<p>&bull; See the file <i>novel-HeadFootStyles.sty</i> for how it is done in the pre-configured styles. In the file, the relevant portion follows <em>Look here for the pre-defined styles, for use as models.</em></p>
+<p>&bull; Particularly note that your own style will not automatically use the <i>head font</i>, or add extra space between letters, unless you include the necessary code in your own definition. Do not use the <code>\textls</code> command.</p>
+<p>&bull; No cheating! If you choose a numerical style that does not have a header, then do not attempt to write a custom style that includes a header. Same with footer. Also, if you you choose a numerical style with both header and footer, then you cannot only customize one of them; you must customize both.</p>
+</div><!-- end 4.3.3.2 -->
+</div><!-- end 4.3.3 -->
+
+<h4 id="h4.3.4">4.3.4. Tweaking the Global Header/Footer Style</h4>
+<div class="d4" id="d4.3.4">
+<p class="noindent">You may customize the appearance, and to some extent the content, of the various parts of the header and footer. These are global settings, in Preamble.</p>
+
+<h5 id="h4.3.4.1">4.3.4.1. Gap Between Header/Footer and Main Text</h5>
+<div class="d5" id="d4.3.4.1">
+<p class="code"><code>\SetHeadJump{<em>number</em>}</code>, <code>\SetFootJump{<em>number</em>}</code></p>
+<p class="item"><b>A.</b> These two commands control the separation between the header/footer and the main text. If your style does not have a header and/or footer, then the corresponding setting will be ignored.</p>
+
+<p class="item"><b>B.</b> The head and/or foot "jump" is a multiple of the normal baseline skip. Each value is a number between 1 and 3, and may be decimal. The jumps do not need to be identical. Default is 1.5 for each. Measurements are from baseline to baseline.</p>
+<p class="centerimg" style="text-indent:0px"><img src="html-resources/head-foot-jumps.png" width="552" height="151" alt="headjump and footjump" title="headjump and footjump"/></p>
+<p class="item"><img src="html-resources/jump-change.png" class="floatright" style="padding-top:12px" width="360" height="272" alt="jump changes" title="jump changes"/><b>C.</b> When a "jump" is changed, its header or footer remains in the same place. The margins are unchanged.</p>
+<p class="item"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you <a href="#h4.3.2">manually choose</a> the number of lines per page, then it will remain the same when you change "jump." The inter-line spacing (baselineskip) will change.</p>
+<p>However, if you allow <i>novel</i> to use the default number of lines per page, then it will change when "jump" is changed.</p>
+<p class="item"><b>E.</b> Note that <i>novel</i> does not use arcane settings such as <i>headsep</i>, <i>footskip</i>, or <i>headheight</i>. Those TeX internals are automatically calculated.</p>
+<p class="item" style="clear:both"><b>F.</b> The distance from the topmost baseline (whether header or main text), to the top margin, is fixed at 1 normal em. This provides adequate clearance for capital letters with upper diacritical marks.</p>
+<p>The distance from the lowermost baseline (whether main text or footer), to the lower margin, is fixed at 0.3 normal em. This provides adequate clearance for descenders.</p>
+<p class="item"><b>G.</b> When in draft mode, the <code>shademargins</code> option shades the margins in medium gray, and shades the area reserved for header/footer in light gray. This was used in the above image.</p>
+<p class="item" style="position:relative"><b>H.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The head/foot jumps are global, and cannot be changed later in the document.</p>
+</div><!-- end 4.3.4.1 -->
+
+<h5 id="h4.3.4.2">4.3.4.2. <code>\SetHeadFont[<em>features</em>]{<em>font</em>}</code></h5>
+<div class="d5" id="d4.3.4.2">
+<p class="item"><b>A.</b> The <i>novel</i> pre-configured header/footer styles automatically use the <em>head font</em>, which is pre-defined as a variation of the parent font: scaled to slightly smaller size, using lining numbers (if available), and small caps (if available). This is a general-purpose style, widely used in fiction. It may not be the most artistic, but it is unlikely to cause visual distraction:</p>
+<p class="centerimg"><img src="html-resources/headfont-default.png" width="419" height="81" title="default head font" alt="default head font"/></p>
+<p class="item"><b>B.</b> If you would like to use something else as <i>head font</i>, use <code>\SetHeadFont</code> to define it by its font name and Open Type features.</p>
+<p>In the simplest case, you merely pick an Open Type (or TrueType) font, and <i>novel</i> automatically adds some Open Type features, including small caps:</p>
+<p class="code"><code>\SetHeadFont{Roboto}</code></p>
+<p class="centerimg"><img src="html-resources/headfont-roboto.png" width="419" height="81" title="Roboto head font" alt="Roboto head font"/></p>
+<p class="item"><b>C.</b> The above example is not best if your style has header text, because the <i>head font</i> is too pronounced, compared to the main text. A more complex example uses <i>fontspec</i> syntax to customize the Open Type Features:</p>
+<p class="code"><code>\SetHeadFont[Scale=0.75,Numbers=Lining,%<br/>
+Letters=SmallCaps,%<br/>
+Letters=UppercaseSmallCaps,%<br/>
+ItalicFont=Montserrat-ExtraLightItalic.otf]%<br/>
+{Montserrat-ExtraLight.otf}</code></p>
+<p class="centerimg"><img src="html-resources/headfont-montserrat-el.png" width="419" height="81" title="Montserrat EL head font" alt="Montserrat EL head font"/></p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you do <i>not</i> want SmallCaps to be automatically added, use <code>Letters=ResetAll</code> as a feature:</p>
+<p class="code"><code>\SetHeadFont[Letters=ResetAll]{\parentfontname}</code></p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.4.2 -->
+
+<h5 id="h4.3.4.3">4.3.4.3. <code>\SetLooseHead{<em>number</em>}</code></h5>
+<div class="d5" id="d4.3.4.3">
+<p class="item"><b>A.</b> This command applies to both headers and footers, but its effect is most noticeable when the style has header text.</p>
+<p class="item"><b>B.</b> For best appearance of header text, its characters should be adjusted with a little extra space (tracking) between them, so that they are more easily distinguished from the main text. This is especially true if you are using small caps.</p>
+<p class="centerimg"><img src="html-resources/looseheads.png" width="400" height="76" alt="loosehead 50 and 100"/></p>
+<p class="item"><b>C.</b> The argument of <code>\SetLooseHead</code> is a number from <i>0</i> to <i>200</i>. At <i>0</i> there is no extra space between the letters. Values from <i>50</i> (default) to <i>100</i> are most useful.</p>
+<p class="item"><b>D.</b> Page number tracking will be clamped at a maximum of <i>50</i>, even when a larger (looser) tracking is applied to text.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Do not use the <code>\textls</code> command. It is disabled in <i>novel</i>.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.4.3 -->
+
+<h5 id="h4.3.4.4">4.3.4.4. <code>\SetPageNumberStyle{<em>code using \thepage</em>}</code></h5>
+<div class="d5" id="d4.3.4.4">
+<p class="item"><b>A.</b> By default, the page number is styled using <i>head font</i>, but without small caps (so that page roman xiv does not show as XIV).</p>
+<p class="item"><b>B.</b> If you wish to change how the page number is displayed, you can style it using <code>\SetPageNumber</code> with an argument that uses <code>\thepage</code>. Examples:</p>
+<p class="code" style="text-indent:0px"><code>\SetPageNumberStyle{\textit{\thepage}} % Page number in italics.<br/>
+\SetPageNumberStyle{-- \thepage{} --} % En-dashes, style 3 or 5.</code></p>
+<p class="item"><b>C.</b> The <i>head font</i> is applied automatically, unless you over-ride it in your code. For example, suppose you would like the page numbers (but not anything else in header/footer) to be in a different font, which you have defined in Preamble as <code>\yourpnfont</code> using <code>\NewFontFamily</code> or <code>\NewFontFace</code>. Then you could write:</p>
+<p class="code"><code>\SetPageNumberStyle{{\yourpnfont\thepage}}</code> % note double braces</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Avoid over-doing it. If you are tempted to use a macro that counts page numbers backwards, or writes them upside-down, be aware that your print service will likely reject it. Anyway, it has already been done in fiction.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.4.4 -->
+
+<h5 id="h4.3.4.5">4.3.4.5. <code>\SetEmblems{<em>verso</em>}{<em>recto</em>}</code></h5>
+<div class="d5" id="d4.3.4.5">
+<p class="item"><b>A.</b> If the head/foot style supports it, you may place an "emblem" that appears at a fixed distance (2.5em) from the outer margin. Thus, it will appear to the right of the page number on verso pages, and to the left of the page number on recto pages. In the case of style <i>4</i>, there will be a clearance of 1em between the emblem and the header text.</p>
+<p class="item"><b>B.</b> Emblems are minor decorations that should not distract the eye from the main text. If the style supports emblems but you do not set them, then no emblems are placed.</p>
+<p class="item"><b>C.</b> <img class="floatright" src="html-resources/emblembar.png" width="380" height="104" alt="simple emblems using vertical bar"/> Most books do not use an emblem. When they do, it is typically a vertical bar, or a bullet, like this:</p>
+<p class="code"><code>\SetHeadFootStyle{4}</code></p>
+<p class="code"><code>\SetEmblems{|}{|}</code></p>
+<p class="item"><b>D.</b> The font used for emblems will be the same as the <i>head font</i>, unless you specifically code the emblem to use a different font, or unless you use one of the built-in <code>\decoglyph</code> codes.</p>
+<p class="item"><b>E.</b> The verso and recto emblems may be different. If you set one side, you must also set the other. Blanks are allowed.</p>
+<p class="item"><b>F.</b> <img class="floatright" src="html-resources/emblemdingbats.png" width="380" height="104" alt="dingbat emblems"/> Emblems may be styled. For example, the header emblems shown at right were produced using the code below. Dingbats from the NovelDeco font were specified, adjusted for size and position.</p>
+<p style="clear:both" class="code"><code>\SetEmblems{\charscale{1.1}{\raisebox{-0.05em}{\decoglyph{l9825}}}}%</code></p>
+<p class="code"><code>{\charscale{1.1}{\raisebox{-0.05em}{\decoglyph{l9826}}}}</code></p>
+<div style="clear:both"></div>
+<p class="item"><b>G.</b> You may also use images, or combined images and text. If you use images, they must be at the exact resolution required by your print service (typically 300dpi for gray, 800dpi for b/w), and at exact size without scaling. The <code><a href="#h7.2.2">\InlineImage</a></code> command must be used. You may find that a vertical offset of <code>\nfs</code> (normal font size) is useful, as this will place the top of the emblem image at the top margin.</p>
+<p class="code" style="text-indent:0px"><img class="floatright" src="html-resources/emblemimg.png" width="295" height="77" alt="emblem image"/>
+<code>\SetHeadFootStyle{4}<br/>
+\SetEmblems{\InlineImage[0pt,b]{spy.png}}%<br/>
+{\InlineImage[0pt,b]{spy.png}}
+</code></p>
+<p class="item" style="position:relative"><b>H.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> At the small size of an emblem, it is difficult to use detailed artwork. A black/white image at 800dpi will print similarly to a font dingbat. Grayscale at 300dpi will probably not be satisfactory unless the emblem is a single shade of gray. For the above example, a character from the <i>Fontawesome</i> font was converted to a png image at mid-gray. It is less distracting than a black character from the font, but hard to discern. Note that "gray ink" will not be used for your book.</p>
+<p>Ask your print service whether the presence of a small image in each page header will affect production costs. Probably not, but if there is a different per-page charge when pages have an image... Oops!</p>
+<p class="item" style="position:relative"><b>I.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The layout calculation does not care whether emblems intrude into the margins. You will have to inspect your PDF to determine whether a header emblem is too tall, or a footer emblem too deep, for the allowed top and bottom margin clearance. Class option <i>shademargins</i> (in draft mode only) is helpful.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.4.5 -->
+
+<h5 id="h4.3.4.6">4.3.4.6. Setting and Changing Header Text</h5>
+<div class="d5" id="d4.3.4.6">
+<p class="item"><b>A.</b> If you are using <a href="#h4.3.3.1">head/foot style</a> <i>1</i>, <i>4</i>, <i>5</i>, or <i>6</i>, it has text in the header. By default, that text is the author on verso pages, the title on recto pages. That is an accepted design for fiction, but it is not always the appropriate thing to do.</p>
+<p>For example, in exotic cases you may use something such as <code>\SetTitle{ISBN9780123456789TEXTBLOCK}</code>, instead of the book's actual title, if required for the printer's database. Obviously you do not want that to appear in page headings!</p>
+<p class="item"><b>B.</b> Header text may be changed to whatever you wish (as long as it fits):</p>
+<p class="code"><code>\SetVersoHeadText{<em>text</em>}</code><br/>
+<code>\SetRectoHeadText{<em>text</em>}</code></p>
+<p class="item"><b>C.</b> These commands can be used <i>both</i> in Preamble <i>and</i> in the document body. Whatever you set will take effect immediately (for pages that have header text) and remain in effect until changed by repeating these commands. For example, you might want to do that for a collection of short stories, or if your book has a Preface.</p>
+<p class="item"><b>D.</b> You may use ordinary LaTeX styling commands for the text:</p>
+<p class="code"><code>\SetRectoHeadText{The \emph{Bad Boy} Chronicles}</code></p>
+<p>You may also do more complicated things, such as setting certain words in a font other than the <i>head font</i>. This is not advised, because you do not want to distract the reader from the main text; but it can be done.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Avoid bold. Avoid underline. Really. Don't do it. No, no, no!</p>
+</div><!-- end 4.3.4.6 -->
+</div><!-- end 4.3.4 -->
+
+<h4 id="h4.3.5">4.3.5. Header/Footer Exceptional Pages</h4>
+<div class="d4" id="d4.3.5">
+<p class="noindent">There are a number of cases where a specific page must have a header/footer style that appears to differ from the global style. The key words are "appears to differ." The global header/footer is always there, in terms of vertical space. But either or both may be blank, or have unusual content, on certain pages.</p>
+
+<h5 id="h4.3.5.1">4.3.5.1. <code>\thispagestyle{<em>choice</em>}</code></h5>
+<div class="d5" id="d4.3.5.1">
+<p class="item"><b>A.</b> Command <code>\thispagestyle</code> is used in the document body, not Preamble. It changes the appearance of header/footer, only for the page on which the command appears. Ideally the command is used immediately after <code>\clearpage</code> or <code>\cleartorecto</code>, so that the applicable page is certain.</p>
+<p class="item"><b>B.</b> The command will be effective if used anywhere on a page, as long as you are certain <i>which</i> page is current. So, if you know that a particular portion of text runs exactly two pages before <code>\clearpage</code>, you can use <code>\thispagestyle</code> at the beginning and end of the text, so that it applies to both pages.</p>
+<p class="item"><b>C.</b> The choice of page style is <i>not</i> one of the numbered global head/foot styles. Instead, choose from the following list. These are more versatile than the choices available in other TeX document classes. They are: <i>fancy</i>, <i>empty</i>, <i>footer</i>, <i>forcenumber</i>, <i>dropfoliobeneath</i>, and <i>dropfolioinside</i>. If you choose <i>plain</i>, you will get <i>footer</i>, but that might not be what you want.</p>
+<p class="overhang"><code><b>\thispagestyle{fancy}</b></code><br/>
+This applies the default (fancy) page style, so it is not normally needed. Only use this command to over-ride some other <code>\thispagestyle</code> command, or to over-ride the <code>\SetChapterStartStyle</code> setting.</p>
+<p class="overhang"><code><b>\thispagestyle{empty}</b></code><br/>
+Header and footer are both blank.</p>
+<p class="overhang"><code><b>\thispagestyle{footer}</b></code><br/>
+Ignored if the style has no footer. If it does, then the usual footer appears. Note that this does <i>not</i> cause a page number to appear, when the style has no footer. Header, if any, is blank.</p>
+<p class="overhang"><code><b>\thispagestyle{forcenumber}</b></code><br/>
+If the style has a footer, then it appears as usual, and the header (if any) is blank. If the style has a header but no footer, then the outside portion of the header (which is presumed to contain the page number and emblem) appears, but the text portion of the header is blank.<br/>
+&bull; The <i>forcenumber</i> choice is non-standard. Use it only if you must have a page number, and no other choice is suitable.</p>
+<p class="overhang"><code><b>\thispagestyle{dropfoliobeneath}</b></code><br/>
+In this context, "folio" means page number. The header (if any) is blank. If there is a footer, then it appears as usual. But if there is no footer, this command creates a one-page fake footer, which contains the centered page number. The fake footer is located where the next line of text would be, if the textblock were one line longer than its actual value.<br/>
+&bull; For the fake footer to be acceptable in print, the bottom margin must be wider than the minimum amount required by your print service. For example, suppose that the minimum bottom margin is 0.5in, but you set the bottom margin to 0.75in. That gives you 0.25in wiggle room, into which the fake footer will probably fit, because typical baselineskip is 0.2in to 0.25in.<br/>
+&bull; The document class does not know whether or not you have extra space available in the bottom margin. It is your responsibility to know.</p>
+<p class="overhang">&nbsp; <code><b>\thispagestyle{dropfolioinside}</b></code><br/>
+In this context, "folio" means page number. The header (if any) is blank. If there is a footer, then it appears as usual. But if there is no footer, this commands temporarily reduces the number of lines per page by one. At the bottom, where the last line of text would normally be, the page number is centered. Thus, there is no intrusion into the bottom margin.<br/>
+&bull; This command may only be used following <code>\clearpage</code>. Thus, it may be used at the start of new chapters, or on pages that do not flow from a previous page. If you use it elsewhere, the print will have incorrect layout, but there will be no error or warning, since the compiler is not sure what you are trying to do.<br/>
+&bull; If used on a page with <i>ChapterStart</i> environment, you must place <code>\thispagestyle{dropfolioinside}</code> <em>before</em> <code>\begin{ChapterStart}</code>. Reason: The <i>ChapterStart</i> block has a disposable blank line at its top, which is removed when <i>dropfolioinside</i> is used (instead of removing a line from the following text block).<br/>
+&bull; With this style, the specified height of <i>ChapterStart</i> must be <i>4</i> or more. This command will reduce it to 3 or more.</p>
+<div style="clear:both"></div>
+</div><!-- end 4.3.5.1 -->
+
+<h5 id="h4.3.5.2">4.3.5.2. <code>\SetChapterStartStyle{<em>choice</em>}</code></h5>
+<div class="d5" id="d4.3.5.2">
+<p class="item"><b>A.</b> The first page of each chapter, or of a section that is styled like a chapter, is usually an exception to the global page style.</p>
+<p class="item"><b>B.</b> In Preamble, <code>\SetChapterStartStyle</code> sets the default <code>thispagestyle</code> that will be applied on pages with the <i>ChapterStart</i> environment. You may still over-ride locally.</p>
+<p class="item"><b>B.</b> The choices are the same as available for <code>\thispagestyle</code>. Default is <i>footer</i>.</p>
+</div><!-- end 4.3.5.2 -->
+</div><!-- end 4.3.5 -->
+</div><!-- end 4.3 -->
+
+
+</div><!-- end 4 -->
+</div><!-- end page04 -->
+<!-- ************************************************************ -->
+<div id="page05" class="page">
+
+
+<h2 id="h5">5. Chapters and Chapter-Like Sections</h2>
+<div class="d2" id="d5">
+<p class="noindent">This section describes how chapters are designed. The <i>novel</i> class has commands specifically for this purpose. Do not use the ordinary TeX <code>\chapter</code> command, or any other TeX partitioning such as <code>\section</code>.</p>
+<p>This also applies to content that is styled like a chapter, regardless of what it is called or where it appears. For example, if your book's front matter has a Preface, it is probably styled like a chapter. Something such as Acknowledgements might or might not be styled like a chapter, depending on length. Advice can be found in <a href="#h8">section 8</a> of this documentation, regarding Book Design.</p>
+
+<h3 id="h5.1">5.1. Starting a Chapter</h3>
+<div class="d3" id="d5.1">
+<p class="noindent">Unlike most other TeX document classes, <i>novel</i> does <i>not</i> honor the <code>\chapter</code> command. And, <i>novel</i> does <i>not</i> automatically start chapters on a new page.</p>
+
+<h4 id="h5.1.1">5.1.1. <code>\clearpage</code> or <code>\cleartorecto</code></h4>
+<div class="d4" id="d5.1.1">
+<p class="item"><b>A.</b> Unless your chapters run continuously without page break, begin a new chapter using <code>\clearpage</code> or <code>\cleartorecto</code>. The first of these provides a new page, which will be verso or recto, without skipping a page. The second forces the chapter to begin on a recto page, if necessary inserting a blank verso.</p>
+<p class="item"><b>B.</b> The common modern practice in fiction is to allow new chapters to begin either verso or recto, once you get past Chapter One. The only recent book I've read (from a major publisher), where chapters always started recto, had about 20 blank pages throughout the story. I believe the reason was to pad the book, so that it looked bigger. If you are using an American P.O.D. service, such padding might knock about $0.10 (estimated) from your profit, for each copy sold. So it's up to you to think about the tradeoffs between style, profit per book, and expected sales.</p>
+<p class="item"><b>C.</b> Prologue (if any), Chapter One, Epilogue (if any), and other special sections always begin recto.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Don't worry about using <code>\clearpage</code> or <code>\cleartorecto</code> twice. The compiler is smart enough to understand that you only meant to do it once, as long as there is no other code in between.</p>
+</div><!-- end 5.1.1 -->
+
+<h4 id="h5.1.2">5.1.2. ChapterStart Environment</h4>
+<div class="d4" id="d5.1.2">
+<p class="item"><b>A.</b> The ChapterStart environment creates a block of white space, with a fixed height (number of normal lines). If you do not place much inside it, or even if you place nothing inside it, the space is the same.</p>
+<p class="item"><b>B.</b> If you place too much inside it, the space does not grow. Instead, the excess material overflows the bottom of the environment. There, the excess will underlie the main text. This is usually undesirable, but can sometimes be used for special effects.</p>
+
+<h5 id="h5.1.2.1">5.1.2.1. <code>\SetChapterStartStyle{<em>choice</em>}</code></h5>
+<div class="d5" id="d5.1.2.1">
+<p class="item"><b>A.</b> This command may be used in Preamble. Its default setting is <i>footer</i>.</p>
+<p class="item"><b>B.</b> In most cases, a <i>ChapterStart</i> page has a head/foot style that differs from the global default. Instead of writing <code><a href="#h4.3.5.1">\thispagestyle</a></code> commands for every chapter, use <code>\SetChapterStartStyle</code> to pick a style that will be applied wherever <i>ChapterStart</i> is used. The available choices are: fancy, footer, empty, dropfoliobeneath, dropfolioinside, forcenumber.</p>
+<p class="item"><b>C.</b> Regardless of this setting, you can over-ride the style on a per-chapter basis, via an optional argument at the beginning of the <i>ChapterStart</i> environment.</p>
+</div><!-- end 5.1.2.1 -->
+
+<h5 id="h5.1.2.2">5.1.2.2. <code>\SetChapterStartHeight{<em>lines</em>}</code></h5>
+<div class="d5" id="d5.1.2.2">
+<p class="item"><b>A.</b> This command may be used in Preamble. Its default setting is <i>10</i>.</p>
+<p class="item"><b>B.</b> This command sets the default height of the <i>ChapterStart</i> environment, measured as an integer number of normal lines. The smallest value is <i>3</i>.</p>
+<p class="item"><b>C.</b> However, if the chapter also uses <i>dropfolioinside</i>, then the smallest value is <i>4</i>, because one line is lost when processing the <i>dropfolioinside</i> command.</p>
+<p class="item"><b>D.</b> Regardless of this setting, you can over-ride the height on a per-chapter basis, via an optional argument at the beginning of the <i>ChapterStart</i> environment.</p>
+</div><!-- end 5.1.2.2 -->
+
+<h5 id="h5.1.2.3">5.1.2.3. <code>\begin{ChapterStart}[<em>lines</em>][<em>style</em>]</code></h5>
+<div class="d5" id="d5.1.2.3">
+<p class="item"><b>A.</b> The <i>ChapterStart</i> environment takes up to two optional arguments.</p>
+<p class="item"><b>B.</b> The first optional argument over-rides the default height of <i>ChapterStart</i>, for just this chapter. Its smallest value is <i>3</i>, except that its smallest value is <i>4</i> when <i>dropfolioinside</i> is used.</p>
+<p class="item"><b>C.</b> The second optional argument over-rides the header/footer style, for just this chapter. If you use the second optional argument, it must be one of the allowed choices for <code>\thispagestyle</code>, namely: fancy, footer, empty, dropfoliobeneath, dropfolioinside, forcenumber.</p>
+<p class="item"><b>D.</b> To use the second argument without the first, place an asterisk: <code>[*][<em>style</em>]</code></p>
+<p class="item"><b>E.</b> Whatever you place within <i>ChapterStart</i> will probably be higher on the page than you would like. To move it down, use the <code>\vspace*{<em>length</em>}</code> command (with asterisk) immediately after the environment begins.</p>
+<p>As with all environments, this one must be closed using <code>\end{ChapterStart}</code>.</p>
+</div><!-- end 5.1.2.3 -->
+</div><!-- end 5.1.2 -->
+
+<h4 id="h5.1.3">5.1.3. Chapter Title, Subtitle, Deco, Epigraph</h4>
+<div class="d4" id="d5.1.3">
+<p class="noindent">You can put anything you like within <i>ChapterStart</i>, including ordinary text and even images. All <i>ChapterStart</i> does is reserve a fixed space. However, there are special commands that make it easy to place a chapter title, chapter subtitle, and decorative element.</p>
+
+<h5 id="h5.1.3.1">5.1.3.1. <code>\SetChapterFont[<em>features</em>]{<em>font</em>}</code><br/>
+<span class="dbloc">5.1.3.1 &nbsp; </span><code>\SetSubchFont[<em>features</em>]{<em>font</em>}</code></h5>
+<div class="d5" id="d5.1.3.1">
+<p class="item"><b>A.</b> These global commands may be used in Preamble. They create font commands <code>\chapterfont</code> and <code>\subchfont</code> that may be used to style text anywhere in your document, like this:</p>
+<p class="code"><code>{\chapterfont <em>text</em>}<br/>
+{\subchfont <em>text</em>}</code></p>
+<p class="item"><b>B.</b> The <i>chapter font</i> is automatically applied to text in <code>\ChapterTitle</code> commands.</p>
+<p class="item"><b>C.</b> The <i>subch</i> font is automatically applied to text in chapter subtitles (see below).</p>
+<p class="item"><b>D.</b> These fonts are pre-configured, based on the document's parent font. They have TeX ligatures and kerning, and use Lining numbers instead of Old Style. The <i>chapter font</i> is scaled at 1.6, and the <i>subch font</i> is scaled at 1.2, compared to normal font size. Ordinary (common) ligatures are not used, because such ligatures are best avoided with enlarged text.</p>
+<p class="item"><b>E.</b> If you don't like the pre-configured fonts, then you may specify your own, using <i>fontspec</i> syntax. Here is what the default codes look like:</p>
+<p class="code"><code>\SetChapterFont[Numbers=Lining,Scale=1.6]{\parentfont}<br/>
+\SetSubchFont[Numbers=Lining,Scale=1.2]{\parentfont}</code></p>
+</div><!-- end 5.1.3.1 -->
+
+<h5 id="h5.1.3.2">5.1.3.2. <code>\ChapterTitle[<em>alignment</em>]{<em>text</em>}</code><br/>
+<span class="dbloc">5.1.3.2. &nbsp; </span><code>\ChapterSubtitle[<em>alignment</em>]{<em>text</em>}</code></h5>
+<div class="d5" id="d5.1.3.2">
+<p class="item"><b>A.</b> Text within <code>\ChapterTitle</code> is styled using the <i>chapter font</i>, and text within <code>\ChapterSubtitle</code> is automatically styled using the <i>subch font</i>.</p>
+<p class="item"><b>B.</b> You can locally over-ride these fonts, using font commands in the text.</p>
+<p class="item"><b>C.</b> The optional <i>alignment</i> controls how the element is horizontally placed. Choices are <i>l</i>, <i>c</i>, <i>r</i> (left, center, right). Default <i>c</i>.</p>
+<p class="item"><b>D.</b> You don't have to use either of these commands. Or, you can use either of them more than once! All these commands do is style the text. They do not have any meaning that is controlled by other macros.</p>
+<p class="item"><b>E.</b> The styled text is limited to one line (no wrap) per command. If you have a long chapter title or subtitle, then break it into pieces of manageable size, by repeating the command(s). Example:</p>
+<p class="code"><img class="floatright" src="html-resources/chaptertitlesubtitle.png" width="338" height="179" title="chapter title and subtitle, left aligned" alt="chapter title and subtitle, left aligned"/>
+<code><small>
+\begin{ChapterStart}<br/>
+\vspace{2<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\ChapterTitle[l]{XV}<br/>
+\vspace{<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\ChapterSubtitle[l]{In which Lord Withens, returned from his quest,}<br/>
+\ChapterSubtitle[l]{encounters an Army of Gnomes at his castle gate.}<br/>
+\end{\ChapterStart}<br/>
+Following the dark and stormy night, it was a bright and sunny day. That did nothing to improve the demeanor of Lord Withens, who was still soaked from riding through the rain. ...\par
+</small></code></p>
+</div><!-- end 5.1.3.2 -->
+
+<h5 id="h5.1.3.3">5.1.3.3. <code>\ChapterDeco[<em>alignment scale</em>]{<em>text</em>}</code></h5>
+<div class="d5" id="d5.1.3.3">
+<p class="item"><b>A.</b> This command is simply a way for you to remember that its content is neither the title nor subtitle of the chapter. Typical usage is to place a decorative element.</p>
+<p class="item"><b>B.</b> There is a single command option, which is parsed for a letter and/or a number, with our without comma or space. The <i>alignment</i> letter is one of <i>l</i>, <i>c</i>, <i>r</i> (left, center, right). Default <i>c</i>. The numerical <i>scale</i> (may be decimal) changes the size of the text, and tweaks its vertical position. Default scale is <i>1</i>.</p>
+<p class="item"><b>C.</b> For your convenience, the <i>NovelDeco</i> font (included with <i>novel</i> has a few possibilities. they are accessed via the <code>\decoglyph</code> command. The list of available decorations, and codes to access them, are in the file <i>NovelDeco-glyphs.pdf</i>, which is in the <i>extras</i> folder within this documentation. Note that the decorations can be placed anywhere in your document, not just in <code>\ChapterDeco</code>.</p>
+<p class="item"><b>D.</b> <img class="floatright" src="html-resources/lowdown.png" width="300" height="141" title="chapter title with decoration" alt="chapter title with decoration"/>Most of the <code>\decoglyph</code> decorations look best when the optional <i>scale</i> is near <i>4</i>. Example:</p>
+<p class="code"><code><small>
+\begin{ChapterStart}[8]<br/>
+\vspace{2<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\ChapterTitle[l]{3}<br/>
+\ChapterSubtitle[l]{The Low-Down}<br/>
+\ChapterDeco[l4]{\decoglyph{n9591}\decoglyph{r9656}}<br/>
+\end{ChapterStart}<br/>
+I didn't hear the low-down until the following Saturday. By then, all hell had broken loose at Vinny's joint, and the boys were looking for me in trash cans, just in case that was where I was hiding, or maybe dead. ...\par
+</small></code></p>
+</div><!-- end 5.1.3.3 -->
+
+<h5 id="h5.1.3.4">5.1.3.4. Chapter Epigraph</h5>
+<div class="d5" id="d5.1.3.4">
+<p class="item"><b>A.</b> If you would like to place an Epigraph within <i>ChapterStart</i>, there is no special command for that purpose. You do it the same way you would do it anywhere else: Use the <i>adjustwidth</i> environment to limit the text width. You may use the <i>parascale</i> environment to scale the block of text, without disturbing the following line grid, as long as you are within <i>ChapterStart</i>.</p>
+<p class="item"><b>B.</b> <b>Example:</b></p>
+<p class="code"><img class="floatright" src="html-resources/bookofbeirh.png" width="344" height="191" title="chapter title with epigraph" alt="chapter title with epigraph"/><code><small>
+\begin{ChapterStart}<br/>
+\vspace{2<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\ChapterTitle{16. The Great Incantation}<br/>
+\vspace{<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\begin{adjustwidth}{4em}{4em}<br/>
+\begin{parascale}[0.88]<br/>
+In the third moon of the third raveling, in the third hour of the third day, Fingly shall come again.\par<br/>
+\stake\hfill \textit{Book of Beirh}\par<br/>
+\end{parascale}<br/>
+\end{adjustwidth}<br/>
+\end{ChapterStart}<br/>
+In the latter days of the Dorf dynasty, a marvelous apparition sent the King's guard scrambling in terror. Elders soon declared that it was the return of Fingly, prophesized in the Book of Beirh. ...\par
+</small></code></p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> It is not necessary to load the <i>epigraph</i> package. Simply construct your own style of epigraph using other methods. But if you do load <i>epigraph</i>: Only use <code>\epigraph</code>, or the <code>epigraphs</code> environment, within the ChapterStart environment, or on a display page. Commands <code>\epigraphhead</code>, <code>\dropchapter</code>, <code>\undocrop</code> do not work in <i>novel</i>. The <code>\cleartoevenpage[<i>option</i>]</code> command does work. Ignore the material regarding epigraphs on part pages or in bibliographies.</p>
+</div><!-- end 5.1.3.4 -->
+</div><!-- end 5.1.3 -->
+
+<h4 id="h5.1.4">5.1.4. ChapterStart With Image</h4>
+<div class="d4" id="d5.1.4">
+<p class="item"><b>A.</b> You can use an image in chapter titles. If you place an image, use one of the image commands defined by <i>novel</i> elsewhere in the documentation.</p>
+<p class="item"><b>B.</b> Be sure that you are licensed to use the image. Many clipart catalogs "for personal use only," prohibit usage in commercial books. One possible source is <a href="http://openclipart.org" rel="external" target="new">openclipart.org</a> (note the <em>.org</em>).</p>
+
+<h5 id="h5.1.4.1">5.1.4.1. Text Over Inline Image</h5>
+<div class="d5" id="d5.1.4.1">
+<p class="item"><b>A.</b> <img class="floatright" src="html-resources/ctimg35.png" width="79" height="196" alt="example of chapter title image, text over"/> You may position text over an <code><a href="#h7.2.2">\InlineImage</a></code>. You must use black text, or grayscale text that is much darker than the underlying image.</p>
+<p class="item"><b>B.</b> <b>Example:</b> Here, the command <code>\unifrac</code> calls for the font <i>UnifrakturMaguntia.ttf</i>. Note that the font command is <i>outside</i> \charscale:</p>
+<p class="code"><code><small>\begin{ChapterStart}<br/>
+\FloatImage{sword.png} <span class="ap">% centered by default</span><br/>
+{\unifrak\centering\charscale[3,0pt,4<span style="cursor:help" title="normal baseline skip">\nbs</span>]{35}\par}<br/>
+</small>\end{ChapterStart}</code></p>
+</div><!-- end 5.1.4.1 -->
+
+<h5 id="h5.1.4.2">5.1.4.2. Text Built Into Image</h5>
+<div class="d5" id="d5.1.4.2">
+<p class="item"><b>A.</b> If the text is not much darker than the background image, then it is better to include the text as part of the raster image. The reason is that "white ink" will not be used for your book. Also, you cannot use image transparency.</p>
+<p class="item"><b>B.</b> <b>Example:</b> The number is built into the image itself.</p>
+<p class="code"><img class="floatright" src="html-resources/smfingerprint8.png" width="86" height="70" alt="example of chapter title image, raster text"/><code><small>\begin{ChapterStart}<br/>
+\FloatImage[l]{smfingerprint8.png}<br/>
+\end{ChapterStart}</small></code></p>
+</div><!-- end 5.1.4.2 -->
+</div><!-- end 5.1.4 -->
+</div><!-- end 5.1 -->
+
+<h3 id="h5.2">5.2. Continuously Running Chapters</h3>
+<div class="d3" id="d5.2">
+<p class="noindent">Standard book design calls for each chapter to begin on a new page. However, some books are designed with numerous short chapters that run continously, so that chapters may start anywhere on a page. There are two ways to handle this in <i>novel</i>, or you can simply design your own method.</p>
+
+<h4 id="h5.2.1">5.2.1. Reduced-Height ChapterStart</h4>
+<div class="d4" id="d5.2.1">
+<p class="item"><b>A.</b> Since the <i>ChapterStart</i> environment does not automatically begin a new page, you can use it for continuously running chapters. In Preamble, set a short height, such as <code>\SetChapterStartHeight{4}</code>. Also use <code>\SetChapterStartStyle{fancy}</code> so that headers don't disappear.</p>
+<p class="item"><b>B.</b> Throughout the book, you can make local adjustments to the <i>ChapterStart</i> height, so that they don't fall at an inconvenient location (such as at the bottom of a page). Yes, I have seen this done in published works. If a particular chapter is sufficiently important that it deserves a page break, or a lot more space, you can do that easily.</p>
+</div><!-- end 5.2.1 -->
+
+<h4 id="h5.2.2">5.2.2. <code>\QuickChapter[<em>linelength</em>]{<em>chapter title</em>}</code></h4>
+<div class="d4" id="d5.2.2">
+<p class="item"><b>A.</b> The <code>\QuickChapter</code> command inserts two blank lines. In the gap, the chapter title is left-justified using <i>subch font</i> (not <i>chapter font</i>). It is slightly raised from the normal baseline, because this looks better; but the following text is back on-grid. By default, the start of the following text will be un-indented.</p>
+<p class="item"><b>B.</b> If the optional <i>linelength</i> is provided, then a dash will be written after the title, at the position and thickness typical of the em dash in <i>subch font</i>. If <i>linelength</i> is specified in units of length, then that will be the length of the line. But if <i>linelength</i> is an asterisk, then the line will fill to the right margin.</p>
+<p class="item"><b>C.</b> <code>\QuickChapter</code> is probably too obtrusive, for mere scene changes within a chapter.</p>
+<p class="item"><b>D.</b> <b>Example:</b></p>
+<p class="code"><code><small>Then he looked at me with a sneer, and barked, &ldquo;You better haul your can over to Vinny's joint, before the Boss finds out.&rdquo;\par<br/>
+\QuickChapter[3em]{16. At Vinny&rsquo;s}<br/>
+So I took his advice, and hauled my can over to Vinny&rsquo;s. It was everything I had expected, and worse.\par<br/>
+The bouncer wasn't the biggest one I&rsquo;d ever seen, but he was the ugliest. ...</small></code></p>
+<p class="centerimg"><img src="html-resources/quickchapter.png" width="629" height="240" alt="quick chapter"/></p>
+</div><!-- end 5.2.2 -->
+</div><!-- end 5.2 -->
+
+<h3 id="h5.3">5.3. Scene Breaks</h3>
+<div class="d3" id="d5.3">
+<p class="item"><b>A.</b> There are several commands dedicated to the purpose of scene breaks.</p>
+<p class="code"><code><b>\scenebreak</b></code> inserts a one-line blank skip. The following line of text is not indented.</p>
+<p class="code"><code><b>\sceneline</b></code> inserts a one-line skip, containing a short centered line. The following line of text is not indented.</p>
+<p class="code"><code><b>\scenestars</b></code> inserts a one-line skip, containing three spaced, centered asterisks. The following line of text is not indented.</p>
+<p class="item"><b>B.</b> <b>Examples:</b></p>
+<p class="code"><img style="float:right; margin-left:16px;" src="html-resources/scenebreaks.png" width="331" height="236" alt="scene breaks"/>
+<code><small>
+\noindent It was a dark and stormy night.\par<br/>
+Lord Withens, the last of his line, hurried through the gloom to Castle McWhistle, where Lady McWhistle awaited.\par<br/>
+\scenebreak<br/>
+Well, maybe it was not very dark.\par<br/>
+But to Lord Withens, it seemed dark enough. Or rather, he hoped it was dark enough. Lord McWhistle was suspicious.\par<br/>
+\sceneline<br/>
+Actually, it was not all that stormy, either. But the Withens clan never tolerated drizzle, much less a storm.\par<br/>
+Who could blame them? It's not like they lived in Italy.\par<br/>
+\scenestars<br/>
+Ah, such ill fortune haunted the Withens!\par<br/>
+Unfortunately, novelists of that era had so little to write about, or they would have chosen another family to pursue.\par
+</small></code></p>
+<p class="item"><b>C.</b> From version 1.52, a badly-placed scene break will be detected, and a Warning message will be issued.</p>
+<p>If <code>\scenebreak</code> is positioned at the very top or bottom of a page, then the Warning will advise you to substitute it with either <code>\scenestars</code> or <code>\sceneline</code>. The substitution is not automatic.</p>
+<p>If any of <code>scenebreak</code>, <code>\sceneline</code>, or <code>\scenestars</code> appears just one line away from the top or bottom of a page, you will get a Warning.</p>
+
+<h4 id="h5.3.1">5.3.1. <code>\SetScenebreakIndent{<em>true</em> or <em>false</em>}</code></h4>
+<div class="d4" id="d5.3.1">
+<p class="noindent">This global command may only be used in the Preamble. Default is <i>false</i>.</p>
+<p>Normally, text begins without a paragraph indent, after each scene break. This is standard in fiction. If you prefer that each new scene begins indented, use this command. It works only with <code>\scenebreak</code>, <code>\sceneline</code>, and <code>\scenestars</code>.</p>
+</div><!-- end 5.3.1 -->
+</div><!-- end 5.3 -->
+
+<h3 id="h5.4">5.4. Automatic Chapter Numbering</h3>
+<div class="d3" id="d5.4">
+<p class="noindent">By popular demand, here is how to add automatic chapter numbering, even though it is easier to just type <i>Chapter One</i> or whatever you need:</p>
+<p class="item"><b>A.</b> Counter <i>novelcn</i> is pre-defined, and initialized to <i>1</i> (not zero). If you simply wish to print its value as a number, then increment the count, do something like this:</p>
+<p class="code"><code>
+\ChapterTitle{Chapter \the\value{novelcn}\stepcounter{novelcn}}
+</code></p>
+<p>That will print Chapter 1, Chapter 2, and so forth. Of course, only do this for real, numbered chapters, not for "chapter-like" sections. If your book has several parts, and each part re-sets its own chapter count, use \setcounter{novelcn}{1} prior to the first chapter in each part.</p>
+<p class="item"><b>B.</b> If you would like the number to be spelled out, as in Chapter One, Chapter Two, and so forth, then try the <i>fmtcount</i> package. It can also do ordinals such as First Chapter, Second Chapter. See the <i>fmtcount</i> package documentation for details.</p>
+<p class="item"><b>C.</b> If your document's language is other than English, use <code>\setdefaultlanguage</code> <i>before</i> you load the <i>fmtcount</i> package. If you do it later, then positioning will be incorrect.</p>
+<p class="item"><b>D.</b> <b>Example:</b> With <i>fmtcount</i> loaded in Preamble.</p>
+<p class="code"><code>
+% if necessary, use \setdefaultlanguage first.<br/>
+\RequirePackage{fmtcount}<br/>
+</code></p>
+<p>Example usage in chapter titles:</p>
+<p class="code"><code>
+\ChapterTitle{\Ordinalstring{novelcn}\stepcounter{novelcn} Robbery} %1<br/>
+\ChapterTitle{\Ordinalstring{novelcn}\stepcounter{novelcn} Robbery} %2<br/>
+\ChapterTitle{\Ordinalstring{novelcn}\stepcounter{novelcn} Robbery} %3
+</code></p>
+<p class="centerimg"><img src="html-resources/robberies.png" width="411" height="98" title="odinal chapter numbering" alt="ordinal chapter numbering"/></p>
+</div><!-- end 5.4 -->
+
+<h3 id="h5.5">5.5. First Lines and Drop Caps</h3>
+<div class="d3" id="d5.5">
+<p class="noindent">The first line of chapter text is often treated with a style of its own. Often, all or part of the first line is in small caps. The first letter may be larger than the rest. Or, the first letter may occupy several lines (sometimes using an image). This last effect is known as <i>drop cap</i> (French <i>lettrine</i>).</p>
+
+<h4 id="h5.5.1">5.5.1. First Character Special</h4>
+<div class="d4" id="d5.5.1">
+<p class="item"><b>A.</b> Use the <code>\charscale</code> command to size the first letter (or more than one letter) so that it stands above the remainder of the line. Remember that you will see a capital letter standing next to lowercase letters, so it will appear taller. You may also use a font command.</p>
+<p class="item"><b>B.</b> <b>Example:</b> Where <code>\NewFontFace\alexbrush{AlexBrush-Regular.ttf}</code> appears in Preamble.</p>
+<p class="code"><code>
+\noindent\charscale[1.6]{\alexbrush I}\hspace{0.2em}t was a dark and stormy night. Well, it really wasn't all that dark, seeing as how this story is set in Las Vegas.
+</code></p>
+<p class="centerimg"><img src="html-resources/firstletterspecial.png" width="680" height="83" alt="first letter special" title="first letter special"/></p>
+</div><!-- end 5.5.1 -->
+
+<h4 id="h5.5.2">5.5.2. First Line Small Caps</h4>
+<div class="d4" id="d5.5.2">
+<p class="item"><b>A.</b> If you want to place a portion of the first line in small caps, then simply do it using <code>\textsc{text}</code>. This effect can also continue to additional lines. That is, it does not automatically stop at the end of the first line.</p>
+<p class="item"><b>B.</b> The <i>magaz</i> package is pre-loaded in <i>novel</i>. It provides the <code>\FirstLine</code> command, which takes the entire first paragraph as its argument. Place <code>\noindent</code> inside. You may also style the first letter (or more than one) as described above; the styled letter appears inside the <code>\FirstLine</code> command.</p>
+<p class="item"><b>C.</b> <b>Example:</b></p>
+<p class="code"><code>
+\FirstLine{\noindent\charscale[1.6]{\alexbrush I}\hspace{0.2em}t was a dark and stormy night. Well, it really wasn't all that dark, seeing as how this story is set in Las Vegas.}
+</code></p>
+<p class="centerimg"><img src="html-resources/firstlinespecial.png" width="682" height="84" alt="first line small caps" title="first line small caps"/></p>
+</div><!-- end 5.5.2 -->
+
+<h4 id="h5.5.3">5.5.3. Drop Caps</h4>
+<div class="d4" id="d5.5.3">
+<p class="item"><b>A.</b> The <i>drop cap</i> is an enlarged letter (or image) at the beginning of chapter text, with the first few lines of text wrapped around it:</p>
+<p class="centerimg"><img src="html-resources/dropcap.png" width="431" height="112" title="drop cap" alt="drop cap"/></p>
+<p class="item"><b>B.</b> Works of popular fiction rarely use drop caps. Instead, having a special first character (<a href="#h5.5.1">section 5.5.1</a>) is more common, as it presents fewer layout problems, and is less distracting.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The <code>\dropcap</code> command is native to <i>novel</i>. You may also load and use <i>lettrine</i>. An extensive discussion of drop caps is in <a href="#hF">Appendix F</a>.</p>
+</div><!-- end 5.5.3 -->
+</div><!-- end 5.5 -->
+
+
+</div><!-- end 5 -->
+</div><!-- end page05 -->
+<!-- ************************************************************ -->
+<div id="page06" class="page">
+
+
+<h2 id="h6">6. Text Sizes and Styling</h2>
+<div class="d2" id="d6">
+<p class="noindent">This section describes how to change the size of text, how to style text (such as italics), and how to move it around. It also describes some miscellaneous commands that are intended to modify text.</p>
+<p class="item"><b>A.</b> Information about how to choose the global, main text point size is described in <a href="#h4.2.1.2">section 4.2.1.2</a>. General information about choosing fonts and font features is in <a href="#hC">Appendix C</a> and <a href="#hE">Appendix E</a>. Styles particularly used at chapter openings are described in <a href="#h5">section 5</a>.</p>
+<p class="item"><b>B.</b> There is no direct setting for normal baselineskip; it is automatically calculated from the size of the textblock (using Trim Size, Margins, and header/footer layouts) and <a href="#h4.3.2">lines per page</a>.</p>
+<p class="item"><b>C.</b> The included <i>microtype</i> package is pre-configured, using these settings:</p>
+<p class="code"><code>\microtypesetup{config=novel-microtype,final,stretch=20,shrink=20}</code></p>
+<p>File <i>novel-microtype.cfg</i> uses settings typical of the kind of book-weight font that you are likely to use. The stretch and shrink factors are moderate. Calculation is always final, so that you see the same effect whether or not you use the <i>draft</i> class option. If you wish to change any of these, see the <i>microtype</i> package documentation. Note that since you are compiling with LuaLaTeX, some features of <i>microtype</i> may not be available.</p>
+
+<h3 id="h6.1">6.1. Text Sizes</h3>
+<div class="d3" id="d6.1">
+<p class="noindent">Be sure to read through this. In <i>novel</i>, standard TeX font size commands are disabled. There are new commands that address the limited needs for font sizing, in the context of fiction. These new commands are primarily for local adjustments of a few characters, or for display pages that are outside the main flow of text.</p>
+
+<h4 id="h6.1.1">6.1.1. Surprise! Traditional TeX Font Size Commands Are Disabled.</h4>
+<div class="d4" id="d6.1.1">
+<p class="item"><b>A.</b> Standard LaTeX font size commands, such as <code>\small</code> and <code>\LARGE</code>, are disabled in <i>novel</i>. If you use them, they will be ignored, and the affected text will be printed without modification. This is by intent, for the purpose of maintaining the baseline grid.</p>
+<p class="item"><b>B.</b> The one exception is that <a href="#h6.5.1">footnotes</a> will appear with smaller than normal size and skip. But this is done automatically. You cannot manipulate it with a size command.</p>
+<p class="item"><b>C.</b> Use <i>novel's</i> own commands for manipulating font size. The correct command depends on the quantity of text involved.</p>
+</div><!-- end 6.1.1 -->
+
+<h4 id="h6.1.2">6.1.2. <code>\charscale[<em>scale,hoffset,voffset</em>]{<em>text, but not image</em>}</code> and starred</h4>
+<div class="d4" id="d6.1.2">
+<p class="item"><b>A.</b> The contents of <code>\charscale{}</code> occupy no vertical space. Thus, scaled text does not push baselines apart. Excessive scale may cause characters to overlap; in some cases this is a desirable special effect.</p>
+<p class="item"><b>B.</b> The optional argument has up to three comma-separated components. The first is a number, which scales the text relative to its natural size. If the text was already scaled by some other operation (such as using <i>fontspec</i> to define the font with Scale feature), then the effect is cumulative.</p>
+<p>Do not use a scale close to zero, or negative. The result is unpredictable.</p>
+<p class="item"><b>C.</b> <code>\charscale</code> may be used for a short amount of text, where there is no line break, and no wrap. The command will throw an error if the included text has <code>\\</code> or <code>\par</code> or any other method that breaks the line.</p>
+<p>Excessive text will not wrap. It will overflow into the right margin.</p>
+<p class="item"><b>D.</b> <b>Example:</b> In this example, line 4 is so enarged that its ascenders and descenders overlap other text.</p>
+<p class="code" style="margin-left:0px"><img class="floatright" src="html-resources/jackbequick.png" width="222" height="94" title="use of \charscale" alt="use of \charscale"/><code><small>
+Jack be quick. (1)\par<br/>
+\charscale[1.2]{Jack be quick.} (2)\par<br/>
+\charscale[1.5]{Jack be quick.} (3)\par<br/>
+\charscale[2.5]{Jack be quick.} (4)\par<br/>
+\charscale[1.2]{Jack be quick, JACK} (5)\par
+</small></code></p>
+<p class="item"><b>E.</b> The second optional component, if used, is horizontal offset. The third optional component, if used, is vertical offset. Offsets are lengths, measured in units such as <code>em</code> or <code><span style="cursor:help" title="normal baseline skip">\nbs</span></code>.</p>
+<p class="item"><b>F.</b> In its starred form, the contents of <code>\charscale*{}</code> occupy neither vertical nor horizontal space. <b>Example:</b></p>
+<p class="code" style="margin-left:0px"><img class="floatright" src="html-resources/alphabetagamma.png" width="263" height="124" title="use of \charscale" alt="use of \charscale"/><code><small>
+Alpha \charscale[1.25]{Beta} Gamma. (1)\par<br/>
+Alpha \charscale[1.25,8em,1.3<span style="cursor:help" title="normal baseline skip">\nbs</span>]{Beta} Gamma. (2)\par<br/>
+Alpha Gamma. (3)\par<br/>
+Alpha\charscale*[1.25,8em,1.3<span style="cursor:help" title="normal baseline skip">\nbs</span>]{Beta} Gamma. (4)\par
+</small></code></p>
+<p>In line 1, Beta is enlarged, but not offset. It occupies slightly more width than it would have occupied unscaled. In line 2, Beta has been offset. Since the unstarred <code>\charscale</code> was used, the horizontal space is still there.</p>
+<p>Line 3 has no Beta. Line 4 uses the starred <code>\charscale*</code> to offset Beta, but no width is left behind. Note that the space between Alpha and Gamma is an ordinary inter-word space, because there is a space following the command.</p>
+<p class="item"><b>G.</b> <code>\charscale</code> is very effective on <a href="#hD.3.1.1">display pages</a>, where you can scale and move text however you wish. The starred version is especially useful, since back-to-back <code>\charscale*</code> will place text from a single vantage point.</p>
+<p class="item"><b>H.</b> In main text, the most practical application of <code>\charscale</code> is to enlarge the first character of chapter text. See <a href="#h5.5.1">section 5.5.1</a>. Otherwise, the command is rarely used, mostly for local correction of characters that need some size adjustment.</p>
+<p class="item" style="position:relative"><b>I.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> <code>\charscale</code> does not commute with some other TeX commands. That is, the results of <code>\charscale{\othercommand{<em>text</em>}}</code> and <code>\othercommand{\charscale{<em>text</em>}}</code> may differ.</p>
+</div><!-- end 6.1.2 -->
+
+<h4 id="h6.1.3">6.1.3. <code>\begin{parascale}[<em>scale</em>] ... \end{parascale}</code></h4>
+<div class="d4" id="d6.1.3">
+<p class="item"><b>A.</b> The <i>parascale</i> environment is used on a paragraph basis. More than one paragraph may be included. The scale is applied to the font size and to the baselineskip within.</p>
+<p>Note that the scale is an optional argument. Default is <code>1</code>.</p>
+<p class="item"><b>B.</b> The <i>parascale</i> environment is allowed to cross page boundaries.</p>
+<p>Trick: If you place an ordinary paragraph in <i>parascale</i> at scale <code>1</code>, then you will know whether or not that paragraph remains on one page.</p>
+<p class="item"><b>C.</b> For scale less than or equal to <code>1</code>, the first line in <i>parascale</i> will be at the normal baseline position. The following lines will progressively depart from the normal grid (unless scale is <code>1</code>). Thus, you will usually need to add some amount of vertical space following <i>parascale</i>, in order to restore subsequent text to the line grid.</p>
+<p class="item"><b>D.</b> You will usually get a Warning message, advising you that <i>parascale</i> caused the subsequent text (after the environment closed) to be off-grid. Fix by adding the requisite <code>\vspace</code> just prior to <code>\end{parascale}</code>.</p>
+<p>If <i>parascale</i> is entirely on a single page, you may also split the <code>\vspace</code>: Place part of it prior to <code>\begin{parascale}</code>, and part of it prior to <code>\end{parascale}</code>.</p>
+<p class="item"><b>E.</b> If multiple <i>parascale</i> end on a single page, the line deficit is cumulative. For example, if the first deficit is <code>0.5\nbs</code> and the second defict is <code>0.8\nbs</code>, you would fix them by adding <code>0.5\nbs</code> and <code>0.3\nbs</code> respectively.</p>
+<p class="item"><b>E.</b> Example:</p>
+<p class="code"><code><small>
+Lord Withens sneaked out the door of the veranda, and hastily opened the letter. In it was a message that curled his jodphurs:\par<br/>
+\begin{parascale}[0.87]<br/>
+We knows where youse been a-goin all a them dark and stormy nights. We knows what you been doin out there. We got yer number, Jack. So youse better play nice or we gonna rat to the lady.\par<br/>
+\vspace{0.26\nbs} % Without this, a Warning is issued, adivisng 0.26\nbs.<br/>
+\end{parascale}<br/>
+Even after his jodphurs had finally uncurled, Lord Withens could not master his rage. ``My name's not Jack,'' he mumbled.\par
+</small></code></p>
+<p class="centerimg"><img src="html-resources/parascale.png" width="598" height="214" title="parascale with vspace" alt="parascale with vspace"/></p>
+</div><!-- end 6.1.3 -->
+
+<h4 id="h6.1.4">6.1.4. Open Type Scale (fontspec)</h4>
+<div class="d4" id="d6.1.4">
+<p class="item"><b>A.</b> If you will be using a font in a way that it will <em>always</em> be at a size different from the normal font size, you may use the <a href="#hE.2.1">Scale</a> feature when you first define the font. This is defined by the <i>fontspec</i> package, which is automatically loaded with <i>novel</i>. Example:</p>
+<p class="code"><code>\NewFontFamily\minifont[Scale=0.75,Numbers=Lining]{\parentfont}</code></p>
+<p class="item"><b>B.</b> The scaled font can be used anywhere. It is not limited to a single line, and it will maintain the line grid at scales not exceeding 1.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Scaled text may disturb the line grid, if its scale is more than 1.</p>
+</div><!-- end 6.1.4 -->
+</div><!-- end 6.1 -->
+
+<h3 id="h6.2">6.2. General Styling</h3>
+<div class="d3" id="d6.2">
+<p class="noindent">Many of these commands are directly from LaTeX, and are mentioned here because they are frequently used. Other commands are specific to <i>novel</i>.</p>
+
+<h4 id="h6.2.1">6.2.1. Italics and Emphasis</h4>
+<div class="d4" id="d6.2.1">
+<p class="item"><b>A.</b> <code>\itshape{<em>text, may cross paragraphs</em>}</code> is a general-purpose command for italics.</p>
+<p class="item"><b>B.</b> <code>\textit{<em>text</em>}</code> will not cross paragraphs.</p>
+<p class="item"><b>C.</b> <code>\emph{<em>text</em>}</code> changes regular text to italics, and italic text to regular. You may nest <code>\emph</code> commands. Many writers opine that this is the preferred way to specify italics. It cannot cross paragraphs.</p>
+<p class="item"><b>D.</b> If the italicized text leans too far into the following space, try adding <code>\/</code> (back and forward slashes) just before closing the braces.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Italics are not faked (such as by slanting). If the font does not have an italic font file, then regular text will appear. You may use <i>fontspec</i> syntax to substitute a different italic font, if necessary. See <a href="#hE.1.1">Appendix E.1.1</a> <i>file name combinations</i>.</p>
+</div><!-- end 6.2.1 -->
+
+<h4 id="h6.2.2">6.2.2. Bold, Semibold, etc.</h4>
+<div class="d4" id="d6.2.2">
+<p class="item"><b>A.</b> <code>\bfshape{<em>text, may cross paragraphs</em>}</code> is a general-purpose command for bold.</p>
+<p class="item"><b>B.</b> <code>\textbf{<em>text</em>}</code> will not cross paragraphs.</p>
+<p class="item"><b>C.</b> The default main font in <i>novel</i> is <i>Libertinus Serif</i>, which has both bold and semibold weights. The semibold weight is pre-configured to substitute for bold.</p>
+<p class="item"><b>D.</b> If you use a different font, and it has an alternative to bold weight, see <a href="#hE.1.1">Appendix E.1.1</a> <i>file name combinations</i> for how to configure the choice. Bold is not faked by thickening.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Bold is rare in fiction. It <em>might</em> be the case that this weight is useful for titles, but you ought to consider a fancy-looking font for that purpose, rather than mere Bold. Or, make the letters big and bold, but balance the effect by using gray.</p>
+</div><!-- end 6.2.2 -->
+
+<h4 id="h6.2.3">6.2.3. Underlining</h4>
+<div class="d4" id="d6.2.3">
+<p class="noindent">Underlining is inappropriate for fiction. Don't do it. Besides, there are some issues regarding line grid and appearance, which are not a problem in academic works, but are noticeable in fiction.</p>
+<p>If you are using a line for its graphic effect, the <code><a href="#bigemdash">\bigemdash</a></code> command might be helpful.</p>
+</div><!-- end 6.2.3 -->
+
+<h4 id="h6.2.4">6.2.4. Small Caps and Midcase</h4>
+<div class="d4" id="d6.2.4">
+<p class="item"><b>A.</b> <code>\scshape{text, may cross paragraphs}</code> is a general-purpose command for converting lowercase to small caps.</p>
+<p class="item"><b>B.</b> <code>\textsc{<em>text</em>}</code> does not cross paragraphs. Alias: <code>\smcp{<em>text</em>}</code>.</p>
+<p class="item"><b>C.</b> <code>\allsmcp{<em>text</em>}</code> places both uppercase and lowercase letters in small caps. It does not cross paragraphs.</p>
+<p class="item"><b>D.</b> Small caps are taken from the font's <i>smcp</i> Open Type feature. If the font is not Open Type, or does not have this feature, then small caps will not be faked. Command <code>\allsmcp</code> also uses feature <i>c2sc</i> if it is available; otherwise it converts letters to lowercase, then applies <i>smcp</i>.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you require small caps, but your font does not have them, you can fake them by scaling uppercase. But this is usually unattractive. A better method is described in the <i>fontspec</i> package documentation: You may appoint a different font that will provide small caps.</p>
+<p class="item" style="position:relative"><b>F.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you insist on using old-fashioned TeX fonts, which do not have the <i>smcp</i> Open Type feature, then you may need to write this code in the Preamble:</p>
+<p class="code"><code>\let\smcp\oldscshape\relax<br/>
+\let\textsc\oldscshape\relax<br/>
+\let\scshape\oldscshape\relax</code></p>
+<p>The above code sends you in a time machine back to the Twentieth Century.</p>
+<p class="item"><b>G.</b> <code>\midcase{<em>text</em>}</code> is special to <i>novel</i>. If the <i>NovelDeco</i> font is installed, uppercase letters in the text will be converted to "mid-size capitals," and lowercase will remain lowercase, but with ascenders slightly reduced. The purpose of this command is so that acronyms such as NASA and NATO blend well with surrounding text. I have found that whereas ordinary uppercase is too conspicuous, small caps also looks wrong. Example:</p>
+<p class="code"><img class="floatright" src="html-resources/acronym2.png" width="192" height="89" alt="midcase"/>
+<code>
+The NATO alliance...\par<br/>
+The \midcase{NATO} alliance...\par<br/>
+The \allsmcp{NATO} alliance...\par
+</code></p>
+<p class="item" style="position:relative"><b>H.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Whether or not to use the <code>\midcase</code> command, is up to you. Since its letters are drawn from the <i>NovelDeco</i> font, rather than your main font, there may be some stylistic differences if your <i>parent font</i> is not Libertinus Serif.</p>
+</div><!-- end 6.2.4 -->
+
+<h4 id="h6.2.5">6.2.5. Local Tracking Adjustment</h4>
+<div class="d4" id="d6.2.5">
+<p class="item"><b>A.</b> <i>Tracking</i> refers to how tight or loose is the space between adjacent letters. This is a property of the font itself, and is automatically tweaked by the included <i>microtype</i> package. Do not confuse tracking with <i>inter-word spacing</i>, which is more widely adjusted during paragraph layout calculations.</p>
+<p class="item"><b>B.</b> If only two adjacent letters are involved, use the <code>\kern</code> or <code>\hspace</code> command. The following examples have the same effect. Note that there is no added space character, and that the units of length are <code>em</code>:</p>
+<p class="code"><code>
+I\kern-.05emt was a dark and stormy night.<br/>
+I\hspace{-.05em}t was a dark and stormy night.
+</code></p>
+<p class="item"><b>C.</b> Loose tracking is often used in page header text. In <i>novel</i>, this is addressed by a special command. See <a href="#h4.3.4.3">section 4.3.4.3</a>.</p>
+<p class="item"><b>D.</b> Do not use the <code>\textls</code> command. It will be ignored, and its contents will be rendered with ordinary tracking.</p>
+<p class="item"><b>E.</b> The included <i>fontspec</i> package allows you to globally set the tracking of an Open Type font, or locally change its tracking, using the <i>LetterSpace</i> feature. It is unlikely that you will need this capability. If you do, see <i>fontspec</i> package documentation 6.8.</p>
+</div><!-- end 6.2.5 -->
+
+<h4 id="h6.2.6">6.2.6. Local Font Selection</h4>
+<div class="d4" id="d6.2.6">
+<p class="item"><b>A.</b> The following font commands are pre-defined in <i>novel</i>: \rmfamily (alias <a href="#h4.2.2">\mainfont</a>) <a href="#h4.2.4">\sffamily</a> <a href="#h4.2.4">\ttfamily</a> <a href="#h5.1.3.1">\chapterfont</a> <a href="#h5.1.3.1">\subchfont</a> <a href="#h4.3.4.2">\headfont</a> <a href="#h4.2.3">\decofont</a> <a href="#hF.4">\decodropcapfont</a>.</p>
+<p class="item"><b>B.</b> Although most of the pre-defined font commands are automatically applied in specific situations, you may apply any of them yourself, in any location, using this syntax:</p>
+<p class="code"><code>{\subchfont This text will be in the subch font.}</code></p>
+<p class="item"><b>C.</b> If you wish, use <i>fontspec</i> syntax to create additional font selection commands. See <a href="#h4.2.5">section 4.2.5</a> and <a href="#hE">Appendix E</a> for the essentials. For example, if you have the licensed font, this code would define the font selection command <code>\agarp</code> in Preamble:</p>
+<p class="code"><code>\NewFontFamily\agarp[Numbers=OldStyle,Ligatures=Common]{Adobe Garamond Pro}</code></p>
+<p>Then you would apply it to text:</p>
+<p class="code"><code>{\agarp Text to appear in that font.}</code></p>
+</div><!-- end 6.2.6 -->
+
+<h4 id="h6.2.7">6.2.7. Local Feature Changes</h4>
+<div class="d4" id="d6.2.7">
+<p class="noindent"><code><b>{\addfontfeature{<em>feature</em>} <em>text</em>}</b></code> for changing Open Type features.</p>
+<p class="item"><b>A.</b> If a font is already defined, you can locally add one or more <a href="#hE.2">features</a>. For example, suppose that you defined <code>\mynewfont</code> without using its Open Type feature <i>ss03</i> (we will assume that the font actually has this feature). In a particular place, you wish to activate <i>ss03</i>. The code looks like this:</p>
+<p class="code"><code>{\mynewfont\addfontfeature{RawFeature=+ss03} <em>text</em>}</code> % Note + sign. Braces outside.</p>
+<p>That limits the scope of the feature to the included group, in TeX terminology.</p>
+<p class="item"><b>B.</b> You can modify features used by any defined font, whether you defined it yourself or it is one of the <i>novel</i> built-in font commands. You can add more than one feature. If the requested feature does not exist in the font, then your request will be ignored.</p>
+<p class="item"><b>C.</b> What about removing a feature that is already present in the font definition? Suppose you defined <code>\mynewfont</code> so that <i>Numbers=OldStyle</i> is used. On a local basis, can you change the style of numbers? Usually, yes. You could use <i>Numbers=Lining</i> to over-ride the feature. Sometimes it depends on how you chose the features, as a matter of syntax. See the <i>fontspec</i> documentation.</p>
+</div><!-- end 6.2.7 -->
+
+<h4 id="h6.2.8">6.2.8. Grayscale Text</h4>
+<div class="d4" id="d6.2.8">
+<p class="item"><b>A.</b> <code><b>\color{<em>name</em>}</b></code> or <code><b>\color[gray]{<em>scale</em>}</b></code> is used within a group. All text will be in grayscale, from where the command is placed, until the group ends. If the command is not at the beginning of the group, it does not affect prior text. Example:</p>
+<p class="code"><code>
+\begingroup<br/>
+This text is unaffected by the following command.<br/>
+\color{lightgray} % Alternative: \color[gray]{number 0 to 1}<br/>
+This text is in lightgray, until the group ends.<br/>
+\endgroup
+</code></p>
+<p style="margin-top:10px"><code><b>\textcolor{<em>text</em>}</b></code> or <code><b>\textcolor[gray]{<em>scale</em>}{<em>text</em>}</b></code> affects only the included text.</p>
+<p class="code"><code>\textcolor{gray7}{This text is in color gray7, a medium-light gray.}<br/>
+\textcolor[gray]{0.32}{This text is in 32 percent gray.}</code></p>
+<p style="margin-top:10px">Whether you use <code>\color</code> or <code>\textcolor</code>, there are two ways to specify the color: by name, or by scale, using package <i>xcolor</i> syntax.</p>
+<p class="item"><b>B.</b> The following color names are accepted, and will be converted to some shade of gray (from dark to light): black, blue, violet, darkgray, purple, red, teal, olive, magenta, gray, brown, green, orange, cyan, lightgray, lime, pink, yellow, white.</p>
+<p class="item"><b>C.</b> The above names are often not helpful, so <i>novel</i> also allows you to use these: black, gray1, gray2, gray3, gray4, gray5, gray6, gray7, gray8, gray9, white. The scale is not uniform (gray5 is not 50 percent gray), but the values are usefully spaced.</p>
+<p class="item"><b>D.</b> To specify color by scale, follow the color command with <i>[gray]{<em>scale</em>}</i>, where the scale is a number between 0 (black) and 1 (white). Example:<code> \color[gray]{0.63}</code>.</p>
+<p>If you use <i>xcolor</i> syntax to request an rgb color, it will be converted to 1-channel grayscale.</p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Absolutely no transparency!</p>
+<p class="item" style="position:relative"><b>F.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Other names "known to dvips," such as <i>Apricot</i>, do not work. An error will result.</p>
+</div><!-- end 6.2.8 -->
+</div><!-- end 6.2 -->
+
+<h3 id="h6.3">6.3. Positioning and Alignment</h3>
+<div class="d3" id="d6.3">
+<p class="noindent">By now, you already know: In <i>novel</i> there are new ways to position or align text, and some of the standard TeX methods are discouraged or disabled.</p>
+
+<h4 id="h6.3.1">6.3.1. What to Avoid</h4>
+<div class="d4" id="d6.3.1">
+<p class="item"><b>A.</b> The <code>\raisebox</code> command does not play well with novel. It can be used on a <a href="#hD.3.1.1">display page</a>, where line grid is less important. In main text, avoid it. Use <code><a href="#h6.1.2">\charscale</a></code> instead.</p>
+<p class="item"><b>B.</b> If you must use the <code>\vspace</code> command (or its relative, <code>\vskip</code>) be sure to measure the space in units of <code><span style="cursor:help" title="normal baseline skip">\nbs</span></code> (normal baseline skip).</p>
+<p class="item"><b>C.</b> Avoid the <i>minipage</i> and <i>parbox</i> environments. These are likely to disrupt the line grid. When that happens, restoring the grid is your own responsibility. You may find the <i>adjustwidth</i> environment to be useful, as described in the next section.</p>
+<p class="item"><b>D.</b> In most cases, do not use the center environment. You may use <code>{\centering ... \par}</code> instead, for a single paragraph. The center environment may cause the text to go off-grid. That's not a problem on some <a href="#hD.3.1.1">display pages</a> where you don't care about the grid, but it is ugly in the middle of running text.</p>
+<p class="item"><b>E.</b> Avoid positioning via the <i>textblock</i> or <i>textblock*</i> environments (package <i>textpos</i>).</p>
+<p>Actually, <i>novel</i> uses that code internally. But if not handled with more care than usual, positioned text can disrupt the baseline and position of surrounding text. You may use <code><a href="#h6.1.2">\charscale</a></code> to position small amounts of text safely, but not on a paragraph basis.</p>
+<p>Images have built-in positioning arguments.</p>
+<p class="item"><b>F.</b> Do not use floats (except in <a href="#h2.2">sandbox</a>). Use <i>novel's</i> own <code>\FloatImage</code>.</p>
+<p class="item"><b>G.</b> Do not use tables (except in <a href="#h2.2">sandbox</a>). But <i>novel</i> has its <a href="#hD.3.2.7">own provision</a> for a Table of Contents, and the code may be used for other purposes as well.</p>
+<p class="item"><b>H.</b> Do not use picture environment (except in <a href="#h2.2">sandbox</a>). Use only the image commands provided by novel: <code><a href="#h7.2.2">\InlineImage</a></code>, <code><a href="#h7.2.4">\FloatImage</a></code>, and <code><a href="#h7.2.5">\WrapImage</a></code>. There is also a special provision for <a href="#h7.1.2">color cover artwork</a>.<p>
+</div><!-- end 6.3.1 -->
+
+<h4 id="h6.3.2">6.3.2. Some Useful Commands</h4>
+<div class="d4" id="d6.3.2">
+<p class="noindent">This is not a complete list. It merely addresses a few situations that you are likely to encounter, without the need for elaborate code, and without loading additional packages.</p>
+<p style="margin-top:10pt"><code>\begin{adjustwidth}{<em>left</em>}{<em>right</em>} ... \end{adjustwidth}</code></p>
+<p>This environment, from the included <i>changepage</i> package, is the most useful way to create block indents. The included text may have multiple paragraphs and span pages. The left and right arguments are lengths, being the amount to <em>increase</em> the respective margins from their normal values.</p>
+<p style="margin-top:10pt"><code>\rotatebox{<em>text</em>}</code></p>
+<p>This command is from the included <i>graphicx</i> package. It rotates the text, about an axis at the lower left of the text. If you wish to rotate the text about its center, use <code>\rotatebox[origin=c]{text}</code>.</p>
+<p>This command plays nicely with <code>\charscale</code>, so you can size, rotate, and displace a string of text (single line). It makes a difference which command goes inside the other. More likely than not, the effect you want is obtained by using <code>\charscale</code> on the outside, with <code>\rotatebox</code> inside.</p>
+<p>To avoid disturbing the line grid, <code>\rotatebox</code> is best used with <a href="#h6.1.2">\charscale</a> and a few blank lines.</p>
+<p style="margin-top:10pt"><code>\phantom{<em>text</em>}</code></p>
+<p>Does not print the text, but leaves a horizontal gap as if the text were there. Caution: In some locations, this command has unexpected results, such as by adding a line.</p>
+<p style="margin-top:10pt"><code>\mbox{<em>text</em>}</code></p>
+<p>Prevents a specific word from being hyphenated, or to ensure that two consecutive words always appear on the same line. The box will not be broken across lines. However, it may overhang the margin, which is undesirable.</p>
+<p style="margin-top:10pt"><code>\makebox[<em>width</em>][<em>alignment</em>]{<em>text</em>}</code></p>
+<p>Puts the text in a box of fixed width (usually much larger than the text's own width) and aligns it left, center, or right in the box. If using this across the full textwidth, be sure to precede it with <code>\noindent</code> to prevent offset.</p>
+<p style="margin-top:10pt"><code>\hspace{<em>length</em>}</code></p>
+<p>Creates a horizontal space.</p>
+<p style="margin-top:10pt"><code>\strut</code></p>
+<p>Places an invisible box with no width, which has the height and depth of the font. Sometimes used as a placeholder.</p>
+<p style="margin-top:10pt"><code>\stake</code></p>
+<p>Placeholder like <code>\strut</code>, but does not occupy the height or depth of the font.</p>
+<p style="margin-top:10pt"><code>\indent</code>, <code>\noindent</code>, <code>\forceindent</code>, <code>\backindent</code></p>
+<p>Commands <code>\indent</code> and <code>\noindent</code> have their ordinary TeX meaning. Sometimes, the action of other macros will remove an indent that should be there, or add an indent that should not be there. If writing <code>\indent</code> and <code>\noindent</code> do not fix the problems, use <code>\forceindent</code> and <code>\backindent</code> as more forceful solutions.</p>
+<p style="margin-top:10pt"><code>\hfill</code></p>
+<p>Pushes the following text to the right end of the line. Actual effect depends on what precedes and follows. Sometimes a \strut is needed at the beginning of a line.</p>
+<p style="margin-top:10pt"><code>\vfill</code>, <code>\vfill*</code></p>
+<p>Pushes the following text to the bottom of the page. Actual effect depends on paragraph organization. Use the asterisk if there is nothing printed above this command, on the same page.</p>
+<p style="margin-top:10pt"><code>\kern</code></p>
+<p>Tweaks the spacing between consecutive letters. A tricky command, as it is always used without braces, and makes the surrounding text illegible in your source code. If you use it, the units of length should always be <i>em</i>, rather than <i>pt</i>. Example:</p>
+<p class="code"><code>It wa\kern-.02ems a da\kern.03emrk and stormy ni\kern-.004emght.</code></p>
+<p>The <code>\kern</code> command is not useful for globally changing kern values.</p>
+<p id="bigemdash" style="margin-top:10pt"><code>\bigemdash[<em>yoffset,thickness</em>]</code></p>
+<p>Simulates a "big emdash" of variable length. Horizontal width is from command to end of line marked by <code>\par</code>, or limited by a fixed width such as created by <code>\makebox</code>. If placed in other situations, the line may be missing or too long.</p>
+<p>The line's normal position is at the typical height of an emdash, which is slightly above half the height of lowercase x. Its normal width is typical of an emdash width. Thus, the line is like an extended emdash.</p>
+<p>You can tweak the line using its optional argument. The first value tweaks the vertical position by a scale factor, where 1 equals its normal position (so that 0.9 places it a little lower). The second argument, if used, is separated from the first by a comma. It tweaks the line thickness by a scale factor (so that 0.9 makes it a little thinner).</p>
+<p>Since <code>\bigemdash</code> allows an optional argument, but no mandatory argument, you may not immediately follow it with text. If it is boxed, then first close the box; otherwise, end the paragraph.</p>
+<p style="margin-top:10pt"><code>\straightquote{}</code>, <code>\straightdblquote{}</code></p>
+<p>These insert the single quote (apostrophe), and double quote, as ASCII straight characters. Prevents TeX (or your software) from automatically substituting the curly characters. The empty braces are mandatory.</p>
+</div><!-- end 6.3.2 -->
+</div><!-- end 6.3 -->
+
+<h3 id="h6.4">6.4 Superscripts, Subscripts</h3>
+<div class="d3" id="d6,4">
+<p class="item"><b>A.</b> In <i>novel</i>, superscripts and subscripts are called "markers." Most book-quality Open Type fonts have markers in style sets (<i>sups</i>, <i>sinf</i>, <i>subs</i>).</p>
+<p class="item"><b>B.</b> In professional fonts, marker glyph weights are adjusted for consistent appearance compared to ordinary glyphs. However, many free fonts do not adjust marker glyph weights, so the markers may appear too small, or too light. You may choose whether to use a font's own markers, or allow <i>novel</i> to generate markers, depending on whichever you think looks better.</p>
+<p class="item"><b>C.</b> <i>real</i> markers attempt to use the Open Type feature <i>sups</i> for superscripts, and the feature <i>sinf</i> (preferred) or <i>subs</i> (alternate) for subscripts. Real markers are the best choice for professional fonts. If the requested feature is not available for the font, then it will be automatically faked, by scaling/raising/lowering ordinary characters from the basefont (lining numerals will be used).</p>
+<p class="item"><b>D.</b> <i>fake</i> markers ignore whether the Open Type features are available, and simply fakes them. Sometimes this is the best choice for fonts that do not have properly designed markers.</p>
+
+<h4 id="h6.4.1">6.4.1. <code>\SetMarkerStyle[<em>real,fake</em>]{<em>asterisk, dagger, number</em>}</code></h4>
+<div class="d4" id="d6.4.1">
+<p class="item"><b>A.</b> This command may only be used in the Preamble. It globally sets the kind of marker to be used. Default is <i>real</i> and <i>asterisk</i>.</p>
+<p class="item"><b>B.</b> The optional argument applies real or fake markers, as described above.</p>
+<p class="item"><b>C.</b> The required argument applies only to markers created by the <a href="#h9.1"><code>\footnote</code></a> command. It does not apply to endnotes, or to manually placed superscripts and subscripts.</p>
+<p class="item"><b>D.</b> The available choices for marker style:</p>
+<p>&bull; <i>asterisk</i> (default) uses symbolic footnote markers. The symbols rotate in order * † ‡ § ** †† ‡‡ §§ until reset.</p>
+<p>&bull; <i>dagger</i> uses symbolic footnote markers, but without asterisks. The symbols rotate in order † ‡ § †† ‡‡ §§ until reset.</p>
+<p>&bull; <i>number</i> uses numerical footnote markers. Due to possible conflict, the log file will have a "Big Bad Warning" if you use a numerical footnote marker in a document that also has endnotes, since endnotes always have numerical markers.</p>
+</div><!-- end 6.4.1 -->
+
+<h4 id="h6.4.2">6.4.2. <code>\realmarker</code>, <code>\fakemarker</code></h4>
+<div class="d4" id="d6.4.2">
+<p class="item"><b>A.</b> Within the body of the document, you may use <code>\realmarker</code> and <code>\fakemarker</code> to change your preference. The choice remains in effect until you change it again.</p>
+<p class="item"><b>B.</b> The option real/fake applies wherever superscripts or subscripts are used, not just for footnotes or endnotes.</p>
+</div><!-- end 6.4.2 -->
+</div><!-- end 6.4 -->
+
+
+</div><!-- end 6 -->
+</div><!-- end page06 -->
+<!-- ************************************************************ -->
+<div id="page07" class="page">
+
+
+<h2 id="h7">7. Images, Pictures, Drawings</h2>
+<div class="d2" id="d7">
+<p class="item"><b>A.</b> <b>Interior Bleed</b> is not supported. Only cover artwork has bleed.</p>
+<p>If your book consists primarily of artwork, rather than text, then you should use a page layout program designed for that purpose, instead of TeX.</p>
+<p class="item"><b>B.</b> The <b>picture environment</b> is not supported.</p>
+<p>If you try to use a <code>picture</code> environment, it will probably not throw an error, because pictures are used in the internal code. However, you will get unexpected layout. In any case, <b>caption</b> is not supported.</p>
+<p class="item"><b>C.</b> Most <b>vector drawings</b> (pgfplots, pstricks, TikZ) are not supported.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> You may work with the picture environment, and use vector drawings, in <code><a href="#h2.2">sandbox</a></code> mode.</p>
+<p>This requires you to create your picture or drawing in a separate document, then process the PDF to a raster image. The raster image is placed in your main document, using the commands provided in this section.</p>
+<p class="item"><b>E.</b> You cannot crop, transform, resize, or resample images within <i>novel</i>. Each image must be placed at exact size and resolution.</p>
+<p>So, if an image has print size 1.5" by 2" at 300dpi resolution, then its dimensions must be 450x600 pixels. Be sure that the image file contains its resolution.</p>
+
+<h3 id="h7.1">7.1. Technical Requirements for Raster Images</h3>
+<div class="d3" id="d7.1">
+
+<p class="noindent">Interior images may be black/white line art, or grayscale. Interior color is not supported. Color cover artwork has strong support.</p>
+
+<h4 id="h7.1.1">7.1.1. Black/White and Grayscale Interior Images</h4>
+<div class="d4" id="d7.1.1">
+<p class="item"><b>A.</b> Interior images may be grayscale, or black/white. There is no provision for color interior.</p>
+<p class="item"><b>B.</b> There is no provision for interior bleed. No image may approach the edge of the page. The amount of clearance is specified by your print service, and is often called the <a href="#h4.3.1.2">unsafe zone</a>.</p>
+<p class="item"><b>C.</b> Black/White line art has a single channel, at 1-bit per pixel. This format is only used for material that is inherently black and white, without shading. It is also useful for including black text prepared as an image. Most print services request resolution 600 to 800 pixels per inch.</p>
+<p class="item"><b>D.</b> Grayscale images have a single channel, at 8-bits per pixel. This format is used for photos and shaded artwork. It is also useful for including text prepared as an image, where the text is not black. Most print services request resolution 300 pixels per inch.</p>
+ <p class="item"><b>E.</b> Each image must be flat (no layers, no transparency).</p>
+<p class="item"><b>F.</b> Most print services require that images must be stripped of private metadata (such as EXIF), and that the color space be DeviceGray, rather than specified by a transfer profile.</p>
+<p class="item"><b>G.</b> Black/White images must be in <i>png</i> file format. Grayscale images may be in either <i>png</i> or <i>jpg</i> file format.</p>
+<p class="item" style="position:relative"><b>H.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> In the documentation <i>extras</i> folder, <i style="white-space:nowrap">novel-scripts.zip</i> will help you comply with these requirements. Complete usage information is provided there.</p>
+ <p class="item"><b>I.</b> From version 1.52, <i>novel</i> detects whether or not an interior image was pre-processed using <i>novel-scripts</i>. If yes, it is "known good". If no, it is "unknown" and may be good or bad.</p>
+<p>If your document has any "unknown" images, you will get a Warning. The list of "unknown" images is written near the bottom of the log file.</p>
+<p>If you know that an image meets specs (because you are a graphic artists who knows these things), but it wasn't processed by <i>novel-scripts</i>, you can manually add it to the list of "known good" images. In Preamble:</p>
+<p class="code"><code>\SetKnownGoodImages{somefile.png anotherfile.jpg}</code></p>
+</div><!-- end 7.1.1 -->
+
+<h4 id="h7.1.2">7.1.2. Color Cover</h4>
+<div class="d4" id="d7.1.2">
+<p class="item"><b>A.</b> The book cover may be (usually is) in color. Bleed is required.</p>
+<p class="item"><b>B.</b> If your print service allows you to submit cover artwork as an ordinary RGB image file, that's the easiest way to do it. Then, <i>novel</i> is not used.</p>
+<p class="item" style="position:relative"><b>C.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Complete support for creating a PDF/X-1a:2001 (or other) color cover, with image in CMYK at 240% ink limit, is provided in <i>novel-scripts.zip</i>. This format is required by some American print-on-demand services.</p>
+<p>The scripts, and supporting documentation, are in the <i>novel</i> documentation <i>extras</i> folder.</p>
+</div><!-- end 7.1.2 -->
+</div><!-- end 7.1 -->
+
+
+<h3 id="h7.2">7.2. Placing Interior Images</h3>
+<div class="d3" id="d7.2">
+<p class="item"><b>A.</b> If your book has a lot of images mingled with text, then you should consider using a page layout program (such as Scribus) instead of TeX. That's because the best strategies for an image-intensive picture book are very different from the strategies adoped by <i>novel</i>.</p>
+<p class="item"><b>B.</b> Images are not allowed to overlap each other, in the kind of commercial printing that is likely to be used for your book. However, since overlap is generally legal in PDF, TeX will not issue an error.</p>
+<p class="item"><b>C.</b> Remember: Images must be at exact size and resolution.</p>
+
+<h4 id="h7.2.1">7.2.1. Image-Like Effects in Text</h4>
+<div class="d4" id="d7.2.1">
+<p class="noindent">You may scale, rotate, and displace text. This is done using text commands, and the result is still text. When cleverly done, it provides an image-like effect. See <a href="#h6">section 6</a> for the possibilities.</p>
+</div><!-- end 7.2.1 -->
+
+<h4 id="h7.2.2">7.2.2. <code>\InlineImage[<em>hoffset,voffset</em>]{<em>imageFile.png or .jpg</em>}</code> and starred version</h4>
+<div class="d4" id="d7.2.2">
+<p class="item"><b>A.</b> This command places the image as an inline element, at 100% scale. The use of <i>png</i> or <i>jpg</i> images, with file extension, is required.<p>
+<p class="item"><b>B.</b> You may offset the image horizontally or vertically. Positive direction is to the right and up. If you use one offset, then you must use both (if necessary, <i>0em</i>). Any units of length may be used, but the preferred units are <i>em</i> or <code>\textwidth</code> for horizontal, and <i>em</i> or <code><span style="cursor:help" title="normal baseline skip">\nbs</span></code> for vertical.</p>
+<p class="item"><b>C.</b> By default, the <em>top</em> of the image is at the text baseline. If you prefer that the <em>bottom</em> of the image be at the text baseline, use voffset <i>b</i>. Example:</p>
+<p class="code"><code>\InlineImage[0em,b]{imageFile.png}</code></p>
+<p class="item"><b>D.</b> Thanks to the included <i>calc</i> package, offsets may use <code>\widthof{<em>text</em>}</code>, <code>\heightof{<em>text</em>}</code>, or <code>\depthof{<em>text</em>}</code> as lengths. The most useful of these is when you wish to align the top of an image at the X-height of surrounding text:</p>
+<p class="code"><code>\InlineImage[0em,\heightof{X}]{imageFile.png}</code></p>
+<p>You may also use <code>\heightof{\Aring}</code> for the tallest accented letter normally found in Latin-1.</p>
+<p>Another possibility is to align the bottom of an image with the lowercase descender:</p>
+<p class="code"><code>\InlineImage[0em,b-\depthof{gjpqy}]{imageFile.png}</code></p>
+<p class="item"><b>E.</b> Lengths <code>\imagewidth</code> and <code>\imageheight</code> may also be used for offsets. These lengths remain set, and can be used for other purposes (such as displacing text) until another image is placed.</p>
+<p class="item"><b>F.</b> Offsets may be written as combinations of lengths. If you use the baseline <i>b</i> as above, it must be the first character of voffset. If you use <code>\widthof</code> or <code>\heightof</code>, then its backslash must be the first character <em>unless</em> it is preceded by another length. Thus, an offset of <code style="white-space:nowrap">-\heightof{X}</code> is prohibited, but you can use <code>0pt-\heightof{X}</code>.
+<p>Here are some examples of allowable code:</p>
+<p class="code"><code>
+\InlineImage[2.3em, -0.4em]{imageFile.png}<br/>
+\InlineImage[0pt-\widthof{eee}, b+\heightof{X}-0.2em]{imageFile.jpg}
+</code></p>
+<p class="item"><b>G.</b> The image occupies zero vertical space. So, it will not push apart baselines. The next line(s) of text may overlie the image. In some cases, this is desirable. If you do not want that effect, then you can either insert a suitable number of <code>\null</code> lines after the image, or use the <code>\FloatImage</code> command instead.</p>
+<p class="item"><b>H.</b> With the un-starred <code>\InlineImage</code> command, the image occupies its natural horizontal width. That is, text following the image will (if it fits) continue from the right edge of the image. But with the starred <code>\InlineImage*</code> command, the image occupies zero width. In this case, text following the image will continue from the left of the image, and overlie the image.</p>
+<p class="item"><b>I.</b> Having text overlie the image is allowable, and can create some interesting special effects. But when your print service sees what you have done, they may think that it is a mistake. Be sure that you discuss this with them.</p>
+<p>If you do allow text to overlie an image, be sure that the image is very light. Repeat: <em>very light</em>. Depending on the printing technology, an image may print darker than you see on your computer screen, and that would make text hard to read. At low print volume, your print service will probably use a technology that can make very sharp text over images. However, if your book goes to volume production, then the technology will be different. Volume printing will use halftoned images, and the text overlay may also become halftoned, which will reduce its sharpness considerably.</p>
+<p class="item"><b>J.</b> An image may be placed in a way that prints some of the image in the margin. That's allowable if your margin is wider than the minimum required for printing clearance. But even if it is not allowable, there will be no complaint or warning from TeX. Use the <a href="#h2.3">shademargins</a> class option to ascertain position, and consider setting an <a href="#h4.3.1.2">unsafe zone</a>.</p>
+<p class="item" style="position:relative"><b>K.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Do not place an image so that it approaches or goes beyond the page edge. That requires a "bleed box" which is not part of <i>novel</i> capabilities (except for cover art). If your book needs that kind of image handling, use a page layout program instead.</p>
+</div><!-- end 7.2.2 -->
+
+<h4 id="h7.2.3">7.2.3. Text Over <code>\InlineImage</code></h4>
+<div class="d4" id="d7.2.3">
+<p class="item"><b>A.</b> As noted above, an <code>\InlineImage</code> (or its starred version) can be used as the background to any subsequent text. Whatever sits atop an image must be darker. If you need text in gray, it is better to integrate the rasterized text with the image in an external graphics program, instead of using gray text in your document.</p>
+<p class="item"><b>B.</b> When text overlies an image, it retains its identity as vector paths, as far as the PDF is concerned. In some printing processes, particularly those for very low volume production, the result will be as sharp and dark as ordinary text. However, if your book sells well (or is being prepared to sell well), the image will be converted to halftone, and the text that lies above it may also be converted to halftone. This will reduce the sharpness of the text. It is not necessarily a problem, unless your text is very small or has fine details.</p>
+<p>If the text-over-image is part of a title, then the text is naturally large and dark, and will easily withstand halftoning.</p>
+<p class="item"><b>C.</b> Not all print services will accept text over images. It's not that they <em>cannot</em> do it; after all, your home and office printers can easily do it. The reason they object is because the pages of your book will be handled in small volume by persons who are unfamiliar with the book. Text over an image may be flagged as a printing error or a bug in the PDF. In the advertising world, text over image is routine. But in the world of fictional novels, it is unusual.</p>
+<p class="item"><b>D.</b> An inline image occupies zero vertical space. If you place its top near the bottom of the textblock, then the image will happily flow into the lower margin and perhaps off the bottom of the page, without an error (but the print service will reject it). The reason that TeX does not provide an error message is quite simple: Technically, it is not an error! It is just not what you meant to do. The software cannot read your mind. This is where the <a href="#h2.3">shademargins</a> class option helps, especially when you set an <a href="#h4.3.1.2">unsafe zone</a>.</p>
+<p>Example:</p>
+<p class="code"><code>
+\noindent\InlineImage*[0pt,1.2<span style="cursor:help" title="normal baseline skip">\nbs</span>]{gavel.png} Lord Withens took a seat at the rear of the courtroom, attempting to be inconspicuous. Yet his effort was in vain, as he was the only person there with a riding crop and spurs.\par<br/>
+He would have taken the car, had it not been stolen. But that was why he was here, at the arraignment of the person charged with the theft. It was most unfortunate that the accused was his own elderly father; but then, theft ran in the family line.\par
+</code></p>
+<p class="centerimg"><img src="html-resources/inlineimagest.png" width="651" height="249" alt="example of InlineImage*"/></p>
+</div><!-- end 7.2.3 -->
+
+<h4 id="h7.2.4">7.2.4. <code>\FloatImage[<em>floatmethod,xoffset,yoffset</em>]{<em>ImageFile .png or .jpg</em>}</code></h4>
+<div class="d4" id="d7.2.4">
+<p class="item"><b>A.</b> <code>\FloatImage</code> places the image in its own block, like a paragraph.</p>
+<p class="item"><b>B.</b> The image will always be horizontally centered. If that is not what you wish, then you can widen the image in a graphics program, adding white space as needed. Or, you can use <code>xoffset</code> to move the image.</p>
+<p class="item"><b>C.</b> The top of the image will be positioned at the baseline of text, where text would have been without the image. You may adjust that position using <code>yoffset</code> (a positive length is upward). In some cases, <code>\normalXheight</code> (the normal text X height) is a good choice for <code>yoffset</code>.</p>
+<p class="item"><b>D.</b> The height of the image is automatically measured, so that the following paragraph will be positioned at an integer number of baseline skips. This maintains the text line grid.</p>
+<p class="item"><b>E.</b> The optional argument is comma-separated, with up to three values. The first is float method. The second (if used) is horizontal offset. The third (if used) is vertical offset. In some cases, changing the vertical offset will determine where the image fits.</p>
+<p class="item"><b>F.</b> The <i>float method</i> is a code describing how the floated image should be placed. The available choices are <code>t</code>, <code>b</code>, <code>ht</code>, and <code>hb</code>. Default is <code>ht</code>. Any un-listed float method will be substituted with <code>ht</code>.</p>
+<p class="code"><code>ht</code> places the float "here" (mid-page, where code appears) if possible. But if the image doesn't fit, it will appear at the top of the following page.</p>
+<p class="code"><code>hb</code> places the float "here" (mid-page, where code appears) if possible. But if the image doesn't fit, it will appear at the bottom of the following page. This method is unusual.</p>
+<p class="code"><code>t</code> places the float at the top of the following page. It may appear at the top of the page where the code is written, but only if the image happens to be the first content there.</p>
+<p class="code"><code>b</code> places the float at the first page bottom where it can fit.</p>
+<p class="item"><b>G.</b> No other kind of float is available, not even by loading other packages. The <i>novel</i> class is not intended for books that rely on floats. Other document classes already have that capability. Or, consider using a page layout program instead of TeX.</p>
+<p class="item"><b>H.</b> When a floated image is pushed to the following page, it will appear there, even if the image is too large for the page size. Other TeX classes will defer it.</p>
+<p class="item"><b>I.</b> The <i>floatpag</i> package does not work in <i>novel</i>. If a floated image occupies a full page, you cannot customize the head/foot style for that page; it will be the same as it was on the calling page.</p>
+</div><!-- end 7.2.4 -->
+
+<h4 id="h7.2.5">7.2.5. <code>\WrapImage[<em>position</em>]{<em>ImageFile.png or .jpg</em>}</code></h4>
+<div class="d4" id="d7.2.5">
+<p class="item"><b>A.</b> The <code>\WrapImage</code> command is a front-end to the included <i>wrapfig</i> package. Do not use commands from <i>wrapfig</i> directly.</p>
+<p class="item"><b>B.</b> <code>\WrapImage</code> is written between paragraphs. The image will appear with the next paragraph (unless moved). You cannot achieve the effect of wrapping an image mid-paragraph.</p>
+<p class="item" style="text-align:justify"><b>C.</b> <img class="floatright" style="position:relative; top:6px; margin-right:0px" src="html-resources/wrapme.png" width="104" height="104" alt="Wrap me!" title="Wrap me!"/><code>\WrapImage</code> allows text (may be more than one paragraph) to wrap around an image. What you are now reading uses this technique in HTML. The text is wrapped around the image at right. Next to the image, the lines of text are shorter. Past the bottom of the image, the line length is restored to its usual size. In HTML, this is called <i>floating</i> an image; but in TeX, it is called <i>wrapping</i>. Wrapped images are uncommon in fiction, but they might be more useful on display pages, which have many positioned elements but little running text.</p>
+<p class="item"><b>D.</b> The optional argument is position, any one of these letters: <code style="white-space:nowrap">l r o i L R O I</code>. Default is <code>r</code>. The letters place the image at left, right, outside, or inside (spine).</p>
+<p>Lowercase position places the image where you wrote the code. However, if there is not enough space to fit it (too close to bottom of page), then both the image and the wrapped text will be moved to the next page. This leaves a white gap at the bottom of the previous page, which is undesirable. But it guarantees that the image remains attached to the expected text.</p>
+<p>Uppercase position places the image where you wrote the code, if possible. However, if the image cannot fit there, then the image is floated to the next page, and accompanies the first new paragraph. This avoids a white gap at page bottom, but the image no longer accompanies the expected text. If you use this kind of position, avoid referring to "the image at right" or anything else that makes no sense if the image is moved.</p>
+<p class="item"><b>E.</b> The top of the image will be placed as the X-height of normal text. This provides a good compromise between visual clearance and conserving space. You cannot increase the separation between text and image via command. If you need more white space around the image, then enlarge it in a graphics program, with surrounding white areas.</p>
+<p class="item"><b>F.</b> You cannot wrap around a shape other than a rectangle. For that, you need a page layout program. Note: Actually, it can be done in TeX, but the code is mind-boggling and not part of any package. Don't ask.</p>
+</div><!-- end 7.2.5 -->
+</div><!-- end 7.2 -->
+
+
+</div><!-- end 7 -->
+</div><!-- end page07 -->
+<!-- ************************************************************ -->
+<div id="page08" class="page">
+
+
+<h2 id="h8">8. Tables and Lists</h2>
+<div class="d2" id="d8">
+<p class="item"><b>A.</b> <b>Lists</b> are not supported.</p>
+<p>If you attempt to use any of the well-known list environments, an error will result. This is because lists are typeset using layout incompatible with the rest of <i>novel</i></p>
+<p>If you need a list, you can use <code><a href="#h2.2">sandbox</a></code> mode in a separate document, convert the list to a raster image, then place the image in your main document.</p>
+<p class="item"><b>B.</b> <b>Tables</b> are not supported, except for the built-in <code><a href="#h8.1">toc</a></code>.</p>
+<p>If you attempt to use any of the well-known table environments, an error will result. This is because tables are typeset using layout incompatible with the rest of <i>novel</i></p>
+<p>If you need a table, you can use <code><a href="#h2.2">sandbox</a></code> mode in a separate document, convert the table to a raster image, then place the image in your main document. This is unnecessary if you use <code><a href="#h8.1">toc</a></code>.</p>
+
+<h3 id="h8.1">8.1. The <code>toc</code> Environment</h3>
+<div class="d3" id="d8.1">
+<p class="item"><b>A.</b> You may create a Table of Contents in your own style, or use the <i>toc</i> environment for <i>novel's</i> own style. The choice is yours.</p>
+<p class="item"><b>B.</b> Since <code>toc</code> is not synchronized against any other code, you may use it more than once, and you may use it for any purpose (not necessarily a Table of Contents).</p>
+<p class="item"><b>C.</b> The <code>toc</code> is an environment:</p>
+<p class="code"><code>\begin{toc}[<em>extra entry separation</em>]{<em>extra margins</em>} <em>...</em> \end{toc}</code></p>
+<p>The table is not indented, and text within it is not indented.</p>
+<p class="item"><b>D.</b> The optional argument is a number. It is the portion of normal baselineskip that will be added beneath each <code><a href="#h8.1.1">\tocitem</a></code> entry. Default is 0, meaning that there is no extra skip between items, and normal baselineskip is maintained.</p>
+<p>A value greater than 0 spreads the entries, which could be attractive if there are only a few chapters and you'd like to use more space on the page. For example, a value of <i>0.25</i> means that a gap of 0.25 normal baselineskip will be added beneath each entry.</p>
+<p>A small negative value will crowd the lines together, but there is a limit (approximately -0.1) before the lines cannot be squeezed any tighter.</p>
+<p>Note that the optional argument only applies to <code>\tocitem</code> entries, not to any other text within the environment.</p>
+<p class="item"><b>E.</b> The required argument is a length, which will be the amount of extra margin added at left and right of the table (using <i>adjustwidth</i>). A value of <i>0em</i> allows the table to occupy the full width of the textblock. A value of <i>2em</i> adds 2em to the margin on each side, so that the width of the table is 4em less than the width of the textblock.</p>
+<p> It is best to specify horizontal lengths in units of <i>em</i> or the proportional <code>\parindent</code> or <code>\textwidth</code>.</p>
+<p class="item" style="position:relative"><b>F.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Place at least one empty line above the Table's title, using <code>\null</code> or <code>\vspace*</code>. This will prevent the title (which is normally enlarged using <code>\charscale</code>) from encroaching into the top margin.</p>
+
+<h4 id="h8.1.1">8.1.1. Entries Using <code>\tocitem</code></h4>
+<div class="d4" id="d8.1.1">
+<p class="code"><code>\tocitem[<em>chapter number</em>]{<em>description</em>}{<em>page number</em>}</code> and starred</p>
+<p class="item"><b>A.</b> Use <code>\tocitem</code> for entries in <code>toc</code>. Do not use it for non-Table text on the page.</p>
+<p class="item"><b>B.</b> The optional argument is the <i>chapter number</i>, at most two digits. The number will be left-aligned, with a period automatically added. Following the period will be whatever amount of space is needed to keep the following description aligned.</p>
+<p>&bull; If the optional argument is omitted (or empty), then the <i>description</i> will align to the left of the table.</p>
+<p>&bull; If the optional argument is the tilde character <code>~</code> then no number or period is printed, but the space for <i>chapter number</i> is occupied, so that the following <i>description</i> aligns as if you had entered a <i>chapter number</i>.</p>
+<p class="item"><b>C.</b> The <i>description</i> is usually the chapter title. If it cannot easily fit on one line, then use an additional <code>\tocitem</code>, because the text cannot be wrapped. The following example shows how this can be done.</p>
+<p class="item"><b>D.</b> Without the asterisk, <code>\tocitem</code> fills the area between the description and the page number with empty space. The more popular, starred <code>\tocitem*</code> command fills with a dotted line, and is very attractive.</p>
+<p class="item"><b>E.</b> You may use ordinary style commands, such as <code>\textit</code>, in the entries.</p>
+</div><!-- end 8.1.1 -->
+
+<h4 id="h8.1.2">8.1.2. Example Table of Contents</h4>
+<div class="d3" id="d8.1.2">
+<p class="code" style="text-indent:0px; font-size:small"><img class="floatright" src="html-resources/toc.png" width="264" height="408" alt="toc example"/>
+<code>
+\cleartorecto % because ToC must start recto<br/>
+\thispagestyle{empty}<br/>
+\vspace*{4<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\begin{toc}[0.25]{5.5em}<br/>
+{\centering\charscale[1.25]{Contents}\par}<br/>
+\null\null<br/>
+\tocitem*{Prologue}{1}<br/>
+\tocitem*[1]{The Evil Weeds}{5}<br/>
+\tocitem*[2]{A Plan of Attack}{18}<br/>
+\tocitem*[3]{Lady Withens Objects}{35}<br/>
+\tocitem*[4]{Back-Hoe to the Rescue}{48}<br/>
+\tocitem*[5]{Invasion of the Dandelions}{63}<br/>
+\tocitem*[~]{\emph{Interlude}}{90}<br/>
+\tocitem*[6]{Army of the Gardeners}{94}<br/>
+\tocitem*[7]{Too Much Rain}{113}<br/>
+\tocitem*[8]{To Nuke, or Not to Nuke?}{145}<br/>
+\tocitem*[9]{Revenge of the Zucchini}{162}<br/>
+\tocitem*[10]{Lady Withens Sneezes}{180}<br/>
+\tocitem*[11]{The Concrete Lawn}{206}<br/>
+\tocitem*{Epilogue}{228}<br/>
+\end{toc}<br/>
+\clearpage
+</code>
+</p>
+<div style="clear:both"></div>
+</div><!-- end 8.1.2 -->
+</div><!-- end 8.2 -->
+
+</div><!-- end 8 -->
+</div><!-- end page08 -->
+<!-- ************************************************************ -->
+<div id="page9" class="page">
+
+
+<h2 id="h9">9. Footnotes and Endnotes</h2>
+<div class="d2" id="d9">
+<p class="item"><b>A.</b> The <i>novel</i> class has <em>limited</em> support for <a href="#h9.1">footnotes</a>. The support is adequate for the needs of fictional works, but not academic works.</p>
+<p class="item"><b>B.</b> There is <em>em</em> limited support for <a href="#h9.2">endnotes</a>. The primary difference between <i>novel's</i> method, and the method used by other document classes, is that <i>novel</i> only places a marker. It does not remember or automate the text of endnotes. You must write the notes yourself.</p>
+<p class="item"><b>C.</b> You may use both footnotes and endnotes.</p>
+<p class="item"><b>D.</b> In the running text, markers for footnotes and endnotes are superscripts. You may control their appearance using the method of <a href="#h6.4">section 6.4</a>.</p>
+<p class="item"><b>E.</b> The actual footnote (at base of page) or endnote (wherever placed) does <i>not</i> use a superscript for its marker. Instead, the marker has ordinary size and position. This is the recommended style.</p>
+<p class="item"><b>F.</b> <b>Margin notes</b> are not supported.</p>
+
+<h3 id="h9.1">9.1. Footnotes</h3>
+<div class="d3" id="d9.1">
+<p class="item"><b>A.</b> Footnotes appear at the bottom of the page where they are placed. There is no option to accumulate them to another location. Very long footnotes might straddle pages, but that is automatic, and not within your control.</p>
+<p class="code"><code>\footnote[<em>option</em>]{<em>text</em>}</code></p>
+<p class="item"><b>B.</b> The <code>\footnote</code> command places a <a href="#h6.4">superscript</a> "marker" at the place where the command is written. The included text is written at the bottom of the page, beneath a short line that separates it from the main text. The footnote text is at smaller size and line skip, and has the same marker placed before it (but not as superscript). All of this is automatic.</p>
+<p class="item"><b>C.</b> You may, if necessary, apply some style to the footnote text. For example, if you are referring to another work, its title might be in italics.</p>
+<p class="item"><b>D.</b> Normally, no option is used. If you use option <i>0</i> (zero) then no marker will appear in the main text, and the footnote text will also appear without a marker. The count of markers is not incremented. This applies whether the markers are numbers or symbols.</p>
+<p><b>E.</b> If you are normally using footnote <i>numbers</i>, but wish to place a particular footnote using a <i>symbol</i> instead, you can do it manually. For example:</p>
+<p class="code"><code>He blinked.*\footnote[0]{* No, he didn't.}</code></p>
+<p><b>F.</b> Avoid use of underlining or bold. It is considered bad style, due to visual distraction. If necessary, use italics.</p>
+<p class="item" style="position:relative"><b>G.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> Sorry, but even though there are numerous TeX packages for custom footnote styles, they will not work in <i>novel</i>. This is intentional.</p>
+</div><!-- end 9.1 -->
+
+<h3 id="h9.2">9.2. Endnotes</h3>
+<div class="d3" id="d9.2">
+<p class="item"><b>A.</b> Endnotes are sometimes used in fiction. Often, the endnotes are also fictional.</p>
+<p class="item"><b>B.</b> You may use both footnotes and endnotes. However, if endnotes are used, then footnotes must be marked by symbols, rather than by numbers, to avoid confusion. The counts for endnotes and footnotes are independent.</p>
+<p class="item"><b>C.</b> If you gather endnotes at the rear of your book, then arabic page numbering continues. Think of the endnotes as just another chapter. If you use page headings, then the preferred style is to use something like <i>Notes to Chapters 3-4</i> in the headings, changing it on a page by page basis using <code><a href="#h4.3.4.6">\SetRectoheadText</a></code> and <code><a href="#h4.3.4.6">\SetVersoheadText</a></code>.</p>
+<p class="item" style="position:relative"><b>D.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The <i>endnotes</i> package may not be used, due to conflict with <i>novel's</i> built-in commands.</p>
+
+<h4 id="h9.2.1">9.2.1. <code>\endnote{<i>comment</i>}</code>, <code>\ResetEndnote</code></h4>
+<div class="d4" id="d9.2.1">
+<p class="item"><b>A.</b> The <code>\endnote</code> command inserts a numerical superscript in the text. A running count of the numbers is automatically updated.</p>
+<p class="item"><b>B.</b> Endnote numbers normally run continuously through the text. If you wish to reset the count (perhaps at new chapters), you have to do it manually, using <code>\ResetEndnote</code> at the appropriate location.</p>
+<p class="item"><b>C.</b> No argument is needed. But if you write <code style="white-space:nowrap">\endnote{<i>some comment</i>}</code>, then the comment will not print. It is merely a note to yourself, reminding you why you put an endnote there. The comment is not stored for later use, so it is not the actual content of the endnote text.</p>
+<p class="item"><b>D.</b> You may not immediately follow <code>\endnote</code> with a square bracket <code>[</code>. If you do that, an error results. If you need to follow the command with a printing square bracket, then use <code>\endnote{}[</code>.
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> The <i>novel</i> class does not know, and does not care, whether or not you actually write the endnotes later. The <code>\endnote</code> command merely places a marker. It does not record data for later use.</p>
+</div><!-- end 9.2.1 -->
+
+<h4 id="h9.2.2">9.2.2. <code>\endnotetext{<i>number</i>}{<i>text</i>}</code></h4>
+<div class="d4" id="d9.2.2">
+<p class="item"><b>A.</b> The built-in <code>\endnotetext{}{}</code> takes two mandatory arguments. No optional argument. If you follow <code>\endnotetext</code> with a square bracket <code>[</code>, then an error results.</p>
+<p class="item"><b>B.</b> The first argument is usually the endnote number. A period and following space will automatically be added. You may use <code>\emph{<em>number</em>}</code> if you prefer the number to be in italics.</p>
+<p class="item"><b>C.</b> The text will be block-indented. It is limited to one paragraph. If the note needs more than one paragraph, then continue like this, with an empty note number:</p>
+<p class="code"><code>\endnotetext{}{\indent <em>text</em>}</code></p>
+<p class="item"><b>D.</b> Example of an endnote:</p>
+<p class="code">
+<code><small>
+\endnotetext{9}{Yang Sho-Nuff was the twelfth son of the elder god of the ancient Who-Zit Clan, with power over the forces of rust.\par}<br/>
+\endnotetext{}{\indent However, since this was not yet the Iron Age, the terrible might of Yang Sho-Nuff was largely unrecognized.\par}<br/>
+\endnotetext{10}{As Professor Withens notes in his treatise, \emph{When Sho-Nuff Was Not Enough}, the ceremony of daily human sacrifice had a devastating effect on the tribal population.\par}
+</small></code></p>
+<p class="centerimg"><img src="html-resources/endnotetext.png" width="447" height="151" alt="using endnotetext"/></p>
+<p class="item" style="position:relative"><b>E.</b> <img src="html-resources/info18.png" width="18" height="18" style="position:relative; bottom:-3px" title="tech info" alt="tech info"/> If you don't like the built-in <code>\endnotetext</code> style, you can change it to suit your needs, using <code>\renewcommand</code>. Coding is up to you!</p>
+</div><!-- end 9.2.2 -->
+</div><!-- end 9.2 -->
+
+
+</div><!-- end 9 -->
+</div><!-- end page09 -->
+<!-- ************************************************************ -->
+<div id="pageA" class="page">
+
+
+<h2 id="hA">Appendix A. Sample Document</h2>
+<div class="d2" id="dA">
+<p class="noindent">If you click on a command, you will be taken to its documentation.
+There are many other commands available, but they are not specific to novel class.</p>
+<div class="sampledoc">
+<p>Non-empty default values are <em>shown like this</em>.<br/>
+&nbsp;</p>
+<p style="text-indent:0">
+<a href="#h1.1.1">% !TeX TS-program = LuaLaTeX</a><br/>
+<a href="#h1.1.2">% !TeX encoding = UTF-8</a><br/>
+<a href="#h2">\documentclass{novel}</a> % See list of class options; usually none needed.<br/>
+%%% METADATA (FILE DATA):<br/>
+<a href="#h3.3.1">\SetTitle{<em>IMPORTANT: Provide Book Title</em>}</a> % Required for PDF/X.<br/>
+<a href="#h3.3.3">\SetSubtitle{}</a> % Default: empty.<br/>
+<a href="#h3.3.2">\SetAuthor{}</a> % Default: empty.<br/>
+<a href="#h3.3.4">\SetApplication{<em>LuaLaTeX with novel and microtype</em>}</a><br/>
+<a href="#h3.3.4">\SetProducer{<em>LuaLaTeX with novel-pdfx and hyperref</em>}</a><br/>
+<a href="#h3.4">\SetPDFX[<em>CGATSTR001</em>]{<em>X-1a:2001</em>}</a><br/>
+%%% DIMENSIONS:<br/>
+<a href="#h4.1.1">\SetTrimSize{<em>5.5in</em>}{<em>8.5in</em>}</a> % Sets width, height of your book.<br/>
+% Default Media Size equals Trim Size.<br/>
+% Rarely-used over-ride, except for cover artwork:<br/>
+% <a href="#h4.1.2">\SetMediaSize[<em>alignment</em>]{<em>width</em>}{<em>height</em>}</a><br/>
+% Default margins vary with Trim Size. Defaults for {5.5in}{8.5in}:<br/>
+<a href="#h4.3.1">\SetMargins{<em>0.5in</em>}{<em>0.5in</em>}{<em>0.5in</em>}{<em>0.75in</em>}</a><br/>
+%%% GENERAL FONTS:<br/>
+% Percent at end of line is necessary, when writing font settings multi-line:<br/>
+<a href="#h4.2.1.1">\SetParentFont[%<br/>
+<em>SmallCapsFeatures={Renderer=Basic},</em></a>% Effective when small caps requested locally.<br/>
+<a href="#h4.2.1.1"><em>Kerning=On,</em> %<br/>
+<em>Ligatures=TeX,</em> %<br/>
+]{<em>Libertinus&nbsp;Serif</em>}</a><br/>
+% Main text font automatically adds <em>Numbers=OldStyle,Ligatures=Common</em>.<br/>
+% Default main font size is based on other layout settings.<br/>
+% Varies from 11pt to 12pt. With all default layouts, value is 11.4pt.<br/>
+% You may manually choose a different main font size:<br/>
+% <a href="#h4.2.1.2">\SetFontSize{<em>length</em>}</a><br/>
+% Default lines per page (main textblock) is calculated from other layout settings.<br/>
+% When using all defaults, the calculated value is 35.<br/>
+% If used, \SetLinesPerPage manually chooses the value:<br/>
+% <a href="#h4.3.2">\SetLinesPerPage{<em>integer</em>}</a><br/>
+<a href="#h4.2.3">\SetDecoFont{<em>NovelDeco.otf</em>}</a><br/>
+<a href="#h4.2.4">\setsansfont{<em>Libertinus Sans</em>}</a><br/>
+<a href="#h4.2.4">\setmonofont{<em>Libertinus Mono</em>}</a><br/>
+<a href="#h4.2.4">\setmathfont{<em>Libertinus Math</em>}</a> % unicode-math<br/>
+%%% HEADERS/FOOTERS:<br/>
+<a href="#h4.3.3">\SetHeadFootStyle{<em>1</em>}</a> % This style has headers only.<br/>
+<a href="#h4.3.4.1">\SetHeadJump{<em>1.5</em>}</a><br/>
+<a href="#h4.3.4.1">\SetFootJump{<em>1.5</em>}</a><br/>
+<a href="#h4.3.4.3">\SetLooseHead{<em>50</em>}</a><br/>
+<a href="#h4.3.4.5">\SetEmblems{}{}</a> % Default blanks.<br/>
+<a href="#h4.3.4.2">\SetHeadFont[<em>\parentfontfeatures,Letters=SmallCaps,Scale=0.92</em>]{<em>\parentfontname</em>}</a><br/>
+<a href="#h4.3.4.4">\SetPageNumberStyle{<em>\thepage</em>}</a><br/>
+<a href="#h4.3.4.6">\SetVersoHeadText{<em>\theAuthor</em>}</a><br/>
+<a href="#h4.3.4.6">\SetRectoHeadText{<em>\theTitle</em>}</a><br/>
+%%% CHAPTERS:<br/>
+<a href="#h5.1.2.1">\SetChapterStartStyle{<em>footer</em>}</a> % Equivalent to empty, when style has no footer.<br/>
+<a href="#h5.1.2.2">\SetChapterStartHeight{<em>10</em>}</a><br/>
+<a href="#h5.1.3.1">\SetChapterFont[<em>Numbers=Lining,Scale=1.6</em>]{<em>\parentfontname</em>}</a><br/>
+<a href="#h5.1.3.1">\SetSubchFont[<em>Numbers=Lining,Scale=1.2</em>]{<em>\parentfontname</em>}</a><br/>
+<a href="#h5.3.1">\SetScenebreakIndent{<em>false</em>}</a><br/>
+%%% CUSTOM FONTS:<br/>
+% <a href="#h4.2.5">\NewFontFamily[]{}</a> % Optional command.<br/>
+% <a href="#h4.2.5">\NewFontFace[]{}</a> % Optional command.<br/>
+% <a href="#hE.2.3">\CreateFontFeature{}{}</a> % Optional command.<br/>
+%%% OTHER:<br/>
+<a href="#h1.1.3">\setdefaultlanguage[<em>variant=american</em>]{<em>english</em>}</a> % polyglossia<br/>
+<a href="#h6">\microtypesetup{<em>config=novel-microtype,stretch=20,shrink=20,final</em>}</a> % microtype<br/>
+%%% BEGIN DOCUMENT:<br/>
+\begin{document}<br/>
+<a href="#hD.3.2">\frontmatter</a> % Required.<br/>
+% Typically <a href="#hB">six pages</a> of front matter, but <a href="#hD.3.2">could be more</a>.<br/>
+<a href="#hD.3.3">\mainmatter</a> % Required<br/>
+% <a href="#h5">Chapters</a> go here. SAMPLE Chapter structure:<br/>
+<a href="#h5.1.1">\clearpage</a> % or <a href="#h5.1.1">\cleartorecto</a><br/>
+<a href="#h5.1.2.3">\begin{ChapterStart}</a><br/>
+\vspace*{2<span style="cursor:help" title="normal baseline skip">\nbs</span>} % Space above chapter title. \nbs = normal baseline skip.<br/>
+<a href="#h5.1.3">\ChapterTitle{</a>— 1 —<a href="#h5.1.3">}</a> % Perhaps also <a href="#h5.1.3">ChapterSubtitle</a>, <a href="#h5.1.3">ChapterDeco</a>.<br/>
+<a href="#h5.1.2.3">\end{ChapterStart}</a><br/>
+It was a dark and stormy night, etc.<br/>
+<a href="#h5.1.1">\clearpage</a> % or <a href="#h5.1.1">\cleartorecto</a><br/>
+\end{document}
+</p>
+</div>
+
+
+</div><!-- end A -->
+</div><!-- end Appendix A -->
+<!-- ************************************************************ -->
+<div id="pageB" class="page">
+
+
+<h2 id="hB">Appendix B. &nbsp; Basic Six-Page Front Matter</h2>
+<div class="d2" id="dB" style="padding-top:0.5em">
+<p class="imgcentered"><img src="html-resources/sixpage-frontmatter.png" width="740" height="189" alt="Six-page front matter, with Epigraph on page v." title="Six-page front matter."/></p>
+<p class="noindent1">In many instances, six pages of front matter are all you need for fiction. This is often true for major publishers, not just self-published P.O.D. authors.</p>
+<p class="noindent1">You can use six pages, provided that:</p>
+<p class="overhang">&bull; Your front matter does not contain material written by someone else (such as a Foreword), no matter how short. Exception: You may use an Epigraph.</p>
+<p class="overhang">&bull; Your front matter contains at most one of the following, limited to a single page: Dedication, Epigraph, Table of Contents, Acknowledgements, Author's Note, Map.</p>
+<p class="noindent2">If both of the above points apply, then your front matter is organized as follows. Be sure that your document begins with the <code>\frontmatter</code> command, and that each page begins with <code>\thispagestyle{empty}</code> and ends with <code>\clearpage</code>.</p>
+
+<h3 id="hB.1">B.1. &nbsp; Half-Title to Copyright</h3>
+<div class="d3" id="dB.1">
+<p class="noindent">The first four pages (i - iv) are the same for nearly every book.</p>
+<p class="overhang"><b>Page i. Half-Title.</b></p>
+<p class="overhang"><b>Page ii. Blank.</b> Alternatively, if you wrote numerous books, you can provide a list of them. However, many print/distribution services will not allow such a list, unless they carry everything on the list.</p>
+<p class="overhang"><b>Page iii. Title Page.</b></p>
+<p class="overhang"><b>Page iv. Copyright Page.</b></p>
+</div><!-- end B.1 -->
+
+<h3 id="hB.2">B.2. &nbsp; Post-Copyright</h3>
+<div class="d3" id="dB.2">
+<p class="noindent">After the copyright page, there may be some variation.</p>
+<p class="overhang"><b>Page v. Varies.</b> One of: Dedication, Epigraph, Table of Contents, Acknowledgements, Author's Note, Map. If you have none of them, then repeat the Half-Title.</p>
+<p>Don't be afraid to simply repeat the Half-Title. Even major publishers do it, when they have nothing else to say in front matter.</p>
+<p class="overhang"><b>Page vi. Blank.</b> Exception: If Page v does not have an Epigraph or Half-Title, you may place an Epigraph here, provided that it does not visually detract from the story that begins on the facing page.</p>
+</div><!-- end B2 -->
+
+<h3 id="hB.3">B.3. &nbsp; Sample TeX Code</h3>
+<div class="d3" id="dB.3">
+<div style="margin-left:32px">
+<p class="code"><code>
+\begin{document}<br/>
+\frontmatter % Sets page number to i.<br/>
+\thispagestyle{empty}<br/>
+% Half-Title Page.<br/>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+\null % Necessary for blank page.<br/>
+% Alternatively, List of Books.<br/>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+% Title Page.<br/>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+% Copyright Page.<br/>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+% Dedication or Epigraph or TOC or Acknowledgements or Author's Note or Map.<br/>
+% Alternatively, repeat the Half-Title.<br/>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+\null % Necessary for blank page.<br/>
+% Alternatively, Epigraph if it does not detract from facing page.<br/>
+\clearpage<br/>
+\mainmatter % Sets page number to 1 for following material.
+</code></p>
+</div>
+</div><!-- end B.3 -->
+
+
+</div><!-- end B -->
+</div><!-- end Appendix B -->
+<!-- ************************************************************ -->
+<div id="pageC" class="page">
+
+
+<h2 id="hC">Appendix C. &nbsp; Shopping for Fonts</h2>
+<div class="d2" id="dC">
+<p class="noindent1">Since the <i>novel</i> class uses only <i>LuaLaTeX</i> and <i>fontspec</i> with utf-8 encoding, you may use any Open&nbsp;Type or TrueType font, subject to licensing. You are not limited to TeX fonts.</p>
+<p>Many TeX fonts are only available in older Type 1 format (PostScript). Use of such fonts is <i>strongly discouraged</i>, due to possible issues in <i>novel</i> class (which will not be fixed, if they appear).</p>
+<p>In some other cases, a TeX font package provides both the older format, and a newer Open&nbsp;Type or TrueType format. The different formats will have different font names. Sometimes the difference is very slight. Carefully look at the font name for the Open&nbsp;Type format, using TrueType only as a second choice. Remember that most on-line discussions will refer to the older Type 1 PostScript fonts, simply because they have been around longer. For example: <i>Linux&nbsp;Biolinum</i> is a sans-serif font available via TeX as a PostScript font. But <i>Linux&nbsp;Biolinum&nbsp;O</i> (note the O) is an Open&nbsp;Type font. If you need this font, then call for <i>Linux&nbsp;Biolinum&nbsp;O</i>, not simply <i>Linux&nbsp;Biolinum</i>.</p>
+<p><b>Important:</b> Do not attempt to load a font by the <code>\RequirePackage</code> or <code>\usepackage</code> commands. Instead, if you choose to use fonts other than the defaults, load them via the <a href="#h4.2">font setting commands</a> described in this documentation. If you attempt to load a font the wrong way, you may get an error message, or the font may quietly fail to load.</p>
+
+<h3 id="hC.1">C.1. &nbsp; Licensing Issues</h3>
+<div class="d3" id="dC.1">
+<p class="noindent1">Presumably, you are writing your novel for commercial value, and do not intend to give anything away for free. For that reason, avoid any font licensed under the GPL (GNU Public License) unless it has the <a class="external" rel="external" target="new" href="https://en.wikipedia.org/wiki/GPL_font_exception">font exception</a> clause. Many TeX fonts, and many non-TeX free fonts, are licensed under GPL, but <i>without</i> the relatively-recent font exception clause. Be careful!</p>
+<p>Beware of fonts "free for personal use" from download sites. Your commercial application is not "personal use." Of course, if you like the font, you may purchase its commercial license.</p>
+<p>Also beware of fonts generically labeled as "freeware" with no particular designer name. If you don't know who created the font, then how do you know that it can be given away for free? Even if there is a designer name, some of them had second thoughts about "freeware." They intended the fonts to be free only if you give your own work away for free. But they didn't mention it. Maybe they have no legal recourse, but you don't want them making anonymous negative reviews of your book.</p>
+<p>You have numerous fonts already installed in your operating system, and perhaps others that came bundled with a particular application. If you intend to use those fonts, carefully read their licenses. It is often the case that fonts bundled with an application may <em>only</em> be used for documents created within, or processed by, that application. Or, the fonts may be OK to use for printing directly by your own home printer, but not for embedding in a PDF that will go to a commercial printer.</p>
+<p>Although it does not pertain to TeX, another issue can arise if you later publish an ebook version. Fonts licensed for printing are often not licensed for an ebook. Indeed, the ebook distributor may ban them.</p>
+<p>Always look for a Copyright notice, which can be identified with a particular person or organization. Copyright is good! It means that someone is claiming authorship of the font software. Only the Copyright owner has the right to give the font away for free, or license it to you after payment (often through an intermediary).</p>
+<p>If you prefer free fonts, the most widely accepted license is the <a class="external" rel="external" target="new" href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL">SIL Open Font License</a>. This allows you to use the font for commercial purposes, embed it in PDF, modify it to suit your needs (if you change the font name), and even re-distribute the modifications. The recommended default <i>Libertinus Serif</i> bears this font license. So does the included font <i>NovelDeco</i>.</p>
+</div><!-- end C.1 -->
+
+<h3 id="hC.2">C.2. &nbsp; Technical Issues</h3>
+<div class="d3" id="dC.2">
+<p class="noindent1">Many fonts have technical errors, even among professional fonts. Some of the errors are so minor that they are not worth fixing.</p>
+<p>However, beware of fonts based on traced artwork. The late 1990s had an explosion of amateur dingbat and decorative fonts produced this way, by scanning images from old books and digitizing the scan. The resulting vector glyphs rarely meet standards, and often are quite awful. The problem is that when a commercial printer renders your PDF to print, the printer's software is very different from what you have on your home computer. A technically erroneous glyph might look OK at home, but be rejected commercially.</p>
+<p>If you have the knowledge, you can open a font in font editor software (such as <i>FontForge</i>) and ask it for validation. Missing extrema are rarely a problem, even if a lot of them are missing. Self-intersecting glyphs are not a problem if the the glyph is composed of two elements stuck together, such as Ç composed of C with separate cedilla. However, a self-intersecting glyph may be a problem if its lines criss-cross each other. Open paths, and outer paths drawn the wrong way, are often a problem. If the errors are confined to glyphs that you will not be using, then it can pass.</p>
+</div><!-- end C.2 -->
+
+<h3 id="hC.3">C.3. &nbsp; Appearance Issues</h3>
+<div class="d3" id="dC.3">
+<p class="noindent1">There are general expectations for book fonts, in terms of character sizes and shapes, and weights. Many of the widely-used TeX fonts, including Latin&nbsp;Modern, are unacceptable in fiction for this reason. Times&nbsp;New&nbsp;Roman is not quite acceptable for fiction; but it is often mis-used by amateurs with a word processor.</p>
+<p>The best way to assess a font is to print it to paper, at actual size. Use an inkjet (not laser) printer with only-black cartridge.</p>
+<p>Depending on whom you ask for an opinion, fiction is most easily read when there are about 60 to 66 characters (including spaces) per line. To evaluate a font for the main text, print out some paragraphs about 4" to 4.25" wide, and scale the font's point size so that you get an average number of characters per line in that range. Be sure to do that. Adobe&nbsp;Garamond&nbsp;Pro at 12pt, Libertinus&nbsp;Serif at 11.4pt, and Libre&nbsp;Caslon&nbsp;Text at 9.6pt (!) provide about the same number of characters per line of text. At the proper point size, some fonts will look too dark, and others will look too light.</p>
+<p>Things to look for: (1) Are the lowercase letters too tall? If they are, then it is hard for readers in many Western languages to find where sentences start, by looking for capital letters. Also, there is less white space between lines, which makes the text appear dense and harder to read. (2) Is the shape of the characters so natural that you don't notice them? That's good! It is your writing, not the font, that is to be noticed. (3) Remember that some fonts are designed for use at large size, in posters; such fonts tend to look mechanical in fiction. Other fonts are designed for computer screens; the letters will be too widely-spaced in fiction. Nearly all modern fonts have decent kerning and important ligatures, so that's not usually a decisive factor.</p>
+<p>The prevailing rule: If you notice the font, it's wrong.</p>
+</div><!-- end C.3 -->
+
+
+</div><!-- end C -->
+</div><!--end Appendix C -->
+<!-- ************************************************************ -->
+<div id="pageD" class="page">
+
+
+<h2 id="hD">D. Book Design</h2>
+<div class="d2" id="dD">
+<p class="noindent">Most authors in P.O.D. use an ordinary word processor, particularly MS Word. For that reason, many print services, and most online user forums, refer to the terminology and settings of MS Word, rather than to the meanings in traditional book publishing. In the case of images, Photoshop settings are often described.</p>
+<p>Since you are neither using MS Word nor Photoshop, you must understand the terminology of printed book design. Then, you can apply that knowledge to the physical layout and internal design of your book, using <i>novel</i> document class.</p>
+
+<h3 id="hD.1">D.1. Terminology</h3>
+<div class="d3" id="dD.1">
+<p class="noindent">You <i>must</i> understand these terms, as used in printing.</p>
+
+<h4 id="hD.1.1">D.1.1. Sheet, Page, Leaf</h4>
+<div class="d4" id="dD.1.1">
+<p class="noindent">A <b>sheet</b> of paper is a single, physical piece of paper, regardless of whether anything is printed on it, or where. Often, paper starts out as a large sheet that will subsequently be cut into smaller sheets. The size doesn't matter. A sheet of paper is, in ordinary understanding, a piece of paper.</p>
+<p><img class="floatright" src="html-resources/page-leaf.png" width="490" height="155" alt="page, leaf"/> In a finished book, a <b>page</b> is one side of a <b>leaf</b>. Thus, there are always exactly twice as many pages are there are leaves. From the manufacturer's point of view, a 240-page (double-sided printing) book has 120 leaves, regardless of whether or not anything is printed on the pages, or how they are numbered.</p>
+</div><!-- end D.1.1 -->
+
+<h4 id="hD.1.2">D.1.2. Folio, Spine</h4>
+<div class="d4" id="dD.1.2">
+<p class="noindent">Imagine a single sheet of US Letter 8.5"Wx11"H paper. It has two pages, since you can print on both sides (even if one is empty).</p>
+<p>If you fold that sheet in half across its width, it is still one sheet. But now you have a <b>folio</b>, consisting of two leaves of size 5.5"Wx8.5"H. Each leaf has two pages, so you now have four pages. The fold is at the <b>spine</b>.</p>
+<p>Caution: The term "folio" has several different meanings, even in the narrow field of book publishing. It may refer to folded paper, as mentioned above. Or it may refer to a particular sheet size of paper ("foolscap"). Or, it may simply refer to the number printed on a page. This last use of "folio" is discussed in the context of headers and footers.</p>
+</div><!-- end D.1.2 -->
+
+<h4 id="hD.1.3">D.1.3. Signature, Imposition</h4>
+<div class="d4" id="dD.1.3">
+<p class="noindent"><img class="floatright" src="html-resources/signature.png" width="133" height="102" alt="signature"/> When a book is commercially manufactured, folios are nested to form <b>signatures</b>. The number of folios in a signature is typically 6 to 16 (that would be 24 to 64 pages). If you were hand-making a single book at home, you might use only one folio per signature.</p>
+<p>Now, think about how those pages must be ordered. Suppose a book contains a single signature of 4 folios. The outermost folio is printed with pages 1 and 16 on one side (before folding), and pages 2 and 15 on its other side. The next nested folio has pages 3/14 and 4/13. Nested inside is 5/12 and 6/11. Innermost is 7/10 and 8/9.</p>
+<p>Re-arranging the page order is part of the <b>imposition</b> process. The process may involve tweaking the position of each page slightly, to account for offset due to paper thickness when the folios are grouped into signatures. If numerous folios are printed on a larger sheet of paper before cutting, the process may involve rotating folios so that they waste less paper.</p>
+<p>Your home printer software can probably do imposition for a single-folio design (four pages). Anything beyond that is left to professional software. You don't need to do it. The print service does it for you, automatically.</p>
+</div><!-- end D.1.3 -->
+</div><!-- end D.1 -->
+
+<h3 id="hD.2">D.2. Book Manufacture</h3>
+<div class="d3" id="dD.2">
+<p class="noindent">In many cases, when you choose how your book will be manufactured, you will have <i>at most</i> these choices: Trim Size, interior b/w or color, paper, binding, cover finish. The <i>novel</i> class does not address the particular requirements of color interiors (grayscale is OK, since it is emulated by black and white). When you choose the Trim Size, other options may be limited.</p>
+
+<h4 id="hD.2.1">D.2.1. Perfect Binding</h4>
+<div class="d4" id="dD.2.1">
+<p class="noindent"><img class="floatright" src="html-resources/perfectbinding.png" width="160" height="290" alt="perfect binding"/>Most modern softcover books (and some inexpensive hardcovers) are manufactured using a process named <b>Perfect Binding</b>.
+<p>In Perfect Binding, the signatures are clamped together, and the folded area is removed by a cutting machine. Then there are no longer any folios, just individual leaves.</p>
+<p>The leaves are glued together at the spine, possibly with reinforcement. Note that the glue is not merely at the edge of the leaves; it penetrates the paper slightly, for better strength. Finally, the cover is attached.</p>
+<p>The Perfect Binding method is inexpensive, and is more than adequate for a book that will not receive rough handling. Whether using P.O.D. or a major mass-quantity publisher, most softcover books have been made this way for a long time. Unless you know that your book will be acquired by libraries for addition to their long-term literary collection, there is little reason to have your book manufactured by any other process. The possible exception would be books for small children, which receive rough handling under all circumstances.</p>
+</div><!-- end D.2.1 -->
+
+<h4 id="hD.2.2">D.2.2. Library Binding</h4>
+<div class="d4" id="dD.2.2">
+<p class="noindent">Libraries rarely purchase Perfect Binding books (regardless of soft or hard cover) due to lack of durability in a library environment. The exceptions are popular books of no lasting literary value, and how-to books for evolving technologies. These may be obtained by libraries in the cheapest softcover version, because such books will be discarded long before they wear out.</p>
+<p>Unless you are sure that your book will be acquired by numerous libraries for long-term addition to their collections, there is little reason to produce a quality hardcover version. Not all P.O.D. services offer hardcover. If you do need a hardcover version, then be sure to carefully inquire regarding its manufacture, and preferably obtain a copy of someone else's book manufactured that way.</p>
+<p><img class="floatright" src="html-resources/smythsewn.png" width="177" height="141" title="Smyth sewing" alt="Smyth sewing"/> The best hardcovers, suitable for library use, are made using the <b>Smyth Sewing</b> process. A Smyth Sewn book has signatures of (typically) 12 or 16 folios. But instead of removing the creases after folding, each signature is sewn through its crease using strong thread, onto a durable spine material. The pages will remain attached, even with hard usage. If the spine material is sufficiently flexible, then the book will lie flat when opened.</p>
+<p>Be sure to ask about spine flexibility. The most flexible methods have a soft, curved spine, and are best suited to thick novels. There is also a variety that has a square (flat) spine, which will not quite lie flat when opened. Square-spine Smyth Sewn books seem to be the fashion for documenting intellectual property.</p>
+<p>If a major publisher is producing a book that is sure to be ordered by many libraries, due to its author's popularity or maybe a movie tie-in, then it is likely to be released as a Smyth Sewn hardcover. That's because the production method is affordable in quantity. But on a P.O.D. basis, it is a significant expense.</p>
+<p>Different bindings must have different ISBNs, because they are different products.</p>
+<p>If you are ordering a hardcover edition, and the supplier calls it <b>casebound</b>, be careful. If a hardcover book is Smyth sewn, then it is almost certain to be casebound. But not the other way around! A book can be casebound, without being Smyth sewn.</p>
+</div><!-- end D.2.2 -->
+
+<h4 id="hD.2.3">D.2.3. Other Bindings</h4>
+<div class="d4" id="dD.2.3">
+<p class="noindent">A Perfect Bound softcover cannot be retroactively converted to Smyh Sewn. However, it is possible to convert it to a glued-on casebound. Sometimes the original paper cover will be glued onto the new hard cover. Books of this type are sometimes used as souvenirs.</p>
+<p>If a book has very few copies, intended for permanent archiving (as with patents, and other large legal documents), then in addition to gluing, the pages may be sewn cross-wise at the spine, before attaching a hard cover. This techique is only used when the book must be tamper-resistant. It is not suited to casual reading.</p>
+</div><!-- end D.2.3 -->
+
+<h4 id="hD.2.4">D.2.4. Paper and Cover Materials</h4>
+<div class="d4" id="dD.2.4">
+<p class="noindent">The interior paper may be white or "creme" (off-white). White paper is generally used for nonfiction, and must be used if there are interior color images (<i>novel</i> does not do interior color). Creme paper is generally used for fiction. The idea is that white paper creates an air of authority, whereas creme paper is more comfortable for lengthy reading. I agree. I recently read a novel that was (mis-) printed on white paper, and it was hard to read in a bright area. So, for your novel, choose creme paper.</p>
+<p>The cover of a Perfect-Binding softcover book may be produced with a glossy or a matte finish. The fashion is to use glossy for nonfiction, matte for fiction. Again, the idea is authority versus comfort. But you may choose what you wish. "Instant Best-Seller" mass-market paperbacks often have an embossed texture, and maybe even metal foil. In the print-on-demand market, forget it. Don't even think about it.</p>
+<p>If you do request a hardcover edition, then it may or may not have a dust jacket (costs extra). The general rule is that books for libraries have a dust jacket, which will be encased in plastic by the library. Books for documentation generally have no dust jacket, with the title and other info embossed in the cover material, for permanance. If the printer offer harcover, but does not even offer you the option of purchasing a dust jacket, then beware: Are you sure that the book is <a href="#hD.2.2">Smyth Sewn</a>?</p>
+</div><!-- end D.2.4 -->
+</div><!-- end D.2 -->
+
+<h3 id="hD.3">D.3. Interior Structure</h3>
+<div class="d3" id="dD.3">
+<p class="noindent">This section discusses how a book is designed, in terms of its component pages, where they are placed, and how they are styled. The emphasis is on popular fiction. Some sections that would be required in a dissertation or other nonfiction, are much rarer in popular fiction, or are entirely missing. There is also considerable "wiggle room" in terms of structure, particularly for genres that <i>pretend to be</i> a truthful report of someone else's writing.</p>
+<p>The advice you are about to receive is <em>not</em> authoritative. It is combined from <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> (which focuses on nonfiction) and on actual practice, as I have seen by looking through numerous professionally-published works of popular fiction at the local public library. There is a certain amount of variation.</p>
+
+<h4 id="hD.3.1">D.3.1. Display Pages vs. Chapter-Like Sections</h4>
+<div class="d4" id="dD.3.1">
+
+<h5 id="hD.3.1.1">D.3.1.1. Display Pages</h5>
+<div class="d5" id="dD.3.1.1">
+<p class="noindent">A <em>Display Page</em> has its own design, and stands by itself. Examples are Half-Title, Title, Copyright, Dedication, Epigraph, Table of Contents, Map, Part Separator, and of course Blank.</p>
+<p>Half-Title, Title, Dedication, and Part Separators are always single-page recto. A Table of Contents begins recto, but may continue verso. An Epigraph is single-page, and may be recto or verso.</p>
+<p>Maps are one per page, and may be recto or verso. If you intend to create a large map that spreads verso-recto, be aware that the technology you will be using does not allow continuous image through the spine area. Instead, you must create two separate maps, one per page. There will be the usual inside margins.</p>
+<p>A Blank page is almost always verso; the only exception is when multiple blanks appear at the very end of the book.</p>
+<p>Each kind of display page has its own style, and position. What they have in common is that all of them lack a header or footer (and thus, lack a printed page number). Use <code>\thispagestyle{empty}</code>.</p>
+<p>If a display page extends to a second page (such as Table of Contents), then use <code>\thispagestyle{empty}</code> at its begining and end, to ensure that both pages omit header and footer.</p>
+</div><!-- end D.3.1.1 -->
+
+<h5 id="hD.3.1.2">D.3.1.2. Chapter-Like Sections</h5>
+<div class="d5" id="dD.3.1.2">
+<p>A <em>Chapter-Like Section</em> includes things that are styled like a chapter. This includes Foreword, Preface, Introduction, Author's Note, Acknowledgements, Prologue, Chapters, Epilogue, Conclusion, Endnotes.</p>
+<p>Almost all Chapter-Like Sections begins recto. However, chapters <i>after</i> Chapter One may begin recto or verso. If there is subsequent material (Epilogue, Conclusion, Endnotes, etc.) then the begin-recto rule applies.</p>
+<p>The first page of a Chapter-Like Section section has no header, but <i>may</i> have a footer with page number. See the available choices for <code><a href="#h4.3.5.1">\thispagestyle</a></code>.</p>
+<p>Remaining pages in the section will have such header/footer style as pertains to ordinary chapters in the book. Exception: If a Chapter-Like Section in front matter is only two pages long, then you may optionally omit the header, or footer, on both pages. Then, use <code>\thispagestyle</code> at the end of the section, with choice that matches its beginning.</p>
+<p>When a Chapter-Like Section appears in front matter, its page headers (if any) do <em>not</em> show the author and title of the book, the way they would appear in main matter. Instead, they show the name of the section (such as Author's Note) both verso and recto. Commands <code><a href="#h4.3.4.6">\SetVersoHeadText</a></code> and <code><a href="#h4.3.4.6">\SetRectoheadText</a></code> are your friends, as they permit you to dynamically change header text as you move through the book.</p>
+</div><!-- end D.3.1.2 -->
+</div><!-- end D.3.1 -->
+
+<h4 id="hD.3.2">D.3.2. Front Matter</h4>
+<div class="d4" id="D.3.2">
+<p class="noindent">The <code><b>\frontmatter</b></code> command must be written immediately after <code>\begin{document}</code>. This sets page numbering to lowercase roman, and performs some other actions.</p>
+<p>A book's front matter is <em>about the book</em>. It is not part of the story. The only mandatory front matter is the Title Page and its verso, the Copyright Page. On a practical basis, six pages of front matter are the minimum, and this minimum is often used, even by major publishers. See <a href="#hB">Appendix B</a> for how to construct basic six-page front matter.</p>
+
+<h5 id="hD.3.2.1">D.3.2.1. Half-Title, page i</h5>
+<div class="d5" id="dD.3.2.1">
+<p class="noindent"><p>Some book manufacturers (particulary in hardcover) place a blank or decorative <em>flyleaf</em> before any part of the book interior. A flyleaf (if present) is added at the bookbinding factory, and is not part of your book's interior PDF file.</p>
+<p>Your book's first interior recto page is a Half-Title. It is a <a href="#hD.3.1.1">Display Page</a>. Historically it was a protective page for the full title page, in the era when a printed interior was not immediately bound. That tradition lives on.</p>
+<p>The Half-Title contains nothing but the book's title. No subtitle. It should be styled in the same manner as is used on the full Title Page, but typically smaller. You can place the title anywhere it looks good. It is almost never placed upper left.</p>
+</div><!-- end D.3.2.1 -->
+
+<h5 id="hD.3.2.2">D.3.2.2. Blank, page ii</h5>
+<div class="d5" id="dD.3.2.2">
+<p class="noindent">Verso page ii is a <a href="#hD.3.1.1">Display Page</a>. In most cases, it will be blank. This is achieved by using <code>\cleartorecto</code> at the end of the Half-Title page. But if you wish to manually create a blank page, verso or recto:</p>
+<p class="code"><code>
+\clearpage\thispagestyle{empty}\null\clearpage</code></p>
+<p>Instead of blank, prolific authors may show a list of their books. However, even if you wrote other books, many print services won't allow you to list them, unless the same service exclusively carries all of them.</p>
+<p>Major publishers may provide an advertisement for the related movie. In the good old days (looong ago) an expensive book might have a high-quality illustration, known as <b>Frontispiece</b>. Unless you truly know what you are doing, avoid these, and just use a blank page.</p>
+<p>At the very fancy end of book design, or often for children's picture books, the full title uses two pages, beginning here and ending on the usual title page iii. You can do that, but <i>novel</i> does not provide for continuing an image (or text) across the spine. Each page is independent, and there will be the usual inside margins. So, a two-page title is not recommended.</p>
+</div><!-- end D.3.2.2 -->
+
+<h5 id="hD.3.2.3">D.3.2.3. Title Page, iii</h5>
+<div class="d5" id="dD.3.2.3">
+<p class="noindent">The Title Page is a recto <a href="#hD.3.1.1">display page</a>. It shows the title, subtitle (if any), and author. These elements are often very decorative, and may involve imagery. They must exactly match the information you provided when you obtained the book's ISBN. Exception: Some services allow the author's name to use initials.</p>
+<p>If there is a publisher's imprint, it goes at the base. This is achieved by using <code>\vfill</code> just above it.</p>
+<p>Remember that a self-publishing service is not the publisher; <em>you are</em>. That's why it is called self-publishing. If you don't have anything else to put there, and don't like leaving the base of the page empty, you might use "Independently Published in Your City, YourState" or something similar.</p>
+<p>&bull; Note: Others have written (and I agree) that the surest sign that a book was written by an amateur, is when the Title Page simply uses the book's main text font (perhaps bold and larger). That has "term paper" written all over it. Instead, be creative.</p>
+</div><!-- end D.3.2.3 -->
+
+<h5 id="hD.3.2.4">D.3.2.4. Copyright Page, iv</h5>
+<div class="d5" id="D.3.2.4">
+<p class="noindent">The Copyright Page is a verso <a href="#hD.3.1.1">display page</a>. It is primarily legalistic in nature, providing essential details about the book, as an item in commerce.</p>
+<p>Some nations require specific information to appear on a Copyright Page. That is your responsibility to know, and is beyond the scope of this documentation.</p>
+<p>At least in the U.S.A., the nation where the book is printed must be indicated, either on the Copyright Page or some other allowed location (such as the final verso). Many print-on-demand services use multiple printers, which may be in various nations, depending on who purchases your book. With the services I have used, this is solved by omitting "Printed in the United States of America" on the Copyright page, because it may not be true. At the printing factory, the necessary information is added by them, as a Colophon on the final verso page. This is one reason why that final verso page must be blank (in your PDF). Ask your P.O.D. service.</p>
+<p>A Copyright Page is in ordinary text, perhaps using minimal styling such as italics or small caps. In all cases, its overall page style must differ from the page style of main text. Almost always, the content of the Copyright Page is forced downward, so that excess white space is on top, and the final line appears at the base of the textblock. This is achieved using <code>\null\vfill</code> at the beginning of the page.</p>
+<p>The <i>legalese</i> environment prevents hyphenation, aligns paragraphs ragged-right (instead of justified), and omits paragraph indents. This style is widely used for a Copyright Page. Be sure to use <code>\null</code>, or a similar vertical spacing command, to separate paragraphs. If you nest the <code>center</code> environment within <i>legalese</i>, it will over-ride the ragged-right alignment.</p>
+<p>The <i>adjustwidth</i> environment can be used to set the width of the lines at less than the full width. This is especially helpful if you have little to say, and choose to center the content.</p>
+<p>Always review where lines break, if necessary inserting manual line breaks, to ensure that the meaning is sensible.</p>
+<p>If you use them, certain words or phrases such as <span style="text-transform:lowercase; font-variant:small-caps">FIRST EDITION</span> are traditionally set in all small caps. Use <code>\allsmcp{FIRST EDITION}</code>.</p>
+<p>Numbers, such as date and ISBN, may be Old Style or Lining. The text default is probably Old Style. If you prefer Lining (looks more legalistic), then use <code>\lnum{<em>numbers</em>}</code>. Anything other than digits (and related characters) will remain unchanged by the <code>\lnum</code> command.
+<p>The Copyright Symbol © is pasted from a Unicode character map. Avoid using TeX code.</p>
+<p>I have never seen a Copyright Page extend to a second page. Never. If you have that much to say, it may be that some of the information may be moved to an Author's Note or Acknowledgements section. Or, if necessary, you may use the <a href="#h6.1.3">parascale</a> environment to slightly shrink the text and baseline skip.</p>
+<p>If you have a Cataloging-in-Publication data block (probably you do not), then be aware that its content may be provided to you in MS Word format. Pay attention to indents, as they are part of how the data is presented. Use <code>\forceindent</code> or <code>\backindent</code> to over-ride the normal indentation (or lack thereof). Use the <i>adjustwidth</i> environment for block indents, but be aware that nesting one <i>adjustwidth</i> inside another may cause problems. It is better to end one <i>adjustwidth</i> before beginning a new one.</p>
+<p>Also, CIP data uses emdash in places. MS Word may represent an emdash with <i>two</i> hyphens, whereas TeX uses <i>three</i> hyphens. Better to simply paste the emdash from a Unicode character map, which will appear the same in both MS Word and TeX.</p>
+<p>If you need straight apostrophe or straight quotes, use <code>\straightquote{}</code> and <code>\straightdblquote{}</code> to insert a character that won't be converted to curly.</p>
+</div><!-- end D.3.2.4 -->
+
+<h5 id="hD.3.2.5">D.3.2.5. Dedication</h5>
+<div class="d5" id="dD.3.2.5">
+<p class="noindent">If you use a Dedication, it is a recto <a href="#hD.3.1.1">display page</a>, and must be placed immediately facing the Copyright Page.</p>
+<p>A Dedication is not required. But sadly, nowadays many authors write a frivolous Dedication, which detracts from the book. If you feel that you need a Dedication, why not put it on your web site? Then you can always edit or remove it, if the subject of your affection runs off with someone else (or, you do). Keep it simple.</p>
+<p>A Dedication is centered. If it is more than a few words, use the <i>adjustwidth</i> environment to keep it bounded, as you would for an Epigraph.</p>
+</div><!-- end D.3.2.5 -->
+
+<h5 id="hD.3.2.6">D.3.2.6. Epigraph</h5>
+<div class="d5" id="dD.3.2.6">
+<p class="noindent">If you use an Epigraph, it is a <a href="#hD.3.1.1">display page</a>, which may be placed verso or recto.</p>
+<p>An Epigraph is optional. It is a short quotation, traditionally from a work by someone else. Its purpose is to set the tone of your own book, or shamelessly imply that your own talents resemble that of the person quoted. However, even though it is short, do not place copyrighted material there, unless you have the necessary legal permission. You probably don't, so forget about quoting a famous contemporary author or performer. Quotations from the Bible, Shakespeare, and Nineteenth-Century authors are popular; but even then, a more recent translation may be still under copyright.</p>
+<p>Alternatively, you can quote from your own book, or make up something entirely new. One famous Epigraph is used in J.R.R. Tolkien's <i>Lord of the Rings</i> trilogy, in which each book uses the long form of the Ring's incantation as its Epigraph.</p>
+<p>One possible use of an Epigraph is on recto page v, in books that lack a Dedication, a Table of Contents, or other important front matter beyond the Copyright Page. Alternatively, if a book has both Dedication and Table of Contents, an Epigraph may be placed on the otherwise-blank verso page vi between them. Or, an Epigraph may appear in some later convenient place in front matter.</p>
+<p>In general, an Epigraph is set as a centered block, not occupying the full page width. The <i>adjustwidth</i> environment serves this purpose. You will have to manually adjust the widths at left and right, for best visual effect.</p>
+<p>The source of the quotation should be right-justified within the block, and may be preceded by an emdash. Typically, names of people are not italicized, but titles of books are. It is not necessary to give elaborate details; this is not a bibliography.<p>
+<p>It is not necessary to load the <i>epigraph</i> package. Simply construct your own style of epigraph using other methods. But if you do load <i>epigraph</i>: Only use <code>\epigraph</code>, or the <code>epigraphs</code> environment, within the ChapterStart environment, or on a display page. Commands <code>\epigraphhead</code>, <code>\dropchapter</code>, <code>\undocrop</code> do not work in <i>novel</i>. The <code>\cleartoevenpage[<i>option</i>]</code> command does work. Ignore the material regarding epigraphs on part pages or in bibliographies.</p>
+
+<h6 id="hD.3.2.6.1"><span class="n"></span>D.3.2.6.1. Example Epigraph: Real Quotation</h6>
+<div class="d6" id="uD.3.2.6.1">
+<p class="noindent">This might be used for an action adventure:</p>
+<p class="code"><img class="floatright" src="html-resources/shakepi.png" width="131" height="208" alt="sample epigraph: Shakespeare"/>
+<code><small>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+\vspace*{10<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\begin{adjustwidth}{7em}{7em}<br/>
+Cowards die many times before their deaths;\\<br/>
+The valiant never taste of death but once.\par<br/>
+\stake\hfill---Shakespeare\par<br/>
+\end{adjustwidth}<br/>
+\clearpage
+</small></code></p>
+<div style="clear:both"></div>
+</div><!-- end D.3.2.6.1 -->
+
+<h6 id="hD.3.2.6.2"><span class="n"></span>D.3.2.6.2. Example Epigraph: Imaginary Quotation</h6>
+<div class="d6" id="uD.3.2.6.2">
+<p class="noindent">This might be used for contemporary fiction with a humorous style. The fictional speaker will appear as a character in the book:</p>
+<p class="code"><img class="floatright" src="html-resources/dorfmcnorf.png" width="131" height="208" alt="sample epigraph: imaginary"/>
+<code><small>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+\vspace*{10<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\begin{adjustwidth}{7em}{7em}<br/>
+Let me tell you, there's nothing more exciting than the brouhaha at Mickey's Pub each Saturday night in April.\par<br/>
+\stake\hfill---Dorf McNorf\par<br/>
+\end{adjustwidth}<br/>
+\clearpage
+</small></code></p>
+<div style="clear:both"></div>
+</div><!-- end D.3.2.6.2 -->
+</div><!-- end D.3.2.6 -->
+
+<h5 id="hD.3.2.7">D.3.2.7. Table of Contents</h5>
+<div class="d5" id="dD.3.2.7">
+<p class="noindent">If you use a Table of Contents, it is a <a href="#hD.3.1.1">display page</a>, beginning recto. If a second page is needed, add <code>\thispagestyle{empty}</code> after the table completes, but before you clear that page.</p>
+<p>Most fiction does not have, and does not need, a Table of Contents. It is more useful when the story consists of discrete episodes with distinctive names, not just numbers. Or, if the book is a collection of short stories, a table of contents is suggested. If your book is a critical edition, or has sections by different authors, then a Table of Contents is mandatory.</p>
+<p><img src="html-resources/simpletoc.png" class="floatright" width="232" height="342" title="simple table of contents" alt="simple table of contents"/> A basic Table of Contents uses the <i>center</i> environment, so that the Table's title and each entry appear centered on the page, without any fancy layout. The text may be italics. So simple. So effective. However, if you prefer a more formal, rectangular table, <i>novel</i> has its own <code><a href="#h8.1">toc environment</a></code>.</p>
+<p>Avoid any of the table environments that come with TeX or its packages. These do not provide the most attractive presentation for fiction, without a lot of work on your part. But if you wish the use them, do it using <a href="#h2.2">sandbox</a> mode.</p>
+<p>A Table of Contents has no header or footer, and no printed page number. Use <code>\thispagestyle{empty}</code>. If it continues to a second page, add <code>\thispagestyle{empty}</code> at the end, if you don't know where the page breaks.</p>
+<p>Anything preceding a Table of Contents is not listed in the table. Neither is the table itself. An Epigraph is normally not listed, even if it follows the table.</p>
+<p>You may or may not list maps or other illustrations in the table. Fiction rarely has more than a map or two, easily located in front matter by the reader, so there's no need to mention them. Use your judgement. That's different from the practice in nonfiction, especially academic works, where the illustrations convey factual data rather than artistry.</p>
+</div><!-- end D.3.2.7 -->
+
+<h5 id="hD.3.2.8">D.3.2.8. Foreword, Preface, Introduction</h5>
+<div class="d5" id="dD.3.2.8">
+<p class="noindent">A Foreword, Preface, or Introduction is a <a href="#hD.3.1.2">Chapter-Like Section</a>, beginning recto.</p>
+<p>A <i>Foreword</i> is written by someone other than the author. It is essentially a marketing tool, by which the publisher addes credence to the work, or mere publicity, by having an expert or celebrity write something in front matter. Introductions are common in nonfiction, but extremely rare (I have never seen one) in fiction, except for critical editions of older works (where the new, original material is essentially nonfiction).</p>
+<p>A <i>Preface</i> is written by the author, speaking as author, and may include a general discussion of how the author came to write the book. It may also include acknowledgements, if they are not in a separate section. A Preface is rather formal, and very rare in popular fiction. If you wish to address the reader, the less-formal <i>Author's Note</i> is better for your purpose.</p>
+<p>An <i>Introduction</i>, when used in front matter, is written by the author. Its purpose is to provide sufficient background for understanding the material that is to follow. Thus, an Introduction is sometimes seen in the front matter of historical or technical nonfiction.</p>
+<p>An Introduction in front matter is inappropriate for popular fiction, but I suppose it <i>might</i> be used for the purpose of world-building in that genre, where the main story assumes that the reader is familiar with the setting. In such a case, the setup is described by the author (as author), but <i>not</i> by a character in the story. Also see <i>Author's Note</i>.</p>
+<p>A Foreword, Preface, or Introduction is a "chapter-like" section. That is, its style is the same as if it were a chapter, in terms of how it is titled, and the use of page header/footer. But there is a significant exception: If your book design uses header text, you do <i>not</i> write the author and title in headers. Instead, you use <code>\SetVersoHeadText</code> and <code>\SetRectoHeadText</code> to write Foreword, Preface, or Introduction in both. See the example <a href="#hD.3.2.10">Author's Note</a>, below, for how this is done.</p>
+<p>A Foreword or Preface is often signed at the end by its writer, with place and date. A lengthy Foreword might instead place its writer's name and credentials under the Foreword title.</p>
+</div><!-- end D.3.2.8 -->
+
+<h5 id="hD.3.2.9">D.3.2.9. Acknowledgements</h5>
+<div class="d5" id="dD.3.2.9">
+<p class="noindent">If you use Acknowledgements, it begins recto. If very short, style it as a <a href="#hD.3.1.1">Display Page</a>, possibly even using limited text width (as with an <a href="#hD.3.2.6">Epigraph</a>, above). Otherwise, it is a <a href="#hD.3.1.2">Chapter-Like Section</a>.</p>
+<p>Most fiction doesn't need acknowledgements. Don't write Acknowledgements just because you can. Acknowledgements are for those who provided real assistance. If you want to provide a shout-out to your friends for their encouragement, consider doing it on a web page.</p>
+<p>If you have a Preface or Author's Note, you can often include acknowledgements there (if you wish), rather than in separate Acknowledgements.</p>
+<p>If styled like a chapter, in a book that has page headers, the verso and recto head text is set to Acknowledgements, not the author and title. Then, the opening page of Acknowledgements has no header (as with a chapter), but following pages have the header. See the Author's Note, below, for how this is done.</p>
+</div><!-- end D.3.2.9 -->
+
+<h5 id="hD.3.2.10">D.3.2.10. Author's Note</h5>
+<div class="d5" id="dD.3.2.10">
+<p class="noindent">If you use an Author's Note, it begins recto. If very short, style it as a <a href="#hD.3.1.1">Display Page</a>, possibly even using limited text width (as with an Epigraph, above). Otherwise, it is a <a href="#hD.3.1.2">Chapter-Like Section</a>.</p>
+<p>An Author's Note directly addresses the reader, from the author. It is often signed with name, place, and date at the end. There is no particular content. Some authors point out that a particular element of the story, which seems fictional, is actually based on a real historical event. Others babble their life stories, and how they came to write the book. Others use it as a catch-all, including acknowledgements and whatever else fits.</p>
+<p>There is some wiggle room regarding whether the Author's note is fact or fancy. For example, in the "lost manuscript" genre, authors may (fictionally) tell how the manuscript came into their hands; but a lengthy tale of discovery is better placed in main matter, as a fictional Introduction.</p>
+<p>If an Author's Note is two pages long, then on the second page use the same page style that you would ordinary use to start a chapter. Normally, this is <code>\thispagestyle{footer}</code>.</p>
+<p>If an Author's Note is three or more pages long, then a header is permitted (if the book's main style has header). You may allow author and title to appear in header text, but it is better to indicate that this is <em>not</em> the main story, using <code>\SetVersoHeadText{Author's&nbsp;Note}</code> and <code>\SetRectoHeadText{Author's&nbsp;Note}</code>.</p>
+
+<h6 id="hD.3.2.10.1"><span class="n"></span>D.3.2.10.1. Example Author's Note</h6>
+<div class="d6" id="uD.3.2.10.1">
+<p class="noindent">In a book of historical fiction, based on the author's own travels and expertise:</p>
+<p class="code"><code><small>
+\cleartorecto % begins recto<br/>
+\SetVersoHeadText{Author's Note}<br/>
+\SetRectoHeadText{Author's Note}<br/>
+\begin{ChapterStart} % because chapter-like<br/>
+\null\null<br/>
+\ChapterTitle{Author's Note}<br/>
+\end{ChapterStart}<br/>
+After many years of studying the late Roman Empire... \lipsum[1]<br/>
+The Third-Century burial practices of the Alemanni... \lipsum[1-2]<br/>
+I have taken great liberty with the likely behavior... \lipsum[1]<br/>
+The battles with Roman forces are entirely imaginary... \lipsum[1-2]<br/>
+Finally, I would like to thank... \lipsum[1]<br/>
+\null<br/>
+\stake\hfill \textsc{Dirk Hardcase}\par<br/>
+\stake\hfill Springfield, September 22, 2016\par<br/>
+\clearpage<br/>
+% Be sure to re-set the verso and recto head texts!
+</small></code></p>
+<p class="centerimg"><img src="html-resources/authorsnote.png" width="813" height="415" alt="sample author's note in frontmatter"/></p>
+<div style="clear:both"></div>
+</div><!-- end D.3.2.10.1 -->
+</div><!-- end D.3.2.10 -->
+
+<h5 id="hD.3.2.11">D.2.1.11. Map</h5>
+<div class="d5" id="dD.3.2.11">
+<p class="noindent">A Map is a <a href="#hD.3.1.1">Display Page</a>, which may be verso or recto. You may use more than one Map, but be aware that in the printing technology available to you via <i>novel</i> class, a single Map cannot be continued as a spread across the spine; you must break it into two independent Maps, allowing for the inside margins.</p>
+<p>Many works of fiction have a map or other diagram. It might be the map of a real or fictional geographic area. It might be the map of a crime scene. It might be an inheritance chart. Even though fictional, it is usually placed in front matter, presumably because a map does not actually tell any part of the story.</p>
+<p>I have seen maps placed very early, or very late, in front matter. The general rule seems to be, "put it where it fits." However, do not place a map where some other item <i>must</i> be located, and do not place a map on the final verso that faces the beginning of main matter, due to its visual distraction.</p>
+<p>A single map, or maybe two, need not be mentioned in a table of contents or illustrations. If you have a lot of them strewn around the book, then they should be listed in such a table; but this is very rare in fiction.</p>
+<p>As with all images, a map must be placed using <i>novel's</i> own <a href="#h7">image placement methods</a>.</p>
+
+<h6 id="hD.3.2.11.1"><span class="n"></span>D.3.2.11.1. Example Map</h6>
+<div class="d6" id="uD.3.2.11.1">
+<p class="noindent">Typically, there will be nothing but the single image on a Map page, with all text self-contained. But in this example, the image only occupies part of the page. It is followed by ordinary text for the numbered locations:
+<p class="code"><img class="floatright" src="html-resources/map.png" width="178" height="274" alt="sample map"/>
+<code><small>
+\clearpage<br/>
+\thispagestyle{empty}<br/>
+\FloatImage{areamap.png} <span class="ap">% b/w</span><br/>
+\vspace{2<span style="cursor:help" title="normal baseline skip">\nbs</span>}<br/>
+\begin{center}<br/>
+1. Alice Springs\\<br/>
+2. Tuktoyaktuk\\<br/>
+3. Pflugerville\\<br/>
+4. Pucallpa\\<br/>
+5. Kolwezi\\<br/>
+6. Dushanbe\\<br/>
+7. Mittenwald\\<br/>
+8. Sanya\\<br/>
+9. Ice Station 414\par<br/>
+\end{center}<br/>
+\clearpage
+</small></code></p>
+<div style="clear:both"></div>
+</div><!-- end D.3.2.11.1 -->
+</div><!-- end D.3.2.11 -->
+
+<h5 id="hD.3.2.12">D.3.2.12. Second Half-Title</h5>
+<div class="d5" id="dD.3.2.12">
+<p class="noindent">In many cases, front matter has very little content. After the Copyright Page, there is nothing else to say. But it is visually bad practice to go directly from verso Copyright Page to the start of the story on recto page 1. This can be solved by repeating the Half-Title as recto page <i>v</i>, with blank verso page <i>vi</i>. I've seen it with major writers and major publishers.</p>
+<p>You can do the same thing with longer front matter, if it would otherwise end on a verso page.</p>
+<p>When there is a lot of front matter (no particular amount), it is customary to use a second Half-Title to mark the boundary where front matter finally ends.</p>
+<p><i style="cursor:help" title="Chicago Manual of Style">CMoS</i> recommends that a second Half-Title be the first page of main matter. Thus, it would be page 1, with the actual story beginning on page 3. But it acknowledges that a <i>common practice</i> is for a second Half-Title and its verso to remain part of front matter, so that main matter begins with the story on page 1. Although I have seen a few books that follow the <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> recommendation, it appears that the great majority of them follow the <i>common practice</i>.</p>
+<p>If your book has <a href="#hD.3.3.2">Part Separators</a> in main matter, then you can do without a second Half-Title.</p>
+</div><!-- end D.3.2.12 -->
+
+<h5 id="hD.3.2.13">D.3.2.13. Final Page of Front Matter</h5>
+<div class="d5" id="dD.3.2.13">
+<p class="noindent">The final page of front matter is always verso. It is almost always blank. The easiest way to insert a blank page is to write <code>\cleartorecto</code> at the end of the preceding recto page.</p>
+<p>Why is the final page of front matter almost always blank? It is because it faces the opening page of the main story, and you don't want to show anything that detracts from the scene or mood. But there are exceptions. For example, an Epigraph might usefully contribute to the setting. Or, in the case of an old-style English murder mystery (where you already know that the murderer did it with arsenic to inherit the family estate), a map of the estate, or a family tree, would not detract from the setting. The choice is yours.</p>
+</div><!-- end D.3.2.13 -->
+</div><!-- end D.3.2 -->
+
+<h4 id="hD.3.3">D.3.3. Main Matter</h4>
+<div class="d4" id="dD.3.3">
+<p class="noindent">Main matter begins with the <code>\mainmatter</code> command. It forces its page to recto, changes the page numbering to Arabic, and sets the count to 1.</p>
+<p>Main matter is <i>the story itself</i>. In some cases, this also includes a fictional setup (Introduction or Prologue) that leads to the longer story line. It also includes material in the aftermath of the story, such as Epilogue, Conclusion, and end notes.</p>
+
+<h5 id="hD.3.3.1">D.3.3.1. Half-Title in Main Matter ?</h5>
+<div class="d5" id="dD.3.3.1">
+<p class="noindent">The <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> prefers that a second Half-Title page (if used) mark the beginning of main matter. Thus, it would be page 1 (number not printed). Then, the story begins on page 3.</p>
+<p>However, <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> also notes that this is not the regular practice, especially with fiction. In fact, among the many popular fiction books I have inspected, when a second Half-Title is used, it is <i>almost</i> always the last recto page of front matter, followed by a blank verso; then main matter begins with page 1 of the story.</p>
+<p>The choice is yours. I suggest agreeing with regular practice: If you use a second Half-Title, keep it in front matter.</p>
+</div><!-- end D.3.3.1 -->
+
+<h5 id="hD.3.3.2">D.3.3.2. Part Separator in Main Matter</h5>
+<div class="d5" id="dD.3.3.2">
+<p class="noindent">If used, a Part Separator is a recto <a href="#hD.3.1.1">Display Page</a>.</p>
+<p>Some books are partitioned into distinct sub-books. A sub-book is of substantial length, not individual chapters or short stories.</p>
+<p>If your book has distinct sub-books, then each of them has its own recto cover page, known as a Part Separator. Its verso is blank or an Epigraph. Then the accompanying story begins recto.</p>
+<p>A Part Separator is <i>always</i> main matter. So, the first Part Separator is <i>always</i> page 1 (number not printed). Then its text begins on page 3. Do not re-initialize the page count when you get to the next Part Separator.</p>
+<p>Part separators could be simply <i>Part I</i>, <i>Part II</i>, and so forth. They could be <i>Book I</i>, <i>Book II</i>. Or, they could have distinctive titles, such as <i>The Northern Front</i> and <i>The Southern Front</i>. If your book is two novelettes in one, then the Part Separators would be the title (and subtitle, if any) of the individual novelettes. Sometimes a Part Separator has a brief description of its purpose, as in <i>Book I. On Earth</i> followed by <i>Book II. On Mars</i>.</p>
+<p>Unless your book has a very complex structure, do <i>not</i> use both a second Half-Title (whether in front matter or main matter) and a Part Separator. Combine them as the recto main matter page 1: <i>The Withens Chronicles. Part I</i>, or simply <i>Part I</i>. Then the next Part Separator would be <i>Part II</i>.</p>
+<p>In one book I recently noticed, there were five parts, each of which corresponded to one calendar day. The Part Separator showed the day, as in <i>Monday, September 25</i>. Then within each part there were several chapters, each of which took us to some different event in a different setting, all on that same day. I also note that this book had no Table of Contents; the progress of the novel was therefore a surprise, by its author's intent.</p>
+</div><!-- end D.3.3.2 -->
+
+<h5 id="hD.3.3.3">D.3.3.3. Introduction in Main Matter</h5>
+<div class="d5" id="dD.3.3.3">
+<p class="noindent">An Introduction is a <a href="#hD.3.1.2">Chapter-Like Section</a>. If the book is nonfiction and the Introduction is factual, it belongs in front matter, as described above. But in fiction, where an Introduction is a fictional lead-in to the larger story, it belongs in main matter.</p>
+<p>A main matter Introduction is typically used in the "lost manuscript" genre, where some fictional adventurer or archaeologist describes how the manuscript was found and translated. Often, the narration is a moderately lengthy adventure tale, told in the first person, by some adventurer or achaeologist. Following such an Introduction, the various chapters will reveal the contents of the manuscript. If the voice of the Introduction returns at the end, it is called a Conclusion, and is in main matter.</p>
+<p>If an Introduction is in main matter, its header text (if any) is whatever is used throughout the main story. Typically that's author verso, title recto. The reason is that such an Introduction is actually part of the overall story.</p>
+</div><!-- end D.3.3.3 -->
+
+<h5 id="hD.3.3.4">D.3.3.4. Prologue in Main Matter</h5>
+<div class="d5" id="dD.3.3.4">
+<p class="noindent">A Prologue, even if one page, is a <a href="#hD.3.1.2">Chapter-Like Section</a>. It belongs in main matter.</p>
+<p>The purpose of a Prologue is to provide a quick lead-in or setting for the story, and get the reader's attention. It is confined in place and time (one scene, one perspective). The narrator may be first-person or third-person.</p>
+<p>Do not use a Prologue for the voice of the author speaking about the book, as author; that goes in front matter, as an <a href="#hD.3.2.10">Author's Note</a>.</p>
+<p>If a book has a Prologue, then it is likely to have an Epilogue after the main story ends. An Epilogue also belongs in main matter.</p>
+<p>I do not know of any fiction with both a fictional Introduction and a Prologue. If so, Introduction precedes Prologue.</p>
+<p>Note: I have seen some web pages advising that a Prologue should go in front matter, and be narrated by a character who appears in the following story. Based on <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> and actual books, I do not think that is correct.</p>
+</div><!-- end D.3.3.4 -->
+
+<h5 id="hD.3.3.5">D.3.3.5. Chapters</h5>
+<div class="d5" id="dD.3.3.5">
+<p class="noindent">Finally, you have arrived at Chapter One! Not surprisingly, it is a <a href="#hD.3.1.2">Chapter-Like Section</a>. Chapter One is always recto, whether or not preceded by an Introduction or Prologue.</p>
+<p>Subsequent chapters may begin recto or verso. Or, the book may be designed so that each chapter always begins recto. In the majority of novels I have seen, recto/verso is used. The <code>\clearpage</code> command starts a new page (recto or verso), and the <code>\cleartorecto</code> command will (if necessary) insert a blank verso, so that the following material is always recto.</p>
+<p>In the case of short stories, especially if they are by different authors, it is customary to begin each one as recto.</p>
+</div><!-- end D.3.3.5 -->
+
+<h5 id="hD.3.3.6">D.3.3.6. Epilogue, Conclusion</h5>
+<div class="d5" id="dD.3.3.6">
+<p class="noindent">If your book has an Epilogue or Conclusion, it begins recto as a <a href="#hD.3.1.2">Chapter-Like Section</a> in main matter.</p>
+<p>An Epilogue is structurally like a Prologue, but tells the aftermath of the story. A Conclusion is like an Introduction, in which we step outside the main story. I am not aware of any book that has both; but if so, Epilogue precedes Conclusion.</p>
+</div><!-- end D.3.3.6 -->
+
+<h5 id="hD.3.3.7">D.3.3.7. End Notes, Appendix, etc.</h5>
+<div class="d5" id="dD.3.3.7">
+<p class="noindent">If used, End Notes begin recto, as a <a href="#hD.3.1.2">Chapter-Like Section</a> in main matter. The same applies to an Appendix and like material.</p>
+<p>Page numbering continues Arabic. It may surprise you to learn that this is still main matter, but <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> says so, and that's what was done in the few fictional books that have them, among those I have seen.</p>
+<p>The reason is that this kind of material, which is fictional, is actually the original author's writing, entwined with the main story. It was always intended to be part of the book. Never mind that it "looks like" academic material added later.</p>
+</div><!-- end D.3.3.7 -->
+</div><!-- end D.3.3 -->
+
+<h4 id="hD.3.4">D.3.4. At the End</h4>
+<div class="d4" id="dD.3.4">
+<p class="noindent">The final page of your book is necessarily verso. P.O.D. printers (and many others) require that it be completely blank, because they will add some manufacturing information to that page.</p>
+<p>So, if the text of your book finishes on a recto page, then one blank page is automatically added. However, if the text of your book finishes on a verso page, then <i>two</i> blank pages are automatically added.</p>
+
+<h5 id="hD.3.4.1">D.3.4.1. Backmatter? Not!</h5>
+<div class="d5" id="dD.3.4.1">
+<p class="noindent">
+Once upon a time, when printing was not so electronically automated, it was difficult to add material to the end of a previously-typeset section of front matter. So, if there was a subsequent printing of the book, with new material that ought to go in front matter, the problem was solved by placing the new material in "back matter." Then, the original pagination did not have to be altered. To stress that the added material was not part of the original, it would have non-Arabic page numbering, which might be a continuation of lowercase roman numerals from where the front matter left off, or might begin with uppercase Roman numerals.</p>
+<p>A similar situation applied to critical editions of earlier works, which added material from different authors. The added material was never part of the original book.</p>
+<p>That is a situation you are never likely to address. When most authors speak about "back matter," what they mean is explanatory material that follows the end of the story. That is, anything after the final Chapter, Epilogue, or Conclusion. A good example can be found in J.R.R. Tolkien's <i>The Return of the King,</i> which has quite a bit of material following the end of the story. That material discusses the language and history of the Elves, and a variety of other things. But its page numbering continues Arabic. It looks like critical commentary, but it is part of Tolkien's original, fictional structure for the book. Thus, it is main matter.</p>
+<p>So, your book is unlikely to have true back matter. If you use the <code>\backmatter</code> command, it does nothing. If you really wish to change page numbering, then you must code it manually. This is not advised for P.O.D. books, as it may confuse someone performing quality inspection; true back matter is so rare.</p>
+</div><!-- end D.3.4.1 -->
+
+<h5 id="hD.3.4.2">D.3.4.2. About the Author</h5>
+<div class="d5" id="dD.3.4.2">
+<p class="noindent">A hardcover book often has "About the Author" on the inside flap of its dust jacket. Softcover doesn't have a dust jacket, so one strategy is to add a leaf after the story finishes, and place "About the Author" on its recto. That avoids repagination of the original. It is still treated as main matter, with continued (non-printing) Arabic page number. Thus:</p>
+<p class="code"><code>
+.. and they rode off into the sunset. % end of story<br/>
+\cleartorecto<br/>
+\thispagestyle{empty}<br/>
+\begin{ChapterStart}<br/>
+\ChapterTitle{About the Author}<br/>
+\end{ChapterStart}<br/>
+Dirk Hardcase is a former... etc.\par<br/>
+\end{document}
+</code></p>
+<p>&bull; I suggest that if you wish to tell about yourself, you can put it on a web site instead, where you can easily edit or delete it.</p>
+</div><!-- end D.3.4.2 -->
+</div><!-- end D.3.4 -->
+</div><!-- end D.3 -->
+
+
+</div><!-- end D -->
+</div><!-- end Appendix D -->
+<!-- ************************************************************ -->
+<div id="pageE" class="page">
+
+
+<h2 id="hE">Appendix E. &nbsp; Overview of <i>fontspec</i> Syntax</h2>
+<div class="d2" id="dE">
+<p class="noindent">Much of what follows is a digested portion of the full <i>fontspec</i> package documentation. There are many more features, and ways to use them, than will be described below.</p>
+
+<h3 id="hE.1">E.1. &nbsp; Font (Family) Name vs. Font File Name</h3>
+<div class="d3" id="dE.1">
+<p class="noindent">A <em>font file</em> is an individual file, with its own <em>file name</em>, including file extension. For example, libertinusserif-regular.otf and libertinusserif-italic.otf are two different font files. This much is obvious.</p>
+<p>A <em>font family name</em>, often merely called <em>font name</em>, refers to one or more font files that are variations of the same basic font. Some fonts are so unique that the family consists of just one file. For example, the <i>NovelDeco</i> font family consists of the one file <i>NovelDeco.otf</i>. Typically, a font family has four files, consisting of Regular, Italic, Bold, and BoldItalic variants. Even though there are four font files, there is a single font family name.</p>
+<p>Many font families have more than four files, including Semibold and Light weights, and Condensed tracking. It is up to the font designer to decide whether a Condensed variation of the "Bubble Turble" font should be treated as a member of the "Burble Turble" family, or as a separate "Burble Turble Condensed" family.</p>
+<p>The font (family) name can be learned by opening font files in your system font viewer. Currently, the Windows 10 font viewer uses "Font name" and the Ubuntu font viewer puts the font name in more prominent type. A font (family) name may contain more than one word, with or without spaces, and may contain a general classification such as <em>serif</em>, <em>sans</em>, or <em>mono</em>, because those are actually different families. But it will not contain words such as <em>regular</em>, <em>medium</em>, <em>semibold</em>, <em>bold</em>, or <em>italic</em>; those are for individual members of the same family. Within TeX, some of the older PostScript fonts have been re-worked as newer TrueType and Open Type fonts. The family names are slightly different, so pay attention.</p>
+<p class="centerimg">
+<img src="html-resources/win10libser.png" width="268" height="184" alt="Windows 10 font viewer"/> &nbsp;
+<img src="html-resources/ublibser.png" width="431" height="176" alt="Ubuntu font viewer"/>
+</p>
+
+<h4 id="hE.1.1">E.1.1. &nbsp; Set/New by Font Name vs. File Name</h4>
+<div class="d4" id="dE.1.1">
+<p class="noindent">When you set an existing font, or create a new font command, you can use either the font (family) name, or the specific font file name. However, there may be a big difference in results!</p>
+<p style="margin-top:10px"><b>By family name:</b></p>
+<p><img class="floatright" style="padding-top:12px" src="html-resources/fontbyfamily.png" width="338" height="42" alt="font family defined"/> When you use the <em>font family name</em>, you configure all of the Regular, Italic, Bold, and BoldItalic variants. The usual TeX commands will be applied:</p>
+<p>Preamble:</p>
+<p class="code" style="clear:both"><code>\NewFontFamily\rway{Raleway}</code></p>
+<p>Document Body:</p>
+<p class="code"><code>{\rway I came, \textbf{I saw}, \emph{I conquered}, \textsc{I left}.}</code></p>
+<p style="margin-top:10px"><b>By file name:</b></p>
+<p><img class="floatright" style="padding-top:12px" src="html-resources/fontbyfilenamei.png" width="335" height="44" alt="font file defined"/> However, if you specify a single <em>font file name</em>, then <em>only</em> that font file will be used, regardless of requests for bold or italic. Small caps will be honored, if the specific file has them:</p>
+<p>Preamble:</p>
+<p class="code" style="clear:both"><code>\NewFontFamily\rwayi{Raleway-Regular-Italic.otf}</code></p>
+<p>Document Body:</p>
+<p class="code"><code>{\rwayi I came, \textbf{I saw}, \emph{I conquered}, \textsc{I left}.}</code></p>
+<p style="margin-top:10px"><b>File Name Combinations:</b></p>
+<p><img class="floatright" style="padding-top:12px" src="html-resources/frankenfont.png" width="312" height="41" alt="frankenfont"/> What you write is what you get. You can customize a font family by individually selecting its members. Here is the syntax.</p>
+<p>Preamble:</p>
+<p class="code" style="clear:both"><code>\NewFontFamily\frankenfont[% note the % at linebreaks<br/>
+&nbsp; ItalicFont=BaskervilleF-Italic.otf,%<br/>
+&nbsp; BoldFont=libertinusserif-semibold.otf,%<br/>
+&nbsp; BoldItalicFont=texgyrepagella-bolditalic.otf,%<br/>
+]{Raleway-Medium.otf}</code></p>
+<p>Document Body:</p>
+<p class="code"><code>{\frankenfont I came, \textbf{I saw}, \emph{I conquered}, \textsc{I left}.}</code></p>
+<p style="margin-top:10px"><b>Semibold, Light, etc.:</b> The above syntax is especially useful when you wish to specify semibold (if available), rather than bold. It is also a way to select something such as light versions:</p>
+<p class="code"><code>\NewFontFamily\rwlight[% note the % at linebreaks<br/>
+&nbsp; ItalicFont=Raleway-Light-Italic.otf,%<br/>
+&nbsp; BoldFont=Raleway-Medium.otf,%<br/>
+&nbsp; BoldItalicFont=Raleway-Medium-Italic.otf,%<br/>
+]{Raleway-Light.otf}</code></p>
+<p>Note that the font file in braces is the one used as the "regular" font, in this definition.</p>
+</div><!-- end E.1.1 -->
+</div><!-- end E.1 -->
+
+<h3 id="hE.2">E.2. &nbsp; Open Type Features</h3>
+<div class="d3" id="dE.2">
+<p class="noindent">Features are variations, contained within a single font file. In the bad old days, when you wanted true small caps, you had to load a separate font file that had them (and did not have ordinary lowercase letters). Now, if an Open Type font file has the <i>smcp</i> feature (most do), you obtain the small caps from within the same file, by asking for them. Requests for the feature may be made on-the-fly, or pre-loaded for global use.</p>
+<p>Here are several of the most frequently-used features, relevant to fiction writing. There are many more, and most fonts have only a few of them. Even when a font has a feature, it may be limited to some portion of the characters. For example, it is common for small caps to be available only for Latin-1 letters, even though the font also contains Greek and Cyrillic. To put this another way: The availability of a feature does not tell you its breadth of coverage. Unless the font has documentation showing coverage of its features, the only way to find out is to create and print a test page.</p>
+<table class="preconf">
+<caption>
+Some Frequently-Used Open Type Features
+</caption>
+<thead>
+<tr>
+<th>Description</th>
+<th>Open Type code &nbsp;</th>
+<th>fontspec code</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><p>kerning</p></td>
+<td><p>kern</p></td>
+<td><p>Kerning=On<br/><em>enabled by default</em></p></td>
+</tr>
+<tr>
+<td><p>common ligatures</p></td>
+<td><p>liga</p></td>
+<td><p>Ligatures=Common<br/><em>enabled: mainfont, sansfont</em></p></td>
+</tr>
+<tr>
+<td><p>Tex ligatures</p></td>
+<td><p>tlig</p></td>
+<td><p>Ligatures=TeX<br/><em>enabled by default</em></p></td>
+</tr>
+<tr>
+<td><p>lowercase letters to small caps</p></td>
+<td><p>smcp</p></td>
+<td><p>Letters=SmallCaps</p></td>
+</tr>
+<tr>
+<td><p>uppercase letters to small caps</p></td>
+<td><p>c2sc</p></td>
+<td><p>Letters=UppercaseSmallCaps</p></td>
+</tr>
+<tr>
+<td><p>lining numerals</p></td>
+<td><p>lnum</p></td>
+<td><p>Numbers=Lining</p></td>
+</tr>
+<tr>
+<td><p>oldstyle numerals</p></td>
+<td><p>onum</p></td>
+<td><p>Numbers=OldStyle<br/><em>enabled: mainfont, sansfont</em></p></td>
+</tr>
+</tbody>
+</table>
+<p>&bull; Kerning is the automatic adjustment of spacing between letters, so that they fit together nicely. The values are read from tables within the font.</p>
+<p>&bull; Common ligatures are substitutions, such as a combined <i>ff</i> character for two consecutive <i>f</i> characters. It is up to the font designer to determine which ligatures, if any, are common.</p>
+<p>&bull; TeX ligatures (such as replacing `` with “ and --- with &mdash;) are not actually an Open Type feature, but they are treated that way by the software. All of these are enabled by default. The <i>fontspec</i> manual explains how to disable them, if necessary.</p>
+<p>&bull; The SmallCaps feature applies only to lowercase letters; ordinary capitals remain ordinary capitals. UppercaseSmallCaps deals only with converting ordinary capitals to small caps. If you want both, use both. In most fonts that have them, small caps are slightly taller than lowercase, and slightly more widely spaced. What distinguishes real small caps from fake ones (obtained by scaling ordinary capitals) is that the weight and spacing are more compatible with surrounding text.</p>
+<p class="centerimg"><img src="html-resources/smallcapsrealfake.png" width="478" height="43" alt="real vs fake small caps"/></p>
+<p>&bull; Lining numerals are the ones most familiar to you, from math or accounting. They sit on the baseline and have the height of capital letters. That's just right for doing calculations, and is acceptable for things such as page numbers and chapter numbers.</p>
+<p>&bull; When lining numerals are mingled with flowing text, they may stand out too much. OldStyle numerals are more like flowing text: Most of the numerals are at lowercase height, with ascenders and descenders. Compare the first number as OldStyle, the second as Lining:</p>
+<p class="centerimg"><img src="html-resources/jollybeers.png" width="499" height="52" alt="oldstyle vs lining numerals"/></p>
+<p>Most fonts use Lining numerals as their default. A few default to OldStyle numerals. Thus, you should explicitly call for the kind of numerals you wish to use.</p>
+<p>&bull; True OldStyle numerals have a flat top on <em>one</em>, and a very round <em>zero</em>: <img src="html-resources/10trueold.png" width="37" height="13" alt="true oldstyle 10"/> This may be a bit distracting. Some fonts use a transitional form, where the one has a tilted top (like big 1) and the zero is not so round: <img src="html-resources/10transold.png" width="37" height="13" alt="transitional oldstyle 10"/> Others offer you a choice, via an Open Type "style set." See the <i>fontspec</i> manual for how to code style sets.</p>
+<p>&bull; There are many more Open Type features, most of which are not useful in ordinary fiction writing. Fonts rarely have more than a few features. Some features (such as the ones shown above) have a specific meaning. Other features, such as "style sets", have whatever meaning the font designer assigns them; Thus the <i>ss03</i> feature of one font may do something very different from <i>ss03</i> in a different font.</p>
+
+<h4 id="hE.2.1">E.2.1. &nbsp; Scale as Pseudo-Feature</h4>
+<div class="d4" id="dE.2.1">
+<p class="noindent">Although it is not an Open Type feature, <i>Scale=number</i> may be written like a feature. <i>Scale</i> globally adjusts the size of the font, relative to what it would otherwise be. If a local font size command is also applied, then the result is the compounded value.</p>
+<p>If the font will be mingled with other fonts in the same place, Scale can tweak a font so that it does not stand out. If Scale does not exceed 1, then the baselineskip will not be affected. Over 1 risks spreading lines to accomodate the extra size; this should not be done for fonts that will appear in the flowing main text. But over 1 is acceptable for display fonts that do not wrap lines and do not mingle with main text.</p>
+<p>Example: <em>Orbitron</em> is a special-purpose font with a mechanical or futuristic look. Its characters are much larger and heavier than would be found in book fonts. If I wish to mingle Orbitron with ordinary text, I might load the font like this:</p>
+<p class="code"><code>\NewFontFace\orbitron[Scale=0.6]{Orbitron} % Preamble</code></p>
+<p>Then in the document body, I could use it like this:</p>
+<p class="code"><code>The message was brief: {\orbitron DIE, EARTHLING.} Captain Withens smiled as he oiled his ray-gun. But ray-guns don't use oil.\par</code></p>
+<p class="centerimg"><img src="html-resources/charscaletext.png" width="522" height="63" alt="charscale text"/>
+<p>Scale is more often used for fonts that are pre-defined to have a special meaning and location, such as <a href="#h5.1.3.1">chapter titles</a> or <a href="#h4.3.4.2">page headers</a>. There, the font is not mingled with ordinary text, and it is OK to use a larger Scale. Then, it is not necessary to use local font scaling commands each time the font is used.</p>
+</div><!-- end E.2.1 -->
+
+<h4 id="hE.2.2">E.2.2. &nbsp; Color and Opacity</h4>
+<div class="d4" id="dE.2.2">
+<p class="noindent">Even though the <i>fontspec</i> syntax allows you to set <i>Color</i> and <i>Opacity</i> as pseudo-features when you define a font, <em>the novel class blocks these features.</em> If you attempt to set them as features in a font definition, an error will result. The same applies if you attempt to add them, using <code>\addfontfeature</code>. However, you can still make use of grayscale using ordinary, local color commands.</p>
+<p>You may write text in grayscale, using commands from the included <i>xcolor</i> package. You should only do this for text that is in special locations. For example, if you begin each chapter with a number that is very large, you might wish to make that number gray, so that it does not overpower the main text.</p>
+<p>To avoid possible conflicts, the color specification should be chosen from a limited list of names. In order from dark to light: black, blue, violet, darkgray, purple, red, teal, olive, magenta, gray, brown, green, orange, cyan, lightgray, lime, pink, yellow, white. They will all be rendered in <em>shades of gray</em> (of course, black and white will be themselves). You may also choose from this more convenient list: black, gray1, gray2, gray3, gray4, gray5, gray6, gray7, gray8, gray9, white.</p>
+<p>&bull; Placing light text over a dark background may produce unexpected results in print, even if it looks good in PDF. If you need this effect, it is better to build the text into the background, as a single image.</p>
+</div><!-- end E.2.2 -->
+
+<h4 id="hE.2.3">E.2.3. &nbsp; <code>\CreateFontFeature{<em>code</em>}{<em>substitutions</em>}</code></h4>
+<div class="d4" id="dE.2.3">
+<p class="noindent">Once in a while, a font has a glyph that you would like to use, but it is not included in any of the font's Open Type feature sets. So, how to you grab that particular glyph? For example: One well-known font has a glyph named <em>emdash.alt</em>, which is not as long as the font's ordinary <em>emdash</em> glyph, and looks better in text. Unfortunately, <em>emdash.alt</em> is not in any of the font's style sets. Without some trickery, only a program such as InDesign can grab that glyph.</p>
+<p>Thanks to <i>fontspec</i>, <i>novel</i> has the necessary trickery. Command <code>\CreateFontFeature</code> creates a fake Open Type feature code, and assigns your list of substitutions to that code. Use comma-separated entries if there are multiple substitutions. For the case in question:</p>
+<p class="code"><code>\CreateFontFeature{myem}{emdash=emdash.alt}</code></p>
+<p>The code <i>myem</i> was randomly chosen as something that is not already defined among Open Type feature codes. Once specified, the fake feature may be used in any font definition, such as this:</p>
+<p class="code"><code>\SetParentFont[RawFeature=+myem]{Adobe Garamond Pro}</code></p>
+<p>Of course, the fake feature has no effect if the font does not have the substitution character.</p>
+<p>This technique may be used for more complicated features, but that is beyond the scope of this documentation. See the <i>fontspec</i> manual if you need to do more.</p>
+</div><!-- end E.2.3 -->
+</div><!-- end E.2 -->
+
+<h3 id="hE.3">E.3. &nbsp; Local Modifications to Open Type Features</h3>
+<div class="d3" id="dE.3">
+<p class="noindent">If you specify a particular Open Type feature, it will be generally used for that font command. So if you define a new font command with <i>Letters=SmallCaps</i> as a feature (and if the font actually has them), then small caps will be used for that font, whether or not you locally request them with a command such as <code>\textsc</code>.</p>
+<p>Often, you can add (or sometimes remove) features on a local basis. For example, suppose that you defined the font without using its <i>ss03</i> style set. You can locally add that feature to some text, using a command that looks like this:</p>
+<p class="code"><code>{\addfontfeature{<em>which feature</em>} <em>applied to this text</em>}</code></p>
+<p>The above code assumes that you are already using the font in that location. You cannot apply <i>ss03</i> from one font to an entirely different font!</p>
+<p>See the <i>fontspec</i> documentation for details of <code>\addfontfeature</code>.</p>
+<p>As an alternative to changing features locally, you can define different font commands to call the same underlying font, but with different features.</p>
+<p>Two ways to accomplish the same thing:</p>
+<p class="code"><code>
+\NewFontFamily\baskf{BaskervilleF}<br/>
+\NewFontFamily\baskftab[Numbers=Monospaced]{BaskervilleF} % tnum feature<br/>
+\begin{document}<br/>
+Some text {\baskftab hello 123} is here.<br/>
+Some text {\baskf\addfontfeature{Numbers=Monospaced} hello 123} is here.
+</code></p>
+</div><!-- end E.3 -->
+
+
+</div><!-- end E -->
+</div><!-- end Appendix E -->
+<!-- ************************************************************ -->
+<div id="pageF" class="page">
+
+
+<h2 id="hF">Appendix F. &nbsp; Drop Caps</h2>
+<div class="d2" id="dF">
+<p class="item">A <i>drop cap</i> is an enlarged letter (or image) at the beginning of chapter text, with the first few lines of text wrapped around it:</p>
+<p class="centerimg"><img src="html-resources/dropcap.png" width="431" height="112" title="drop cap" alt="drop cap"/></p>
+<p>Drop caps are out of fashion, largely because they do not look good when used with dialog or with short paragraphs. If you intend to use them, be prepared to write in a style where each chapter begins with a substantial paragraph. Or, consider using a specially designed <a href="#h5.5">first line</a> instead.</p>
+<p>If you use a drop cap, the first paragraph must be long enough to fill all of the shortened lines, and continue to the line beneath the drop cap letter. If instead you try to have two or more short paragraphs, then the drop cap will not work as expected. To solve this problem, you can break using <code>\\</code> to fake a paragraph ending, then use <code>\forceindent</code> to fake a new paragraph indent.</p>
+
+<h3 id="hF.1">F.1. &nbsp; Built-In Method vs. Lettrine</h3>
+<div class="d3" id="dF.1">
+<p class="item"><b>A.</b> In <i>novel</i>, the built-in <code>\dropcap</code> command is preferred to any other method for creating a drop cap. See the next section for its usage.</p>
+<p class="item"><b>B.</b> Alternatively, you may load the <i>lettrine</i> package, and use it as described in its own documentation. If <i>lettrine</i> is detected, <i>novel</i> will configure it so that lines remain on grid, and are not pushed down.</p>
+<p class="item"><b>C.</b> You may use both <code>\dropcap</code> and <code>\lettrine</code> in the same document, as they are independent, and use different settings.</p>
+<p class="item"><b>D.</b> In <i>novel</i>, the <code>\lettrine</code> command does not accept an image. Use <code>\dropcap</code>.</p>
+<p class="item"><b>E.</b> Only <i>lettrine</i> offers the rarely-used <i>slope</i> feature.</p>
+<p class="item"><b>F.</b> Both <code>\dropcap</code> and <code>\lettrine</code> are incompatible with <code>\FirstLine</code>. If you need to set the entire first line in small caps, you are more likely to be successful using <code>\dropcap</code> as described below.</p>
+</div><!-- end F.1 -->
+
+<h3 id="hF.2">F.2. &nbsp; \dropcap[<em>options</em>]{<em>letter or image</em>}</h3>
+<div class="d3" id="dF.2">
+<p class="noindent">To ensure that this command works as described here, verify that font <i>NovelDeco.otf</i> is at least version 1.48. If you use your own <i>deco font</i>, be sure that it is based on at least that version. Also, clear <i>luatex-cache</i> so that the version is updated. If you do not do that, the <code>\dropcap</code> command still works, but the appearance of the result will differ.</p>
+<p class="item"><b>A.</b> The <code>\dropcap</code> command is based on <i>lettrine</i> technology, but has different options and behavior.</p>
+<p class="item"><b>B.</b> The <code>\dropcap</code> command accepts the following options as <span style="white-space:nowrap">comma-separated</span> key values:</p>
+<p class="code"><code>lines=<em>integer</em></code> &nbsp; Number of lines indented by the drop cap. Default 3.</p>
+<p class="code"><code>gap=<em>length</em></code> &nbsp; Distance from drop cap to indented text. Default 0.25em. (note 1)</p>
+<p class="code"><code>hoffset=<em>length</em></code> &nbsp; Moves drop cap horizontally. Default 0em.</p>
+<p class="code"><code>voffset=<em>length</em></code> &nbsp; Moves drop cap vertically. Default 0em.</p>
+<p class="code"><code>ante={<em>text</em>}</code> &nbsp; Precedes drop cap with normal text. Default empty. (notes 2,4)</p>
+<p class="code"><code>ante*={<em>text</em>}</code> &nbsp; Like <code>ante={<em>text</em>}</code> but auto-hangs text in left margin. (notes 3,4)</p>
+<p class="code"><code>scale=<em>number</em></code> &nbsp; Scales drop cap letter (not image). Default 1.</p>
+<p class="code"><code>bloat=<em>number</em></code> &nbsp; Horizontally scales drop cap letter (not image). Default 1. (note5)</p>
+<p class="code"><code>depth=<em>integer</em></code> &nbsp; Adds blank line(s) beneath drop cap baseline. Default 0. (note 6)</p>
+<p><img src="html-resources/dropcap-gap.png" class="floatright" width="82" height="150" title="dropcap gap" alt="dropcap gap"/>&bull; Note 1: The <code>gap</code> is equivalent to <i>lettrine's</i> <code>findent</code>. There is no equivalent to <code>nindent</code> or <code>slope</code>. If you wish to move the first line of text closer to the drop cap, use <code>\kern</code> or <code>\hspace</code> there.</p>
+<p>&bull; Note 2: <code>ante</code> is typically used for placing quotation mark before the drop cap. But the authoritative <i style="cursor:help" title="Chicago Manual of Style">CMoS</i> recommends that such an opening mark be omitted, at least in American style. If the mark is placed, it is at normal text font, size, and position (this is the style used).</p>
+<p><img src="html-resources/dropcap-antestar.png" class="floatright" width="110" height="102" title="ante*=``" alt="ante*=``"/>&bull; Note 3: <code>ante</code> begins at the margin, and thus pushes the drop cap to the right. With <code>ante*</code> its text hangs in the left margin, so that the drop cap is aligned with the margin. This is visually better, providing that you have enough margin to accomodate the ante text. Setting an <i>unsafe zone</i> may be helpful. See the main documentation.</p>
+<p>Example at right: <code>\dropcap[ante*=``]{O}</code></p>
+<p>&bull; Note 4: You may use <code>\charscale</code> to manipulate the size and position of ante text. No other styling (such as font or color) may be applied. The ante text will always be black, in the main font. This is standard.</p>
+<p><img src="html-resources/dropcap-scalebloat.png" class="floatright" width="98" height="107" title="scale=1.2,bloat=.75" alt="scale=1.2,bloat=.75"/>&bull; Note 5: <code>bloat</code> multiplies <code>scale</code> horizontally. The primary use of <code>bloat</code> is to tweak where the lines break, by making the drop cap slightly narrower or thicker.</p>
+<p>Example at right: <code>\dropcap[scale=1.2,bloat=0.75]{O}</code>. The effective vertical scale is 1.2, and the effective horizontal scale is 1.2x0.75=0.8.</p>
+<p>&bull; Note 6: If the drop cap character has a prominent descender, then you may need to create room underneath it using <code>depth</code>, or the descender will intrude into the text beneath it. This can only be decided on a per-character basis, depending on the font.</p>
+<p class="item"><img src="html-resources/I-shade.png" class="floatright" width="84" height="88" title="dropcap I image" alt="dropcap I image"/><b>C.</b> If the content of the drop cap ends with png, PNG, jpg, JPG, jpeg, or JPEG, it will be interpreted as an image. It will be aligned so that its bottom is at the lowest indented baseline. You may position the image using the <code>hoffset</code> and <code>voffset</code> option keys. The image cannot be scaled by <code>hscale</code> or <code>vscale</code>, because it must be at exact size and resolution. Thus, whether or not the image's top aligns in the desired location, depends on how you created the image.</p>
+<p>Example at right: <code>\dropcap[voffset=-0.15em]{I-shade.png}</code>.</p>
+<p class="item"><b>D.</b> If <code>lines=1</code>, then <code>\dropcap</code> has no effect. This applies whether or not the command or <code>ante</code> is starred. That is, the following lines of code have the same result:</p>
+<p class="code"><code>&ldquo;It was dark and stormy,&rdquo; he said.</code></p>
+<p class="code"><code>\dropcap[<i>any keys</i>,lines=1,ante*=&ldquo;]{I}t was dark and stormy,&rdquo; he said.</code></p>
+<p class="item"><b>E.</b> When the drop cap is a letter (not image) without scale, or with <code>scale=1</code>, its top will lie at the capital X-height of main text. This is the most commonly-used style. If the letter has upper diacritical mark, then the mark will be set higher.</p>
+</div><!-- end F.2 -->
+
+<h3 id="hF.3">F.3. &nbsp; \dropcap*[<em>options</em>]{<em>letter</em>} &nbsp; starred version</h3>
+<div class="d3" id="dF.3">
+<p class="item"><b>A.</b> <img src="html-resources/Iboxcap.png" class="floatright" width="84" height="191" title="starred dropcap and image" alt="starred dropcap and image"/>In its starred form, <code>\dropcap*</code> will place a rectangular box around the drop cap letter (but not image).</p>
+<p class="item"><b>B.</b> If the letter is in the Latin-1 or Latin Extended A character sets, then the box will ignore any upper diacritical mark, so that the mark sits above the box.</p>
+<p class="item"><b>C.</b> The boxed letter is a convenient reference frame, in case you wish to create an image of the letter in a graphics program. If you do that, then you will probably need to apply some negative <code>voffset</code> to the image. You may also wish to kern the first line closer to the image.</p>
+<p class="item"><b>D.</b> Example: At right, the top section shows a drop cap I with box. This portion of the PDF was imported to a graphics program, and the boxed area was used as template for the image shown in the lower section. Then the image was substituted for the original boxed letter.</p>
+</div><!-- end F.3 -->
+
+<h3 id="hF.4">F.4. &nbsp; Drop Cap Font and Color</h3>
+<div class="d3" id="dF.4">
+<p class="item"><b>A.</b> These settings apply to <code>\dropcap</code>, but not <code>\lettrine</code>.</p>
+<p class="item"><b>B.</b> The default drop cap font is <i>NovelDeco.otf</i> with its Open Type feature <i>dcap</i>. These glyphs are modeled after the <i>Libertinus Serif Display</i> font, and are specially designed to look good at the enlarged size of drop caps, as well as align with the left margin. Also, characters with prominent descenders (such as Ccedilla) are designed so that the descender, rather than the base letter, sits at the baseline. This avoids the need for <code>depth</code> setting.</p>
+<p class="item"><b>C.</b> To change the font used by <code>\dropcap</code>, you must first define one or more font commands in Preamble. For example:</p>
+<p class="code"><code>\NewFontFace\mynicedc[<em>features</em>]{font file name}</code></p>
+<p>Then, you set the font. This may be changed anywhere:</p>
+<p class="code"><code>\SetDropCapFont{\mynicedc}</code></p>
+<p class="item"><b>D.</b> Do not use Type1 or Metafont fonts. If the desired font is only available in one of those formats, you can use a font editor such as <a href="https://fontforge.github.io/en-US/" class="external" rel="external" target="new">FontForge</a> to convert it to Open Type or TrueType format. Then, as described above, load the converted file by its exact file name. If the font has mssing extrema, that is almost never a problem. Overlapped hints are rarely a problem. But self-intersecting glyphs and open paths may be a problem, if you use those glyphs.</p>
+<p class="item"><b>E.</b> Default drop cap color is black. To change it, use <i>xcolor</i> syntax. Either of these:</p>
+<p class="code"><code>\SetDropCapColor[<em>color model</em>]{<em>color value</em>}</code></p>
+<p class="code"><code>\SetDropCapColor{<em>color name</em>}</code></p>
+<p>Only grayscale may be used.</p>
+</div><!-- end F.4 -->
+
+<h3 id="hF.5">F.5. &nbsp; Drop Cap With First Line Small Caps</h3>
+<div class="d3" id="dF.5">
+<p class="item"><b>A.</b> The <code>\FirstLine</code> command does not play well with either <code>\dropcap</code> or <code>\lettrine</code>. This is not a trivial fix.</p>
+<p class="item"><b>B.</b> If you require a drop cap to be followed by an entire first line in small caps, Then you must manually code it. You will probably get better results using <code>\dropcap</code> instead of <code>\lettrine</code>.
+<p class="item"><b>C.</b> Use <code>\dropcap{letter or image}\textsc{some text} rest of paragraph.</code></p>
+<p class="item"><b>D.</b> Guess at how much <code>{some text}</code> needs to be. Compile, look at result, then adjust and try again.</p>
+<p class="item"><b>E.</b> It is possible (although unsightly) to end <code>{some text}</code> at a hyphenation point in its final word.</p>
+<p class="item"><b>F.</b> Again: There is no known better way to do this.</p>
+</div><!-- end F.5 -->
+
+
+</div><!-- end F -->
+</div><!-- end Appendix F -->
+<!-- ************************************************************ -->
+
+
+<!-- Future appendices go here. -->
+
+
+<!-- ************************************************************ -->
+<div id="pageY" class="page">
+
+
+<h2 id="hY">Appendix Y. &nbsp; Licensing and Credits</h2>
+<div class="d2" id="dY">
+
+<p class="item"><b>A. Licensing:</b> The <i>novel</i> document class, including software, examples, documentation and supporting images, is distributed under the terms of the <a class="external" rel="external" target="new" href="https://www.latex-project.org/lppl/lppl-1-3c/">LaTeX Project Public License, version 1.3c</a>, or (at your option) any later version. Exception: The included fonts <i>NovelDeco.otf</i> and <i>CPmodified.otf</i> are distributed under terms of the <a class="external" rel="external" target="new" href="http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web">SIL Open Font License, v.1.1.</a></p>
+<p>To ensure that your book may be sold commercially, be careful to use only fonts that allow commercial usage. That may exclude some of the fonts in the LaTeX font catalog. See <a href="#hC">Appendix&nbsp;C</a>.</p>
+
+<p class="item"><b>B. Credits:</b> Within the TeX code files, you will find places where small or large pieces of code are the work of someone else. Names or organizations are credited in-place within the TeX code, according to license.</p>
+<p>Various clipart graphics were obtained from <a class="external" rel="external" target="new" href="https://openclipart.org">openclipart.org</a>.</p>
+<p>Font <i>NovelDeco.otf</i> was created using <a class="external" rel="external" target="new" href="https://fontforge.github.io/en-US/">FontForge</a>. The font is partly derived from <a class="external" rel="external" target="new" href="https://github.com/khaledhosny/libertinus"><span style="white-space:nowrap"><i>Libertinus Serif</i></span></a>, which in turn is derived from <a class="external" rel="external" target="new" href="http://www.linuxlibertine.org/"><span style="white-space:nowrap"><i>Linux Libertine O</i></span></a>.</p>
+<p>In places, I offer opinions or make suggestions regarding design. These are largely based on my own inspection of popular fiction books, at my local public library. In some cases, I follow the <a class="external" rel="external" target="new" href="http://www.chicagomanualofstyle.org/home.html"><i>Chicago Manual of Style</i></a> (CMoS), hardcover 16th edition. However, please do not regard my opinions and suggestions as authoritative.</p>
+<p>&nbsp;</p>
+
+
+</div><!-- end Y -->
+</div><!-- end Appendix Y -->
+<!-- ************************************************************ -->
+<div id="pageZ" class="page">
+
+
+<h2 id="hZ">Appendix Z. &nbsp; Changes in v.1.50 and Later</h2>
+<div class="d2" id="dZ">
+
+<h4>Changes in version 1.52</h4>
+<div class="d4">
+<p>The <code>linegap</code> environment is deprecated. It will still be honored in code, but has been removed from the documentation. It was never very useful.</p>
+<p>The <code>parascale</code> environment now measures how much it disturbs the line grid. Although it cannot automatically correct the disturbance, it does provide a useful warning so that you can make the change yourself.</p>
+<p>Best practice avoids scene breaks too close to the top or bottom of a page, unless you place something visible there. Now, a badly-placed <code>\scenebreak</code> can be detected, and a warning will be issued.</p>
+<p>Version 1.50 already included an advanced method for PDF/X-1a color covers. In version 1.52, this is extended to non-color interior book blocks. Now, any image placed in your document will be inspected, and classified either as <i>known-compliant</i> or <i>unknown</i>. Images with <i>unknown</i> compliance will be reported in the log file, and if any were detected, there will be a warning.</p>
+<p>There have been some miscellaneous small tweaks, unlikely to be noticeable by most users.</p>
+<p>Documents that successfully compiled with version 1.50 should look the same in version 1.52, but you may see more warnings.</p>
+</div>
+
+<h4>Changes in Version 1.50</h4>
+<div class="d3">
+<p>Version 1.50 introduced many new features, and some changes, from version 1.46.2.</p>
+
+<p class="noindent"><b>Post-Release Reversion to Old</b></p>
+<p>If you have an existing document created with version prior to 1.50, in rare circumstances the layout will change. </p>
+<p>If the only change is the number of lines per page, then you can simply fix it manually, using the <code>\SetLinesPerPage</code> command. But if version 1.50 creates problems, you can run the old and new versions side-by-side. Be sure to keep the new version installed.</p>
+<p>In the short term, an older version of <i>novel</i> can be found <a href="https://github.com/RobtAll/novel">here</a>, in the archives folder. Be sure that the zip file is named "novel-old".</p>
+<p>1) Unpack novel-old.zip into your texmf-local directory.</p>
+<p>2) Refresh your file name database.</p>
+<p>3) Change your document class from <i>novel</i> to <i>novel-old</i>.</p>
+<p>If performed correctly, you will be using version 1.46.2 of <i>novel</i>, when you change the document class to <i>novel-old</i>. To avoid version conflict, be sure that you do not duplicate font <i>NovelDeco.otf</i> in texmf-local; <i>novel-old</i> will rely on the current version installed with <i>novel</i>.</p>
+<p>Any document using <i>novel</i> will get the installed version, rather than <i>novel-old</i>.</p>
+<p>In the long term, the older version will be removed. No particular time frame. I do not believe that many users (if any) will be affected.</p>
+<p>If your existing documents have no problem with version 1.50, then use the newer version.</p>
+
+<p class="noindent"><b>Cover Art Methods Changed</b></p>
+<p>From version 1.50, the method used for cover art has changed. If you have existing cover artwork using the older syntax, it will still be honored, but it is no longer documented.</p>
+<p>The new cover art syntax requires you to pre-process your image using a script, included in the documentation <i>extras</i> folder. The scripts works on Windows, Linux, and Mac OSX. The processed image will be PDF, separated to CMYK, at 240% ink limit.</p>
+<p>To obtain PDF/X, you post-process the above PDF in lualatex, using a template. Complete instructions are in the zip file containing the scripts.</p>
+<p>Of course, you don't need to use TeX at all, if your print service accepts an ordinary RGB image.</p>
+
+<p class="noindent"><b>New Class Option: sandbox</b></p>
+<p><i>Novel</i> does not permit things such as TikZ diagams, tables (other than its own method), imported PDf pages, and some other TeX effects. The purpose of the prohibition is to maintain grid layout, and ensure PDF/X compliance.</p>
+<p>From version 1.50, the <code>sandbox</code> class option allows you to do nearly anything, provided that the result is no more than four pages. Then, you can create drawings or whatever, convert to raster images, and place the images in your main document.</p>
+
+<p class="noindent"><b>\BlockImage Obsolete</b></p>
+<p>From version 1.50 the \BlockImage command is obsolete. It was never a very good macro. If you have an existing document that uses \BlockImage, it will be honored, but it is no longer documented.</p>
+<p>You may prefer the new <code>\FloatImage</code> and <code>\WrapImage</code> commands.</p>
+
+<p class="noindent"><b>\FloatImage Added</b></p>
+<p>Better than <code>\BlockImage</code>: Version 1.50 now has <code>\FloatImage</code>, which can place an image "here" or float it to the next page, if it doesn't immdiately fit. Full-page floats are supported. See the full documentation, above.</p>
+<p>The <code>\InlineImage</code> command remains unchanged, and will probably remain forever. It's a good macro.</p>
+
+<p class="noindent"><b>\WrapImage Added</b></p>
+<p>The new <code>\WrapImage</code> command provides limited support for wrapping text around an image. It is all you need in the context of fiction writing.</p>
+<p>The <i>wrapfig</i> package is automatically loaded, and provides the layout engine. However, do not directly use the commands and environments from that package (they won't work). Instead, <i>novel</i> provides macro <code>\WrapImage</code>, which will format your input so that it can be processed correctly.</p>
+
+<p class="noindent"><b>Drop Caps Added</b></p>
+<p>As before, you may use the <i>lettrine</i> package, if you wish. From version 1.50, <i>novel</i> now has built-in support for a certain style of drop caps, as a special interface to the <i>lettrine</i> layout engine.</p>
+<p>Since the new <code>\dropcap</code> command requires an updated version of the <i>NovelDeco.otf</i> font, be sure to update your <span style="white-space:nowrap">luatex-cache</span>.</p>
+
+<p class="noindent"><b>\Rework Obsolete</b></p>
+<p>From its early days, <i>novel</i> had an exotic built-in method for preserving layout if your book's Trim Size changed. It was a complicated piece of code, and even though it worked, it was inherently incapable of addressing some layout situations.</p>
+<p>In version 1.46.1 it was quietly removed from the documentation. In the short term, existing documents that rely on <code>\Rework</code> commands will still compile. In the long term, forget it. To my knowledge, nobody is using it.</p>
+
+<p class="noindent"><b>Class Option <i>graytext</i> Obsolete</b></p>
+<p>Formerly, you could use a class option to specify whether or not the use of grayscale text (anything other than solid black) was permitted. There was never any good reason for having that choice, so it has been removed. Now, you can always use grayscale text, if you wish.</p>
+
+<p class="noindent"><b>\SetCropmarkGap Obsolete</b></p>
+<p>Formerly, there was a minimal ability to configure crop marks. It was not very useful, and made the code more complex. Now, the size of cropmarks is fixed.</p>
+
+<p class="noindent"><b>New Error Messages for Endnotes</b></p>
+<p>Prior to version 1.50, incorrect use of <a href="#h9.2"><code>\endnote</code></a> commands would simply produce bad typesetting, without warning.</p>
+<p>New error messages have been added. If you use <a href="#h9.2"><code>\endnote</code></a>, and get error messages that did not appear before, then be sure to read the command documentation again. The most likely reason for error is that you are using the commands according to the syntax of some other package, rather than using <i>novel's</i> own syntax.</p>
+
+<p class="noindent"><b>New Algorithm for Layout Calculations</b></p>
+<p>Under the hood, version 1.50 uses a more accurate method for page layout. In most cases, the change is microscopic, and will not affect existing documents.</p>
+<p>Books that use widely-spaced lines are most likely to show a noticeable change for the better. In a few cases, the default number of lines per page will change. If you have an existing document using default lines per page, and it has changed, then simply specify the exact number manually.</p>
+
+<p class="noindent"><b>Revised Documentation Format</b></p>
+<p>This documentation has been slightly revised. Now, long sections are broken down into items, marked A, B, etc. This is for the convenience of translators.</p>
+<p>Under the hood, in the TeX code, there has been some cleanup, for the benefit of future package maintainers.</p>
+
+<p class="noindent"><b>What's Unchanged</b></p>
+<p>Most of <i>novel</i> is just as before, and will be...</p>
+<p>In particular, there is no support for tables (other than novel's own Table of Contents), no support for automatic divisions into sections and other kinds of partitions, no support for automatic index or bibliography, and generally no support for the "academic" structure used by other document classes.</p>
+</div>
+
+
+</div><!-- end Z -->
+</div><!-- end Appendix Z -->
+<!-- ************************************************************ -->
+
+
+
+</div><!-- end main -->
+<div id="finish"></div>
+</div><!-- end master -->
+</body>
+</html>
+
diff --git a/macros/luatex/latex/novel/doc/novel.pdf b/macros/luatex/latex/novel/doc/novel.pdf
new file mode 100644
index 0000000000..05afb49738
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/novel.pdf
@@ -0,0 +1,860 @@
+%PDF-1.3
+%
+4 0 obj
+<</Type /Metadata /Subtype /XML
+/Length 6630 >>
+stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+ <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/">
+ <xmp:ModifyDate>2018-04-25T14:02:52-07:00</xmp:ModifyDate>
+ <xmp:CreateDate>2018-04-25T14:02:52-07:00</xmp:CreateDate>
+ <xmp:CreatorTool>LuaLaTeX with novel and microtype</xmp:CreatorTool>
+ <xmp:MetadataDate>2018-04-25T14:02:52-07:00</xmp:MetadataDate>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">Novel Document Class</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:DocumentID>uuid:A12D98E081B6A0EC2CBA2D468474F922</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:A99D5F97282F8D328BFD492B6475A679</xmpMM:InstanceID>
+ <xmpMM:RenditionClass>default</xmpMM:RenditionClass>
+ <xmpMM:VersionID>1</xmpMM:VersionID>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>LuaLaTeX with novel-pdfx and hyperref</pdf:Producer>
+ <pdf:Trapped>False</pdf:Trapped>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
+ <pdfx:GTS_PDFXVersion>PDF/X-1a:2001</pdfx:GTS_PDFXVersion>
+ <pdfx:GTS_PDFXConformance>PDF/X-1a:2001</pdfx:GTS_PDFXConformance>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/">
+ <pdfxid:GTS_PDFXVersion>PDF/X-1a:2001</pdfxid:GTS_PDFXVersion>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
+ xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
+ xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">
+ <pdfaExtension:schemas>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/1.3/</pdfaSchema:namespaceURI>
+ <pdfaSchema:prefix>pdf</pdfaSchema:prefix>
+ <pdfaSchema:schema>Adobe PDF Schema</pdfaSchema:schema>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>A name object indicating whether the document has been modified to include trapping information</pdfaProperty:description>
+ <pdfaProperty:name>Trapped</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:namespaceURI>http://ns.adobe.com/pdfx/1.3/</pdfaSchema:namespaceURI>
+ <pdfaSchema:prefix>pdfx</pdfaSchema:prefix>
+ <pdfaSchema:schema>PDF/X ID Schema</pdfaSchema:schema>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>
+ <pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>Conformance level of PDF/X standard</pdfaProperty:description>
+ <pdfaProperty:name>GTS_PDFXConformance</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>
+ <pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>
+ <pdfaSchema:schema>XMP Media Management Schema</pdfaSchema:schema>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>UUID based identifier for specific incarnation of a document</pdfaProperty:description>
+ <pdfaProperty:name>InstanceID</pdfaProperty:name>
+ <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaSchema:namespaceURI>http://www.npes.org/pdfx/ns/id/</pdfaSchema:namespaceURI>
+ <pdfaSchema:prefix>pdfxid</pdfaSchema:prefix>
+ <pdfaSchema:schema>PDF/X ID Schema</pdfaSchema:schema>
+ <pdfaSchema:property>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <pdfaProperty:category>internal</pdfaProperty:category>
+ <pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>
+ <pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>
+ <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+ </rdf:li>
+ </rdf:Seq>
+ </pdfaSchema:property>
+ </rdf:li>
+ </rdf:Bag>
+ </pdfaExtension:schemas>
+ </rdf:Description>
+ </rdf:RDF>
+ </x:xmpmeta>
+ <?xpacket end="w"?>
+endstream
+endobj
+7 0 obj
+<</Length 8268 >>
+stream
+0 g 0 G
+0 g 0 G
+0 g 0 G
+BT
+/F57 18.17191 Tf 1 0 0 1 178.388 541.455 Tm [<002F0030>-37<00370026002D>]TJ
+/F57 13.62884 Tf 1 0 0 1 105.124 508.167 Tm [<0022>-250<00250050>-7<00440056004E0046004F0055>-250<0024004D004200540054>-250<004700500053>-250<005500490046>-250<0033004600540055>-250<00500047>-250<00360054>]TJ
+ET
+1 0 0 1 161.57 481.537 cm
+q
+4 0 0 4 0 0 cm
+1 0 0 1 -161.57 -481.537 cm
+BT
+/F59 11.3574 Tf 1 0 0 1 161.57 481.537 Tm [<0176>]TJ
+ET
+1 0 0 1 161.57 481.537 cm
+Q
+1 0 0 1 -161.57 -481.537 cm
+BT
+/F60 11.3574 Tf 1 0 0 1 53.432 446.286 Tm [<0038004900460053>5<0046>-250<004A0054>-249<005500490046>-250<00450050>-7<00440056004E0046004F005500420055004A0050004F00200020>]TJ
+/F57 11.3574 Tf 1.017 0 0 1 203.432 446.286 Tm [<002A0055>-245<004A0054>-246<004A004F>-246<0029>-36<0035002E002D>-246<004700500053004E00420055000D>-246<0042004F0045>-246<00440042004F004F00500055>]TJ
+1 0 0 1 54 431.492 Tm [<0043>-10<0046>-249<0053>7<004600550053004A0046>7<0057>8<0046>-6<0045>-249<0057004A0042>]TJ
+/F61 11.3574 Tf 1 0 0 1 128.745 431.492 Tm [<00550046>7<005900450050>-7<0044>]TJ
+/F57 11.3574 Tf 1 0 0 1 157.229 431.492 Tm [<000F>-333<002A0047>-249<005A>7<00500056>-248<004900420057>7<0046>-248<00550049004A0054>-249<005100420044004C004200480046>-249<004A004F005400550042004D004D0046>-7<0045000D>-249<004D0050>-7<0050004C>-249<004700500053>]TJ
+0.996 0 0 1 53.659 416.697 Tm [<000900550046>7<00590053>8<0050>-7<00500055000A001000450050>-7<00440010004D00560042004D004200550046>7<00590010004F0050>7<0057>8<0046004D0010004F0050>7<0057>8<0046004D000E00450050>-6<00440056004E0046004F005500420055004A0050004F000F00490055004E004D000F>-341<002A0047>-253<005A>7<00500056>-252<00420053>7<0046>]TJ
+0.98 0 0 1 54 401.903 Tm [<0050004F004D004A004F0046>10<000D>-248<00480050>-247<00550050>-247<005500490046>-247<00240035>49<0022002F>-247<0051004200480046>-247<00420055>-247<00490A1D00510054001B00100010004400550042004F000F00500053004800100051004C00480010004F0050>6<0057>9<0046004D>-247<0042004F0045>-247<0044004D004A0044004C>]TJ
+1 0 0 1 53.148 387.108 Tm [<06E0003100420044004C004200480046>-250<00250050>-7<00440056004E0046004F005500420055004A0050004F>-250<00090029>-37<0035002E002D000A000F>122<06E1>]TJ
+/F60 11.3574 Tf 1 0 0 1 54 357.519 Tm [<0025>-5<0046005400440053004A00510055004A0050004F001B>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 117.818 357.519 Tm [<09AB0046>]TJ
+/F61 11.3574 Tf 1.02 0 0 1 138.758 357.519 Tm [<004F0050>6<0057>8<0046004D>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 167.321 357.519 Tm [<00450050>-6<00440056004E0046004F0055>-313<0044004D004200540054>-313<004A0054>-312<004700500053>-313<00580053004A0055004600530054>-312<00500047>-313<00500053004A0048004A004F0042004D>]TJ
+0.98 0 0 1 54 342.725 Tm [<098B00440055004A0050004F000D>-245<00550050>-244<0043>-10<0046>-243<00510053004A004F00550046>-7<0045>-244<00550050>-243<005100420051>-7<00460053>59<000D>-245<0058004A00550049>-243<00420A1D0046004F0055004A0050004F>-243<00550050>-244<005500490046>-243<0053>7<0046>-6<00520056004A0053>7<0046004E0046004F00550054>-242<00500047>]TJ
+0.995 0 0 1 54 327.93 Tm [<005500490046>-249<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-250<004E00420053004C00460055000F>-335<002F0050004F000E00440050004D00500053>-249<004A004F005500460053004A005000530054>-250<0042004F0045>-250<00440050004D00500053>-250<00440050>6<0057>8<004600530054>]TJ
+1.02 0 0 1 54 313.136 Tm [<00420053>7<0046>-293<0054005600510051>-7<0050005300550046>-7<0045000F>-474<002A004E0042004800460054>-295<00420053>7<0046>-293<0054005600510051>-7<0050005300550046>-7<0045000D>-306<004300560055>-295<0050004F004D005A>-294<00420054>-294<005500490046>6<005A>-294<004E004A004800490055>-294<0043>-10<0046>]TJ
+1 0 0 1 54 298.341 Tm [<005600540046>-7<0045>-250<004A004F>-250<098B00440055004A0050004F000D>-250<004F00500055>-250<0051004A0044005500560053>8<0046>-250<0043>-10<0050>-7<0050004C0054000F>]TJ
+0.98 0 0 1 71.036 283.547 Tm [<002A0047>-226<005A>8<005000560053>-226<0058>8<00500053004C>-226<004A0054>-226<0042004F>-226<0026000E0043>-10<0050>-7<0050004C000D>-232<00500053>-226<0056005400460054>-226<004A004F005500460053004A00500053>-226<00440050004D00500053>-226<00500055004900460053>-227<005500490042004F>-226<004800530042005A>60<000D>]TJ
+1 0 0 1 54 268.752 Tm [<00500053>-250<004A0054>-250<00420044004200450046004E004A0044000D>-250<005500490046004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004F00500055>-250<004700500053>-250<005A>8<00500056000F>]TJ
+1 0 0 1 71.036 253.958 Tm [<002300560055>-250<004A0047>-250<005A>7<00500056>-250<00420053>7<0046>-249<00580053004A0055004A004F0048>-250<0042>-251<0045004600550046>-7<00440055004A0057>7<0046>-249<004F0050>6<0057>8<0046004D000D>-250<00500053>-250<00540044004A0046004F00440046>-250<098B00440055004A0050004F000D>-251<00500053>-250<0042>]TJ
+1 0 0 1 54 239.163 Tm [<00440050004D004D0046>-7<00440055004A0050004F>-250<00500047>-250<00540049005000530055>-250<0054005500500053004A00460054000D>-250<005500490046004F>-250<0053>8<004600420045>-250<0050004F0002>]TJ
+/F57 13.62884 Tf 1 0 0 1 54 213.663 Tm [<0012000F>-333<002700460042005500560053>7<00460054>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 54 194.779 Tm [<09AB0053>7<0050005600480049005000560055000D>-334<004A0055>-318<004A0054>-317<0042005400540056004E0046>-7<0045>-318<0055004900420055>-317<005500490046>-318<0051005600530051>-6<005000540046>-318<00500047>-317<005A>7<005000560053>-317<00580053004A0055004A004F0048>-318<004A0054>-317<0042>]TJ
+1 0 0 1 54 179.985 Tm [<00440050004E004E00460053>8<0044004A0042004D004D005A>-250<00510053004A004F00550046>-7<0045>-250<0043>-10<0050>-7<0050004C>-250<00500047>-250<098B00440055004A0050004F000F>]TJ
+0.98 0 0 1 71.036 165.19 Tm [<0022>-244<004F0046>6<0058>]TJ
+/F61 11.3574 Tf 0.98 0 0 1 103.452 165.19 Tm [<004F0050>7<0057>8<0046004D>]TJ
+/F57 11.3574 Tf 0.98 0 0 1 130.156 165.19 Tm [<004A0054>-244<00510053>7<0046000E00440050004F098B004800560053>9<0046>-7<0045>-244<00550050>-244<00510053>7<0050>-6<0045005600440046>-244<0042>-245<005400550042004F004500420053>8<0045>-244<00550053004200450046>-244<0043>-10<0050>-7<0050004C>]TJ
+1.003 0 0 1 54 150.396 Tm [<0054004A005B0046>-249<00500047>-249<0A25000F0A25004A004F>-249<0038>-249<0059>-249<0A28000F0A25004A004F>-249<0029000D>-250<0058004A00550049>-249<004D0042005A>7<005000560055>-248<004E004200530048004A004F0054>-249<0055004900420055>-249<00420053>7<0046>-248<004D004A004C0046004D005A>-250<00550050>-249<0043>-10<0046>]TJ
+0.998 0 0 1 54 135.601 Tm [<00420044004400460051005500420043004D0046>-249<00550050>-249<005500490046>-250<004E005000540055>-249<0058004A00450046004D005A000E005600540046>-7<0045>-249<00510053004A004F0055>-250<005400460053>-15<0057004A004400460054000F>-333<09AB0046>-250<098B004D0046>-249<005A>7<00500056>-248<00420053>7<0046>]TJ
+0.98 0 0 1 54 120.807 Tm [<004F0050>7<0058>-203<0053>8<004600420045004A004F0048>-202<004A0054>-204<004A004F>-203<00550049004A0054>-203<004700500053004E00420055000F>-323<002300560055>-203<004A0047>-203<0055004900420055>-203<004A0054>-203<004F00500055>-203<005500490046>-203<0054004A005B0046>-203<00500053>-203<004D0042005A>7<005000560055>-202<005A>7<00500056>]TJ
+0.986 0 0 1 53.58 106.012 Tm [<00580042004F0055000D>-252<005500490046004F>-253<0055004900460053>8<0046>-252<00420053>7<0046>-251<00440050004E004E0042004F00450054>-252<0055004900420055>-253<00440050004F098B004800560053>7<0046>-251<004B005600540055>-252<00420043>-11<005000560055>-252<0042004F005A00550049004A004F0048000D>]TJ
+1.02 0 0 1 54 91.218 Tm [<00560054004A004F0048>-243<005400550042004F004500420053>7<0045>-243<005500460053004E004A004F0050004D00500048005A>-244<0042004F0045>-243<0056004F004500460053005400550042004F004500420043004D0046>-244<0051005600530051>-7<005000540046>9<000F>-325<0023004600540055>-244<00500047>]TJ
+0.984 0 0 1 54 76.423 Tm [<0042004D004D000D>-253<005500490046>-253<0029>-38<0035002E002D>-253<00450050>-7<00440056004E0046004F005500420055004A0050004F>-254<00440050004E00460054>-253<0058004A00550049>-253<004A004E0042004800460054>-254<0042004F0045>-253<0046>6<00590042004E0051004D00460054000D>-252<00540050>]TJ
+1 0 0 1 54 61.629 Tm [<005A>8<00500056>-250<004C004F0050>7<0058>-250<0058004900420055>-250<005A>8<00500056>-250<00420053>8<0046>-250<00450050004A004F0048000F>]TJ
+0 g 0 G
+/F57 10.44878 Tf 1 0 0 1 204.571 39.437 Tm [<0012>]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+6 0 obj
+<</Type/Page/Contents 7 0 R/Resources 5 0 R/MediaBox[0 0 396 612]/CropBox[0 0 396 612]
+
+/TrimBox[0 0 396 612]/Parent 12 0 R>>
+endobj
+5 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font<</F57 8 0 R/F59 9 0 R/F60 10 0 R/F61 11 0 R>>/ProcSet[/PDF/Text]>>
+endobj
+15 0 obj
+<</Length 8727 >>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F57 11.3574 Tf 1.02 0 0 1 53.036 564.643 Tm [<0022004D004E005000540055>-285<0046>6<0057>8<00460053>-14<005A00550049004A004F0048>-286<004A0054>-286<00510053>7<0046000E00440050004F098B004800560053>8<0046>-6<0045>-286<00550050>-285<06E0004B005600540055>-286<0058>7<00500053004C000D>120<06E1>-295<0046>6<0057>7<0046004F>-284<005500490046>]TJ
+0.997 0 0 1 36 549.848 Tm [<004400490050004A00440046>-250<00500047>-251<00470050004F00550054000F>-335<09AB0046>-251<00440049005000540046004F>-250<00440050004E0051004A004D00460053>-251<004A0054>-251<002D00560042002D00420035>62<00460039000D>-250<0042004F0045>-251<00300051>-7<0046004F>-251<0035>49<005A0051>-6<0046>]TJ
+1.02 0 0 1 36 535.054 Tm [<00470050004F00550054>-254<00420053>7<0046>-253<004D0050004200450046>-7<0045>-254<00560054004A004F0048>]TJ
+/F61 11.3574 Tf 1.02 0 0 1 143.404 535.054 Tm [<00470050004F005500540051>-6<0046>-7<0044>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 184.399 535.054 Tm [<00550046>-6<00440049004F0050004D00500048005A>57<000F>-353<002A0047>-254<005A>7<00500056>-254<00510053>7<0046004700460053>-253<00550050>-254<005600540046>-254<0042>]TJ
+1 0 0 1 36 520.259 Tm [<00510053>8<00500047004600540054004A0050004F0042004D>-250<00470050004F0055000D>-250<004A0055>-250<0058004A004D004D>-250<0043>-10<0046>-250<004600420054005A>-250<00550050>-250<004D005000420045>-250<0042004F0045>-250<005600540046>-250<004A004F>-250<005600550047000E0A28000F>]TJ
+1.02 0 0 1 53.036 505.465 Tm [<002E0042004F005A>-339<005400550042004F004500420053>7<0045>-338<002D00420035>60<00460039>-338<00440050004E004E0042004F00450054>-339<00420053>7<0046>-339<0045004A005400420043004D0046>-7<0045000F>-609<09AB004A0054>-339<0058004A004D004D>-340<0043>-9<0046>]TJ
+0.98 0 0 1 36 490.67 Tm [<00540056005300510053004A0054004A004F0048>-227<00420055>-228<098B005300540055000F>-331<002300560055>]TJ
+/F61 11.3574 Tf 0.98 0 0 1 138.827 490.67 Tm [<004F0050>7<0057>8<0046004D>]TJ
+/F57 11.3574 Tf 0.98 0 0 1 165.349 490.67 Tm [<004A0054>-227<00470050>-8<0044005600540046>-7<0045>-227<0050004F>-228<0050004F0046>-228<00550049004A004F0048>-228<0050004F004D005A>59<000F>-330<0022004F005A00550049004A004F0048>]TJ
+0.986 0 0 1 36 475.875 Tm [<0055004900420055>-254<004E004A004800490055>-254<004A004F005500460053004700460053>7<0046>-254<0058004A00550049>-254<0055004900420055>-254<0051005600530051>-7<005000540046>-255<004E0042005A>-254<004900420057>7<0046>-254<0043>-10<0046>-7<0046004F>-254<00550050005400540046>-7<0045>-255<00420054004A00450046>10<000F>]TJ
+0.98 0 0 1 36 461.081 Tm [<00340050>10<000D>-231<0043>-10<0046>-226<005400560053>7<0046>-224<0055004900420055>-226<005A>7<00500056>-225<0053>8<004600420045>-225<005500490046>-226<00450050>-7<00440056004E0046004F005500420055004A0050004F0002>-331<002A0047>-225<005A>7<00500056>-225<00550042004C0046>-226<0042004F>-225<0046>6<0059004A00540055004A004F0048>]TJ
+0.98 0 0 1 36 446.286 Tm [<002D00420035>64<00460039>-173<00450050>-8<00440056004E0046004F0055>-174<0042004F0045>-174<004B005600540055>-174<004400490042004F00480046>-175<005500490046>-174<0044004D004200540054>-174<00550050>]TJ
+/F61 11.3574 Tf 0.98 0 0 1 237.08 446.286 Tm [<004F0050>7<0057>8<0046004D000D>]TJ
+/F57 11.3574 Tf 0.98 0 0 1 264.884 446.286 Tm [<004A0055>-174<004A0054>-174<0057>7<00460053>-14<005A>-175<0056004F004D004A004C0046004D005A>]TJ
+1 0 0 1 36 431.492 Tm [<00550050>-250<0058>8<00500053004C>-250<00420054>-250<0046>7<00590051>-7<0046>-7<004400550046>-7<0045000F>]TJ
+1.02 0 0 1 53.036 416.697 Tm [<002E0042004F005A>-273<004F0046>6<0058>-274<00440050004E004E0042004F00450054>-273<00420053>7<0046>-273<00510053>6<0050>7<0057004A00450046>-6<0045000F>-413<09AB0046>6<005A>-273<00420053>7<0046>-273<00470050>-7<0044005600540046>-7<0045>-274<0050004F>-273<005500490046>]TJ
+0.98 0 0 1 36 401.903 Tm [<004F0046>-7<0046>-7<00450054>-239<00500047>-240<00510053004A004F0055>-240<098B00440055004A0050004F>-239<00580053004A0055004600530054000D>-243<0051>-7<00460053004A0050>-7<0045000F>-335<0022004F0045000D>]TJ
+/F61 11.3574 Tf 0.98 0 0 1 231.129 401.903 Tm [<004F0050>7<0057>8<0046004D>]TJ
+/F57 11.3574 Tf 0.98 0 0 1 257.782 401.903 Tm [<004900420054>-239<00430056004A004D0055000E004A004F>-240<00310025002700100039>]TJ
+0.98 0 0 1 36 387.108 Tm [<00550046>-7<00440049004F0050004D00500048005A>-185<0055004900420055>-186<0046>6<005900440046>-6<0046>-7<00450054>-186<005500490046>-185<00440042005100420043004A004D004A0055004A00460054>-186<0044005600530053>7<0046004F0055004D005A>-184<004200570042004A004D00420043004D0046>-186<0057004A0042>-186<00500055004900460053>]TJ
+1 0 0 1 36 372.314 Tm [<002D00420035>63<00460039>-250<005100420044004C0042004800460054000F>]TJ
+/F57 13.62884 Tf 1 0 0 1 36 346.813 Tm [<0013000F>-333<00240050004E0051004D004600550046>-250<00250050>-7<00440056004E0046004F005500420055004A0050004F>]TJ
+/F57 11.3574 Tf 1.012 0 0 1 35.455 327.93 Tm [<0038004900420055>-246<005A>7<00500056>-245<00420053>7<0046>-246<0053>7<004600420045004A004F0048>-245<004F0050>6<0058>58<000D>-246<004A0054>-246<0050004F004D005A>-246<0042004F>-247<004A004F00550053>7<0050>-6<0045005600440055004A0050004F000F>-329<09AB0046>-246<00440050004E0051004D004600550046>]TJ
+0.98 0 0 1 36 313.136 Tm [<00450050>-7<00440056004E0046004F005500420055004A0050004F>-223<004A0054>-224<004A004F>-223<0029>-38<0035002E002D>-224<004700500053004E00420055000D>-230<0045004A0053>8<0046>-7<00440055004D005A>-223<00580053004A0A1D0046004F>-224<004A004F>-223<0029>-38<0035002E002D>-224<005300420055004900460053>]TJ
+0.98 0 0 1 36 298.341 Tm [<005500490042004F>-183<0046>6<0059005500530042004400550046>-6<0045>-184<00470053>7<0050004E>-183<00440050>-7<00450046>10<000F>-316<09AB00460053>7<0046>-183<00420053>8<0046>-183<004F0056004E00460053>7<005000560054>-183<0046>7<00590042004E0051004D00460054>-183<0042004F0045>-184<004A004E0042004800460054000D>]TJ
+1 0 0 1 36 283.547 Tm [<00550050>-7<0050>-250<0045004600550042004A004D0046>-7<0045>-250<00550050>-250<0043>-10<0046>-250<00510053>8<004600540046004F00550046>-7<0045>-250<00420054>-250<003100250027>24<000F>]TJ
+/F57 13.62884 Tf 1 0 0 1 36 258.046 Tm [<0014000F>-333<002D004A00440046004F00540046>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 36 239.163 Tm [<09AB0046>-331<002D00420035>61<00460039>-330<00440050>-7<00450046>9<000D>-352<0042004F0045>-331<0042004400440050004E00510042004F005A004A004F0048>-331<00450050>-7<00440056004E0046004F005500420055004A0050004F000D>-353<004A0054>-331<0053>7<0046004D0046004200540046>-6<0045>]TJ
+1 0 0 1 36 224.369 Tm [<0056004F004500460053>-250<005500490046>-250<002D0042005500460039>-250<00310053>8<0050004B0046>-7<00440055>-250<003100560043004D004A0044>-250<002D004A00440046004F00540046>10<000D>-250<0057>8<004600530054004A0050004F>-250<0A21000F0A230044>-250<00500053>-250<004D0042005500460053>59<000F>]TJ
+0.983 0 0 1 53.036 209.574 Tm [<09AB0046>-255<00440050004E00510042004F004A0050004F>-255<00470050004F00550009>11<0054000A>-254<004A00540009>11<00420053>8<0046000A>-254<004D004A00440046004F00540046>-7<0045>-255<0056004F004500460053>-256<005500490046>-255<0034002A002D>-255<00300051>-7<0046004F>-255<00270050004F0055>]TJ
+1 0 0 1 36 194.779 Tm [<002D004A00440046004F00540046>10<000D>-250<0057>8<004600530054004A0050004F>-250<0A21000F0A21000F>]TJ
+/F57 13.62884 Tf 1 0 0 1 36 169.279 Tm [<0015000F>-333<0037>79<004600530054004A0050004F>]TJ
+/F57 11.3574 Tf 0.994 0 0 1 36 150.396 Tm [<0A21000F0A250A22000D>-250<0A220A200A210A28000E0A200A24000E0A220A26001B>-335<0026004F00490042004F00440046>-7<0045>-250<0045004600550046>-7<00440055004A0050004F>-250<0042004F0045>-251<005800420053004F004A004F0048>-250<00560054004A004F0048>-250<002D00560042>-250<00440050>-7<00450046>9<000F>]TJ
+1 0 0 1 36 135.601 Tm [<0A21000F0A250A20000F0A25000D>-250<0A220A200A210A28000E0A200A24000E0A210A21001B>-333<002E004A004F00500053>-250<004300560048>-250<098B005900460054>-250<0009>16<00450050>-6<00440054>-250<0042004F0045>-250<00440050>-7<00450046>-250<0045004A0054004200480053>7<0046>-6<0046>-7<0045000A000F>]TJ
+1 0 0 1 36 120.807 Tm [<0A21000F0A250A20000D>-250<0A220A200A210A28000E0A200A23000E0A220A28001B>-333<002A004E00510053>7<0050>7<0057>8<0046>-6<0045>-250<004A004E004200480046>-250<00490042004F0045004D004A004F0048>-250<00440050004E004E0042004F00450054000D>-250<00540042004F00450043>-10<0050>6<0059000F>]TJ
+1 0 0 1 36 106.012 Tm [<0A21000F0A240A26000F0A22000D>-250<0A220A200A210A28000E0A200A21000E0A210A24001B>-333<0034005500420043004D0046>-250<06E1>23<0050004D004506E1>-249<0057>7<004600530054004A0050004F000F>-332<003600540046>-250<004F0046>6<0058>8<00460053>-249<0A21000F0A250A20000F>]TJ
+1 0 0 1 36 91.218 Tm [<0A21000F0A21000D>-250<0A220A200A210A27000E0A200A23000E0A200A21001B>-333<004A004F004A0055004A0042004D>-250<005100560043004D004A0044>-250<0053>7<0046004D0046004200540046>10<000F>]TJ
+0 g 0 G
+/F57 10.44878 Tf 1 0 0 1 186.571 39.437 Tm [<0013>]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+14 0 obj
+<</Type/Page/Contents 15 0 R/Resources 13 0 R/MediaBox[0 0 396 612]/CropBox[0 0 396 612]
+
+/TrimBox[0 0 396 612]/Parent 12 0 R>>
+endobj
+13 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font<</F57 8 0 R/F61 11 0 R>>/ProcSet[/PDF/Text]>>
+endobj
+18 0 obj
+<</Length 8573 >>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F57 13.62884 Tf 1 0 0 1 54 553.937 Tm [<0016000F>-333<0027>58<0022>34<00320054>]TJ
+0 g 0 G
+0 g 0 G
+/F57 11.3574 Tf 1 0 0 1 54 535.054 Tm [<0032>29<000F>-607<00240042004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<0043>-10<0046>-250<005600540046>-7<0045>-250<004700500053>-250<0026000E0043>-10<0050>-7<0050004C00540020>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 520.259 Tm [<0022000F>]TJ
+0.997 0 0 1 71.036 520.259 Tm [<002F0050>10<000F>-334<0022004F0045000D>-250<0055004900420055>-250<004700460042005500560053>7<0046>-249<0058004A004D004D>-250<004F0046>6<0057>8<00460053>-249<0043>-10<0046>-250<0042004500450046>-7<0045000D>-251<00420054>-250<005500490046>-250<00550046>-7<00440049004F0050004D00500048005A>-250<004A0054>]TJ
+1 0 0 1 71.036 505.465 Tm [<004A004F004900460053>8<0046004F0055004D005A>-250<004A004F00440050004E005100420055004A0043004D0046>10<000F>-333<0022>-250<0058>7<00500053>8<0045>-249<00510053>7<0050>-6<004400460054005400500053>-250<004A0054>-250<005A>7<005000560053>-249<00470053004A0046004F0045000F>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 490.67 Tm [<0032>29<000F>-607<0038004900420055>-250<0049004200510051>-7<0046004F0046>-7<0045>-250<00550050>-250<098C0050004200550054>-250<0042004F0045>-250<004D004A0054005500540020>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 475.875 Tm [<0022000F>-585<003600540046>-250<005500490046>-250<004F0046>7<0058>-250<004A004E004200480046>-250<00440050004E004E0042004F00450054000D>-250<00500053>-250<00540042004F00450043>-10<0050>7<0059>-250<004E0050>-7<00450046>10<000F>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 461.081 Tm [<0032>29<000F>-607<002E005A>-250<0055004900460054004A0054>-250<004200450057004A005400500053>-250<00550050004D0045>-250<004E004606D8>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 446.286 Tm [<0022000F>]TJ
+1.02 0 0 1 71.036 446.286 Tm [<0034005500500051>-323<0053004A004800490055>-323<0055004900460053>6<0046>10<000F>-561<09AB004A0054>-323<00450050>-7<00440056004E0046004F0055>-323<0044004D004200540054>-324<004A0054>-323<0057>7<00460053>-14<005A>-324<0045004A098A00460053>7<0046004F0055>-322<00470053>7<0050004E>]TJ
+1 0 0 1 71.036 431.492 Tm [<0042004F005A00550049004A004F0048>-250<005600540046>-7<0045>-250<004700500053>-250<005500490046005400460054>-250<0042004F0045>-250<00500055004900460053>-250<00420044004200450046004E004A0044>-250<005100560043004D004A004400420055004A0050004F0054000F>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 416.697 Tm [<0032>29<000F>-607<002A0047>-250<002A>-250<005600540046>-250<0035004A004C003B>-250<004700500053>-250<00270046>7<005A004F004E0042004F>-250<0045004A0042004800530042004E0054000D>-250<005500490046004F06D8>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 401.903 Tm [<0022000F>-585<00280050>-250<004200580042005A>59<000F>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 387.108 Tm [<0032>29<000F>-607<002900420054>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<0046>7<0057>8<00460053>-250<0043>-10<0046>-7<0046004F>-250<005600540046>-7<0045>-250<004700500053>-250<0042004F>-250<00420044005500560042004D>-250<004F0050>7<0057>8<0046004D0020>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 372.314 Tm [<0022000F>]TJ
+1.02 0 0 1 71.036 372.314 Tm [<003A>69<00460054>-290<004A004F00450046>-7<0046>-7<00450002>-465<002A004F>-291<0022>32<00560048005600540055>-290<0A220A200A210A27>-292<005500490046>-291<004200560055004900500053>-291<005100560043004D004A005400490046>-7<0045>-291<0042>-291<00440050004E0051004D004600550046>]TJ
+0.98 0 0 1 71.036 357.519 Tm [<004F0050>7<0057>8<0046004D000D>-253<004A004F0044004D00560045004A004F0048>-253<004A00550054>-253<00440050>6<0057>8<00460053>60<000D>-252<00560054004A004F0048>-253<00550049004A0054>-254<00450050>-7<00440056004E0046004F0055>-253<0044004D004200540054000F>-339<0022004D004E005000540055>-254<0042004D004D>]TJ
+0.999 0 0 1 71.036 342.725 Tm [<00500047>-250<005500490046>-250<00540046005500560051>-251<005600540046>-7<0045>-250<00450046004700420056004D00550054000F>-335<09AB0046>-250<098B004D00460054>-251<000900550046>7<005900550043004D0050>-7<0044004C>-250<0042004F0045>-250<00440050>6<0057>8<00460053>17<000A>-250<0058>7<00460053>8<0046>]TJ
+0.98 0 0 1 71.036 327.93 Tm [<005400560043004E004A0A1D0046>-7<0045>-254<00550050>-253<0042>-254<004E0042004B00500053>-254<0022004E00460053004A00440042004F>-254<0031>24<000F>10<0030>30<000F0025>29<000F>-253<005400460053>-15<0057004A00440046>-254<004A004F>]TJ
+/F57 11.3574 Tf 0.98 0 0 1 293.018 327.93 Tm [<00310025002700100039>24<000E00120042001B0013001100110012>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 71.036 313.136 Tm [<004700500053004E00420055000D>-261<005500490046004F>-258<0046004D0046>-7<004400550053>7<0050004F004A00440042004D004D005A>-258<0053>7<0046>7<0057004A0046>7<0058>8<0046>-6<0045>-258<0042004F0045>-259<0042004400440046005100550046>-7<0045>]TJ
+/F61 11.3574 Tf 1.02 0 0 1 310.307 313.136 Tm [<0050004F>-258<005500490046>-258<0848005300540055>]TJ
+1.02 0 0 1 71.036 298.341 Tm [<004208680046004E00510055000F>]TJ
+/F57 11.3574 Tf 1.02 0 0 1 115.343 298.341 Tm [<0022>-313<00510053004A004F00550046>-7<0045>-314<004400500051>6<005A>-314<005800420054>-314<004A004F>-314<005500490046>-314<00420056005500490050005306DD0054>-314<00490042004F00450054>-314<0058004A00550049004A004F>-314<0042>]TJ
+1 0 0 1 70.616 283.547 Tm [<0058>8<0046>-7<0046004C000F>-333<002B005600540055>-250<004D004A004C0046>-250<0055004900420055000F>-333<0035>62<0050>-6<0050004C>-250<004E0050004F005500490054>-250<00550050>-250<00580053004A00550046>9<000D>-249<00500047>-250<004400500056005300540046>9<000F>]TJ
+1 0 0 1 88.072 268.752 Tm [<00360051>-7<0045004200550046001B>-333<0022004F00500055004900460053>-250<004200560055004900500053>-250<0053>7<00460051>-6<0050005300550054>-250<0054005600440044004600540054000F>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 253.958 Tm [<0032>29<000F>]TJ
+1.009 0 0 1 71.036 253.958 Tm [<003800490046004F>-247<002A>-247<0058>7<0050004C0046>-247<00560051>-247<00550049004A0054>-248<004E00500053004F004A004F0048000D>-247<004E005A>-247<0049004600420045>-248<00470046004D0055>-247<004D004A004C0046>-248<0042>-247<00550050>-7<00450045004D00460053>-247<004900420045>]TJ
+1.011 0 0 1 71.036 239.163 Tm [<0043>-9<0046>-7<0046004F>-248<0051>-6<00500056004F0045004A004F0048>-248<004A0055>-247<004A004F>-247<0042>-247<00540042004F00450043>-10<0050>6<0059000F>-329<002A>-247<0053>7<0050004D004D0046>-6<0045>-247<0050>6<0057>8<00460053>-246<0042004F0045>-247<004D0050>-7<0050004C0046>-7<0045>-247<00420055>-248<005500490046>]TJ
+0.98 0 0 1 71.036 224.369 Tm [<004E00560048>-234<0054004900500055>-234<0050004F>-235<005500490046>-234<00580042004D004D000F>-333<002A0055>-235<005800420054>-234<0042>-234<0058>7<0050004E0042004F>-234<004A004F>-234<004900460053>-234<0047005000530055004A00460054>-235<0058004A00550049>-234<0042>-235<0045005300560048>]TJ
+1.02 0 0 1 71.036 209.574 Tm [<004900420043004A0055>-266<0055004900420055>-265<005800420054>-266<004300420045000D>-272<0042004F0045>-266<0042004F>-266<00420A1D004A0055005600450046>-266<0055004900420055>-265<005800420054>-266<0046>6<0057>7<0046004F>-265<0058>7<0050005300540046>10<000F>-388<003400490046>]TJ
+0.98 0 0 1 71.036 194.779 Tm [<004900420045>-232<00540046>-7<0046004F>-233<0043>-10<00460A1D00460053>-233<00450042005A0054000D>-237<004D004A004C0046>-232<005500490046>-233<0055004A004E0046>-232<002A>-233<00550050>-7<0050004C>-232<004900460053>-233<00550050>-232<005500490046>-233<0046004A0048004900550049>-233<00480053004200450046>]TJ
+1.02 0 0 1 71.036 179.985 Tm [<00540050>-6<0044004C>-249<004900500051>9<000F>-337<09AB0046004F>-249<002A>-249<004800500055>-248<00560051>9<000D>-249<00580042005400490046>-7<0045000D>-250<0042004F0045>-248<004500530042004800480046>-7<0045>-249<004E005A>-249<004D0050004F0046004D005A>-248<004300560A1D>]TJ
+0.98 0 0 1 71.036 165.19 Tm [<00450050>7<0058004F>-240<00550050>-242<005500490046>-241<0050004F0046000E004E0042004F>-241<0045004600550046>-7<00440055004A0057>7<0046>-240<004200480046004F0044005A>-241<0055004900420055>-241<002A>-241<004B0050004C004A004F0048004D005A>-241<00440042004D004D0046>-7<0045>-241<004E005A>]TJ
+1 0 0 1 71.036 150.396 Tm [<004E00460042004F0054>-250<00500047>-250<004D004A0057004A004F0048000F>-333<003A>70<00500056>-249<004C004F0050>6<0058>-249<0058004900420055>-250<002A>-250<004E00460042004F0020>]TJ
+0 g 0 G
+0 g 0 G
+1 0 0 1 54 135.601 Tm [<0022000F>-585<003A>71<004600420049000F>-333<00340055004A0044004C>-250<0058004A00550049>-250<004E0046>9<000D>-249<004C004A0045000F>-333<09AB004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004700500053>-250<005A>7<00500056000F>]TJ
+0 g 0 G
+/F57 10.44878 Tf 1 0 0 1 204.571 39.437 Tm [<0014>]TJ
+0 g 0 G
+ET
+
+endstream
+endobj
+17 0 obj
+<</Type/Page/Contents 18 0 R/Resources 16 0 R/MediaBox[0 0 396 612]/CropBox[0 0 396 612]
+
+/TrimBox[0 0 396 612]/Parent 12 0 R>>
+endobj
+16 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font<</F57 8 0 R/F61 11 0 R>>/ProcSet[/PDF/Text]>>
+endobj
+21 0 obj
+<</Length 32 >>
+stream
+0 g 0 G
+0 g 0 G
+0 g 0 G
+0 g 0 G
+
+endstream
+endobj
+20 0 obj
+<</Type/Page/Contents 21 0 R/Resources 19 0 R/MediaBox[0 0 396 612]/CropBox[0 0 396 612]
+
+/TrimBox[0 0 396 612]/Parent 12 0 R>>
+endobj
+19 0 obj
+<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet[/PDF]>>
+endobj
+1 0 obj
+<<>>
+endobj
+2 0 obj
+<<>>
+endobj
+3 0 obj
+<< /pgfprgb [/Pattern /DeviceRGB] >>
+endobj
+22 0 obj
+[13[219]15[219]66[486]68[389 489 401 314]73[519]77[266 783 518 447 489]83[357 353 307]87[472]89[475]2120[564]2152[606]]
+endobj
+23 0 obj
+<</Length 270 >>
+stream
+
+endstream
+endobj
+24 0 obj
+<</Subtype/CIDFontType0C/Length 5776 >>
+stream
+
+
+c # B / hN$>>^>> >\>8Pɸsyò
+
+
+
+
+
+L{33
+͋L͋f3Lo\bkbxx}ƈ}qmn|f
+fg`ffgAkg_e~Yo
+
+
+endstream
+endobj
+25 0 obj
+<</Type/FontDescriptor/FontName/EKAOGO+LibertinusSerif-Italic/Flags 4/FontBBox[-634 -312 6171 893]/Ascent 894/CapHeight 647/Descent -246/ItalicAngle -12/StemV 73/XHeight 429/FontFile3 24 0 R/CIDSet 23 0 R>>
+endobj
+26 0 obj
+<</Length 992 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-EKAOGO-LibertinusSerif-Italic-0)
+%%Title: (TeX-EKAOGO-LibertinusSerif-Italic-0 TeX EKAOGO-LibertinusSerif-Italic 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (EKAOGO-LibertinusSerif-Italic)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-EKAOGO-LibertinusSerif-Italic def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+20 beginbfchar
+<000D> <002C>
+<000F> <002E>
+<0042> <0061>
+<0044> <0063>
+<0045> <0064>
+<0046> <0065>
+<0047> <0066>
+<0049> <0068>
+<004D> <006C>
+<004E> <006D>
+<004F> <006E>
+<0050> <006F>
+<0051> <0070>
+<0053> <0072>
+<0054> <0073>
+<0055> <0074>
+<0057> <0076>
+<0059> <0078>
+<0848> <00660069>
+<0868> <00740074>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+
+endstream
+endobj
+11 0 obj
+<</Type/Font/Subtype/Type0/Encoding/Identity-H/BaseFont/EKAOGO+LibertinusSerif-Italic/DescendantFonts[27 0 R]/ToUnicode 26 0 R>>
+endobj
+27 0 obj
+<</Type/Font/Subtype/CIDFontType0/BaseFont/EKAOGO+LibertinusSerif-Italic/FontDescriptor 25 0 R/W 22 0 R/CIDSystemInfo<</Registry (Adobe)/Ordering (Identity)/Supplement 0>>>>
+endobj
+28 0 obj
+[27[219]32[430]37[718]56[998]66[476]68[435 527 461]73[550 286]78[801 563 519 523]83[401 401 331 550]]
+endobj
+29 0 obj
+<</Length 11 >>
+stream
+
+endstream
+endobj
+30 0 obj
+<</Subtype/CIDFontType0C/Length 3826 >>
+stream
+
+ [
+ - Ad$>>^>> >\>8PԲ,mrrllrrlmrrllrrl1
+q?vxĭ ZcSt}pK~~AvtEt ~1XeBtqrBmzL.!
+)'#:"ҋïVwJgiuwR\%ɮqj̎f~׀
+
+
+  
+endstream
+endobj
+31 0 obj
+<</Type/FontDescriptor/FontName/IZNYRK+LibertinusSerif-Semibold/Flags 4/FontBBox[-446 -328 6171 900]/Ascent 894/CapHeight 647/Descent -246/ItalicAngle 0/StemV 81/XHeight 463/FontFile3 30 0 R/CIDSet 29 0 R>>
+endobj
+32 0 obj
+<</Length 966 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-IZNYRK-LibertinusSerif-Semibold-0)
+%%Title: (TeX-IZNYRK-LibertinusSerif-Semibold-0 TeX IZNYRK-LibertinusSerif-Semibold 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (IZNYRK-LibertinusSerif-Semibold)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-IZNYRK-LibertinusSerif-Semibold def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+18 beginbfchar
+<001B> <003A>
+<0020> <003F>
+<0025> <0044>
+<0038> <0057>
+<0042> <0061>
+<0044> <0063>
+<0045> <0064>
+<0046> <0065>
+<0049> <0068>
+<004A> <0069>
+<004E> <006D>
+<004F> <006E>
+<0050> <006F>
+<0051> <0070>
+<0053> <0072>
+<0054> <0073>
+<0055> <0074>
+<0056> <0075>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+
+endstream
+endobj
+10 0 obj
+<</Type/Font/Subtype/Type0/Encoding/Identity-H/BaseFont/IZNYRK+LibertinusSerif-Semibold/DescendantFonts[33 0 R]/ToUnicode 32 0 R>>
+endobj
+33 0 obj
+<</Type/Font/Subtype/CIDFontType0/BaseFont/IZNYRK+LibertinusSerif-Semibold/FontDescriptor 31 0 R/W 28 0 R/CIDSystemInfo<</Registry (Adobe)/Ordering (Identity)/Supplement 0>>>>
+endobj
+34 0 obj
+[374[2000]]
+endobj
+35 0 obj
+<</Length 47 >>
+stream
+
+endstream
+endobj
+36 0 obj
+<</Subtype/CIDFontType0C/Length 471 >>
+stream
+
+
+ ڒ
+endstream
+endobj
+37 0 obj
+<</Type/FontDescriptor/FontName/ETXLAD+NovelDeco/Flags 4/FontBBox[-392 -234 1985 838]/Ascent 894/CapHeight 537/Descent -246/ItalicAngle 0/StemV 61/XHeight 429/FontFile3 36 0 R/CIDSet 35 0 R>>
+endobj
+38 0 obj
+<</Length 652 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-ETXLAD-NovelDeco-0)
+%%Title: (TeX-ETXLAD-NovelDeco-0 TeX ETXLAD-NovelDeco 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (ETXLAD-NovelDeco)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-ETXLAD-NovelDeco def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+1 beginbfchar
+<0176> <254C>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+
+endstream
+endobj
+9 0 obj
+<</Type/Font/Subtype/Type0/Encoding/Identity-H/BaseFont/ETXLAD+NovelDeco/DescendantFonts[39 0 R]/ToUnicode 38 0 R>>
+endobj
+39 0 obj
+<</Type/Font/Subtype/CIDFontType0/BaseFont/ETXLAD+NovelDeco/FontDescriptor 37 0 R/W 34 0 R/CIDSystemInfo<</Registry (Adobe)/Ordering (Identity)/Supplement 0>>>>
+endobj
+40 0 obj
+[2[288]9[298 298]13[220 338 220 323 465 465 465 465 465 465]27[236]32[435]34[695 588 646 701 557 485 685 730 297 322]45[528 839 699 702 541 702 587 485 597 661 652 951 660 575 604]66[457 493 428 506 447 310 500 538 271 272 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 424]1752[742]1757[268]1760[375 375]2442[582 560 540]2475[1048]2589[614]2592[465 465 465 465 465 465 465 465 465]]
+endobj
+41 0 obj
+<</Length 326 >>
+stream
+ g?
+endstream
+endobj
+42 0 obj
+<</Subtype/CIDFontType0C/Length 18212 >>
+stream
+
+) "
+
+
+
+!
+"
+#
+$
+%
+&
+'
+(
+ ^M(%F !"a"#%7%&Y'(")*+J,-./Y0%013746"727U7889:;=??F?@AhBBCQCD,$>>^>> >\>8Nǁw$&snxUEh3=1vǘ
+
+L
+kg
+Zff
+L
+
+ŀ
+ff
+Do*[y8=ߋ
+
+e^W[۹͋eN8z;v
+ff
+,
+p
+L͗
+
+Lf
+Lf
+Lf
+33
+Lf
+3uxA}~Do
+Lͅ
+f
+f
+
+Nluvo
+3ww
+e^W[۹͋eN8z;v
+Lͅ
+22'9&B檵wjj8pEv
+
+
+
+ ڒ
+endstream
+endobj
+43 0 obj
+<</Type/FontDescriptor/FontName/VEKDRV+LibertinusSerif/Flags 4/FontBBox[-1082 -256 6171 1125]/Ascent 894/CapHeight 647/Descent -246/ItalicAngle 0/StemV 73/XHeight 429/FontFile3 42 0 R/CIDSet 41 0 R>>
+endobj
+44 0 obj
+<</Length 1865 >>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-VEKDRV-LibertinusSerif-0)
+%%Title: (TeX-VEKDRV-LibertinusSerif-0 TeX VEKDRV-LibertinusSerif 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (VEKDRV-LibertinusSerif)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-VEKDRV-LibertinusSerif def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+84 beginbfchar
+<0002> <0021>
+<0009> <0028>
+<000A> <0029>
+<000D> <002C>
+<000E> <002D>
+<000F> <002E>
+<0010> <002F>
+<0011> <0030>
+<0012> <0031>
+<0013> <0032>
+<0014> <0033>
+<0015> <0034>
+<0016> <0035>
+<001B> <003A>
+<0020> <003F>
+<0022> <0041>
+<0023> <0042>
+<0024> <0043>
+<0025> <0044>
+<0026> <0045>
+<0027> <0046>
+<0028> <0047>
+<0029> <0048>
+<002A> <0049>
+<002B> <004A>
+<002D> <004C>
+<002E> <004D>
+<002F> <004E>
+<0030> <004F>
+<0031> <0050>
+<0032> <0051>
+<0033> <0052>
+<0034> <0053>
+<0035> <0054>
+<0036> <0055>
+<0037> <0056>
+<0038> <0057>
+<0039> <0058>
+<003A> <0059>
+<003B> <005A>
+<0042> <0061>
+<0043> <0062>
+<0044> <0063>
+<0045> <0064>
+<0046> <0065>
+<0047> <0066>
+<0048> <0067>
+<0049> <0068>
+<004A> <0069>
+<004B> <006A>
+<004C> <006B>
+<004D> <006C>
+<004E> <006D>
+<004F> <006E>
+<0050> <006F>
+<0051> <0070>
+<0052> <0071>
+<0053> <0072>
+<0054> <0073>
+<0055> <0074>
+<0056> <0075>
+<0057> <0076>
+<0058> <0077>
+<0059> <0078>
+<005A> <0079>
+<005B> <007A>
+<06D8> <2014>
+<06DD> <2019>
+<06E0> <201C>
+<06E1> <201D>
+<098A> <00660066>
+<098B> <00660069>
+<098C> <0066006C>
+<09AB> <00540068>
+<0A1D> <00740074>
+<0A20> <0030>
+<0A21> <0031>
+<0A22> <0032>
+<0A23> <0033>
+<0A24> <0034>
+<0A25> <0035>
+<0A26> <0036>
+<0A27> <0037>
+<0A28> <0038>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+
+endstream
+endobj
+8 0 obj
+<</Type/Font/Subtype/Type0/Encoding/Identity-H/BaseFont/VEKDRV+LibertinusSerif/DescendantFonts[45 0 R]/ToUnicode 44 0 R>>
+endobj
+45 0 obj
+<</Type/Font/Subtype/CIDFontType0/BaseFont/VEKDRV+LibertinusSerif/FontDescriptor 43 0 R/W 40 0 R/CIDSystemInfo<</Registry (Adobe)/Ordering (Identity)/Supplement 0>>>>
+endobj
+12 0 obj
+<</Type/Pages /Count 4/Kids[6 0 R 14 0 R 17 0 R 20 0 R]>>
+endobj
+46 0 obj
+<</Type/Catalog/Pages 12 0 R /Metadata 4 0 R/OutputIntents [ <</Type/OutputIntent/S/GTS_PDFX/OutputCondition (SWOP (Publication) printing in USA (Printing process definition: ANSI CGATS.6).)/OutputConditionIdentifier (CGATS TR 001)/Info (U.S. Web Coated (SWOP) v2)/RegistryName (http://www.color.org)>> ]>>
+endobj
+47 0 obj
+<<
+ /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20180425140252-07'00')/ModDate(D:20180425140252-07'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001)
+>>
+endobj
+xref
+0 48
+0000000000 65535 f
+0000033600 00000 n
+0000033620 00000 n
+0000033640 00000 n
+0000000015 00000 n
+0000015196 00000 n
+0000015055 00000 n
+0000006731 00000 n
+0000070426 00000 n
+0000048893 00000 n
+0000046955 00000 n
+0000041283 00000 n
+0000070746 00000 n
+0000024265 00000 n
+0000024121 00000 n
+0000015337 00000 n
+0000033160 00000 n
+0000033016 00000 n
+0000024386 00000 n
+0000033514 00000 n
+0000033370 00000 n
+0000033281 00000 n
+0000033693 00000 n
+0000033829 00000 n
+0000034156 00000 n
+0000040011 00000 n
+0000040234 00000 n
+0000041428 00000 n
+0000041618 00000 n
+0000041736 00000 n
+0000041804 00000 n
+0000045709 00000 n
+0000045932 00000 n
+0000047102 00000 n
+0000047294 00000 n
+0000047322 00000 n
+0000047426 00000 n
+0000047976 00000 n
+0000048184 00000 n
+0000049024 00000 n
+0000049201 00000 n
+0000049614 00000 n
+0000049997 00000 n
+0000068288 00000 n
+0000068504 00000 n
+0000070563 00000 n
+0000070820 00000 n
+0000071143 00000 n
+trailer
+<</Size 48/Root 46 0 R/Info 47 0 R/ID[<66C207AB9E1E764B97BB23DE55BCCEC2> <66C207AB9E1E764B97BB23DE55BCCEC2>]>>
+startxref
+71467
+%%EOF
diff --git a/macros/luatex/latex/novel/doc/novel.tex b/macros/luatex/latex/novel/doc/novel.tex
new file mode 100644
index 0000000000..98189b5d42
--- /dev/null
+++ b/macros/luatex/latex/novel/doc/novel.tex
@@ -0,0 +1,125 @@
+% !TeX TS-program = LuaLaTeX
+% !TeX encoding = UTF-8
+%
+% SOURCE CODE FOR FILE novel.pdf, the cover info for novel document class.
+% IF YOU COMPILE THIS DOCUMENT: Be sure that both this file and
+% novel.pdf (if present) have read/write permissions for any user.
+% Otherwise, compile may fail at the point where files are written.
+\documentclass{novel} % v. 1.52.
+% Almost all settings are defaults.
+\SetHeadFootStyle{3}
+\SetTitle{Novel Document Class} % only footer, with page number
+% The following PDF/X standard is typical for USA print-on-demand.
+% However, not every P.O.D. service needs PDF/X these days.
+\SetPDFX[CGATSTR001]{X-1a:2001}
+\begin{document}
+\begin{ChapterStart}[8]
+\vspace{\nbs} % \nbs is normal baselineskip
+\ChapterTitle{NOVEL}
+\vspace{\nbs}
+\ChapterSubtitle{A Document Class for the Rest of Us}
+\vspace{\nbs}
+\ChapterDeco[4]{\decoglyph{n9548}}
+\end{ChapterStart}
+
+\textbf{Where is the documentation??} It is in HTML format, and cannot be retrieved via \textit{texdoc}. If you have this package installed, look for (texroot)/doc/lualatex/novel/novel-documentation.html. If you are online, go to the CTAN page at https://ctan.org/pkg/novel and click ``Package Documentation (HTML).''
+
+\scenebreak
+
+\textbf{Description:} The \emph{novel} document class is for writers of original fiction, to be printed to paper, with attention to the requirements of the print-on-demand market. Non-color interiors and color covers are supported. Images are supported, but only as they might be used in fiction, not picture books.
+
+If your work is an E-book, or uses interior color other than gray, or is academic, then this document class is not for you.
+
+But if you are writing a detective novel, or science fiction, or a collection of short stories, then read on!
+
+\QuickChapter{1. Features}
+
+Throughout, it is assumed that the purpose of your writing is a commercially printed book of fiction.
+
+A new \emph{novel} is pre-configured to produce a standard trade book size of 5.5in W x 8.5in H, with layout margins that are likely to be acceptable to the most widely-used print services. The file you are now reading is in this format. But if that is not the size or layout you want, then there are commands that configure just about anything, using standard terminology and understandable purpose. Best of all, the HTML documentation comes with images and examples, so you know what you are doing.
+
+Almost everything is pre-configured to “just work,” even the choice of fonts. The chosen compiler is LuaLaTeX, and Open Type fonts are loaded using \textit{fontspec} technology. If you prefer to use a professional font, it will be easy to load and use in utf-8.
+
+Many standard LaTeX commands are disabled. This will be surprising at first. But \emph{novel} is focused on one thing only. Anything that might interfere with that purpose may have been tossed aside. So, be sure that you read the documentation! If you take an existing LaTeX document and just change the class to \emph{novel,} it is very unlikely to work as expected.
+
+Many new commands are provided. They are focused on the needs of print fiction writers, period. And, \emph{novel} has built-in PDF/X technology that exceeds the capabilities currently available via other LaTeX packages.
+
+\QuickChapter{2. Complete Documentation}
+
+What you are reading now, is only an introduction. The complete documentation is in HTML format, directly written in HTML rather than extracted from code. There are numerous examples and images, too detailed to be presented as PDF.
+
+\QuickChapter{3. License}
+
+The LaTeX code, and accompanying documentation, is released under the LateX Project Public License, version 1.3c or later.
+
+The companion font(s) is(are) licensed under the SIL Open Font License, version 1.1.
+
+
+
+\QuickChapter{4. Version}
+
+\noindent 1.52, 2018-04-26: Enhanced detection and warning using Lua code.
+
+\noindent 1.50.5, 2018-04-11: Minor bug fixes (docs and code disagreed).
+
+\noindent 1.50, 2018-03-28: Improved image handling commands, sandbox.
+
+\noindent 1.46.2, 2018-01-14: Stable "old" version. Use newer 1.50.
+
+\noindent 1.1, 2017-03-01: initial public release.
+
+\clearpage
+
+\QuickChapter{5. FAQs}
+
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{Q. }Can this document class be used for E-books?
+\end{adjustwidth}
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{A. }No. And, that feature will never be added, as the technology is inherently incompatible. A word processor is your friend.
+\end{adjustwidth}
+
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{Q. }What happened to floats and lists?
+\end{adjustwidth}
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{A. }Use the new image commands, or sandbox mode.
+\end{adjustwidth}
+
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{Q. }My thesis advisor told me---
+\end{adjustwidth}
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{A. }Stop right there. This document class is very different from anything used for theses and other academic publications.
+\end{adjustwidth}
+
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{Q. }If I use TikZ for Feynman diagrams, then---
+\end{adjustwidth}
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{A. }Go away.
+\end{adjustwidth}
+
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{Q. }Has this document class ever been used for an actual novel?
+\end{adjustwidth}
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{A. }Yes indeed! In August 2017 the author published a complete novel, including its cover, using this document class. Almost all of the setup used defaults. The files (textblock and cover) were submitted to a major American P.O.D. service in \lnum{PDF/X-1a:2001} format, then electronically reviewed and accepted \textit{on the first attempt.} A printed copy was in the author's hands within a week. Just like that. Took months to write, of course.\par
+Update: Another author reports success.
+\end{adjustwidth}
+
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{Q. }When I woke up this morning, my head felt like a toddler had been pounding it in a sandbox. I rolled over and looked at the mug shot on the wall. It was a woman in her forties with a drug habit that was bad, and an attitude that was even worse. She had seen better days, like the time I took her to the eighth grade sock hop. Then I got up, washed, and dragged my lonely butt down to the one-man detective agency that I jokingly called my means of living. You know what I mean?
+\end{adjustwidth}
+\begin{adjustwidth}{\parindent}{0pt}
+\backindent\makebox[\parindent][l]{A. }Yeah. Stick with me, kid. This document class is for you.
+\end{adjustwidth}
+
+\end{document}
+
+
+
+
+
+
+
diff --git a/macros/luatex/latex/novel/fonts/NovelDeco.otf b/macros/luatex/latex/novel/fonts/NovelDeco.otf
new file mode 100644
index 0000000000..b0c81ecb61
--- /dev/null
+++ b/macros/luatex/latex/novel/fonts/NovelDeco.otf
Binary files differ
diff --git a/macros/luatex/latex/novel/novel-CGATSTR001.clo b/macros/luatex/latex/novel/novel-CGATSTR001.clo
new file mode 100644
index 0000000000..a550245b83
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-CGATSTR001.clo
@@ -0,0 +1,28 @@
+%%
+%% This is file `novel-CGATSTR001.clo', part of `novel' document class.
+%% The values of the arguments are public industry standards.
+%%
+\ProvidesFile{novel-CGATSTR001.clo}%
+[2018/01/14 any version. (novel Output Intent CGATS TR 001)]
+%%
+
+% Typically used in the USA.
+
+% Remember: TeX special characters must be backslashed here.
+% You may see % or # or _ in the data or file names.
+% Be sure that they are written as \% \# \_ or there will be trouble.
+
+% If any line is long, let it wrap. Do not attempt to break it onto multiple lines.
+
+% This identifier has spaces, even though file name has no spaces.
+\gdef\@OIidentifier{CGATS TR 001} % also called "reference name"
+\gdef\@OIcondition{SWOP (Publication) printing in USA (Printing process definition: ANSI CGATS.6).}
+\gdef\@OIinfo{U.S. Web Coated (SWOP) v2}
+\gdef\@OIregistry{http://www.color.org}
+\gdef\@OIprofile{USWebCoatedSWOP.icc}
+
+%%
+\endinput
+%%
+%% end of file `novel-CGATSTR001.clo'
+
diff --git a/macros/luatex/latex/novel/novel-CalculateLayout.sty b/macros/luatex/latex/novel/novel-CalculateLayout.sty
new file mode 100644
index 0000000000..fbb8671302
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-CalculateLayout.sty
@@ -0,0 +1,328 @@
+%%
+%% This is file `novel-CalculateLayout.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-CalculateLayout.sty}%
+[2018/04/26 v1.52 LaTeX file (layout calculations)]
+%%
+
+%%
+%% This file is loaded \AtEndPreamble, which precedes \AtBeginDocument.
+%%
+
+
+
+%% PROVIDE DEFAULT TRIM SIZE, MARGINS, AND NORMAL EM SIZE, IF NOT SET BY USER
+%% ----------------------------------------------------------------------------
+% Default Trim Size is 5.5in W x 8.5in H, unless \SetTrimSize used.
+% This size is typical of American P.O.D. softcover fiction:
+\if@SetTrimSize\else
+ \gsetlength\@TrimWidth{5.5in}
+ \gsetlength\@TrimHeight{8.5in}
+\fi
+% Default margins based on Trim Height, unless \SetMargins used:
+\if@SetMargins\else
+ \ifdimcomp{\@TrimHeight}{<}{8.99in}{ % small sizes:
+ \gsetlength\@TopMargin{0.5in}
+ \gsetlength\@OuterMargin{0.5in}
+ \gsetlength\@BottomMargin{0.5in}
+ \gsetlength\@InnerMargin{0.75in}
+ }{ % medium sizes:
+ \ifdimcomp{\@TrimHeight}{<}{9.99in}{ %
+ \gsetlength\@TopMargin{0.75in}
+ \gsetlength\@OuterMargin{0.75in}
+ \gsetlength\@BottomMargin{0.75in}
+ \gsetlength\@InnerMargin{1in}
+ }{ % large sizes:
+ \gsetlength\@TopMargin{1in}
+ \gsetlength\@OuterMargin{1in}
+ \gsetlength\@BottomMargin{1in}
+ \gsetlength\@InnerMargin{1.25in}
+ } %
+ } %
+\fi
+% Default normal em size is based on Trim Width:
+\if@FontSizeSet\else
+ \ifdimcomp{\@TrimWidth}{<}{5.49in}{
+ \gsetlength\@SetFontSize{11pt} % smaller books
+ }{
+ \ifdimcomp{\@TrimWidth}{<}{6.24in}{
+ \gsetlength\@SetFontSize{11.4pt} % medium books
+ }{
+ \gsetlength\@SetFontSize{12pt} % larger books
+ } %
+ } %
+\fi
+%% end set default trim, margins, normal em size.
+
+
+%% THEORY OF PAGE LAYOUT
+%% ----------------------------------------------------------------------------
+% The "available width" is the trim width minus the outer and inner margins:
+\newlength\@AvailableWidth
+\gsetlength\@AvailableWidth{\@TrimWidth-\@OuterMargin-\@InnerMargin}
+% The "occupied width" of the text block is the TeX dimension \textwidth.
+% Your originally set layout can always fill the available width,
+% although that is not always true when using \Rework:
+\gsetlength\textwidth{\@AvailableWidth}
+% The "available height" is the trim height minus the top and bottom margins:
+\newlength\@AvailableHeight
+\gsetlength\@AvailableHeight{\@TrimHeight-\@TopMargin-\@BottomMargin}
+% The "occupied height" includes header, textblock, footer, and allowances
+% for risers/diacriticals at top, descenders at bottom. It must fit within
+% the available height. This is the tricky part, so pay attention:
+% In `novel' class, the topmost line of text (main block or header)
+% is positioned with its baseline at 1 normal em below available top.
+% That provides good clearance for uppercase letters with diacritical marks.
+% The lowermost line of text (main block or footer) is positioned with its
+% baseline at 0.3 normal em above available bottom. This provides
+% good clearance for descenders.
+% So, if your text does not have uppercase diacriticals, or if you use
+% a footer with lining numbers (no descenders), then the upper/lower margins
+% will appear to be a little larger than you set them.
+% The headjump includes the line itself, plus any added gap to the main text.
+% An unused jump is re-set to 0:
+\if@HasHeader\else\gdef\@HeadJump{0}\fi
+%%
+% TeX assumes that your layout has a footer, even if you do not want one.
+% Novel handles this by setting the baseline of the mandatory footer at
+% 1 normal baselineskip below the last line of main text. Then, one line is
+% subtracted from the occupied line count. That places the empty, unused
+% virtual footer in the lower margin, where it does not matter. When you
+% do have a footer, the necessary line space is added, and the content
+% is positioned from the virtual footer using \smash and \raisebox.
+% Yes, it is complicated, but it handles more layout possibilities.
+% The \@FootJumpFix is one less than \@FootJump, or -1 when no footer:
+\if@HasFooter
+ \FPsub\@FootJumpFix{\@FootJump}{1}
+\else
+ \gdef\@FootJumpFix{-1}
+\fi
+% Putting it all together, the "occupied height" is:
+% 1.3\@SetFontSize + (\@HeadJump+\@LinesPerPage+\@FootJumpFix)\baselineskip
+%
+%% end theory of page layout.
+
+
+%% SET DEFAULT LINES PER PAGE, IF NOT SET BY USER
+%% ----------------------------------------------------------------------------
+% Lines per page refers only to the main text block, not header/footer:
+\if@LinesPerPage\else
+ % Estimate \baselineskip as 1.3\@SetFontSize, which is a comfortable value.
+ % Calculate resulting \@LinesPerPage, then proceed as if set.
+ % Actual \baselineskip will be re-calculated later.
+ \edef\@tempLPP{%
+ \fpeval{% package xfp
+ (\@AvailableHeight - 0.3\@SetFontSize) % adjusts for final descenders
+ / (1.3*\@SetFontSize) % denominator, with desired skip/em ratio
+ -\@HeadJump -\@FootJumpFix % adjustments
+ }%
+ } %
+ \FPtrunc{\@LinesPerPage}{\@tempLPP}{0} % final, integer floor
+\fi
+% Error if too few lines per page, whether set or default:
+\FPiflt{\@LinesPerPage}{2}
+ \ClassError{novel}{Calculated LinesPerPage less than 2}%
+ {Too few lines. Either font size too big, or text height too small.}%
+\fi
+%% end set default lines per page.
+
+
+%% CALCULATE BASELINESKIP
+%% ----------------------------------------------------------------------------
+% In `novel' class, the user does not directly set line-to-line spacing,
+% known as \baselineskip. Instead, \baselineskip is calculated from other
+% settings, so that "occupied height" fills "available height."
+% See the above theory of layout, for the equations. Solve for \baselineskip =
+% (\@AvailableHeight-1.3\@SetFontSize) divided by
+% (\@HeadJump+\@LinesPerPage+\@FootJumpFix)
+%
+\xdef\@AdjLPP{\fpeval{\@HeadJump+\@LinesPerPage+\@FootJumpFix}} % used often
+\edef\@tempBLS{%
+ \fpeval{(\@AvailableHeight-1.3\@SetFontSize) / \@AdjLPP}%
+} %
+\FPtrunc\@tempBLS{\@tempBLS}{2} % round down to 2 decimalplaces
+\gsetlength\baselineskip{\@tempBLS pt}
+%
+% Error if \baselineSkip is too tight, in relation to normal em size:
+\ifdimcomp{\baselineskip}{<}{1.2\@SetFontSize}{%
+ \ClassError{novel}{Calculated baselineskip is too small}%
+ {Default baselineskip is calculated from normal em size, ^^J%
+ available text height, and lines per page. Result is too small. ^^J%
+ Change something, then try again.}%
+}{}%
+%% end calculate baselineskip.
+
+
+%% LOAD REWORK, IF USED
+%% REWORK IS EXPERIMENTAL CODE. NOT DOCUMENTED.
+%% ----------------------------------------------------------------------------
+% Note that \Rework does not change lines per page.
+\gdef\@TMratio{1}
+\if@ReworkTrimSize
+ \ObsoleteRework
+\else
+ \if@ReworkMargins
+ \ObsoleteRework
+ \fi
+\fi
+%% end load rework.
+
+
+%% FINISH LAYOUT (but post-layout deals with special class options)
+%% ----------------------------------------------------------------------------
+% Caution if font size (set or reworked) is small:
+\ifdimcomp{\@SetFontSize}{<}{10pt}{ %
+ \typeout{^^JClass `novel' Alert: Normal font at less than 10pt. ^^J%
+ Whether or not this is too small, depends on circumstances. ^^J%
+ Beware if you use footnotes, which are smaller. ^^J%
+ }
+}{} %
+\ifdimcomp{\@SetFontSize}{<}{8.03pt}{ % 8 PostScript points (TeX bp)
+ \ClassWarning{novel}{^^JNormal font at less than 8 points. ^^J%
+ This is usually undesirable. May be rejected by some print services. ^^J%
+ }
+}{} %
+% Default Media Size is same as Trim Size, unless \SetMediaSize used:
+\if@MediaSize\else
+ \gsetlength\paperwidth{\@TrimWidth}
+ \gsetlength\paperheight{\@TrimHeight}
+\fi
+% Sanity check for cover art, which needs bleed:
+\if@coverart
+ \setlength\@tempLength{\paperwidth-\@TrimWidth}
+ \ifthenelse{\dimtest{\@tempLength}{<}{6mm}}{%
+ \ClassWarning{novel}{^^JBIG BAD WARNING! Insufficient bleed width ?^^J%
+ Commercial printers generally require 0.125in (3mm) bleed,^^J%
+ on all four sides of the Trim. But your dimensions do not provide this.^^J%
+ Perhaps you need to increase the Media Width ?^^J}
+ }{}
+ \ifthenelse{\dimtest{\@tempLength}{>}{0.5in}}{%
+ \ClassWarning{novel}{^^JBIG BAD WARNING! Too much bleed width ?^^J%
+ Commercial printers generally require 0.125in (3mm) bleed,^^J%
+ on all four sides of the Trim. Sometimes as much as 0.25in (6mm) each.^^J%
+ But your dimensions provide more than this.
+ Perhaps you need to decrease the Media Width ?^^J}
+ }{}
+ \setlength\@tempLength{\paperheight-\@TrimHeight}
+ \ifthenelse{\dimtest{\@tempLength}{<}{5.83mm}}{% allows for pixel rounding
+ \ClassWarning{novel}{^^JBIG BAD WARNING! Insufficient bleed height ?^^J%
+ Commercial printers generally require 0.125in (3mm) bleed,^^J%
+ on all four sides of the Trim. But your dimensions do not provide this.^^J%
+ Perhaps you need to increase the MediaSize ?^^J}
+ }{}
+ \ifthenelse{\dimtest{\@tempLength}{>}{0.507in}}{% allows for pixel rounding
+ \ClassWarning{novel}{^^JBIG BAD WARNING! Too much bleed height ?^^J%
+ Commercial printers generally require 0.125in (3mm) bleed,^^J%
+ on all four sides of the Trim. Sometimes as much as 0.25in (6mm) each.^^J%
+ But your dimensions provide more than this.
+ Perhaps you need to decrease the MediaSize ?^^J}
+ }{}
+\fi
+% \textheight, normal font size, etc:
+\gsetlength\textheight{\@LinesPerPage\baselineskip}
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize{\strip@pt\@SetFontSize}{\strip@pt\baselineskip}%
+}
+\normalsize % from this point, the "real" normal font size is effective
+%
+
+%
+\if@HasHeader
+ % \headheight is mis-named. Text "height" is supposed to be measured upward
+ % from the baseline. But \headheight is measured from 0.3em below
+ % the baseline, to allow for descenders. Thus, to provide actual "height"
+ % of 1em, \headheight must be set to 1.3em:
+ \gsetlength\headheight{1.3\@SetFontSize}
+ % \headsep is a confusing term. It is the separation between the nominal
+ % 0.3em descenders of header text, and one baseline above the baseline
+ % of the top line of main text. Got that? Let me do the thinking for you:
+ \gsetlength\headsep{\@HeadJump\baselineskip-\baselineskip-0.3\@SetFontSize}
+\else % no header, no problem:
+ \gsetlength\headheight{0pt}
+ \gsetlength\headsep{0pt}
+\fi
+% \oddsidemargin is at the left (inner, spine edge) of recto pages.
+% Measured 1in (72.27pt) inside MediaBox, to the textblock. May be negative.
+
+ \gsetlength\oddsidemargin{%
+ \@InnerMargin+0.5\paperwidth-0.5\@TrimWidth-72.27pt%
+ }
+
+%
+% \evensidemargin is at the left (outer edge) of verso pages.
+
+ \gsetlength\evensidemargin{%
+ \@OuterMargin+0.5\paperwidth-0.5\@TrimWidth-72.27pt%
+ }
+
+%
+\if@closecrop
+ \gsetlength\oddsidemargin{-0.9in}
+ \gsetlength\evensidemargin{-0.9in}
+\fi
+%
+% \topmargin is measured from 1in (72.27pt) below the top of the MediaBox,
+% to the top of whatever comes first (header or textblock). May be negative.
+% For consistency, the topmost baseline (header or main text) will be
+% positioned at 1em below the margin.
+
+ \gsetlength\topmargin{\@TopMargin+0.5\paperheight-0.5\@TrimHeight-72.27pt}
+ \if@HasHeader\else
+ \gsetlength\topmargin{\topmargin-\baselineskip+\@SetFontSize}
+ \fi
+
+% novel.cls sets a tentative em size (probably 10pt) so that packages requiring
+% an integer point size of 10, 11, or 12 will load without complaint.
+% Then, the real point size is established here, when it is too late for
+% such packages to complain. Sneaky, eh?
+% However, TeX places a strut in the header, rising 0.7x tentative size above
+% the header baseline. If the real size is too small, then the strut is
+% too large, which displaces the header text downward, simultaneously
+% shrinking the headsep and possibly affecting the textblock position.
+% This unlikely problem cannot be fixed by adjusting the headheight, but it
+% can be fixed by adjusting the topmargin and headsep to compensate:
+\ifdimcomp{\@SetFontSize}{<}{\@TentativeEmN pt}{ %
+ \setlength\@tempLength{\@TentativeEmN pt}
+ \gsetlength\topmargin{\topmargin-0.7\@tempLength+0.7\@SetFontSize}
+ \gsetlength\headsep{\headsep+0.7\@tempLength-0.7\@SetFontSize}
+}{} %
+%%
+% It seems that, unless specified by user, TeX may place the top text baseline
+% in a vertical position that depends on the height of text in that line.
+% That height may vary, depending on ascenders or diacriticals there.
+% In order to fix the position, \topskip gets a non-flexible setting.
+% The best value is normal baselineskip, partly because it looks right,
+% and also to avoid underfull vboxes on nearly every page.
+\gsetlength\topskip{\baselineskip} % absorber
+% In `novel' class, footers are done in an unusual manner, as explained above.
+% To fix the position of the virtual footer baseline:
+\gsetlength\footskip{\baselineskip}
+%% Sanity check: Trim Size must be contained within Media Size.
+\ifthenelse{%
+ \dimtest{\@TrimWidth}{>}{\paperwidth} %
+ \OR \dimtest{\@TrimHeight}{>}{\paperheight}%
+}{%
+ \ClassError{novel}{Media Size too small for TrimSize}%
+ {You wrote \string\SetMediaSize\space with length(s) too small ^^J%
+ for the default Trim Size or your values in \string\SetTrimSize.}%
+}{} %
+% end sanity check
+%% end finish layout.
+
+
+%%
+\endinput
+%%
+%% End of file `novel-CalculateLayout.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-ChapterScene.sty b/macros/luatex/latex/novel/novel-ChapterScene.sty
new file mode 100644
index 0000000000..e297eeacd3
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-ChapterScene.sty
@@ -0,0 +1,406 @@
+%%
+%% This is file `novel-ChapterScene.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-ChapterScene.sty}%
+[2018/04/26 v1.52 LaTeX file (chapter and scene macros)]
+%%
+
+
+% Each new chapter generally has its own header/footer style. This allows a
+% default setting when chapters begin with ChapterStart environment:
+\gdef\SetChapterStartStyle#1{% from v. 1.40.3
+ \@tempTFfalse%
+ \ifthenelse{\equal{#1}{fancy}}{\@tempTFtrue}{}%
+ \ifthenelse{\equal{#1}{empty}}{\@tempTFtrue}{}%
+ \ifthenelse{\equal{#1}{plain} %
+ \OR \equal{#1}{fancyplain} \OR \equal{#1}{footer}}{%
+ \@tempTFtrue%
+ }{}%
+ \ifthenelse{\equal{#1}{forcenumber}}{\@tempTFtrue}{}%
+ \ifthenelse{\equal{#1}{dropfolioinside} %
+ \OR \equal{#1}{dropfolio} \OR \equal{#1}{dropfoliolater}}{%
+ \@tempTFtrue%
+ }{}%
+ \ifthenelse{\equal{#1}{dropfoliobeneath}}{\@tempTFtrue}{}%
+ \if@tempTF%
+ \gdef\@setchapterstart{#1}%
+ \else%
+ \ClassError{novel}{Invalid choice for \string\SetChapterStartStyle}%
+ {Choose: fancy, empty, plain, footer, forcenumber, %
+ dropfolioinside, dropfoliobeneath.}%
+ \fi%
+}
+\let\SetChapterStart\SetChapterStartStyle\relax % deprecated from v1.40.3.
+\SetChapterStartStyle{footer} % default
+% New in version 1.40.2:
+\gdef\SetChapterStartHeight#1{%
+ \FPifint{#1}\else%
+ \ClassError{novel}{\string\SetChapterStartHeight\space integer >= 4}%
+ {Height of ChapterStart must be integer, greater than or equal to 4.}%
+ \fi%
+ \FPiflt{#1}{4}%
+ \ClassError{novel}{\string\SetChapterStartHeight\space integer >= 4}%
+ {Height of ChapterStart must be integer, greater than or equal to 4.}%
+ \else\fi%
+ \gdef\@setchapterstartheight{#1}%
+}
+\SetChapterStartHeight{10} % default
+% See novel.cls for the accompanying AtBeginDocument routine.
+% Scene breaks:
+% \SetScenebreakIndent controls whether line after \scenebreak, \sceneline,
+% or \scenestars will be indented. Set true or false, default false.
+%% End reserve space for header/footer and set default ChapterStart
+\newif\if@IndentAfterScenebreak
+\newcommand\SetScenebreakIndent[1]{% true or false, default false.
+ \@tempTFfalse
+ \ifthenelse{\equal{#1}{true}}{%
+ \@tempTFtrue
+ \global\@IndentAfterScenebreaktrue
+ }{}%
+ \ifthenelse{\equal{#1}{false}}{%
+ \@tempTFtrue
+ \global\@IndentAfterScenebreakfalse
+ }{}%
+ \if@tempTF\else%
+ \ClassError{novel}{Bad argument for \string\SetScenebreakIndent\space}%
+ {\string\SetScenebreakIndent\space argument must be true or false.}%
+ \fi%
+}
+\SetScenebreakIndent{false} % default
+% Deprected from v. 1.40.3:
+\newcommand\IndentAfterScenebreak{\global\@IndentAfterScenebreaktrue}
+
+
+
+%% SCENE CHANGES
+%% ----------------------------------------------------------------------------
+% \scenebreak \sceneline \scenestars
+% Use anywhere in document body.
+% These commands skip a line.
+% \scenebreak leaves the gap empty.
+% \sceneline centers a line, about 1/3 textwidth.
+% \scenestars centers three widely-spaced asterisks.
+% Default behavior is \noindent for following paragraph.
+% Use \SetScenebreakIndent{true or false} in Preamble to change globally.
+% Either way, local behavior changed using \forceindent or \backindent.
+% \newcommand\scenebreak{\null}
+%
+\newcommand\scenebreak{% revised in version 1.52.
+ \leavevmode\getBreakpos{scenebreak}~\par
+}
+%
+\newcommand\sceneline{%
+ \noindent\getBreakpos{sceneline}\hfil%
+ \raisebox{0.2em}{\rule{0.35\textwidth}{.4pt}}\hfil\par%
+}
+%
+\newcommand\scenestars{%
+ \noindent\getBreakpos{scenestars}\hfil%
+ \raisebox{-.3em}{*\quad\quad*\quad\quad*}\hfil\par%
+}
+%
+\gdef\getBreakpos#1{%
+ \begingroup%
+ \savepos%
+ \protected@write\@auxout{}{%
+ \protect\@getBreakpos{\noexpand\number\lastypos}{\thepage}{#1}%
+ }%
+ \endgroup%
+}
+%
+\newlength\CurrentBreakpos
+\gdef\@getBreakpos#1#2#3{} % nothing, when reading aux at beginning
+\gdef\@RedefineBreakpos{ % called by `novel.cls' \AtBeginDocument
+ \gdef\@getBreakpos##1##2##3{% numerical position sp, page, break type
+ \gsetlength\CurrentBreakpos{##1sp}% measured up from very bottom of page.
+ \FPsub{\@BreakLines}{\strip@pt\TotalYpos}{\strip@pt\CurrentBreakpos}
+ \FPdiv{\@BreakLines}{\@BreakLines}{\strip@pt\nbs}%
+ \FPround{\@BreakLines}{\@BreakLines}{0}% integer lines from text top
+ \ifthenelse{\equal{##3}{scenebreak}}{%
+ \xdef\thisline{\@BreakLines}%
+ \ifnum\@BreakLines=1%
+ \ClassWarning{novel}{Replace \string\scenebreak\space at top of ^^J%
+ page ##2 with \string\sceneline\space or \string\scenestars.}%
+ \fi%
+ \ifnum\@BreakLines=\@LinesPerPage%
+ \ClassWarning{novel}{Replace \string\scenebreak\space at bottom of ^^J%
+ page ##2 with \string\sceneline\space or \string\scenestars.}%
+ \fi%
+ }{}%
+ \FPsub{\@nearthebottom}{\@LinesPerPage}{1}%
+ \ifnum\@BreakLines=2%
+ \ClassWarning{novel}{\string\ ##3 too close to top of page ##2.}%
+ \fi%
+ \ifnum\@BreakLines=\@nearthebottom%
+ \ClassWarning{novel}{\string\ ##3 too close to bottom of page ##2.}%
+ \fi%
+ }%
+} % end @RedefineBreakpos
+%%
+
+
+%% Repair \FirstLine{} command from `magaz' package.
+% Problem: Conflict with \noindent\nov@AfterGroup as used in ChapterStart.
+% The \noindent is carried past \FirstLine to the following paragraph.
+% Solution: After FirstLine completes, back up one line vertically, then insert
+% and empty line to restore grid and absorb the noindent.
+% Starred version uses the original \FirstLine definition, just in case
+% the following paragraph has some exotic feature.
+% Thanks to user `egreg' at tex.stackexchange.com for assistance.
+\let\oldFirstLine\FirstLine
+\def\FirstLine{\@ifstar\FirstLineFoo\@FirstLineFoo} % improved
+\def\FirstLineFoo#1{\oldFirstLine{#1}} % starred restores original def.
+\def\@FirstLineFoo#1{%
+ \oldFirstLine{#1}\par\vspace{-\nbs}\strut\par%
+}
+%%
+
+
+%% Chapter number count. New in version 1.44. See documentation.
+%% Do NOT use for "chapter-like" sections, only numbered chapters.
+\newcounter{novelcn}
+\setcounter{novelcn}{1}
+%%
+
+%% ChapterStart environment.
+% The most useful way to start a new chapter. Occupies a fixed amount of
+% vertical space. Also self-adjust when used with dropfolio. Automatically
+% calls \thispagestyle if set for all chapter displays.
+% This environment is not restricted to chapters. It is also used for
+% chapter-like sections in front matter or main matter,
+% as long as they are styled like a chapter.
+\newcounter{@linequarter}
+
+%
+% The argument is the number of normal baselineskips high.
+\newif\if@WithinChapterStart
+\DeclareDocumentEnvironment {ChapterStart} %
+{ O{\@setchapterstartheight} O{\@setchapterstart} }{%
+ \if@ThisPageStyle\else%
+ \gdef\@thiscsstyle{#2}%
+ \thispagestyle{\@thiscsstyle}%
+ \fi%
+ \global\@WithinChapterStarttrue%
+ \suppressfloats[t]% ensures that a floated image does not go on top
+ \gsetlength\parindent{0pt}% within environment
+ \ResetFootnoteSymbol% resets symbolic markers, but not numerical markers
+ \IfStrEq{#1}{*}{%
+ \gdef\@thiscsheight{\@setchapterstartheight}%
+ }{%
+ \gdef\@thiscsheight{#1}%
+ }%
+ \FPsub{\@fixlines}{\@thiscsheight}{2}%
+ \FPsub{\@fixlines}{\@fixlines}{0.001}% fudge to avoid rounding problems
+ \FPround{\@thiscsheight}{\@thiscsheight}{0}%
+ \FPiflt{\@thiscsheight}{4}%
+ \def\@smcserr{%
+ \ClassError{novel}{ChapterStart height insufficient for thispagestyle}%
+ {With your choice for thispagestyle, the height must be at least 4.}%
+ }%
+ \IfStrEq{\@thiscsstyle}{dropfolioinside}{\@smcserr}{}%j
+ \IfStrEq{\@thiscsstyle}{plain}{\@smcserr}{}%
+ \IfStrEq{\@thiscsstyle}{fancyplain}{\@smcserr}{}%
+ \else\fi%
+ \FPiflt{\@thiscsheight}{3}%
+ \ClassError{novel}{ChapterStart height must be at least 3}%
+ {If you need height less than 3, consider \string\QuickChapter.}%
+ \else\fi%
+ \null% always a line above the first thing to appear within the environment
+ \setcounter{@linequarter}{0}%
+ \begin{textblock*}{\textwidth}[0,0](0pt,0pt)%
+}{% close the environment:
+ \ifthenelse{%
+ \equal{\value{@linequarter}}{1} \OR \equal{\value{@linequarter}}{5}%
+ \OR \equal{\value{@linequarter}}{9} \OR \equal{\value{@linequarter}}{13}%
+ }{\vspace{0.75\nbs}}{}%
+ \ifthenelse{%
+ \equal{\value{@linequarter}}{2} \OR \equal{\value{@linequarter}}{6}%
+ \OR \equal{\value{@linequarter}}{10} \OR \equal{\value{@linequarter}}{14}%
+ }{\vspace{0.5\nbs}}{}%
+ \ifthenelse{%
+ \equal{\value{@linequarter}}{3} \OR \equal{\value{@linequarter}}{7}%
+ \OR \equal{\value{@linequarter}}{11} \OR \equal{\value{@linequarter}}{15}%
+ }{\vspace{0.25\nbs}}{}%
+ \end{textblock*}%
+ \vspace{\@fixlines\nbs}%
+ \if@DeleteCSline\else\null\fi% adjusts when dropfolioinside
+ \global\@WithinChapterStartfalse%
+ \vspace{0.1pt plus 0pt minus 0.2pt}% caulk
+ \gsetlength\parindent{\normalparindent}% restored
+ \nov@AfterGroup\NoIndentAfterThis% etextools and noindentafter
+}
+% end ChapterStart environment
+
+
+%%
+\LetLtxMacro\ChapterDisplay\ChapterStart\relax % deprecated
+\LetLtxMacro\endChapterDisplay\endChapterStart\relax % deprecated
+%
+\newcommand\ChapterTitle[2][c]{% optional alignment l, c, r
+ \ignorespaces%
+ \vspace{0.5\nbs}\addtocounter{@linequarter}{2}%
+ \@tempTFfalse%
+ \ifthenelse{\equal{#1}{l}}{\let\@csalign\relax\@tempTFtrue}{}%
+ \ifthenelse{\equal{#1}{c}}{\let\@csalign\centering\relax\@tempTFtrue}{}%
+ \ifthenelse{\equal{#1}{r}}{\let\@csalign\hfill\relax\@tempTFtrue}{}%
+ \if@tempTF\else%
+ \ClassError{novel}{Chapter Title, Deco, Subtitle align must be l, c, or r}%
+ {On page \thepage you wrote a Chapter command with alignment ^^J%
+ other than the allowed l, c, or r.}%
+ \fi%
+ {\@csalign\stake\smash{{\chapterfont{}#2}}\par}%
+}
+%
+\newcommand\ChapterSubtitle[2][c]{% optional alignment l, c, r
+ \vspace{0.25\nbs}\addtocounter{@linequarter}{1}
+ \@tempTFfalse%
+ \ifthenelse{\equal{#1}{l}}{\let\@csalign\relax\@tempTFtrue}{}
+ \ifthenelse{\equal{#1}{c}}{\let\@csalign\centering\relax\@tempTFtrue}{}
+ \ifthenelse{\equal{#1}{r}}{\let\@csalign\hfill\relax\@tempTFtrue}{}
+ \if@tempTF\else%
+ \ClassError{novel}{Chapter Title, Deco, Subtitle align must be l, c, or r}%
+ {On page \thepage you wrote a Chapter command with alignment ^^J%
+ other than the allowed l, c, or r.}%
+ \fi%
+ {\@csalign{\stake\smash{\subchfont #2}}\par}%
+}
+% In ChapterDeco, a trick is used. Instead of two optional arguments, and
+% instead of using expl3 syntax to create different argument delimiters,
+% the arguments for alignment and scale are passed as a single option.
+% This works because one is a letter, and the other is a number.
+% So it is easy to separte them by parsing.
+\newcommand\ChapterDeco[2][c1]{% optional alignment and scale, either order
+ \@tempTFfalse
+ \StrDel{#1}{ }[\temp@cds]% may use space separator
+ \StrDel{\temp@cds}{,}[\temp@cd]% may use comma separator
+ \IfSubStr{#1}{l}{% left align
+ \let\@csalign\relax\@tempTFtrue%
+ \StrDel{\temp@cd}{l}[\temp@cd]%
+ }{}%
+ \IfSubStr{#1}{c}{% centered
+ \let\@csalign\centering\relax\@tempTFtrue%
+ \StrDel{\temp@cd}{c}[\temp@cd]%
+ }{}%
+ \IfSubStr{#1}{r}{% right align
+ \let\@csalign\hfill\relax\@tempTFtrue%
+ \StrDel{\temp@cd}{r}[\temp@cd]%
+ }{}%
+ \if@tempTF\else%
+ \let\@csalign\centering\relax\@tempTFtrue%
+ \fi%
+ % Now for scaling, with adjusted vertical position:
+ \IfEndWith{\temp@cd}{.}{\StrSubstitute{\temp@cd}{.}{.0}[\temp@cd]}{}%
+ \IfBeginWith{\temp@cd}{.}{\StrSubstitute{\temp@cd}{.}{1.}[\temp@cd]}{}%
+ \IfDecimal{\temp@cd}{\def\@thisScale{\temp@cd}}{\def\@thisScale{1}}%
+ {\@csalign\charscale[\@thisScale,0pt,0.2\nbs]{#2}\par}%
+}
+%
+%%
+
+
+%% \Epigraph[align,scale,width]{text} OBSOLETE IN CODE VERSION 1.2
+
+
+%% \QuickChapter[line style]{text} intended for a story consisting of numerous
+% short chapters without page breaks. Two blank lines are inserted. In the gap
+% is the text, using subchfont. Optional line follows using \bigemdash style.
+% If option is empty, no line. If a length, then the line is that length.
+% If option * then the line fills to end of text line.
+\newcommand\QuickChapter[2][]{%
+ \null%
+ \noindent{\subchfont\charscale[1,0pt,0.3em]{#2}%
+ \gsetlength\@tempLength{\heightof{x}}% height of x in subchfont
+ }% end subchfont
+ \FPdiv{\@qclineth}{\strip@pt\@tempLength}{\strip@pt\normalxheight}% fontscale
+ \FPmul{\@howthick}{\@qclineth}{0.049}% typical emdash thickness, em.
+ \FPmul{\@howraise}{0.23}{\@qclineth}% typical emdash height em raised.
+ \ifthenelse{\equal{#1}{} \OR \equal{#1}{ }}{}{% no line, else:
+ \ifthenelse{\equal{#1}{*}}{% line fills:
+ ~\leaders%
+ \hbox{\smash{\rule[\@howraise em]{1pt}{\@howthick em}}}%
+ \hfill\stake\par%
+ }{% else line at specific length:
+ ~\makebox[#1][l]{%
+ \leaders\hbox{\smash{\rule[\@howraise em]{1pt}{\@howthick em}}}\hfill%
+ }%
+ }%
+ }%
+ \NoIndentAfterThis%
+} % end \QuickChapter
+%%
+
+
+%% New in version 1.40: \cleartorecto and \cleartoend
+% \cleartorecto works same as \clearpage when next page is recto.
+% If next page would be verso, a blank verso is inserted,
+% so that the following material is recto.
+% \cleartoend is used at very end of book.
+% It adds a blank page. If the blank is verso, end of book.
+% But if that blank is recto, it adds a second blank page, end of book.
+% So, the book always ends with a blank verso.
+\gdef\cleartorecto{
+ \clearpage
+ \ifodd\c@page
+ \else
+ \thispagestyle{empty}
+ \null
+ \clearpage
+ \fi
+}
+\newif \if@cleartoend
+\gdef\cleartoend{
+ \if@cleartoend\else
+ \clearpage
+ \ifodd\c@page
+ \thispagestyle{empty}
+ \null
+ \clearpage
+ \fi
+ \thispagestyle{empty}
+ \null
+ \clearpage
+ \fi
+ \global\@cleartoendtrue
+}
+%
+
+
+%%
+\gdef\@ActivateChapterScene{% called by `novel.cls' \AtBeginDocument
+ % Activate user choice of whether or not to indent after scenebreak commands:
+ \if@IndentAfterScenebreak\else
+ \NoIndentAfterCmd{\scenebreak}
+ \NoIndentAfterCmd{\sceneline}
+ \NoIndentAfterCmd{\scenestars}
+ \fi
+}% end \@ActivateChapterScene
+%%
+
+
+%% Neutralize settings commands:
+\gdef\@DisableChapterSceneSettings{% called by `novel.cls' \AtBeginDocument
+ \LetLtxMacro\SetHeadFootStyle\relax
+ \LetLtxMacro\IndentAfterScenebreak\relax
+ \LetLtxMacro\SetScenebreakIndent\relax
+}% end \@DisableChapterSceneSettings
+%%
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-ChapterScene.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-DropCap.sty b/macros/luatex/latex/novel/novel-DropCap.sty
new file mode 100644
index 0000000000..3a6233e3f5
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-DropCap.sty
@@ -0,0 +1,235 @@
+%%
+%% This is file `novel-DropCap.sty', part of `novel' document class.
+%% Copyright (C) 2017-2018 Robert Allgeyer.
+%%
+%% It is based on `lettrine.sty', part of `lettrine' package,
+%% Copyright (C) 1999-2015 Daniel Flipo.
+%%
+%% The license for this file is that same for `lettrine':
+%
+% This program can be distributed and/or modified under the terms
+% of the LaTeX Project Public License either version 1.3c of this
+% license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+%%
+% This file is new in `novel' version 1.50.
+%
+\ProvidesFile{novel-DropCap.sty}%
+ [2018/04/26 v1.52 (Drop Caps)]
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%
+%
+
+%
+\newcounter{NDCDefaultLines}
+\setcounter{NDCDefaultLines}{3}
+\newcounter{NDCDefaultDepth}
+\newdimen\NDCDefaultVoffset
+\newdimen\NDCDefaultHoffset
+\newcommand*{\NDCDefaultScale}{1}
+\newcommand*{\NDCDefaultBloat}{1}
+\newdimen\NDCDefaultGap
+\gsetlength{\NDCDefaultGap}{0.25em} % approx. width of normal space
+\newsavebox{\NDC@dropcapbox}
+\newsavebox{\NDC@normalXbox}
+\newcounter{NDC@lines}
+\newcounter{NDC@depth}
+\newdimen\NDC@antewidth
+\newdimen\NDC@Pindent
+\newdimen\NDC@Gap % equivalent to lettrine findent
+\newdimen\NDC@Nindent % not a user setting
+\newdimen\NDC@voffset
+\newdimen\NDC@hoffset
+\newdimen\NDC@first
+\newdimen\NDC@next
+\newdimen\NDC@height
+\newcommand*{\NDC@ante}{}
+\newcommand*{\NDC@bloat}{}
+\newcommand*{\NDC@scale}{}
+\def\@getNDCheight{% offsets do not affect height:
+ \@tempdima=\baselineskip
+ \setlength{\NDC@height}{\value{NDC@lines}\@tempdima}% local
+ \addtolength{\NDC@height}{-\@tempdima}%
+ \sbox{\NDC@normalXbox}{X}% Normal capital X, rather than something else.
+ \addtolength{\NDC@height}{\ht\NDC@normalXbox}%
+ \setlength{\NDC@height}{\NDC@scale\NDC@height}% local
+} %
+\newcommand*{\NDC@char}{%
+ \@getNDCheight%
+ % Measures drop cap capital X, rather than something else:
+ \sbox{\@tempboxa}{%
+ \NDC@charstyle\fontsize{\NDC@height}{\NDC@height}\selectfont X%
+ }%
+ \@tempcntb=\ht\@tempboxa%
+ \@tempcnta=\NDC@height%
+ \multiply\@tempcnta by 100%
+ \divide\@tempcntb by 100%
+ \divide\@tempcnta by \@tempcntb%
+ \advance\@tempcnta by -9999%
+ \ifnum\@tempcnta>0%
+ \def\@tempa{1.\the\@tempcnta}%
+ \else%
+ \def\@tempa{1}%
+ \fi%
+ \NDC@charstyle\fontsize{\@tempa\NDC@height}{\@tempa\NDC@height}\selectfont
+} %
+\define@key{NDC}{lines}{\setcounter{NDC@lines}{#1}}
+\define@key{NDC}{depth}{\setcounter{NDC@depth}{#1}}
+\define@key{NDC}{hoffset}{\setlength{\NDC@hoffset}{#1}}
+\define@key{NDC}{voffset}{\setlength{\NDC@voffset}{#1}}
+\define@key{NDC}{ante}{\renewcommand*{\NDC@ante}{#1}} % Like `lettrine' ante,
+\define@key{NDC}{ante*}{\renewcommand*{\NDC@ante}{% Like `lettrine' ante, but
+ \setlength\NDC@antewidth{\widthof{#1}}% auto-hangs the ante in left margin.
+ \addtolength\NDC@antewidth{0.2em}% provides breathing room
+ \stake\hspace{-\NDC@antewidth}#1\hspace{0.2em}}% restores alignment
+}
+\define@key{NDC}{gap}{\setlength{\NDC@Gap}{#1}}
+\define@key{NDC}{bloat}{\renewcommand*{\NDC@bloat}{#1}}
+\define@key{NDC}{scale}{\renewcommand*{\NDC@scale}{#1}}
+\newdimen\NDCboxwidth
+\newdimen\NDCboxheight
+\newdimen\NDCboxdepth
+%
+\DeclareDocumentCommand \NDC@boxcap { m }{%
+ \begingroup%
+ % The model letter has no upper diacritical.
+ \def\@NDCmodel{}%
+ \IfSubStr{ÀÁÂÃÄÅĀĂ}{#1}{\def\@NDCmodel{A}}{}%
+ \IfSubStr{ĆĈĊČ}{#1}{\def\@NDCmodel{C}}{}%
+ \IfSubStr{Ď}{#1}{\def\@NDCmodel{D}}{}%
+ \IfSubStr{ÈÉÊËĒĔĖĚ}{#1}{\def\@NDCmodel{E}}{}%
+ \IfSubStr{ĜĞĠ}{#1}{\def\@NDCmodel{G}}{}%
+ \IfSubStr{Ĥ}{#1}{\def\@NDCmodel{H}}{}%
+ \IfSubStr{ÌÍÎÏĨĪĬİ}{#1}{\def\@NDCmodel{I}}{}%
+ \IfSubStr{Ĵ}{#1}{\def\@NDCmodel{J}}{}%
+ \IfSubStr{Ĺ}{#1}{\def\@NDCmodel{L}}{}%
+ \IfSubStr{ÑŃŇ}{#1}{\def\@NDCmodel{N}}{}%
+ \IfSubStr{ÒÓÔÕÖŌŎŐ}{#1}{\def\@NDCmodel{O}}{}%
+ \IfSubStr{ŔŘ}{#1}{\def\@NDCmodel{R}}{}%
+ \IfSubStr{ŚŜŠ}{#1}{\def\@NDCmodel{S}}{}%
+ \IfSubStr{Ť}{#1}{\def\@NDCmodel{T}}{}%
+ \IfSubStr{ÙÚÛÜŨŪŬŮŰ}{#1}{\def\@NDCmodel{U}}{}%
+ \IfSubStr{Ŵ}{#1}{\def\@NDCmodel{W}}{}%
+ \IfSubStr{ÝŶŸ}{#1}{\def\@NDCmodel{Y}}{}%
+ \IfSubStr{ŹŻŽ}{#1}{\def\@NDCmodel{Z}}{}%
+ \IfSubStr{DŽ}{#1}{\def\@NDCmodel{DZ}}{}% diglyph
+ \setlength\fboxsep{0.16\@SetFontSize}%
+ \setlength\fboxrule{0.02\@SetFontSize}%
+ \ifthenelse{\equal{\@NDCmodel}{}}{%
+ \framebox{\phantom{|}#1\phantom{|}}%
+ }{%
+ \framebox{\phantom{|\@NDCmodel}\llap{\smash{#1}}\phantom{|}}%
+ }%
+ \endgroup%
+}% end boxcap
+%
+\DeclareDocumentCommand \dropcap { s O{} m } {%
+ \@tempTFfalse%
+ \IfSubStr{#3}{png}{\@tempTFtrue}{}%
+ \IfSubStr{#3}{PNG}{\@tempTFtrue}{}%
+ \IfSubStr{#3}{jpg}{\@tempTFtrue}{}%
+ \IfSubStr{#3}{JPG}{\@tempTFtrue}{}%
+ \IfSubStr{#3}{jpeg}{\@tempTFtrue}{}%
+ \IfSubStr{#3}{JPEG}{\@tempTFtrue}{}%
+ \setcounter{NDC@lines}{\value{NDCDefaultLines}}%
+ \setcounter{NDC@depth}{\value{NDCDefaultDepth}}%
+ \setlength{\NDC@hoffset}{\NDCDefaultHoffset}%
+ \renewcommand*{\NDC@bloat}{\NDCDefaultBloat}%
+ \renewcommand*{\NDC@scale}{\NDCDefaultScale}%
+ \setlength{\NDC@voffset}{\NDCDefaultVoffset}%
+ \renewcommand*{\NDC@ante}{}%
+ \setlength{\NDC@Gap}{\NDCDefaultGap}%
+ \setlength{\NDC@Nindent}{0pt}%
+ \setkeys{NDC}{#2}%
+ \if@tempTF%
+ \def\@dropthisthing{\InlineImage[0em,b]{#3}}%
+ \else%
+ \IfBooleanTF{#1}%
+ {\def\@dropthisthing{\NDC@boxcap{#3}}}%
+ {\def\@dropthisthing{#3}}%
+ \fi%
+ \ifnum\value{NDC@lines}=1%
+ \par\noindent%
+ \NDC@ante%
+ \@dropthisthing%
+ \else%
+ % Compensate for effect of using \Rework:
+ \if@ReworkTrimSize%
+ \FPdiv{\@tempN}{\strip@pt\textwidth}{\strip@pt\@OriginalTextWidth}%
+ \FPmul{\NDC@bloat}{\NDC@bloat}{\@tempN}%
+ \else%
+ \if@ReworkMargins%
+ \FPdiv{\@tempN}{\strip@pt\textwidth}{\strip@pt\@OriginalTextWidth}%
+ \FPmul{\NDC@bloat}{\NDC@bloat}{\@tempN}%
+ \fi%
+ \fi%
+ \sbox{\NDC@normalXbox}{X}% Normal capital X.
+ \sbox{\NDC@dropcapbox}{\scalebox{\NDC@bloat}[1]{\NDC@char\@dropthisthing}}%
+ \@tempdima=\baselineskip%
+ \setlength{\NDC@first}{-\value{NDC@lines}\@tempdima}%
+ \addtolength{\NDC@first}{\@tempdima}%
+ \sbox{\@tempboxa}{X}%
+ \addtolength{\NDC@first}{-\ht\@tempboxa}%
+ \addtolength{\NDC@first}{\NDC@voffset}%
+ \addtolength{\NDC@first}{\ht\NDC@dropcapbox}%
+ \addtolength{\NDC@voffset}{-\value{NDC@lines}\@tempdima}%
+ \addtolength{\NDC@voffset}{\@tempdima}%
+ \par%
+ \setlength{\NDC@Pindent}{\wd\NDC@dropcapbox}%
+ \addtolength{\NDC@Pindent}{\NDC@hoffset}%
+ \settowidth{\NDC@first}{\NDC@ante}%
+ \addtolength{\NDC@Pindent}{\NDC@first}%
+ \addtolength{\NDC@Pindent}{\NDC@Gap}%
+ \setlength{\NDC@first}{\linewidth}%
+ \addtolength{\NDC@first}{-\NDC@Pindent}%
+ \addtolength{\NDC@Nindent}{\NDC@Pindent}%
+ \setlength{\NDC@next}{\linewidth}%
+ \addtolength{\NDC@next}{-\NDC@Nindent}%
+ \addtolength{\NDC@Pindent}{\rightmargin}%
+ \addtolength{\NDC@Nindent}{\rightmargin}%
+ \setlength{\NDCboxwidth}{\wd\NDC@dropcapbox}%
+ \setlength{\NDCboxheight}{\ht\NDC@dropcapbox}%
+ \setlength{\NDCboxdepth}{\dp\NDC@dropcapbox}%
+ \addtocounter{NDC@lines}{1}%
+ \addtocounter{NDC@lines}{\value{NDC@depth}}%
+ \def\NDC@parshape{\c@NDC@lines \the\NDC@Pindent \the\NDC@first}%
+ \@tempcnta=\tw@%
+ \@whilenum \@tempcnta<\c@NDC@lines\do{%
+ \edef\NDC@parshape{\NDC@parshape \the\NDC@Nindent \the\NDC@next}%
+ \advance\@tempcnta\@ne}%
+ \edef\NDC@parshape{\NDC@parshape \rightmargin \the\linewidth}%
+ \noindent%
+ \parshape=\NDC@parshape\relax%
+ \smash{%
+ \llap{%
+ \mbox{\NDC@ante}%
+ \raisebox{\NDC@voffset}{\usebox{\NDC@dropcapbox}}%
+ \hskip\the\NDC@Gap%
+ }%
+ }%
+ \fi%
+}% end @NDCdropcap
+%%
+
+
+%% In case the user prefers `lettrine':
+\gdef\@ActivateDropCaps{% called by `novel.cls' \AtBeginDocument
+ \@ifpackageloaded{lettrine}{%
+ \global\LettrineOnGridtrue % Necessary.
+ \gsetlength\DiscardVskip{10\nbs} % effectively infinite
+ }{ % For test purposes only:
+ \providecommand\lettrine[3][]{##2##3} % echoes its mandatory arguments
+ }%
+}% end \@ActivateDropCaps
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-DropCap.sty'.
+
diff --git a/macros/luatex/latex/novel/novel-FOGRA39.clo b/macros/luatex/latex/novel/novel-FOGRA39.clo
new file mode 100644
index 0000000000..dab3501fb9
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-FOGRA39.clo
@@ -0,0 +1,27 @@
+%%
+%% This is file `novel-FOGRA39.clo', part of `novel' document class.
+%% The values of the arguments are public industry standards.
+\ProvidesFile{novel-FOGRA39.clo}%
+[2018/01/14 any version. (novel Output Intent FOGRA39)]
+%%
+
+
+% Typically used in Europe.
+
+% Remember: TeX special characters must be backslashed here.
+% You may see % or # or _ in the data or file names.
+% Be sure that they are written as \% \# \_ or there will be trouble.
+
+% If any line is long, let it wrap. Do not attempt to break it onto multiple lines.
+
+\gdef\@OIidentifier{FOGRA39} % also called "reference name"
+\gdef\@OIcondition{Offset commercial and specialty printing according to ISO 12647-2:2004 / Amd 1, paper type 1 or 2 (gloss or matte coated offset, 115 g/m2), screen frequency 60/cm.}
+\gdef\@OIinfo{Coated FOGRA39 (ISO 12647-2:2004)}
+\gdef\@OIregistry{http://www.color.org}
+\gdef\@OIprofile{CoatedFOGRA39.icc}
+
+%%
+\endinput
+%%
+%% end of file `novel-FOGRA39.clo'
+
diff --git a/macros/luatex/latex/novel/novel-FileData.sty b/macros/luatex/latex/novel/novel-FileData.sty
new file mode 100644
index 0000000000..803ef635c0
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-FileData.sty
@@ -0,0 +1,208 @@
+%%
+%% This is file `novel-FileData.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-FileData.sty}%
+[2018/04/26 v1.52 LaTeX file (File Data settings)]
+%%
+
+
+%% File Data, also known as PDF Metadata, is non-printing identifying
+%% information in the PDF file. Some or all of it can be read by various
+%% PDF reader software.
+%% PDF/X is also considered File Data, as it concerns the structure of the
+%% file and its relationaship to printers, rather than its visible content.
+%% In principle, you could set the title as empty. But in that case, no other
+%% File Data will be included, and you cannot have PDF/X compliance.
+%% There are many more kinds of File Data that a PDF can include, such as
+%% subject and keywords. But `novel' is specifically for printing to paper,
+%% not for electronic documents that would be found by database search.
+%% Thus, there is no provision for such additional File Data.
+%% When you sign up with a print service, you will provide subject, keywords,
+%% and description directly to their database, rather than in the PDF.
+%% No need to set copyright in metadata, since your file is only for use by
+%% the print service, and is not being distributed as a PDF e-book.
+%% Your copyright notice is on the printed page, where it should be.
+%% Particularly note that your print service is NOT the publisher: YOU are!
+
+
+%% FILE DATA (PDF Metadata)
+%% ----------------------------------------------------------------------------
+%%
+% \title{} or \SetTitle{}
+% Copied to File Data at end of Preamble, unless not set.
+% Provides \theTitle anywhere.
+% If not set, PDF cannot conform to PDF/X.
+\newif \if@HasTitle % true if \SetTitle or \title used
+\gdef\SetTitle#1{\gdef\@title{#1}} % for stylistic consistency
+\gdef\title#1{\gdef\@title{#1}}
+\gdef\thetitle{\@title} % for convenience
+\gdef\theTitle{\@title}
+\SetTitle{IMPORTANT: Provide Book Title} % Default v. 1.46.1. Formerly empty.
+%
+% \author{} or \SetAuthor{}
+% Copied to File Data at end of preamble, unless not set.
+% Provides \theAuthor anywhere.
+\gdef\SetAuthor#1{\gdef\@author{#1}} % for stylistic consistency
+\gdef\author#1{\gdef\@author{#1}}
+\gdef\theauthor{\@author} % for convenience
+\gdef\theAuthor{\@author}
+\SetAuthor{}
+%
+% \subtitle{} or \SetSubtitle{} (if any)
+% Not copied to File Data by itself, as there is no such metadata entry.
+% Provides \theSubtitle anywhere.
+\gdef\SetSubtitle#1{\gdef\@subtitle{#1}} % for stylistic consistency
+\gdef\subtitle#1{\gdef\@subtitle{#1}}
+\gdef\thesubtitle{\@subtitle} % compatibility
+\gdef\theSubtitle{\@subtitle}
+\SetSubtitle{}
+%
+% \SetApplication{} (rarely used)
+% Also known as CreatorTool.
+% Name of the software that created the source document.
+% Changing this does not change the software, it just changes the information.
+% Normally leave as default, but can change if urgent.
+\gdef\SetApplication#1{\gdef\@novelApplication{#1}}
+\SetApplication{LuaLaTeX with novel and microtype} % default
+%
+% \SetProducer{} (rarely used)
+% Name of the software that compiles the source to make PDF.
+% Changing this does not change the software, it just changes the information.
+% Normally leave as default, but can change if urgent.
+\gdef\SetProducer#1{\gdef\@novelProducer{#1}}
+\SetProducer{LuaLaTeX with novel-pdfx and hyperref} % default
+%
+%% End file data.
+
+
+%% SET PDF/X ARGUMENTS
+%% ----------------------------------------------------------------------------
+%% \SetPDFX[Output Intent]{compliance standard} % No embed *.icc. Default.
+%% \SetPDFX*[Output Intent]{compliance standard} % Embed *.icc.
+%% Default up to and including v. 1.46: \SetPDFX{off}
+%% Default as of v. 1.46.1: \SetPDFX[CGATSTR001]{X-1a:2001}
+%
+% \@pdfxSEToff refers to the setting, rather than whether it really is off.
+% \@pdfxISoff refers to whether it really is off.
+\newif \if@pdfxSEToff % Prior to v. 1.46.1, was \ifpdfx@isOFF.
+\newif \if@pdfxISoff % New in v. 1.46.1.
+% These will get meaningful info when an output intent file is loaded:
+\gdef\@OIidentifier{}
+\gdef\@OIcondition{}
+\gdef\@OIinfo{}
+\gdef\@OIregistry{}
+\gdef\@OIprofile{}
+%
+%%
+\newif \if@HasConformance
+\newif \if@EmbedICC
+\gdef\SetPDFX{\@ifstar\@setpdfxst\@setpdfxns}
+\newcommand\@setpdfxst[2][CGATSTR001]{
+ \global\@EmbedICCtrue
+ \@setpdfx{#1}{#2}
+}
+\newcommand\@setpdfxns[2][CGATSTR001]{
+ \global\@EmbedICCfalse
+ \@setpdfx{#1}{#2}
+}
+%
+\newcommand\@setpdfx[2]{
+ \@tempTFfalse
+ \ifthenelse{\equal{#2}{off}}{
+ \@tempTFtrue
+ \global\@pdfxSETofftrue
+ \global\@pdfxISofftrue
+ }{}
+ \ifthenelse{\equal{#2}{X-1a:2001}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-1}
+ \gdef\@PDFXversion{PDF/X-1a:2001}
+ \gdef\@PDFXconformance{PDF/X-1a:2001}
+ \global\@HasConformancetrue
+ \global\pdfminorversion=3
+ }{}
+ \ifthenelse{\equal{#2}{X-1a:2003}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-1}
+ \gdef\@PDFXversion{PDF/X-1a:2003}
+ \gdef\@PDFXconformance{PDF/X-1a:2003}
+ \global\@HasConformancetrue
+ \global\pdfminorversion=3
+ }{}
+ \ifthenelse{\equal{#2}{X-3:2002}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-3}
+ \gdef\@PDFXversion{PDF/X-3:2002}
+ \global\pdfminorversion=3
+ }{}
+ \ifthenelse{\equal{#2}{X-3:2003}}{
+ \@tempTFtrue
+ \global\@pdfxSETofffalse
+ \global\@pdfxISofffalse
+ \gdef\@PDFversion{PDF/X-3}
+ \gdef\@PDFXversion{PDF/X-3:2003}
+ \global\pdfminorversion=4
+ }{}
+ \if@tempTF\else
+ \ClassError{novel}{Bad compliance argument for \string\SetPDFX}%
+ {Choose: X-1a:2001, X-1a:2003, X-3:2002, X-3:2003, off.}%
+ \fi
+ % Grab the file that defines the Output Intent information:
+ % File name format: novel-YourIntent.clo
+ % Setting: \SetPDFX[YourIntent]{compliance}
+ % Contents of file: See the above included Output Intent data.
+ \StrDel{#1}{\space}[\NPDFXOINS]
+ \IfFileExists{novel-\NPDFXOINS.clo}{\input{novel-\NPDFXOINS.clo}}{%
+ \ClassError{novel}{Bad Output Intent for \string\SetPDFX}%
+ {Use filename (without extension) of a file with *.clo extension. ^^J%
+ Filename must begin with novel- ^^J%
+ Example: File novel-FOGRA39.clo is called as [FOGRA39]. ^^J%
+ The file must be where TeX can find it. ^^J%
+ For contents of the file, see package documentation.}%
+ }{}%
+} % end \@setpdfx
+%
+\SetPDFX[CGATSTR001]{X-1a:2001} % Default, from v. 1.46.1. Formerly off.
+%%
+
+
+
+%% Neutralize file data settings:
+\gdef\@DisableFileDataSettings{% called by `novel.cls' \AtBeginDocument
+ \let\title\relax
+ \let\author\relax
+ \let\subtitle\relax
+ \LetLtxMacro\SetAuthor\relax
+ \LetLtxMacro\SetTitle\relax
+ \LetLtxMacro\SetSubtitle\relax
+ \LetLtxMacro\SetApplication\relax
+ \LetLtxMacro\SetProducer\relax
+ \LetLtxMacro\SetPDFX\relax
+}% end \@DisableFileDataSettings
+%%
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-FileData.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-Fonts.sty b/macros/luatex/latex/novel/novel-Fonts.sty
new file mode 100644
index 0000000000..11341046f0
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-Fonts.sty
@@ -0,0 +1,416 @@
+%%
+%% This is file `novel-Fonts.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-Fonts.sty}%
+[2018/04/26 v1.52 LaTeX file (font settings and defaults)]
+%%
+
+
+%% Package `fontspec' was previously loaded by `\novel.cls'.
+
+
+%% INITIALIZATION
+%% ----------------------------------------------------------------------------
+% Fonts are chosen in Preamble using \Set commands. But they are not activated
+% until \AtEndPreamble. Until then, the basic TeX font families must be
+% temporarily specified, so that certain packages can load without compliant.
+% These are Latin Modern fonts, which are Open Type and will work, but are not
+% stylistically suitable for works of fiction. The only reason they are
+% used here, is because just about every TeX installation has them.
+\gdef\rmdefault{lmr} % Latin Modern Roman
+\gdef\sfdefault{lmss} % Latin Modern Sans
+\gdef\ttdefault{lmtt} % Latin Modern Mono
+% The following might become unnecessary if fontspec adds the capability to
+% disable keys. For now: Color and Opacity cannot be used as font features,
+% for a black/white printed book. Alas, fontspec over-rules xcolor.
+% So, this code over-rules fontspec:
+\gdef\@CheckFontspecFeatures#1{%
+ \@tempTFfalse%
+ \IfSubStr{#1}{Color}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{Colour}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{color}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{colour}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{Opacity}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{opacity}{\@tempTFtrue}{}%
+ \if@tempTF%
+ \ClassError{novel}{Color and Opacity forbidden as font features}%
+ {You defined a font, or added a font feature, with Color or Opacity. ^^J%
+ That is disallowed in `novel' class.}%
+ \fi%
+} % end \@CheckFontspecFeatures
+% Default font features (will be changed later):
+\defaultfontfeatures{} % reset
+\defaultfontfeatures{SmallCapsFeatures={Renderer=Basic},Ligatures=TeX,} % all
+% Main and sans fonts: kerning, ligatures, and OldStyle numbers if available:
+\defaultfontfeatures[\rmfamily,\sffamily]%
+ {Kerning=On,Numbers=OldStyle,Ligatures=Common}
+% Fake \microtypesetup until package loaded by \@ActivateFonts, \AtEndPreamble:
+\newif \if@MicrotypeSet
+\gdef\microtypesetup#1{
+ \gdef\@mymicrotypesetup{#1} % used in novel-Fonts.sty
+ \global\@MicrotypeSettrue
+}%
+%% end initialization
+
+
+%% SETTINGS FOR PARENT FONT, DESCENDANTS, OTHERS
+%% ----------------------------------------------------------------------------
+% In `novel' you do not \usepackage{font name} or \RequirePackage{font name}.
+% You do not directly write \renewcommand\rmdefault{font name}.
+% You do not directly use \setmainfont[features]{font name}.
+% Instead, `novel' requires a `parent font' to be set. The parent font is
+% the ancestor of the main (normal) font, and several other descendants.
+% The parent font features, if any, should be a minimal set that will be
+% applied to all descendants. For example, if the font has an an alternate
+% style for a particular letter, and you want to use it for all descendants,
+% then you would spedify that feature for the parent font.
+% For now, these settings are merely stored. Later, \AtEndPreamble,
+% the main (normal) font inherits the settings for the parent font.
+% Other descendants inherit those settings, with their own features added.
+% Anything not set by you, will have a suitable default set automatically.
+\newif \if@ParentFontSet
+\gdef\parentfontfeatures{}
+\gdef\parentfontname{}
+\DeclareDocumentCommand \SetParentFont { O{} m O{} } {% from version 1.1.
+ \@CheckFontspecFeatures{#1,#3}
+ \gdef\parentfontfeatures{#1,#3}
+ \gdef\parentfontname{#2}
+ \global\@ParentFontSettrue
+}%
+\DeclareDocumentCommand \SetMasterFont { O{} m O{} } {% DEPRECATED
+ \@CheckFontspecFeatures{#1,#3}
+ \gdef\parentfontfeatures{#1,#3}
+ \gdef\parentfontname{#2}
+ \global\@ParentFontSettrue
+}%
+%
+% In a work of fiction, you probably do not need a sans or mono font.
+% But TeX expects you do have them. So, \AtEndPreamble, Libertinus Sans
+% and Libertinus Mono will be set as defaults, if you have those fonts.
+% Otherwise, Latin Modern Sans and Mono will be used, but they are not
+% well-suited to works of fiction.
+% If you wish to set your own sans and mono fonts, do it using standard
+% `fontspec' syntax. There is no special method in `novel' class:
+% \setsansfont[features]{font name}
+% \setmonofont[features]{font name}
+%
+% The headfont is used in headers and footers:
+\newif \if@HeadFontSet
+\gdef\@headfontfeatures{}
+\gdef\@headfontname{}
+\DeclareDocumentCommand \SetHeadFont { O{} m O{} } {% revised v 1.40.3
+ \@CheckFontspecFeatures{#1,#3}
+ \gdef\@headfontfeatures{Numbers=Lining,%
+ WordSpace=\@looseheadword,#1,#3}% loose letters added in head/foot styles
+ \gdef\@headfontname{#2}
+ \global\@HeadFontSettrue
+}%
+% The chapter font is used by the \ChapterTitle{} command:
+\newif \if@ChapterFontSet
+\gdef\@chapterfontfeatures{}
+\gdef\@chapterfontname{}
+\DeclareDocumentCommand \SetChapterFont { O{} m O{} } {%
+ \@CheckFontspecFeatures{#1,#3}
+ \gdef\@chapterfontfeatures{Numbers=Lining,#1,#3}
+ \gdef\@chapterfontname{#2}
+ \global\@ChapterFontSettrue
+}%
+% The subch font is used by the \ChapterSubtitle{} command:
+\newif \if@SubchFontSet
+\gdef\@subchfontfeatures{}
+\gdef\@subchfontname{}
+\DeclareDocumentCommand \SetSubchFont { O{} m O{} } {%
+ \@CheckFontspecFeatures{#1,#3}
+ \gdef\@subchfontfeatures{Numbers=Lining,#1,#3}
+ \gdef\@subchfontname{#2}
+ \global\@SubchFontSettrue
+}%
+% The deco font is used for decorations and acronyms.
+% It must be NovelDeco.otf or a font based on NovelDeco.otf. No other!
+\newif \if@DecoFontSet
+\newif \if@HasDecoFont
+\gdef\@decofontfeatures{}
+\gdef\@decofontname{}
+\DeclareDocumentCommand \SetDecoFont { O{} m O{} } {%
+ \@CheckFontspecFeatures{#1,#3}
+ \gdef\@decofontname{#2}
+ \global\@DecoFontSettrue
+ \global\@HasDecoFonttrue
+ \newfontface\decofont[#1,#3]{#2}
+}%
+% For syntax consistency:
+\ExplSyntaxOn
+\cs_new_eq:NN \NewFontFamily \newfontfamily
+\cs_new_eq:NN \NewFontFace \newfontface
+\cs_new_eq:NN \SetSansFont \setsansfont
+\cs_new_eq:NN \SetMonoFont \setmonofont
+\cs_new_eq:NN \SetMathFont \setmathfont
+\cs_new_eq:NN \AddFontFeatures \addfontfeatures
+\cs_new_eq:NN \AddFontFeature \addfontfeatures
+\ExplSyntaxOff
+% New in v. 1.50: built-in drop caps.
+\gdef\@DropCapFont{} % until actually set, will be default main font
+\gdef\@DropCapColorModel{} % until actually set, using `xcolor' syntax
+\gdef\@DropCapColorValue{black} % until actually set, using `xcolor' syntax
+\gdef\NDC@charstyle{}
+% The argument to \SetDropCapFont is a user-defined `fontspec' font command.
+% Example syntax, using `fontspec' in LuaLaTeX:
+% Create font command, such as: \newfontface\mynicefont[options]{fontname}
+% Then: \SetDropCapFont{\mynicefont}
+\newif \if@HasDropCapFont
+\DeclareDocumentCommand \SetDropCapFont { m } {%
+ \@HasDropCapFonttrue%
+ \gdef\@DropCapFont{#1}%
+ \gdef\NDC@charstyle{%
+ #1%
+ \if@HasDropCapColor%
+ \ifthenelse{\equal{\@DropCapColorModel}{}}{%
+ \color{\@DropCapColorValue}%
+ }{%
+ \color[\@DropCapColorModel]{\@DropCapColorValue}%
+ }%
+ \fi%
+ }%
+}%
+% The argument(s) to \SetDropCapColor use `xcolor' syntax:
+% [colormodel]{value} OR {colorname}
+\newif \if@HasDropCapColor
+\DeclareDocumentCommand \SetDropCapColor { O{} m } {%
+ \@setdropcapcolor[#1]{#2}%
+}% end \SetDropCapColor
+\DeclareDocumentCommand \@setdropcapcolor { O{} m } {%
+ \global\@HasDropCapColortrue%
+ \gdef\@DropCapColorModel{#1}%
+ \gdef\@DropCapColorValue{#2}%
+ \renewcommand\NDC@charstyle{%
+ \@DropCapFont%
+ \ifthenelse{\equal{\@DropCapColorModel}{}}{%
+ \color{\@DropCapColorValue}%
+ }{%
+ \color[\@DropCapColorModel]{\@DropCapColorValue}%
+ }%
+ }%
+}% end \@setdropcapcolor
+% for convenience:
+\ExplSyntaxOn
+\cs_new_eq:NN \SetDropcapFont \SetDropCapFont
+\cs_new_eq:NN \SetDropcapColor \SetDropCapColor
+\ExplSyntaxOff
+%
+% A default math font (which presumably you do not need) is chosen here.
+% You may over-ride using `unicode-math' syntax \setmathfont in Preamble.
+\IfFontExistsTF{Libertinus Math}{ % stylistically consisent with novel text
+ \setmathfont[BoldFont={libertinusmath-regular.otf}]%
+ {libertinusmath-regular.otf}
+}{
+ \IfFontExistsTF{Latin Modern Math}{}{% default for package `unicode-math'
+ }{ % The following hack allows you to proceed without a real math font,
+ % (but then you cannot print math):
+ \IfFontExistsTF{NovelDeco.otf}{%
+ \setmathfont[BoldFont={NovelDeco.otf}]{NovelDeco.otf} % fake math feature
+ \ClassWarning{novel}{^^JIgnore this if you used \string\setmathfont. ^^J%
+ Did not find suitable default math font. Used NovelDeco.otf. ^^J%
+ But NovelDeco does not have real math symbols. ^^J%
+ Math notation will print incorrectly. No problem if no math. ^^J}%
+ }{}% if no NovelDeco, do nothing here
+ }
+}%
+%% end settings for parent font and others.
+
+
+%% CREATING NEW FONT FONT FEATURES
+%% ----------------------------------------------------------------------------
+% \CreateFontFeature{substitutions}{feature code}
+% Problem: Font has one or more alternate glyphs that you would like to use,
+% but they are not listed in a feature set for the font.
+% Solution: Create your own feature set, with \CreateFontFeature. The created
+% feature may then be used like a real feature, in any font definition.
+% The substitutions are a comma-separated list, char=char.alt and so forth.
+% For example, the following substitutions are syntactically OK:
+% emdash=emdah.alt, one=one.rev, ntilde=ntilde.03
+% If a substitution is not available in a particular font, it is ignored.
+% You have to look at the font in a font editor, to know what is available.
+% It is possible to make silly substitutions, such as a=b, five=three without
+% throwing an error, unless your code causes a cycle.
+% The most useful application of this command is to reach alternate emdash,
+% and alternate oldstyle one. Not every font has these.
+% The feature code is a 4-character pseudo- Open Type code, otherwise unused.
+% For example, the feature code might be myfs (my fake substitution)
+% but it cannot be a pre-defined code such as lnum or smcp. It may be
+% a style set such as ss03 if you are sure that the font in question
+% do not already have ss03 (but this is taking a chance).
+% Once defined, you may use it like this (for example):
+% \SetParentFont[RawFeature=+myfs]{fontname}
+% \NewFontFamily\myfake[RawFeature=+myfs]{fontname}
+% In the document body: {\addfontfeature{myfs} text}
+\DeclareDocumentCommand \CreateFontFeature { m m } {%
+ \IfEndWith{#1}{,}{\StrGobbleRight{#1}{1}[\@fakezero]}{\def\@fakezero{#1}}
+ \def\@fakeone{"\@fakezero"}
+ \StrSubstitute{\@fakeone}{=}{"]="}[\@fakeone]
+ \StrSubstitute{\@fakeone}{,}{",\space["}[\@fakeone]
+ \directlua{
+ fonts.handlers.otf.addfeature {
+ name = "#2",
+ type = "substitution",
+ data = {\@fakeone},
+ }
+ }
+} %
+%% end \CreateFontFeature. Above thanks to fontspec 2016.
+
+
+%% ACTIVATE FONTS \AtEndPreamble
+%% ----------------------------------------------------------------------------
+\gdef\@ActivateFonts{% called by `novel.cls' \AtEndPreamble
+ % We begin with the parent font:
+ \if@coverart
+ \SetParentFont{NovelDeco.otf}
+ \fi
+ \if@ParentFontSet\else
+ \ifthenelse{\equal{\rmdefault}{lmr}}{%
+ % At this point, if \rmdefault is lmr, it means the user did not choose
+ % a different font. Then, Libertinus Serif or Latin Modern Roman
+ % will be automatically set as \rmdefault, if available:
+ \IfFontExistsTF{Libertinus Serif}{ % preferred default
+ \SetParentFont[%
+ BoldFont=libertinusserif-semibold.otf,%
+ BoldItalicFont=libertinusserif-semibolditalic.otf,%
+ ]{Libertinus Serif}
+ }{ % backup default, if Libertinus Serif not available:
+ \SetParentFont[%
+ SmallCapsFont={Latin Modern Roman Caps}%
+ ]{Latin Modern Roman}% only because it comes with LaTeX
+ \let\scshape\oldscshape % or small caps won't work
+ \let\smcp\oldscshape % or small caps won't work
+ }%
+ }{% However, if \rmdefault is not lmr, it means the user chose the font.
+ % If the choice was made via \SetParentFont, no problem. But if done by
+ % incorrect method such as \setmainfont, \renewcommand\rmdefault,
+ % or \usepackage{fontname}, an error is thrown:
+ \if@ParentFontSet\else
+ \ClassError{novel}{Wrong command used to set main font}%
+ {You tried to define the main document font the wrong way. ^^J%
+ Bad: \string\renewcommand\string\rmdefault{font}\space ^^J%
+ Bad: \string\usepackage{font package}\space ^^J%
+ Bad: \string\RequirePackage{font package}\space ^^J%
+ Bad: \string\setmainfont[features]{font}\sapce ^^J%
+ Those are incorrect in `novel' class. ^^J%
+ Use \string\SetParentFont[features]{font}\space instead. ^^J%
+ See `novel' documentation.}%
+ \fi
+ }%
+ \fi % end \if@ParentFontSet
+ % Now we are ready for the main (normal) font, descending from parent font:
+ \setmainfont[\parentfontfeatures]{\parentfontname}
+ \let\mainfont\rmfamily\relax % backwards compatibility
+ % The headfont, which descends from parent font:
+ \if@HeadFontSet\else % default if not user-set:
+ \SetHeadFont[Letters=SmallCaps,\parentfontfeatures,Scale=0.92]%
+ {\parentfontname}
+ \fi
+ \newfontfamily\headfont[\@headfontfeatures]{\@headfontname}
+ % The chapter font, descending from parent font:
+ \if@ChapterFontSet\else % if no user-set font, default:
+ \SetChapterFont[\parentfontfeatures,Scale=1.6]{\parentfontname}
+ \fi
+ \newfontfamily\chapterfont[\@chapterfontfeatures]{\@chapterfontname}
+ % The subch font, descending from parent font:
+ \if@SubchFontSet\else % if no user-set font, default:
+ \SetSubchFont[\parentfontfeatures,Scale=1.2]{\parentfontname}
+ \fi
+ \newfontfamily\subchfont[\@subchfontfeatures]{\@subchfontname}
+ % The remaining fonts are not descendants of parent font:
+ % The mono font:
+ \ifthenelse{\equal{\ttdefault}{lmtt}}{% over-ride:
+ \IfFontExistsTF{Libertinus Mono}{ % if available
+ \setmonofont[%
+ ItalicFont={},% Doesn't have these.
+ BoldFont={},%
+ BoldItalicFont={},%
+ ]{Libertinus Mono}
+ }{
+ \setmonofont{Latin Modern Mono}% backup
+ }
+ }{} % User \setmonofont, so leave alone.
+ % The sans font:
+ \ifthenelse{\equal{\sfdefault}{lmss}}{ % override:
+ \IfFontExistsTF{Libertinus Sans}{ % if available
+ \setsansfont{Libertinus Sans}
+ }{
+ \setsansfont{Latin Modern Sans}% backup
+ }
+ }{} % User \setsansfont, so leave alone.
+ % The decofont must be NovelDeco.otf or a user modification of that font:
+ \if@DecoFontSet\else
+ \IfFontExistsTF{NovelDeco.otf}{
+ \SetDecoFont{NovelDeco}
+ }{} % if not available, this will be detected below
+ \fi
+ % Decorative glyphs, only in this font. Should not be re-set by user.
+ \if@HasDecoFont % NovelDeco or a user-defined alternative was found:
+ \newfontface\@decoglyph[%
+ \@decofontfeatures,%
+ ]{\@decofontname}
+ \newfontface\@decoglypha[%
+ \@decofontfeatures,RawFeature=+ss01,%
+ ]{\@decofontname}
+ \newfontface\@decoglyphb[%
+ \@decofontfeatures,RawFeature=+ss02,%
+ ]{\@decofontname}
+ \newfontface\@decoglyphc[%
+ \@decofontfeatures,RawFeature=+ss03,%
+ ]{\@decofontname}
+ \fi% end \if@HasDecoFont
+ % New in version 1.50:
+ \if@HasDecoFont
+ \NewFontFace\decodropcapfont[RawFeature=+dcap]{\@decofontname}
+ \else
+ \NewFontFace\decodropcapfont[\parentfontfeatures,Numbers=Lining]%
+ {\parentfontname}
+ \fi
+ \if@HasDropCapFont\else
+ \SetDropCapFont{\decodropcapfont} % default
+ \fi
+ % This provides default microtype settings, allows the user to over-ride,
+ % and hopefully prevents the user from choosing inappropriate settings:
+ \let\microtypesetup\relax % fake command no longer needed
+ \if@MicrotypeSet % true if user wrote \microtypesetup{} in Preamble
+ \IfSubStr{\@mymicrotypesetup}{config}{% user specified own config file
+ \gdef\@mymicrotypeset{\@mymicrotypesetup}
+ }{ % default to novel's config file
+ \gdef\@mymicrotypeset{%
+ config=novel-microtype,final,\@mymicrotypesetup}
+ }
+ \else % user did not write \microtypesetup{} in Preamble
+ \gdef\@mymicrotypeset{%
+ config=novel-microtype,final,stretch=20,shrink=20}
+ \fi
+ \if@mtoff
+ \providecommand\textls[2][]{##2} % echoes its mandatory argument
+ \else
+ \RequirePackage[\@mymicrotypeset]{microtype}
+ \renewcommand\textls[2][]{##2} % nullifies the microtype command (problems)
+ \fi
+ % end microtypesetup
+%
+} % end \@ActivateFonts, called by `novel.cls' \AtEndPreamble.
+%%
+
+
+%%
+\endinput
+%%
+%% End of file `novel-Fonts.sty'
+
+
diff --git a/macros/luatex/latex/novel/novel-Footnotes.sty b/macros/luatex/latex/novel/novel-Footnotes.sty
new file mode 100644
index 0000000000..fb21fb1f7c
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-Footnotes.sty
@@ -0,0 +1,431 @@
+%%
+%% This is file `novel-Footnotes.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-Footnotes.sty}%
+[2018/04/26 v1.52 LaTeX file (commands for footnotes and endnotes)]
+%%
+
+
+
+%% Markers (superscript, subscripts):
+\newtoggle{@usesymbolmark} % true when footnote markers are symbolic
+\newtoggle{@realmarker} % true when OT features sups, sinf, subs requested
+%
+
+
+%% superscripts and subscripts
+\let\subs\relax
+\let\sups\relax
+\let\textsuperscript\relax
+\let\textsubscript\relax
+% Perhaps superscripts and subscripts (scientific) are in the font, or not.
+% Problem: The best fonts have these characters at size/weight designed
+% to mingle with normal size. But many fonts merely scaled characters,
+% which will be too light at the small size.
+% The unstarred version of these commands use the Open Type features when
+% they are present, then faking (auto scale/raise) if features not present.
+% The starred version just fakes, without regard for features.
+%
+
+% Note that the effect of these commands continues, not just one-shot:
+\gdef\realmarker{\global\toggletrue{@realmarker}} % anywhere in text
+\gdef\fakemarker{\global\togglefalse{@realmarker}} % anywhere in text
+\newlength\@hoAhl % height of Ahl, locally measured and set when needed
+%%
+\ExplSyntaxOn
+%
+\DeclareDocumentCommand \sups { m } {%
+ \iftoggle{@realmarker}{%
+ \fontspec_if_feature:nTF {sups}{%
+ \ifvmode\else\unskip\fi%
+ {\addfontfeature{VerticalPosition=Superior}\smash{#1}}%
+ }{%
+ \setlength\@hoAhl{\heightof{Ahl}}% local
+ \ifvmode\else\unskip\fi\charscale[0.7,0pt,0.5\@hoAhl]{#1}%
+ }%
+ }{%
+ \setlength\@hoAhl{\heightof{Ahl}}% local
+ \ifvmode\else\unskip\fi%
+ {\addfontfeature{Numbers=Lining}\charscale[0.7,0pt,0.5\@hoAhl]{#1}}%
+ }%
+}% end \sups
+%
+\DeclareDocumentCommand \subs { m } {%
+ \iftoggle{@realmarker}{%
+ \fontspec_if_feature:nTF {sinf}{%
+ \ifvmode\else\unskip\fi%
+ {\addfontfeature{VerticalPosition=ScientificInferior}\smash{#1}}%
+ }{%
+ \fontspec_if_feature:nTF {subs}{%
+ \ifvmode\else\unskip\fi%
+ {\addfontfeature{VerticalPosition=Inferior}\smash{#1}}%
+ }{%
+ \setlength\@hoAhl{\heightof{Ahl}}% local
+ \ifvmode\else\unskip\fi\charscale[0.7,0pt,-0.2\@hoAhl]{#1}%
+ }%
+ }%
+ }{%
+ \setlength\@hoAhl{\heightof{Ahl}}% local
+ \ifvmode\else\unskip\fi%
+ {\addfontfeature{Numbers=Lining}\charscale[0.7,0pt,-0.2\@hoAhl]{#1}}%
+ }%
+}% end \subs
+%
+\cs_new_eq:NN \textsuperscript \sups
+\cs_new_eq:NN \textsubscript \subs
+\ExplSyntaxOff
+%%
+
+
+
+% \SetMarkerStyle does two things.
+% Option real: OT features sups, sinf, subs requested. Fake if not available.
+% Option fake: Always fake OT features sups, sinf, subs.
+% Mandatory: asterisk, dagger, number. Pertains to footnote markers only.
+% No matter real or fake, the asterisk symbol is always real, and the
+% dagger, dbldagger, and section (when used as footnote markers)
+% are always partially faked.
+\newcommand\SetMarkerStyle[2][real]{
+ \def\@goodfnm{no}
+ \ifthenelse{\equal{#2}{asterisk}}{%
+ \def\@goodfnm{yes}\global\toggletrue{@usesymbolmark}%
+ \gdef\@myfnsymbols{*}}{}
+ \ifthenelse{\equal{#2}{dagger}}{%
+ \def\@goodfnm{yes}\global\toggletrue{@usesymbolmark}%
+ \gdef\@myfnsymbols{†}}{}
+ \ifthenelse{\equal{#2}{number}}{%
+ \def\@goodfnm{yes}\global\togglefalse{@usesymbolmark}}{}
+ \def\@goodfnk{no}
+ \ifthenelse{\equal{#1}{real}\OR\equal{#1}{}}{%
+ \def\@goodfnk{yes}\global\toggletrue{@realmarker}}{}
+ \ifthenelse{\equal{#1}{fake}}{%
+ \def\@goodfnk{yes}\global\togglefalse{@realmarker}}{}
+ \ifthenelse{\equal{\@goodfnm}{no}\OR\equal{\@goodfnk}{no}}{%
+ \ClassError{novel}{Bad choice for \string\SetMarkers}%
+ {Optional: real, fake. Required: asterisk, dagger, number.}%
+ }{}
+}
+\LetLtxMacro{\SetMarkers}{\SetMarkerStyle} % backward compatibilty pre-v1.40.3.
+%
+\SetMarkerStyle[real]{asterisk} % default
+%%
+
+
+
+%% FOOTNOTES
+%% ----------------------------------------------------------------------------
+% In `novel' class, you may place footnotes at the botom of the textblock.
+% The markers may be symbolic (default begins with asterisk), or
+% set so that the asterisk is not used, or the markers may be numbers,
+% If symbolic, they will be automatically reset by ChapterStart.
+% You can manually reset them at any time.
+% You can also make a non-marked footnote, which does not increment the count.
+
+
+% Lengths used to tweak vertical position of symbolic (text) footnote markers:
+\newlength\@twast % tweaks asterisk
+\newlength\@twdag % tweaks dagger
+\newlength\@twdbldag % tweaks double dagger
+\newlength\@twsect % tweaks section mark
+\newlength\@tweight % tweaks 8, reliably the tallest digit
+
+
+%% footnotesize is calculated by layout, based on normal font size and skip.
+%% It is used only for actual footnotes!
+
+%
+\newcounter{@fnsymbolcount} % counter, footenote symbolic markers
+ \setcounter{@fnsymbolcount}{1}
+\newcounter{@fnnumbercount} % counter, footnote numerical markers
+ \setcounter{@fnnumbercount}{1}
+\newcounter{@rnnumbercount} % counter, endnote markers (always numerical)
+ \setcounter{@rnnumbercount}{1}
+\newcounter{@maxfnsymbol} % max footnote symbol count before recycle
+%
+\gdef\ResetFootnote{% symbols or numbers
+ \setcounter{@fnsymbolcount}{1}%
+ \setcounter{@fnnumbercount}{1}%
+}
+\gdef\ResetFootnoteSymbol{\setcounter{@fnsymbolcount}{1}} % only symbols
+\gdef\Resetendnote{\setcounter{@rnnumbercount}{1}}
+%
+\newtoggle{@usenomark} % when true: no mark, no increment count
+\newtoggle{@placedfootnotenumber} % true if any numerical footnote placed
+%
+\let\@myoldfootnote\footnote\relax % copies the original definition
+\let\footnote\relax % so it can be re-defined, below
+%
+\gdef\@fourem{% length of rule separating footnotes from main text
+ \vspace{-\nbs}%
+ \noindent\strut\smash{\rule[-2pt]{0.33\textwidth}{0.05\@SetFontSize}}%
+}
+\let\footnoterule\@fourem
+%
+
+
+% \@makefnmark applies to the footnote marker in the flow of main text:
+\gdef\@makefnmark{\iftoggle{@usenomark}{}{\@getfnmark}}
+%
+\long\gdef\@makefntext#1{% the actual footnote, at bottom of textblock
+ \iftoggle{@usenomark}%
+ {\forceindent#1}%
+ {\forceindent\@getbotfnmark\,#1}%
+} % end \@makefntext
+% Now re-define \footnote:
+\newcommand\footnote[2][]{%
+ \ifthenelse{\equal{#1}{0}}{%
+ \global\toggletrue{@usenomark}%
+ }{%
+ \global\togglefalse{@usenomark}%
+ }%
+ \gdef\footnoterule{\vfill\@fourem}%
+ \begingroup%
+ \def\footnotesize{% Not gdef. Local to footnote. Calculated during layout.
+ \@setfontsize\footnotesize{\@myfootnotesizeN pt}{\@myfootnoteskipN pt}%
+ }%
+ \unskip\@myoldfootnote{#2}%
+ \endgroup%
+} % end \footnote
+%
+% \@rollfnsymbol prevents running out of symbolic markers:
+\gdef\@rollfnsymbol{%
+ \stepcounter{@fnsymbolcount}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{\value{@maxfnsymbol}}}{%
+ \setcounter{@fnsymbolcount}{1}%
+ }{}%
+} % end \@rollfnsymbol
+%
+% \@getfnmark places a footnote marker in the running text.
+% The marker depends upon whether it should be a number or a symbol.
+% If the latter, then it depends on whether the symbols include asterisks.
+% And, it depends upon the current count for that type of marker.
+\gdef\@getfnmark{%
+ \iftoggle{@usesymbolmark}%
+ {%
+ \global\togglefalse{@placedfootnotenumber}%
+ \ifthenelse{\equal{\@myfnsymbols}{*}}{%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{1}}{%
+ \charscale[1,0pt,-\@twast]{*}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{2}}{%
+ \charscale[0.8,0pt,-\@twdag]{†}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{3}}{%
+ \charscale[0.8,0pt,-\@twdbldag]{‡}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{4}}{%
+ \charscale[0.8,0pt,-\@twsect]{§}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{5}}{%
+ \charscale[1,0pt,-\@twast]{**}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{6}}{%
+ \charscale[0.8,0pt,-\@twdag]{††}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{7}}{%
+ \charscale[0.8,0pt,-\@twdbldag]{‡‡}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{8}}{%
+ \charscale[0.8,0pt,-\@twsect]{§§}%
+ }{}%
+ }{}%
+ \ifthenelse{\equal{\@myfnsymbols}{†}}{%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{1}}{%
+ \charscale[0.8,0pt,-\@twdag]{†}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{2}}{%
+ \charscale[0.8,0pt,-\@twdbldag]{‡}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{3}}{%
+ \charscale[0.8,0pt,-\@twsect]{§}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{4}}{%
+ \charscale[0.8,0pt,-\@twdag]{††}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{5}}{%
+ \charscale[0.8,0pt,-\@twdbldag]{‡‡}%
+ }{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{6}}{%
+ \charscale[0.8,0pt,-\@twsect]{§§}%
+ }{}%
+ }{}%
+ }{%
+ \global\toggletrue{@placedfootnotenumber}%
+ \sups{\arabic{@fnnumbercount}}%
+ }%
+} % end \@getfnmark
+%
+% \@getbotfnmark places the marker in front of the actual footnote,
+% towards the bottom of the textblock. It duplicates the marker used in
+% running text, but is not elevated. Then, it increments the relevant count.
+% Note that (unlike some other TeX document classes) this marker is at
+% the indent, so that the footnote text is farther inward than the indent.
+% This is the preferred style.
+\gdef\@getbotfnmark{%
+ \iftoggle{@usesymbolmark}%
+ {%
+ \ifthenelse{\equal{\@myfnsymbols}{*}}{%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{1}}{*}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{2}}{†}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{3}}{‡}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{4}}{§}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{5}}{**}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{6}}{††}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{7}}{‡‡}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{8}}{§§}{}%
+ }{}%
+ \ifthenelse{\equal{\@myfnsymbols}{†}}{%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{1}}{†}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{2}}{‡}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{3}}{§}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{4}}{††}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{5}}{‡‡}{}%
+ \ifthenelse{\equal{\value{@fnsymbolcount}}{6}}{§§}{}%
+ }{}%
+ \@rollfnsymbol%
+ }{%
+ \textrm{\arabic{@fnnumbercount}.}%
+ \stepcounter{@fnnumbercount}%
+ }%
+} %end \@getbotfnmark
+%
+%% end footnotes
+
+
+
+%% ENDNOTES. Behavior modified in v. 1.50 (added error messages).
+%% ----------------------------------------------------------------------------
+% \endnote only places a marker. It does not store a note for later use.
+% Any argument is non-printing. So \endnote{ancestry of yada} does not print
+% anything other than the endnote marker number, and does not save
+% `ancestry of Yada' for later use. The argument is a self-memo, so that you
+% remember why you want an endnote there, when you look at the source.
+% Following \endnote or \endnotetext with [ will produce an error.
+% Reason: Confuses novel's commands with those from banned `endnote' package.
+% Whenever \endnote is used, the marker number and page is added to a list,
+% and the list is typed into the log file after the document ends. That way,
+% you can hunt down where the endnotes markers were placed.
+\newtoggle{@gotendnotes} % true if \endnote used
+%
+\long\gdef\@endnotelist{}
+\newcounter{@endnotecount}
+%
+\def\@addendnote{%
+ \global\toggletrue{@gotendnotes}%
+ \stepcounter{@endnotecount}\sups{\arabic{@endnotecount}}%
+ \long\edef\@endnotelist{%
+ \@endnotelist\space (\arabic{@endnotecount},p.\thepage)%
+ }%
+}
+\def\@nendnote#1{\@addendnote}
+\def\@nenspace{\@addendnote\space}
+\def\@nenerror{%
+ \ClassError{novel}{\string\endnote\space cannot be followed by [ character}%
+ {To avoid possible confusion with similar command from other packages, ^^J%
+ you may not follow \string\endnote\space with [ character. ^^J%
+ However, you may do \string\endnote\string{\string}[ if desired.}%
+}
+\def\@ndospace{\@ifnextchar[\@nenerror\@nenspace}
+\def\endnote{\@ifnextchar\bgroup\@nendnote\@ndospace}
+%%
+% \endnotetext{ID}{text} where ID is (usually) the endnote number.
+% If ID is other than space or tilde, it prints at left margin, followed by
+% period. Then the entire text is block-indented. Only one paragraph allowed.
+% If ID is space or empty, then the entire text is block-indented. This is
+% the method for continuing a prior endnote to a new paragraph. The text
+% may begin with \forceindent, according to your needs.
+\def\@nentexterror{%
+ \ClassError{novel}{\string\endnotetext\space cannot be followed by [ character}%
+ {To avoid possible confusion with similar command from other packages, ^^J%
+ you may not follow \string\endnotetext\space with [ character. ^^J%
+ This command takes two mandatory arguments. No optional argument.}%
+}
+%
+\newcommand\nentext[2]{%
+ \ifthenelse{\equal{#1}{\space}\OR\equal{#1}{}}%
+ {\noindent\hangindent=\parindent\flexbox{\space}#2\par}%
+ {\noindent\hangindent=\parindent\flexbox{\lnum{#1}. }#2\par}%
+}
+% In case the user inadvertently uses systax from `endnotes' package:
+\def\endnotetext{\@ifnextchar[\@nentexterror\nentext}
+%
+%% end endnotes
+
+
+%% See novel.cls for the accompanying \AtBeginDocument routine.
+
+
+%% Pertains to some standard LaTeX footnote code:
+\AtBeginShipout{\gdef\@fnafter{}}
+%%
+
+
+\gdef\@ActivateFootnotes{% called by `novel.cls' \AtBeginDocument
+ % Pertains to novel-footnotes.sty:
+ \LetLtxMacro\SetMarkerStyle\relax
+ \gsetlength\footnotesep{0.8\nbs}
+ % Adjusted position of footnote markers. Must wait for main font size:
+ \gsetlength\@twast{\heightof{*}-\normalAringheight}
+ \gsetlength\@twdag{\heightof{†}}
+ \gsetlength\@twdag{0.8\@twdag-\normalAringheight}
+ \gsetlength\@twdbldag{\heightof{‡}}
+ \gsetlength\@twdbldag{0.8\@twdbldag-\normalAringheight}
+ \gsetlength\@twsect{\heightof{§}}
+ \gsetlength\@twsect{0.8\@twsect-\normalAringheight}
+ \gsetlength\@tweight{\heightof{8}}%
+ \gsetlength\@tweight{0.8\@tweight-\normalAringheight}%
+ % Must wait to see how \SetFootnoteMarker was used:
+ \ifthenelse{\equal{\@myfnsymbols}{*}}{\setcounter{@maxfnsymbol}{8}}{}
+ \ifthenelse{\equal{\@myfnsymbols}{†}}{\setcounter{@maxfnsymbol}{6}}{}
+ % Values to be used by footnotes:
+ \FPdiv{\@myFontScale}{\strip@pt\@SetFontSize}{12}
+ % Substitute for \footnotesize, but only works for actual footnotes,
+ % about 10pt with similarly reduced skip:
+ \FPmul{\@myfootnotesizeN}{\@myFontScale}{10}
+ \FPround{\@myfootnotesizeN}{\@myfootnotesizeN}{2}
+ \FPmul{\@myfootnoteskipN}{\@myFontScale}{\strip@pt\nbs}
+ \FPmul{\@myfootnoteskipN}{\@myfootnoteskipN}{0.84}
+ \FPround{\@myfootnoteskipN}{\@myfootnoteskipN}{2}
+}% end \@ActivateFootnotes
+
+
+
+
+
+
+%% ATENDDOCUMENT
+%% ----------------------------------------------------------------------------
+%% Write a list of endnote (number,page) into log file,
+% and Big Bad Warning if numerical footnotes and endnotes both used:
+\AtEndDocument{%
+ \iftoggle{@gotendnotes}{%
+ \typeout{^^JClass `novel' Alert: You placed endnotes (number,page): ^^J%
+ \@endnotelist ^^J}%
+ }{}
+ %
+ \iftoggle{@placedfootnotenumber}{%
+ \iftoggle{@gotendnotes}{%
+ \ClassWarning{novel}{^^JBIG BAD WARNING! You used numbered footnotes ^^J%
+ and numbered endnotes. Better change to symbolic footnotes! ^^J}%
+ }{}
+ }{}%
+}% end \AtEndDocument
+%%
+
+
+%%
+\endinput
+%%
+%% end of file `novel-Footnotes.sty'
+
diff --git a/macros/luatex/latex/novel/novel-HeadFootStyles.sty b/macros/luatex/latex/novel/novel-HeadFootStyles.sty
new file mode 100644
index 0000000000..e19000bb26
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-HeadFootStyles.sty
@@ -0,0 +1,498 @@
+%%
+%% This is file `novel-HeadFootStyles.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-HeadFootStyles.sty}%
+[2018/04/26 v1.52 LaTeX file (header and footer layouts and styles)]
+%%
+
+
+
+%% File `novel-LayoutSettings.sty' reserved space for header/footer,
+%% but did not place anything there. In this file, `fancyhdr' syntax
+%% defines the layout. The layout are not activated until
+%% \AtEndPreamble, and only if the user did not already define the layout
+%% in the Preamble.
+
+\gdef\@HeadFootStyle{1} % default: header but not footer
+\gdef\@VersoEmblem{} % no default emblem
+\gdef\@RectoEmblem{} % no default emblem
+
+
+%% SET HEADER/FOOTER STYLE AND RESERVE SPACE FOR HEADER/FOOTER
+%% ----------------------------------------------------------------------------
+% There are several pre-configured header/footer styles, addressing every
+% situation likely to be seen in popular fiction. The style details are
+% coded, using `fancyhdr' syntax, in novel-HeadFootStyles.sty.
+% If you wish to create a custom head/foot style, you must first choose
+% one of the pre-configured styles, then customize it. That way,
+% the layout engine knows whether header or footer are present.
+\newif \if@StyledHeader % true if user-customized header using \fancyhead
+\newif \if@StyledFooter % true if user-customized footer using \fancyfoot
+%
+\gdef\SetHeadFootStyle#1{%
+ \if@coverart
+ \gdef\@HeadFootStyle{0} % required: no header/footer for coverart
+ \ifthenelse{\equal{#1}{0}}{}{%
+ \ClassWarning{novel}{^^JClass option `coverart' does not %
+ allow header/footer. Ignored. ^^J}
+ }%
+ \else
+ \@tempTFfalse
+ \ifthenelse{\equal{#1}{0}}{%
+ \global\@HasHeaderfalse\global\@HasFooterfalse\@tempTFtrue%
+ }{}
+ \ifthenelse{\equal{#1}{1}}{%
+ \global\@HasHeadertrue\global\@HasFooterfalse\@tempTFtrue%
+ }{}
+ \ifthenelse{\equal{#1}{2}}{%
+ \global\@HasHeaderfalse\global\@HasFootertrue\@tempTFtrue%
+ }{}
+ \ifthenelse{\equal{#1}{3}}{%
+ \global\@HasHeaderfalse\global\@HasFootertrue\@tempTFtrue%
+ }{}
+ \ifthenelse{\equal{#1}{4}}{%
+ \global\@HasHeadertrue\global\@HasFooterfalse\@tempTFtrue%
+ }{}
+ \ifthenelse{\equal{#1}{5}}{%
+ \global\@HasHeadertrue\global\@HasFootertrue\@tempTFtrue%
+ }{}
+ \ifthenelse{\equal{#1}{6}}{%
+ \global\@HasHeadertrue\global\@HasFootertrue\@tempTFtrue%
+ }{}
+ % Ensure that user choice was on the allowed list:
+ \if@tempTF\else
+ \ClassError{novel}{Invalid choice for \string\SetHeadFootStyle}%
+ {\string\SetHeadFootStyle\space needs choice of 0,1,2,3,4,5,6, ^^J%
+ even if you wish to customize using fancyhdr syntax.}%
+ \fi
+ \gdef\@HeadFootStyle{#1}
+ \fi
+}%
+\SetHeadFootStyle{1} % default, header only
+\let\SetHeadStyle\SetHeadFootStyle\relax % deprecated
+%
+% \HeadJump is a number from 1 to 3 (may be decimal). It measures the
+% distance from baseline of header text, to first baseline of main text,
+% then divides by the normal baseline.
+% So, a \HeadJump of 1 means that the header text is positioned exactly
+% one line above main text (unlikely). A value of 2 skips a whole line.
+% The default value is 1.5, which is often used in popular fiction.
+% No matter what value is set, it will be re-set to 0 later, if the
+% choice of head/foot style does not have a header.
+% Likewise for \FootJump, measuring from baseline of lowermost main text,
+% to baseline of footer text.
+\gdef\SetHeadJump#1{%
+ \IfDecimal{#1}{%
+ \FPiflt{#1}{1}
+ \ClassError{novel}{\string\SetHeadJump\space must be at least 1}%
+ {\string\SetHeadJump\string from 1 to 3, may be decimal.}%
+ \fi
+ \FPifgt{#1}{3}
+ \ClassError{novel}{\string\SetHeadJump\space must not exceed 3}%
+ {\string\SetHeadJump\string from 1 to 3, may be decimal.}%
+ \fi
+ \gdef\@HeadJump{#1}
+ }{%
+ \ClassError{novel}{Unable to parse \string\SetHeadJump\space argument}%
+ {Needs integer or decimal, but not ending in decimal point or comma. ^^J%
+ Must be a number from 1 to 3, but may not be a macro.}%
+ }%
+}
+\SetHeadJump{1.5} % default
+%
+\gdef\SetFootJump#1{%
+ \IfDecimal{#1}{%
+ \FPiflt{#1}{1}
+ \ClassError{novel}{\string\SetFootJump\space must be at least 1}%
+ {\string\SetFootJump\string from 1 to 3, may be decimal.}%
+ \fi
+ \FPifgt{#1}{3}
+ \ClassError{novel}{\string\SetFootJump\space must not exceed 3}%
+ {\string\SetFootJump\string from 1 to 3, may be decimal.}%
+ \fi
+ \gdef\@FootJump{#1}
+ }{%
+ \ClassError{novel}{Unable to parse \string\SetFootJump\space argument}%
+ {Needs integer or decimal, but not ending in decimal point or comma. ^^J%
+ Must be a number from 1 to 3, but may not be a macro.}%
+ }%
+}
+\SetFootJump{1.5} % default
+%
+%% end set style and reserve space for header/footer.
+
+
+%% Used in novel-headfootstyles.sty:
+% \SetLooseHead looseness factor (fontspec LetterSpace) 0=tight, 50=default
+\gdef\SetLooseHead#1{
+ \FPdiv{\@loosehead}{#1}{10} % change method fontspec w/ microtype
+ \FPmin{\@looseheadN}{\@loosehead}{50} % don't want numbers too loose
+ \FPdiv{\@looseheadword}{\@loosehead}{30} % inter-word, new in v. 1.40.3
+ \FPadd{\@looseheadword}{\@looseheadword}{1}
+}
+\SetLooseHead{50}
+%%
+
+%
+% See docs for what these emblems do, if used:
+\newcommand\SetEmblems[2]{ % verso, recto
+ \gdef\@VersoEmblem{{\headfont #1}}
+ \gdef\@RectoEmblem{{\headfont #2}}
+}
+\let\SetEmblem\SetEmblems% for convenience
+% If you want something fancier than \thepage:
+\gdef\SetPageNumberStyle#1{% no small caps, so lowercase roman preserved
+ \gdef\pagenumberstyle{{\addfontfeature{Letters=ResetAll}#1}}
+}
+\SetPageNumberStyle{\thepage}% no small caps
+% See novel.cls for the accompanying AtBeginDocument routine.
+
+
+%% INITIALIZE FANCYHDR
+%% ----------------------------------------------------------------------------
+% Earlier, space was reserved for header/footer, but the content of
+% headers and footers was not specified. Now, package `fancyhdr'
+% will be used to create the content.
+% Start by loading package `fancyhdr' and blanking everything:
+\RequirePackage{fancyhdr}
+ \renewcommand\headrulewidth{0pt}
+ \renewcommand\footrulewidth{0pt}
+ \fancyhead[LO,RE,LE,RO,CE,CO]{}
+ \fancyfoot[LO,RE,LE,RO,CE,CO]{}
+% It might be useful to know whether something is being placed in main text,
+% or within a header/footer. A new boolean is created, which is only true
+% when within a header or footer. You can define macros so that they test
+% this boolean.
+% To make this work, \fancyhead and \fancyfoot are re-defined:
+\newtoggle{@inheadfoot} % true within header or footer
+\LetLtxMacro{\@myfancyhead}{\fancyhead}
+\LetLtxMacro{\@myfancyfoot}{\fancyfoot}
+\renewcommand\fancyhead[2][]{%
+ \global\@StyledHeadertrue%
+ \@myfancyhead[#1]{\toggletrue{@inheadfoot}{\normalsize #2}}% not global
+}
+\renewcommand\fancyfoot[2][]{%
+ \global\@StyledFootertrue%
+ \FPsub{\@footraise}{\@FootJump}{1}%
+ \FPmul{\@footraise}{-\@footraise}{\strip@pt\nbs}%
+ \@myfancyfoot[#1]{%
+ \toggletrue{@inheadfoot}% not global
+ \stake\smash{\raisebox{\@footraise pt}{\normalsize #2}}%
+ }%
+}
+%% end initialize fancyhdr.
+
+
+%% THISPAGESTYLE COMMANDS
+%% ----------------------------------------------------------------------------
+% Re-define \thispagestyle based on layout. When it requests only the page
+% number, decide what to do based on this command and whether footer is used:
+\newif \if@ThisPageStyle % true if \thispagestyle declared for current page
+\newif \if@DeleteCSline % true when using @dropfolioinside
+\AtBeginShipout{% re-sets when page done
+ \global\@DeleteCSlinefalse%
+ \global\@ThisPageStylefalse%
+}
+\LetLtxMacro{\@myTempTPS}{\thispagestyle}
+%
+\gdef\thispagestyle#1{%
+ \global\@ThisPageStyletrue%
+ \@tempTFfalse%
+ % Style `fancy' is same as normal style:
+ \ifthenelse{\equal{#1}{fancy}}{%
+ \@tempTFtrue%
+ \@myTempTPS{fancy}%
+ }{}%
+ % Style `empty' has no visible content in header or footer.
+ % This style is pre-defined, so no need to re-define it here.
+ \ifthenelse{\equal{#1}{empty}}{%
+ \@tempTFtrue%
+ \@myTempTPS{empty}%
+ }{}%
+ % Style `footer' has no visible content in header.
+ % If the normal style has a footer, it will be used as-is. However, if the
+ % normal style does not have a footer, then (unlike the above style)
+ % the page number will not be placed at bottom; as with style `empty'.
+ \ifthenelse{\equal{#1}{footer}}{%
+ \@tempTFtrue%
+ \if@HasFooter\@myTempTPS{@footer}%
+ \else\@myTempTPS{empty}%
+ \fi%
+ }{}%
+ % Style `forcenumber' is rarely used. If the normal style has a footer,
+ % it will be used as-is (presumably contains the page number), and there
+ % will be no visible content in the header.
+ % But if there is no normal footer, then the outside portion of the header
+ % is printed. No other portion of the header. Presumably the page number
+ % is located at the outside of the header.
+ \ifthenelse{\equal{#1}{forcenumber}}{%
+ \@tempTFtrue%
+ \if@HasFooter\@myTempTPS{@footer}%
+ \else\@myTempTPS{@forcenumber}%
+ \fi%
+ }{}%
+ % Style `dropfoliobeneath': There will be no visible content in header.
+ % If the normal style has a footer, it will be used as-is. This assumes
+ % that the page number is contained in the footer, the usual case.
+ % If the normal style has no footer, then the page number will be centered
+ % within the lower margin, at the position where an exta line would be.
+ % Thus, pagination of the main text is unaffected.
+ % Since the number is closer than usual to the page bottom edge, you must
+ % ensure that it does not intrude into the unsafe zone (where printers
+ % prohibit any printable matter). TeX cannot check this for you. However,
+ % you can define an Unsafe Zone, and inspect placement of the number
+ % in draft mode.
+ % Styles `plain*' and `fancyplain*' (with asterisk) are aliases.
+ \ifthenelse{\equal{#1}{dropfoliobeneath}%
+ \OR \equal{#1}{plain*} \OR \equal{#1}{fancyplain*}}{%
+ \@tempTFtrue%
+ \if@HasFooter\@myTempTPS{@footer}%
+ \else%
+ \@myTempTPS{@dropfoliobeneath}%
+ \typeout{^^JClass `novel' Alert: Page no. \thepage\space in margin. ^^J%
+ Review layout to ensure that this is within the Safe Area. ^^J%
+ }%
+ \fi%
+ }{}%
+ % Style `dropfolioinside': There will be no visible content in header.
+ % If the normal style has a footer, it will be used as-is. This assumes
+ % that the page number is contained in the footer, the usual case.
+ % If the normal style has not footer, then the page number will be centered
+ % where the last line of main text would ordinarily be. No extra gap.
+ % That may cause the (former) last line of main text to flow to the top of
+ % the next page, and so forth. However, if this page style is used on
+ % a page with ChapterStart, then the height of ChapterStart will be
+ % automatically reduced by one line, so that there is no repagination.
+ % Styles `plain', `fancyplain', `dropfolio', and `dropfoliolater' are aliases
+ % for `dropfolioinside'. I couldn't make up my mind regarding the
+ % command name. For compatibility, all these do the same thing.
+ \ifthenelse{\equal{#1}{dropfolioinside}%
+ \OR \equal{#1}{plain} \OR \equal{#1}{fancyplain}%
+ \OR \equal{#1}{dropfolio} \OR \equal{#1}{dropfoliolater}}{%
+ \@tempTFtrue%
+ \if@HasFooter\@myTempTPS{@footer}%
+ \else%
+ \global\@DeleteCSlinetrue%
+ \enlargethispage{-\nbs}%
+ \@myTempTPS{@dropfolioinside}%
+ \fi%
+ }{}%
+ % Verify that an allowable choice was made:
+ \if@tempTF\else%
+ \ClassError{novel}{^^JPage \thepage\space has \string\thispagestyle ^^J%
+ but its argument is not on the list of choices. See docs. ^^J}%
+ \fi%
+} % end \thispagestyle.
+%
+\let\dropfolionow\relax % compatibility with earlier version.
+%
+% Here are the thispagestyle definitions:
+\fancypagestyle{@footer}{ % blanks header, but leaves footer as-is
+ \renewcommand\headrulewidth{0pt}
+ \renewcommand\footrulewidth{0pt}
+ \fancyhead[LO,RE,LE,RO,CE,CO]{}
+}
+\fancypagestyle{@dropfolioinside}{ % page number where last line would be
+ \renewcommand\headrulewidth{0pt}
+ \renewcommand\footrulewidth{0pt}
+ \fancyhead[LO,RE,LE,RO,CE,CO]{}
+ \fancyfoot[LO,RE,LE,RO]{}
+ \fancyfoot[CO,CE]{%
+ \raisebox{\dimexpr\@FootJump\nbs}{\@lspagenum\pagenumberstyle}%
+ }
+}
+\fancypagestyle{@dropfoliobeneath}{ % page number in margin below text
+ \renewcommand\headrulewidth{0pt}
+ \renewcommand\footrulewidth{0pt}
+ \fancyhead[LO,RE,LE,RO,CE,CO]{}
+ \fancyfoot[LO,RE,LE,RO]{}
+ \fancyfoot[CO,CE]{%
+ \raisebox{\dimexpr\@FootJump\nbs-\nbs}{\@lspagenum\pagenumberstyle}%
+ }
+}
+\fancypagestyle{@forcenumber}{ % if has header but not footer
+ \renewcommand\headrulewidth{0pt}
+ \renewcommand\footrulewidth{0pt}
+ \fancyhead[LO,RE,LE,RO,CE,CO]{}
+ \fancyhead[LE]{%
+ \makebox[2.5em][l]{\@lspagenum\pagenumberstyle}%
+ \@VersoEmblem%
+ }
+ \fancyhead[RO]{%
+ \@RectoEmblem%
+ \makebox[2.5em][r]{\@lspagenum\pagenumberstyle}%
+ }
+ \fancyfoot[LO,RE,LE,RO,CE,CO]{}
+}
+%% end \thispagestyle commands.
+
+
+%%
+\gdef\@lshftext{\headfont\addfontfeature{LetterSpace=\@loosehead}}
+\gdef\@lspagenum{\headfont\addfontfeature{LetterSpace=\@looseheadN}}
+%%
+
+% Content of header text (if present) can be changed at any time within
+% the body, using the following commands. If not used, then
+% Verso is initialized to \theauthor and Recto is initialized to \thetitle
+% AtBeginDocument, with adjustments to interword spacing.
+% If you wish, you may write the commands with empty arguments, in which case
+% the header still appears with page number (if present), but no text.
+%
+\gdef\NewVersoHeadText#1{\gdef\versoheadtext{#1}}
+\let\SetVersoHeadText\NewVersoHeadText\relax % for convenience
+\let\RenewVersoHeadText\NewVersoHeadText\relax % for convenience
+%
+\gdef\NewRectoHeadText#1{\gdef\rectoheadtext{#1}}
+\LetLtxMacro\SetRectoHeadText\NewRectoHeadText\relax % for convenience
+\LetLtxMacro\RenewRectoHeadText\NewRectoHeadText\relax % for convenience
+%
+%%
+
+
+%% See AtBeginDocument routine in novel.cls:
+%% ----------------------------------------------------------------------------
+\gdef\@ActivateHeadFootStyles{ % called AtBeginDocument by novel.cls
+ % Pre-configured header/footer styles, unless user over-rode them:
+ % \versoheadtext is initialized to \theauthor
+ % \rectoheadtext is initialized to \thetitle
+ \@ifundefined{versoheadtext}{
+ \NewVersoHeadText{\theauthor} % revised in v. 1.40.3
+ }{}
+ \@ifundefined{rectoheadtext}{
+ \NewRectoHeadText{\thetitle} % revised in v. 1.40.3
+ }{}
+ %
+ % ---------------------------------------------------------------------------
+ % IF YOU ARE WRITING YOUR OWN HEADER/FOOTER LAYOUT:
+ % Look here for the pre-defined layouts, for use as models.
+ % Note that if you write \fancyhead or \fancyfoot in the Preamble,
+ % that sets the \@StyledHeader flag, so these codes do not over-ride yours.
+ % \@lshftext loosens text tracking.
+ % \@lspagenum loosens page number tracking, like \@lshftext but capped
+ % at a maximum looseness.
+ \ifthenelse{\equal{\@HeadFootStyle}{1}}{ % default
+ \if@StyledHeader\else
+ \fancyhead[LE]{%
+ \makebox[2.5em][l]{\@lspagenum\pagenumberstyle}%
+ \@VersoEmblem%
+ }
+ \fancyhead[RO]{%
+ \@RectoEmblem%
+ \makebox[2.5em][r]{\@lspagenum\pagenumberstyle}%
+ }
+ \fancyhead[CE]{\@lshftext\versoheadtext}
+ \fancyhead[CO]{\@lshftext\rectoheadtext}
+ \fi
+ }{}
+ %
+ \ifthenelse{\equal{\@HeadFootStyle}{2}}{
+ \global\@StyledHeaderfalse
+ \if@StyledFooter\else
+ \fancyfoot[LE]{%
+ \makebox[2.5em][l]{\@lspagenum\pagenumberstyle}%
+ \@VersoEmblem%
+ }
+ \fancyfoot[RO]{%
+ \@RectoEmblem%
+ \makebox[2.5em][r]{\@lspagenum\pagenumberstyle}%
+ }
+ \fi
+ }{}
+ %
+ \ifthenelse{\equal{\@HeadFootStyle}{3}}{
+ \if@StyledFooter\else
+ \fancyfoot[CO,CE]{\@lspagenum\pagenumberstyle}
+ \fi
+ }{}
+ %
+ \ifthenelse{\equal{\@HeadFootStyle}{4}}{
+ \if@StyledHeader\else
+ \fancyhead[LE]{%
+ \makebox[2.5em][l]{\@lspagenum\pagenumberstyle}%
+ \@VersoEmblem%
+ \hspace{1em}%
+ {\@lshftext\versoheadtext}%
+ }
+ \fancyhead[RO]{%
+ {\@lshftext\rectoheadtext}%
+ \hspace{1em}%
+ \@RectoEmblem%
+ \makebox[2.5em][r]{\@lspagenum\pagenumberstyle}%
+ }
+ \fi
+ }{}
+ %
+ \ifthenelse{\equal{\@HeadFootStyle}{5}}{
+ \if@StyledHeader\else
+ \fancyhead[CE]{\@lshftext\versoheadtext}
+ \fancyhead[CO]{\@lshftext\rectoheadtext}
+ \fi
+ \if@StyledFooter\else
+ \fancyfoot[CO,CE]{%
+ {\@lspagenum\pagenumberstyle}%
+ }
+ \fi
+ }{}
+ %
+ \ifthenelse{\equal{\@HeadFootStyle}{6}}{
+ \if@StyledHeader\else
+ \fancyhead[LE]{%
+ \makebox[2.5em][l]{\@lspagenum\pagenumberstyle}%
+ \@VersoEmblem%
+ }
+ \fancyhead[RO]{%
+ \@RectoEmblem%
+ \makebox[2.5em][r]{\@lspagenum\pagenumberstyle}%
+ }
+ \fancyhead[RE]{\@lshftext\versoheadtext}
+ \fancyhead[LO]{\@lshftext\rectoheadtext}
+ \fi
+ }{}
+ % END MODELS FOR WRITING YOUR OWN.
+ %
+ % END PRE-DEFINED LAYOUTS AND STYLES.
+ % ---------------------------------------------------------------------------
+ %
+ % Now put `fancyhdr' to work:
+ \pagestyle{fancy} % default unless over-ridden by \thispagestyle{}
+ %
+} % end \@ActivateHeadFootStyles
+%
+%%
+
+
+%% Neutralize settings that cannot be used after Preamble:
+\gdef\@DisableHeadFootSettings{% called by `novel.cls' \AtBeginDocument
+ \LetLtxMacro\SetHeadFootStyle\relax
+ \LetLtxMacro\SetHeadStyle\relax
+ \LetLtxMacro\SetHeadJump\relax
+ \LetLtxMacro\SetFootJump\relax
+ \LetLtxMacro\SetLooseHead\relax
+}% end \@DisableHeadFootSettings
+%%
+
+% The following settings can continue to be re-issued after \begin{document}:
+% \SetEmblems also \SetEmblem
+% \SetPageNumberStyle
+% \SetVersoHeadText also \New and \Renew
+% \SetRectoHeadText also \New and \Renew
+
+
+%%
+\endinput
+%%
+%% End of file `novel-HeadFootStyles.sty'
+
+
diff --git a/macros/luatex/latex/novel/novel-Images.sty b/macros/luatex/latex/novel/novel-Images.sty
new file mode 100644
index 0000000000..fc6261e072
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-Images.sty
@@ -0,0 +1,567 @@
+%%
+%% This is file `novel-Images.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-Images.sty}%
+[2018/04/26 v1.52 LaTeX file (image placement)]
+%%
+
+
+%% In `novel', images are handled with a view to preserving uniform line grid.
+%% Normally, a work of fiction has no (or very few) images within the main
+%% body of text. Images are more likely on display pages (such as title page)
+%% or in chapter starts, or maps.
+
+%% There are two ways to place an image: inline, or float.
+%% Inline image does not occupy its own block, but mingles with flowing text.
+%% Float image occupies its own block, which will be placed where the command
+%% is written, if it fits on that page. If it doesn't fit, then it will be
+%% placed at the top of the following page. Surrounding text will be
+%% typeset so at to not leave a big gap. Althouth TeX allows several
+%% options for positioning a float, `novel' only allows one method.
+
+%% Be sure to read the separate documentation about how to prepare images.
+%% In general: (1) png or jpg only. (2) Flattened, no transparency.
+%% (3) 300dpi (grayscale) or 600dpi (black/white) are industry norms.
+%% (4) Image file must contain its resolution. (5) Exact size, without scaling.
+%% (6) No private metadata. (7) Be sure grayscale is 1-channel, not rgb gray.
+
+
+%% Luacode and related macro thanks to user Marcel Krüger,
+%% at tex.stackexchange.com.
+\RequirePackage{luacode}
+\begin{luacode*}
+ function check_colorspaces(allowed_colorspace, name)
+ local doc = epdf.open(name);
+ if doc == nil then
+ tex.sprint(luatexbase.catcodetables['latex-package'],
+ "\\errmessage{Could not open " .. name .. "}{}{}\\@gobbletwo")
+ return;
+ else
+ for pageno=1,doc:getNumPages() do
+ local xobjs= doc:getCatalog():getPage(pageno):getResourceDict():lookup("XObject");
+ if not xobjs:isNull() then
+ for i=1,xobjs:dictGetLength() do
+ xobjDict = xobjs:dictGetVal(i):streamGetDict()
+ if xobjDict:lookup('Subtype'):getName() == 'Image' then
+ if not allowed_colorspace[xobjDict:lookup('ColorSpace'):getName()] then
+ tex.sprint(luatexbase.catcodetables['latex-package'], '\\@firstoftwo')
+ return
+ end
+ end
+ end
+ end
+ end
+ end
+ tex.sprint(luatexbase.catcodetables['latex-package'], '\\@secondoftwo')
+ return;
+end
+\end{luacode*}
+%
+\newcommand\PDFHasDisallowedColorspaceTF[1]{%
+ \directlua{check_colorspaces({DeviceCMYK=true, DeviceGray=true},"\luaescapestring{#1}")}%
+}
+%%
+%%
+\begin{luacode*}
+ function utf16to8(u16str)
+ local result = ""
+ local i = 1
+ if #u16str % 2 == 1 then
+ print("ERROR")
+ return
+ end
+ while i < #u16str do
+ local high, low = u16str:byte(i, i + 1)
+ i = i + 2
+ local current = bit32.replace(low, high, 8, 8)
+ if bit32.band(high, 0xFC) == 0xD8 then
+ current = bit32.replace(0, current, 10, 10)
+ if i > #u16str then
+ print("ERROR")
+ return
+ end
+ high, low = u16str:byte(i, i + 1)
+ i = i + 2
+ current = bit32.replace(current, bit32.replace(low, high, 8, 8), 0, 10) + 0x10000
+ elseif bit32.band(high, 0xFC) == 0xDC then
+ print("ERROR")
+ return
+ end
+ result = result .. unicode.utf8.char(current)
+ end
+ return result
+ end
+ function normalize_string(str)
+ if str:sub(1,2) == "\xFE\xFF" then
+ return utf16to8(str:sub(3,-3))
+ else
+ return str
+ end
+ end
+ function check_pdf_info(name, field, expected)
+ local doc = epdf.open(name);
+ if doc == nil then
+ tex.sprint(luatexbase.catcodetables['latex-package'],
+ "\\errmessage{Could not open " .. name .. "}{}{}\\@gobbletwo")
+ else
+ local producer = doc:getDocInfo():dictLookup(field)
+ if not producer:isNull() and normalize_string(producer:getString()) == expected then
+ tex.sprint(luatexbase.catcodetables['latex-package'], '\\@firstoftwo')
+ else
+ tex.sprint(luatexbase.catcodetables['latex-package'], '\\@secondoftwo')
+ end
+ end
+ end
+\end{luacode*}
+\newcommand\PDFVerifyInfoFieldTF[3]{\directlua{check_pdf_info("\luaescapestring{#1}", "\luaescapestring{#2}", "\luaescapestring{#3}")}}
+%%
+
+
+%% New in version 1.50, makecmyk script, with special syntax:
+\LetLtxMacro\@scriptincludepdf\includepdf\relax
+\providecommand\includepdf[2][]{}
+\renewcommand\includepdf[2][]{% from package `pdfpages'
+ \ClassError{novel}{Cannot use \string\includepdf\space command}%
+ {You can use novel-scripts `makegray' and `makebw' to convert pdf %%J%
+ to a raster jpg or png, suitable for placement as an image.}%
+}
+\gdef\ScriptCoverImage#1{%
+ \if@coverart%
+ \PDFVerifyInfoFieldTF{#1}{NSprocessed}{true}%
+ {\@scriptincludepdf{#1}}%
+ {\ClassError{novel}{Book cover pdf must be pre-processed by novel-scripts}%
+ {Each pdf processed by novel-scripts is marked internally. ^^J%
+ Your cover artwork pdf is unmarked. Use `makecmykpdf' script.}%
+ }%
+ \else%
+ \ClassError{novel}{Cannot use \string\ScriptCoverImage\space in interior}%
+ {\string\ScriptCoverImage\space only with `coverart' class option.}%
+ \fi%
+} %
+%%
+
+
+% Pertains to images:
+\newlength\imagewidth
+\newlength\imageheight
+\newlength\imagehoffset
+\newlength\imagevoffset
+\newlength\@imagewidth
+\newlength\@imageheight
+\newlength\@imagehoffset
+\newlength\@imagevoffset
+\newlength\@mytotalht
+\newif \if@UsingNovelCommand % true within \InlineImage etc.
+%%
+\gdef\imagestarred{false}
+\gdef\imagefilename{unknown}
+\setkeys{Gin}{draft=false} % always shows the image, not a box outline
+\LetLtxMacro\novel@sub@inclgr\includegraphics\relax
+\if@coverart\else % Need to allow it, for possible use by \includepdf in cover.
+ \renewcommand\includegraphics[2][]{%
+ \ClassError{novel}{Direct use of \string\includegraphics\space forbidden}%
+ {You may only place images using commands specific to `novel' class. ^^J%
+ See `novel' documentation, section 7.}%
+ }
+\fi
+%
+\newcommand\@TestImageExtension[1]{%
+ \@tempTFfalse%
+ \IfEndWith{#1}{.png}{\@tempTFtrue}{}%
+ \IfEndWith{#1}{.PNG}{\@tempTFtrue}{}%
+ \IfEndWith{#1}{.jpg}{\@tempTFtrue}{}%
+ \IfEndWith{#1}{.JPG}{\@tempTFtrue}{}%
+ \IfEndWith{#1}{.jpeg}{\@tempTFtrue}{}%
+ \IfEndWith{#1}{.JPEG}{\@tempTFtrue}{}%
+ \if@tempTF\else%
+ \ClassError{novel}{Image format `#1' not allowed, page \thepage}%
+ {Image `#1' has file type not allowed in `novel' class. ^^J%
+ Must have file extension png, jpg, jpeg (or capitalized). ^^J%
+ Others such as pdf, bmp, tiff, eps, svg, jp2, jbig, are not allowed. ^^J%
+ The file extension is mandatory. Provide it, if missing.}%
+ \fi%
+} %
+%%
+
+
+%% INLINE IMAGE
+%% ----------------------------------------------------------------------------
+% \InlineImage[xoffset,yoffset]{imagename.png} or jpg
+% As the name implies, an inline image is used within the flow of text, rather
+% than in its own block. It may be used in main body, header, and footer.
+% Macros such as \imagefilename, \imagewidth, etc.
+% are only set or re-set when the image in in the body. That prevents an
+% intervening header/footer image from over-writing values set by%
+% the most recent body image.
+% Without offsets, the image is positioned with is left edge at the cursor,
+% and its top edge at the text baseline. Positive offsets are right and up.
+% If improperly positioned, the image can overlie (obscure) text that was
+% previously placed. This is rarely desirable and may be flagged by
+% some print services, because it looks wrong.
+% The image will underlie anything that follows. This may be used as a
+% special effect, if allowed by the print service (probably OK).
+% With the un-starred command, the image occupies its natural cursor width.
+% With the starred command, the image occupies zero cursor width, so that
+% anything following will overlie it.
+\DeclareDocumentCommand \InlineImage { s O{0pt} m }{%
+ \@TestImageExtension{#3}%
+ \@tempTFfalse%
+ \if@pdfxSEToff%
+ \@tempTFtrue%
+ \else%
+ \IfSubStr*{\@UnknownImages}{#3}{\@tempTFtrue}{}%
+ \IfSubStr*{\@AllGoodImages}{#3}{\@tempTFtrue}{}%
+ \fi%
+ \if@tempTF\else\@NovelInspectImage{#3}\fi%
+ \StrDel{#2}{\space}[\@myila]%
+ \StrCut{\@myila}{,}{\@myilxa}{\@myilya}%
+ \ifthenelse{\equal{\@myilxa}{} \OR \equal{\@myilxa}{0}}{%
+ \def\@myilx{0pt}}{\def\@myilx{\@myilxa}%
+ }%
+ \ifthenelse{\equal{\@myilya}{} \OR \equal{\@myilya}{0}}{%
+ \def\@myily{0pt}}{\def\@myily{\@myilya}%
+ }%
+ \iftoggle{@inheadfoot}{}{\gdef\imagefilename{#3}}% for possible later use
+ \global\@UsingNovelCommandtrue%
+ \gdef\@mygraphic{\novel@sub@inclgr{#3}}%
+ \gdef\@mygraphicname{#3}%
+ \setlength\@imagewidth{\widthof{\@mygraphic}}%
+ \global\@imagewidth=\@imagewidth%
+ \iftoggle{@inheadfoot}{}{\setlength\imagewidth{\@imagewidth}}%
+ \setlength\@imageheight{\heightof{\@mygraphic}}%
+ \global\@imageheight=\@imageheight%
+ \iftoggle{@inheadfoot}{}{%
+ \setlength\imageheight{\@imageheight}%
+ \global\imageheight=\imageheight%
+ }%
+ %
+ \setlength\@imagehoffset{\@myilx}%
+ \IfBeginWith{\@myily}{b}{%
+ \StrDel[1]{\@myily}{b}[\temp@adjVoffseta]%
+ \ifthenelse{\equal{\temp@adjVoffseta}{} \OR \equal{\temp@adjVoffseta}{0}}{%
+ \def\temp@adjVoffset{0pt}}{\def\temp@adjVoffset{\temp@adjVoffseta}%
+ }%
+ \setlength\@imagevoffset{\temp@adjVoffset}%
+ }{%
+ \setlength\@imagevoffset{-\@imageheight}%
+ \addtolength\@imagevoffset{\@myily}%
+ }%
+ %
+ \IfBooleanTF{#1}%
+ % starred:
+ {%
+ \iftoggle{@inheadfoot}{}{\gdef\imagestarred{true}}%
+ \makebox[0pt][l]{%
+ \hspace{\@imagehoffset}%
+ \stake\smash{\raisebox{\@imagevoffset}{\@mygraphic}}%
+ }%
+ }%
+ % unstarred:
+ {%
+ \iftoggle{@inheadfoot}{}{\gdef\imagestarred{false}}%
+ \hspace{\@imagehoffset}%
+ \stake\smash{\raisebox{\@imagevoffset}{\@mygraphic}}%
+ }% end IfBooleanTF{#1}
+ \iftoggle{@inheadfoot}{}{\setlength\imagehoffset{\@imagehoffset}}%
+ \iftoggle{@inheadfoot}{}{\setlength\imagevoffset{\@imagevoffset}}%
+ \global\@UsingNovelCommandfalse%
+} %
+% end Inline Image
+%%
+
+
+%% FLOAT IMAGE
+%% ----------------------------------------------------------------------------
+%% New in v.1.50. \FloatImage. Centered unless offset.
+% \FloatImage[floatmethod,xoffset,yoffset]{yourimagename.png} % or jpg
+% This is a substitute for other floats. Does not require `float' package.
+% Default: [ht,0pt,\nfs].
+% Method ht attempts to place the image where the code is written. But if it
+% doesn't fit on that page, it will float to the top of the next page.
+% Method b attempts to place the image on the bottom of the page where the
+% code is written. If not, it floats to the bottom of the next page.
+% Allowed float methods: ht hb t b. Equivalent to LaTeX floats with !.
+% Parsing the optional argument: comma-separated values, ignoring space.
+% May be empty before or between commas.
+% Example: [,,2em] is read as default method, xoffset 0pt, yoffset 2em.
+% Example: [b] is valid, because a single value is read as method.
+\providecommand*\floatlocation[2]{\@namedef{fps@#1}{#2}}
+\floatlocation{figure}{!ht} % default
+\gdef\ftype@figure{1} % mystery TeX code
+\DeclareDocumentCommand \FloatImage { s O{ht} m } {% starred not in use
+ \iftoggle{@inheadfoot}{%
+ \ClassError{novel}{Cannot use \string\FloatImage\space in header/footer}%
+ {Header footer allow \string\InlineImage, but not \string\FloatImage.}%
+ }{}%
+ \@TestImageExtension{#3}%
+ \@tempTFfalse%
+ \if@pdfxSEToff%
+ \@tempTFtrue%
+ \else%
+ \IfSubStr*{\@UnknownImages}{#3}{\@tempTFtrue}{}%
+ \IfSubStr*{\@AllGoodImages}{#3}{\@tempTFtrue}{}%
+ \fi%
+ \if@tempTF\else\@NovelInspectImage{#3}\fi%
+ % Sadly, parsing with `xstring' involves roundabout code:
+ \StrDel{#2}{\space}[\@tempArgs]%
+ \StrCut{\@tempArgs}{,}{\@tempArgA}{\@tempArgX}%
+ \StrCut{\@tempArgX}{,}{\@tempArgB}{\@tempArgC}%
+ \ifthenelse{\equal{\@tempArgA}{}}{%
+ \def\@tempArgAa{ht}%
+ }{%
+ \def\@tempArgAa{\@tempArgA}%
+ }%
+ \ifthenelse{\equal{\@tempArgB}{0}\OR\equal{\@tempArgB}{}}{%
+ \def\@tempArgBb{0pt}%
+ }{%
+ \def\@tempArgBb{\@tempArgB}%
+ }%
+ \ifthenelse{\equal{\@tempArgC}{0}\OR\equal{\@tempArgC}{}}{%
+ \def\@tempArgCc{0pt}%
+ }{%
+ \def\@tempArgCc{\@tempArgC}%
+ }%
+ \StrDel{\@tempArgAa}{!}[\@tempArgAa]%
+ \@tempTFfalse%
+ \ifthenelse{\equal{\@tempArgAa}{ht}}{\@tempTFtrue}{}%
+ \ifthenelse{\equal{\@tempArgAa}{hb}}{\@tempTFtrue}{}%
+ \ifthenelse{\equal{\@tempArgAa}{t}}{\@tempTFtrue}{}%
+ \ifthenelse{\equal{\@tempArgAa}{b}}{\@tempTFtrue}{}%
+ \if@tempTF\else%
+ \ClassWarning{novel}{Incorrect position for \string\FloatImage, ^^J%
+ page \thepage. Default position ht substituted.}%
+ \fi%
+ \floatlocation{figure}{!\@tempArgAa}% enable current float method
+ %\vfil% One l.
+ \@float{figure}%
+ \@FloatImage{\@tempArgBb}{\@tempArgCc}{#3}%
+ \end@float\par%
+ \floatlocation{figure}{!ht}% restore default float method
+ \null%
+ \vspace{0.01pt plus 0pt minus 0.02pt} % caulk
+} %
+%
+
+%% Environment @floatimagegap. Only used by \@FloatImage command.
+% Creates a gap at fixed height, regardless of content.
+% Needs to compensate for prior line depth.
+\newcounter{@gaplines} % passes the argument down to environment end
+\DeclareDocumentEnvironment {@floatimagegap} { m } {%
+ \par%
+ \null%
+ \vspace*{-\nbs}%
+ \begin{textblock*}{\textwidth}[0,0](0pt,0pt)%
+ \setcounter{@gaplines}{#1}%
+ \strut\par%
+ \vspace*{-\nbs}%
+}{% close the environment:
+ \end{textblock*}%
+ \par%
+ \vspace*{#1\nbs}%
+} %
+%%
+\DeclareDocumentCommand \@FloatImage { m m m }{% DO NOT CALL DIRECTLY
+ \global\@UsingNovelCommandtrue%
+ \gdef\@mygraphic{\novel@sub@inclgr[scale=\@TMratio]{#3}}%
+ \gdef\@mygraphicname{#3}%
+ \gsetlength\@imagewidth{\widthof{\@mygraphic}}%
+ \gsetlength\@imageheight{\heightof{\@mygraphic}}%
+ \setlength\@imagehoffset{#1}%
+ \setlength\@imagevoffset{#2-\@imageheight+\normalXheight}%
+ \setlength\@mytotalht{\@imageheight+0.3\nbs}%
+ \FPdiv{\@mytotalhtN}{\strip@pt\@mytotalht}{\strip@pt\nbs}%
+ \FPadd{\@mytotalhtN}{\@mytotalhtN}{0.5}% round upward
+ \FPround{\@mytotalhtN}{\@mytotalhtN}{0}% to integer
+ \FPmin{\@allowmyoverflow}{\@mytotalhtN}{\@LinesPerPage}% not exceeding lpp
+ % If a full-page image is too tall for a page, standard TeX float will
+ % delay it until the time that floats are cleared, typically by \clearpage.
+ % That would probably be at the end of a chapter.
+ % In `novel' this behavior is hacked. Regardless of the image's actual
+ % height, it is treated as if its height does not exceed whatever will
+ % fit on a single page. Then, a full-page float will appear at the first
+ % opportunity, rather than being delayed. As a consquence, an oversized
+ % full-page float may overflow into the footer or bottom margin.
+ % To fix that (if it matters), you need to edit the image in graphics.
+ \begin{@floatimagegap}{\@allowmyoverflow}%
+ \vspace*{-\nfs}%
+ \null%
+ {\centering%
+ \makebox[0pt][l]{%
+ \hspace{\dimexpr\@imagehoffset-0.5\@imagewidth}%
+ \stake\smash{\raisebox{\@imagevoffset}{\@mygraphic}}%
+ }%
+ \par%
+ }%
+ \end{@floatimagegap}%
+ \global\@UsingNovelCommandfalse%
+} %
+% end Float Image
+%%
+
+
+%% WRAP IMAGE
+%% New in v. 1.50. Wraps text around an image, with limited float support.
+% This is a shim to `wrapfig' package. Since `novel' uses its own method for
+% placing images, environments defined in `wrapfig' cannot be used directly.
+% \WrapImage[position]{image} % default position r
+% Optional position is same as with `wrapfig':
+% l r o i places image "exactly here", left, right, outside, inside.
+% L R O I allows image to float.
+% Since novel's \InlineImage normally can be over-written by following text,
+% it needs an accompanying \rule to act as a strut.
+%
+\RequirePackage{wrapfig}
+%
+\DeclareDocumentCommand\WrapImage { O{r} m } {%
+ \begin{wrapfloat}{figure}{#1}{0pt}%
+ \InlineImage[0pt,\normalXheight]{#2}%
+ \rule[\dimexpr\normalXheight-\imageheight]{0pt}%
+ {\dimexpr\imageheight-\normalXheight+0.3\nfs}%
+ \end{wrapfloat}%
+}%
+\LetLtxMacro\wrapimage\WrapImage\relax
+% end Wrap Image.
+%%
+
+
+%% New in version 1.52: read file bytes as plain text, for later parsing.
+% Output is comma-separated list of byte codes, decimal 0-255.
+% Returns -1 if requested start is more than file size.
+% Returns all bytes if requested number exceeds file size.
+% Does not test if file exists; error if not found.
+\DeclareDocumentCommand\novelgetbytes { m m m } {%
+ % filename, start byte number (0=beginning, e=up to end), number of bytes
+ \ifthenelse{\equal{#2}{e}}{% package xifthen
+ \long\edef\novelbytesare{%
+ \directlua{
+ inp = assert(io.open("#1", "rb"))
+ local e=inp:seek("end")
+ if #3>e+1 then
+ inp:seek("set")
+ local r=inp:read(e)
+ sep=""
+ for i,_ in string.bytes(r)
+ do
+ tex.sprint(sep)
+ sep=","
+ tex.sprint(i)
+ end
+ else
+ local b=e-2-math.min(e,#3)
+ local w=1+math.min(e,#3)
+ inp:seek("set",b)
+ local r=inp:read(w)
+ sep=""
+ for i,_ in string.bytes(r)
+ do
+ tex.sprint(sep)
+ sep=","
+ tex.sprint(i)
+ end
+ end
+ }%
+ }%
+ }{%
+ \long\edef\novelbytesare{%
+ \directlua{
+ inp = assert(io.open("#1", "rb"))
+ local e=inp:seek("end")
+ if #2>e then tex.sprint(-1) else
+ local w=math.min(#3,e-#2)
+ inp:seek("set",#2)
+ local r=inp:read(w)
+ sep=""
+ for i,_ in string.bytes(r)
+ do
+ tex.sprint(sep)
+ sep=","
+ tex.sprint(i)
+ end
+ end
+ }%
+ }%
+ }%
+} % end @novelgetbytes
+
+%%
+% png bit depth is 8 for ordinary color or gray, 1 for b/w monochrome.
+% Although png allows more than 8, `novel' does not.
+\def\novelpngbitdepth#1{\novelgetbytes{#1}{24}{1}\novelbytesare}
+% png color type: 0=grayscale (incl. b/w).
+% `novel' only permits colortype 0 for non-color book interiors.
+% other: 2=rgb, 3=indexed rgb, 4=gray alpha, 6=rgb alpha.
+\def\novelpngcolortype#1{\novelgetbytes{#1}{25}{1}\novelbytesare}
+%%
+
+%%
+% Examine png or jpg image for novel-make as comment:
+% Known-good images, will not be inspected. Comma-separated list:
+\newcommand\SetKnownGoodImages[1]{
+ \gdef\@KnownGoodImages{#1}
+}
+\SetKnownGoodImages{} % default empty
+\gdef\@AllGoodImages{}
+\gdef\@UnknownImages{}
+%
+\gdef\@GatherGoodImages{% called \AtBeginDocument by `novel.cls'.
+ \let\SetKnownGoodImages\relax
+ \xdef\@AllGoodImages{\@KnownGoodImages\space \@AllGoodImages}
+ \if@pdfxSEToff
+ \xdef\@AllGoodImages{\@KnownGoodImages}
+ \xdef\@UnknownImages{}
+ \fi
+}
+% This is the (decimal) code string:
+\gdef\@novelmake{110,111,118,101,108,109,97,107,101}
+%
+\newcommand\@NovelInspectImage[1]{%
+ \StrRight{#1}{3}[\tempEXT]%
+ \ifthenelse{\equal{\tempEXT}{png} \OR \equal{\tempEXT}{PNG}}{%
+ \novelgetbytes{#1}{e}{256}%
+ }{% jpg or JPG:
+ \novelgetbytes{#1}{0}{256}%
+ }%
+ \IfSubStr{\novelbytesare}{\@novelmake}{%
+ \xdef\@AllGoodImages{\@AllGoodImages\space #1}%
+ }{%
+ \xdef\@UnknownImages{\@UnknownImages\space #1}%
+ }%
+}
+%%
+
+
+%% Called \AfterEndDocument by `novel.cls`:
+\long\gdef\@WarnUnknownImages{%
+ \@tempTFfalse%
+ \ifthenelse{\equal{\@UnknownImages}{}}{}{\@tempTFtrue}%
+ \if@pdfxSEToff\@tempTFfalse\fi%
+ \if@tempTF%
+ \typeout{^^JClass `novel' Alert: Some images not processed by scripts.^^J%
+ \space List of unprocessed images: \@UnknownImages ^^J%
+ \space Above list does not include any `known good' set by you. ^^J^^J}%
+ \ClassWarning{novel}{\@testintentional %
+ Some images may not meet PDF/X specifications. ^^J%
+ See near end of log file for `Some images not processed by scripts`. ^^J}%
+ \fi%
+}
+%%
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-Images.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-JC200103.clo b/macros/luatex/latex/novel/novel-JC200103.clo
new file mode 100644
index 0000000000..578f883adb
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-JC200103.clo
@@ -0,0 +1,27 @@
+%%
+%% This is file `novel-JC200103.clo', part of `novel' document class.
+%% The values of the arguments are public industry standards.
+\ProvidesFile{novel-JC200103.clo}%
+[2018/01/14 any version. (novel Output Intent JC200103)]
+%%
+
+
+% Typically used in Japan.
+
+% Remember: TeX special characters must be backslashed here.
+% You may see % or # or _ in the data or file names.
+% Be sure that they are written as \% \# \_ or there will be trouble.
+
+% If any line is long, let it wrap. Do not attempt to break it onto multiple lines.
+
+\gdef\@OIidentifier{JC200103} % also called "reference name"
+\gdef\@OIcondition{Japan Color 2001 Coated: Printing process definition: ISO 12647-2:2004, sheet-fed offset printing, positive plates, paper type 3 (coated, 105 gsm), screen frequency 69/cm.}
+\gdef\@OIinfo{Japan Color 2001 Coated}
+\gdef\@OIregistry{http://www.color.org}
+\gdef\@OIprofile{JapanColor2001Coated.icc}
+
+%%
+\endinput
+%%
+%% end of file `novel-JC200103.clo'
+
diff --git a/macros/luatex/latex/novel/novel-LayoutSettings.sty b/macros/luatex/latex/novel/novel-LayoutSettings.sty
new file mode 100644
index 0000000000..690a4b03e6
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-LayoutSettings.sty
@@ -0,0 +1,435 @@
+%%
+%% This is file `novel-LayoutSettings.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-LayoutSettings.sty}%
+[2018/04/26 v1.52 LaTeX file (layout settings)]
+%%
+
+
+%% Note that nearly all layout settings are pre-configured based on Trim Size.
+%% In general, these user commands may be used to over-ride the presets.
+
+
+
+%% SIZE-RELATED COMMANDS AVAILABLE IN PREAMBLE.
+%% ----------------------------------------------------------------------------
+%% Use if necessary for customization.
+%% If you like a class option that pre-sets these values,
+%% then you do not have to use any of these commands.
+%
+% Note: This class does not ask you to set the width/height of the textblock.
+% Instead, these values are automatically calculated from other dimensions.
+
+
+%% Trim Size is the finished width and height of the book (not thickness).
+% Books are (usually) manufactured to a small number of standard Trim Sizes.
+% The available choice of sizes will depend on your print service,
+% and may by limited by binding method, paper, or distribution channels.
+% These are NOT the usual TeX "paper size" choices, such as A4 or letterpaper.
+% In the U.S.A., 5.5in W x 8.5in H is very common for softcover fiction,
+% so it will (later) be set as default, unless you set your own.
+\newif \if@SetTrimSize % true if \SetTrimSize rather than defaults.
+\newlength\@TrimWidth
+\newlength\@TrimHeight
+\newcommand\SetTrimSize[2]{% width, height
+ \global\@SetTrimSizetrue
+ \gsetlength\@TrimWidth{#1}
+ \gsetlength\@TrimHeight{#2}
+}% end set trimsize
+%%
+
+
+%% Margins are measured from Trim Size inwards, always positive.
+% If the Media Size is larger than Trim Size, then the area beyond
+% the Trim Size is NOT margins. It is discarded scrap paper.
+% However, word processors (in general) do not understand the difference
+% between Trim Size and Media Size. So, if you are ever asked to
+% lay out the book in a word processor, using a standard (A4 or letter)
+% physical paper size, then you will be asked to set the "margins"
+% very wide, because the word processor margins include both
+% the finished book margins, and the discarded scrap paper.
+% In certain circumstances, text or images may intrude into the margin area.
+% This is not always an error, because it may be intentional.
+% Margins at top and bottom are relative to:
+% top of header, or top of textblock if no header;
+% bottom of footer, or bottom of textblock if no footer.
+% Inner margin generally greater than Outer, due to gutter.
+% Standard margins command ("TOBI, or not TOBI, that is the question."):
+\newif \if@SetMargins % true if \SetMargins rather than defaults.
+\newlength\@TopMargin
+\newlength\@OuterMargin
+\newlength\@BottomMargin
+\newlength\@InnerMargin
+\newcommand\SetMargins[4]{ % top, outer, bottom, inner
+ \global\@SetMarginstrue
+ \gsetlength\@TopMargin{#1}
+ \gsetlength\@OuterMargin{#2}
+ \gsetlength\@BottomMargin{#3}
+ \gsetlength\@InnerMargin{#4}
+}% end set margins
+\LetLtxMacro\SetMargin{\SetMargins}\relax % for those who mis-type
+%%
+
+
+%% New in version 1.50: Unsafe Zone (opposite of "safe area").
+% This feature only applies with class options `draft,shademargins'
+% and does NOT apply in `coverart'.
+% The purpose of margins is to confine the main text (and header/footer).
+% In `novel' (unlike most other TeX document classes) there is no provision
+% for marginal notes, because they are not used in popular fiction.
+% Yet there may be circumstances where you intentionally or accidentally
+% have text, or part of an image, placed or overflowing into a margin.
+% In PDF, even PDF/X, that is not a problem. It cannot read your mind.
+% However, every print service specifies a "safe area." All text, and
+% all images without bleed, must remain within the safe area.
+% The limits of the safe area are typically 0.125in to 0.5in inside the
+% Trim Size, depending on technology. This defines how close you may
+% place anything near the page edges.
+% In `novel' the opposite of the safe area is the "unsafe zone" (UZ).
+% So, the UZ lies just inside the perimeter of the Trim Size.
+% Each margin is at least as wide as its corresponding UZ.
+% Some print services use "minimum margin" to mean the UZ.
+% When you are in draft mode with `shademargins' class option,
+% the UZ (if it is set) will be displayed in dark gray.
+% Then, you can inspect the PDF for any intrusion into the UZ.
+% If you intrude into the UZ, there is no warning or error.
+% The UZ is strictly for visualization. There is no default setting.
+% If you do not set the UZ yourself, then no UZ will be displayed.
+% In any case, the final PDF is unaffected.
+\newif \if@UnsafeZone % true if \SetUnsafeZone used
+\newlength\@TopUZWidth
+\newlength\@OuterUZWidth
+\newlength\@BottomUZWidth
+\newlength\@InnerUZWidth
+\newcommand\SetUnsafeZone[4]{% top, outer, bottom, inner.
+ \global\@UnsafeZonetrue
+ \gsetlength\@TopUZWidth{#1}
+ \gsetlength\@OuterUZWidth{#2}
+ \gsetlength\@BottomUZWidth{#3}
+ \gsetlength\@InnerUZWidth{#4}
+} % end \SetUnsafeZone
+\LetLtxMacro\SetUnsafeZones{\SetUnsafeZone}\relax % for those who mis-type
+%%
+
+
+% PDF Media Size is already known to TeX as \paperwidth and \paperheight.
+% For this reason, there is no need to define additional lengths.
+% Sheet-fed printers use a small number of standard paper sizes.
+% Whether you use P.O.D. or print at home or office, your print job will
+% almost certainly be sheet-fed. After printing, the sheet is trimmed
+% to the specified Trim Size. Note that the sheet sizes used in
+% commercial printing are specialized for the purpose, and may be
+% different from the routine A4 and USletter sizes familiar to you.
+% In most cases (except for cover artwork), your PDF Media Size will be
+% exactly the same as the finished Trim Size. Placement of the Trim Size
+% onto a larger sheet of paper is done automatically at the print service,
+% a procedure known as "imposition." Several small Trim Sizes may be
+% printed onto a single sheet, in order to waste less paper in trimming.
+% In a few cases, the print service will ask you to provide a PDF that has
+% the Trim Size centered H/V within a larger Media Size.
+% Sometimes (especially for cover artwork), that's because you are
+% doing the imposition yourself. In other cases (especially for interiors)
+% it is because most of the files seen at the print service came from
+% word processors, where the writers (not knowing better) created layouts
+% on A4 or USletter with large "margins," rather than correct Trim Size.
+% Then, if you submit a file at actual Trim Size, it looks wrong,
+% not because it is wrong, but because it stands out from the crowd.
+% You may use \SetMediaSize to deal with this situation.
+% You do not need \SetMediaSize, if (as usual) it is identical to TrimSize.
+% Changing the Media Size does not affect Trim Size or internal page layout.
+% Class options `cropview' and `closecrop' (only in draft mode)
+% affect Media Size. See their descriptions below.
+%
+% \SetMediaSize[<obsolete option>]{width}{height} usage:
+% The optional argument is obsolete. Anything there will be ignored.
+\newif \if@MediaSize % true if \SetMediaSize rather than default = Trim Size.
+\DeclareDocumentCommand\SetMediaSize { O{} m m } {% width, height
+ \@MediaSizetrue
+ \gsetlength\paperwidth{#2}
+ \gsetlength\paperheight{#3}
+}% end \SetMediaSize
+%%
+
+
+%% Lines Per Page refers to the main textblock, not including header or footer.
+% If you do not set it, a suitable default will be based on other settings.
+% The number of lines is contrained by Trim Height, Margins, and normal em.
+% This is because the minimum \baselineskip must be 1.2x normal em size,
+% to avoid crowding of the text and variable line heights.
+% The check for constraint is done in file novel-CalculateLayout.sty.
+% The same check also verifies that the number is an integer >=10.
+\newif \if@LinesPerPage % true if \SetLinesPerPage rather than default.
+\newcommand\SetLinesPerPage[1]{
+ \IfInteger{#1}{}{%
+ \ClassError{novel}{\string\SetLinesPerPage\space must be integer >=10}%
+ {Do not write period, comma, or space within \string\SetLinesPerPage.}%
+ }
+ \FPiflt{#1}{10}
+ \ClassError{novel}{\string\SetLinesPerPage\ must be at least 10}%
+ {LinesPerPage were set or calculated at less than 10.}%
+ \fi
+ \global\@LinesPerPagetrue
+ \gdef\@LinesPerPage{#1}
+}% end set linesperpage
+%%
+
+
+%% \SetFontSize may be in any units, even decimals: 12.2pt, 11.5bp, etc.
+% Before external packages load, the font size is temporarily set to
+% 10pt at 13pt skip, so that moldy-oldie packages don't get confused.
+% Later, the size is changed to its actual value based on this command,
+% or on the defaults for Trim Size.
+\newif \if@FontSizeSet % true if \SetFontSize rather than default.
+\newlength\@SetFontSize
+\newcommand\SetFontSize[1]{
+ \global\@FontSizeSettrue
+ \gsetlength\@SetFontSize{#1}
+}% end set font size
+%%
+
+
+%% MISCELLANOUS SETTINGS. Mostly remove "glue". Best to leave as-is.
+%% ----------------------------------------------------------------------------
+% Standard TeX \hoffset and \voffset is not relative to the MediaBox, but is
+% relative to 1in from the top left corner of the MediaBox. Ouch.
+% When necessary, the 1in (72.27pt) is compensated in later calculations.
+\setlength\hoffset{0pt} % relative to 1in built-in offset at left
+\setlength\voffset{0pt} % relative to 1in built-in offset at top
+%
+\@twocolumnfalse
+\@twosidetrue
+\setlength\columnsep{12pt} % not needed, picked something at random
+\setlength\columnseprule{0pt}
+%
+\@mparswitchtrue % irrelevant
+\setlength\marginparwidth{0pt} % no marginal paragraphs allowed
+\setlength\marginparsep{0pt}
+\setlength\marginparpush{0pt}
+%
+\global\@topnum \z@
+\setlength\abovedisplayskip{0pt}
+\setlength\abovedisplayshortskip{0pt}
+\setlength\belowdisplayshortskip{0pt}
+\setlength\belowdisplayskip{0pt}
+\setlength\smallskipamount{0pt}
+\setlength\medskipamount{0pt}
+\setlength\bigskipamount{0pt}
+% `novel' uses grid setting. However, to allow for roundoff errors in
+% vertical position calculations, there is a tiny amount of wiggle room:
+\setlength\topsep{0pt}
+\setlength\partopsep{0pt}
+\setlength\parsep{0pt}
+\setlength\parskip{0pt}
+\setlength\floatsep{0pt}
+\setlength\textfloatsep{0pt}
+\setlength\dbltextfloatsep{0pt}
+\setlength\intextsep{0pt}
+% \topskip will be set as normal baselineskip, which must first be calculated.
+% That is done in novel-CalculateLayout.sty.
+\setlength\lineskip{0pt}
+\setlength\normallineskip{0pt}
+\setlength\lineskiplimit{-2pt} % allows some limited vertical clash
+\renewcommand\baselinestretch{1} % multiplier
+\widowpenalty 150 % same as TeX default
+\clubpenalty 150 % same as TeX default
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+% Floats are limited, but just in case:
+\setcounter{topnumber}{2}
+\renewcommand\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\renewcommand\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\renewcommand\textfraction{.2}
+\renewcommand\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\renewcommand\dbltopfraction{.7}
+\renewcommand\dblfloatpagefraction{.5}
+%
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\normalfont\rmfamily}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\normalfont\sffamily}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\normalfont\ttfamily}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\normalfont\bfseries}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\normalfont\itshape}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\normalfont\slshape}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\normalfont\scshape}
+%
+\pagestyle{empty} % will be over-ridden by fancyhead in separate file
+\pagenumbering{arabic} % may be over-ridden in document
+\flushbottom % best for continuous text
+%
+%% End miscellaneous settings.
+
+
+
+%% FRONTMATTER, MAINMATTER. BUT NO BACKMATTER!
+%% ----------------------------------------------------------------------------
+%
+% See novel.cls for the AtBeginShipout routine.
+%
+% These do not have @ in name, so that they can be used in document body:
+\newif \ifWithinFrontmatter % true within frontmatter
+\newif \ifWithinMainmatter % true within mainmatter
+\def\frontmatter{ % starts page count and frontmatter count at 1.
+ \ifWithinFrontmatter
+ \ClassError{novel}{\string\frontmatter\ used more than once}%
+ {You issued \string\frontmatter\ more than once.}%
+ \fi
+ \ifWithinMainmatter
+ \ClassError{novel}{\string\frontmatter\ cannot follow \mainmatter}%
+ {In order: \string\frontmatter\ \string\mainmatter ^^J%
+ but you do not need both of them.}%
+ \fi
+ \global\WithinFrontmattertrue\global\WithinMainmatterfalse
+ \clearpage
+ \pagenumbering{roman}
+ \setcounter{page}{1}
+}
+%
+\def\mainmatter{ % restarts page to 1, arabic numbers; freeze frontpagecount
+ \ifWithinMainmatter
+ \ClassError{novel}{\string\mainmatter\ used more than once}%
+ {You issued \string\mainmatter\ more than once.}%
+ \fi
+ \cleartorecto % added v. 1.40.1
+ \global\WithinFrontmatterfalse\global\WithinMainmattertrue
+ \pagenumbering{arabic}
+ \setcounter{page}{1}
+}
+%
+\def\backmatter{\@ifstar\@backmatterst\@backmatterns} % asterisk obsolete
+\def\@backmatterst{%
+ \ClassWarning{novel}{^^J\string\backmatter*\ ignored. Do not use. ^^J}%
+}
+%
+\def\@backmatterns{%
+ \cleartorecto% v. 1.40.2
+ \typeout{^^JClass `novel' Alert: \string\backmatter\space merely %
+ clears to recto. See docs. ^^J}% v. 1.42
+%
+}
+%
+\def\Backmatter{\@ifstar\@Backmatterst\@Backmatterns} % obsolete
+%
+\def\@Backmatterst{% continues frontmatter count w/ uppercase Roman numerals
+ \ClassWarning{novel}{^^J\string\Backmatter*\ ignored. Do not use. ^^J}%
+}
+%
+\def\@Backmatterns{%
+ \ClassWarning{novel}{^^J\string\Backmatter\ ignored. Do not use. ^^J}%
+}
+%
+%% end frontmatter, mainmatter. No backmatter!
+
+
+%% DISABLE OR NEUTRALIZE SOME STANDARD LATEX COMMANDS
+%% ----------------------------------------------------------------------------
+% The `novel' class disallows these commands, or neutralizes them by simply
+% repeating their arguments. In some cases, they request functionality that's
+% not implemented in `novel'. In other cases, functionality is part of core,
+% but would interfere with the `novel' emphasis on constant line skip.
+% You may redefine the commands using your own Preamble code (discouraged).
+%
+%%%%%\gdef\null{\hbox{\strut}} % May be important!
+%
+% Standard LaTeX font sizes are ineffective:
+\gdef\@noSizeCommand#1{\ClassWarning{novel}{%
+ Standard LaTeX font sizes are ineffective in `novel' class. ^^J%
+ Your use of command `#1' was ignored. ^^J}%
+}
+\gdef\@DisableFontSizes{% called by `novel.cls' \AtBeginDocument
+ \gdef\HUGE{\@noSizeCommand{HUGE}}
+ \gdef\Huge{\@noSizeCommand{Huge}}
+ \gdef\huge{\@noSizeCommand{huge}}
+ \gdef\LARGE{\@noSizeCommand{LARGE}}
+ \gdef\Large{\@noSizeCommand{Large}}
+ \gdef\large{\@noSizeCommand{large}}
+ \gdef\small{\@noSizeCommand{small}}
+ \gdef\footnotesize{\@noSizeCommand{footnotesize}}
+ \gdef\scriptsize{\@noSizeCommand{scriptsize}}
+ \gdef\tiny{\@noSizeCommand{tiny}}
+} %
+% In `novel' there is no academic organization.
+% All these do is echo the argument, if any:
+\long\gdef\part#1{#1}
+\long\gdef\chapter#1{#1}
+\long\gdef\section#1{#1}
+\long\gdef\subsection#1{#1}
+\long\gdef\subsubsection#1{#1}
+\long\gdef\paragraph#1{#1}
+\long\gdef\subparagraph#1{#1}
+\long\gdef\appendix#1{#1}
+% In some situations, the use will be interrupted:
+\DeclareDocumentCommand\@nodocommand { O{} +m } {%
+ \ClassError{novel}{No command or environment `#1' in this class}%
+ {Many academic layout commands or environments are disabled in `novel'.}%
+}
+\DeclareDocumentCommand\@sandboxonly { m } {%
+ \ClassError{novel}{ ^^J%
+ Command or environment `#1' only allowed in `sandbox' mode. ^^J%
+ See `novel' documentation 2.2. ^^J
+ The offending command may have been called by another macro.}%
+ {Fix your code. If you do not, then compile will fail or be unexpected.}%
+}
+% Here is the interruption list:
+\long\gdef\maketitle{\@nodocommand{maketitle}}
+\long\gdef\makeindex{\@nodocommand{makeindex}}
+\long\gdef\tableofcontents{\@nodocommand{tableofcontents}}
+\long\gdef\listoftables{\@nodocommand{listoftables}}
+\long\gdef\listoffigures{\@nodocommand{listoffigures}}
+\long\gdef\thebibliography{\@nodocommand{thebibliography}}
+\long\gdef\theindex{\@nodocommand{theindex}}
+\long\gdef\abstract{\@nodocommand{abstract}}
+\if@sandbox\else
+ \DeclareDocumentCommand\caption{}{\@sandboxonly{caption}}
+ \DeclareDocumentEnvironment{tabular}{s o +m}{\@sandboxonly{tabular}}{}
+ \DeclareDocumentEnvironment{table}{s o}{\@sandboxonly{table}}{}
+ \DeclareDocumentEnvironment{figure}{s o}{\@sandboxonly{figure}}{}
+ \DeclareDocumentEnvironment{itemize}{s}{\@sandboxonly{itemize}}{}
+ \DeclareDocumentEnvironment{enumerate}{s}{\@sandboxonly{enumerate}}{}
+ \DeclareDocumentEnvironment{description}{s}{\@sandboxonly{description}}{}
+ \DeclareDocumentEnvironment{labeling}{s}{\@sandboxonly{labeling}}{}
+\fi
+%
+\newif \if@OnTitlePage % not really useful
+\DeclareDocumentEnvironment{titlepage}{s}{%
+ \clearpage
+ \thispagestyle{empty}
+ \global\@OnTitlePagetrue
+}{
+ \clearpage
+ \global\@OnTitlePagefalse
+}
+%% end disable or neutralize.
+
+
+%% Neutralize settings commands:
+\gdef\@DisableLayoutSettings{% called by `novel.cls' \AtBeginDocument
+ \LetLtxMacro\SetMediaSize\relax
+ \LetLtxMacro\SetTrimSize\relax
+ \LetLtxMacro\SetMargins\relax
+ \LetLtxMacro\SetLinesPerPage\relax
+ \LetLtxMacro\SetFontSize\relax
+ \LetLtxMacro\SetUnsafeZone\relax
+}% end \@DisableLayoutSettings
+%%
+
+
+%%
+\endinput
+%%
+%% End of file `novel-LayoutSettings.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-Obsolete.sty b/macros/luatex/latex/novel/novel-Obsolete.sty
new file mode 100644
index 0000000000..305fc7b7c7
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-Obsolete.sty
@@ -0,0 +1,485 @@
+%%
+%% This is file `novel-Obsolete.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-Obsolete.sty}%
+[2018/04/26 v1.52 LaTeX file (obsolete macros)]
+%%
+
+
+%% OBSOLETE MACROS !!!
+%%
+%% Prior to version 1.50, `novel' contained some macros or features that
+%% worked but were hard to maintain, or worked in a fashion that was
+%% user-unfriendly, or was not as good as some better code.
+%% These macros have been gathered here. DO NOT USE THEM IN NEW DOCUMENTS.
+%% They have only been retained for backwards-compatibility.
+%% If you find a bug -- too bad! Anything here is "won't fix."
+%%
+
+
+%% OBSOLETE
+\gdef\SetCropmarkGap#1{} % simply ignored
+%%
+
+
+%% OBSOLETE
+\newcommand\pushtextdown[1]{% OBSOLETE
+ \ifthenelse{\equal{#1}{} \OR \equal{#1}{ } \OR \equal{#1}{0}}{%
+ \def\@howmuchdown{0em}%
+ }{%
+ \def\@howmuchdown{#1}%
+ }%
+ ~\par\vspace*{-\nbs}\vspace*{\@howmuchdown}\par%
+}
+%%
+
+
+%% OBSOLETE
+%% \squeeze{} and \crush{} slightly shrink the horizonal dimension of the
+% enclosed text. May span paragraphs. Emergency only! No compounding.
+\long\gdef\squeeze#1{{\addfontfeature{FakeStretch=0.99}#1}}
+\long\gdef\crush#1{{\addfontfeature{FakeStretch=0.98}#1}}
+%%
+
+
+%% OBSOLETE
+\gdef\specialblankline{\null} % deprecated
+%%
+
+
+%% OBSOLETE.
+%%Replaced by better method. Will be honored, but not documented.
+\newcommand\TestCoverImage[1]{%
+ \@tempTFfalse%
+ \IfSubStr{#1}{jpg}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{jpeg}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{JPG}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{JPEG}{\@tempTFtrue}{}%
+ \IfSubStr{#1}{png}{%
+ \@tempTFtrue
+ \if@pdfxISoff\else
+ \ifthenelse{\equal{\@PDFversion}{PDF/X-1}}{
+ \ClassError{novel}{Cannot use png cover image with PDF/X-1a}%
+ {PDF/X-1a requires CMYK image. But png format is always RGB.}%
+ }{}
+ \fi
+ \ClassWarning{novel}{^^JCover image is png file type. ^^J%
+ Format png only supports RGB, not CMYK. ^^J%
+ This might be OK if you are not using PDF/X-1a, ^^J%
+ and if your print service accepts RGB artwork. ^^J%
+ But in many cases, not OK. Did you need CMYK? ^^J}%
+ }{}%
+ \IfSubStr{#1}{PNG}{%
+ \@tempTFtrue
+ \if@pdfxISoff\else
+ \ifthenelse{\equal{\@PDFversion}{PDF/X-1}}{
+ \ClassError{novel}{Cannot use png cover image with PDF/X-1a}%
+ {PDF/X-1a requires CMYK image. But png format is always RGB.}%
+ }{}
+ \fi
+ \ClassWarning{novel}{^^JCover image is png file type. ^^J%
+ Format png only supports RGB, not CMYK. ^^J%
+ This might be OK if you are not using PDF/X-1a, ^^J%
+ and if your print service accepts RGB artwork. ^^J%
+ But in many cases, not OK. Did you need CMYK? ^^J}%
+ }{}%
+ \if@tempTF\else%
+ \ClassError{novel}{Cover image has wrong file extension}%
+ {Cover image must be jpg, JPG, jpeg, JPEG. ^^J%
+ Can also use png or PNG if CMYK not required.}%
+ \fi%
+} % end \TestCoverImage
+%%
+\newcommand\SetCoverImage[1]{%
+ \if@coverart%
+ \ClassWarning{novel}{^^J\string\SetCoverImage\space is obsolete. ^^J%
+ It will be honored, but not documented. From `novel' version 1.50 use ^^J%
+ novel-scripts, then \ScriptCoverImage\space instead. ^^J}%
+ \TestCoverImage{#1}%
+ \AddToShipoutPictureBG{%
+ \AtPageUpperLeft{%
+ \InlineImage{#1}%
+ }%
+ }%
+ \null% without this, page has no "content"
+ \else%
+ \ClassError{novel}{\string\SetCoverImage\space requires `coverart' option}%
+ {You must use the `coverart' document class option, for cover image.}%
+ \fi%
+} % end \SetCoverImage
+%%
+
+
+%% OBSOLETE
+\newif \if@FlexResolutionSet
+\gdef\@novereserror{%
+ \ClassError{novel}{\string\SetFlexResolution\space bad value}%
+ {Resolution dpi must be integer from 200 to 9600. Default 300.}%
+}
+\newcommand\SetFlexResolution[1]{
+ \IfInteger{#1}{ %
+ \FPiflt{#1}{200}\@novereserror\else\fi % not enough
+ \FPifgt{#1}{9600}\@novereserror\else\fi % too much
+ \gdef\@novimgres{#1} %
+ }{ %
+ \@novreserror %
+ } %
+ \@FlexResolutionSettrue %
+}%
+%
+\AtEndPreamble{% called by `novel.cls' \AtEndPreamble
+ \if@FlexResolutionSet %
+ \pdfimageresolution=\@novimgres % from \SetFlexResolution. Default 300.
+ \fi %
+}%
+%%
+
+
+%% BLOCK IMAGE (OBSOLETE)
+%% ----------------------------------------------------------------------------
+%% \BlockImage[alignment]{image}[text]
+%% OBSOLETE FROM VERSION 1.50. Use \FloatImage instead.
+\DeclareDocumentCommand \BlockImage { O{c} m +O{} }{%
+ \ClassWarning{novel}{^^J\string\BlockImage\space command is obsolete. ^^J%
+ It will remain in effect for existing documents that have it. ^^J%
+ New documents: Use \string\FloatImage, or \string\WrapImage, instead. ^^J%
+ Purpose and syntax is slightly different. See docs. ^^J}%
+ \iftoggle{@inheadfoot}{%
+ \ClassError{novel}{Cannot use \string\BlockImage\space in header/footer}%
+ {Header footer allow \string\InlineImage, but not \string\BlockImage.}%
+ }{}%
+ \@TestImageExtension{#2}%
+ % Allows empty or blank to be used, and still provide default values:
+ \ifthenelse{\equal{#1}{} \OR \equal{#1}{\space}}{%
+ \def\@myargs{c}}{\def\@myargs{#1}%
+ }%
+ \StrDel{\@myargs}{\space}[\@myargsns]% needs {\space} not { }
+ \StrCut{\@myargsns}{,}{\@myalign}{\@mycoord}%
+ \StrCut{\@mycoord}{,}{\@myxt}{\@myyt}%
+ \ifthenelse{\equal{\@myxt}{}\OR\equal{\@myxt}{0}}{%
+ \def\@myx{0pt}}{\def\@myx{\@myxt}%
+ }%
+ \ifthenelse{\equal{\@myyt}{}\OR\equal{\@myyt}{0}}{%
+ \def\@myy{0pt}}{\def\@myy{\@myyt}%
+ }%
+ %
+ \global\@UsingNovelCommandtrue%
+ \gdef\@mygraphic{\novel@sub@inclgr{#2}}%
+ \gdef\@mygraphicname{#2}%
+ \setlength\@imagewidth{\widthof{\@mygraphic}}%
+ \global\@imagewidth=\@imagewidth%
+ \setlength\@imageheight{\heightof{\@mygraphic}}%
+ \global\@imageheight=\@imageheight%
+ \setlength\@imagehoffset{\@myx}%
+ \IfBeginWith{\@myy}{b}{%
+ \ClassError{novel}{Cannot use voffset `b' on %
+ \string\BlockImage, page \thepage}%
+ {The `b' voffset only works with \string\InlineImage, %
+ not \string\BlockImage.}%
+ }{%
+ \setlength\@imagevoffset{-\@imageheight}%
+ \addtolength\@imagevoffset{\@myy}%
+ }%
+ %
+ \setlength\@mytotalht{0pt}%
+ \addtolength\@mytotalht{\@imageheight}%
+ \addtolength\@mytotalht{-\@myy}%
+ \addtolength\@mytotalht{1em}%
+ \def\@mytotalhtN{\strip@pt\@mytotalht}%
+ \FPdiv{\@mytotalhtN}{\@mytotalhtN}{\strip@pt\nbs}%
+ \FPadd{\@mytotalhtN}{\@mytotalhtN}{0.5}%
+ \FPround{\@mytotalhtN}{\@mytotalhtN}{0}%
+ %
+ \begin{linegap}{\@mytotalhtN}%
+ %
+ \ifthenelse{\equal{\@myalign}{c}\OR\equal{\@myalign}{}}{%
+ {\centering%
+ \makebox[0pt][l]{%
+ \hspace{\dimexpr\@myx-0.5\@imagewidth}%
+ \stake\smash{\raisebox{\dimexpr\@myy-\@imageheight}{\@mygraphic}}%
+ }%
+ \par%
+ }
+ \vspace*{-\nbs}%
+ {\centering #3\par}%
+ }{}%
+ \ifthenelse{\equal{\@myalign}{r}}{%
+ \noindent\makebox[0pt][l]{%
+ \hspace{\dimexpr\textwidth+\@myx-\@imagewidth}%
+ \stake\smash{\raisebox{\dimexpr\@myy-\@imageheight}{\@mygraphic}}%
+ }\par%
+ \vspace{-2\nbs}%
+ \begin{adjustwidth}{0pt}{\@imagewidth+\parindent}%
+ \strut\par%
+ #3\par%
+ \end{adjustwidth}%
+ }{}%
+ \ifthenelse{\equal{\@myalign}{l}}{%
+ \noindent\makebox[0pt][l]{%
+ \hspace{\@myx}%
+ \stake\smash{\raisebox{\dimexpr\@myy-\@imageheight}{\@mygraphic}}%
+ }%
+ \par%
+ \vspace{-2\nbs}%
+ \begin{adjustwidth}{\@imagewidth+\parindent}{0pt}%
+ \strut\par%
+ #3\par%
+ \end{adjustwidth}%
+ }{}%
+ \end{linegap}%
+ \global\@UsingNovelCommandfalse%
+} % end \BlockImage (OBSOLETE)
+%%
+
+
+%% LINEGAP IS OBSOLETE CODE. NOT DOCUMENTED.
+%% ----------------------------------------------------------------------------
+% Allows text to be placed (potentially) off-grid, with grid resuming after.
+\newif \if@WithinLinegap % true within linegap environment
+\newcounter{currentlinegap} % 0 when not within linegap, >0 otherwise.
+\DeclareDocumentEnvironment {linegap} { m } {%
+ \FPifint{#1}\else%
+ \ClassError{novel}{Non-integer linegap on page \thepage}%
+ {Only integer >= 1 allowed for linegap.}%
+ \fi%
+ \FPiflt{#1}{1}%
+ \ClassError{novel}{Insufficient linegap on page \thepage}%
+ {Only integer >= 1 allowed for linegap.}%
+ \fi%
+ \par%
+ \null%
+ \vspace*{-\nbs}%
+ \global\@WithinLinegaptrue%
+ \begin{textblock*}{\textwidth}[0,0](0pt,0pt)%
+ \setcounter{currentlinegap}{#1}
+ \strut\par%
+ \vspace*{-\nbs}%
+}{% close the environment:
+ \end{textblock*}%
+ \global\@WithinLinegapfalse%
+ \par%
+ \vspace*{#1\nbs}%
+ \setcounter{currentlinegap}{0}%
+} % end linegap (obsolete)
+%%
+
+
+%% REWORK IS OBSOLETE CODE. NOT DOCUMENTED.
+%% ----------------------------------------------------------------------------
+%% \ReworkTrimSize retroactively changes Trim Size after layout.
+% If you use \ReworkTrimSize, you must first use \SetTrimSize (not defaults):
+\newlength\@NewTrimWidth
+\newlength\@NewTrimHeight
+\newif \if@ReworkTrimSize
+\newcommand\ReworkTrimSize[2]{% width, height
+ \ClassWarning{novel}{\string\Rework\space commands are obsolete. ^^J%
+ The \string\Rework\space commands are still effective for old documents, ^^J%
+ but should not be used for new documents, due to potential layout issues.}%
+ \if@SetTrimSize\else
+ \ClassError{novel}{Must use \string\SetTrimSize\space %
+ before \string\ReworkTrimSize}%
+ {\string\ReworkTrimSize\space cannot be applied to default Trim Size. ^^J%
+ You must manually \string\SetTrimSize\space prior to %
+ \string\ReworkTrimSize.}%
+ \fi
+ \if@coverart % New in version 1.2
+ \ClassError{novel}{\string\Rework\space commands cannot be used %
+ with `coverart' option}%
+ {Instead of \string\Rework, you must re-do the graphics artwork.}
+ \else
+ \global\@ReworkTrimSizetrue
+ \gsetlength\@NewTrimWidth{#1}
+ \gsetlength\@NewTrimHeight{#2}
+ \typeout{^^J Class `novel' Alert: %
+ Used \string\ReworkTrimSize\space command. ^^J%
+ Carefully review your PDF to ensure that line breaks, paragraphs, ^^J%
+ and page breaks are where you expect them to be. ^^J}%
+ \fi
+}% end \ReworkTrimSize
+%%
+
+
+%% REWORK IS OBSOLETE CODE. NOT DOCUMENTED.
+%% Retroactively change margins after layout. See documentation.
+% If you use \ReworkMargins, you must first use \SetMargins (not defaults):
+\newlength\@NewTopMargin
+\newlength\@NewOuterMargin
+\newlength\@NewBottomMargin
+\newlength\@NewInnerMargin
+\newif \if@ReworkMargins
+\newcommand\ReworkMargins[4]{ % top, outer, bottom, inner
+ \ClassWarning{novel}{\string\Rework\space commands are obsolete. ^^J%
+ The \string\Rework\space commands are still effective for old documents, ^^J%
+ but should not be used for new documents, due to potential layout issues.}%
+ \if@coverart % New in version 1.2
+ \ClassError{novel}{\string\Rework\space commands cannot be used %
+ with coverart option}%
+ {Instead of \string\Rework, you must re-do the graphics artwork.}
+ \else
+ \global\@ReworkMarginstrue
+ \gsetlength\@NewTopMargin{#1}
+ \gsetlength\@NewOuterMargin{#2}
+ \gsetlength\@NewBottomMargin{#3}
+ \gsetlength\@NewInnerMargin{#4}
+ \typeout{^^JClass novel Alert: Used \string\ReworkMargins. ^^J%
+ Carefully review your PDF to ensure that line breaks, paragraphs, ^^J%
+ and page breaks are where you expect them to be. ^^J}%
+ \fi
+}% end \ReworkMargins
+\LetLtxMacro\ReworkMargin{\ReworkMargins}\relax % for those who mis-type
+%% When \Rework, should result honor new margins (if possible), or should
+% result maintain original aspect ratio?
+\newif \if@AspectPriority
+\newcommand\ReworkPriority[1]{%
+ \@tempTFfalse
+ \ifthenelse{\equal{#1}{aspect}}{\@AspectPrioritytrue\@tempTFtrue}{}
+ \ifthenelse{\equal{#1}{margins}}{\@AspectPriorityfalse\@tempTFtrue}{}
+ \ifthenelse{\equal{#1}{margin}}{\@AspectPriorityfalse\@tempTFtrue}{}
+ \if@tempTF\else
+ \ClassError{novel}{Bad choice for \string\ReworkPriority}%
+ {Rework priority choices: aspect, margins (default margins).}%
+ \fi
+}
+\ReworkPriority{margins} % default
+%%
+
+
+%% REWORK IS OBSOLETE CODE. NOT DOCUMENTED.
+\gdef\ObsoleteRework{ %
+% A few values from the original calculation must be stored:
+\newlength\@OriginalEmSize
+ \gsetlength\@OriginalEmSize{\@SetFontSize}
+\newlength\@OriginalTextWidth % same as original available width
+ \gsetlength\@OriginalTextWidth{\textwidth}
+\newlength\@OriginalHeight % includes header/footer
+ \gsetlength\@OriginalHeight{\@AvailableHeight}
+\newlength\@OriginalBaselineSkip
+ \gsetlength\@OriginalBaselineSkip{\baselineskip}
+% Change the values of trim size and margins, as requested.
+% If not changed, same as before:
+\if@ReworkTrimSize
+ \gsetlength\@TrimWidth{\@NewTrimWidth}
+ \gsetlength\@TrimHeight{\@NewTrimHeight}
+\fi
+\if@ReworkMargins
+ \gsetlength\@TopMargin{\@NewTopMargin}
+ \gsetlength\@OuterMargin{\@NewOuterMargin}
+ \gsetlength\@BottomMargin{\@NewBottomMargin}
+ \gsetlength\@InnerMargin{\@NewInnerMargin}
+\fi
+% Re-calculate:
+\gsetlength\@AvailableWidth{\@TrimWidth-\@OuterMargin-\@InnerMargin}
+\gsetlength\@AvailableHeight{\@TrimHeight-\@TopMargin-\@BottomMargin}
+%%
+\xdef\@TWratio{\fpeval{\@AvailableWidth/\@OriginalTextWidth}}
+\xdef\@THratio{\fpeval{\@AvailableHeight/\@OriginalHeight}}
+\FPmin{\@TMratio}{\@TWratio}{\@THratio}
+%%
+\if@AspectPriority
+ \gsetlength\textwidth{\@TMratio\@OriginalTextWidth}
+ \gsetlength\@SetFontSize{\@TMratio\@OriginalEmSize}
+ \gsetlength\baselineskip{\@TMratio\@OriginalBaselineSkip}
+ % Find whether limiting factor is width or height:
+ \ifnumcomp{\@TWratio}{<}{\@THratio}{%
+ \setlength\@tempLength{\@AvailableHeight-\@AdjLPP\baselineskip}
+ \setlength\@tempLength{\@tempLength-\baselineskip+\@SetFontSize}
+ \setlength\@tempLength{0.5\@tempLength}
+ \gsetlength{\@TopMargin}{\@TopMargin+\@tempLength}
+ \gsetlength{\@BottomMargin}{\@BottomMargin+\@tempLength}
+ \FPround{\@tempN}{\strip@pt\@tempLength}{2}
+ \setlength\@tempLength{\@tempN pt}
+ \FPround{\@tempN}{\@TMratio}{4}
+ \typeout{^^JClass `novel' Info: Rework preserving aspect ratio. ^^J Each%
+ vertical margin \the\@tempLength\space over requested rework value. ^^J%
+ Scale \@tempN\space applied to text size and baselineskip. ^^J%
+ } %
+ }{%
+ \gsetlength\@OuterMargin{\@OuterMargin+0.5\@AvailableWidth-0.5\textwidth}
+ \gsetlength\@InnerMargin{\@InnerMargin+0.5\@AvailableWidth-0.5\textwidth}
+ \setlength\@tempLength{0.5\@AvailableWidth-0.5\textwidth}
+ \FPround{\@tempN}{\strip@pt\@tempLength}{2}
+ \setlength\@tempLength{\@tempN pt}
+ \FPround{\@tempN}{\@TMratio}{4}
+ \typeout{^^JClass `novel' Info: Rework preserving aspect ratio. ^^J%
+ Each side margin \the\@tempLength\space over requested rework value. ^^J%
+ Scale \@tempN\space applied to text size and baselineskip. ^^J%
+ } %
+ } % end \ifnumcomp
+\else % margins priority:
+ % Discover what happens if scaled according to text width:
+ \gsetlength\textwidth{\@AvailableWidth}
+ \gsetlength\@SetFontSize{\@TWratio\@OriginalEmSize}
+ \gsetlength\baselineskip{1.2\@SetFontSize} % test for least allowable
+ \setlength\@tempLength{\@AdjLPP\baselineskip}
+ \ifdimcomp{\@AvailableHeight-\@tempLength}{<}{0pt}{%
+ % Will not fit vertically, so will need to re-scale \@SetFontSize.
+ \gsetlength\@SetFontSize{\@OriginalEmSize}
+ \gsetlength\baselineskip{\fpeval{\@AvailableHeight/(\@AdjLPP+1.3)}pt}
+ \FPdiv\@THratio{\strip@pt\baselineskip}{\strip@pt\@OriginalBaselineSkip}
+ \gsetlength\@SetFontSize{0.8333\baselineskip} % 0.8333 = 1/1.2, tight skip
+ \FPdiv{\@tempN}{\strip@pt\@SetFontSize}{\strip@pt\@OriginalEmSize}
+ \gsetlength\textwidth{\@tempN\@OriginalTextWidth}
+ \gsetlength\@OuterMargin{%
+ 0.5\@OuterMargin+0.5\@TrimWidth-0.5\@InnerMargin-0.5\textwidth%
+ }
+ \gsetlength\@InnerMargin{%
+ 0.5\@InnerMargin+0.5\@TrimWidth-0.5\@OuterMargin-0.5\textwidth%
+ }
+ \FPround{\@ActualOuterN}{\strip@pt\@OuterMargin}{2}
+ \FPround{\@ActualInnerN}{\strip@pt\@InnerMargin}{2}
+ \FPmul{\@TWratio}{\@TWratio}{\@THratio}
+ \FPmul{\@THratio}{\@TWratio}{1.2}
+ \FPround{\@TWratio}{\@TWratio}{4}
+ \FPround{\@THratio}{\@THratio}{4}
+ \typeout{^^JClass `novel' Info: Reworked side margins enlarged. ^^J%
+ Actual Outer Margin is now \@ActualOuterN pt. ^^J%
+ Actual Inner Margin is now \@ActualInnerN pt. ^^J%
+ Scale \@TWratio\space applied to text, ^^J%
+ \@THratio\space applied to baselineskip. ^^J%
+ } %
+ }{% Fits vertically. Keep \@SetFontSize. Calculate \baselineskip to fit:
+ \gsetlength\baselineskip{%
+ \fpeval{(\@AvailableHeight-1.3*\@SetFontSize)/\@AdjLPP}pt%
+ } %
+ \FPdiv{\@BLratio}{\strip@pt\baselineskip}{\strip@pt\@OriginalBaselineSkip}
+ \FPround{\@BLratio}{\@BLratio}{4}
+ \FPround{\@TWratio}{\@TWratio}{4}
+ \typeout{^^JClass `novel' Info: Rework was able to fit new margins. ^^J%
+ Scale applied to font size: \@TWratio. ^^J%
+ Scale applied to baselineskip: \@BLratio. ^^J%
+ } %
+ }% end \ifdimcomp.
+\fi
+} % end ObsoleteRework.
+%%
+
+
+%%
+\AtBeginDocument{%
+ \LetLtxMacro\ReworkTrimSize\relax
+ \LetLtxMacro\ReworkMargins\relax
+ \LetLtxMacro\ReworkPriority\relax
+ \LetLtxMacro\SetFlexResolution\relax % cannot use past Preamble
+ \providecommand\acronym[1]{\midcase{#1}}% acronym deprecated
+} %
+%%
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-Obsolete.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-PostLayout.sty b/macros/luatex/latex/novel/novel-PostLayout.sty
new file mode 100644
index 0000000000..a2796db1d1
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-PostLayout.sty
@@ -0,0 +1,263 @@
+%%
+%% This is file `novel-PostLayout.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-PostLayout.sty}%
+[2018/04/26 v1.52 LaTeX file (post-layout modifications)]
+%%
+
+%%
+%% This file is loaded \AtEndPreamble, which precedes \AtBeginDocument.
+%%
+
+
+
+% \@getPageXY is used by `shademargins' and `cropmarks' options.
+% The 72.27pt compensates for built-in 1in TeX offsets.
+% Position of left edge of TrimBox, rightwards from left edge of MediaBox:
+\newlength\Trim@Left
+% Position of bottom of TrimBox, upwards from bottom of MediaBox:
+\newlength\Trim@Bottom
+\gdef\@getPageXY{%
+ \ifodd\c@page% Adjusts for left-right margin switching, verso/recto,
+ % and also for horizontal position of TrimBox within MediaBox:
+ \gsetlength\Trim@Left{\oddsidemargin-\@InnerMargin+72.27pt}%
+ \else%
+ \gsetlength\Trim@Left{\evensidemargin-\@OuterMargin+72.27pt}%
+ \fi%
+ % Adjusts for vertical position of TrimBox within MediaBox:
+
+ \gsetlength\Trim@Bottom{0.5\paperheight-0.5\@TrimHeight+\hoffset}%
+
+}%
+%% end \@getPageXY.
+
+
+%% ACTIVATE CLOSECROP CLASS OPTION
+%% ----------------------------------------------------------------------------
+% The `closecrop' class option is only effective in draft mode.
+% It preserves the text layout, but removes most of the margin white space.
+% The resulting file is more easily readable on a hand-held device.
+% However, the cropped file is not suitable for distribution as an E-book,
+% as it is missing reflow information, marketing metadata, etc.
+\if@closecrop
+ \gsetlength\paperwidth{\textwidth+0.2in}
+ \if@HasHeader
+ \gsetlength\topmargin{-1in}
+ \else
+ \gsetlength\topmargin{-0.9in}
+ \fi
+ \if@HasFooter
+ \if@HasHeader
+ \gsetlength\paperheight{%
+ \textheight+\headsep+\headheight+\@FootJump\baselineskip+1pt%
+ }
+ \else
+ \gsetlength\paperheight{%
+ \textheight+\headsep+\headheight+\@FootJump\baselineskip+\@SetFontSize%
+ }
+ \fi
+ \else
+ \gsetlength\paperheight{\textheight+\headsep+\headheight+0.1in}
+ \fi
+\fi
+%% end closecrop
+
+
+%% ACTIVATE SHADEMARGINS CLASS OPTION (Includes Unsafe Zone)
+%% ----------------------------------------------------------------------------
+%% With class option `shademargins' (only effective in draft mode):
+% Based on code by Ulrike Fischer at tex.stackexchange.com, CC-by-sa-3.0:
+% 0.542763, 0.883215 and 0.949123 are unlikely user choices.
+% The re-defined \color command makes an exception for those values.
+\definecolor[named]{hingledingle}{gray}{1} % fake white, when white disallowed
+%
+\if@shademargins
+ % Margins are visualized by filling the TrimBox background with gray.
+ % Then, the rectangle defining the Englosed area is filled with white.
+ % Then header and/or footer are filled with a lighter gray background.
+ % Then Unsafe Zone (UZ) sits atop the other background fills, as darker gray.
+ % The UZ is constructed from four strips, one at each side.
+ \AddToShipoutPictureBG{% fills trim area with medium gray
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.883215}%
+ \hspace{\Trim@Left}%
+ \rule[\Trim@Bottom]{\@TrimWidth}{\@TrimHeight}%
+ }%
+ }%
+ %
+ \AddToShipoutPictureBG{% fills enclosed area with white
+ \@getPageXY%
+ \AtPageLowerLeft{\color{hingledingle}%
+ \ifodd\c@page%
+ \hspace{\dimexpr\oddsidemargin+72.27pt}%
+ \else%
+ \hspace{\dimexpr\evensidemargin+72.27pt}%
+ \fi%
+ \rule[\dimexpr\Trim@Bottom+\@BottomMargin]%
+ {\textwidth}{\dimexpr\@TrimHeight-\@TopMargin-\@BottomMargin}
+ }%
+ }%
+ \if@HasHeader% fills header (and its jump) with light gray
+ \AddToShipoutPictureBG{%
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.949123}%
+ \ifodd\c@page%
+ \hspace{\dimexpr\oddsidemargin+72.27pt}%
+ \else%
+ \hspace{\dimexpr\evensidemargin+72.27pt}%
+ \fi%
+ \rule[\Trim@Bottom+\@TrimHeight-\@TopMargin-\@HeadJump\nbs]%
+ {\@TrimWidth-\@OuterMargin-\@InnerMargin}{\@HeadJump\nbs}%
+ }%
+ }%
+ \fi%
+ %
+ \if@HasFooter% fills footer (and its jump) with light gray
+ \AddToShipoutPictureBG{%
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.949123}%
+ \ifodd\c@page%
+ \hspace{\dimexpr\oddsidemargin+72.27pt}%
+ \else%
+ \hspace{\dimexpr\evensidemargin+72.27pt}%
+ \fi%
+ \rule[\Trim@Bottom+\@BottomMargin]%
+ {\@TrimWidth-\@OuterMargin-\@InnerMargin}{\@FootJump\nbs}%
+ }%
+ }%
+ \fi%
+ %
+ \if@UnsafeZone% fills unsafe zones with dark gray
+ \AddToShipoutPictureBG{% top unsafe zone
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.542763}%
+ \hspace{\Trim@Left}%
+ \rule[\Trim@Bottom+\@TrimHeight-\@TopUZWidth]%
+ {\@TrimWidth}{\@TopUZWidth}%
+ }%
+ }%
+ \AddToShipoutPictureBG{% outer unsafe zone
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.542763}%
+ \ifodd\c@page%
+ \hspace{\dimexpr\Trim@Left+\@TrimWidth-\@OuterUZWidth}%
+ \rule[\Trim@Bottom]{\@OuterUZWidth}{\@TrimHeight}%
+ \else%
+ \hspace{\dimexpr\Trim@Left+\@TrimWidth-\@InnerUZWidth}%
+ \rule[\Trim@Bottom]{\@InnerUZWidth}{\@TrimHeight}%
+ \fi%
+ }%
+ }%
+ \AddToShipoutPictureBG{% bottom unsafe zone
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.542763}%
+ \hspace{\Trim@Left}%
+ \rule[\Trim@Bottom]{\@TrimWidth}{\@BottomUZWidth}%
+ }%
+ }%
+ \AddToShipoutPictureBG{% inner unsafe zone
+ \@getPageXY%
+ \AtPageLowerLeft{\color[gray]{0.542763}%
+ \hspace{\Trim@Left}%
+ \ifodd\c@page%
+ \rule[\Trim@Bottom]{\@InnerUZWidth}{\@TrimHeight}%
+ \else%
+ \rule[\Trim@Bottom]{\@OuterUZWidth}{\@TrimHeight}%
+ \fi%
+ }%
+ }%
+ \fi% end \if@UnsafeZone
+ %
+\fi % end \if@shademargins
+%
+%% end shademargins and unsafe zone
+
+
+%% LABEL DRAFT OPTION
+%% ----------------------------------------------------------------------------
+% Writes DRAFT inside upper left of TrimBox, when in draft mode.
+% This macro must go here, in order, so that the label is not over-shaded.
+\ifdraftdoc
+ \AddToShipoutPictureBG{%
+ \@getPageXY%
+ \AtPageUpperLeft{%
+ \raisebox{-\@SetFontSize}{\textbf{~DRAFT}}%
+ }%
+ }%
+\fi
+%% end label draft.
+
+
+%% ACTIVATE CROPMARKS CLASS OPTION
+%% ----------------------------------------------------------------------------
+% Cropmarks (trim marks, really) are not important in this document class.
+% That's because the targeted printing services generally do not want them.
+% But a minimal capability was easy to add. The far end of each mark is
+% 0.25in from the trim area. The close end is separated by 0.125in.
+% So the length of the marks essentially 1/8in. Width 0.25bp.
+% The marks are turned on using `cropmarks' class option.
+% When Media Size = Trim Size, cropmarks are disabled.
+% Too late for \@cropviewfalse; OK since CropBox already calculated properly.
+\ifthenelse{%
+ \dimtest{\@TrimWidth}{=}{\paperwidth} %
+ \AND \dimtest{\@TrimHeight}{=}{\paperheight}%
+}{\global\@cropmarksfalse}{}
+%
+\if@cropmarks% Cropmark begins 0.125in from TrimBox, ends 0.25in from TrimBox.
+ % H top left:
+ \AddToShipoutPictureBG{\@getPageXY%
+ \AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left-0.25in}%
+ \rule[0.5\paperheight+0.5\@TrimHeight]{0.25in-0.125in}{0.25bp}}}
+ % H bottom left:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left-0.25in}%
+ \rule[\Trim@Bottom-0.5pt]{0.25in-0.125in}{0.25bp}}}
+ % H top right:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left+\@TrimWidth+0.125in}%
+ \rule[0.5\paperheight+0.5\@TrimHeight]{0.25in-0.125in}{0.25bp}}}
+ % H bottom right:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left+\@TrimWidth+0.125in}%
+ \rule[\Trim@Bottom-0.25bp]{0.25in-0.125in}{0.25bp}}}
+ % V top left:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left-0.25bp}%
+ \rule[0.5\paperheight+0.5\@TrimHeight+0.125in]%
+ {0.25bp}{0.25in-0.125in}}}
+ % V bottom left:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left-0.25bp}%
+ \rule[\Trim@Bottom-0.25in]{0.25bp}{0.25in-0.125in}}}
+ % V top right:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left+\@TrimWidth}%
+ \rule[0.5\paperheight+0.5\@TrimHeight+0.125in]%
+ {0.25bp}{0.25in-0.125in}}}
+ % V bottom right:
+ \AddToShipoutPictureBG{\@getPageXY\AtPageLowerLeft{%
+ \hspace{\dimexpr\Trim@Left+\@TrimWidth}%
+ \rule[\Trim@Bottom-0.25in]{0.25bp}{0.25in-0.125in}}}
+\fi
+%
+%% end cropmarks
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-PostLayout.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-Sandbox.sty b/macros/luatex/latex/novel/novel-Sandbox.sty
new file mode 100644
index 0000000000..9939c66110
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-Sandbox.sty
@@ -0,0 +1,145 @@
+%%
+%% This is file `novel-Sandbox.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%% Material extracted from `article.cls', a LaTeX document class.
+%% Copyright 1993-2016
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-Sandbox.sty}%
+[2018/04/26 v1.52 LaTeX file (used only with sandbox class option)]
+%%
+
+%%
+%% This file is only loaded when the `sandbox' document class is used.
+%% It provides support for tables, and a few other things that ordinarily
+%% would be prohibited in `novel' due to possible layout incompatibility.
+%%
+%% Normally, `novel' sets many glues and lengths to zero, to maintain line grid.
+%% But `sandbox', sets the glues to values typical of other document classes.
+%% So, not only can you construct tables, they will look as expected.
+%%
+
+
+
+
+\setlength\leftmargini {2.5em}
+\leftmargin \leftmargini
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\setlength\leftmarginv {1em}
+\setlength\leftmarginvi {1em}
+\setlength \labelsep {.5em}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\renewcommand\theenumi{\@arabic\c@enumi}
+\renewcommand\theenumii{\@alph\c@enumii}
+\renewcommand\theenumiii{\@roman\c@enumiii}
+\renewcommand\theenumiv{\@Alph\c@enumiv}
+\newcommand\labelenumi{\theenumi.}
+\newcommand\labelenumii{(\theenumii)}
+\newcommand\labelenumiii{\theenumiii.}
+\newcommand\labelenumiv{\theenumiv.}
+\renewcommand\p@enumii{\theenumi}
+\renewcommand\p@enumiii{\theenumi(\theenumii)}
+\renewcommand\p@enumiv{\p@enumiii\theenumiii}
+\newcommand\labelitemi{\textbullet}
+\newcommand\labelitemii{\normalfont\bfseries \textendash}
+\newcommand\labelitemiii{\textasteriskcentered}
+\newcommand\labelitemiv{\textperiodcentered}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+
+
+
+\setlength\tabcolsep{6pt}
+\setlength\arrayrulewidth{.4pt}
+\setlength\doublerulesep{2pt}
+\setlength\tabbingsep{\labelsep}
+
+
+\newcounter{figure}
+\renewcommand \thefigure {\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{\figurename\nobreakspace\thefigure}
+
+\newenvironment{figure}
+ {\@float{figure}}
+ {\end@float}
+\newenvironment{figure*}
+ {\@float{figure}}
+ {\end@float}
+
+
+
+\newcounter{table}
+\renewcommand\thetable{\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{\tablename\nobreakspace\thetable}
+
+\newenvironment{table}
+ {\@float{table}}
+ {\end@float}
+\newenvironment{table*}
+ {\@float{table}}
+ {\end@float}
+
+
+
+\newlength\abovecaptionskip
+\newlength\belowcaptionskip
+
+\setlength\abovecaptionskip{\nbs}
+
+\setlength\belowcaptionskip{0pt}
+
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+
+
+
+
+
+
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+
+
+
+\endinput
+
+%% end of file `novel-Sandbox.sty'.
+
diff --git a/macros/luatex/latex/novel/novel-TextMacros.sty b/macros/luatex/latex/novel/novel-TextMacros.sty
new file mode 100644
index 0000000000..5b994c2538
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-TextMacros.sty
@@ -0,0 +1,587 @@
+%%
+%% This is file `novel-TextMacros.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\ProvidesFile{novel-TextMacros.sty}%
+[2018/04/26 v1.52 LaTeX file (text macros usable within document body)]
+%%
+
+
+%% This file contains various commands usable within the document body,
+%% for styling and otherwise manipulating text.
+%% These are not commands used in Preamble for setup, although a few of them
+%% can be used in Preamble for setup, then again in body for change.
+
+
+
+%% The following commands are BANNED.
+%% ----------------------------------------------------------------------------
+% The `novel' class disallows these commands, or neutralizes them by simply
+% repeating their arguments. In some cases, they request functionality
+% not implemented in `novel'. In other cases, the function is part of core,
+% but would interfere with the `novel' emphasis on constant line skip.
+% You may re-define the commands via your own code in Preamble (discouraged).
+%
+%% Standard LaTeX font sizes are ineffective. Use novel's own methods.
+% If you write one of these size commands, it will silently be ignored:
+% \small, \footnotesize, \scriptsize, \tiny,
+% \ large, \Large, \LARGE, \huge, \Huge, \HUGE, \textls
+%
+%% Internal subdivisions are ineffective.
+% The command will merely echo its argument, without any functionality:
+% \part, \chapter, \section, \subsection, \subsubsection,
+% \paragraph, \subparagraph.
+%
+%% Some commands will generate an error, so that you know they cannot be used:
+% \maketitle, \makeindex, \tableofcontents, \listoftables, \listoffigures,
+%
+%% You can only use \includepdf (package: pdfpages) for pdf files pre-processed
+%% by novel-scripts.
+%
+%% You cannot use \includegraphics. Instead use novel's own image commands.
+%
+%% Commands normally provided in other classes, pertaining to floats, figures,
+% and tables, are not defined in `novel' class.
+% If you attempt to use them, an error will result.
+%%
+
+
+%% AND NOW TO THE GOOD STUFF
+%% ----------------------------------------------------------------------------
+
+%%
+% New in version 1.38, \straightquote and \straightdblquote:
+\gdef\straightquote{{\addfontfeature{Ligatures=ResetAll}'}}
+\gdef\straightdblquote{{\addfontfeature{Ligatures=ResetAll}"}}
+%%
+
+%% Acronyms often look too big in regular capitals, but too small in
+% small caps. Command \midcase{} provides an intermediate size:
+\gdef\midcase#1{%
+ \if@HasDecoFont%
+ {\decofont{#1}}%
+ \else%
+ #1% simply echo the argument, if no decofont
+ \fi%
+}%
+%%
+
+%% Deco glyphs are decorative elements chosen from the decofont by code.
+% They are documented in file NovelDeco-glyphs.pdf, in the `extras' folder.
+\gdef\decoglyph#1{%
+ \if@HasDecoFont%
+ \IfBeginWith{#1}{n}{% normal weight symbol (same as regular)
+ \StrBehind{#1}{n}[\@tempdecoglyph]{\@decoglyph\symbol{\@tempdecoglyph}}%
+ }{}%
+ \IfBeginWith{#1}{r}{% regular weight symbol
+ \StrBehind{#1}{r}[\@tempdecoglyph]{\@decoglyph\symbol{\@tempdecoglyph}}%
+ }{}%
+ \IfBeginWith{#1}{l}{% light weight symbol
+ \StrBehind{#1}{l}[\@tempdecoglyph]{\@decoglypha\symbol{\@tempdecoglyph}}%
+ }{}%
+ \IfBeginWith{#1}{e}{% extra light weight symbol
+ \StrBehind{#1}{e}[\@tempdecoglyph]{\@decoglyphb\symbol{\@tempdecoglyph}}%
+ }{}%
+ \IfBeginWith{#1}{t}{% thin weight symbol
+ \StrBehind{#1}{t}[\@tempdecoglyph]{\@decoglyphc\symbol{\@tempdecoglyph}}%
+ }{}%
+ \else%
+ ~% non-breaking space, if no decofont
+ \fi%
+}%
+%%
+
+%% \memo{} does not print or save its argument.
+% Useful when you wish to put a note to yourself in the *.tex document.
+% Not the same as % comment, because anything after the braces will print.
+\long\gdef\memo#1{}
+%%
+
+%% \stake is like \strut, but does not occupy uch vertical space.
+\gdef\stake{\rule{0pt}{1pt}} % placeholder
+%%
+
+%% \smcp{} and \textsc{} small caps (Open Type) and \allsmcp{}:
+\DeclareDocumentCommand \smcp { +m } {% lowercase to small caps
+ {\addfontfeature{Letters=SmallCaps}#1}%
+}
+\ExplSyntaxOn
+\DeclareDocumentCommand \allsmcp { +m } {% lowercase+uppercase to small caps
+ \fontspec_if_feature:nTF {c2sc}{%
+ {\addfontfeatures{Letters=UppercaseSmallCaps, Letters=SmallCaps}#1}%
+ }{%
+ {\addfontfeature{Letters=SmallCaps}\MakeLowercase{#1}}%
+ }%
+ }
+\ExplSyntaxOff
+\let\textsc\smcp\relax % unified
+\let\oldscshape\scshape\relax % in case needed later
+\let\scshape\smcp\relax % unified
+\providecommand\FirstLineFont{\smcp} % package `magaz'
+\renewcommand\FirstLineFont{\smcp}
+%%
+
+%% `novel' class normally allows only black or grayscale text on white paper.
+%% In draft mode, option `shademargins` provides light gray margins,
+%% but still black text on white paper.
+%% Just in case `xcolor' re-defines its internals, to prevent code bomb:
+\ProvideDocumentCommand\@declaredcolor { m } {}
+\ProvideDocumentCommand\@undeclaredcolor { o m } {}
+% For convenience:
+\definecolor[named]{gray1}{gray}{0.15} % ten percent gray, etc.
+\definecolor[named]{gray2}{gray}{0.25}
+\definecolor[named]{gray3}{gray}{0.33}
+\definecolor[named]{gray4}{gray}{0.4}
+\definecolor[named]{gray5}{gray}{0.5}
+\definecolor[named]{gray6}{gray}{0.6}
+\definecolor[named]{gray7}{gray}{0.68}
+\definecolor[named]{gray8}{gray}{0.75}
+\definecolor[named]{gray9}{gray}{0.87}
+%%
+% This code is slightly modified from package `etextools' by Florent Chervet.
+% Its license: "This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3 of this
+% license or (at your option) any later version."
+% My rationale for not simply loading the package: Other parts of the package
+% generate warning messages, but the warnings do not apply in `novel'
+% Also, I might wish to hack the code at some point.
+\newcount\nov@ettl@fter
+\newrobustcmd\nov@AfterGroup{%
+ \@ifstar{\nov@ettl@AfterGroup\@firstofone}{\nov@ettl@AfterGroup\unexpanded}%
+}
+\newrobustcmd\nov@ettl@AfterGroup[2]{%
+\csxdef{nov@ettl@fterGroup\number\numexpr\the\nov@ettl@fter+1}%
+{\global\csundef{nov@ettl@fterGroup\number\numexpr\the\nov@ettl@fter+1}#1{#2}}%
+\global\advance\nov@ettl@fter\@ne%
+\expandafter\aftergroup\csname nov@ettl@fterGroup\the\nov@ettl@fter\endcsname%
+}
+%% End code from `etextools`.
+
+%% \flexbox based on code by Werner at tex.stackexchange.com, CC-by-sa-3.0:
+% Optional first argument is minimum width of box.
+% Second argument is contents of box.
+% Box width will be the greater of #1 or the width of #2.
+\newcommand{\flexbox}[2][\parindent]{%
+ \settowidth{\@tempLength}{#2}%
+ \ifdimcomp{\@tempLength}{<}{#1}{\makebox[#1][l]{#2}}{#2}%
+}
+%%
+
+%% \bigemdash inspired by code by RTBarnard at stackoverflow.com, CC-by-sa-3.0:
+% Allows a rule of variable length to fill available space at its right.
+% There must be a "right-hand limit" imposed by something, such as by enclosing
+% the rule in a \makebox of known width, or by an immediate \par.
+% Without this limit, rule will be missing (zero width) or excessively long,
+% or an error will result (referring to \leaders).
+% Takes a single optional argument: Comma-separated raise, line thickness.
+% If no argument or empty, defaults to [1,1].
+% Without comma, argument defaults to [argument,1].
+% First number: Scales raise/down. 1 = raise of emdash in typical fonts.
+% Second number: Scales line thickness. 1 = emdash in typical fonts.
+% NOTE: Built-in TeX PDF viewer might show the line at slightly incorrect
+% width and height. Best seen in a "real" PDF viewer.
+\DeclareDocumentCommand \bigemdash { O{1,1} }
+ {%
+ \ifthenelse{\equal{#1}{}\OR\equal{#1}{\space}}{%
+ \def\@myargsi{1,1}}{\def\@myargsi{#1}%
+ }%
+ \StrDel{\@myargsi}{\space}[\@myargs]%
+ \StrCut{\@myargs}{,}{\@myraisei}{\@mythicki}%
+ \ifthenelse{\equal{\@myraisei}{}\OR\equal{\@myraisei}{\space}}{%
+ \def\@myraise{1}}{\def\@myraise{\@myraisei}%
+ }%
+ \ifthenelse{\equal{\@mythicki}{}\OR\equal{\@mythicki}{\space}}{%
+ \def\@mythick{1}}{\def\@mythick{\@mythicki}%
+ }%
+ \FPmul{\@myraise}{\@myraise}{0.56}% ex, typical font emdash raise
+ \FPmul{\@mythick}{\@mythick}{0.049}% em, typical font emdash thickness
+ {\leaders\hbox{\rule[\@myraise ex]{1pt}{\@mythick em}}\hfill\stake}%
+ }
+%%
+
+%% \charscale[scale,x,y]{text} and starred version
+% This is an "in-line" means of adjusting font size
+% and position, without changing the baselineskip.
+% If the optional argument is unused or empty, then the text is not scaled
+% or moved, but equivalent to \stake\smash{text}.
+% Up to 3 arguments may be used in the single optional argument.
+% They are separated by commas. Spaces ignored.
+% First argument is scale. Number>=0.5. Default 1. Relative to what the size
+% would otherwise be. May multiply with an already-scaled font.
+% Second and third arguments are x-offset and y-offset, respectively.
+% Offsets are lengths, best measured in em or \nfs for horizontal,
+% and em or \nfs or \nbs for vertical. Default 0pt. Can abbreviate as 0.
+% Posiive offsets are horizontal right, vertical up.
+% Text is "smashed" and may go anywhere, even overlying other text or image.
+% The unstarred command occupies width equal to the scaled text,
+% thus leaving a "hole" where the text would have been.
+% The starred command occupies zero width, thus no hole. Consecutive starred
+% commands, without intervening space, displace from same origin.
+% The text must be on a single line, without break or wrap.
+% Do not use \\ or \par inside \charscale. Sometimes you need \par after it.
+% If the text is in a font other than usual, place the font command
+% outside \charscale, not inside.
+\DeclareDocumentCommand \charscale { s O{1} m } {%
+ % Allows empty or blank to be used, and still provide default values:
+ \ifthenelse{\equal{#2}{}\OR\equal{#2}{\space}}{%
+ \def\@myargs{1}%
+ }{%
+ \def\@myargs{#2}%
+ }%
+ \StrDel{\@myargs}{\space}[\@myargsns]% needs {\space} not { }
+ \StrCut{\@myargsns}{,}{\@myscalet}{\@mycoord}%
+ \ifthenelse{\equal{\@myscalet}{}}{%
+ \def\@myscale{1}%
+ }{%
+ \def\@myscale{\@myscalet}%
+ }%
+ \FPmax{\@myscale}{\@myscale}{0.5}% not permitted below this scale
+ \StrCut{\@mycoord}{,}{\@myxt}{\@myyt}%
+ \ifthenelse{\equal{\@myxt}{}\OR\equal{\@myxt}{0}}{%
+ \def\@myx{0pt}%
+ }{%
+ \def\@myx{\@myxt}%
+ }%
+ \ifthenelse{\equal{\@myyt}{}\OR\equal{\@myyt}{0}}{%
+ \def\@myy{0pt}%
+ }{%
+ \def\@myy{\@myyt}%
+ }%
+ \IfBooleanTF{#1}%
+ {% starred
+ \ifvmode\else\unskip\fi%
+ \stake\makebox[0pt][l]{%
+ \smash{\hspace{\@myx}\raisebox{\@myy}{\scalebox{\@myscale}{#3}}}%
+ }%
+ }{% unstarred
+ \stake\makebox[0pt][l]{%
+ \smash{\hspace{\@myx}\raisebox{\@myy}{\scalebox{\@myscale}{#3}}}%
+ }%
+ \smash{\phantom{\scalebox{\@myscale}{#3}}}%
+ }%
+ }% end \charscale
+%%
+
+
+% Note that \savepos is a luatex primitive, not a macro from gridset package.
+% Length \TotalYpos is measured from the very bottom of the page,
+% upward to the baseline of non-existent "line zero" in main text.
+% The first printed main text line is line 1.
+% Neither header nor footer influence this.
+\newlength\TotalYpos
+\gdef\@GetInitialYpos{% called by `novel.cls' \AtEndPreamble
+ \begingroup%
+ \savepos%
+ \protected@write\@auxout{}{%
+ \protect\@TotalYpos{\noexpand\number\lastypos}%
+ }%
+ \endgroup%
+}
+%
+\gdef\@TotalYpos#1{\gsetlength\TotalYpos{#1sp}}
+%
+
+
+%%
+\newlength\PosTolerance % How close is close enough?
+\setlength\PosTolerance{0.0625pt} % should be good enough
+%%
+
+
+%% Environment parascale. Scales one or more paragraphs. Modified in v. 1.52.
+% Warns when (as is often the case) the line after \end{parascale}
+% will be off grid. Then, add some \vspace just before \end{parascale}.
+\newenvironment{parascale}[1][1]{% optional argument is scale, default 1.
+ \FPmax{\@mytempDetailsN}{#1}{0.5}% must be at least half normal.
+ \FPmul{\@mytempDetailsFontN}{\@mytempDetailsN}{\strip@pt\@SetFontSize}%
+ \FPround{\@mytempDetailsFontN}{\@mytempDetailsFontN}{2}%
+ \FPmul{\@mytempDetailsSkipN}{\@mytempDetailsN}{\strip@pt\baselineskip}%
+ \FPround{\@mytempDetailsSkipN}{\@mytempDetailsSkipN}{2}%
+ \FPsub{\@mytempSkipN}{\strip@pt\baselineskip}{\@mytempDetailsSkipN}%
+ \vspace{\@mytempSkipN pt}% puts first scaled line at normal baseline
+ \begingroup%
+ \fontsize{\@mytempDetailsFontN pt}{\@mytempDetailsSkipN pt}\selectfont%
+ \ignorespaces%
+}{%
+ \par\endgroup%
+ \vspace{-\nbs}%
+ \leavevmode\getParapos\par% detects if following line will be off-grid
+ \vspace{0.002\nbs plus 0pt minus 0.2pt}% math fudge factor, in case of roundoff
+}
+%
+\gdef\getParapos{%
+ \begingroup%
+ \savepos%
+ \protected@write\@auxout{}{%
+ \protect\@getParapos{\noexpand\number\lastypos}{\thepage}%
+ }%
+ \endgroup%
+}
+%
+\newlength\CurrentParapos
+\gdef\@getParapos#1#2{} % initialized to nothing, when reading aux at beginning
+\gdef\@RedefineParapos{ % called by `novel.cls' \AtBeginDocument
+ \gdef\@getParapos##1##2{% numerical position sp, page
+ \gsetlength\CurrentParapos{##1sp}% measured up from very bottom of page.
+ % Now change it, to measure downward from "line zero" of main text:
+ \gsetlength\CurrentParapos{\TotalYpos-\CurrentParapos}% calc package.
+ \FPdiv{\ParaHowdown}{\strip@pt\CurrentParapos}{\strip@pt\nbs}% package fp
+ \FPtrunc{\ParaLinesdown}{\ParaHowdown}{0}% integer number of lines down
+ \FPsub{\ParaResidual}{\ParaHowdown}{\ParaLinesdown}% portion of line
+ \FPdiv{\@PosTolerance}{\strip@pt\PosTolerance}{\strip@pt\nbs}%
+ \gdef\ParaComplain{yes}%
+ \FPifgt{\@PosTolerance}{\ParaResidual}%
+ \gdef\ParaComplain{no}% within tolerance
+ \fi%
+ \FPsub{\ParaDeficit}{\strip@pt\nbs}{\ParaResidual}%
+ \FPifgt{\@PosTolerance}{\ParaDeficit}%
+ \gdef\ParaComplain{no}%
+ \fi%
+ \FPsub{\ParaResidual}{1}{\ParaResidual}%
+ \FPifgt{\@PosTolerance}{\ParaResidual}%
+ \gdef\ParaComplain{no}% within tolerance
+ \fi%
+ \FPifgt{\@PosTolerance}{\ParaDeficit}%
+ \gdef\ParaComplain{no}%
+ \fi%
+ \FPround{\ParaResidual}{\ParaResidual}{3}%
+ \FPclip{\ParaResidual}{\ParaResidual}%
+ \ifthenelse{\equal{\ParaComplain}{yes}}{%
+ \ClassWarning{novel}{Line after parascale may be off-grid, page ##2. ^^J%
+ Appears to be \ParaResidual\string\nbs\space higher than expected.}%
+ }{}%
+ }
+} % end @RedefineParapos
+%%
+
+
+%% Environment toc (alternative table of contents):
+% optional argument: additional vspace (\nbs) after each \tocitem entry.
+% required: LR margin increase, to narrow the table (0pt = full textwidth).
+\newlength\@tocnumwid
+\newlength\@tocskip
+\newenvironment{toc}[2][0]{%
+ \begin{adjustwidth}{#2}{#2}%
+ \begingroup%
+ \setlength\parindent{0pt}% local
+ \setlength\@tocnumwid{\widthof{00.~}}% local
+ \setlength\@tocskip{#1\nbs}% local
+}{%
+ \endgroup%
+ \end{adjustwidth}\par%
+}%
+% \tocitem[number]{description}{page} provides a one-line table entry in toc.
+% optional number might be chapter number. Can use ~ to offset.
+% unstarred: distance between description and page is not decorated.
+% starred (better): distance between description and page has dotted line.
+\newcommand\tocitem{\@ifstar\@tocitemst\@tocitemns}
+\newcommand\@tocitemst[3][]{%
+ \ifthenelse{\equal{#1}{}}{}{%
+ \ifthenelse{\equal{#1}{~}}{%
+ \makebox[\@tocnumwid][l]{~}%
+ }{%
+ \makebox[\@tocnumwid][l]{#1.}%
+ }%
+ }%
+ #2\,%
+ \leaders\hbox to 0.3em{\hfil.\hfil}\hfill% Thanks to user daniel-j via GitHub.
+ \,#3\par\vspace{\@tocskip}%
+}%
+%
+\newcommand\@tocitemns[3][]{%
+ \ifthenelse{\equal{#1}{}}{}{%
+ \ifthenelse{\equal{#1}{~}}{%
+ \makebox[\@tocnumwid][l]{~}%
+ }{%
+ \makebox[\@tocnumwid][l]{#1.}%
+ }%
+ }%
+ #2%
+ \hfill%
+ #3\par\vspace{\@tocskip}%
+}%
+%% end toc and \tocitem.
+
+%% legalese environment. Certain info, such as Copyright page, customarily is
+% neither justified nor hyphenated. Can be used wherever desired, of course.
+\newenvironment{legalese}
+{\raggedright\hyphenpenalty=10000\exhyphenpenalty=10000}
+{}
+%
+\gdef\hangleft#1{% places content to left of usual position.
+ \setlength\@tempLength{\widthof{#1}}% local
+ \stake\hspace{-\@tempLength}#1%
+}
+%%
+
+%% \showlength[decimal places]{length}{units}
+% Returns length as a string with the units, but does not change the length.
+% length is any existing length
+% units may be pt, bp, mm, cm, in
+% decimal places for rounding (0=integer, 1=one decimal point, etc.)
+% Example: \showlength[3]{17bp}{in} returns 0.236in
+\newcommand\showlength[3][]{%
+ \setlength\@tempLength{#2}%
+ \def\@tempLengthN{\strip@pt\@tempLength}%
+ \ifthenelse{\equal{#3}{bp}}{%
+ \FPmul{\@tempLengthN}{\@tempLengthN}{0.99626401}%
+ }{}%
+ \ifthenelse{\equal{#3}{mm}}{%
+ \FPmul{\@tempLengthN}{\@tempLengthN}{0.351459804}%
+ }{}%
+ \ifthenelse{\equal{#3}{cm}}{%
+ \FPmul{\@tempLengthN}{\@tempLengthN}{0.0351459804}%
+ }{}%
+ \ifthenelse{\equal{#3}{in}}{%
+ \FPmul{\@tempLengthN}{\@tempLengthN}{0.013837}%
+ }{}%
+ \ifthenelse{\equal{#1}{}}{}{\FPround{\@tempLengthN}{\@tempLengthN}{#1}}%
+ \@tempLengthN{#3}%
+} %
+%% end \showlength
+
+%% \lnum for lining numbers.
+\gdef\lnum#1{{\addfontfeature{Numbers=Lining}#1}}
+%%
+
+
+%% For developer use: prints a number of yada yada lines.
+% Starred version adds extra smashed lines above and below.
+\newcount\yadacurrentcount
+\newcount\yadaendcount
+\DeclareDocumentCommand\novelyadayada { s O{1} }{%
+ \yadacurrentcount=1%
+ \yadaendcount=#2%
+ \ifthenelse{\equal{#2}{0}}{}{%
+ \IfBooleanTF{#1}{%
+ \def\@yadadblup{\charscale*[1,\normalparindent,2\nbs]{Dbl Raised yada}}%
+ \def\@yadaup{\charscale*[1,\normalparindent,\nbs]{Raised yada}}%
+ \def\@yadadown{%
+ \ifnum\yadacurrentcount=\yadaendcount%
+ \charscale*[1,\normalparindent,-\nbs]{Dropped yada}%
+ \fi%
+ }%
+ \def\@yadadbldown{%
+ \ifnum\yadacurrentcount=\yadaendcount%
+ \charscale*[1,\normalparindent,-2\nbs]{Dropped yada}%
+ \fi%
+ }%
+ }{%
+ \def\@yadadblup{}%
+ \def\@yadaup{}%
+ \def\@yadadown{}%
+ \def\@yadadbldown{}%
+ }%
+ \loop%
+ \noindent\@yadadblup\@yadaup\@yadadown\@yadadbldown%
+ \makebox[\normalparindent][l]{\the\yadacurrentcount.}%
+ Lotta yada.\par
+ \def\@yadaup{}%
+ \def\@yadadblup{}%
+ \advance\yadacurrentcount 1%
+ \ifnum\yadacurrentcount<\yadaendcount%
+ \repeat%
+ }%
+}
+%%
+
+
+%% New in version 1.50: two columns, cannot cross page break.
+%% \sidebyside[a,b,c,d]{column 1 content}{column 2 content} % a,b,c,d lengths
+% a = left margin to left edge of left column (left indent)
+% b = left margin to right edge of left column ( = a + column width)
+% c = left margin to left edge of right column ( = a + b + gap)
+% d = left margin to right edge of right column ( = textwidth - right indent)
+% Thus 0pt <= a < b < c < d <= \textwidth.
+% Default: no indents, equal column widths, separated by \normalparindent.
+\DeclareDocumentCommand\sidebyside { O{} +m +m } {% no ExplSyntax, no more %:
+ \StrDel{#1}{\space}[\@argsns]
+ \StrCut{\@argsns}{,}{\@argsone}{\@argsothera}
+ \StrCut{\@argsothera}{,}{\@argstwo}{\@argsotherb}
+ \StrCut{\@argsotherb}{,}{\@argsthree}{\@argsfour}
+ \ifthenelse{\equal{\@argsone}{}}{%
+ \def\@sbsll{0pt}
+ }{%
+ \def\@sbsll{\@argsone}
+ }%
+ \setlength\@tempLength{0.5\textwidth-0.5\normalparindent}
+ \ifthenelse{\equal{\@argstwo}{}}{%
+ \edef\@sbslr{\the\@tempLength}
+ }{%
+ \edef\@sbslr{\@argstwo}
+ }%
+ \setlength\@tempLength{0.5\textwidth+0.5\normalparindent}
+ \ifthenelse{\equal{\@argsthree}{}}{%
+ \edef\@sbsrl{\the\@tempLength}
+ }{%
+ \edef\@sbsrl{\@argsthree}
+ }%
+ \ifthenelse{\equal{\@argsfour}{}}{%
+ \edef\@sbsrr{\the\textwidth}
+ }{%
+ \edef\@sbsrr{\@argsfour}
+ }%
+ \null\vspace{-\baselineskip}
+ \begin{adjustwidth}{\@sbsll}{\dimexpr\textwidth-\@sbsrr}
+ \noindent\begin{minipage}[t]{\dimexpr\@sbslr-\@sbsll}
+ \strut #2\strut
+ \end{minipage}\hspace{\normalparindent}\begin{minipage}[t]{\dimexpr\@sbsrr-\@sbsrl}
+ \strut #3\strut
+ \end{minipage}
+ \end{adjustwidth}
+ \null\vspace{-\baselineskip}
+} %
+%% end \sidebyside
+
+
+
+%% Some things must wait until after layout calculations:
+\gdef\@ActivateTextLengths{% called by `novel.cls' \AtEndPreamble
+ % Store some normal values (main font) for global use in document body:
+ \newlength\nfs % abbreviation for normal font point size
+ \gsetlength\nfs{\@SetFontSize}
+ \newlength\nbs % abbreviation for normal baselineskip
+ \gsetlength\nbs{\baselineskip}
+ \gsetlength\parindent{1.5em} % may be locally changed
+ \newlength\normalparindent
+ \gsetlength\normalparindent{\parindent}
+ \newlength\normalxheight % height of lowercase x
+ \gsetlength\normalxheight{\heightof{x}}
+ \newlength\normalXheight % height of uppercase X
+ \gsetlength\normalXheight{\heightof{X}}
+ \newlength\normalscxheight % height of small cap x
+ \gsetlength\normalscxheight{\heightof{\textsc{x}}}
+ \newlength\normalAringheight % height of Å (usually tallest in Latin-1)
+ \gsetlength\normalAringheight{\heightof{Å}}
+ \newlength\normaldescender % depth of lowercase gjpqy
+ \gsetlength\normaldescender{\depthof{gjpqy}}
+}% end \@ActivateTextLengths
+%%
+
+
+%% More things that must wait:
+\gdef\@ActivateTextMacros{% called by `novel.cls' \AtBeginDocument
+ % \forceindent and \backindent perform or remove indent, using \hspace{}.
+ % Rationale: Sometimes \indent and \noindent neutralized by another command.
+ \gdef\forceindent{\ifvmode\else\unskip\fi\stake\hspace{\normalparindent}}
+ \gdef\backindent{\ifvmode\else\unskip\fi\hspace{-\normalparindent}}
+}% end \@ActivateTextMacros
+%%
+
+
+%%
+\endinput
+%%
+%% End of file `novel-TextMacros.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-microtype.cfg b/macros/luatex/latex/novel/novel-microtype.cfg
new file mode 100644
index 0000000000..d5bb8e639f
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-microtype.cfg
@@ -0,0 +1,252 @@
+%%
+%% This is file `novel-microtype.cfg', part of `novel' document class.
+%% Modified from file `microtype.cfg' by Robert Allgeyer, 2017-2018.
+%%
+%% Original notice from `microtype.cfg' follows.
+%% Same license for `novel-microtype.cfg'.
+%%
+%% ------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c of this license or (at
+%% your option) any later version. The latest version of this license is in:
+%% http://www.latex-project.org/lppl.txt, and version 1.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% ------------------------------------------------------------------------
+%%
+%% When modifying this file, also change the identification line below.
+%% ------------------------------------------------------------------------
+%%
+\ProvidesFile{novel-microtype.cfg}%
+[2018/01/14 any version. (default microtype configuration for novel class)]
+
+%%% ---------------------------------------------------------------------------
+%%% FONT SETS
+
+\DeclareMicrotypeSet{all}
+ { }
+
+\DeclareMicrotypeSet{allmath}
+ { }
+
+\DeclareMicrotypeSet{alltext}
+ { }
+
+\DeclareMicrotypeSet{allmath-nott}
+ { family = {rm*,sf*} }
+
+\DeclareMicrotypeSet{alltext-nott}
+ { family = {rm*,sf*} }
+
+\DeclareMicrotypeSet{basicmath}
+ { family = {rm*,sf*}, series = {md*} }
+
+\DeclareMicrotypeSet{basictext}
+ { family = {rm*,sf*}, series = {md*}, }
+
+\DeclareMicrotypeSet{smallcaps}
+ { shape = {sc*,si,scit} }
+
+\DeclareMicrotypeSet{normalfont}
+ { font = */*/*/*/* }
+
+%%% ---------------------------------------------------------------------------
+%%% DEFAULT SETS
+
+\DeclareMicrotypeSetDefault[protrusion]{alltext}
+\DeclareMicrotypeSetDefault[expansion] {basictext}
+\DeclareMicrotypeSetDefault[spacing] {basictext}
+\DeclareMicrotypeSetDefault[kerning] {alltext}
+\DeclareMicrotypeSetDefault[tracking] {smallcaps}
+
+%%% ---------------------------------------------------------------------------
+%%% FONT VARIANTS AND ALIASES
+
+\DeclareMicrotypeVariants{x,j,w,a,d,0,1}
+
+\DeclareMicrotypeAlias{lmr} {Latin Modern Roman}
+\DeclareMicrotypeAlias{lmm} {Latin Modern Math}
+
+%%% ---------------------------------------------------------------------------
+%%% INTERACTION WITH THE `babel' PACKAGE
+
+\DeclareMicrotypeBabelHook
+ {english,UKenglish,british,USenglish,american}
+ {kerning=, spacing=nonfrench}
+
+\DeclareMicrotypeBabelHook
+ {french,francais,acadian,canadien}
+ {kerning=french, spacing=}
+
+\DeclareMicrotypeBabelHook
+ {turkish}
+ {kerning=turkish, spacing=}
+
+%%% ---------------------------------------------------------------------------
+%%% CHARACTER INHERITANCE
+
+\DeclareCharacterInheritance
+ { encoding = * }
+ { A = {\`A,\'A,\^A,\~A,\"A,\r A,\k A,\u A},
+ a = {\`a,\'a,\^a,\~a,\"a,\r a,\k a,\u a},
+ C = {\'C,\c C,\v C},
+ c = {\'c,\c c,\v c},
+ D = {\v D,\DH},
+ d = {\v d,\dj},
+ E = {\`E,\'E,\^E,\"E,\k E,\v E},
+ e = {\`e,\'e,\^e,\"e,\k e,\v e},
+ G = {\u G},
+ g = {\u g},
+ I = {\`I,\'I,\^I,\"I,\.I},
+ i = {\`i,\'i,\^i,\"i,\i},
+ L = {\L,\'L,\v L},
+ l = {\l,\'l,\v l},
+ N = {\'N,\~N,\v N},
+ n = {\'n,\~n,\v n},
+ O = {\O,\`O,\'O,\^O,\~O,\"O,\H O},
+ o = {\o,\`o,\'o,\^o,\~o,\"o,\H o},
+ R = {\'R,\v R},
+ r = {\'r,\v r},
+ S = {\'S,\c S,\v S}, % \SS
+ s = {\'s,\c s,\v s},
+ T = {\c T,\v T},
+ t = {\c t,\v t},
+ U = {\`U,\'U,\^U,\"U,\H U,\r U},
+ u = {\`u,\'u,\^u,\"u,\H u,\r u},
+ Y = {\'Y,\"Y},
+ y = {\'y,\"y},
+ Z = {\'Z,\.Z,\v Z},
+ z = {\'z,\.z,\v z},
+ }
+
+%%% ---------------------------------------------------------------------------
+%%% TRACKING/LETTERSPACING
+
+\SetTracking
+ [ name = default,
+ no ligatures = {f, T} ]
+ { encoding = * }
+ { }
+
+%%% ---------------------------------------------------------------------------
+%%% EXPANSION
+
+\SetExpansion
+ [ name = default ]
+ { encoding = * }
+ {
+ A = 500, a = 700,
+ \AE = 500, \ae = 700,
+ B = 700, b = 700,
+ C = 700, c = 700,
+ D = 500, d = 700,
+ E = 700, e = 700,
+ F = 700,
+ G = 500, g = 700,
+ H = 700, h = 700,
+ K = 700, k = 700,
+ M = 700, m = 700,
+ N = 700, n = 700,
+ O = 500, o = 700,
+ \OE = 500, \oe = 700,
+ P = 700, p = 700,
+ Q = 500, q = 700,
+ R = 700,
+ S = 700, s = 700,
+ U = 700, u = 700,
+ W = 700, w = 700,
+ Z = 700, z = 700,
+ 2 = 700,
+ 3 = 700,
+ 6 = 700,
+ 8 = 700,
+ 9 = 700,
+ }
+
+
+
+%%% ---------------------------------------------------------------------------
+%%% PROTRUSION
+
+\SetProtrusion
+ [ name = default ]
+ { encoding = * }
+ {
+ A = {50,50},
+ \AE = {50,50},
+ F = { ,50},
+ J = {50, },
+ K = { ,50},
+ L = { ,50},
+ T = {50,50},
+ V = {50,50},
+ W = {50,50},
+ X = {50,50},
+ Y = {50,50},
+ k = { ,50},
+ r = { ,50},
+ v = {50,50},
+ w = {50,50},
+ x = {50,50},
+ y = { ,50},
+ 1 = {50,50},
+ 4 = {50,50},
+ 7 = {50,50},
+ . = { ,200},
+ {,}= { ,200},
+ : = { ,200},
+ ; = { ,200},
+ ! = { ,100},
+ ? = { ,100},
+ @ = {50,50},
+ ~ = {200,200},
+ \% = {50,50},
+ * = {200,200},
+ + = {200,200},
+ ( = {100, },
+ ) = { ,200},
+ / = {100,200},
+ - = {200,200},
+ \textendash = {200,200}, \textemdash = {150,150},
+ \textquoteleft = {200, }, \textquoteright = { ,200},
+ \textquotedblleft = {200, }, \textquotedblright = { ,200},
+ }
+
+
+\SetProtrusion
+ [ name = it-default, ]
+ { encoding = * ,
+ shape = {it,sl} }
+ {
+ . = { ,500},
+ {,}= { ,500},
+ : = { ,300},
+ ; = { ,300},
+ & = {50,50},
+ \% = {100, },
+ * = {200,200},
+ + = {150,200},
+ @ = {50,50},
+ ~ = {150,150},
+ ( = {200, },
+ ) = { ,200},
+ / = {100,200},
+ - = {300,300},
+ \textendash = {200,200}, \textemdash = {150,150},
+ \textquoteleft = {400,200}, \textquoteright = {400,200},
+ \textquotedblleft = {400,200}, \textquotedblright = {400,200},
+ \textbackslash = {100,200},
+ \quotesinglbase = {300,700}, \quotedblbase = {400,500},
+ \guilsinglleft = {400,400}, \guilsinglright = {300,500},
+ \guillemotleft = {300,300}, \guillemotright = {300,300},
+ \textexclamdown = {100, }, \textquestiondown = {200, },
+ \textbraceleft = {200,100}, \textbraceright = {200,200},
+ }
+
+
+
+\endinput
+%%
+%% End of file `novel-microtype.cfg'.
+
diff --git a/macros/luatex/latex/novel/novel-pdfx.sty b/macros/luatex/latex/novel/novel-pdfx.sty
new file mode 100644
index 0000000000..4af4ea09f0
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-pdfx.sty
@@ -0,0 +1,517 @@
+%%
+%% This is file `novel-pdfx.sty', part of `novel' document class.
+%% Copyright (c) 2017-2018 Robert Allgeyer.
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% ----------------------------------------------------------------------------
+%%
+%% File `novel-pdfx.sty' uses code, directly copied or modified,
+%% from file `pdfx.sty', part of LaTeX package `pdfx': Copyright (c) 2015,
+%% CV Radhakrishnan, Han The Thanh, Ross Moore, Peter Selinger.
+%% Licensed LPPL 1.2+.
+%%
+%% ----------------------------------------------------------------------------
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{novel-pdfx.sty}%
+[2018/04/26 v1.52 LaTeX file (PDF/X support for novel class)]
+% This package supports, and is part of, class `novel'.
+% No support for anything but LuaLaTeX.
+
+% DO NOT ATTEMPT TO USE OUTSIDE `NOVEL' DOCUMENT CLASS.
+% Reason: Other files in this class define stuff that is used here.
+
+%%
+%% This file is loaded \AtEndPreamble.
+%%
+
+
+%% Preliminary tests for cases forbidding PDF/X:
+\ifdraftdoc
+ \global\@pdfxISofftrue
+\fi
+\if@sandbox
+ \global\@pdfxISofftrue
+\fi
+%
+\gdef\@AlertNoPDFX{% called by `novel.cls' AtBeginDocument
+ \if@pdfxSEToff\else
+ \ifdraftdoc
+ \typeout{^^JClass `novel' Alert: No PDF/X in draft mode. ^^J%
+ Your document was processed with \string\SetPDFX{off}. ^^J}%
+ \fi
+ \if@sandbox
+ \typeout{^^JClass `novel' Alert: No PDF/X with sandbox option. ^^J%
+ Your document was processed with \string\SetPDFX{off}. ^^J}%
+ \fi
+ \fi
+} % end @AlertNoPDFX
+%%
+
+
+% Hyperref options for PDF/X with LuaLaTeX:
+\def\pdfx@pdfX@opts@luatex{%
+ draft,pdfpagemode=UseNone,bookmarks=false,hyperfootnotes=false,%
+ hyperindex=false,implicit=false,pdfversion=1.\the\pdfminorversion,%
+ pdfpagelabels=true,pageanchor=false,pdfstartview=}
+%
+\RequirePackage[\pdfx@pdfX@opts@luatex]{hyperref}
+%
+\hypersetup{pdfencoding=auto}
+\expandafter\ifx\csname KV@Hyp@psdextra\endcsname\relax\else
+ \hypersetup{psdextra}
+\fi
+\Hy@bookmarksfalse
+%
+\ifthenelse{\equal{\@title}{} \OR \equal{\@title}{ }}{%
+ \global\@HasTitlefalse}{\global\@HasTitletrue%
+}
+\ifthenelse{\equal{\@title}{IMPORTANT: Provide Book Title}}{%
+ \ClassWarning{novel}{^^JDid not provide title using \string\SetTitle. ^^J%
+ Default used: `IMPORTANT: Provide Book Title'. Be sure to change it! ^^J}%
+}{}%
+%
+% Sanity check: If title is missing at this step, then compliance must be off:
+\if@pdfxISoff\else
+ \if@HasTitle\else
+ \ClassError{novel}{PDF/X requires non-empty \string\SetTitle\space}%
+ {Unless \string\SetPDFX\space is off, must use \string\SetTitle\space ^^J%
+ with non-empty title. Blank space counts as empty.}%
+ \fi
+\fi
+%
+\if@HasTitle\else
+ \ClassWarning{novel}{^^JYour file has been compiled without standard ^^J%
+ PDF internal metadata, such as the title. This is allowable, and in ^^J%
+ some cases desirable. But in most cases it is not what you intended. ^^J%
+ If you want title and other metadata to be in PDF internal metadata, ^^J%
+ then you must place them prior to the \string\SetPDFX. ^^J}
+\fi
+%
+\expandafter\ifx\csname pdfresetpageorigin\endcsname\relax\else
+ \pdfresetpageorigin=0
+\fi
+\edef\pdfcreationdate{\pdfcreationdate}%
+\let\pdfx@mdfivesum\pdf@mdfivesum
+%
+
+
+
+%% CALCULATE AND SPECIFY CROPBOX AND TRIMBOX
+%% ----------------------------------------------------------------------------
+%%
+% The MediaBox is automatically provided, so there is no need to write
+% MediaBox in /pdfInfo (because it would be a duplicate).
+% TrimBox is always necessary for PDF/X.
+% Although CropBox is not necessary, it seems that it is often written
+% by professional PDF software. For that reason, and for proper centering
+% of TrimBox when MediaBox is larger, CropBox is created (= MediaBox).
+%
+\newcommand\@myMWN{\strip@pt\paperwidth}
+\FPmul{\@myMWN}{\@myMWN}{0.99626401}
+\FPround{\@myMWN}{\@myMWN}{3}
+\FPclip{\@myMWN}{\@myMWN}
+\newcommand\@myMHN{\strip@pt\paperheight}
+\FPmul{\@myMHN}{\@myMHN}{0.99626401}
+\FPround{\@myMHN}{\@myMHN}{3}
+\FPclip{\@myMHN}{\@myMHN}
+\newcommand\@myTWN{\strip@pt\@TrimWidth}
+\FPmul{\@myTWN}{\@myTWN}{0.99626401}
+\FPround{\@myTWN}{\@myTWN}{3}
+\newcommand\@myTHN{\strip@pt\@TrimHeight}
+\FPmul{\@myTHN}{\@myTHN}{0.99626401}
+\FPround{\@myTHN}{\@myTHN}{3}
+%
+\FPsub{\@myTWorigin}{\@myMWN}{\@myTWN}
+\FPmul{\@myTWorigin}{\@myTWorigin}{0.5}
+\FPround{\@myTWorigin}{\@myTWorigin}{3}
+\FPadd{\@myTWcorner}{\@myTWorigin}{\@myTWN}
+\FPround{\@myTWcorner}{\@myTWcorner}{3}
+\FPsub{\@myTHorigin}{\@myMHN}{\@myTHN}
+\FPmul{\@myTHorigin}{\@myTHorigin}{0.5}
+\FPround{\@myTHorigin}{\@myTHorigin}{3}
+\FPadd{\@myTHcorner}{\@myTHorigin}{\@myTHN}
+\FPround{\@myTHcorner}{\@myTHcorner}{3}
+%
+\FPclip{\@myTWorigin}{\@myTWorigin}
+\FPclip{\@myTWcorner}{\@myTWcorner}
+\FPclip{\@myTHorigin}{\@myTHorigin}
+\FPclip{\@myTHcorner}{\@myTHcorner}
+%
+\newcommand\novel@CropBox{%
+ \if@cropview%
+ /CropBox[\@myTWorigin\space\@myTHorigin\space\@myTWcorner\space\@myTHcorner]%
+ \else%
+ /CropBox[0\space0\space\@myMWN\space\@myMHN]%
+ \fi%
+}
+%
+\newcommand\novel@TrimBox{%
+ /TrimBox[\@myTWorigin\space\@myTHorigin\space\@myTWcorner\space\@myTHcorner]%
+}
+%
+% New in version 1.2: BleedBox, only for cover art. Same size as MediaBox.
+\newcommand\novel@BleedBox{%
+ \if@coverart%
+ /BleedBox[0\space0\space\@myMWN\space\@myMHN]%
+ \fi%
+}
+%
+\begingroup\edef\next{%
+\endgroup\pdfpageattr{\novel@CropBox^^J\novel@BleedBox^^J\novel@TrimBox}}\next
+%
+%% End calculate and specify TrimBox.
+
+
+
+%% GENERAL PDF INTERNAL METADATA PREPARATION
+%% ----------------------------------------------------------------------------
+%
+% Create hashes that will be used for uuid data. Does not need to be fancy:
+\edef\xmp@docid{\pdfx@mdfivesum{jobname.pdf}}
+\edef\xmp@instid{\pdfx@mdfivesum{\pdfcreationdate}}
+%
+%% End general PDF in internal metadata preparation.
+
+
+
+%% PREPARATION OF XMP METADATA
+%% ----------------------------------------------------------------------------
+%% Data prepared here, will later be inserted into the XMP packet template,
+%% then the processed template will be incuded in the PDF.
+%% XMP metadata is in utf-8 encoding.
+%
+% Make the XMP look pretty:
+\def\pad@ii{\space\space}
+\def\pad@iv{\pad@ii\pad@ii}
+\def\pad@vi{\pad@iv\pad@ii}
+\def\pad@viii{\pad@vi\pad@ii}
+\def\pad@x{\pad@viii\pad@ii}
+\def\pad@xii{\pad@x\pad@ii}
+\def\pad@xiv{\pad@xii\pad@ii}
+\def\pad@xvi{\pad@xiv\pad@ii}
+\def\pad@xviii{\pad@xvi\pad@ii}
+\def\pad@xx{\pad@xviii\pad@ii}
+\def\pad@xxxii{\pad@xvi\pad@xvi}
+\def\pad@lxiv{\pad@xxxii\pad@xxxii}
+\def\pad@cxxviii{\pad@lxiv\pad@lxiv}
+\def\pad@cclvi{\pad@cxxviii\pad@cxxviii}
+\def\pad@dxii{\pad@cclvi\pad@cclvi}
+%
+% Frankly, I am not sure if all this rigamarole is necessary, but it works!
+% Here, portions of XMP code are prepared. Later, they will be inserted
+% into the XMP packet template.
+\gdef\@titleString{
+ \pad@vi<dc:title>^^J
+ \pad@viii<rdf:Alt>^^J
+ \pad@x<rdf:li xml:lang="x-default">\@title</rdf:li>^^J
+ \pad@viii</rdf:Alt>^^J
+ \pad@vi</dc:title>^^J
+}
+%
+\ifthenelse{\equal{\@author}{}}{
+ \gdef\@authorString{}
+}{
+ \gdef\@authorString{
+ \pad@vi<dc:creator>^^J
+ \pad@viii<rdf:Bag>^^J
+ \pad@x<rdf:li>\@author</rdf:li>^^J
+ \pad@viii</rdf:Bag>^^J
+ \pad@vi</dc:creator>^^J
+ }
+}
+%
+\def\@documentID{uuid:\xmp@docid}
+\def\@instanceID{uuid:\xmp@instid}
+%
+\def\@pdfVersion{1.\the\pdfminorversion}
+%
+\if@pdfxISoff
+ \gdef\@verconfString{}%
+\else
+ \gdef\@verconfString{
+ \pad@vi<pdfx:GTS_PDFXVersion>\@PDFXversion</pdfx:GTS_PDFXVersion>^^J
+ \if@HasConformance
+ \pad@vi<pdfx:GTS_PDFXConformance>%
+ \@PDFXconformance</pdfx:GTS_PDFXConformance>^^J
+ \fi
+ }
+\fi
+%
+\if@pdfxISoff
+ \gdef\@pdfidString{}%
+\else
+ \gdef\@pdfidString{
+ \pad@vi<pdfxid:GTS_PDFXVersion>\@PDFXversion</pdfxid:GTS_PDFXVersion>^^J
+ }
+\fi
+%
+\ifthenelse{\equal{\@novelApplication}{} \OR \equal{\@novelApplication}{ }}{
+ \gdef\@applicationString{}%
+}{
+ \gdef\@applicationString{\pad@vi<xmp:CreatorTool>%
+ \@novelApplication</xmp:CreatorTool>^^J}%
+}
+%
+\ifthenelse{\equal{\@novelProducer}{} \OR \equal{\@novelProducer}{ }}{
+ \gdef\@producerString{}%
+}{
+ \gdef\@producerString{\pad@vi<pdf:Producer>%
+ \@novelProducer</pdf:Producer>^^J}%
+}
+%
+% Calculation of Dates and Times, which must be in a specific format.
+% Each time you process to PDF, the current date/time is used,
+% for all of the several metadata date/time strings.
+\def\xmp@cDate{\pdfx@getYear}
+{\catcode`\D=12 \catcode`\:=12
+ \gdef\pdfx@getYear D:#1#2#3#4{\edef\pdfx@xYear{#1#2#3#4}\pdfx@getMonth}
+}
+\def\pdfx@getMonth#1#2{\edef\pdfx@xMonth{#1#2}\pdfx@getDay}
+\def\pdfx@getDay#1#2{\edef\pdfx@xDay{#1#2}\pdfx@getHour}
+\def\pdfx@getHour#1#2{\edef\pdfx@xHour{#1#2}\pdfx@getMin}
+\def\pdfx@getMin#1#2{\edef\pdfx@xMin{#1#2}\pdfx@getSec}
+\def\pdfx@getSec#1#2{\edef\pdfx@xSec{#1#2}\pdfx@getTZh}
+\def\pdfx@getTZh{\futurelet\pdfx@next\pdfx@getTzh@branches}
+%
+{\catcode`\@=11 \catcode`\Z=12 \catcode`\+=12 \catcode`\-=12 % ends below
+\gdef\pdfx@getTzh@branches{%
+ \ifx\pdfx@next Z\let\pdfx@getTzbranch\pdfx@getTznozone
+ \else\ifx\pdfx@next +\let\pdfx@getTzbranch\pdfx@getTzplus
+ \else\ifx\pdfx@next -\let\pdfx@getTzbranch\pdfx@getTzminus
+ \else\let\pdfx@getTzbranch\pdfx@getTzerror
+ \fi\fi\fi \pdfx@getTzbranch }
+%
+\catcode`\0=12
+\gdef\pdfx@getTznozone Z#1\pdfx@getTzend{%
+ \edef\pdfx@xTzh{+00}\edef\pdfx@xTzm{00}}
+\gdef\pdfx@getTzplus +#1'#2'#3\pdfx@getTzend{%
+ \edef\pdfx@xTzh{+#1}\edef\pdfx@xTzm{#2}%
+ \ifx\relax#2\relax\def\pdfx@xTzm{00}\fi}
+\gdef\pdfx@getTzminus -#1'#2'#3\pdfx@getTzend{%
+ \edef\pdfx@xTzh{-#1}\edef\pdfx@xTzm{#2}%
+ \ifx\relax#2\relax\def\pdfx@xTzm{00}\fi}
+%
+\expandafter\ifx\csname pdfcreationdate\endcsname\relax
+\else
+ \expandafter\expandafter\expandafter\xmp@cDate\pdfcreationdate''\pdfx@getTzend
+ \xdef\pdfx@convDate{\pdfx@xYear\pdfx@xMonth\pdfx@xDay\pdfx@xHour
+ \pdfx@xMin\pdfx@xSec\pdfx@xTzh'\pdfx@xTzm'}%
+ \xdef\xmp@cDate{\pdfx@xYear-\pdfx@xMonth-\pdfx@xDay
+ T\pdfx@xHour:\pdfx@xMin:\pdfx@xSec\pdfx@xTzh:\pdfx@xTzm}%
+\fi
+}% End of \catcode`\@=11 etc.
+\let\@modifyDate\xmp@cDate
+\let\@createDate\xmp@cDate
+\let\@metadataDate\xmp@cDate
+% End dates and times.
+%
+%% End Prepare XMP metadata.
+
+
+
+%% WRITE THE XMP METADATA, UNLESS PDF/X IS OFF OR NO TITLE
+%%-----------------------------------------------------------------------------
+%% Inserts the prepared XMP metadata into XMP packet template, then writes
+%% the result at the start of the PDF, right now, before the document.
+%
+\if@pdfxISoff\else
+ \if@HasTitle
+ \begingroup
+ \makeatletter
+ \input{novel-xmppacket.sty}
+ \global\let\@xmpData\@xmpPacket % from the above file
+ \begingroup
+ \pdfcompresslevel=0
+ \immediate\pdfobj stream attr {/Type /Metadata /Subtype /XML} {\@xmpData}
+ \pdfcatalog{/Metadata \the\pdflastobj\space 0 R}
+ \endgroup
+ \endgroup
+ % Creates external xml file, if requested:
+ \if@wantXMPasXML
+ \newwrite\file
+ \immediate\openout\file=\jobname-XMPasXML.xml
+ \immediate\write\file{<?xml version="1.0" encoding="UTF-8" %
+ standalone="yes" ?>^^J}
+ \immediate\write\file{<!-- Ignore any message about not having style %
+ information. That is normal. -->^^J}
+ \immediate\write\file{<!-- Your viewer's font must be able to display %
+ any characters used in the XMP. -->^^J}
+ \immediate\write\file{<!-- For example, if your XMP has Cyrillic, %
+ then you need a Cyrillic-capable font. -->^^J}
+ \immediate\write\file{<!-- Any decorations (such as dashes in front of %
+ lines) are added by the viewer. Not in XMP. -->^^J}
+ \immediate\write\file{<!-- Note: xpacket begin="" contains the invisible %
+ 3-byte utf-8 BOM within its quotes. -->^^J}
+ \immediate\write\file{<!-- The above xml declaration, and these %
+ comments, are not part of the XMP packet. -->^^J}
+ \immediate\write\file{\@xmpData^^J}
+ \closeout\file
+ \fi
+ \fi
+\fi
+%
+%
+%% End write the XMP metadata.
+
+
+
+%% PREPARE PDF /INFO METADATA
+%% ----------------------------------------------------------------------------
+%% PDF /Info is another form of metadata, older than XMP but still used.
+%% It is NOT in utf-8 encoding. Depending on content, one of two encodings
+%% will be automatically used: PDFDoc encoding if metadata uses only
+%% characters within Latin-1, or utf-16 if metadata is not within Latin-1.
+%% Either way, the input was utf-8 before processing.
+%% In principle, PDF /Info is obsolete whenever PDF/X is used, because
+%% XMP metadata is supposed to prevail through the printing workflow.
+%% In practice, things don't always work that way. So, unless your PDF
+%% has no metadata, essential items are re-encoded and copied to PDF /Info.
+%% Other than encoding, XMP metadata and PDF /Info must be exactly the same.
+%% All of those issues are handled automatically here.
+%% The result is written at the end of the PDF, after the document.
+%
+% Macro for massaging encodings:
+\def\@infotopdfstring#1#2{%
+ \ifx#2\@empty
+ \global\let#1\empty
+ \else
+ \begingroup
+ \hypersetup{pdfencoding=auto}%
+ \pdfstringdef#1{#2}%
+ \endgroup
+ \fi
+}
+% Now, massage the metadata:
+\@infotopdfstring{\@infotitle}{\@title}
+\@infotopdfstring{\@infoauthor}{\@author}
+\@infotopdfstring{\@infoapplication}{\@novelApplication}
+\@infotopdfstring{\@infoproducer}{\@novelProducer}
+%
+%% End prepare PDF /Info.
+
+
+
+%% WRITE THE OUTPUT INTENT, UNLESS PDFX IS OFF.
+%% ----------------------------------------------------------------------------
+% Data for CGATS TR 001, FOGRA39, and JC200103 are in file novel-FileData.sty.
+\if@pdfxISoff\else
+ \begingroup
+ \edef\@pctchar{\expandafter\@gobble\string\%} % Escaped in TeX, not PDF.
+ \edef\@bchar{\expandafter\@gobble\string\\} % For use as escape, below.
+ \edef\0{\string\0} % Not sure why, but it works.
+ \edef\({\string\(} % PDF Catalog requires escaped parentheses.
+ \edef\){\string\)} % PDF Catalog requires escaped parentheses.
+ \catcode`\_ 12 % The icc file name might contain underscores.
+ %
+ \if@EmbedICC
+ \IfFileExists{\@OIprofile}{%
+ \immediate\pdfobj stream attr{/N 4} file{\@OIprofile}%
+ \edef\OBJ@OI{\the\pdflastobj\space 0 R}%
+ }{%
+ \ClassError{novel}{Requested icc color profile not found}%
+ {You used the starred \string\SetPDFX*\space which embeds the ^^J%
+ associated icc color profile. But the file could not be located. ^^J%
+ If necessary, put it in the same folder as your *.tex document. ^^J%
+ Incidentally: Do you really need to embed the profile?}%
+ }
+ \fi
+ \ifthenelse{\equal{\@OIcondition}{}}{
+ \edef\@OIconditionString{}%
+ }{
+ \edef\@OIconditionString{/OutputCondition (\@OIcondition)}%
+ }
+ \ifthenelse{\equal{\@OIidentifier}{}}{
+ \edef\@OIidentifierString{}%
+ }{
+ \edef\@OIidentifierString{/OutputConditionIdentifier (\@OIidentifier)}%
+ }
+ \ifthenelse{\equal{\@OIinfo}{}}{
+ \edef\@OIinfoString{}%
+ }{
+ \edef\@OIinfoString{/Info (\@OIinfo)}%
+ }
+ \ifthenelse{\equal{\@OIregistry}{}}{
+ \edef\@OIregistryString{}%
+ }{
+ \edef\@OIregistryString{/RegistryName (\@OIregistry)}%
+ }
+ \pdfcatalog{%
+ /OutputIntents [ <<%
+ /Type/OutputIntent%
+ /S/GTS_PDFX%
+ \@OIconditionString%
+ \@OIidentifierString%
+ \@OIinfoString%
+ \@OIregistryString%
+ \if@EmbedICC/DestOutputProfile \OBJ@OI\fi%
+ >> ]%
+ }%
+ \endgroup
+\fi
+%
+%% End write the output intent.
+
+
+
+%% DISABLE HYPERREF OPTIONS
+%%-----------------------------------------------------------------------------
+%% Prevents changes that will cause an incompatibility.
+%
+\Hy@DisableOption{pdfauthor}%
+\Hy@DisableOption{pdftitle}%
+\Hy@DisableOption{pdfsubject}%
+\Hy@DisableOption{pdfcreator}%
+\Hy@DisableOption{pdfcreationdate}%
+\Hy@DisableOption{pdfmoddate}%
+\Hy@DisableOption{pdfproducer}%
+\Hy@DisableOption{pdfkeywords}%
+%
+%% End disable hyperref options.
+
+
+
+%% PREPARE PDF/Info
+%% ----------------------------------------------------------------------------
+\gdef\@ActivatePDFInfo{% called by `novel.cls' \AtBeginDocument
+ \if@HasTitle
+ \pdfinfo{
+ \ifx\@infotitle\@empty\else /Title(\@infotitle)\fi
+ \ifx\@infoauthor\@empty\else /Author(\@infoauthor)\fi
+ \ifx\@infoapplication\@empty\else /Creator(\@infoapplication)\fi
+ \ifx\@pdfcreationdate\@empty
+ /CreationDate(D:\pdfx@convDate)%
+ \else
+ /CreationDate(\@pdfcreationdate)%
+ \fi
+ \ifx\@pdfmoddate\@empty
+ /ModDate(D:\pdfx@convDate)%
+ \else
+ /ModDate(\@pdfmoddate)%
+ \fi
+ \ifx\@infoproducer\@empty\else /Producer(\@infoproducer)\fi%
+ /Trapped/False%
+ \if@pdfxISoff\else
+ /GTS_PDFXVersion(\@PDFXversion)%
+ \if@HasConformance /GTS_PDFXConformance(\@PDFXconformance)\fi%
+ \fi
+ }
+ \fi
+}%
+%% End \@ActivatePDFInfo.
+
+
+
+%%
+\endinput
+%%
+%% End of file `novel-pdfx.sty'.
+
+
diff --git a/macros/luatex/latex/novel/novel-xmppacket.sty b/macros/luatex/latex/novel/novel-xmppacket.sty
new file mode 100644
index 0000000000..a70419c6fe
--- /dev/null
+++ b/macros/luatex/latex/novel/novel-xmppacket.sty
@@ -0,0 +1,186 @@
+%%
+%% This is file `novel-xmppacket.sty', part of `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer.
+%%
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+%% ----------------------------------------------------------------------------
+%%
+%% The descriptive properties of the namespaces, and the general format of XMP,
+%% are public standards released by Adobe Systems Incorporated.
+%% See http://www.adobe.com/products/xmp.html
+%%
+%% ----------------------------------------------------------------------------
+%%
+%%
+\ProvidesFile{novel-xmppacket.sty}%
+[2018/01/14 any version. (novel XMP packet template)]
+%%
+
+
+
+% This packet uses utf-8 BOM.
+% The catcodes allow # _ ~ $ % & to be used as ordinary characters.
+% \edef and \let get rid of escape backslashes in front of those characters.
+% NO COMMENTS AFTER THIS! Until \endgroup.
+
+
+
+
+
+\begingroup
+\catcode`\¤=12\relax
+\lccode`\¤="FEFF
+\lowercase{\gdef\@novelBOM{¤}}
+\catcode`\#=12
+\catcode`\_=12
+\catcode`\~=12
+\catcode`\$=12
+\catcode`\%=12
+\catcode`\&=12
+
+\edef\@pctchar{\expandafter\@gobble\string\%}
+\let\%\@pctchar
+\edef\@hashchar{\expandafter\@gobble\string\#}
+\let\#\@hashchar
+\edef\@ampchar{\expandafter\@gobble\string\&amp;}
+\let\&\@ampchar
+\edef\@dollarchar{\expandafter\@gobble\string\$}
+\let\$\@dollarchar
+\edef\@underchar{\expandafter\@gobble\string\_}
+\let\_\@underchar
+\edef\@tildechar{\expandafter\@gobble\string\~}
+\let\~\@tildechar
+
+\xdef\@xmpPacket{<?xpacket begin="\@novelBOM" id="W5M0MpCehiHzreSzNTczkc9d"?>^^J
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04\pad@iv\pad@iv">^^J
+\pad@ii<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:xmp="http://ns.adobe.com/xap/1.0/">^^J
+\pad@vi<xmp:ModifyDate>\@modifyDate</xmp:ModifyDate>^^J
+\pad@vi<xmp:CreateDate>\@createDate</xmp:CreateDate>^^J
+\@applicationString
+\pad@vi<xmp:MetadataDate>\@metadataDate</xmp:MetadataDate>^^J
+\pad@iv</rdf:Description>^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:dc="http://purl.org/dc/elements/1.1/">^^J
+\pad@vi<dc:format>application/pdf</dc:format>^^J
+\@titleString
+\@authorString
+\pad@iv</rdf:Description>^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">^^J
+\pad@vi<xmpMM:DocumentID>\@documentID</xmpMM:DocumentID>^^J
+\pad@vi<xmpMM:InstanceID>\@instanceID</xmpMM:InstanceID>^^J
+\pad@vi<xmpMM:RenditionClass>default</xmpMM:RenditionClass>^^J
+\pad@vi<xmpMM:VersionID>1</xmpMM:VersionID>^^J
+\pad@iv</rdf:Description>^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:pdf="http://ns.adobe.com/pdf/\@pdfVersion/">^^J
+\@producerString
+\pad@vi<pdf:Trapped>False</pdf:Trapped>^^J
+\pad@iv</rdf:Description>^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:pdfx="http://ns.adobe.com/pdfx/\@pdfVersion/">^^J
+\@verconfString
+\pad@iv</rdf:Description>^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/">^^J
+\@pdfidString
+\pad@iv</rdf:Description>^^J
+\pad@iv<rdf:Description rdf:about=""^^J
+\pad@viii xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"^^J
+\pad@viii xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"^^J
+\pad@viii xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">^^J
+\pad@vi<pdfaExtension:schemas>^^J
+\pad@viii<rdf:Bag>^^J
+\pad@x<rdf:li rdf:parseType="Resource">^^J
+\pad@xii<pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/\@pdfVersion/</pdfaSchema:namespaceURI>^^J
+\pad@xii<pdfaSchema:prefix>pdf</pdfaSchema:prefix>^^J
+\pad@xii<pdfaSchema:schema>Adobe PDF Schema</pdfaSchema:schema>^^J
+\pad@xii<pdfaSchema:property>^^J
+\pad@xiv<rdf:Seq>^^J
+\pad@xvi<rdf:li rdf:parseType="Resource">^^J
+\pad@xviii<pdfaProperty:category>internal</pdfaProperty:category>^^J
+\pad@xviii<pdfaProperty:description>A name object indicating whether the document has been modified to include trapping information</pdfaProperty:description>^^J
+\pad@xviii<pdfaProperty:name>Trapped</pdfaProperty:name>^^J
+\pad@xviii<pdfaProperty:valueType>Text</pdfaProperty:valueType>^^J
+\pad@xvi</rdf:li>^^J
+\pad@xiv</rdf:Seq>^^J
+\pad@xii</pdfaSchema:property>^^J
+\pad@x</rdf:li>^^J
+\pad@x<rdf:li rdf:parseType="Resource">^^J
+\pad@xii<pdfaSchema:namespaceURI>http://ns.adobe.com/pdfx/\@pdfVersion/</pdfaSchema:namespaceURI>^^J
+\pad@xii<pdfaSchema:prefix>pdfx</pdfaSchema:prefix>^^J
+\pad@xii<pdfaSchema:schema>PDF/X ID Schema</pdfaSchema:schema>^^J
+\pad@xii<pdfaSchema:property>^^J
+\pad@xiv<rdf:Seq>^^J
+\pad@xvi<rdf:li rdf:parseType="Resource">^^J
+\pad@xviii<pdfaProperty:category>internal</pdfaProperty:category>^^J
+\pad@xviii<pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>^^J
+\pad@xviii<pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>^^J
+\pad@xviii<pdfaProperty:valueType>Text</pdfaProperty:valueType>^^J
+\pad@xvi</rdf:li>^^J
+\pad@xvi<rdf:li rdf:parseType="Resource">^^J
+\pad@xviii<pdfaProperty:category>internal</pdfaProperty:category>^^J
+\pad@xviii<pdfaProperty:description>Conformance level of PDF/X standard</pdfaProperty:description>^^J
+\pad@xviii<pdfaProperty:name>GTS_PDFXConformance</pdfaProperty:name>^^J
+\pad@xviii<pdfaProperty:valueType>Text</pdfaProperty:valueType>^^J
+\pad@xvi</rdf:li>^^J
+\pad@xiv</rdf:Seq>^^J
+\pad@xii</pdfaSchema:property>^^J
+\pad@x</rdf:li>^^J
+\pad@x<rdf:li rdf:parseType="Resource">^^J
+\pad@xii<pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>^^J
+\pad@xii<pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>^^J
+\pad@xii<pdfaSchema:schema>XMP Media Management Schema</pdfaSchema:schema>^^J
+\pad@xii<pdfaSchema:property>^^J
+\pad@xiv<rdf:Seq>^^J
+\pad@xvi<rdf:li rdf:parseType="Resource">^^J
+\pad@xviii<pdfaProperty:category>internal</pdfaProperty:category>^^J
+\pad@xviii<pdfaProperty:description>UUID based identifier for specific incarnation of a document</pdfaProperty:description>^^J
+\pad@xviii<pdfaProperty:name>InstanceID</pdfaProperty:name>^^J
+\pad@xviii<pdfaProperty:valueType>URI</pdfaProperty:valueType>^^J
+\pad@xvi</rdf:li>^^J
+\pad@xiv</rdf:Seq>^^J
+\pad@xii</pdfaSchema:property>^^J
+\pad@x</rdf:li>^^J
+\pad@x<rdf:li rdf:parseType="Resource">^^J
+\pad@xii<pdfaSchema:namespaceURI>http://www.npes.org/pdfx/ns/id/</pdfaSchema:namespaceURI>^^J
+\pad@xii<pdfaSchema:prefix>pdfxid</pdfaSchema:prefix>^^J
+\pad@xii<pdfaSchema:schema>PDF/X ID Schema</pdfaSchema:schema>^^J
+\pad@xii<pdfaSchema:property>^^J
+\pad@xiv<rdf:Seq>^^J
+\pad@xvi<rdf:li rdf:parseType="Resource">^^J
+\pad@xviii<pdfaProperty:category>internal</pdfaProperty:category>^^J
+\pad@xviii<pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>^^J
+\pad@xviii<pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>^^J
+\pad@xviii<pdfaProperty:valueType>Text</pdfaProperty:valueType>^^J
+\pad@xvi</rdf:li>^^J
+\pad@xiv</rdf:Seq>^^J
+\pad@xii</pdfaSchema:property>^^J
+\pad@x</rdf:li>^^J
+\pad@viii</rdf:Bag>^^J
+\pad@vi</pdfaExtension:schemas>^^J
+\pad@iv</rdf:Description>^^J
+\pad@ii</rdf:RDF>^^J
+</x:xmpmeta>^^J
+\pad@dxii
+<?xpacket end="w"?>}
+\endgroup
+
+
+% OK to use comments now.
+%%
+\endinput
+%%
+%% End of file `novel-xmppacket.sty'.
+
diff --git a/macros/luatex/latex/novel/novel.cls b/macros/luatex/latex/novel/novel.cls
new file mode 100644
index 0000000000..e029b43c79
--- /dev/null
+++ b/macros/luatex/latex/novel/novel.cls
@@ -0,0 +1,678 @@
+%%
+%% This is file `novel.cls', LuaLaTeX `novel' document class.
+%% Copyright 2017-2018 Robert Allgeyer. Contact: anytthree [at] gmail.com
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+% Actually needs LuaLaTeX, at least version 0.95 from TeXLive 2016.
+\ProvidesClass{novel}[2018/04/26 v1.52 LaTeX document class]
+%%
+%% Version 1.50.n (any n) incremental minor changes from 1.50.
+%% Version 1.50: Improved image handled, sandbox, scripts.
+%% Version 1.46.2: Now called "novel-old" version.
+%% Version 1.43: General cleanup of docs and code, for improved readbaility.
+%% Version 1.42: Greatly improved HTML documentation.
+%% Version 1.41: Improved HTML documentation.
+%% Versions 1.40.x: Incremental minor changes, leading to 1.42.
+%% Version 1.40: removed `debug' option (was not useful). Major docs rewrite.
+%% This version was successfully used for a P.O.D. novel, with cover.
+%% Version 1.38: corrected offset in cover artwork; some docs modified.
+%% Version 1.36: minor documentation correction.
+%% Version 1.34: Added debug class option and related code. [Later removed.]
+%% Version 1.32 includes a minor documentation fix, and a major bug fix
+%% concerning looose text tracking. The bug occasionally appeared when
+%% page headings were compiled, but gave a cryptic error message
+%% about MT@res@a. The fix is expected to be permanent.
+%% Version 1.2: Added capability for cover artwork.
+%% Versions 1.1.x: First general release, occasional documentation changes.
+
+
+%% DESCRIPTION:
+%% ----------------------------------------------------------------------------
+%% Class `novel' is designed for print fiction: novels or short stories.
+%% It cannot be used for e-books or for journal publication.
+%% It is not suitable for most non-fiction, because routine academic features
+%% such as bibiography and automatic sectioning are defeated.
+%%
+%% There are pre-configured layouts for the most commonly used choices of
+%% trim size (finished book width and height), and internal layout consistent
+%% with fiction. The user can over-ride the pre-configured settings.
+%%
+%% The class will automatically create PDF/X compliant files upon request,
+%% using a self-contained command structure. Results have been tested.
+%%
+%% LuaLaTeX is required, and input files must be encoded utf-8.
+%%
+%% Fonts are loaded by luaotfload and fontspec, and massaged by microtype.
+%% For best results, use modern Open Type fonts, or TrueType fonts.
+%%
+%% The Libertinus font family, a fork of [Linux] Libertine/Biolinum,
+%% is the default. Actually, I recommend it! In addition, an included
+%% custom font, NovelDeco.otf, is used for special purposes.
+%%
+
+
+%% REQUIRE LUATEX and do some preliminary setup.
+%% ----------------------------------------------------------------------------
+%% These are not user settings.
+%
+\RequirePackage{ifluatex} % LuaTeX is required. Not XeTeX, dvips, or pdfTeX.
+\RequirePackage{ifxetex} % For occasional hacks (hiss, boo).
+\RequirePackage{luatex85} % Needed for compatibility with LuaTeX 0.95 etc.
+\RequirePackage{pdftexcmds} % compatibility
+\ifluatex
+ % New with TeXlive 2016. Removes unnecessary File Data:
+ \pdfvariable suppressoptionalinfo 511 % writes only ID to PDF Catalog
+\else
+ \ClassError{novel}{Must compile with LuaLaTeX 0.95+}%
+ {Sorry, LuaLaTeX only. No pdfTeX, dvips, or XeTeX.}
+\fi
+\pdfimageresolution=300 % default dpi if image does not say
+%
+\RequirePackage{etoolbox} % general good stuff
+\RequirePackage{xifthen} % improved ifthenelse handling
+\RequirePackage{xstring} % parses strings
+\RequirePackage{fp} % used everywhere for math calculations
+\RequirePackage{xfp} % more math calculations
+\RequirePackage{keyval} % used by drop cap
+\FPmessagesfalse % eliminates numerous friendly messages from the log
+%
+\pdfminorversion=3 % might be reset later, depending on settings
+\gdef\thepdfminorversion{\pdfminorversion} % compatibility
+%
+\RequirePackage{silence} % Used here:
+% hyperref draft mode is always on, even when novel is not in draft mode:
+\WarningFilter{hyperref}{Draft mode on} % So, get rid of the hyperref warning.
+% Prevent complaints about no protrusion list for cmr, cmm, etc. in decimal pt:
+\WarningFilter{microtype}{I cannot find a protrusion list} % It's not there!
+%
+\WarningsOff[Fancyhdr,fancyhdr] % complains about headheight when no header
+\RequirePackage[relative]{textpos} % for inserting images
+\RequirePackage{calc} % allows length expression calculations
+\RequirePackage{atbegshi} % in oberdiek bundle. For one-page header changes. Also used by hyperref.
+\RequirePackage{letltxmacro} % in oberdiek bundle. For re-defining some macros
+\RequirePackage{xparse} % for writing cool-looking commands
+%
+% In addition, the following packages are required, but not loaded yet.
+% They must wait for something else to happen first. Then they will be loaded
+% with suitable arguments, when the time comes:
+% fontspec -- in novel-LayoutSettings.sty
+% unicode-math -- in novel-LayoutSettings.sty
+% polyglossia -- in novel-LayoutSettings.sty
+% microtype -- in novel-Fonts.sty
+% hyperref -- in novel-pdfx.sty
+% fancyhdr -- in novel.HeadFootStyles.sty
+% xcolor -- lower in this page
+% adjustbox -- lower on this page
+% eso-pic -- lower on this page
+% lipsum -- lower on this page
+%%
+
+
+\newlength\@tempLength % scratch length for local calculations
+\newif \if@tempTF % scratch boolean for local tests
+
+
+%% Global lengths are often passed around in `novel'.
+%% But \setlength is not always global in effect.
+%% This code defines a global command.
+%% Via Heiko Oberdiek at tex.stackexchange.com:
+\gdef\gsetlength#1#2{% #1 is the length command, #2 is the length value
+ \begingroup%
+ \setlength\skip@{#2}% Local assignment to a TeX scratch register.
+ \global#1=\skip@% Global assignment to #1
+ \endgroup% \skip@ is restored by end of group.
+}% end \gsetlength
+%%
+
+
+%% Process document class options.
+%% ----------------------------------------------------------------------------
+% Allowed option list:
+% draft xml shademargins cropmarks cropview closecrop
+% coverart sandbox unblock mtoff polyoff test
+% Yes, I realize that this could have been done another way, but I want
+% to issue error messages from `novel' rather than (say) `keyval':
+\gdef\@mycol{\@classoptionslist}
+\StrDel{\@mycol}{ }[\@mycol]
+\StrDel{\@mycol}{,}[\@mycol]
+\StrDel{\@mycol}{draft}[\@mycol]
+\StrDel{\@mycol}{xml}[\@mycol]
+\StrDel{\@mycol}{shademargins}[\@mycol]
+\StrDel{\@mycol}{graytext}[\@mycol] % Obsolete. Now always allows graytext.
+\StrDel{\@mycol}{greytext}[\@mycol] % See above.
+\StrDel{\@mycol}{cropmarks}[\@mycol]
+\StrDel{\@mycol}{cropview}[\@mycol]
+\StrDel{\@mycol}{closecrop}[\@mycol]
+\StrDel{\@mycol}{coverart}[\@mycol]
+\StrDel{\@mycol}{unblock}[\@mycol]
+\StrDel{\@mycol}{mtoff}[\@mycol]
+\StrDel{\@mycol}{polyoff}[\@mycol]
+\StrDel{\@mycol}{test}[\@mycol]
+\StrDel{\@mycol}{sandbox}[\@mycol]
+%
+\ifthenelse{\equal{\@mycol}{}}{}{
+ \ClassWarning{novel}{^^JUnrecognized class option: \@mycol. ^^J%
+ The unrecognized option was ignored! ^^J%
+ If `debug' it is obsolete from v.1.40. ^^J%
+ Note that font size, document size, and language ^^J%
+ are not `novel' class options. See documentation. ^^J}%
+}
+% If used, option `draft' shows overflow rule.
+% Prior to v. 1.46.1, the following was \if@useDraftMode.
+% Changed for possible compatibility with packages that detect draft mode.
+\newif \ifdraftdoc
+\setlength\overfullrule{0pt}
+\DeclareOption{draft}{
+ \setlength\overfullrule{6pt}
+ \draftdoctrue
+ \ClassWarning{novel}{^^JCompiled with draft mode. Not for final release! ^^J}
+}
+\newif \ifmsdoc % manuscript, always false. Compatibility with other packages.
+% If used, option `xml' creates a file `\jobname-XMPasXML.xml` that contains
+% the XMP metadata with an xml declaration and comments at top.
+% Only works when \SetPDFX is not `off'. Note that you do not need to use
+% this option to get PDF/X. It is only for your own usage.
+\newif \if@wantXMPasXML
+\DeclareOption{xml}{\@wantXMPasXMLtrue}
+\DeclareOption{xmp}{ % in case you mis-type.
+ \ClassError{novel}{No class option `xmp'. Use `xml'}%
+ {There is no class option named `xmp'. It is `xml'.}
+}
+% Option `shademargins' does just that. Ignored unless in draft mode.
+\newif \if@shademargins
+\DeclareOption{shademargins}{\@shademarginstrue}
+%
+\newif \if@graytext % remains here for backwards compatibility
+\@graytexttrue % from v.1.50 always true, no longer an option.
+%
+% Usually you do NOT want crop (trim) marks!
+\newif \if@cropmarks
+\DeclareOption{cropmarks}{\@cropmarkstrue}
+% PDF viewers display CropBox, which normally is identical to MediaBox.
+% Option `cropview', sets CropBox to TrimBox instead, so that's all you see.
+% Only makes a difference when MediaBox is larger than TrimBox.
+% Ignored unless in draft mode.
+\newif \if@cropview
+\DeclareOption{cropview}{\@cropviewtrue}
+% With `closecrop', the TrimSize and margins are re-sized, to preserve the
+% live area, but with reduced margins on all sides (same for verso/recto).
+% This option is available only in draft mode, and disables shademargins.
+% The purpose is to create a PDF that is more easily read on a handheld device,
+% so you can think about edits while traveling. It is NOT an e-book, since
+% it has no hyperlinks and is missing some features that an e-book should have.
+\newif \if@closecrop
+\DeclareOption{closecrop}{\@cropviewtrue\@closecroptrue}
+% New in version 1.2: `coverart' option. See documentation.
+% This is used to create a 1-page file with no text, just an image.
+% Intended purpose is PDF/X for novel cover.
+\newif \if@coverart
+\DeclareOption{coverart}{\@coverarttrue}
+% New in version 1.34: unblock option, for developer use only.
+% Normally, a number of packages known to be incompatible with `novel'
+% are blocked from loading. If the user tries to get them via \usepackage
+% or \RequirePackage, or if they are called within some other loaded package,
+% then compile halts with an error. The `unblock' option turns off blocking,
+% and allows incompatible packages to load. Use only at own risk!
+\newif \if@novelunblock % For developer use.
+\DeclareOption{unblock}{\@novelunblocktrue}
+% New in version 1.44: mtoff option, primarily for developer use.
+% With mtoff, the microtype package is not loaded.
+\newif \if@mtoff
+\DeclareOption{mtoff}{\@mtofftrue}
+% New in version 1.44: polyoff option, primarily for developer use.
+% With polyoff, the polyglossia package is not loaded.
+% You may need to load babel, or not, via \RequirePackage[options]{babel}.
+\newif \if@polyoff
+\DeclareOption{polyoff}{\@polyofftrue}
+% New in version 1.46: test option, primarily for developer use.
+\newif \if@testsuite
+\DeclareOption{test}{\@testsuitetrue}
+%
+% New in version 1.50: sandbox option, for artwork and tables. Max 4 pages.
+\newif \if@sandbox
+\DeclareOption{sandbox}{\@sandboxtrue}
+%
+%% Note that document size and normal font size are not class options.
+%% They are set by commands in the Preamble, and have default values.
+%
+\ProcessOptions\relax
+% Disable some options, depending on compatibilities:
+\ifdraftdoc\else
+ \global\@shademarginsfalse
+ \global\@cropviewfalse
+ \global\@closecropfalse
+\fi
+%
+\if@testsuite
+ \gdef\@testintentional{Test suite intentionally generates this warning. ^^J}
+\else
+ \gdef\@testintentional{}
+\fi
+%
+\if@cropview
+ \global\@cropmarksfalse
+\fi
+%
+\if@closecrop
+ \global\@cropviewtrue
+ \global\@shademarginsfalse
+ \global\@cropmarksfalse
+\fi
+%
+\if@coverart
+ \global\draftdocfalse
+ \global\@shademarginsfalse
+ \global\@cropviewfalse
+ \global\@closecropfalse
+ \global\@sandboxfalse
+\fi
+%
+\if@sandbox
+ % Thanks to user Compholio at stackexchange.com:
+ \newcounter{sandboxcount}
+ \ifx\latex@outputpage\@undefined\relax%
+ \global\let\latex@outputpage\@outputpage%
+ \fi%
+ \gdef\@outputpage{%
+ \addtocounter{sandboxcount}{1}%
+ \ifnum\value{sandboxcount}>4\relax% no output after 4 pages
+ \else%
+ \latex@outputpage%
+ \fi%
+ }%
+ \AtEndPreamble{%
+ \gdef\@title{untitled interior artwork}%
+ }%
+ \AfterEndPreamble{%
+ \ifdraftdoc\else\thispagestyle{empty}\fi%
+ }%
+\fi
+%% end class options
+
+
+\RequirePackage{noindentafter} % for unindented chapter and scene starts
+\RequirePackage{changepage} % provides block indents, etc. Do not use strict!
+\RequirePackage{magaz} % special treatment of first lines
+
+
+%% Activate xcolor, adjustbox, and eso-pic:
+%% ----------------------------------------------------------------------------
+% The final book must be black/white and gray only, for all text.
+% Interior images must be raster black/white or grayscale. See documentation.
+% Vector graphics are strongly discouraged, in any case.
+% In draft mode only, the `shademargins' option requires `grayscale',
+% which will be temporarily enabled, even if not specifically requested.
+%
+\RequirePackage[gray,hyperref]{xcolor}
+%
+% adjustbox and eso-pic cannot precede xcolor.
+\RequirePackage{adjustbox} % for scaling and moving
+\RequirePackage{eso-pic} % background effects in draft mode
+\RequirePackage{pdfpages} % only used for pdf pre-processed by novel-scripts
+%% end activate xcolor and adjustbox
+
+
+%% Temporary normal font size, baselineskip, and fontspec
+%% ----------------------------------------------------------------------------
+%% This normalsize is temporary, so that packages can load without complaint.
+%% It will be modified later, during layout calculations.
+%% Actual default font size will be 11pt-12pt, with 11.4pt average.
+%% The small temporary size is to ensure that overly-large struts and skips
+%% are not created prior to page layout calculation.
+\gdef\@TentativeEmN{10}
+\gdef\@TentativeBLSkipN{13}
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize{\@TentativeEmN}{\@TentativeBLSkipN}%
+}
+\normalsize
+\RequirePackage[no-math]{fontspec} % For LuaLaTeX. NOT package `fontenc'.
+% The `novel' class is not intended for math. But TeX assumes you do math,
+% so it needs a math font, whether you like it or not.
+\RequirePackage{unicode-math}
+%% end temporary normal point size, baselineskip, and fontspec.
+
+
+%% Define commands used for File Data, including PDF/X Settings.
+%% ----------------------------------------------------------------------------
+%% As used here, `File Data' refers to PDF metadata as found in PDF/Info
+%% and in XMP. This class does not write it to the PDF Catalog.
+\RequirePackage{novel-FileData}
+%%
+
+
+%% Physical Layout Commands and Settings.
+%% ----------------------------------------------------------------------------
+%% Define user commands that over-ride class option pre-configured settings.
+%% Also sets a variety of miscellaneous lengths:s \parsep, \parindent, etc.
+\RequirePackage{novel-LayoutSettings}
+
+
+%% Polyglossia.
+%% ----------------------------------------------------------------------------
+% Language-specific settings:
+\if@polyoff % polyoff is new in v 1.44.
+ \ClassWarning{novel}{^^JYou chose the `polyoff' class option. ^^J%
+ So, the polyglossia package was not loaded. But like it or not, ^^J%
+ the babel package was loaded, with generic hyphenation. ^^J%
+ This behavior, or choice of language, cannot be changed. ^^J%
+ If you want a specific language, you will have to use polyglossia. ^^J}%
+\else
+ \RequirePackage{polyglossia} % loading order changed in v. 1.40.3.
+ \setdefaultlanguage[variant=american]{english} % may be changed by user
+\fi
+%% end polyglossia
+
+
+%% Additional Macros, Loaded in Preamble.
+%% ----------------------------------------------------------------------------
+\RequirePackage{novel-Fonts} % font settings and defaults
+\if@coverart\else\RequirePackage{lipsum}\fi % generates dummy text for examples
+%% New in version 1.50:
+\RequirePackage{novel-DropCap}
+% Macros for use in document body:
+\RequirePackage{novel-TextMacros}
+% Standard header footer styles, based on `fancyhdr':
+% Each pre-configured style will set these booleans true or false:
+\newif\if@HasHeader \newif\if@HasFooter
+\RequirePackage{novel-HeadFootStyles}
+% Chapter and Scene styles:
+\RequirePackage{novel-ChapterScene}
+% Image placement:
+\RequirePackage{novel-Images}
+% Footnotes and endnotes:
+\RequirePackage{novel-Footnotes}
+% Obsolete code. Do not use in new documents:
+\RequirePackage{novel-Obsolete}
+%%
+
+
+%% For convenience, from `article' class.
+%% ----------------------------------------------------------------------------
+\newenvironment{verse}{% Not very useful.
+ \let\\\@centercr
+ \list{}{%
+ \itemsep\z@
+ \itemindent -\parindent%
+ \listparindent\itemindent
+ \rightmargin \leftmargin
+ \advance\leftmargin \parindent%
+ }%
+ \item\relax%
+}{%
+ \endlist%
+}
+%%
+\newenvironment{quotation}{% Not very useful.
+ \list{}{%
+ \listparindent \parindent%
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@%
+ }%
+ \item\relax%
+}{%
+ \endlist%
+}
+%%
+\newenvironment{quote}{% Not very useful.
+ \list{}{%
+ \rightmargin\leftmargin%
+ }%
+ \item\relax%
+}{%
+ \endlist%
+}
+%
+%% end convenience.
+
+
+
+%% Special features of test suite (for developers and error reporting)
+%% ----------------------------------------------------------------------------
+% Files `novel-testsuite.tex' and `novel-testimage.png' are within the novel
+% documentation extras folder. To run the test suite, copy these files to
+% a writeable location (such as your home directory) and compile there.
+\newcommand\testsuiteoops[1]{%
+ \ClassError{novel}{#1 missing}{Install the necessary file(s).}%
+}
+\if@testsuite
+ \IfFontExistsTF{libertinusserif-regular.otf}{}{%
+ \testsuiteoops{`libertinus' fonts}%
+ }
+ \IfFileExists{lmodern.sty}{}{\testsuiteoops{`lmodern' package}}
+ \IfFileExists{novel-testimage.png}{}{\testsuiteoops{`novel-testimage.png'}}
+ \NewFontFamily\mustbelibertinus{Libertinus Serif}
+ \NewFontFamily\mustbelmodern{Latin Modern Roman}
+\fi
+%% end special features of test suite.
+
+
+%% \AtEndPreamble sets defaults, calculates layout, and writes PDF/X
+%% ----------------------------------------------------------------------------
+% This is prior to \AtBeginDocument, and ensures that the results are available
+% prior to any \AtBeginDocument routines from user macros or loaded packages.
+\AtEndPreamble{
+ \@ActivateFonts % in `novel-Fonts.sty'
+ \RequirePackage{novel-CalculateLayout} % may load novel-ChangeLayout.sty
+ \RequirePackage{novel-PostLayout} % calculates shademargins, cropmarks, etc.
+ \RequirePackage{novel-pdfx}% also provides an \AtBeginDocument macro
+ \@GetInitialYpos% in `novel-TextMacros.sty
+}%
+%% end AtEndPreamble
+
+
+%% Messages that may be issued by \AtBeginDocument routines:
+%% ----------------------------------------------------------------------------
+%
+%% Dealing with known incompatible packages:
+\gdef\really@no#1#2#3{ % cannot be used, even with unblock or sandbox
+ \@ifpackageloaded{#1}{%
+ \ClassError{novel}{Sorry, package `#1' cannot be used in `novel' class}%
+ {No exceptions. You are out of luck. ^^J%
+ Reason: `novel' has #2 ^^J%
+ See `novel' HTML documentation, section #3. ^^J%
+ Note: The offending package may have been loaded by another package.}%
+ }{}%
+} %
+%
+%% Command or environment native to LuaLaTeX, but banned except in sandbox:
+\gdef\@OnlySandbox#1{%
+ \ClassError{novel}{Use of `#1' page \thepage\space requires sandbox}%
+ {`novel' class prohibits command or environment `#1' ^^J%
+ unless you use class option `sandbox'. See documentation.}%
+}
+%
+%% Package can be used, but Alert:
+\gdef\alert@nodisp#1{%
+ \@ifpackageloaded{#1}{%
+ \typeout{^^JClass `novel' Alert: Beware of package #1. ^^J%
+ Commands from this package may cause mis-positioning in main text. ^^J%
+ Maybe, maybe not. Best if usage is confined to display pages. ^^J}%
+ }%
+}
+%
+%% Dealing with blocked packages, allowed with `unblock':
+\if@novelunblock
+ \gdef\sorry@no#1{} % no package-specific errors, when unblock
+ \ClassWarning{novel}{Using `unblock' class option, at your own risk. ^^J%
+ The `unblock' option is for developer use, not production documents. ^^J%
+ If the unblocked packages and commands cause problems, ^^J%
+ they are not bugs. Do not report them. You have been warned. ^^J%
+ Perhaps your document will compile without error, and perhaps the ^^J%
+ results are OK. But in other cases, unexpected typesetting results. ^^J}%
+\else % package-specific errors, when no unblock
+ \gdef\sorry@no#1{
+ \@ifpackageloaded{#1}{%
+ \ClassError{novel}{Sorry, package `#1' cannot be used in `novel' class}%
+ {See `novel' HTML documentation, regarding `sandbox' option. ^^J%
+ Note: The offending package may have been loaded by another package.}%
+ }{}%
+ } %
+\fi
+%
+\gdef\@needsandboxmsg{%
+ \ClassError{novel}{Need `sandbox' for picture, figure, table environments}%
+ {You cannot use picture, figure, or table environments in `novel' unless ^^J%
+ you use the `sandbox' document class option. See docs.}%
+}
+%% end messages.
+
+
+%% \AtBeginDocument finishes the setup
+%% ----------------------------------------------------------------------------
+%
+\AtBeginDocument{ %
+ \@RedefineParapos % in `novel-TextMacros.sty'
+ \@ActivateTextLengths % in `novel-TextMacros.sty'
+ \@ActivateDropCaps % in `novel-DropCaps.sty'
+ \@ActivateChapterScene % in `novel-ChapterScene.sty'
+ \@ActivateHeadFootStyles % in file `novel-HeadFootStyles.sty'
+ \@AlertNoPDFX % in file `novel-pdfx.sty'
+ \@ActivatePDFInfo % in file `novel-pdfx.sty'
+ \@ActivateTextMacros % in `novel-TextMacros.sty'
+ \@ActivateFootnotes % in `novel-Footnotes.sty'
+ \@DisableFontSizes % in file `novel-LayoutSettings.sty'
+ \@DisableLayoutSettings % in file `novel-LayoutSettings.sty'
+ \@DisableFileDataSettings % in file `novel-FileData.sty'
+ \@DisableChapterSceneSettings % in file `novel-ChapterScene.sty'
+ \@RedefineBreakpos % in file `novel-ChapterScene.sty'
+ \@DisableHeadFootSettings % in file `novel-HeadFootStyles.sty'
+ \@GatherGoodImages % in file `novel-Images.sty'.
+ % List of always-blocked packages (not exhaustive, since TeX has so many):
+ \really@no{geometry}{its own layout commands.}{4}
+ \really@no{pdfx}{built-in PDF/X capability.}{3.4}
+ \really@no{xmpincl}{built-in PDF/X capability.}{3.4}
+ \really@no{hyperxmp}{built-in PDF/X capability.}{3.4}
+ \really@no{pdfxmult}{built-in PDF/X capability.}{3.4}
+ \really@no{inputenc}{utf-8 encoding always.}{1.2.1}
+ \really@no{fontenc}{`fontspec' and utf-8 encoding always.}{1.2.1, 1.2.3}
+ \really@no{biblatex}{no bibiography capability.}{1.2.5}
+ \really@no{showkeys}{an incompatible layout method.}{1.2.5}
+ \really@no{booktabs}{no capability for this, due to printer specs.}{3.4}
+ \really@no{pax}{no capability for this, due to printer specs.}{3.4}
+ \really@no{bookmark}{focus on paper books, not e-books.}{(top of file)}
+ \really@no{endnotes}{limited, built-in endnote methods.}{6.5}
+ \really@no{acronym}{focus on paper books, not e-books.}{(top of file)}
+ \really@no{embedfile}{incompatible print requirements.}{(top of file)}
+ \really@no{makeidx}{an incompatible layout method.}{1.2.5}
+ \really@no{gridset}{a command name conflict.}{4}
+ % Potential problem packages, allowed in sandbox or with unblock:
+ \if@sandbox
+ \RequirePackage{novel-Sandbox}
+ \else
+ \gdef\mplibcode{\@OnlySandbox{mplibcode}}
+ % Related to floats:
+ \sorry@no{floatflt}
+ \sorry@no{floatfig}
+ \sorry@no{flafter}
+ \sorry@no{float}
+ \sorry@no{morefloats}
+ \sorry@no{endfloat}
+ \sorry@no{placeins}
+ % Related to footnotes and endnotes:
+ \sorry@no{footmisc}
+ \sorry@no{footnote}
+ \sorry@no{manyfoot}
+ % Related to tables:
+ \sorry@no{multirow}
+ \sorry@no{tabu}
+ \sorry@no{tabularx}
+ \sorry@no{tabulary}
+ \sorry@no{longtable}
+ % Related to lists:
+ \sorry@no{array}
+ \sorry@no{easylist}
+ \sorry@no{listings}
+ \sorry@no{numitem}
+ \sorry@no{tasks}
+ % Related to graphics or layout:
+ \sorry@no{pagegrid}
+ \sorry@no{subfig}
+ \sorry@no{lpic}
+ \sorry@no{pinlabel}
+ \sorry@no{overpic}
+ \sorry@no{caption}
+ \sorry@no{sidecap}
+ \sorry@no{subcaption}
+ \sorry@no{paracol}
+ \sorry@no{scrextend}
+ \sorry@no{exsheets}
+ \sorry@no{eqparbox}
+ \sorry@no{colortbl}
+ \sorry@no{tikz}
+ \sorry@no{pstricks}
+ \sorry@no{xypic}
+ \sorry@no{xfig}
+ \sorry@no{pgfcalendar}
+ \sorry@no{pgfpages}
+ \sorry@no{pst-pdf}
+ \sorry@no{auto-pst-pdf}
+ \sorry@no{epstopdf}
+ \sorry@no{pdftricks}
+ \sorry@no{pdftricks2}
+ \sorry@no{mpgraphics}
+ \sorry@no{pict2e}
+ \sorry@no{picman}
+ \sorry@no{scalerel}
+ \sorry@no{pmgraph}
+ \sorry@no{reflectgraphics}
+ \fi % end sandbox.
+ % Alert packages, might cause minor layout problems, not enough to block:
+ \alert@nodisp{nth}
+ \alert@nodisp{engord}
+ \alert@nodisp{ulem}
+ \alert@nodisp{soul}
+ % end list of Alert packages.
+ % Package `pagegrid' interacts with `shademargins' and `draft' options:
+ \@ifpackageloaded{pagegrid}{ % that is, if permitted by sandbox or unblock
+ \ifdraftdoc
+ \if@shademargins
+ \ClassWarning{novel}{^^JGrid from `pagegrid' is concealed. ^^J%
+ Document class option `shademargins' over-writes page grid. ^^J%
+ To see the grid, use `draft' but not `shademargins'. ^^J}
+ \else\fi
+ \else
+ \ClassError{novel}{Package `pagegrid' needs `draft' mode}%
+ {Package `pagegrid' only with document class option `draft'.}%
+ \fi
+ }{} % end if pagegrid
+}% end \AtBeginDocument
+%%
+
+
+%% AtEndDocument adds one or two blank pages, required by printers.
+% Also writes list of inspected, good images to aux, for later use:
+\AtEndDocument{%
+ \if@coverart\else%
+ \if@sandbox\else%
+ \immediate\write\@auxout{%
+ \string\xdef\string\@AllGoodImages{\@AllGoodImages}^^J%
+ \string\xdef\string\@UnknownImages{\@UnknownImages}^^J%
+ }%
+ \cleartoend% adds 1 or 2 blanks, for final verso blank
+ \fi%
+ \fi%
+}
+%%
+
+
+%% AfterEndDocument writes final message:
+\AfterEndDocument{
+ \@WarnUnknownImages % in `novel-Images.sty'.
+}
+%%
+
+
+
+%%
+%% End of file `novel.cls'
+