Add RPG templates: rulebook, adventure, CYOA

This commit is contained in:
Solaria
2026-03-14 17:19:25 +00:00
parent 7fdc8d8948
commit ada022709a
4 changed files with 391 additions and 10 deletions
+15 -10
View File
@@ -53,22 +53,27 @@ class LaTeXExporter:
"kdp-large": "kdp-large.tex", # 8.5x11 workbook
# Book Types
"novel": "novel.tex", # General fiction
"memoir": "memoir.tex", # Memoir/personal
"hardcover": "hardcover.tex", # Premium hardcover
"poetry": "poetry.tex", # Poetry collections
"childrens": "childrens.tex", # Picture books
"novel": "novel.tex", # Fiction
"memoir": "memoir.tex", # Personal narrative
"hardcover": "hardcover.tex", # Premium
"poetry": "poetry.tex", # Poetry
"childrens": "childrens.tex", # Picture books
# Technical/Educational
"academic": "academic.tex", # Academic papers
"textbook": "textbook.tex", # With exercises
"journal": "journal.tex", # Workbooks/planners
"academic": "academic.tex", # Papers
"textbook": "textbook.tex", # With exercises
"journal": "journal.tex", # Workbooks
# RPG/Game Books
"rpg-rulebook": "rpg-rulebook.tex", # Game system
"rpg-adventure": "rpg-adventure.tex", # Dungeon/Module
"cyoa": "cyoa.tex", # Choose Your Own Adventure
# Specialty
"screenplay": "screenplay.tex", # Film/TV scripts
"screenplay": "screenplay.tex", # Film/TV
# Base
"base": "base.tex", # Minimal template
"base": "base.tex", # Minimal
}
def __init__(self, template_dir: Optional[str] = None):
@@ -0,0 +1,99 @@
% Opus Orchestrator - CYOA/Interactive Fiction Template
% Choose Your Own Adventure, gamebooks
\documentclass[12pt]{memoir}
% Packages
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{xcolor}
\usepackage{tcolorbox}
\usepackage{ifthen}
\usepackage{enumitem}
% Compact trim
\geometry{
paperwidth=5.5in,
paperheight=8.5in,
textwidth=4in,
textheight=7in,
inner=0.5in,
outer=0.5in,
}
% Hyperref
\hypersetup{
colorlinks=false,
}
% Fonts
\usepackage{mathptmx}
% Chapter style
\chapterstyle{dowding}
% Choice box
\newtcolorbox{choicebox}[1][]{
colback=blue!10,
colframe=blue!75!black,
title=#1,
fonttitle=\bfseries,
parbox=false,
}
% Page reference
\newtcolorbox{refbox}[]{
colback=yellow!20,
colframe=yellow!75!black,
fonttitle=\bfseries,
}
% Adventure choice
\newenvironment{choice}
{\begin{choicebox}{Choose Your Path}}
{\end{choicebox}}
% Metadata
\def\booktitle{$book_title$}
\def\bookauthor{$author$}
\def\bookdate{$date$}
\begin{document}
% Title page
\thispagestyle{empty}
\begin{center}
\vspace*{1in}
{\Huge\bfseries\booktitle\par}
\vspace{1in}
{\Large by \bookauthor\par}
\vfill
{\large\bookdate}
\end{center}
% Copyright
\clearpage
\thispagestyle{empty}
\vspace*{\fill}
\begin{center}
Copyright \textcopyright\ \bookdate\ \bookauthor\\
All rights reserved.
\end{center}
\vspace*{\fill}
% Start
\clearpage
\chapter*{Prologue}
\addcontentsline{toc}{chapter}{Prologue}
$body$
% Endings section
\clearpage
\chapter*{Endings}
\end{document}
@@ -0,0 +1,145 @@
% Opus Orchestrator - RPG Adventure/Module Template
% Dungeon, campaign, one-shot adventures
\documentclass[12pt]{memoir}
% Packages
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{tcolorbox}
\usepackage{ifthen}
\usepackage{pdflscape}
% Adventure trim (letter for tables/maps)
\geometry{
paperwidth=8.5in,
paperheight=11in,
textwidth=6.5in,
textheight=9in,
}
% Hyperref
\hypersetup{
colorlinks=true,
linkcolor=darkred,
}
% Fonts
\usepackage{mathptmx}
% Chapter style
\chapterstyle{dowding}
% Sidebar box
\newtcolorbox{sidebar}[1][]{
colback=yellow!20,
colframe=orange!75!black,
title=#1,
fonttitle=\bfseries,
parbox=false,
}
% Monster stat block
\newtcolorbox{monster}[1][]{
colback=green!5,
colframe=green!75!black,
title=#1,
fonttitle=\bfseries,
fontupper=\small,
}
% Treasure/hazard box
\newtcolorbox{treasure}[]{
colback=gold!20,
colframe=gold!75!black,
}
% Encounter box
\newtcolorbox{encounter}[1][]{
colback=red!10,
colframe=red!75!black,
title=#1,
}
% Map placeholder
\newcommand{\mapplaceholder}[1]{%
\begin{center}
\framebox{#1}
\textit{[Map Placeholder - #1]}
\end{center}
}
% Landscape tables
\newenvironment{landscape-table}
{\begin{landscape}\begin{multicols}{2}}
{\end{multicols}\end{landscape}}
% Metadata
\def\booktitle{$book_title$}
\def\bookauthor{$author$}
\def\bookdate{$date$}
\def\booklevel{Levels 1-4}
\def\bookenv{Tropical}
\begin{document}
% Title page
\thispagestyle{empty}
\begin{center}
\vspace*{0.5in}
{\Huge\bfseries\booktitle\par}
\vspace{0.5in}
{\Large An Adventure for \booklevel\par}
\vspace{0.5in}
{\large by \bookauthor\par}
\vfill
{\large\bookenv}
\end{center}
% Back of title - stats
\clearpage
\thispagestyle{empty}
\begin{tcolorbox}[title=Adventure Summary]
\textbf{Genre:} Fantasy\\
\textbf{Level:} \booklevel\\
\textbf{Setting:} \bookenv\\
\textbf{Time:} 4-6 hours
\end{tcolorbox}
% Copyright
\clearpage
\thispagestyle{empty}
\vspace*{\fill}
\begin{center}
Copyright \textcopyright\ \bookdate\ \bookauthor\\
All rights reserved.
\end{center}
\vspace*{\fill}
% Table of Contents
\clearpage
\tableofcontents
% Adventure content
\mainmatter
$body$
% Appendix reference
\clearpage
\chapter*{Appendix A: NPCs}
\addcontentsline{toc}{chapter}{Appendix A: NPCs}
\clearpage
\chapter*{Appendix B: Maps}
\addcontentsline{toc}{chapter}{Appendix B: Maps}
\end{document}
@@ -0,0 +1,132 @@
% Opus Orchestrator - RPG Rulebook Template
% Dungeons & Dragons, Pathfinder, generic RPG
\documentclass[12pt]{memoir}
% Packages
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{tcolorbox}
\usepackage{ifthen}
% Standard RPG trim
\geometry{
paperwidth=8.5in,
paperheight=11in,
textwidth=6.5in,
textheight=9in,
left=1in,
right=1in,
top=1in,
bottom=1in,
}
% Hyperref
\hypersetup{
colorlinks=true,
linkcolor=darkred,
urlcolor=darkblue,
}
% Fonts
\usepackage{mathptmx}
\usepackage[T1]{url}
% Chapter style
\chapterstyle{dowding}
% Colored sections
\tcbset{
ruleboxstyle/.style={
colback=red!10,
colframe=red!50!black,
fonttitle=\bfseries,
},
}
% Stat block box
\newtcolorbox{statbox}[1][]{
colback=blue!5,
colframe=blue!75!black,
title=#1,
fonttitle=\bfseries,
}
% Monster stat block
\newtcolorbox{monsterstat}[1][]{
colback=green!5,
colframe=green!75!black,
title=#1,
fonttitle=\bfseries,
}
% Two-column for stats
\usepackage{multicol}
\def\columnseprulecolor{\color{gray}}
% Metadata
\def\booktitle{$book_title$}
\def\bookauthor{$author$}
\def\bookdate{$date$}
\def\bookversion{$version$}
\begin{document}
% Title page
\thispagestyle{empty}
\begin{center}
\vspace*{1in}
{\Huge\bfseries\booktitle\par}
\vspace{0.5in}
{\Large\scshape A Roleplaying Game\par}
\vspace{1in}
{\Large by \bookauthor\par}
\vfill
{\large\bookdate\\
Version \bookversion}
\end{center}
% Copyright
\clearpage
\thispagestyle{empty}
\vspace*{\fill}
\begin{center}
Copyright \textcopyright\ \bookdate\ \bookauthor\\
All rights reserved.\\
\bigskip
This is a fictional work. Any resemblance to actual persons, living or dead, is coincidental.
\end{center}
\vspace*{\fill}
% Table of Contents
\clearpage
\tableofcontents
% Interior
\mainmatter
$body$
% Back cover copy (optional)
\clearpage
\thispagestyle{empty}
\begin{center}
\vspace*{2in}
{\Large\bfseries\booktitle}\\
\vspace{1in}
{\normalsize
\textit{An official publication for the ... game system.}}\\
\vfill
{\small
Consult your local game store or retailer for dice, maps, and accessories.}
\end{center}
\end{document}