From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 macros/latex/contrib/dramatist/dramatist.sty | 426 +++++++++++++++++++++++++++
 1 file changed, 426 insertions(+)
 create mode 100644 macros/latex/contrib/dramatist/dramatist.sty

(limited to 'macros/latex/contrib/dramatist/dramatist.sty')

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'.
-- 
cgit v1.2.3

