Add RPG templates: rulebook, adventure, CYOA
This commit is contained in:
@@ -53,22 +53,27 @@ class LaTeXExporter:
|
|||||||
"kdp-large": "kdp-large.tex", # 8.5x11 workbook
|
"kdp-large": "kdp-large.tex", # 8.5x11 workbook
|
||||||
|
|
||||||
# Book Types
|
# Book Types
|
||||||
"novel": "novel.tex", # General fiction
|
"novel": "novel.tex", # Fiction
|
||||||
"memoir": "memoir.tex", # Memoir/personal
|
"memoir": "memoir.tex", # Personal narrative
|
||||||
"hardcover": "hardcover.tex", # Premium hardcover
|
"hardcover": "hardcover.tex", # Premium
|
||||||
"poetry": "poetry.tex", # Poetry collections
|
"poetry": "poetry.tex", # Poetry
|
||||||
"childrens": "childrens.tex", # Picture books
|
"childrens": "childrens.tex", # Picture books
|
||||||
|
|
||||||
# Technical/Educational
|
# Technical/Educational
|
||||||
"academic": "academic.tex", # Academic papers
|
"academic": "academic.tex", # Papers
|
||||||
"textbook": "textbook.tex", # With exercises
|
"textbook": "textbook.tex", # With exercises
|
||||||
"journal": "journal.tex", # Workbooks/planners
|
"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
|
# Specialty
|
||||||
"screenplay": "screenplay.tex", # Film/TV scripts
|
"screenplay": "screenplay.tex", # Film/TV
|
||||||
|
|
||||||
# Base
|
# Base
|
||||||
"base": "base.tex", # Minimal template
|
"base": "base.tex", # Minimal
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, template_dir: Optional[str] = None):
|
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}
|
||||||
Reference in New Issue
Block a user