summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/dramatist/dramatist.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/dramatist/dramatist.sty')
-rw-r--r--macros/latex/contrib/dramatist/dramatist.sty426
1 files changed, 426 insertions, 0 deletions
diff --git a/macros/latex/contrib/dramatist/dramatist.sty b/macros/latex/contrib/dramatist/dramatist.sty
new file mode 100644
index 0000000000..cff4aaa2ff
--- /dev/null
+++ b/macros/latex/contrib/dramatist/dramatist.sty
@@ -0,0 +1,426 @@
+%%
+%% This is file `dramatist.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% dramatist.dtx (with options: `dramatist')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from dramatist.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file dramatist.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% dramatist.dtx
+%% Copyright (C) 2003-2014 Massimiliano Dominici
+%% \CharacterTable%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\ProvidesPackage{dramatist}[2014/12/18 v1.2e Package for typesetting drama -- Author: Massimiliano Dominici]
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{xspace}
+\@ifundefined{if@openright}{\newif\if@openright}{}
+\newif\if@drverse
+\newif\if@poemscol
+\@ifpackageloaded{poemscol}{\@poemscoltrue}{\@poemscolfalse}
+\newif\if@stagedir
+\newif\if@lnpa
+\newif\if@lnps
+\newif\if@lnpd
+\DeclareOption{lnpa}{\@lnpatrue}
+\DeclareOption{lnps}{\@lnpstrue}
+\ProcessOptions
+\newcounter{storelineno}
+\setcounter{storelineno}{0}
+\if@poemscol\else
+\refstepcounter{storelineno}\fi
+\newcounter{storeprintlineindex}
+\newcounter{character}
+\newcounter{temp}
+\newcounter{gtemp}
+\newcounter{act}
+\newcounter{scene}[act]
+\renewcommand{\theact}{\roman{act}}
+\renewcommand{\thescene}{\roman{scene}}
+\newenvironment{drama}{%
+ \if@lnpa
+ \PackageWarning{dramatist}{\lnpwarning{a}}
+ \fi
+ \if@lnps
+ \PackageWarning{dramatist}{\lnpwarning{s}}
+ \fi
+ \list{}{%
+ \labelwidth\speakswidth
+ \itemindent\speaksindent
+ \itemsep\speechskip
+ \parsep\Dparsep
+ \labelsep\Dlabelsep
+ \let\makelabel\speakslabel}
+ } {\endlist}
+\@namedef{drama*}{%
+ \@drversetrue
+ \if@poemscol
+ \begin{poem}
+ \setcounter{verselinenumber}{\value{storelineno}}
+ \setcounter{printlineindex}{\value{storeprintlineindex}}
+ \else
+ \begin{verse}
+ \fi
+ \ifx\poemlines\@undefined\else
+ \setcounter{poemline}{\value{storelineno}}
+ \fi}
+\@namedef{enddrama*}{%
+ \ifx\poemlines\@undefined\else
+ \setcounter{storelineno}{\value{poemline}}
+ \fi
+ \if@poemscol
+ \end{poem}
+ \setcounter{storelineno}{\value{verselinenumber}}
+ \setcounter{storeprintlineindex}{\value{printlineindex}}
+ \else
+ \end{verse}
+ \fi
+ \@drversefalse}
+\providecommand\phantomsection{}
+\newcommand\actmark[1]{}
+\newcommand\scenemark[1]{}
+\newcommand\drampermark[1]{}
+\newcommand\@openact{%
+ \@ifundefined{if@openright}{\clearpage}{%
+ \if@openright
+ \clearpage{\thispagestyle{empty}\cleardoublepage}
+ \else
+ \clearpage
+ \fi}
+ \thispagestyle{plain}
+ \refstepcounter{act}
+ \if@lnpa
+ \setcounter{storelineno}{0}
+ \if@poemscol
+ \setcounter{storeprintlineindex}{0}
+ \else
+ \refstepcounter{storelineno}
+ \fi
+ \fi
+}
+\newcommand\act{%
+ \@openact
+ \secdef\@act\@sact}
+\newcommand\@act[1][]{%
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\actcontentsline}
+ \actmark{\actname\ \theact}
+ \m@ke@cthead{#1}
+ \@afterindentfalse
+ \@afterheading}
+\newcommand\@sact[1][]{%
+ \m@ke@cthead{#1}
+ \@afterindentfalse
+ \@afterheading}
+\newcommand\Act{%
+ \@openact
+ \secdef\@Act\@sact}
+\def\@Act[#1]#2{%
+ \phantomsection
+ \ifnum\c@secnumdepth>\m@ne
+ \addcontentsline{toc}{chapter}{\actcontentsline~#1}
+ \else
+ \addcontentsline{toc}{chapter}{#1}
+ \fi
+ \actmark{\actname\ \theact\ #1}
+ \m@ke@cthead{#2}
+ \@afterindentfalse
+ \@afterheading}
+\newcommand\m@ke@cthead[1]{%
+ \actheadstart
+ {\parindent \z@
+ \ifnum\c@secnumdepth>\m@ne
+ \printactname \printsep \printactnum
+ \fi
+ \printacttitle{#1}
+ \afteract}
+}
+\newcommand\@openscene{%
+ \stepcounter{scene}
+ \if@lnps
+ \setcounter{storelineno}{0}
+ \if@poemscol
+ \setcounter{storeprintlineindex}{0}
+ \else
+ \refstepcounter{storelineno}
+ \fi
+ \fi
+}
+\newcommand\scene{%
+ \@openscene
+ \secdef\@scene\@sscene}
+\newcommand\@scene[1][]{%
+ \phantomsection
+ \addcontentsline{toc}{section}{\scenecontentsline}
+ \scenemark{\scenename\ \thescene}
+ \m@kescenehead{#1}
+ \@afterindentfalse
+ \@afterheading}
+\newcommand\@sscene[1][]{%
+ \m@kescenehead{#1}
+ \@afterindentfalse
+ \@afterheading}
+\newcommand\Scene{%
+ \@openscene
+ \secdef\@Scene\@sscene}
+\def\@Scene[#1]#2{%
+ \phantomsection
+ \ifnum\c@secnumdepth>\z@
+ \addcontentsline{toc}{section}{\scenecontentsline~#1}
+ \else
+ \addcontentsline{toc}{section}{#1}
+ \fi
+ \scenemark{\scenename\ \thescene\ #1}
+ \m@kescenehead{#2}
+ \@afterindentfalse
+ \@afterheading}
+\newcommand\m@kescenehead[1]{%
+ \sceneheadstart
+ {\parindent \z@
+ \ifnum\c@secnumdepth>\z@
+ \printscenename \printsep \printscenenum
+ \fi
+ \printscenetitle{#1}
+ \afterscene}
+}
+\newcommand\Character{%
+ \@ifnextchar[{\@xcharacter}{\@character}}
+\def\@xcharacter[#1]#2#3{%
+ \stepcounter{character}
+ \@character{#2}{#3}
+ \n@me@ppend@nddef{persona}{@\Roman{character}}{\castfont #1}
+}
+\def\@character#1#2{%
+ \@namedef{#2}{{\namefont #1}\xspace}
+ \n@me@ppend@nddef{#2}{\@ppendname}{%
+ \if@drverse
+ {\speakstab\speaksfont{#1}\speaksdel\par\nobreak\addvspace{-\parskip}}
+ \else
+ \item[#1\speaksdel]
+ \fi}
+}
+\newcommand{\n@me@ppend@nddef}[2]{%
+ \expandafter\def\csname#1#2\endcsname}
+\newcommand{\@ppendname}{speaks}
+\newenvironment{CharacterGroup}[1]{%
+ \stepcounter{character}
+ \newcounter{g\Roman{character}}
+ \grouplist{#1}
+}{}
+\newsavebox{\tbox}
+\newcommand\grouplist[1]{%
+ \global\n@me@ppend@nddef{persona}{@\Roman{character}}{%
+ \begin{lrbox}{\tbox}
+ \begin{minipage}[c]{\CharWidth}\raggedright
+ \leftmargini=0pt
+ \begin{list}{}{\itemsep=0pt}
+ \dogrouplist
+ \end{list}
+ \end{minipage}
+ \end{lrbox}
+ \parbox{\CharWidth}{\usebox{\tbox}}%
+ \parbox{\ParenWidth}{$\left.\rule{0pt}{\ht\tbox}\right\}$}
+ \parbox{\CastWidth}{\castfont #1\strut}}
+}
+\newcommand{\dogrouplist}{%
+ \ifnum\value{g\Roman{temp}}>\value{gtemp}
+ \stepcounter{gtemp}
+ \item\@nameuse{gpersona@\Roman{temp}@\Roman{gtemp}}\strut
+ \dogrouplist
+ \fi
+ \setcounter{gtemp}{0}
+}
+\newcommand\GCharacter[3]{
+ \stepcounter{g\Roman{character}}
+ \global\@namedef{#3}{{\namefont #2}\xspace}
+ \global\n@me@ppend@nddef{#3}{\@ppendname}{%
+ \if@drverse
+ {\speakstab\speaksfont #2\speaksdel\par\nobreak\addvspace{-\parskip}}
+ \else
+ \item[#2\speaksdel]
+ \fi}
+ \global\n@me@ppend@nddef{gpersona@\Roman{character}}{%
+ @\Roman{g\Roman{character}}}{\castfont #1}
+}
+\newcommand\speaker[1]{%
+ \if@drverse
+ {\speakstab\speaksfont #1\speaksdel\par\nobreak\addvspace{-\parskip}}
+ \else
+ \item[#1\speaksdel]
+ \fi}
+\newcommand{\DramPer}{%
+ \@ifundefined{if@openright}{\clearpage}{%
+ \if@openright\cleardoublepage\else\clearpage\fi}
+ \secdef\@dramper\@sdramper}
+\newcommand\@dramper[1][]{%
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\casttitlename}
+ \drampermark{\casttitlename}
+ \m@kedramperhead{#1}}
+\newcommand\@sdramper[1][]{%
+ \m@kedramperhead{#1}}
+\newcommand\m@kedramperhead[1]{
+ \castheadstart
+ {\printcasttitle #1
+ \aftercasttitle}
+ \begin{list}{}{\leftmargin=0pt \itemsep=0pt}
+ \dodramperlist
+ \end{list}
+}
+\newcommand{\dodramperlist}{%
+ \ifnum\value{character}>\value{temp}
+ \stepcounter{temp}
+ \item\@nameuse{persona@\Roman{temp}}\strut
+ \dodramperlist
+ \fi
+}
+\newcommand{\direct}{%
+ \@ifstar\@sdirect\@direct}
+\newcommand{\@direct}[1]{%
+ \if@drverse
+ \vskip2\normallineskip
+ \parbox[b]{\dirwidth}{\dirdelimiter{{\itshape #1}}}\@centercr
+ \else
+ \dirdelimiter{{\itshape #1}}\unskip
+ \fi
+}
+\newcommand{\@sdirect}[1]{%
+ \if@drverse
+ \vskip2\normallineskip
+ \parbox[b]{\dirwidth}{\dirdelimiter{\itshape #1}}\\!
+ \else
+ \starrederror
+ \fi
+}
+\newcommand{\dirdelimiter}[1]{(#1)}
+\newcommand{\StageDir}[1]{%
+ \begin{stagedir}
+ #1
+ \end{stagedir}
+}
+\newenvironment{stagedir}{%
+ \StageDirOpenSettings}{%
+ \StageDirCloseSettings\global\@stagedirtrue}
+\newcommand\StageDirOpenSettings{\begin{quote}\em}
+\newcommand\StageDirCloseSettings{\end{quote}}
+\newcommand\StageDirConf[2]{%
+ \renewcommand\StageDirOpenSettings{#1}
+ \renewcommand\StageDirCloseSettings{#2}
+}
+\newcommand\actcontentsline{\actname\ \theact}
+\newcommand{\actnamefont}{\scshape\Large}
+\newcommand{\actnumfont}{\actnamefont}
+\newcommand{\acttitlefont}{\actnamefont}
+\newcommand{\actname}{Act}
+\newcommand{\printactname}{\centering\actnamefont \actname}
+\newcommand{\printactnum}{\actnumfont \theact}
+\newcommand{\printacttitle}[1]{\acttitlefont\ #1}
+\newcommand\scenecontentsline{\scenename\ \thescene}
+\newcommand{\scenenamefont}{\scshape\large}
+\newcommand{\scenenumfont}{\scenenamefont}
+\newcommand{\scenetitlefont}{\scenenamefont}
+\newcommand{\scenename}{Scene}
+\newcommand{\printscenename}{\centering\scenenamefont \scenename}
+\newcommand{\printscenenum}{\scenenumfont \theact\intersep\thescene}
+\newcommand{\printscenetitle}[1]{\scenetitlefont\ #1}
+\newcommand{\intersep}{\ --\ }
+\newcommand{\printsep}{\ }
+\newcommand{\printcasttitle}{\centering\casttitlefont \casttitlename}
+\newcommand{\casttitlefont}{\Large\scshape}
+\newcommand{\casttitlename}{Dramatis Person\ae}
+\newcommand{\castfont}{\normalfont}
+\newcommand{\namefont}{\scshape}
+\newcommand{\speaksfont}{\scshape}
+\newcommand{\speaksdel}{}
+\newlength{\CharWidth}
+\setlength{\CharWidth}{.3\textwidth}
+\newlength{\ParenWidth}
+\setlength{\ParenWidth}{.05\textwidth}
+\newlength{\CastWidth}
+\setlength{\CastWidth}{.6\textwidth}
+\def\actheadstart{\vspace*{\beforeactskip}}
+\def\afteract{\par\nobreak\vskip\afteractskip}
+\def\sceneheadstart{\vspace*{\beforesceneskip}}
+\def\afterscene{\par\nobreak\vskip\aftersceneskip}
+\def\castheadstart{\vspace*{\beforecastskip}}
+\def\aftercasttitle{\par\nobreak\vskip\aftercasttitleskip}
+\newcommand{\speakstab}{\hspace{\speaksskip}}
+\newlength{\beforeactskip}
+\setlength{\beforeactskip}{\baselineskip}
+\newlength{\afteractskip}
+\setlength{\afteractskip}{\baselineskip}
+\newlength{\beforesceneskip}
+\setlength{\beforesceneskip}{0pt}
+\newlength{\aftersceneskip}
+\setlength{\aftersceneskip}{\baselineskip}
+\newlength{\beforecastskip}
+\setlength{\beforecastskip}{0pt}
+\newlength{\aftercasttitleskip}
+\setlength{\aftercasttitleskip}{0pt}
+\newlength{\speaksskip}
+\setlength{\speaksskip}{1em}
+\newlength{\dirwidth}
+\setlength{\dirwidth}{.6\textwidth}
+\newdimen\speakswidth
+\speakswidth\z@
+\newdimen\speaksindent
+\speaksindent=-\leftmargin
+\newdimen\speechskip
+\speechskip\itemsep
+\newdimen\Dparsep
+\Dparsep\z@
+\newdimen\Dlabelsep
+\Dlabelsep\labelsep
+\newcommand{\speakslabel}[1]{%
+ \hspace\labelsep \speaksfont{#1}}
+\newcommand{\starrederror}{\PackageError{dramatist}{%
+ The starred version of this command is not available under the
+ option you have chosen}
+ {You probably misspelled the command.^^J%
+ Only the `verse' option supports a starred version of this
+ command.}
+}
+\newcommand{\lnpwarning}[1]{The option `lnp#1' is meaningless outside the%
+ `drama*' environment}
+\newcommand{\inputfilewarning}{\PackageWarningNoLine{dramatist}{^^J^^J%
+********************************************************^^J%
+* No Configuration file found, using default settings. *^^J%
+********************************************************^^J%
+}}
+\newcommand{\foundfile}{\PackageWarningNoLine{dramatist}{^^J^^J%
+*******************************************^^J%
+* Using Configuration file dramatist.cfg. *^^J%
+*******************************************^^J%
+}}
+\InputIfFileExists{dramatist.cfg}{\foundfile}{\inputfilewarning}
+%%\section{The GNU General Public License}
+
+\endinput
+%%
+%% End of file `dramatist.sty'.