\documentclass[twocolumn,lettersize]{article} \newlength{\zerosep} [% if use_dnd_decorations %] \usepackage[layout=true]{dnd} \setlength{\zerosep}{0em} [% else %] \usepackage[margin=1.5cm]{geometry} \setlength{\zerosep}{-1em} \usepackage[dvipsnames]{color} [% endif %] \definecolor{mygrey}{gray}{0.7} \title{Wild Shapes} \date{} \author{[[ character.name ]]} \begin{document} \twocolumn[ \begin{@twocolumnfalse} \maketitle \section*{Known Beasts} [% for shape in character.all_wild_shapes|sort(attribute="name") %]% [[ shape.name ]][% if not loop.last %], [% endif %]% [% endfor %]% \vspace{3ex} \end{@twocolumnfalse} ] [% for shape in character.all_wild_shapes|sort(attribute='challenge_rating') %] [% if not character.can_assume_shape(shape) %] {\color{mygrey} [% else %] { [% endif %] \section*{[[ shape.name ]]} [% if shape.description %] \subsection*{[[ shape.description ]]} [% endif %] \begin{tabular}{c | c | c} Armor Class & Hit Points & Speed \\ \hline [[ shape.armor_class ]] & [[ shape.hp_max ]] ([[ shape.hit_dice ]]) & [[ shape.speed ]] \\ [% if shape.swim_speed %] & & [[ shape.swim_speed ]] swim \\ [% endif %] [% if shape.fly_speed %] & & [[ shape.fly_speed ]] fly \\ [% endif %] \end{tabular} \vspace{0.2cm} \begin{tabular}{c | c | c} STR & DEX & CON \\ \hline [[ shape.strength.value ]] ([[ shape.strength.modifier|mod_str ]]) & [[ shape.dexterity.value ]] ([[ shape.dexterity.modifier|mod_str ]]) & [[ shape.constitution.value ]] ([[ shape.constitution.modifier|mod_str ]]) \\ \end{tabular} \vspace{0.2cm} \begin{tabular}{p{0.1\textwidth} p{0.32\textwidth}} \textbf{Skills:} & [[ shape.skills ]] \\ \textbf{Senses:} & [[ shape.senses ]] \\ \textbf{Languages:} & [[ shape.languages ]] \\ \textbf{Resistance:} & [[ shape.damage_resistance ]] \\ \textbf{Immunities:} & [[ shape.condition_immunities ]] \\ \end{tabular} \vspace{0.2cm} [[ shape.__doc__ | rst_to_latex ]] } %\color [% endfor %] \end{document}