summaryrefslogtreecommitdiff
path: root/macros/scripttex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/scripttex
Initial commit
Diffstat (limited to 'macros/scripttex')
-rw-r--r--macros/scripttex/scrnplay.tex458
-rw-r--r--macros/scripttex/scrnwrit.bib48
-rw-r--r--macros/scripttex/stagplay.tex278
-rw-r--r--macros/scripttex/stdemo.tex132
-rw-r--r--macros/scripttex/stdoc.pdfbin0 -> 167079 bytes
-rw-r--r--macros/scripttex/stdoc.tex1191
6 files changed, 2107 insertions, 0 deletions
diff --git a/macros/scripttex/scrnplay.tex b/macros/scripttex/scrnplay.tex
new file mode 100644
index 0000000000..d9383f3910
--- /dev/null
+++ b/macros/scripttex/scrnplay.tex
@@ -0,0 +1,458 @@
+% ScriptTeX screenplay macros -- typed manuscript version
+% Copyright 1991-2002 Adrian McCarthy. See documentation for re-distribution info.
+\def\banner{ScriptTeX 1.04, 10-MAR-2002, typed screenplay format}%version
+\immediate\write16{\banner}
+%
+% These macros will produce a manuscript that looks as though it were typed.
+%
+% With the fixed pitch font and narrow dialog paragraphs, I've set the
+% penalties and such to be extremely tolerant of TeX's concept of badness.
+% These are probably more extreme than they have to be, but they can be
+% tuned later.
+%
+\font\mainfont=cmpica % Don Hosek's pica fonts. Use cmtt12 if not available.
+\font\emfont=cmpicati % Change to underlined \mainfont if not available.
+\mainfont
+\pretolerance=500 % acceptable "badness" before trying to hyphenate
+\tolerance=10000 % acceptable "badness" of a line
+\linepenalty=0 % penalty for each line in a paragraph
+\adjdemerits=0 % demerits for adjacent tight and loose line juxtapositions
+\finalhyphendemerits=0 % demerits for hyphenating the penultimate line
+\doublehyphendemerits=0 % demerits for hyphenating consecutive lines
+\hbadness=10000 % avoid useless underfull hbox messages
+%
+% General page layout:
+%
+\newdimen\lineskip \lineskip=12bp % 6 lines per inch
+\newdimen\charwid {\setbox0=\hbox{\mainfont M} \global\charwid=\wd0}
+\baselineskip=\lineskip % 2\lineskip for sitcoms
+\spaceskip=\charwid % for true typewriter spacing (redundant in cmtt)
+\xspaceskip=2\charwid % for two spaces after a sentence (redundant in cmtt)
+\voffset=-4\lineskip % 1 blank line from top
+\hoffset=0.5truein % extra room for hole punch
+\vsize=58\lineskip
+\hsize=60\charwid
+\parindent 0pt
+\parskip\baselineskip
+\splittopskip=\topskip
+\splitmaxdepth=\maxdepth
+\newdimen\rightmar
+\def\hotzone{8\charwid} % right margin hotzone
+\def\margins#1#2{%
+ \leftskip=#1
+ \rightmar=\hsize \advance\rightmar by -\leftskip \advance\rightmar by -#2
+ \rightskip=\rightmar plus \hotzone
+}
+%
+% My first output routine. Marks have six parts: act/scene header,
+% previous scene continued, dialog continued, \nukeline for (MORE),
+% continuing dialog (MORE), \nukeline for continuing scene, and
+% continuing scene. The seventh part is reserved for rev pages.
+% I realize that I use \splitbotmark before a \vsplit is ever done, but
+% this is correct. \topmark has the wrong value if I put back lines back
+% during the previous \output run.
+%
+\output={%
+ \dimen0=\ht255
+ \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 62\lineskip{%
+ \boxmaxdepth=\maxdepth%
+ \makeheadline%
+ \pagebody%
+ \makefootline%
+ }
+ \unvbox255 \penalty\outputpenalty % put back unused text
+ \advancepageno
+}
+\def\makeheadline{% Act/scene header and page number
+ \line{%
+ \mainfont%
+ \ifcase1\expandafter\relax\splitbotmark\fi%
+ \ifnum\pageno>0 \hss \folio\rlap{.}\fi}
+ \vskip\lineskip
+}
+\def\pagebody{%
+ \ifcase2\expandafter\relax\splitbotmark\fi % So-and-so (CONT'D) \nukeline
+ \ifcase3\expandafter\relax\botmark\fi % \nukeline for (MORE)
+ \ifcase5\expandafter\relax\botmark\fi % \nukelines for CONTINUED
+ {%
+ \vbadness=10000
+ \setbox0=\vsplit255 to \dimen0 % split to new height
+ \unvbox0 % put page into output
+ }%
+ \ifcase4\expandafter\relax\splitbotmark\fi % (MORE)
+ \ifcase6\expandafter\relax\splitbotmark\fi % CONTINUED
+ \kern-\dimen0 \vfil % kern keeps \vfil from being discarded
+}
+\def\makefootline{%
+ \vskip\lineskip
+ \line{\mainfont \footer}
+}
+\def\nukeline{%
+ \advance\dimen0 by -\lineskip
+}
+\def\mymark{{
+ \header \noexpand\or %
+ \contprevscene \noexpand\or %
+ \contprevdialog \noexpand\or %
+ \contdialoga \noexpand\or %
+ \contdialogb \noexpand\or %
+ \contscenea \noexpand\or %
+ \contsceneb %\noexpand\or
+% \contrev
+}}
+\def\contprevscene{}
+\def\contprevdialog{}
+\def\contdialoga{}
+\def\contdialogb{}
+\def\contscenea{}
+\def\contsceneb{}
+%\def\contrev{}
+%
+% Revision information
+%
+\def\titletext{Screenplay}
+\def\title#1{\def\titletext{#1}}
+\def\seriestext{}
+\def\series#1{\def\seriestext{#1}}
+\def\authortext{}
+\def\author#1{\def\authortext{#1}}
+\def\drafttext{}
+\def\draft#1{\def\drafttext{\uppercase{#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} % \edef for efficiency; it won't change during job
+\def\date#1{\def\datetext{#1}}
+%
+% We count acts and scenes for you.
+%
+\newcount\actcnt \actcnt=0
+\def\currentact{}
+\newcount\scenecnt \scenecnt=0
+\def\resetscenecnt{\scenecnt=0}
+\def\currentscene{}
+\def\stdhang{\leavevmode\llap{\number\scenecnt.\ }}
+\def\stdhead{\ifx\currentscene\empty \else \number\scenecnt.\fi}
+\def\stdfoot{%
+ \ifx\seriestext\empty \else
+ {\emfont \seriestext} \hss
+ \fi%
+ ``\titletext'' \hss \drafttext
+}
+\def\stdxref{%
+ \ifx\currentact\empty \else%
+ \currentact; %
+ \fi%
+ \ifx\currentscene\empty \else%
+ \currentscene%
+ \fi
+}
+\def\Roman#1{\uppercase\expandafter{\romannumeral#1}}
+\def\roman#1{\romannumeral#1}
+%
+% Keep track of last speaker.
+%
+\global\def\lastspeaker{}
+%
+% Variants
+%
+\def\LR{}
+\def\twoside{\def\LR{R}}
+\def\jlbrooks{
+ \hsize=65\charwid
+ \def\hotzone{3\charwid}
+ \hfuzz=5\charwid
+}
+\def\movie{
+ \def\resetscenecnt{}
+ \def\actheadblock##1{}
+ \def\acttailblock{}
+ \def\actpgbreak{}
+ \def\stdxref{}
+}
+\def\TV{}
+\def\sitcom{\lineskip=24bp}
+\def\manuscript{
+ \def\header{}
+ \def\footer{}
+ \def\hangscene{}
+ \def\draftblock{}
+ \def\stdxref{}
+ \def\sound##1{##1}
+}
+\def\proof{
+ \ifx\drafttext\empty \draft{Working Draft}\fi
+ \def\header{\stdhead}
+ \def\footer{\stdfoot}
+ \def\hangscene{\stdhang}
+ \def\sound##1{##1}
+}
+\def\shoot{
+ \ifx\drafttext\empty \draft{Shooting Script}\fi
+ \def\header{}
+ \def\footer{}
+ \def\hangscene{\stdhang}
+}
+%
+% Breakdowns (desupported)
+%
+\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 title page
+%
+\def\maketitle{%
+ \ifx\LR\empty \else \def\LR{R} \fi
+ \hbox{}
+ \vskip 2in
+ \ifx\seriestext\empty \else
+ \centerline{{\emfont \uppercase{\seriestext}}}
+ \vskip 3\baselineskip
+ \fi
+ \centerline{``\uppercase{\titletext}''}
+ \vskip\baselineskip
+ \ifx\authortext\empty \else
+ \centerline{\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{%
+ \ifx\drafttext\empty \else
+ \rightline{{\emfont \uppercase{\drafttext}}}
+ \fi
+ \rightline{\datetext}
+}
+%
+% Standard header for acts, tags, and teasers
+%
+\def\actpgbreak{\vfill \penalty-10000}
+
+\def\actheadblock#1{
+ \vskip 2\lineskip
+ \centerline{{\emfont \uppercase{#1}}}
+ \vskip 4\lineskip
+}
+\def\acttailblock{
+ \vskip 2\lineskip
+ {\edef\tempact{end of \currentact}
+ \centerline{{\emfont \uppercase\expandafter{\tempact}}}
+ }
+}
+\def\acthead#1{%
+ \acttail
+ \advance\actcnt by 1
+ \resetscenecnt
+ \edef\currentact{#1}
+ \def\contprevscene{}
+ \def\contprevdialog{}
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \def\contscenea{}
+ \def\contsceneb{}
+ \expandafter\mark\mymark
+ \actpgbreak
+ \parskip\baselineskip
+ \actheadblock{#1}
+ \immediate\write16{#1}
+}
+%
+% Standard tail for acts, tags, and teasers
+%
+\def\acttail{%
+ \penalty1000
+ \ifx\currentact\empty \else
+ \acttailblock
+ \def\currentact{}
+ \fi
+}
+%
+% Regular script constructs:
+%
+\def\act{\acthead{Act \ifcase\actcnt\or One\or Two\or Three\or Four\or
+ Five\or Six\or Seven\or Eight\or Nine\or Ten\or Eleven\or
+ Twelve\or Thirteen\or Fourteen\or Fifteen\or Sixteen\else\Roman\actcnt\fi}
+}
+\def\teaser{\acthead{Teaser}\actcnt=0}
+\def\tag{\acthead{Tag}}
+\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\lineskip
+ \centerline{{\emfont THE END}}
+ }
+}
+
+\def\scene#1{%
+ \penalty10000
+ \def\contprevscene{}
+ \def\contprevdialog{}
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \def\contscenea{}
+ \def\contsceneb{}
+ \expandafter\mark\mymark
+ \penalty-100
+ \advance\scenecnt by 1
+ \edef\currentscene{Scene \number\scenecnt}
+ \parskip\baselineskip
+ \margins{0in}{\hsize}
+ \leavevmode\hangscene\uppercase{#1}\par
+ \def\contprevscene{\hangscene CONTINUED}
+ \def\contscenea{\nukeline\nukeline}
+ \def\contsceneb{\vskip\lineskip \line{\hskip 40\charwid CONTINUED}}
+ \expandafter\mark\mymark
+ \global\def\lastspeaker{}
+ \penalty1000
+}
+\def\shot#1{\scene{#1}}
+
+\def\stage{%
+ \penalty10000
+ \def\contprevdialog{}
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \expandafter\mark\mymark
+ \penalty-100
+ \margins{0in}{\hsize}
+ \parskip\baselineskip
+}
+
+\def\trans#1{%
+ \def\contprevdialog{}
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \expandafter\mark\mymark
+ \parskip\baselineskip
+ \penalty100
+ {\margins{40\charwid}{20\charwid} \uppercase{#1} \par}
+ \penalty-100
+}
+
+\def\open#1{%
+ \def\contprevscene{}
+ \def\contprevdialog{}
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \def\contscenea{}
+ \def\contsceneb{}
+ \expandafter\mark\mymark
+ \parskip\baselineskip
+ {\margins{0in}{\hsize} \uppercase{#1} \par}
+}
+
+\def\close#1{\open{#1}}
+
+\def\dialog#1#2\par{%
+ \penalty10000 % make sure we don't break until after the clear mark
+ \def\contprevdialog{}
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \expandafter\mark\mymark
+ \penalty-100 % OK to break now
+ \parskip\lineskip
+ {\margins{24\charwid}{36\charwid} \uppercase{#1}%
+ \global\def\thisspeaker{#1}%
+ \ifx\thisspeaker\lastspeaker \ (CONT'D)\fi
+ \global\def\lastspeaker{#1}
+ \par}
+ \parskip 0pt
+ \def\contprevdialog{%
+ \nukeline%
+ \line{\hskip 24\charwid \uppercase{#1} (CONT'D)}%
+ }
+ \def\contdialoga{\nukeline}
+ \def\contdialogb{\line{\hskip 24\charwid (MORE)}}
+ \expandafter\mark\mymark
+ \margins{10\charwid}{35\charwid} % rightmar = \hsize-\leftskip-35\charwid
+ \penalty10000
+ #2\par
+ \stage
+}
+
+\def\paren#1#2\par{%
+ \par
+ \penalty10000
+ {%
+ \margins{17\charwid}{20\charwid} % rightmar = \hsize-\leftskip-20\charwid
+ (#1)%
+ \par%
+ }
+ \penalty10000
+ #2\par
+ \stage
+}
+
+\def\leadin#1{#1~\ldots\par\penalty200} % These are more exciting in the
+\def\pickup{\ldots~} % stageplay format.
+
+\def\em#1{{\emfont #1}}
+\def\extra#1{\uppercase\expandafter{#1}}
+\def\introduce#1{\uppercase\expandafter{#1}}
+\def\sound#1{\uppercase{#1}}
+\def\ldots{.~.~.} % Formal typing version. OK to use "..."
+
+\def\cleanup{%
+ \par
+ \acttail
+ \def\contdialoga{}
+ \def\contdialogb{}
+ \def\contscenea{}
+ \def\contsceneb{}
+ \expandafter\mark\mymark
+ \vfill
+ \penalty-10000
+}
+\def\bye{%
+ \cleanup
+ \end
+}
+%
+% Shortcuts:
+%
+\def\beat{\paren{beat}}
+\def\cut{\trans{cut to}}
+\let\dialogue=\dialog
+\def\dissolve{\trans{dissolve to}}
+\def\ext#1{\scene{ext.\ #1}}
+\def\fadein{\open{fade in}}
+\def\fadeout{\close{fade out}}
+\def\int#1{\scene{int.\ #1}}
+\def\os{\paren{off screen}}
+\let\shot=\scene
+\let\tv=\TV
+\def\vo{\paren{voice over}}
+%
+% Defaults
+%
+\TV\proof
diff --git a/macros/scripttex/scrnwrit.bib b/macros/scripttex/scrnwrit.bib
new file mode 100644
index 0000000000..966c9e3b2b
--- /dev/null
+++ b/macros/scripttex/scrnwrit.bib
@@ -0,0 +1,48 @@
+@book{jlb:bn,
+ author = "James L. Brooks",
+ title = "Broadcast News",
+ publisher = {Vintage Books},
+ address = {New York},
+ year = 1988
+}
+
+@book{sf:sp,
+ author = "Syd Field",
+ title = "Screenplay: {T}he Foundations of Screenwriting",
+ publisher = {Dell},
+ address = {New York},
+ year = 1979
+}
+
+@book{wg:ast,
+ author = "William Goldman",
+ title = "Adventures in the Screen Trade",
+ publisher = {Warner Books},
+ address = {New York},
+ year = 1983
+}
+
+@book{mh:wsts,
+ author = "Michael Hauge",
+ title = "Writing Screenplays that Sell",
+ publisher = {HarperCollins Publishers},
+ address = {New York},
+ year = 1991
+}
+
+@book{cn:sh,
+ author = "Constance Nash and Virginia Oakey",
+ title = "The Screenwriter's Handbook",
+ publisher = {Harper \& Row},
+ address = {New York},
+ year = 1978
+}
+
+@book{rw:sacb,
+ author = "Richard Walter",
+ title = "Screenwriting: {T}he Art, Craft and Business of Film and Television
+ Writing",
+ publisher = {Plume},
+ address = {New York},
+ year = 1988
+}
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
diff --git a/macros/scripttex/stdemo.tex b/macros/scripttex/stdemo.tex
new file mode 100644
index 0000000000..7b313049e8
--- /dev/null
+++ b/macros/scripttex/stdemo.tex
@@ -0,0 +1,132 @@
+% Demo file for using ScriptTex 1.03%version
+
+% This isn't a particularly exciting script, but it is demonstrative of what
+% you can do with ScriptTex.
+
+\input screenplay.tex
+
+% optional \twoside
+% optional \jlbrooks
+
+\TV % or \movie (\TV is default)
+\proof % or \manuscript or \shoot (\proof is default)
+
+\series{} % Optional
+\title{Demonstration Title} % used on title page and in \proof footlines
+\author{Adrian C. McCarthy} % used on title page and in \proof footlines
+\basedon{Adapted from the novel \em{For Example}}
+\draft{First draft} % used only if \proof is in force
+\date{25-OCT-1991} % defaults to \today
+\showcopyright{\number\year}
+\address{1234 Main Street \\
+ Anytown, MO 54321 \\
+ (323) 555-1234}
+
+\maketitle % creates a title page
+
+%%%%
+%%%% Main script begins here.
+%%%% For the first part of this script, I won't take advantage of any synonyms
+%%%% or shortcuts.
+%%%%
+
+\teaser % begins a teaser act
+
+\open{fade in}
+
+\scene{ext.\ forest~--- morning}
+
+\stage The sun is just barely climbing over the tops of the pine trees.
+We hear the \sound{roar} of a chainsaw.
+
+\dialog{Lumberjack}
+\paren{off screen}
+Timber!
+
+\stage One of the tall pines begins to give, and then, with a loud
+\sound{crash}, it falls.
+
+\trans{cut to}
+
+\scene{ext.\ road nearby}
+
+\stage A stationwagon approaches, parks, and \introduce{Bob Bush} climbs out.
+He's wearing boots, a brown suit, and a hardhat. A \extra{Foreman} talks with
+him momentarily.
+
+\introduce{Sam Savvy} approaches, and the foreman walks away in disgust.
+
+\dialog{Sam} \paren{to Bob} What's his problem?
+
+\dialog{Bob} Don't pay any attention to him.
+
+%%%% A weak example of \leadin and \pickup:
+
+\dialog{Sam} \leadin{You're gonna have to cut back}
+
+\dialog{Bob} \pickup cut back on our quotas?
+
+\dialog{Sam} We're under a lot of pressure from the lobbyists.
+
+\dialog{Bob} You EPA guys have no backbone.
+
+%%%% Let's make this long enough to demonstrate the page break handling of
+%%%% ScriptTex.
+
+\dialog{Sam} No backbone? No backbone! \paren{fuming} Well you've got some
+nerve. Every year you cut down thousands of trees that take hundreds of years
+to grow. Sure, for each you kill, you plant a new one, but at the current
+rate, there will be a shortage of trees while we wait for these saplings to
+grow. On top of that, many of these great trees are wasted on low-grade pulp
+for cardboard and paper products. If you would supply all of the necessary
+pulp from the low quality trees, that would greatly reduce the problem. Now
+you say that we EPA-types have no backbone! We've got the coconuts to stand up
+and say, ``Wait a minute; we're destroying the planet. Let's stop and find a
+better way.'' You don't have the guts to try something new, something that may
+even make you more money in the long run than cowering away from your social
+responsibilities.
+
+\close{fade out}
+
+%%%%
+%%%% The next chunk will show off some of the synonyms and shortcuts.
+%%%%
+
+\act % ends the teaser and starts the first act.
+
+\fadein
+
+\scene{Bob's breakfast nook~--- Sunday morning}
+
+The sports page is open and on the card table; the rest of the paper is
+stacked off to the side, unread. Bob's in some grungy old sweats, playing
+solitaire as he reads.
+
+The phone \sound{rings}.
+
+Bob answers.
+
+\def\Bob{\dialog{Bob}}
+
+\Bob Hello? \beat Yeah. OK, I'm on my way.
+
+He hangs up, and drops the rest of the cards onto the table. He slips off the
+sweats, and he's wearing his brown suit underneath. He checks his reflection
+in the side of the toaster, then heads out the door.
+
+\dissolve
+
+\scene{Bob's car}
+
+Bob is driving way too fast. To keep from mumbling to himself, he
+turns on the radio.
+
+\dialog{Announcer} \vo There's a tie-up on the Logjam ramp near the interstate.
+
+\Bob Damn!
+
+\fadeout
+\theend
+
+%%%% Always end with \bye.
+\bye % cleans up and exits
diff --git a/macros/scripttex/stdoc.pdf b/macros/scripttex/stdoc.pdf
new file mode 100644
index 0000000000..97c9e2183f
--- /dev/null
+++ b/macros/scripttex/stdoc.pdf
Binary files differ
diff --git a/macros/scripttex/stdoc.tex b/macros/scripttex/stdoc.tex
new file mode 100644
index 0000000000..f8acfa5445
--- /dev/null
+++ b/macros/scripttex/stdoc.tex
@@ -0,0 +1,1191 @@
+% PLEASE KEEP THE VERSION NUMBER UP TO DATE.
+
+\documentclass[makeidx]{report}
+
+%
+% Special characters
+%
+\renewcommand{\{}{{\tt\char`\{}} % a typewriter left brace
+\renewcommand{\}}{{\tt\char`\}}} % a typewriter right brace
+\newcommand{\tie}{{\tt\char`\~}} % a typewriter tilde
+\newcommand{\bs}{\char`\\} % a backslash
+\newcommand{\tm}{\mbox{$^{\rm TM}$}\null} % trademark
+
+%
+% Indexing
+%
+\newcommand{\pindex}[1]{\protect\index{#1}}
+\newcommand{\idx}[1]{#1\pindex{#1}}
+%\typein{Type `\protect\makeindex' to create a new \jobname.idx file.}
+\makeindex
+
+%
+% Products with special typesetting requirements
+%
+\newcommand{\ST}{{\tt Script}\-\TeX\null} %version
+\newcommand{\vernum}{1.04} %version
+\newcommand{\version}{\ST~\vernum} %version
+\newcommand{\BibTeX}{{\sc Bib}\TeX\null}
+\newcommand{\INITEX}{{\tt INITEX\@}}
+
+%
+% Mark-up commands
+% (Versions ending in x also create index entries.)
+%
+\renewcommand{\P}[1]{{\em #1\/}}
+
+\newcommand{\book}[1]{{\sl #1\/}}
+\newcommand{\bookx}[1]{{\sl #1\/}\pindex{#1@{\sl #1}}}
+
+\newcommand{\cs}[1]{{\tt\bs#1}}
+\newcommand{\csx}[1]{{\tt\bs#1}\pindex{#1@{\tt\protect\bs #1}}}
+
+\newcommand{\filename}[1]{{\tt #1}}
+\newcommand{\filenamex}[1]{{\tt #1}\pindex{#1@{\tt #1}}}
+
+\newcommand{\film}[1]{{\sl #1\/}}
+\newcommand{\filmx}[1]{{\sl #1\/}\pindex{#1@{\sl #1}}}
+
+\newcommand{\person}[2]{\mbox{#1} #2}
+\newcommand{\personx}[2]{\mbox{#1} #2\pindex{#2, #1}}
+
+\newenvironment{digression}{\begingroup \small}{\endgroup}
+
+%
+% Things like file names and e-mail addresses tend to be too long for good
+% line breaks. We don't want to hyphenate them, so we use \. to allow
+% line breaks after the periods.
+%
+\renewcommand{\.}{\discretionary{.}{}{.}}
+\hyphenation{man-u-script}
+
+
+%
+% Title information
+%
+\title{\ST: \\ A \TeX\ Macro Package for \\ Screenplays and Scripts}
+\author{\personx{Adrian}{McCarthy}}
+\date{\copyright\ 1992-2002}
+
+\begin{document}
+
+\sloppy % It's better than lines that are too long.
+
+\maketitle
+\tableofcontents
+
+\chapter{Preface}
+
+The purpose of this document is to describe
+\version,\index{ScriptTeX@\ST}\index{ScriptTeX@\ST!version} a
+package of \TeX\index{TeX@\TeX} macros for formatting scripts and
+screenplays. The tone here is informal, but this is intended to be
+complete documentation. The first part of this document is aimed at
+those who wish to use the macros as they are, and the second is for
+those who wish to understand the details of how the macros operate.
+
+The purpose of this document is {\em not\/} to be an all-encompassing
+how-to-write-scripts tutorial; the bibliography at the end of this document
+should point you in the right direction if that's what you're looking for. On
+the other hand, this document does have some stylistic details presented as a
+justification of why \ST\ behaves certain ways when a ``better'' way may seem
+to exist.
+
+\begin{digression}
+\index{document conventions|(}
+
+\filenamex{Typewriter text} is used to indicate file names, macro
+names, user-typed input, and computer output. \filmx{Slanted text} is
+used for the names of television series, movies, and books. In this
+document, punctuation is always placed outside quotation marks unless
+it is to be considered part of the ``\idx{quoted material}''. My bias
+for the modern spellings of {\em dialog,\/}\index{dialog vs
+dialogue@{\em dialog\/} vs.\ {\em dialogue}} {\em
+prolog,\/}\index{prolog vs prologue@{\em prolog\/} vs.\ {\em
+prologue}} and {\em epilog\/}\index{epilog vs epilogue@{\em epilog\/}
+vs.\ {\em epilogue}} are evident in this document, but the macros
+allow the traditional {\em -gue\/}~spellings\index{gue spellings@{\em
+-gue\/} spellings}, too.
+
+\index{document conventions|)}
+\end{digression}
+
+\chapter{Overview}
+
+I would like to begin this overview by stating the motivation and goals of the
+package. If you find yourself thinking, ``Why in the world did he design
+\ST\ this way?'', please read this section again.
+
+In some regards, a script is a script is a script. All scripts have acts,
+scenes, stage directions, and dialog. It would be nice, therefore, to have a
+consistent set of \TeX\ macros for scripts. The format of a script, however,
+varies depending upon the target media~--- stage, screen, published. Yet, the
+basic elements do not change. The first release of \ST\ supported
+manuscript-style screenplays; this version has support for simple stageplay
+format.
+
+\index{ScriptTex@\ST!design goals|(}
+And therefore my design goals for \ST\ were:
+
+\begin{itemize}
+
+\item
+There should be a simple set of macros which can format to the strict
+manuscript requirements expected by agents and producers.
+
+\item
+The macros should be general enough to support other sorts script formats
+without changing the source file. Other script formats considered included:
+shooting scripts, stageplays, and published screenplays.
+
+\item
+In the same vain as \LaTeX, the macros should be geared toward describing the
+chunks of text rather than formatting them, so \ST\ macros like \cs{scene},
+\cs{dialog}, and \cs{stage} are roughly analogous to \LaTeX's
+\cs{chapter}, \cs{section}, and \cs{subsection} macros.
+
+\end{itemize}
+
+Since I am also a programmer with an interest in tools to help writers, I added
+the requirement that the files should be easy to parse, so that other
+script-specific tools could be designed to read them.
+
+With these goals in mind, \ST\ began to take shape. Rather than starting from
+scratch, \ST\ relies on several facilities of plain \TeX\@. A later version
+may become a \TeX\ format in its own right.
+
+\index{ScriptTeX@\ST!design goals|)}
+
+\chapter{Writing a script with \ST}
+
+The macros for preparing a script with \TeX\ are now presented in what the
+author hopes is a logical order. To best understand these, it is recommended
+that you read along with a copy of the \filenamex{stdemo.tex} source and a
+formatted copy of the \idx{demo file}.
+
+First of all, you need the command to include the \ST\ macro definitions.
+Assuming you want the standard screenplay definitions, put ``\csx{input}
+\filenamex{scrnplay.tex}'' at the beginning of your file.\index{including
+macro definitions} Stageplays should begin with ``\csx{input}
+\filenamex{stagplay.tex}''. To format your file, refer to your local system
+guides for how to feed your file to \TeX\@. You may have to make a local copy
+of \filenamex{scrnplay.tex}.
+
+\section{The basic components}
+
+In accordance with the stated goals, there are only a few basic control
+sequences, and they are easy to master.
+
+To begin a new act, type~--- you guessed it~---``\csx{act}''. This control
+sequence does not require any parameters. The exact action of this macro will
+depend on the setting of the variations, but in general it finishes up the
+previous act, increments the act number, and begins the next act. Depending
+upon the combination of variants you may have selected, the scene counter may
+be reset to zero.
+
+After starting a new act, you usually have some opening
+transition\index{transitions!opening} like ``fade in''. To specify an
+opening transition, use the sequence:
+``\csx{open}\{\P{transition-type}\}'', where \P{transition-type} is a
+short phrase like ``{\tt fade in}''. Similarly, closing
+transitions\index{transitions!closing} are specified like
+``\csx{close}\{{\tt fade out}\}''. Normal transitions between
+scenes\index{transitions!between scenes} are indicated by
+``\csx{trans}\{\P{transition-type}\}''. Whether or not punctuation
+belongs at the end of the \P{transition-type} is open for
+debate.\index{transitions!punctuation} Many authors use ``Fade in:'',
+``Cut to:'', and ``Final fade out.'' while others omit the punctuation
+completely. Both forms are acceptable, but be consistent throughout
+the script.
+
+Following the transition is the new scene, headed up by the \idx{scene line}.
+An example should suffice: ``{\tt \csx{scene}\{int.\bs\ subway train --
+night\}}''. The \idx{backslash} after the abbreviation ``{\tt int.}''
+(\idx{interior}) lets \TeX\ know that the period shouldn't be followed by two
+spaces since it wasn't the end of a sentence. If you forget it, it isn't a big
+deal. If you remember it sometimes and not others, you may wish to use the
+\csx{int} and \csx{ext}\index{exterior} shortcut control sequences listed in
+Table~\ref{scstbl}. The \idx{scene number} will automatically be incremented.
+
+If you're still with me, we've made it to the heart of the matter: \idx{stage
+directions} and \idx{dialog}. Normal paragraphs (except those marked with the
+\csx{dialog} macro discussed below) are considered to be stage
+directions automatically. If you wish to explicitly
+indicate a paragraph as stage directions, you may type ``\csx{stage}''. (In a
+previous unreleased version, the \csx{stage} macro was required.)
+
+Dialog\index{dialog} begins with \csx{dialog}\{\P{character}\}, where
+\P{character} is the person speaking. Subsequent text is then treated as
+dialog until the next paragraph (indicated by a \csx{par}, \cs{stage}, another
+\cs{dialog}, or a blank line in the input file).
+
+With a few more minor macros, you should be off and running.
+
+Within stage directions, you should use: \csx{sound}\{\P{effect}\} to indicate
+sound effects; \csx{introduce}\{\P{character}\} to mark the first time a
+speaking character appears; and \csx{extra}\{\P{person}\} to mark the first
+appearance of a non-speaking character (i.e., an extra). Some combinations of
+script type and variation in use will cause these special pieces of text to be
+emphasized.
+
+In dialog, you may occasionally need to use \idx{parenthetical directions},
+those little clues to the performers as to the emotion and gestures which
+should accompany their \idx{dialog}. The syntax is: \csx{paren}\{\P{clue}\}.
+Only use this macro in the main text of a dialog block; do not use it as part
+of the text of the \P{character} parameter to the \csx{dialog} macro or
+anywhere else.
+
+In dialog and stage directions, you may need to use \idx{emphasis}.
+The syntax is: \csx{em}\{\P{words}\}, and it may be used anywhere
+normal text is expected. Note that this is not identical to the
+\LaTeX\index{LaTeX@\LaTeX} syntax for emphasizing text. In the
+typewritten manuscript, emphasis is shown by underlining the text. In typeset
+documents, emphasis is indicated by a change in font.
+
+There is one more macro you'll need to know. Put ``\csx{bye}''
+at the \idx{end of the source file}. This will make sure the final page is
+ejected.
+
+\section{Slightly advanced components}
+
+There are a few peculiar situations, which, although they occur rarely,
+require special attention.
+
+\index{ellipses|(}
+
+For better or for worse, ellipses are used often in dialog. Experienced
+users of \TeX\index{TeX@\TeX} and \LaTeX\index{LaTeX@\LaTeX} know that ellipses
+require special spacing to look right. \ST\ provides \csx{ldots} as an
+abbreviation for a properly spaced three-dot ellipsis. Four dot ellipses don't
+seem to be used in screenplays, despite what your English teachers may say. In
+the typewriter style of a screenplay manuscript, you can get away with just
+typing ``{\tt ...}'', but it isn't recommended. If you ever do other sorts of
+scripts with \ST\ or other sorts of writing with \LaTeX, the \csx{ldots} habit
+is a good one to have.
+
+Ellipses present another minor problem: poor \idx{line breaks}. If a
+character's words trail off into an ellipsis, it's generally a good
+idea to use a tie\index{tie@tie (\protect\tie)} between his/her last utterance
+and the dots of doom. (For those of you new to this, a tie is treated
+just like a space, except \TeX\ won't break a line there. To type a
+tie, use the tilde\index{tilde@tilde (\protect\tie)|see{tie}} character like
+this: ``{\tt I'll be back\tie\csx{ldots}}''.) As with using
+\csx{ldots}, you can probably get away without following any of these
+ellipsis rules, especially in a typewriter-style manuscript, but it's
+a nice touch.
+
+In screenplays, when one character jumps in and finishes a line for
+another character (think of Dave and Maddie in \filmx{Moonlighting}),
+ellipses are used. You may have a strong temptation to use
+dashes,\index{dash!misuse of} but the authorities say that
+\idx{ellipses} are the appropriate tool. If you have such a
+situation, use ``\csx{leadin}\{\P{last-words}\}'' around the first
+character's last few words and \csx{pickup} before the second
+character's first words. See the example file.
+
+\index{ellipses|)}
+
+Admittedly, the \csx{leadin} and \csx{pickup} macros are pretty boring in
+screenplays. In a stageplay format, the effect is typographically more
+interesting (although it could still use work), thus this pair of macros is
+provided to help you when its time to adapt\index{adaptation} your Tony
+Award-winning stageplay to film.
+
+\section{Variants}
+
+\index{variants|(}
+
+Within the general category of screenplays, there are a few variations which
+are appropriate to specific types of scripts.
+
+Teleplays generally show the act breaks and numbers since that's where they
+slip the \idx{commercials} in. Although motion picture scripts are built
+around acts too, the act breaks are not explicitly shown. \ST\ provides the
+variations \csx{TV}\index{variant!TV} and \csx{movie}\index{variant!movie}
+which can be placed at the top of the source file. Besides suppressing the act
+breaks, \csx{movie} also prevents the \idx{scene number} from
+being reset at the beginning of each act. In either case, it is recommended
+that you use the \csx{act} macro (and its cousins which are described later in
+this section).
+
+As previously stated, situation comedies\index{situation comedy} are
+double-spaced. If your script is a situation comedy put
+``\csx{sitcom}''\index{variant!situation comedy} near the top of your
+file. This macro also implies \csx{TV}.
+
+A script may also be printed various ways depending upon its progress
+through the life-cycle of a production. If you want to print a copy
+just for \idx{proof-reading}, use \csx{proof}.\index{variant!proof}
+This macro will put the \idx{date}, \idx{draft}, and \idx{title} on a
+\idx{footline} on each page. On the other hand, if this is the copy
+you plan to send out into the real world, use
+\csx{manuscript}\index{variant!manuscript} which turns off the
+footlines and \idx{scene number}s. If you're fortunate enough to have
+your screenplay produced {\em and\/} you get to maintain control of
+the \idx{shooting script}, use \csx{shoot}\index{variant!shooting
+script} which turns on the display of \idx{scene number}s.
+
+\index{margins|(}
+
+Manuscripts are generally typed only on one side of the page and are
+bound\index{binding manuscripts} with one or two brass brads through
+holes punched in the paper. \ST\ makes the left margin wider to
+accommodate the holes and brads. If, however, you are printing your
+draft copies on both sides of the paper, use
+\csx{twoside}\index{variant!two-sided}, and \ST\ will alternate which
+margin is widened.
+
+\index{margins|)}
+
+One final variant that effects the overall output is the previously mentioned
+\csx{jlbrooks}\index{variant!J.L. Brooks} macro which causes \ST\ to perform
+``creative margin release''. It is not recommended for use on submitted
+manuscripts, but if you want to save a few sheets when printing drafts, this
+might help.
+
+By the way, the default\index{defaults} for the variants\index{variant!default}
+above are \csx{TV} and \csx{proof}.
+
+\index{variants|)}
+
+\section{Mutant cousins}
+
+\index{mutant cousins|(}
+
+A few of the basic controls discussed in a previous section have mutant cousins
+with specific applications.
+
+Television shows often begin with a mini act called a \idx{teaser}, a three- or
+four-minute audience grabber shown before the first
+commercial.\index{commercials} Similarly, some shows have a couple pages after
+the last act called a \idx{tag} where everything is neatly wrapped up or the
+episode's running gag is finally put to death. These constructs are identical
+to acts except for the name. \ST\ provides \csx{teaser}\index{mutant
+cousins!teaser} and \csx{tag}\index{mutant cousins!tag} which can be
+used for these situations in place of \csx{act}.
+
+\ST\ also provides \csx{prolog}\index{mutant cousins!prolog} and
+\csx{epilog}\index{mutant cousins!epilog} which might be more
+appropriate for a miniseries. These two also make the transition between
+stageplays and screenplays require less thought.\index{adaptation}
+
+You might want to consider \csx{open}\index{mutant cousins!opening} and
+\csx{close}\index{mutant cousins!closing} to be mutant cousins of \csx{trans};
+you wouldn't be the only one.
+
+\begin{digression}
+
+If you absolutely have to have your acts named\index{act names}
+differently than the automatic names like ``Act One'', ``Teaser'', and ``Tag'',
+then you can call \csx{acthead}\{\P{your-title}\}. Be aware that this routine
+will increment the internal \idx{act counter}.
+
+\end{digression}
+
+If after the last act, you would prefer to the line ``\idx{The End}'' to the
+standard ``End of Act \P{n}'', you can use \csx{theend}\index{mutant
+cousins!ending} before the \csx{bye}.
+
+\index{mutant cousins|)}
+
+\section{Shortcuts and synonyms}
+
+\index{shortcuts|(}
+\index{synonyms|(}
+
+The macros presented to this point are general enough to handle almost any
+screenplay manuscript. As a result, certain sequences are so common that it
+would be convenient to have abbreviations. The source file may also be
+rendered more readable by the appropriate use of synonyms. These shortcuts and
+synonyms don't really require any sort of explanation, so I'll just list them
+in Table~\ref{scstbl}.
+
+\begin{table}
+\begin{center}
+\begin{tabular}{ll}
+\hline
+\csx{beat} & \csx{paren}\{{\tt beat}\} \\
+\csx{cut} & \csx{trans}\{{\tt cut to}\} \\
+\csx{dialogue}\{\P{character}\} & \csx{dialog}\{\P{character}\} \\
+\csx{dissolve} & \csx{trans}\{{\tt dissolve to}\} \\
+\csx{epilogue} & \csx{epilog}$^*$ \\
+\csx{ext}\{\P{scene}\} & \csx{scene}\{{\tt ext.\bs\ }\P{scene}\} \\
+\csx{fadein} & \csx{open}\{{\tt fade in}\} \\
+\csx{fadeout} & \csx{open}\{{\tt fade out}\} \\
+\csx{int}\{\P{scene}\} & \csx{scene}\{{\tt int.\bs\ }\P{scene}\} \\
+\csx{os} & \csx{paren}\{off screen\}$^\dagger$ \\
+\csx{prologue} & \csx{prolog}$^*$ \\
+\csx{shot}\{\P{subject}\} & \csx{scene}\{\P{subject}\} \\
+\csx{tv} & \csx{TV} \\
+\csx{vo} & \csx{paren}\{{\tt voice over\}} \\
+\hline
+\multicolumn{2}{l}{$^*$~These use the {\em -gue\/} spelling in the act name.
+ \pindex{gue spellings@{\em -gue\/} spellings}}\\
+\multicolumn{2}{l}{$^\dagger$~Actually becomes \csx{paren}\{{\tt off stage}\}
+in stageplay formats.}\\
+\end{tabular}
+\end{center}
+\caption{Predefined shortcuts and synonyms.}
+\label{scstbl}
+\end{table}
+
+\index{shortcuts|)}
+\index{synonyms|)}
+
+\section{Title pages\index{title page}}
+
+\ST\ can also produce pretty title pages, just tell \ST\ the basic information:
+your script's title and your name. Put ``\csx{title}\{\P{script-title}\}'' and
+``\csx{author}\{\P{author's-name}\}'' at the top of your source file. The
+macro \csx{maketitle} will then produce a title page.
+
+There is a little more to the title page story, however. If you are writing a
+spec script\index{spec(ulation) script} or an episode of a \idx{television
+series}, you should also indicate the name of the series with the
+\csx{series}\{\P{series-name}\} construct.
+
+To show a copyright notice on the titlepage, specify
+\csx{showcopyright}\{\P{year}\} before the \cs{maketitle} macro. To keep your
+old scripts looking up to date, you might want to use \cs{number}\cs{year} for
+the \P{year} parameter.
+
+Your address and/or phone number (or that of your agent) can be included by
+using \csx{address}\{\P{address}\}. Separate the lines of the \P{address}
+with double backslashes (\csx{\bs}).
+
+Despite what agents want to see, I like to have \idx{draft} numbers and
+\idx{date}s on my drafts. You can include this information by using
+``\csx{draft}\{\P{draft-number}\}'' and ``\csx{date}\{\P{draft-date}\}'' before
+the \csx{maketitle} command. If the selected variant is
+\csx{proof},\index{variant!proof} the draft and date information will be
+printed. If, however, the \csx{manuscript} variant\index{variant!manuscript}
+is in force, the draft and date information is ignored. If you don't supply
+the date, \ST\ will assume \csx{today} which expands to the date that you are
+running \TeX\@.
+
+\chapter{Breakdowns}
+
+\index{breakdowns|(}
+
+The original release of \ST\ included the ability to produce cast lists and
+scene breakdowns. They looked terrible, weren't useful, and generally caused
+all sorts of problems. Therefore, the breakdown features have been removed from
+\ST\ and will probably not return.
+
+I apologize if you came to rely on the breakdown features. The user-level
+macros supporting the breakdowns will now cause a warning message to be
+displayed, but should not otherwise hinder the formatting of your scripts.
+
+\index{breakdowns|)}
+
+\chapter{Hints}
+
+If you are having problems with \ST, these \idx{hints} might be helpful.
+
+Many of \ST\ macros only work properly when used in the right context. Strange
+output is often due to using a macro in weird place. If you are familiar with
+\LaTeX, it may be sufficient to say that variants, revision information, and
+the \cs{make}\ldots macros are analogous to \LaTeX's preamble except that \ST\
+doesn't make the distinction between the preamble and the body explicit. Here
+are the rules of what can go where:
+
+\begin{quote}
+\begin{itemize}
+
+\item You must use ``\csx{input} \filenamex{scrnplay.tex}''\index{including
+macro definitions} or ``\csx{input} \filenamex{stagplay.tex}''\index{including
+macro definitions} before any \ST\ macros.
+
+\item If \TeX\ complains that the font \idx{cmpica} or \idx{cmpicai} cannot be
+found, you will need to edit \filename{scrnplay.tex} to change the
+definitions of {\tt mainfont} and {\tt emfont} to {\tt cmtt}.\index{cmtt}
+
+\item Variants\index{variants!position of} (such as \csx{twoside}, \csx{proof},
+and \csx{TV}) should come next.
+
+\item Revision information\index{draft}\index{date}\index{title}\index{author}
+must come before \csx{maketitle}.
+
+\item Finally comes the main body of the script formed with the basic
+components.
+
+\item Use \csx{paren} {\em only\/} in dialog.
+
+\item The macro \csx{cleanup} should only come after all of the body of the
+script. \csx{cleanup} is optional since \csx{bye} will take care of it.
+
+\item Nothing should come after \csx{bye}.
+
+\end{itemize}
+\end{quote}
+
+\chapter{How the macros work}
+
+At least some of the techniques used in \ST\ should be documented beyond the
+few cryptic sentences in the source. (In fact, once it is well-documented
+here, the source should probably be stripped of comments to speed up the
+\csx{input} process.) These sections assume a good familiarity with \TeX\@.
+
+\section{Emulating a typist}
+
+One of the trickiest things I've had to do with \TeX\ is make it emulate a
+typewriter. Here are the techniques used to do this in \ST.
+
+Previous versions of \ST\ used \idx{Computer Modern Typewriter Type}
+(\idx{cmtt})\index{typewriter text} by default for typed screenplay formats.
+This version, however, uses a pica font called \idx{cmpica} and an underlined
+cousin called \idx{cmpicati} created by \personx{Don}{Hosek}. The advantages
+these fonts is that they automatically transform \TeX\ typing conventions
+like ``{\tt ``---''}'' into ``{\tt "--"}'' and they provide better underlining.
+
+\begin{digression}
+If you do not have these fonts available at your site, you can edit
+\filename{scrnplay.tex} to change the definition of {\tt mainfont} and {\tt
+emfont} to cmtt, but I encourage you to try to get Don Hosek's fonts. They
+are available from most \TeX\ distributions.
+\end{digression}
+
+The typewriter fonts are fixed pitch, and the inter-word spaces can't stretch
+or shrink. In case the user changes to a different font, \ST\ uses
+\csx{spaceskip} and \csx{xspaceskip} to make sure that the spaces are fixed
+width. Everything is scaled in terms of lines and columns by defining
+\csx{lineskip} and \csx{charwid} once the font is selected. \csx{lineskip} is
+set to 12 big points to make sure that there are 6 \idx{lines per inch}.
+
+The changing margins of screenplay format are achieved by adjusting
+\csx{leftskip} and \csx{rightskip} appropriately. \csx{rightskip} also takes
+into account the ragged right margin by having a stretchability of 8 character
+widths. (The ``hot zone'' on a typewriter is generally 8 characters wide, so
+lines are usually broken between the margin bell, which signifies the beginning
+of the hot zone, and the actual right margin.) To emulate a typist even more
+exactly, setting \csx{hfuzz} to some slightly positive multiple of character
+widths might be appropriate. To stretch things out when the \csx{jlbrooks}
+variant is in effect, \ST\ does increase \csx{hfuzz} (as well as stretch all of
+the line lengths).
+
+Hyphenation\index{hyphenation} is a fact of life in the realm of
+screenplay manuscripts, as are ``club\index{club line}'' and
+``widow\index{widow line}'' lines. Additionally, we want \TeX\ to
+just fill each line as much as possible without worrying too much
+about the aesthetic look of the entire paragraph. To achieve this,
+\ST\ sets \TeX's battery of penalty and demerit factors to zero and
+increases \csx{pretolerance} so that we're more likely to hyphenate
+than have a really short line.
+
+The result is pretty good (apologies to Knuth). Anyone but a typist who was
+looking for something wrong would not be able to detect weirdness, and the
+aforementioned typist would probably remark that the output is too consistent.
+
+\section{Mark madness}
+
+\index{marks|(}
+
+Marks are the biggest nightmare in \ST. Each mark has seven parts used
+and an eighth part which is reserved for a feature whose implementation is
+still being worked out. Each part of the mark is a token list of stuff that
+needs to be done in certain situations. The parts are separated by \csx{or}s so
+that the $n\/$th part can be selected with \csx{ifcase}$n$. The parts are:
+
+\begin{quote}
+\begin{itemize}
+
+\item[0.] The text to generate the act/scene header. In the
+\filenamex{scrnplay.tex} format, it is the hanging \idx{scene number}
+followed by a period and a space. (Some variants don't use this part at all.)
+
+\item[1.] The text ``(CONTINUED)\index{continued@(CONTINUED)}'' if this scene
+is continued from the previous page.
+
+\item[2.] The text ``\P{character} (CONT'D)\index{contd@(CONT'D)}'' if the
+current dialog by \P{character} may be continued onto the next page.
+
+\item[3.] A call of \csx{nukeline} to make room for the
+``(MORE)\index{more@(MORE)}'' text which is used if dialog is split.
+
+\item[4.] The text ``(MORE)\index{more@(MORE)}'' if the current dialog
+continues onto the next page.
+
+\item[5.] A pair of \csx{nukeline}s to make room for the ``\idx{CONTINUED}''
+text at the bottom of the page if the current scene continues onto the next
+page.
+
+\item[6.] The ``\idx{CONTINUED}'' text for the bottom of the page if the
+current scene continues onto the next page.
+
+\item[7.] Reserved for the up-coming \idx{revision page} feature.
+
+\end{itemize}
+\end{quote}
+
+\noindent It is easier to understand this list if you look at a formatted
+screenplay to see how the scene and dialog splits are handled from page to
+page. Putting the \csx{nukeline}s into separate parts of the mark is necessary
+because they must be done before the body of the page, but the text doesn't
+come until afterwards. In retrospect, it might be possible to combine items~1
+and~6, but that would come at the cost of generality and clarity.
+
+The \csx{output} routine\index{output routine} actually uses the \idx{marks}.
+At first blush this may not seem too tricky, but there is an important
+subtlety. The ``(MORE)\index{more@(MORE)}'' and ``\idx{CONTINUED}'' lines at
+the bottom of the page actually encroach into the space intended for the bottom
+of the page. The \csx{nukeline}s help keep track of how much extra space we
+need at the bottom. When the time comes, the box \TeX\ has handed the
+\csx{output} routine must be \csx{vsplit}, so that a few lines at the bottom are
+usually deferred to a later page. The local setting of \csx{vbadness} to
+``infinity'' suppresses the ``underfull vbox'' messages that come from the
+split. \csx{vbadness} is restored (implicitly by \TeX's grouping rules) before
+the \csx{shipout} occurs.
+
+The splitting of the box further complicates keeping track of the mark. No
+longer is \csx{topmark} valid, since it might have come from lines that were put
+back when the previous page was output. It is not a mistake that
+\csx{splitbotmark} is used when \csx{topmark} seems to be the logical intent.
+\TeX\ assures us the \csx{splitbotmark} is null if no \csx{vsplit} has yet
+occurred, so there is no special case for the first page.
+
+The macros for the basic components may seem to use penalties in odd ways.
+This is to assure that a split doesn't occur between a mark and the relevant
+block. In some cases, they may be redundant, but the intent was to guarantee
+proper operation in this early release and then to optimize later.
+
+The current value of each part of the last mark is carried around in a set of
+seven macros. This is necessary since certain basic components don't know how
+to set all of the components of the mark. Close inspection will probably
+reveal possible optimizations in this regard, but again the intent was to keep
+it general for the first release.
+
+\index{marks|)}
+
+\chapter{Distribution and local changes}
+
+\index{ScriptTex@\ST!distribution|(}
+
+This document, the \ST\ macro files, and the demonstration document are
+copyrighted by the author. You may make and distribute copies as well as
+prepare derivative works for non-commercial purposes. All other rights are
+reserved by the author.
+
+Feel free to re-distribute this document as well as the files described herein.
+I request, however, that you try to keep the files together (i.e., don't break
+up the package).
+
+If you make local hacks, please change the
+version\index{ScriptTeX@\ST!version} number by appending a
+letter to it, e.g., ``\vernum-A''. Be aware that ``\vernum-A'' at one site
+will quite possibly be different than ``\vernum-A'' at another. I would like,
+however, users to feel confident that ``\vernum'' is ``\vernum'' is ``\vernum''
+everywhere. I also prefer local hacks don't propagate too far. If you have a
+change that is generally useful, I would love to hear about it and integrate it
+into the ``official'' package.
+
+This document is written for \LaTeX\@. There is a companion example file
+called \filenamex{stdemo.tex} which demonstrates the use of this macro package.
+Table~\ref{filetbl} lists the files which constitute \ST.
+
+\begin{table}
+\begin{center}
+\begin{tabular}{ll}
+\hline
+\filenamex{scrnplay.tex} & macro definitions for screenplay manuscripts \\
+\filenamex{scrnwrit.bib} & \BibTeX\index{BibTeX@\BibTeX} source for this
+ documentation \\
+\filenamex{stagplay.tex} & macro definitions for stageplays \\
+\filenamex{stdemo.tex} & \ST\ demonstration file \\
+\filenamex{stdoc.tex} & \LaTeX\ source for this documentation \\
+\hline
+\end{tabular}
+\end{center}
+\caption{The components of~\version.}
+\label{filetbl}
+\end{table}
+
+\index{ScriptTex@\ST!distribution|)}
+
+\appendix
+
+\chapter{\idx{Script formats}}
+
+This appendix describes the formats for the various types of scripts currently
+supported by \ST.
+
+\section{\idx{Screenplay manuscript format}}
+
+Screenplay manuscripts are typed, not typeset. With computers becoming even
+more ubiquitous, aspiring scriptwriters are more likely to be submitting
+nice-looking documents formatted with Macintoshes\tm\ and PC's and the like.
+For better or worse, agents take typewritten manuscripts more seriously,
+according to \personx{Richard}{Walter} in \book{Screenwriting: The Art, Craft
+and Business of Film and Television Writing}~\cite{rw:sacb}. Therefore, \ST's
+screenplay manuscript format looks typewritten.
+
+The layout of a typewritten manuscript has few variations. The \ST\ macros
+have been designed to emulate those conventions that seem to be most universal.
+Details like lines per page, \idx{page number}, \idx{scene number}s, and
+margins have all been based on half a dozen screenwriting books and a few
+actual screenplays. Whenever there was an inconsistency, I went with the
+majority.
+
+The screenplay format is so evolved that~--- averaged out over a half-hour TV
+show, a two-hour movie, or a four-night miniseries~--- one page is one minute
+of screen time. This may sound absurdly arbitrary, but it seems to hold true.
+One page averages to one minute. Agents and producers realize that this is
+only a rule-of-thumb, but this rule does drive decisions. Production costs are
+often estimated from the page-count, so it is important that the conventions
+are followed.
+
+There is an exception to the page-a-minute rule: situation
+comedies\index{situation comedy}. Sitcoms are typed double-spaced, so
+one sitcom page is 30~seconds. In all other aspects, though, sitcoms
+are formatted just like other teleplays.
+
+\begin{digression}
+
+As an amusing aside, \personx{James L.}{Brooks}, in his foreword
+to the published screenplay of \filmx{Broadcast News}~\cite{jlb:bn}, explains
+that he often bribed studio typists to shrink the margins to make his too-long
+scripts come closer to ``acceptable'' page-counts. This anecdote is the
+inspiration of the \csx{jlbrooks} macro in \ST.
+
+\end{digression}
+
+If you are serious about submitting your work to agents, you are
+better off knocking their socks off with a good story than your own
+interpretation of manuscript format.
+
+The basic layout is simple. A scene begins with a line,\index{scene line} in
+all caps, which indicates the location and usually the time of day. (In a
+\idx{shooting script}, each new camera angle is considered a scene, so the
+scene lines in the middle of a sequence often simply indicate the main subject
+of the shot, such as a particular character.) Stage directions\index{stage
+directions} and descriptions are typed like normal paragraphs without
+indentation.
+
+Dialog\index{dialog} begins with the character's name, all in caps, roughly
+centered on a line by itself (no colons or other punctuation). The character's
+words are set as narrow paragraphs, again without indentation. Parenthetical
+directions\index{parenthetical directions} which indicate the mood or
+mannerisms of the character as he/she speaks are set even narrower and inside
+parentheses.
+
+Transitions\index{transitions} like ``dissolve to'' and ``cut to'' are done in
+caps near the right margin. Opening and closing transitions such as ``fade
+in'' and ``fade out'' are placed at the left margin.
+
+Note, overuse of \index{transitions} and \index{parenthetical directions} is
+usually considered bad form. A simple ``cut to'' is redundant, since that can
+be inferred from the beginning of the new scene. Occasionally, it is
+appropriate to use a ``dissolve to'' to signal a {\em long\/} passage of time
+or to introduce a flashback. Parenthetical directions alsost always amount to
+directing on paper, which is another no-no. When a character speaks to a
+specific person in a group, a parenthetical direction may be used to avoid
+ambiguity. If you want to sell your script, don't give into the temptation of
+padding your script with zillions of useless transitions and parenthetical
+directions.
+
+Blank lines\index{blank lines} separate almost everything. Pages are
+numbered\index{page number}s in the upper-right corner of the page.
+If a scene crosses \idx{page break}, as they often do,
+``\idx{CONTINUED}'' should be placed at the bottom of the page, in the
+same style as a transition, and the page-number line of the following
+page should be marked ``CONTINUED'' at the left. If \idx{scene
+number}s are used (rare in manuscripts), then they are set hanging in
+the left margin next to the scene lines and the top ``CONTINUED''
+designations. If a character's dialog spans a page break, the first
+part is labeled ``(MORE)\index{more@(MORE)}'' in the same style of
+parenthetical directions, and the following page repeats the
+characters name with the designation
+``(CONT'D)\index{contd@(CONT'D)}''.
+
+Text marked with the \csx{sound}, \csx{introduce}, and \csx{extra} macros will
+be set in all-caps in shooting scripts. In all other formats, \csx{sound} is a
+no-op.
+
+This has been a loose description of the format, with which one should be able
+to read a screenplay. The actual placement of these blocks is strictly
+prescribed in terms of lines and columns. Some books even list different tab
+settings for pica and elite typewriters. Since the \idx{Computer Modern
+Typewriter Type}, ``\idx{cmtt}'', isn't really pica or elite, I have scaled
+things in terms of character widths, which will cause nearly identical line
+breaks as someone following the standard conventions with a standard size
+type.\index{typewriter text} Baselines\index{baselines} have been set to
+12~big points rather than 12~points in order to get a true 66~\idx{lines per
+page}. I shall put off other such details to the description of the workings
+of the macros.
+
+Another set of cold rules for screenplay manuscripts is those that apply to the
+title page. Most of these rules are of the ``do not'' variety. The ``do''
+rules are easier to enumerate: (1) put the name of the script in all caps
+centered on the page; (2) put the name of the author a few lines below the
+\idx{title}. The ``do not'' rules essentially say, ``Don't put anything on the
+title page other than the title and the author's name''. If you disagree with
+these rules, see the \personx{Richard}{Walter} book listed in the bibliography;
+he explains why you shouldn't have the date or draft information, the author's
+address and telephone number, or even the words ``written by'' before the
+author's name. Except for the draft and date fields, \ST\ will place the other
+pieces of information on your title page if you have defined them. Draft and
+date will also appear if the \csx{proof} variant is in force.
+\personx{Michael}{Hauge} recommends that you include a copyright notice on the
+title page, but always use the current year to keep your old scripts looking
+fresh.
+
+\section{Stageplay format}
+
+The layout of the stageplay format was fairly arbitrary. Published formats for
+stageplays seems to exhibit more flexibility than the screenplay manuscript
+format.
+
+Act and scene designations are always shown. Acts and scenes are counted in
+Roman numerals: uppercase for acts, lowercase for scenes. Acts always begin
+on a new page. The heading line on each page contains the title and the act
+and scene number.
+
+Scene lines and stage directions are typeset in an italic font. Dialog uses
+the same margins as the rest of the text. The speaking character is set in
+small caps with hanging indentation. The dialog itself in roman type, and
+parenthetical directions are italicized like stage directions.
+
+The transition macros \csx{open}, \csx{close}, and \csx{trans} should
+be used to indicate key curtain and lighting changes, such as
+``\csx{open}\{{\tt curtain up}\}'' and ``\csx{close}\{{\tt
+blackout}\}''.
+
+The \csx{leadin} and \csx{pickup} macros measure and stagger the text to
+emphasize the flow of the dialog from one character to the next.
+
+\chapter{Known problems and limitations}
+
+\index{bugs|(}
+
+Most of these problems are minor annoyances.
+
+\begin{itemize}
+
+\item Using certain macros in the wrong context, such as a \csx{paren} in
+stage directions or a variation switch too far down from the top can cause all
+sorts of weird things to happen. (``Doctor, it hurts when I do this!''
+``Don't do that.'')
+
+\item If your script has an inordinate number of acts, the \idx{act number}
+will shift from being spelled out (``Act Nine'') to uppercase Roman numerals
+(``Act XXIV''). This threshold, however, should be high-enough to handle even
+week-long \idx{miniseries} without enter the Roman numeral phase.
+
+\item The \csx{leadin} and \csx{pickup} macros don't work quite right
+in stageplay format. A future release will provide better support.
+
+\end{itemize}
+
+\index{bugs|)}
+
+\chapter{Glossary}
+
+\begin{description}
+
+\item[``\idx{A-pages}''] Pages in a screenplay (usually a shooting script)
+which have been inserted during the course of a revision.\index{revision page}s
+To avoid renumbering the entire script, additional pages are numbered with the
+number of the previous page and a letter. For example, if page 92 has grown
+into three pages, the page sequence would be: \ldots\,,~91, 92, 92-A, 92-B,
+93,~\ldots\,.
+
+\item[\idx{club lines}] If a paragraph is split across pages between the first
+and second line, the first line is a club line.
+
+\item[\idx{dialog block}] A screenplay format construct consisting of the
+character's name and his/her words along with the associated parenthetical
+direction.
+
+\item[\idx{extra}] A character in a script who has no dialog.
+
+\item[\idx{koala}] An Australian marsupial that eats bushes, shoots, and leaves.
+
+\item[\idx{manuscript}] [in the context of this document:] A typed script of
+the form submitted to an agent or producer.
+
+\item[\idx{master scene}] A scene in a script that is written in terms of all
+of the action that takes place in the given locale at a particular time rather
+than a shot-by-shot description of the same events. Manuscripts are generally
+written as master scenes which, if the script is produced, later broken down
+shot-by-shot into the \idx{shooting script}.
+
+\item[\idx{parenthetical direction}] Parenthesized items embedded into a
+character's dialog which indicate the mode, timing, and gestures for that
+speech.
+
+\item[\idx{scene line}] The line in all caps at the beginning of a scene which
+identifies the location and time of the scene. In a \idx{shooting script}, the
+scene line often indicates the primary subject of the shot.
+
+\item[\idx{screenplay}] A script for a television show or motion picture
+production.
+
+\item[\idx{shooting script}] A script that has been prepared for production by
+breaking each sequence down shot-by-shot. A shooting script is generally
+prepared by the director (sometimes in association with the author) from the
+author's original manuscript.
+
+\item[\idx{spec(ulation) script}] A script written on speculation for an
+existing television series. Spec scripts are rarely sold, but they may lead to
+a regular staff-position for that series.
+
+\item[\idx{stage directions}] Blocks of text which describe scenes and
+characters and there actions. Stage directions also indicate sound\index{sound
+effect} and \idx{special effect}s.
+
+\item[\idx{stageplay}] A script for a theatrical production.
+
+\item[\idx{teleplay}] A script specifically for a television show or made-for-TV
+movie.
+
+\item[\idx{widow line}] If a paragraph is split across pages between its
+penultimate and last lines, the last line is a widow line.
+
+\end{description}
+
+\chapter{Macro summary}
+
+This summary lists the \ST\ macros which are intended for authors to use.
+
+\section{Basic components}
+
+\begin{description}
+
+\item[\csx{act}] Begins a new act.
+
+\item[\csx{bye}] Ejects the last page, closes the auxiliary files, and performs
+other housekeeping duties.
+
+\item[\csx{cleanup}] Ejects the last page and closes the auxiliary files. After
+\csx{cleanup} you may safely use the \csx{makecastlist} and \csx{makescenelist}
+macros.
+
+\item[\csx{close}\{\P{transition-type}\}] Outputs a closing transition
+like ``FADE OUT'' for use at the end of an act.
+
+\item[\csx{cut}] Shortcut for ``\csx{trans}\{{\tt cut
+to}\}''.\index{shortcuts!cut}
+
+\item[\csx{dialog}\{\P{character}\} \P{speech}] Begins a new dialog
+block for the specified \P{character}. His/her words and parenthetical
+directions (\P{speech}) should follow. The dialog block ends at the next
+paragraph break.
+
+\item[\csx{dissolve}] Shortcut for ``\csx{trans}\{{\tt dissolve
+to}\}''.\index{shortcuts!dissolve}
+
+\item[\csx{em}\{\P{words}\}] Emphasizes the \P{words} (by underlining
+them in manuscript format).
+
+\item[\csx{extra}\{\P{person}\}] Used to indicate the first appearance of a
+particular non-speaking character.
+
+\item[\csx{introduce}\{\P{character}\}] Used to indicate the first appearance of
+a speaking character.
+
+\item[\csx{open}\{\P{transition-type}\}] Outputs an opening transition
+like ``FADE IN'' for use at the beginning of an act.
+
+\item[\csx{paren}\{\P{clue}\}] Places a parenthetical direction inside a
+dialog block. Never use this macro outside the context of the \P{speech}
+parameter in a dialog.
+
+\item[\csx{scene}\{\P{scene-line}\}] Begins a new scene.
+
+\item[\csx{sound}\{\P{effect}\}] Indicates that \P{effect} is a \idx{sound
+effect}. Never use this macro outside the context of stage directions.
+
+\item[\csx{stage}] (optional) Begins a block of \idx{stage directions}.
+
+\item[\csx{trans}\{\P{transition-type}\}] Indicates the type of
+transition between scenes.\index{transitions}
+
+\end{description}
+
+\section{Slightly advanced components}
+
+\begin{description}
+
+\item[\csx{acthead}\{\P{act-name}\}] Begins a new act named \P{act-name}. This
+macro is used in the guts of \csx{act} and its mutant cousins. In general, using
+this routine directly is not recommended unless you know what you are doing.
+
+\item[\csx{ldots}] Expands to a three-dot ellipsis.\index{ellipses}
+
+\item[\csx{leadin}\{\P{last-words}\}] Prepares the dialog to be
+interrupted by the next character. See \csx{pickup}.
+
+\item[\csx{pickup}] Use at the beginning of a character's dialog when he/she
+is interrupting the previous character. See \csx{leadin}.
+
+\item[\csx{theend}] Causes the final ``End of Act $n$'' line to be replaced by
+``The End''. Use immediately before \csx{bye}.\index{mutant cousins!ending}
+
+\item[\csx{today}] Expands to the current \idx{date} in the form
+\P{dd-MMM-yyyy}.
+
+\end{description}
+
+\section{Variants}
+
+\index{variants|(}
+
+\begin{description}
+
+\item[\csx{jlbrooks}] Invokes the \personx{James L.}{Brooks} variant, causing
+\ST\ to squeeze a little more script onto every
+page.\index{variant!J.L. Brooks}
+
+\item[\csx{manuscript}] Invokes the manuscript
+variant\index{variant!manuscript} for ready-to-submit output.
+
+\item[\csx{movie}] Invokes the motion picture variant\index{variant!movie}.
+
+\item[\csx{proof}] Invokes the proof-reading variant. Use on preliminary
+drafts to include \idx{date} and \idx{draft} information on each page.
+
+\item[\csx{shoot}] Invokes the \idx{shooting script}
+variant.\index{variant!shooting script} Use if you're making a
+shot-by-shot breakdown.\index{scene breakdown}
+
+\item[\csx{sitcom}] Invokes the \idx{situation comedy}
+variant,\index{variant!situation comedy} i.e., it double-spaces the script and
+implies the \csx{TV} variant.\index{variant!TV}
+
+\item[\csx{TV}] Invokes the teleplay variant.\index{variant!TV}
+
+\item[\csx{twoside}] Variant which causes the left margin to shift on alternate
+pages, so drafts printed on both sides of a sheet will be easier to read when
+bound.\index{variant!two-sided}
+
+\end{description}
+
+\index{variants|)}
+
+\section{Mutant cousins}
+
+\index{mutant cousins|(}
+
+\begin{description}
+
+\item[\csx{epilog}] Mutant cousin of \csx{act}\index{mutant cousins!epilog} for
+use at the end of a \idx{miniseries}.
+
+\item[\csx{prolog}] Mutant cousin of \csx{act} for use at the beginning of
+a miniseries.\index{mutant cousins!prolog}
+
+\item[\csx{tag}] Mutant cousin of \csx{act} for use at the end of a
+television show.\index{mutant cousins!tag}
+
+\item[\csx{teaser}] Mutant cousin of \csx{act} for use at the beginning of
+a television show.\index{mutant cousins!teaser}
+
+\end{description}
+
+\index{mutant cousins|)}
+
+\section{Shortcuts and synonyms}
+
+\index{shortcuts|(}
+\index{synonyms|(}
+
+\begin{description}
+
+\item[\csx{beat}] Shortcut for ``\csx{paren}\{{\tt beat}\}''.
+
+\item[\csx{dialogue}] Synonym for \csx{dialog}.\index{synonyms!dialog}
+
+\item[\csx{epilogue}] Synonym for \csx{epilog}, except that it causes the act
+name to be ``Epilogue''.\index{synonyms!epilogue}
+
+\item[\csx{ext}\{\P{scene}\}] Shortcut for ``\csx{scene}\{{\tt ext.\bs\
+}\P{scene}\}''.\index{shortcuts!exterior}
+
+\item[\csx{fadein}] Shortcut for ``\csx{open}\{{\tt fade
+in}\}''.\index{shortcuts!fade in}
+
+\item[\csx{fadeout}] Shortcut for ``\csx{open}\{{\tt fade
+out}\}''.\index{shortcuts!fade out}
+
+\item[\csx{int}\{\P{scene}\}] Shortcut for ``\csx{scene}\{{\tt int.\bs\
+}\P{scene}\}''.\idx{shortcuts!interior}
+
+\item[\csx{os}] Shortcut for ``\csx{paren}\{\tt off
+screen\}''.\index{shortcuts!off screen}
+
+\item[\csx{prologue}] Synonym of \csx{prolog}, except that it causes the act
+name to be ``Prologue''.\index{synonyms!prologue}
+
+\item[\csx{shot}\{\P{subject}\}] Shortcut for
+``\csx{scene}\{\P{subject}\}''.\index{shortcuts!shot}
+
+\item[\csx{tv}] Synonym for \csx{TV}.\index{synonyms!TV}
+
+\item[\csx{vo}] Shortcut for ``\csx{paren}\{{\tt voice
+over}\}''.\index{shortcuts!voice over}
+
+\end{description}
+
+\index{shortcuts|)}
+\index{synonyms|)}
+
+\section{Title page information}
+
+\begin{description}
+
+\item[\csx{address}\{\P{address}\}] Specifies the address and/or phone number
+of the author or agent which will then be printed on the title page.
+
+\item[\csx{author}\{\P{name}\}] Defines \P{name} for use as the author's name
+on the title page.
+
+\item[\csx{basedon}\{\P{string}\}] \P{string} will be printed below the
+author's name to allow for comments like ``Based on a novel by John Doe''.
+
+\item[\csx{date}\{\P{string}\}] Uses \P{string} wherever the draft \idx{date}
+should be printed (if appropriate to the selected variant).
+
+\item[\csx{draft}\{\P{draft-name}\}] Makes \P{draft-name} the text used on the
+title page and in the footline (if appropriate to the selected
+variant).\index{draft}
+
+\item[\csx{maketitle}] Uses the information in specified in \csx{series},
+\csx{title}, \csx{author}, \csx{draft}, and \csx{date} commands to create a
+title page.
+
+\item[\csx{showcopyright}\{\P{year}\}] Specifies that a copyright symbol and
+the \P{year} should appear on the title page. It is sometime recommended to
+use \csx{number}\csx{year} to always keep your script looking up-to-date.
+
+\item[\csx{series}\{\P{series-name}\}] Indicates that \P{series-name} should be
+used as the name of the series on the title page and footlines.
+
+\item[\csx{title}\{\P{name}\}] Defines \P{name} to be used as the title of the
+script on the title page and footlines (if appropriate to the selected
+variant).
+
+\end{description}
+
+%
+% Bibliography
+%
+
+\addcontentsline{toc}{chapter}{Bibliography}
+\bibliographystyle{alpha}
+\bibliography{scrnwrit}
+
+
+%
+% Index
+%
+
+\addcontentsline{toc}{chapter}{Index}
+\input stdoc.ind
+
+%
+% Some random cross references
+%
+
+\index{cmtt|see Computer Modern Typewriter Type}
+\index{sitcom|see{situation comedy}}
+
+\end{document}