% 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}
