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/scripttex/stagplay.tex | 278 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 278 insertions(+)
 create mode 100644 macros/scripttex/stagplay.tex

(limited to 'macros/scripttex/stagplay.tex')

diff --git a/macros/scripttex/stagplay.tex b/macros/scripttex/stagplay.tex
new file mode 100644
index 0000000000..be506418ec
--- /dev/null
+++ b/macros/scripttex/stagplay.tex
@@ -0,0 +1,278 @@
+% TeX stageplay macros -- typeset format
+% Copyright 1991-2002 Adrian McCarthy  See documentation for re-distribution info.
+\def\banner{ScriptTeX 1.04, 10-MAR-2002, typeset stageplay format}%version
+\immediate\write16{\banner}
+%
+% These macros will produce a typeset script in stageplay format.
+%
+%
+% General page layout:
+%
+\font\sc=cmcsc10 % Caps and small caps
+\font\twbf=cmbx12 % Twelve point bold face
+\hsize=6.5truein
+\vsize=8.3truein
+\parindent 0pt
+\parskip\baselineskip
+\hoffset=0.5truein
+%
+% My first output routine.  Marks have three parts:  act/scene header,
+% dialog continuation text for top of page, and dialog continuation text
+% for the bottom of the page.  No insertions are handled at this time.
+%
+\output={%
+  \ifx\LR\empty \else
+    \if L\LR \hoffset=0.0truein \global\def\LR{R}
+      \else \hoffset=0.5truein \global\def\LR{L}
+    \fi
+  \fi%x
+  \shipout\vbox to 9.0truein{\makeheadline \pagebody \makefootline}
+  \advancepageno
+% No supereject nonsense since we aren't going to deal with insertions.
+}
+\def\makeheadline{%  Act/scene header and page number
+  \line{\tenrm \ifcase0\expandafter\relax\firstmark\fi%
+    \ifnum\pageno>0 \hss $\oldstyle\folio$. \fi}
+  \vskip\baselineskip
+}
+\def\pagebody{%
+  \line{\ifcase1\expandafter\relax\topmark\fi \hss}
+  \unvbox255
+  \line{\ifcase2\expandafter\relax\botmark\fi \hss}
+  \vfil
+}
+\def\makefootline{%
+  \line{\footer}
+}
+%
+% Revision information
+%
+\def\titletext{Stageplay}
+\def\title#1{\def\titletext{#1}}
+\def\seriestext{}  % here for compatibility with screenplay format
+\def\series#1{\def\seriesname{#1}}
+\def\authortext{}
+\def\author#1{\def\authortext{#1}}
+\def\drafttext{}
+\def\draft#1{\def\drafttext{#1}}
+\def\basedon#1{\def\basedontext{#1}}
+\def\basedontext{}
+\def\showcopyright#1{\def\copyrighttext{$\copyright$~#1}}
+\def\copyrighttext{}
+\def\address#1{\def\addresstext{\vtop{\settabs 1\columns \tabalign #1\cr}}}
+\def\\{\cr\tabalign}
+\def\addresstext{}
+\def\today{%
+  \hbox{\number\day-\ifcase\month\or JAN\or FEB\or MAR\or APR\or MAY%
+    \or JUN\or JUL\or AUG\or SEP\or OCT\or NOV\or DEC\fi%
+    -\number\year}%
+}
+\edef\datetext{\today}
+\def\date#1{\def\datetext{#1}}
+%
+% We count acts and scenes for you.
+%
+\newcount\actcnt \actcnt=0
+\def\currentact{}
+\newcount\scenecnt \scenecnt=0
+\def\currentscene{}
+\def\stdhead{%
+  {\tenit \titletext\/}
+  {\tenrm \currentact\ifx\currentscene\empty \else,\currentscene\fi}
+}
+\def\stdfoot{{\tenrm \drafttext} \hss {\tenrm \datetext}}
+\def\stdxref{%
+  \ifx\currentact\emtpy \else%
+    \currentact, %
+  \fi%
+  \ifx\currentscene\empty \else%
+    \currentscene%
+  \fi
+}
+\def\Roman#1{\uppercase\expandafter{\romannumeral#1}}
+\def\roman#1{\romannumeral#1}
+%
+% Variants
+%
+\def\LR{}
+\def\twoside{\def\LR{R}}
+\def\jlbrooks{} % for compatibility with screenplay format
+\def\movie{}
+\def\TV{}
+\def\sitcom{}
+\def\manuscript{
+  \def\header{\stdhead}
+  \def\footer{}
+  \def\draftblock{}
+}
+\def\proof{
+  \ifx\drafttext\empty \draft{Working Draft}\fi
+  \def\header{\stdhead}
+  \def\footer{\stdfoot}
+}
+\def\shoot{  % here for compatibility with screenplay format
+  \manuscript
+}
+%
+% Breakdowns
+%
+\def\makecastlist{\immediate\write16{Cast lists no longer supported.}}
+\def\collectcast{\immediate\write16{Cast lists no longer supported.}}
+\def\makescenelist{\immediate\write16{Scene lists no longer supported.}}
+\def\collectscenes{\immediate\write16{Scene lists no longer supported.}}
+%
+% Make a titlepage
+%
+\def\maketitle{%
+  \ifx\LR\empty \else \def\LR{R} \fi
+  \hbox{}
+  \vskip 2in
+  \ifx\seriestext\empty \else 
+    \centerline{\rm \seriestext}
+    \vskip 3\baselineskip
+  \fi
+  \centerline{\twbf \titletext}
+  \vskip\baselineskip
+  \ifx\authortext\empty \else
+    \centerline{\rm \authortext}
+  \fi
+  \vskip\baselineskip
+  \centerline{\basedontext}
+  \vskip 3.5in
+  \line{\copyrighttext\hfill\addresstext}
+  \vskip 3\baselineskip
+  \draftblock
+  \pageno=0
+  {
+    \def\header{}
+    \def\footer{}
+    \eject
+  }
+  \pageno=1
+}
+\def\draftblock{%
+  \vskip 2in
+  \ifx\drafttext\empty \else
+    \rightline{\rm \drafttext}
+  \fi
+  \rightline{\rm \datetext}
+}
+%
+% Standard header for acts, tags, and teasers
+%
+\def\acthead#1{%
+  \acttail
+  \advance\actcnt by 1
+  \scenecnt=0
+  \edef\currentact{#1}
+  \mark{\header\noexpand\or\noexpand\or}
+  \vfill
+  \penalty-10000
+  \vskip\baselineskip
+  \centerline{\twbf ACT #1}
+  \vskip 2\baselineskip
+}
+%
+% Standard tail for acts, tags, and teasers
+%
+\def\acttail{%
+  \penalty1000
+  \ifx\currentact\empty \else
+    \vskip 2\baselineskip
+    \centerline{\twbf END OF ACT \currentact}
+  \fi
+}
+%
+% Regular script constructs:
+%
+\def\act{\acthead{\Roman\actcnt}}
+\def\teaser{\prolog}  % Here for compatibility with
+\def\tag{\epilog}     % screenplay format.
+\def\prolog{\acthead{Prolog}\actcnt=0}
+\def\epilog{\acthead{Epilog}}
+\def\prologue{\acthead{Prologue}\actcnt=0}
+\def\epilogue{\acthead{Epilogue}}
+\def\theend{
+  \def\acttailblock{
+    \vskip 2\baselineskip
+    \centerline{\bf THE END}
+  }
+}
+
+\def\scene#1{%
+  \advance\scenecnt by 1
+  \edef\currentscene{\roman\scenecnt}
+  \mark{\header\noexpand\or\noexpand\or}
+  {\it Scene \roman\scenecnt:  #1}\par
+  \penalty1000
+}
+
+\def\stage{%
+  \mark{\header\noexpand\or\noexpand\or}
+  \it
+}
+
+\def\trans#1{%
+  \mark{\header\noexpand\or\noexpand\or}
+  \penalty100
+  \rightline{\it #1}
+  \par
+  \penalty-100
+}
+
+\def\open#1{\trans{#1}}
+\def\close#1{\trans{#1}}
+
+\outer\def\dialog#1#2\par{%
+  \mark{\header\noexpand\or\noexpand\or}
+  \hangindent=5pc {\sc #1:} \rm
+  \mark{\header\noexpand\or {\sc #1:} {\it (cont'd)\/}%
+    \noexpand\or \rightline{\it (more)}}
+  #2\par
+}
+
+\def\paren#1{{\sl (#1)\/}}
+
+\def\leadin#1{%
+  #1~\ldots
+  \par
+  \penalty200
+  \def\leadtext{#1}
+}
+\def\pickup{\phantom{\leadtext}\llap{\ldots}~}
+
+\def\em#1{{\it #1\/}}
+\def\extra#1{#1}
+\def\introduce#1{#1}
+\def\sound#1{#1}  % Here for compatibility with screenplay format.
+\def\ldots{.\thinspace.\thinspace.}
+
+\def\cleanup{%
+  \par
+  \acttail
+  \mark{\header\noexpand\or\noexpand\or}
+  \vfill
+  \penalty-10000
+}
+\def\bye{
+  \cleanup
+  \end
+}
+%
+% Shortcuts:
+%   (Most of these make more sense in the screenplay format.)
+\def\beat{\paren{pause}}
+\def\cut{\trans{cut to}}
+\def\dissolve{\trans{dissolve to}}
+\def\ext#1{\scene{#1}}
+\def\fadein{\open{Lights up}}
+\def\fadeout{\close{Lights down}}
+\def\int#1{\scene{#1}}
+\def\os{\paren{off stage}}
+\def\shot#1\par{\par\stage #1}
+\let\tv=\TV
+\def\vo{\paren{voice over}}
+%
+% Defaults
+%
+\manuscript
-- 
cgit v1.2.3

