diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/rpg-module/rpg-module.cls |
Initial commit
Diffstat (limited to 'macros/latex/contrib/rpg-module/rpg-module.cls')
-rw-r--r-- | macros/latex/contrib/rpg-module/rpg-module.cls | 650 |
1 files changed, 650 insertions, 0 deletions
diff --git a/macros/latex/contrib/rpg-module/rpg-module.cls b/macros/latex/contrib/rpg-module/rpg-module.cls new file mode 100644 index 0000000000..5c75e4f74d --- /dev/null +++ b/macros/latex/contrib/rpg-module/rpg-module.cls @@ -0,0 +1,650 @@ +%% rpg-module.cls +% +% A Role-Playing Game Module class for LaTeX +% +% Copyright 2016 Michael C. Davis +% +% LICENSE FOR THE WORK +% +% This work consists of the following files: +% rpg-module.cls +% basic-stats.sty +% basic-stats.def +% doc/rpg-module.tex +% +% This work may be distributed and/or modified under the conditions of the LaTeX +% Project Public License, either version 1.3 of this license or (at your option) +% any later version. The latest version of this license can be found at: +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX version +% 2005/12/01 or later. +% +% This work has the LPPL maintenance status `author-maintained'. +% +% The Author and Maintainer of this work is Michael C. Davis +% +% +% LICENSE FOR COMPILED WORKS +% +% You may distribute compiled works generated using the work as specified in +% Clause 3 of the LaTeX Project Public License. If you incorporate Open Gaming +% Content into the compiled work, you must also comply with the terms of that +% license. +% +% +% USAGE +% +% See the file rpg-module.pdf (source file doc/rpg-module.tex) for documentation. +% There are a number of worked examples in the examples/ directory. +% +% Technical support is provided on Dragonsfoot Forums: +% +% http://www.dragonsfoot.org/forums/viewtopic.php?f=87&t=73823 +% +% +% KNOWN BUGS +% +% 1. Special movement doesn't appear correctly in multi-column New Monster listings +% if not all monsters share that movement type +% 2. S&W AC format doesn't handle Lycanthrope ACs very well +% +% +% TO DO +% +% 1. Advanced edition stat block options +% 2. Holmes Basic stat block options + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{rpg-module}[2016/04/25 Role-Playing Game Module document class] + + + +% Define which stat block systems are recognised. ONE of these environments should be redefined in +% the system-specific stat block package. + +\RequirePackage{comment} % Allow some sections to conditionally appear or not +\excludecomment{ifbasicstats} +\excludecomment{ifadvancedstats} +% \excludecomment{next_system}{... + + + +% Process class options + +\newcounter{papersizeoption} +\newcounter{fontoption} +\newcounter{statsoption} +\newcounter{acoption} + +\newif\ifmodule@letterpaper +\newif\ifmodule@seriffont +\newif\ifmodule@tightsqueeze + +\DeclareOption{letterpaper}{\module@letterpapertrue\stepcounter{papersizeoption}} +\DeclareOption{a4paper}{\module@letterpaperfalse\stepcounter{papersizeoption}} + +\DeclareOption{tightsqueeze}{\module@tightsqueezetrue} + +\DeclareOption{serif}{\module@seriffonttrue\stepcounter{fontoption}} +\DeclareOption{sansserif}{\module@seriffontfalse\stepcounter{fontoption}} + +\DeclareOption{basic}{\def\statstyle@module{basic-stats.sty}\stepcounter{statsoption}} +\DeclareOption{advanced}{\def\statstyle@module{advanced-stats.sty}\stepcounter{statsoption}} +% \DeclareOption{next_system}{... + +% Note: the class does not define a default AC display option. The default is handled by the +% \ac@module macro which is defined in the style file selected by the previous option. + +\DeclareOption{acdesc}{\def\acstyle@module{desc}\stepcounter{acoption}} +\DeclareOption{acasc}{\def\acstyle@module{asc}\stepcounter{acoption}} +\DeclareOption{acb1}{\def\acstyle@module{b1}\stepcounter{acoption}} +\DeclareOption{acsw}{\def\acstyle@module{sw}\stepcounter{acoption}} + +\DeclareOption*{ + \ClassError{rpg-module}{Unrecognised option '\CurrentOption'}{Valid options are:\MessageBreak + a4paper,letterpaper,tightsqueeze\MessageBreak serif,sansserif,\MessageBreak basic,advanced,\MessageBreak acdesc,acac,acb1,acsw} +} + +\ExecuteOptions{a4paper} % default paper size is A4 +\ExecuteOptions{sansserif} % default font option is sans serif +\ExecuteOptions{basic} % default stat block style is basic + +\ProcessOptions\relax + +\ifcase\thepapersizeoption\or\or\else + \ClassError{rpg-module}{a4paper and letterpaper options are mutually exclusive} + {The input file contains a statement like:\MessageBreak + \protect\documentclass[letterpaper,a4paper]{rpg-module}\MessageBreak + You can only select one paper size, either letterpaper or a4paper.\MessageBreak + The default is a4paper.} +\fi + +\ifcase\thefontoption\or\or\else + \ClassError{rpg-module}{serif and sanserif options are mutually exclusive} + {The input file contains a statement like:\MessageBreak + \protect\documentclass[serif,sansserif]{rpg-module}.\MessageBreak + You can only select one font style, either serif or sans serif.\MessageBreak + The default is sans serif.} +\fi + +\ifcase\thestatsoption\or\or\else + \ClassError{rpg-module}{you can only select one style} + {The input file contains a statement like: + \protect\documentclass[basic,advanced]{rpg-module}. + You can only select one style for stat blocks.\MessageBreak + The recognised styles are basic and advanced.\MessageBreak + The default is basic. Advanced will be defined in a future version of the rpg-module class.} +\fi + +\ifcase\theacoption\or\else + \ClassError{rpg-module}{you can only select one AC style} + {The input file contains a statement like:\MessageBreak + \protect\documentclass[acasc,acdesc]{rpg-module}.\MessageBreak + You can only select one style for armour class.\MessageBreak + The recognised styles are acasc, acdesc, acb1 and acsw.} +\fi + + + +% Process paper size options + +\setlength\voffset{-1in} +\setlength\hoffset{-1in} + +\ifmodule@letterpaper + \PassOptionsToClass{letterpaper}{article} + \addtolength\voffset{-17.6mm} + \addtolength\hoffset{2.95mm} + \newcommand{\ArmourClass}{Armor Class} % Concession to US spelling of Armour +\else + \PassOptionsToClass{a4paper}{article} + \PassOptionsToClass{twoside}{article} + \newcommand{\ArmourClass}{Armour Class} +\fi + + + +% Load the standard LaTeX 'article' document class that module is based on + +\LoadClass[twocolumn]{article} + + + +% Set page margins + +\setlength{\oddsidemargin}{0.8cm} +\setlength{\evensidemargin}{0.8cm} + +\setlength{\topmargin}{2.6cm} + +\setlength{\textheight}{25.4cm} +\setlength{\textwidth}{19.4cm} + +\setlength{\marginparsep}{0cm} +\setlength{\marginparwidth}{0cm} + +\setlength{\footskip}{0.7cm} + +\setlength{\columnsep}{1.15cm} + +\pagenumbering{arabic} + +\ifmodule@letterpaper + \setlength{\headheight}{0cm} + \setlength{\headsep}{0cm} +\else + \addtolength{\topmargin}{-\headheight} + \addtolength{\topmargin}{-\headsep} + \RequirePackage{fancyhdr} % Add headers and footers + \fancypagestyle{plain}{% + \fancyhf{} % clear all header and footer fields + \fancyhead[LO,RE]{\slshape \leftmark} + \fancyhead[RO,LE]{\slshape \rightmark} + \fancyfoot[C]{\thepage} % except the center + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} + } + \pagestyle{plain} +\fi + + + +% Float placement options +% See p.199-200 of Lamport's "LaTeX" book for details and p.105 of "TeX Unbound" for suggested values + +\renewcommand{\topfraction}{0.9} % max fraction of floats at top +\renewcommand{\bottomfraction}{0.8} % max fraction of floats at bottom + +% Parameters for TEXT pages (not float pages) + +\setcounter{topnumber}{2} +\setcounter{bottomnumber}{2} +\setcounter{totalnumber}{4} +\setcounter{dbltopnumber}{2} % for 2-column pages +\renewcommand{\dbltopfraction}{0.9} % fit big float above 2-column text +\renewcommand{\textfraction}{0.07} % allow minimal text + +% Parameters for FLOAT pages (not text pages) +% +% Note: \floatpagefraction must be less than \topfraction above + +\renewcommand{\floatpagefraction}{0.7} % require fuller float pages +\renewcommand{\dblfloatpagefraction}{0.7} % require fuller float pages + + + +% Process font options + +\RequirePackage[T1]{fontenc} % Use T1 (8-bit) font encoding +\RequirePackage{lmodern} % Use Latin Modern instead of Computer Modern for symbols etc. +\RequirePackage{xfrac} % Get a good-looking 1/2 symbol + +\newcommand\half{\sfrac{1}{2}} % Get a good-looking 1/2 symbol + +\ifmodule@seriffont + \IfFileExists{souvenir.sty}{ % If ITC Souvenir font is installed in this LaTeX distribution + \RequirePackage{souvenir} % Use ITC Souvenir as serifed font + \renewcommand{\bfdefault}{d} % Use demi-bold instead of bold + \renewcommand*\copyright{{\usefont{T1}{lmr}{m}{n}\textcopyright}} % Get a good-looking copyright (C) symbol + \newcommand*\registered{{\usefont{T1}{lmr}{m}{n}\textregistered}} % Registered trademark (R) symbol + \renewcommand\half{{\usefont{T1}{lmr}{m}{n}\sfrac{1}{2}}} % Redefine font for 1/2 symbol + }{ + \ClassWarning{rpg-module}{% + ITC Souvenir not detected, substituting Bookman as default serifed font.} + \RequirePackage{bookman} % Use Bookman as serifed font + } + \renewcommand*\familydefault{\rmdefault} % Default to serifed font +\else + \RequirePackage{avant} % Use URW Gothic as default sans-serif font (similar to ITC Avant Garde Gothic) + \renewcommand*\familydefault{\sfdefault} % Default to sans-serif font +\fi + +\renewcommand{\tiny} {\fontsize {4pt} {4.8pt}\selectfont} +\renewcommand{\scriptsize} {\fontsize {5pt} {6.0pt}\selectfont} +\renewcommand{\footnotesize}{\fontsize {7pt} {8.4pt}\selectfont} +\renewcommand{\small} {\fontsize {8pt} {9.6pt}\selectfont} +\renewcommand{\normalsize} {\fontsize {9pt}{10.8pt}\selectfont} +\renewcommand{\large} {\fontsize{10pt}{12.0pt}\selectfont} +\renewcommand{\Large} {\fontsize{11pt}{13.2pt}\selectfont} +\renewcommand{\LARGE} {\fontsize{13pt}{15.6pt}\selectfont} +\renewcommand{\huge} {\fontsize{16pt}{19.2pt}\selectfont} +\renewcommand{\Huge} {\fontsize{17.28pt}{20.74pt}\selectfont} + + + +% Load the rest of the required packages + +\RequirePackage[pass,paperwidth=\paperwidth,paperheight=\paperheight]{geometry} % Page size +\RequirePackage[explicit,newparttoc]{titlesec} % Redefine section headings +\RequirePackage{titletoc} % Redefine table of contents +\RequirePackage{array} % Format table headings +\RequirePackage{booktabs} % Underline table headings +\RequirePackage{caption} % Allow non-numbered figure and table captions +\RequirePackage{framed} % Boxed text +\RequirePackage{graphicx} % Allow images and text across two columns +\RequirePackage{dblfloatfix} % Allow positioning of figure* at bottom of page +\RequirePackage{xstring} % Manipulate strings + +% Hyperlinks + +\RequirePackage[linktocpage]{hyperref} % Allow hyperlinks, only page numbers in TOC are clickable +\RequirePackage[dvipsnames]{xcolor} % Pre-defined colour names +\hypersetup{colorlinks=true, + urlcolor=MidnightBlue, % Colour for external links + linkcolor=MidnightBlue, % Colour for internal links (including Table of Contents) + citecolor=MidnightBlue} % Colour for references + +% Key-value pairs, used for stat blocks + +\RequirePackage{pgfkeys} +\input{pgfutil-common} +\input{pgfmath.code} + +% Define a narrow breaking space + +\newcommand*{\thinspacebrk}{\hskip0.16667em\relax} + +% Tightsqueeze option for reduced spacing + +\ifmodule@tightsqueeze + \titlespacing*{\part}{0pt}{0pt}{0pt} + \titlespacing*{\section}{0pt}{0.5ex plus .2ex}{0.5ex plus .2ex} + \titlespacing*{\subsection}{0pt}{0.5ex plus .2ex}{0.5ex plus .2ex} + \FrameSep5pt + \renewcommand{\arraystretch}{1} +\else + \renewcommand{\arraystretch}{1.2} % Default: increase the table row spacing a little +\fi + +% Footnote options + +\renewcommand*{\thefootnote}{\fnsymbol{footnote}} % Use footnote symbols instead of numbers +\renewcommand\@makefntext[1]{\leftskip=0.5em\hskip-0.5em\makebox[0.5em]{\@makefnmark}#1} % Footnote indentation + +% The freestyle (system-independent) stat block +% +% Other stat-block styles depend on the RPG system option chosen and are defined in the appropriate .sty file + +\newenvironment{statblockfreestyle}{\begin{list}{}{\leftmargin=1em\rightmargin=1em}\item}{\end{list}} + +% Define monsters + +\newcounter{currentstat} % Counter for setting up key-value pairs + +\newcommand{\monster}[4][default]{ + \pgfkeys{/#2/SingleName/.initial = {#3}} + \ifnum\pdfstrcmp{#1}{default}=\z@ + \IfEndWith{#3}{y} + {\pgfkeys{/#2/PluralName/.initial = \StrGobbleRight{#3}{1}ies}} % Plural names ending in -y change to -ies + { + \IfEndWith{#3}{s} + {\pgfkeys{/#2/PluralName/.initial = #3es}} % Plural names ending in -s change to -ses + {\pgfkeys{/#2/PluralName/.initial = #3s}} % Default case, plurals where we add -s + } + \else + \pgfkeys{/#2/PluralName/.initial = #1} % Override for irregular plurals + \fi + \setcounter{currentstat}{0} + \def\currentmonster{#2} + \scan@stats#4|\relax| +} + +% Load system-specific stat blocks + +\InputIfFileExists{\statstyle@module}{% + \ClassInfo{rpg-module}{Loading monster stats from \statstyle@module} +}{% + \ClassWarning{rpg-module}{Monster stats style \statstyle@module\space not found,\MessageBreak + defaulting to basic-stats.sty} + \input{basic-stats.sty} +} + +% Title Page + +\renewcommand\maketitle{\hypersetup{pageanchor=false}% No internal links to title page allowed +\begin{titlepage} +\vspace*{\fill} +\begin{center} +\Huge \textbf{\@title} \par +\@author +\@subtitle +\@coverimg +\end{center} +\@abstract +\@copyright +\@contact +\vfill +\end{titlepage} +\hypersetup{pageanchor=true} +\global\let\maketitle\relax +\global\let\@author\@empty +\global\let\@subtitle\@empty +\global\let\@coverimg\@empty +\global\let\@abstract\@empty +\global\let\@copyright\@empty +\global\let\@contact\@empty +\global\let\title\relax +\global\let\author\relax +} + +\newcommand\showtitle[1][\@title]{\begin{center} +\LARGE\textbf{#1} +\end{center} +\let\if@afterindentfalse} + +\renewcommand\@author{\relax} +\renewcommand{\author}[1]{\gdef\@author{\vskip 0.5em\LARGE \textbf{by #1}}} + +\newcommand\@subtitle{\relax} +\newcommand\@coverimg{\relax} +\newcommand\@abstract{\relax} +\newcommand\@copyright{\relax} +\newcommand\@contact{\relax} + +\newcommand{\subtitle}[1]{\gdef\@subtitle{\vskip 0.5em \LARGE \textbf{\MakeUppercase{#1}}}} +\newcommand{\coverimage}[1]{\gdef\@coverimg{\vskip 1em \includegraphics[width=\textwidth]{#1} \par}} +\renewcommand{\abstract}[1]{\gdef\@abstract{\vskip 0.5em #1 \par}} + +\newcommand{\copyrightblock}[1]{\gdef\@copyright{\vskip 0.5em +\begin{quote} +\centering +#1 +\end{quote}}} + +\newcommand{\contactblock}[4][p{5.9cm} p{5.9cm} p{5.9cm}]{\gdef\@contact{\vskip 0.5em +\begin{tabular}{#1} +{#2} & {#3} & {#4} +\end{tabular} +}} + + + +% Running heads (used on A4 paper size only) + +\newcommand\titlerunning[1]{% + \gdef\runningtitle{\MakeUppercase{#1}} +} + +\ifmodule@letterpaper\else + \renewcommand{\partmark}[1]{\markright{\MakeUppercase{#1}}{}} + \renewcommand{\sectionmark}[1]{} + \renewcommand{\subsectionmark}[1]{} + \renewcommand{\leftmark}{\runningtitle} + \titlerunning{\@title} +\fi + + +% Headings + +\renewcommand\thepart{\arabic{part}} +\renewcommand\thesection{} +\renewcommand\thesubsection{\arabic{subsection}} +\renewcommand\thesubsubsection{\arabic{subsection}\alph{subsubsection}} + +\titleformat{\part}[block] +{\LARGE\bfseries\filcenter} +{\LARGE PART \thepart:}{0.5em}{\MakeUppercase{#1}} + +\titleformat{\section}[hang] +{\Large\bfseries\filright} +{}{0em}{\MakeUppercase{#1}} + +\titleformat{name=\section,numberless}[block] % how to handle \section* +{\Large\bfseries\filcenter} +{}{0em}{#1\phantomsection\addcontentsline{toc}{section}{#1}} + +\titleformat{\subsection}[hang] +{\normalfont\bfseries\filright} +{\thesubsection.}{0.5em}{\MakeUppercase{#1}} + +\titleformat{\subsubsection}[hang] % \subsubsection is indentical to \subsection except for the numbering +{\normalfont\bfseries\filright} +{\thesubsubsection.}{0.5em}{\MakeUppercase{#1}} + +% Default section spacing, for reference +% +%\titlespacing*{\chapter} {0pt}{50pt}{40pt} +%\titlespacing*{\section} {0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} +%\titlespacing*{\subsection} {0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} +%\titlespacing*{\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} +%\titlespacing*{\paragraph} {0pt}{3.25ex plus 1ex minus .2ex}{1em} +%\titlespacing*{\subparagraph} {\parindent}{3.25ex plus 1ex minus .2ex}{1em} + +% Table of Contents + +\renewcommand\tableofcontents{% + \noindent\Large\textbf{\MakeUppercase\contentsname}\vspace{1em}\@starttoc{toc} +} + + +\addtocontents{toc}{\protect\setcounter{tocdepth}{1}} +\titlecontents{part}[0em]{\normalsize\bfseries}{PART \thecontentslabel : \MakeUppercase}{}{\quad\thecontentspage}[\vspace{1.5ex plus .2ex}] +\titlecontents*{section}[0em]{\normalsize}{}{}{~\thecontentspage}[\unskip, ][.\vspace{1.5ex plus .2ex}] +\titlecontents*{subsection}[0em]{\normalsize}{}{}{~\thecontentspage}[\unskip, ][.\vspace{1.5ex plus .2ex}] +\titlecontents*{subsubsection}[0em]{\normalsize}{}{}{~\thecontentspage}[\unskip, ][.\vspace{1.5ex plus .2ex}] + + + +% Boxed text + +\newenvironment{boxtext}{% +\if@nobreak + \vspace{-\topsep} +\fi +\begin{framed}\@afterheading}{\end{framed}\aftergroup\@afterindentfalse\aftergroup\@afterheading} + + + +% Single-column text + +\newcommand\onecolumninline[1]{% +\newlength{\tmpparindent} +\newlength{\tmpparskip} +\setlength{\tmpparindent}{\parindent} +\setlength{\tmpparskip}{\parskip} +\twocolumn[{ +\setlength{\parindent}{\tmpparindent} +\setlength{\parskip}{\tmpparskip} +\fussy +#1 +\vspace{2ex} +}] +} + +\newenvironment{onecolumnfloat}[1][t]{% +\let\@floatboxreset\relax% +\let\@parboxrestore\relax% +\begin{table*}[#1]\unskip}{\end{table*}} + + + +% Tables + +\newcolumntype{b}{>{\bfseries}c} % New column type 'b' for bold, centred headings +\newcounter{numcols@module} % Counter to keep track of how many columns are in the table + +% Underline table headers + +\newtoks\module@tableul +\newcommand{\tableul}[1]{% + \noalign{% + \global\module@tableul={}% + \toks@={\cmidrule(l{\tabcolsep}r{\tabcolsep})}% + \count@=\z@ + \loop\ifnum\count@<#1\relax + \advance\count@\@ne + \edef\module@temp{\the\toks@{\the\count@-\the\count@}}% + \global\module@tableul\expandafter{\the\expandafter\module@tableul\module@temp}% + \repeat + }% + \the\module@tableul +} + +% Typeset the table heading +% Takes a column type as an optional argument (defaults to 'c' for centred text) + +\newcommand\tableheader[2][c]{{% + \edef\lbracetoken{\string{} + \edef\rbracetoken{\string}} + \StrCount{#2}{&}[\numamps]\global\setcounter{numcols@module}{\numamps}\stepcounter{numcols@module} + \newcommand\source{\string\multicolumn\lbracetoken 1\rbracetoken\lbracetoken#1\rbracetoken\lbracetoken#2\rbracetoken} + \newcommand\replace{\rbracetoken&\string\multicolumn\lbracetoken 1\rbracetoken\lbracetoken#1\rbracetoken\lbracetoken} + \StrSubstitute{\source}{ & }{\replace}[\tmptblhdr] + \StrExpand{\tmptblhdr}{\tmptblhdrexpand} + \tokenize{\tmptbltok}{\tmptblhdr} + \global\let\tableheader@module\tmptbltok +}\\[-2ex] % hack to get around the fact that it's not allowed to have non-expandable text in the same cell as \multicolumn +\tableheader@module\\ +\tableul{\thenumcols@module} +} + + + +% Copyright and license macros + +\newcommand{\modulecopyright}{% +The \LaTeX~rpg-module class is copyright \copyright 2016 Michael Davis and is distributed under the conditions of the +\href{http://www.latex-project.org/lppl.txt}{LaTeX Project Public License}, either version 1.3 or (at your option) +any later version. Compiled Works generated using the rpg-module class can be distributed as specified in Clause 3 of the license.} + +\newenvironment{ogl}{% +\footnotesize +\subsection*{OPEN GAME LICENSE Version 1.0a} +The following text is the property of Wizards of the Coast, Inc. and is Copyright 2000 Wizards of the Coast, Inc (``Wizards''). All Rights Reserved. +\begin{enumerate} +\item Definitions: (a) ``Contributors'' means the copyright and/or trademark owners who have contributed Open Game Content; (b) ``Derivative Material'' +means copyrighted material including derivative works and translations (including into other computer languages), potation, modification, correction, +addition, extension, upgrade, improvement, compilation, abridgment or other form in which an existing work may be recast, transformed or adapted; (c) +``Distribute'' means to reproduce, license, rent, lease, sell, broadcast, publicly display, transmit or otherwise distribute; (d) ``Open Game Content'' +means the game mechanic and includes the methods, procedures, processes and routines to the extent such content does not embody the Product Identity +and is an enhancement over the prior art and any additional content clearly identified as Open Game Content by the Contributor, and means any work +covered by this License, including translations and derivative works under copyright law, but specifically excludes Product Identity. (e) ``Product +Identity'' means product and product line names, logos and identifying marks including trade dress; artifacts; creatures characters; stories, +storylines, plots, thematic elements, dialogue, incidents, language, artwork, symbols, designs, depictions, likenesses, formats, poses, concepts, +themes and graphic, photographic and other visual or audio representations; names and descriptions of characters, spells, enchantments, personalities, +teams, personas, likenesses and special abilities; places, locations, environments, creatures, equipment, magical or supernatural abilities or effects, +logos, symbols, or graphic designs; and any other trademark or registered trademark clearly identified as Product identity by the owner of the Product +Identity, and which specifically excludes the Open Game Content; (f) ``Trademark'' means the logos, names, mark, sign, motto, designs that are used by +a Contributor to identify itself or its products or the associated products contributed to the Open Game License by the Contributor (g) ``Use'', +``Used'' or ``Using'' means to use, Distribute, copy, edit, format, modify, translate and otherwise create Derivative Material of Open Game Content. +(h) ``You'' or ``Your'' means the licensee in terms of this agreement. + +\item The License: This License applies to any Open Game Content that contains a notice indicating that the Open Game Content may only be Used under and +in terms of this License. You must affix such a notice to any Open Game Content that you Use. No terms may be added to or subtracted from this License +except as described by the License itself. No other terms or conditions may be applied to any Open Game Content distributed using this License. + +\item Offer and Acceptance: By Using the Open Game Content You indicate Your acceptance of the terms of this License. + +\item Grant and Consideration: In consideration for agreeing to use this License, the Contributors grant You a perpetual, worldwide, royalty-free, +non-exclusive license with the exact terms of this License to Use, the Open Game Content. + +\item Representation of Authority to Contribute: If You are contributing original material as Open Game Content, You represent that Your Contributions are +Your original creation and/or You have sufficient rights to grant the rights conveyed by this License. + +\item Notice of License Copyright: You must update the COPYRIGHT NOTICE portion of this License to include the exact text of the COPYRIGHT NOTICE of any +Open Game Content You are copying, modifying or distributing, and You must add the title, the copyright date, and the copyright holder's name to the +COPYRIGHT NOTICE of any original Open Game Content you Distribute. + +\item Use of Product Identity: You agree not to Use any Product Identity, including as an indication as to compatibility, except as expressly licensed in +another, independent Agreement with the owner of each element of that Product Identity. You agree not to indicate compatibility or co-adaptability with any +Trademark or Registered Trademark in conjunction with a work containing Open Game Content except as expressly licensed in another, independent Agreement with +the owner of such Trademark or Registered Trademark. The use of any Product Identity in Open Game Content does not constitute a challenge to the ownership of +that Product Identity. The owner of any Product Identity used in Open Game Content shall retain all rights, title and interest in and to that Product Identity. + +\item Identification: If you distribute Open Game Content You must clearly indicate which portions of the work that you are distributing are Open Game Content. + +\item Updating the License: Wizards or its designated Agents may publish updated versions of this License. You may use any authorized version of this License +to copy, modify and distribute any Open Game Content originally distributed under any version of this License. + +\item Copy of this License: You MUST include a copy of this License with every copy of the Open Game Content You Distribute. + +\item Use of Contributor Credits: You may not market or advertise the Open Game Content using the name of any Contributor unless You have written permission +from the Contributor to do so. + +\item Inability to Comply: If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Open Game Content +due to statute, judicial order, or governmental regulation then You may not Use any Open Game Material so affected. + +\item Termination: This License will terminate automatically if You fail to comply with all terms herein and fail to cure such breach within 30 days of becoming +aware of the breach. All sublicenses shall survive the termination of this License. + +\item Reformation: If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it +enforceable. + +\item COPYRIGHT NOTICE +\end{enumerate} +\begin{list}{}{} +\item Open Game License v 1.0 Copyright 2000, Wizards of the Coast, Inc. +}{\end{list}} + +\newenvironment{productidentity}{% +\footnotesize +\subsection*{Designation of Product Identity} +\begin{list}{}{\leftmargin=0cm} +}{\end{list}} + +\newenvironment{opengamecontent}{% +\footnotesize +\subsection*{Designation of Open Game Content} +\begin{list}{}{\leftmargin=0cm} +}{\end{list}} + |