This is a LaTeX template for typesetting documents in the style of the fifth edition of the "world's greatest roleplaying game".
Summary of the major changes compared to the :
There are three options for using this project; choose the one that's right for you.
TEXMFHOME
(recommended)This will install the template for your current user in one of the following locations:
~/.texmf/tex/latex
~/Library/texmf/tex/latex
C:\Users\{username}\texmf\tex\latex
LaTeX will find the package automatically.
Prepare your TEXMFHOME
directory.
mkdir -p "$(kpsewhich -var-value TEXMFHOME)/tex/latex/"
Download the latest release and extract it in $TEXMFHOME/tex/latex/
.
wget https://github.com/rpgtex/DND-5e-LaTeX-Template/archive/master.zip
unzip -d "$(kpsewhich -var-value TEXMFHOME)/tex/latex/" master.zip
cd "$(kpsewhich -var-value TEXMFHOME)/tex/latex/"
mv DND-5e-LaTeX-Template-master dnd
Alternatively, clone the repo to the same location:
git clone https://github.com/rpgtex/DND-5e-LaTeX-Template.git "$(kpsewhich -var-value TEXMFHOME)/tex/latex/dnd"
Overleaf is an online TeX editor -- think about it like Google Docs for TeX documents. This option does not require a local TeX installation and is an ideal approach for one-off projects.
TEXINPUTS
You can also clone a copy of the repository to each LaTeX project. For example, to clone the repository to a lib/
directory in your project:
mkdir lib/
git clone https://github.com/rpgtex/DND-5e-LaTeX-Template.git lib/dnd
LaTeX will not find the template automatically. Set TEXINPUTS
when compiling your project to locate the package:
TEXINPUTS=./lib//: pdflatex project.tex
Load the dndbook
class in your preamble:
\documentclass[10pt,twoside,twocolumn,openany,nodeprecatedcode]{dndbook}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
% ...
You can also load the dnd
package directly to use it with another class.
Note that the package has only been tested with the book
class.
\documentclass[10pt,twoside,twocolumn,openany]{book}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[layout=true]{dnd}
\begin{document}
% ...
Option | Package dnd |
Class dndbook |
---|---|---|
bg |
✓ | ✓ |
justified |
✓ | ✓ |
layout |
✓ | |
nomultitoc |
✓ | ✓ |
nodeprecatedcode |
✓ | ✓ |
fancy |
✓ | ✓ |
highcontrast |
✓ | ✓ |
nooutline |
✓ | ✓ |
The dndbook
class also supports all the options of the book
class.
bg
Declare how to load background and footer images. This is a key-value option with the following possible values:
full
: Load both background and footer images. (default)none
: Removes both background and footer images.print
: Loads only the footer images.If highcontrast
is set background is disabled.
justified
Justify column copy.
layout
Controls whether loading the dnd
package also modifies the document layout (geometry, colors, typography, etc.).
This is a boolean option with the following possible values:
true
: Modify the document layout.false
: Do not modify the document layout.The default value is true
for backwards compatibility with early releases.
This will change in a future release.
nomultitoc
Disable multi-column table of contents.
nodeprecatedcode
Excludes all deprecated code from the build process.
fancy
Invokes an alternate layout for the part
style that uses a full page
background image. Combined with the front/back cover construction
demonstrated in fancy-example.tex
, can be used to make more
colourful separators.
highcontrast
Enables high contrast print friendly style.
nooutline
Removes the contour outline of the title and chapter heading fonts.
If you don't have LaTeX installed, we recommend installing a complete TeX Live distribution.
sudo apt-get install texlive-full
sudo pacman -S texlive-bin texlive-core texlive-latexextra
MacTex has its own installer, but you can install it through brew cask:
brew cask install mactex
brew cask install mactex-no-gui
Use tlmgr
to install packages as needed, see this answer for more information
brew cask install basictex
brew cask install tex-live-utility
After any of this, use the following such that the texlive directory doesn't require admin rights.
sudo chown -R myuser:mygroup /usr/local/texlive
For more information about MacTex permissions, see the following StackExchange post
This is a known issue in tcolorbox
. According to the tcolorbox
4.12 manual (p. 363):
If your text content contains some text color changing commands, your color will not survive the break to the next box.
You can use LuaTeX to compile the document.
lualatex main.tex
monsterbox
in float disrupts spacing inside stat blockWrapping a monsterbox
(or monsterboxnobg
) in a floating figure adds extra space between stat block elements:
\begin{figure}[b]
\begin{monsterbox}{Orc Warden}
% ...
\end{monsterbox}
\end{figure}
Instead, use the tcolorbox
float
parameter:
\begin{monsterbox}[float=b]{Orc Warden}
% ...
\end{monsterbox}
Refer to the tcolorbox
documentation (section 4.13) for more float parameters.
Specifically with pdflatex
, many of the default Latex fonts don't seem
to work. Some do, and may or may not be preferable to the defaults.
They can be changed in lib/dndfonts.sty' by modifying the
\RequirePackage{bookman}and
{ \gilliustwo }` lines to refer to
the alternate font name.
These standard fonts work out of the box:
We use EditorConfig to enforce consistent formatting. Install the appropriate plugin for your editor.
Run ./bin/bump-version
to tag the new version.
./bin/bumpversion <version>
Compile the example PDF.
Save the first page of the PDF as scrot.jpg.
Update the change log for the new release; commit your changes.
Push changes.
git push && git push --tags
Create a new release and attach the PDF and scrot.
MIT