%% %% This is file `drama.stq', %% generated with the docstrip utility. %% %% The original source files were: %% %% drama.sty %% %% This program is part of the Frankenstein bundle for LaTeX. %% This file should have been distributed with the source listed above. %% %% Copyright (C) 1995, 1996 Matthew Swift %% %% This program is free software; you can redistribute it and/or modify %% it under the terms of the GNU General Public License as published by %% the Free Software Foundation; either version 2 of the License, or %% (at your option) any later version. %% %% This program is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %% GNU General Public License for more details. %% %% You should have received a copy of the GNU General Public License %% along with this program; if not, write to the Free Software %% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. %% %% NOTE: I am willing to specially license this code. %% Please simply contact me with your proposal. %% %% \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 \~} %% \def\fileinfo{drama package} \def\DoXNeeDME{} \def\fileversion{v0.1} \def\filedate{1996/05/05} \def\docdate{1996/05/05} \edef\PPOptArg {% \filedate\space \fileversion\space \fileinfo } \makeatletter \@ifundefined{JuStLoAdInFoRmAtIoN} {% }{% ELSE \@ifundefined{DoXNeeDME} {% }{% ELSE \UndefineCS\JuStLoAdInFoRmAtIoN \usepackage{drama}% } \makeatother \endinput } \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{drama}[\PPOptArg] %% \RequirePackage{abbrevs,bits,dialogue,moredefs,relsize} \let\sc@mark\Gobble \VerboseErrors \DeclareBooleanOptions{oneact}{multiact} \ProcessOptions \providecommand\SpeakAppend {says} \ReserveCS\sc@cast \NewUserAbbrevDefiner\NewCharacterAbbrev{Character} \let\TMFontCharacter\scshape \newcommand*\character [3] {% args: dramper name csname \expandafter\NewCharacterAbbrev\csname #3\endcsname{#2}% \NewName* {#3\SpeakAppend} {} {% \speak{#2}% }% \addto@macro\sc@cast{,#1}% } \newcommand\DramPer {% \ifx\sc@cast\LongEmpty\else {\larger\scshape Cast}% \relax\begin{verse} \edef\sc@t@a{\E@cdr\sc@cast\@nil}% \@for\sc@t@b:=\sc@t@a \do {% \sc@t@b\\% }% \relax\end{verse}% \InitCS\sc@cast \bigbreak \fi } \newtokens\sc@toks@saved@output \sc@toks@saved@output=\output \providelength\sc@len \newcommand\sc@outputwrapper {% \setlength{\sc@len}{\dp255}% \the\sc@toks@saved@output \def\sc@t@b {% \sc@botmark \addtolength{\sc@len}{-\prevdepth}% \kern\sc@len }% \InitCS\sc@t@a \ifx\sc@botmark\ShortEmpty \let\sc@t@a\sc@t@b \else \ifsc@directing \let\sc@t@a\sc@t@b \fi \fi \sc@t@a } \newcommand\script {% \MakeDirectTakeArg \relax\begin{Script}% } \NewName{endscript} {} {% \relax\end{Script}% } \NewName{script*} {} {% \MakeDirectTakeNoArg \relax\begin{Script}% } \NewName{endscript*} {} {% \relax\end{Script}% } \newcommand\sc@make@begin@bit@D [2] {% args: bitstyle copystyle \DefName{sc@begin@bit@#1@#2}{##1##2} {% \def\BitStyle{#1}% \sc@begin@bit@common{##1}{##2}% \PreBitAll \if@oneact@ \def\thepage {% \arabic{bitbitbit}\hspace{\@ne em}\arabic{page}% }% \else \def\thepage {% \arabic{bitbit}--\arabic{bitbitbit}\hspace{\@ne em}\arabic{page}% }% \fi \DramPer \@nameuse{PreBit#1}% }% } \newcommand\sc@make@end@bit@D [2] {% args: bitstyle copystyle \DefName{sc@end@bit@#1@#2}{##1} {% \sc@possiblyfinishdirecting \TheEnd \MonsterInfo{drama}{\protect\output is back to normal now.}% }% } \NewBitstyle{Script} \PromulgateComponentAcrossCopystyles{end@bit}{D}{Script} \PromulgateComponentAcrossCopystyles{begin@bit}{D}{Script} \newcommand\act {% \sc@possiblyfinishdirecting \sc@mark{\ShortEmpty}% \stepcounter{bitbit}% \pagebreak[3]% \bigskip \centerline{\relsize{2}Act \thebitbit}% \par \nobreak \smallskip } \newcommand\scene {% \sc@possiblyfinishdirecting \sc@mark{\ShortEmpty}% \stepcounter{bitbitbit}% \pagebreak[3]% \bigskip \centerline{\relsize{1}Scene \thebitbitbit}% \par \nobreak \smallskip } \newlength{\halfacross} \setlength{\halfacross}{\textwidth} \divide\halfacross by 2 \newlength{\quarteracross} \setlength{\quarteracross}{\textwidth} \divide\quarteracross by 4 \newenvironment{DramaTab} [1] {% \relax\begin{list}{} {% \setlength{\leftmargin}{#1}% \setlength{\listparindent}{\z@}% \sloppy }% \item\relax }{% \relax\end{list}% } \newcommand\setstage [1] {% \relax\begin{DramaTab}{\halfacross}% \DirectStyle \DirectOpen \ignorespaces #1% \unskip \DirectClose \relax\end{DramaTab}% } \newcommand\DirectOpen {\textrm{(}} \newcommand\DirectClose {\textrm{)}} \newboolean{sc@directing} \newcommand*\DirectNoArg {% \sc@noargs@finishdirecting \sc@direct } \newcommand\DirectWithArg [1] {% \sc@args@finishdirecting \sc@direct #1% \sc@really@finishdirecting } \newcommand\sc@direct {% \global\let\sc@lastmark\sc@themark \sc@mark{\ShortEmpty}% \sc@directingtrue \pagebreak[0]% mild encouragement \relax\begin{DramaTab}{\quarteracross}% \DirectStyle \DirectOpen \ignorespaces } \newcommand\sc@really@finishdirecting {% \unskip \DirectClose \relax\end{DramaTab} \sc@directingfalse } \ReserveCS\sc@args@finishdirecting \newcommand\sc@noargs@finishdirecting {% \ifsc@directing \sc@really@finishdirecting \fi } \ReserveCS\sc@possiblyfinishdirecting \newcommand\MakeDirectTakeArg {% \let\sc@possiblyfinishdirecting\sc@args@finishdirecting \let\direct\DirectWithArg } \newcommand\MakeDirectTakeNoArg {% \let\sc@possiblyfinishdirecting\sc@noargs@finishdirecting \let\direct\DirectNoArg } \newcommand\GiveSpeaker [1] {% \par \centerline{\textsc{#1}}% } \newcommand\GiveSpeakerContinued [1] {% \GiveSpeaker{#1\space\rlap{\textsl{(continued)}}}% } \newcommand\speak [1] {% \sc@possiblyfinishdirecting \sc@mark{\ShortEmpty}% \pagebreak[2]% \smallskip \sc@mark{\GiveSpeakerContinued{#1}}% \GiveSpeaker{#1}% \par \nopagebreak \noindent } \endinput %% %% End of file `drama.stq'.