-
Notifications
You must be signed in to change notification settings - Fork 326
Themes, configurable image floats, quotation boxes, new stat blocks, and more! #360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
THEMES
======
There is now an eberron theme that will set some fonts and recto/verso background images to match the
Eberron book stylings. Top-level titles get some new fonts, and a couple of colors change.
You can now choose between three font sets. The default uses the original font settings from the rpgtex
implementation. In addition, you can provide the option `fonts=wotc` or `fonts=dmsguild`. Use `wotc` to
select the fonts that WotC uses in their published books (you'll have to pay for the fonts, and I can't
speak to any trade dress issues that might arise). I like using this because I'm vain and I mostly write
these adventures for myself, for fun. Yes, I'm a typography nerd, this is fun. The `dmsguild` version
uses the fonts specified by the DM's Guild materials.
I've included details on where to obtain each of these fonts. The official DM's Guild fonts are all
available for free download, the paid fonts can be found at either MyFonts or Adobe.
IMAGES
======
I've added support for floatable images using `tcolorbox`, with `\DndImage` providing a plain image, and
`\DndCaptionedImage` for an image with a corresponding caption, in the correct (themed) font. You can
provide options from `tcolorbox` to both of these to provide some fine-tuning or to have images extend
out to the edges of the printed page, for example.
STAT BLOCKS
===========
You can now create stat blocks for sentient items via `\DndSentientItemAbilityScores`. Sentient items
use `Int`, `Wis`, `Cha`, and `Alignment`.
Added `psionic` as an attack type, alongside `weapon` and `spell`. I'm working on some Dark Sun ideas,
and one approach I have defines psionic attacks.
Added support for vehicle stat blocks using the `DndVehicle` environment. This functions the same way
as for `DndMonster`, with appropriate no-bg variants. There are corresponding commands for the various
components of the stat block:
- `DndVehicleBasics`
- `DndVehicleDetails`
- `DndVehicleAbilityScores`
- `DndVehicleSection`
- `DndVehicleAction`
- `DndVehicleSpeed`
- `DndVehicleComponent`
- `DndVehicleControl`
- `DndVehicleMovement`
- `DndVehicleWeapon`
- `DndVehicleAttack`
NEW BOXES
=========
You can add quotation boxes now with the `DndQuotation` and `DndAside` environments. `DndQuotation`
expects an attribution argument, and is intended for either book quotes or for notes from e.g. Tasha
or Xanathar. `DndAside` provides the same without an attribution. Both render in the form of a small
sticky note attached to the page, as close as I can get it to the ones in the official books.
AREAS
=====
Areas have been updated to allow for specifying ranges. You can use `\DndAreaRange` to supply an area
description for e.g. "Area 1.10–1.12". Area references are now also updated to make it easier to
reference areas outside the current set. For instance, if you're in "F.3." and you want to build a
reference back to "C.5", you can now do so directly.
`\DndAreaRef` now generates the `C5` string, rather than a page number, since that's the more common
usage. To get a page number, there's a new `\DndAreaPageRef` command which takes on the original
behavior.
UTILITIES
=========
There are new `\DndSkillCheck` and `\DndAbilityCheck` macros that can be used to generate DC checks
using localized strings from the locale file. Ability checks render as e.g. "DC 12 Dexterity", while
skill checks render as e.g. "DC 12 Strength (Athletics)".
There are macros wrapping these for ability saves (`\DndStrSave`, `\DndConSave` etc.). There are also
macros wrapping skills checks that provide the usual attribute name, though this can be overridden.
You can use `\DndAthletics{12}` to get "DC 12 Strength (Athletics)", or `\DndAthletics[\conname]{12}`
to get "DC 12 Constitution (Athletics)", for example.
In addition to these are a couple of macros for the things I consistently forget:
- `\DndPickLock{12}` creates "DC 12 Dexterity" because I forget lock-picking is straight Dex.
- `\DndThievesTools{12} creates "DC 12 Dexterity (Thieves' Tools)" for those cases where tool
proficiency is helpful.
The eagle-eyed will note a `dndmonsterlookup.sty` in here as well, which is being superceded by a
separate package. The intent is for you to be able to say `A \Boar\ approaches` and receive
"A \textbf{boar} (\textit{MM}, p. 319) approaches" in the output. The separate package is better
because it defines each source in an optional module, and provides a way to get plurals in place
properly. That's coming Real Soon Now™.
c1b8cbe to
29d3114
Compare
|
The CI appears to be broken. It's complaining that it can't update Debian packages. |
Yeah, it's fairly old and probably needs an update. I think it is failing to load an out of date LaTeX version for the build. |
|
There is a lot of interesting stuff here. It will take a while to digest. |
|
I got my monster reference package up, btw: https://github.com/AlanQuatermain/DND-5e-LaTeX-monsters |
…e font selection in default font set.
…ronments, examples & info on modern stat blocks.
|
I think this should be broken into smaller pull requests.
It feels like too much to adequately digest all at once. If you want, I can break it down over time and create separate PRs. |
I've been tinkering for a long while. In my spare time I've been doing things like porting the original Dragonlance adventure to 5e, porting the original Eberron adventure cycle, and attempting to put together a codex of all things Dark Sun for 5e, including an attempt at 'real' psionic rules for mental combat. Along the way I've made numerous additions to the base classes, mostly to scratch at itches I had while working. These have built up over quite a while, so there's a lot to look at here, but it's all been used successfully in my various passion projects.
Themes
There is now an eberron theme that will set some fonts and recto/verso background images to match the Eberron book stylings. Top-level titles get some new fonts, and a couple of colors change.
You can now choose between three font sets. The default uses the original font settings from the rpgtex implementation. In addition, you can provide the option
fonts=wotcorfonts=dmsguild. Usewotcto select the fonts that WotC uses in their published books (you'll have to pay for the fonts, and I can't speak to any trade dress issues that might arise). I like using this because I'm vain and I mostly write these adventures for myself, for fun. Yes, I'm a typography nerd, this is fun. Thedmsguildversion uses the fonts specified by the DM's Guild materials.I've included details on where to obtain each of these fonts. The official DM's Guild fonts are all available for free download, the paid fonts can be found at either MyFonts or Adobe.
Images
I've added support for floatable images using
tcolorbox, with\DndImageproviding a plain image, and\DndCaptionedImagefor an image with a corresponding caption, in the correct (themed) font. You can provide options fromtcolorboxto both of these to provide some fine-tuning or to have images extend out to the edges of the printed page, for example.Stat Blocks
You can now create stat blocks for sentient items via
\DndSentientItemAbilityScores. Sentient items useInt,Wis,Cha, andAlignment.Added
psionicas an attack type, alongsideweaponandspell. I'm working on some Dark Sun ideas, and one approach I have defines psionic attacks.Added support for vehicle stat blocks using the
DndVehicleenvironment. This functions the same way as forDndMonster, with appropriate no-bg variants. There are corresponding commands for the various components of the stat block:DndVehicleBasicsDndVehicleDetailsDndVehicleAbilityScoresDndVehicleSectionDndVehicleActionDndVehicleSpeedDndVehicleComponentDndVehicleControlDndVehicleMovementDndVehicleWeaponDndVehicleAttackNew Boxed Text Environments
You can add quotation boxes now with the
DndQuotationandDndAsideenvironments.DndQuotationexpects an attribution argument, and is intended for either book quotes or for notes from e.g. Tasha or Xanathar.DndAsideprovides the same without an attribution. Both render in the form of a small sticky note attached to the page, as close as I can get it to the ones in the official books.Areas
Areas have been updated to allow for specifying ranges. You can use
\DndAreaRangeto supply an area description for e.g. "Area 1.10–1.12". Area references are now also updated to make it easier to reference areas outside the current set. For instance, if you're in "F.3." and you want to build a reference back to "C.5", you can now do so directly.\DndAreaRefnow generates theC5string, rather than a page number, since that's the more common usage. To get a page number, there's a new\DndAreaPageRefcommand which takes on the original behavior.Utilities
There are new
\DndSkillCheckand\DndAbilityCheckmacros that can be used to generate DC checks using localized strings from the locale file. Ability checks render as e.g. "DC 12 Dexterity", while skill checks render as e.g. "DC 12 Strength (Athletics)".There are macros wrapping these for ability saves (
\DndStrSave,\DndConSaveetc.). There are also macros wrapping skills checks that provide the usual attribute name, though this can be overridden. You can use\DndAthletics{12}to get "DC 12 Strength (Athletics)", or\DndAthletics[\conname]{12}to get "DC 12 Constitution (Athletics)", for example.In addition to these are a couple of macros for the things I consistently forget:
\DndPickLock{12}creates "DC 12 Dexterity" because I forget lock-picking is straight Dex.The eagle-eyed will note a
dndmonsterlookup.styin here as well, which is being superceded by a separate package. The intent is for you to be able to sayA \Boar\ approachesand receive "A \textbf{boar} (\textit{MM}, p. 319) approaches" in the output. The separate package is better because it defines each source in an optional module, and provides a way to get plurals in place properly. That's coming Real Soon Now™.