summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/screenplay
diff options
context:
space:
mode:
authorReinhard Kotucha <reinhard.kotucha@web.de>2006-11-25 04:12:03 +0000
committerReinhard Kotucha <reinhard.kotucha@web.de>2006-11-25 04:12:03 +0000
commite4b8675cd28f8008d6a8930c58ddfc320250ee69 (patch)
treed635a001fa9018220f72a0fff719b71e35ab7725 /Master/texmf-dist/source/latex/screenplay
parent850706cd4d23138d5bf7c7cc2050bde2cccb55bc (diff)
update screenplay.
git-svn-id: svn://tug.org/texlive/trunk@2521 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/screenplay')
-rw-r--r--Master/texmf-dist/source/latex/screenplay/screenplay.dtx584
1 files changed, 409 insertions, 175 deletions
diff --git a/Master/texmf-dist/source/latex/screenplay/screenplay.dtx b/Master/texmf-dist/source/latex/screenplay/screenplay.dtx
index 1a1428aba14..1275b59b3c9 100644
--- a/Master/texmf-dist/source/latex/screenplay/screenplay.dtx
+++ b/Master/texmf-dist/source/latex/screenplay/screenplay.dtx
@@ -34,7 +34,7 @@
%</dtx>
%<driver>\ProvidesFile{screenplay.drv}
% \fi
-%\ProvidesFile{screenplay}[2006/11/04 v1.521
+%\ProvidesFile{screenplay}[2006/11/15 v1.538
% LaTeX2e Draft Screenplay document class
% (C)2006 John Pate
% released under the GNU General Public License]
@@ -54,7 +54,7 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
%</driver>
% \fi
%
-% \CheckSum{309}
+% \CheckSum{356}
% \changes{1.0.0}{2006 Sep 23}{first \texttt{screenplay.dtx, 2006/09/23, v1.457}}
% \changes{1.0.1}{2006 Sep 24}{minor code changes, revision to documentation,
% v1.461}
@@ -174,14 +174,14 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% The formatting required is minimalist. \texttt{screenplay.cls} will
% issue an error message if you use any options.
%
-% |\documentclass{screenplay}[2006/11/04]| \\
+% |\documentclass{screenplay}[2006/11/15]| \\
% is your first command, you can give the optional date argument in
% case of any earlier copies of \texttt{screenplay.cls} lying around.
%
% You are now in the \textit{document preamble} where you should
% initialise the values of some commands.
%
-% You must define the title of screenplay\ldots\\
+% You must define the title of the screenplay\ldots\\
% |\title{The Title of Your Opus}| \\
% \ldots it will be uppercased automagically so don't fuss.
% If it's for the \textit{Nicholl Competition} you're done.
@@ -192,7 +192,8 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% |\address{99 Any Street \\| \\
% |Any Town \\ Postcode / Zip \\| \\
% |Phone \\| \\
-% |email@whereami }|
+% |email@whereami }| \\
+% \ldots which you will need for a ``proper'' title page.
%
% The preamble is closed, of course, by\ldots\\
% |\begin{document}|
@@ -206,7 +207,7 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
%
% The first thing you need to see in your screenplay is
% FADE~IN: left justified with a blank line underneath.
-% Scripts always start this way, because they do. You deploy
+% Screenplays always start this way, because they do. You deploy
% the |\fadein| command for this.
%
% Next would typically be a slugline, \\
@@ -247,24 +248,23 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
%
% Then it's simply a case of |\theend| and |\end{document}|.
%
-% The only tricky parts of the formatting are deciding where to
-% put \emph{pagebreaks} and hunting down places where
-% \emph{linebreaks}\ldots\ |\\|\ \dots will help \TeX\ out with
-% formatting. You may need to insert linebreaks manually even
-% where `|Overfull \hbox|' warnings are absent. You'll know
-% when it is necessary by spotting extra vertical whitespace in
-% the document. \texttt{example.tex} demonstrates this, read through
-% the raw \texttt{.tex} file and try modifying it as indicated.
-% It's likely you will have to put quite a few linebreaks
-% ``by hand'' into dialogue text due to the restricted margins.
+% \changes{1.2.7}{2006 Nov 15}{revision to documentation}
+% The only tricky part of the formatting is deciding where to
+% put any \emph{pagebreaks} that are required to help \TeX\ out
+% with formatting.
%
% \textbf{Do not put in pagebreaks until you have really, really,
% really finished editing.}
%
-% Putting in pagebreaks will likely involve using the |\dialbreak|
+% The bottom margin should be between a half and one and a half inches.
+% \texttt{screenplay} will format pages avoiding breaks in blocks of
+% dialogue or titleover passages, will not widow sluglines or ``TITLE
+% OVER'' headers.
+%
+% Putting in manual pagebreaks will likely involve using the |\dialbreak|
% command, though for description text |\pagebreak| is all that
% is required.
-%
+%
% The |\dialbreak| command needs to know the character name and any
% optional directions as required.
%
@@ -279,26 +279,66 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
%
% For further enlightenment, you should scrutinise the markup of
% \texttt{example.tex} and peruse \textbf{The Coding}
-% section of this document.
+% section of this document where other useful commands may
+% be found.
+%
+% Here are lists of the \texttt{screenplay} commands you should
+% familiarise yourself with.
+%
+% For the title page\ldots
+% \begin{itemize}
+% \item |\title{}|
+% \item |\author{}|
+% \item |\realauthor{}|
+% \item |\address{}|
+% \item |\agent{}|
+% \item |\coverpage|
+% \item |\nicholl|
+% \end{itemize}
+%
+% In your screenplay text\ldots
+% \begin{itemize}
+% \item |\fadein|
+% \item |\intslug[]{}|
+% \item |\extslug[]{}|
+% \item |\intextslug[]{}|
+% \item |\extintslug[]{}|
+% \item |\begin{dialogue}[]{}| \ldots\ |\end{dialogue}|
+% \item |\paren{}| (for use inside dialogue environment);
+% \item |\dialbreak[]{}| for pagebreak in dialogue environment;
+% \item |\begin{titleover}| \ldots\ |\end{titleover}|
+% \item |\titbreak| for pagebreak in titleover environment;
+% \item |\centretitle{}|
+% \item |\intercut| gives ``INTERCUT~WITH:'' flushright;
+% \item \verb*|\pov\ | gives ``P.O.V.'' as a ``word'' (n.b.\
+% the \verb*| | symbol denotes a space);
+% \item \verb*|\revert\ | gives ``REVERSE~P.O.V.'' as a ``word'';
+% \item |\fadeout|
+% \item |\theend|
+% \end{itemize}
+% (|\fadeout| and |\fadein| should not be confused with ``FADE~TO:''
+% which is, IMHO, unnecessary in a Draft Screenplay.)
%
-% You can see a completed script marked-up
-% via \LaTeXe\ and formatted with \texttt{screenplay.cls}
+% You can see a completed screenplay marked-up via \LaTeXe\ and
+% typeset with the latest revision of \texttt{screenplay.cls}
% at \href{http://dvc.org.uk/sacrific.txt/}%
% {\texttt{http://dvc.org.uk/sacrific.txt/}}.
-% There is also, at time of writing, a ``work-in-progress'' script
-% that has had manual linebreaks inserted but not manual pagebreaks.
-%
+% There is also, at time of writing, a ``work-in-progress''
+% uncompleted screenplay that has not had manual pagebreaks inserted.
+%
% \section{Hard Margins package}
% \changes{1.0.9}{2006 Oct 06}{added \texttt{hardmarg.sty}, v1.502}
-%
-% Here we're emulating a typewriter. On a typewriter, the left
-% margin is a hard stop, whereas the right margin is a bell
-% (those of us who typed in the stone age well remember
-% that ``ding''). Even the best typist would run past the
-% right margins by a character or two once in a while, sometimes
-% deliberately. Hence the ``fudge factors'' interpolated by me,
-% which in days of yore would perhaps have been referred to as
-% the \textit{gutter}.
+% \changes{1.2.6}{2006 Nov 10}{revision to documentation, v1.533}
+%
+% Here we're emulating a typewriter. On a typewriter, the
+% left margin is a hard stop, whereas the right margin was
+% signified by a bell warning you to to hit the carriage return
+% (those of us who typed in the stone age well remember that
+% ``ding''). Even the best typist (let alone me) would hit the
+% margin release and run past the right margins by a character
+% or two once in a while, sometimes deliberately. Hence the
+% ``fudge factors'' interpolated by me, which in days of yore
+% would perhaps have been referred to as the \textit{gutter}.
%
% The provided \texttt{hardmarg.sty} shows you what happens
% with the \textit{fudge factors} eliminated. Place the command
@@ -306,13 +346,16 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% (i.e.\ between |\documentclass{|\ldots|}| and |\begin{document}|)
% and judge for yourself. Personally I'll stick with my
% \textit{fudge}. All the brain-work makes me crave carbs anyway.
-% But if you want, use it to fix your script to tighter margins.
+% But if you want then use it to fix your screenplay to tighter
+% margins, or perhaps compose an amended version to give your
+% interpretation of ``the standard.''
%
% \section{User customisation}
%
% \emph{\textbf{Don't!}} It really is a case of KISS for Draft
-% Screenplay formatting. There are a couple of things you might
-% get away with though\ldots
+% Screenplay formatting. The margins are already ``relaxed,''
+% unless you use \texttt{hardmarg.sty}. There are a few things
+% you might get away with though\ldots
%
% You may want to change how the time of day is spaced from the
% rest of the slugline. You can do this without editing the
@@ -324,13 +367,16 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% of uppercase for (MORE) and (CONT'D) you can |\renewcommand*| the
% |\more| and |\contd| macros.
%
-% Should you not want page number 1 to appear on the first page
-% of the body of the script put the |\thispagestyle{empty}| command
+% Should you not want page number~1 to appear on the first page
+% of the body of the screenplay put the |\thispagestyle{empty}| command
% in your document source file immediately \emph{after} the command
% to build the title page.
%
% Likely, in the usual \LaTeXe\ fashion, you should develop your own
% style package depending on what conventions you want to use.
+% If you feel you must, the lengths/widths and texts used are defined
+% as macros you can redefine in your own style packages without having
+% to amend the |class| file---refer to \textbf{The Coding}.
%
% \section{Specs from \textit{The Academy}}
%
@@ -343,26 +389,26 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% (the model document).
%
% \begin{itemize}
-% \item 20lb Letter paper (8.5"x11.0") \\
+% \item 20lb Letter paper (8.5"x11.0") \\*
% Courier 12pt, 10 pitch
%
-% \item\textbf{Page} \nopagebreak \\
-% Top margin: 1.0" \\
-% Bottom margin: 0.5"-1.5" \\
-% Left margin: 1.5" \\
+% \item\textbf{Page} \\*
+% Top margin: 1.0" \\*
+% Bottom margin: 0.5"-1.5" \\*
+% Left margin: 1.5" \\*
% Right margin: 1.0"
%
-% \item\textbf{Dialogue} \nopagebreak \\
-% tab NAME to: 4.2" \\
-% Left margin: 3.0" \\
-% Right margin: 2.5" \\
-% \textsl{Parenthetical}\nopagebreak \\
-% Left margin: 3.7" \\
+% \item\textbf{Dialogue} \\*
+% tab NAME to: 4.2" \\*
+% Left margin: 3.0" \\*
+% Right margin: 2.5" \\*
+% \textsl{Parenthetical} \\*
+% Left margin: 3.7" \\*
% Right margin: 3.3"
%
-% \item\textbf{Numbering} \nopagebreak \\
-% top right, Arabic \\
-% Top margin: 0.5" \\
+% \item\textbf{Numbering} \\*
+% top right, Arabic \\*
+% Top margin: 0.5" \\*
% Right margin: 0.75"
% \end{itemize}
%
@@ -378,8 +424,10 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \changes{1.1.5}{2006 Oct 19}{minor code changes, revision to
% comments, v1.511}
% \changes{1.2.0}{2006 Nov 04}{minor code, documentation, changes, v1.521}
+% \changes{1.2.3}{2006 Nov 07}{revisions to macros (code cleanups)}
+% \changes{1.2.7}{2006 Nov 15}{revisions (bugfixes) to macros, v1.535}
%
-% \texttt{screenplay.cls v1.521} was tested with\ldots
+% \texttt{screenplay.cls v1.538} was tested with\ldots
% \begin{itemize}
% \item pdfe\TeX\ 3.141592-1.21a-2.2 (\Web2C\ 7.5.4)
% \item \texttt{dvips(k)} 5.95a
@@ -387,9 +435,6 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \item \texttt{article} 2004/02/16 v1.4f
% \end{itemize}
%
-% IMHO, it's worth reading through the comments, there's
-% some useful stuff for you in there. \\
-% \vspace{1ex} \\
%\iffalse
%<*class>
%\fi
@@ -399,7 +444,7 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \end{macrocode}
% Say it like it is\ldots
% \begin{macrocode}
-\ProvidesClass{screenplay}[2006/11/04 v1.521
+\ProvidesClass{screenplay}[2006/11/15 v1.538
LaTeX2e Draft Screenplay document class
(C)2006 John Pate
released under the GNU General Public License]
@@ -407,8 +452,8 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% Whinge if the user is being a bozo\ldots
% \begin{macrocode}
\DeclareOption*{%
- \PackageError{screenplay}{Unwanted option '\CurrentOption'}%
- {There are no options available for class screenplay v1.521}}
+ \PackageError{screenplay}{Unwanted option '\CurrentOption'}%
+ {There are no options available for class screenplay v1.538}}
\ProcessOptions\relax
% \end{macrocode}
% |ifthen| needed for testing for optional args\ldots
@@ -495,7 +540,8 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \begin{macrocode}
\newcommand*{\slugspace}{\hspace{2.0em plus 0em minus 0em}}
% \end{macrocode}
-% (will result in a total of |3em| space).
+% (will result in a total of |3em| space). See also, |\placesep| and
+% |\sepintext|, below.
% \end{macro}
% \begin{macro}{Margins/tabs}
% \changes{1.1.4}{2006 Oct 17}{minor code changes, revision to documentation, v1.509}
@@ -579,23 +625,60 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \changes{1.1.8}{2006 Nov 01}{revisions to title page build,
% documentation, v1.517}
% \changes{1.1.9}{2006 Nov 03}{minor revision to title page build, v1.518}
-%
+% \changes{1.2.2}{2006 Nov 06}{minor revisions to title page code, v1.526}
+% \changes{1.2.3}{2006 Nov 07}{revisions to title page code comments, v1.530}
% Use one of |\nicholl| or |\coverpage| to taste.
-% This must be the first typesetting command after |\begin{document}|.
-% (|\title| and |\author| code is already defined in the |article| class.)
-%
+% This should be the first typesetting command after |\begin{document}|,
+% presuming you want \texttt{screenplay} to generate a title page for you.
+% \begin{macro}{\title}
+% |\title{The Title}| with |\\| if you feel you must.\\
+% The code is already defined in the |article| class, here I
+% helpfully set a default title in case you can't decide\ldots
+% \begin{macrocode}
+\title{My First Screenplay}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\titheadskip}
+% Distance down from top of page for title\ldots
+% \begin{macrocode}
+\newlength{\titheadskip}
+\setlength{\titheadskip}{2.25in}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\nicholl}
% For Nicholl Competition---just the title\ldots
% \begin{macrocode}
\newcommand{\nicholl}{
\thispagestyle{empty}
- \vspace*{2.25in}
+ \vspace*{\titheadskip}
\begin{center}\MakeUppercase{\@title}\end{center}
\newpage\setcounter{page}{1}
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\author}
+% |\author{Author Details}| \\
+% The code is already defined in the |article| class, here
+% I helpfully define a default author in case you can't decide\ldots
+% \begin{macrocode}
+\author{Alan Smithee}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\realauthor}
+% |\realauthor{Your Name}| with no formatting code. \\
+% This is for when you've used a pseudonym for |\author{}|, or
+% if there are multiple authors and/or formatting code in |\author{}|.
+% It's used by |\coverpage| when typesetting the ``author's address
+% details.'' It will default to the whatever is set as |\author{}|
+% if you don't set it\ldots
+% \begin{macrocode}
+\newcommand{\@realauthor}{\@author}
+\newcommand{\realauthor}[1]{\renewcommand{\@realauthor}{#1}}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\address}
+% |\address{Contact Address}| (\emph{without} name) with |\\| as
+% appropriate.\\
% Your address details for the title page\ldots
% \begin{macrocode}
\newcommand{\@address}{Contact via Agency}
@@ -604,21 +687,24 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \ldots see also\ldots
% \end{macro}
% \begin{macro}{\agent}
+% |\agent{Agent name and address details}| with |\\| as appropriate. \\
% Some people like to put copyright and WGA registration
-% details on their submitted scripts\ldots although the received
+% details on their submitted screenplays---although the received
% wisdom is that this marks you as an amateur, you can use
% this macro.
%
-% I'm calling this |\agent| to pretend you're putting
+% I'm calling this |\agent{}| to pretend you're putting
% your Agent's details instead of your own address---hence
-% if you don't define |\address| (and use |\coverpage|) you'll
-% get the boilerplate text ``Contact via Agency'' under your
+% if you don't define |\address{}| (and use |\coverpage|) you'll
+% get the boilerplate text ``Contact via Agency'' under the
% name in the ``author's address details'' area. What
-% you would do is omit your own address and only have your
-% Agent's address. Putting this the other side of the page
-% makes it immediately clear what's who. No really, there's
-% no need to use this \emph{unless} you're with an agency
-% but it's your script\dots
+% you would do is omit your own contact details and only have your
+% Agent's address (you could define |\realauthor{}| and |\address{}|
+% as a non-printing character, e.g.\ |~|, to make your contact
+% details blank if you like). Putting this the other side of
+% the page makes it immediately clear what's who. No really,
+% there's no need to use this \emph{unless} you're with an
+% agency but it's your screenplay\dots
% \begin{macrocode}
\newcommand{\@agent}{~}
\newcommand{\agent}[1]{\renewcommand{\@agent}{#1}}
@@ -635,26 +721,54 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
\setlength{\titskip}{3.75in plus 0in minus 1.5in}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\addrwidth}
+% Size of boxes for |\agent| and |\realname|/|\address|
+% (19 characters wide at 2")\ldots
+% \begin{macrocode}
+\newlength{\addrwidth}
+\setlength{\addrwidth}{2.0in}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\addrseplen}
+% \changes{1.2.1}{2006 Nov 05}{minor revision to title page code, v1.523}
+% Separation between Agent and author/address details, rubber to
+% allow for possible use of |hardmarg.sty|\ldots
+% \begin{macrocode}
+\newlength{\addrseplen}
+\setlength{\addrseplen}{2.0in plus 0in minus 0.5in}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\coverpage}
% Now the ability to make the the type of title page for
-% Draft Scripts submitted to Agents,
+% Draft Screenplays submitted to Agents\ldots
+% \begin{macro}{\bytext \byskip}
+% \changes{1.2.4}{2006 Nov 08}{revisions to title page code, v1.531}
+% In case you want to fiddle with this\ldots
+% \begin{macrocode}
+\newcommand*{\bytext}{by}
+\newcommand*{\byskip}{\baselineskip}
+% \end{macrocode}
+% \end{macro}
+% |\coverpage| will build a title page\ldots
% \begin{macrocode}
\newcommand{\coverpage}{
\thispagestyle{empty}
- \vspace*{2.25in}
+ \vspace*{\titheadskip}
\begin{center}{\MakeUppercase{\@title}}\\
- \vspace{\baselineskip}
- by\\
- \vspace{\baselineskip}
+ \vspace{\byskip}
+ \bytext\\
+ \vspace{\byskip}
\@author
\end{center}
\vspace{\titskip}
% \end{macrocode}
-% |\agent| details at left margin in a |\parbox|, 2" space then
-% |\author| and |\address| details in a |\parbox|\ldots
+% |\agent| (if any, otherwise |\addrwidth| space) details at left margin in
+% a |\parbox|, |\addrseplen| space then contact details for the author
+% (|\realname|, which will default to |\author| if not defined, and |\address|)
+% in a |\parbox|\ldots
% \begin{macrocode}
-\parbox[t]{2.0in}{\@agent}\hspace{2.0in}
-\parbox[t]{2.0in}{\@author\\\@address}
+\parbox[t]{\addrwidth}{\@agent}\hspace{\addrseplen}
+\parbox[t]{\addrwidth}{\@realauthor\\\@address}
% \end{macrocode}
% Reset page numbers\ldots
% \begin{macrocode}
@@ -680,13 +794,15 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \end{macro}
% \textbf{Dialogue blocks}\ldots
% \begin{macro}{\paren}
+% \changes{1.2.8}{2006 Nov 15}{bugfix}
% |\paren{hello world}| \\
% parenthetical within dialogue environment\ldots
-% only for \emph{very short} text (directions) within dialogue,
-% the optional argument is for internal use \emph{only}\ldots
+% only for \emph{very short} text (directions) within
+% dialogue\ldots
% \begin{macrocode}
-\newcommand{\paren}[2][\\]{%
-#1\parentab\parbox[t]{\parenwidth}{\raggedright(#2)\dialfix}\\
+\newcommand{\paren}[1]{%
+
+\parentab\parbox[t]{\parenwidth}{\raggedright(#1)\dialfix}\\
}
% \end{macrocode}
% \end{macro}
@@ -699,7 +815,7 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% \textbf{Name} is outside |\minipage| to mitigate `|Overfull \hbox|'
% warnings with long names\ldots
% \begin{macrocode}
-\newenvironment{dialogue}[2][]{
+\newenvironment{dialogue}[2][]{%
\dialtab\dialnametab\hbox{\MakeUppercase{#2}}\\*
\dialtab\begin{minipage}[b]{\dialwidth}
@@ -707,15 +823,16 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
\raggedright
\ifthenelse{\not\equal{#1}{}}
{
-\paren[]{#1}
+\paren{#1}
}{}
-}{
+}{%
\end{minipage}
}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\dialbreak}
+% \changes{1.2.8}{2006 Nov 15}{bugfix}
% Forcing pagebreak in dialogue,\\
% |\dialbreak{Character}| \\
% |\dialbreak[directions]{Character}|\\
@@ -725,8 +842,9 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% only do any manual pagebreaks when you absolutely positively
% have killed every muthafucka in the room!\dots
% \begin{macrocode}
-\newcommand{\dialbreak}[2][]{
-\\\dialnametab\hbox{\more}%
+\newcommand{\dialbreak}[2][]{%
+\nopagebreak
+\dialnametab\hbox{\more}%
\end{dialogue}
\newpage
\ifthenelse{\not\equal{#1}{}}
@@ -743,14 +861,18 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% You probably should not consider time of day optional when
% you're writing descriptions---unless you're in a spaceship,
% of course\ldots
-% \begin{macro}{\intslug}
-% INT. SLUGLINE DESCRIPTION \quad DAY\\
-% |\intslug[time of day]{description text}|\\
-% |\intslug{description text}|
+% \begin{macro}{\placesep}
+% What punctuation/spacing comes after the likes of INT and EXT\ldots
% \begin{macrocode}
-\newcommand{\intslug}[2][]{
+\newcommand*{\placesep}{.~}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\slug} internal command used for building
+% the various user commands\ldots
+% \begin{macrocode}
+\newcommand{\slug}[3][]{%
-\MakeUppercase{INT. #2}%
+\MakeUppercase{#2\placesep#3}%
\ifthenelse{\not\equal{#1}{}}
{%
\slugspace\MakeUppercase{#1}\hspace{\fill}
@@ -760,21 +882,28 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\intslug}
+% INT. SLUGLINE DESCRIPTION \quad DAY\\
+% |\intslug[time of day]{description text}|\\
+% |\intslug{description text}|
+% \begin{macrocode}
+\newcommand*{\inttext}{INT}
+\newcommand{\intslug}[2][]{\slug[#1]{\inttext}{#2}}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\extslug}
% EXT. SLUGLINE DESCRIPTION \quad DAY\\
% |\extslug[time of day]{description text}| \\
% |\extslug{description text}|
% \begin{macrocode}
-\newcommand{\extslug}[2][]{
-
-\MakeUppercase{EXT. #2}%
-\ifthenelse{\not\equal{#1}{}}
- {%
-\slugspace\MakeUppercase{#1}\hspace{\fill}
- }{}
-\nopagebreak
-
-}
+\newcommand*{\exttext}{EXT}
+\newcommand{\extslug}[2][]{\slug[#1]{\exttext}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sepintext}
+% Complementary to |\placesep|\ldots
+% \begin{macrocode}
+\newcommand*{\sepintext}{./}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\intextslug}
@@ -783,16 +912,8 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% |\intextslug[time of day]{description text}| \\
% |\intextslug{description text}|
% \begin{macrocode}
-\newcommand{\intextslug}[2][]{
-
-\MakeUppercase{INT./EXT. #2}%
-\ifthenelse{\not\equal{#1}{}}
- {%
-\slugspace\MakeUppercase{#1}\hspace{\fill}
- }{}
-\nopagebreak
-
-}
+\newcommand{\intextslug}[2][]{%
+\slug[#1]{\inttext\sepintext\exttext}{#2}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\extintslug}
@@ -801,16 +922,29 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% |\extintslug[time of day]{description text}| \\
% |\extintextslug{description text}|
% \begin{macrocode}
-\newcommand{\extintslug}[2][]{
-
-\MakeUppercase{EXT./INT. #2}%
-\ifthenelse{\not\equal{#1}{}}
- {%
-\slugspace\MakeUppercase{#1}\hspace{\fill}
- }{}
-\nopagebreak
-
-}
+\newcommand{\extintslug}[2][]{%
+\slug[#1]{\exttext\sepintext\inttext}{#2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\sccentre \scflushright}
+% Internal formatting commands for various macros\ldots \\
+% |\sccentre{}| used in macros todo centring, you should use this if rolling
+% your own\ldots
+% \begin{macrocode}
+\newcommand*{%
+\sccentre}[1]{\hspace*{\fill}{#1}\hspace{\fill}\hspace{\widthgutter}}
+% \end{macrocode}
+% |\scflushright{}| used in macros todo flushright, you should use this if rolling
+% your own\ldots
+% \begin{macrocode}
+\newcommand*{%
+\scflushright}[1]{\hspace*{\fill}{#1}\hspace{\widthgutter}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\punctchar}
+% What you use to punctuate things like FADE~TO and TITLE~OVER\ldots
+% \begin{macrocode}
+\newcommand*{\punctchar}{:}
% \end{macrocode}
% \end{macro}
% \textbf{Title Over}
@@ -820,18 +954,19 @@ pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate]
% as pseudo dialogue environment (think ``Star Wars'')
% the optional argument is for internal use \emph{only}\ldots
% \begin{macrocode}
-\newenvironment{titleover}[1][]{
+\newcommand*{\titleovertext}{TITLE~OVER}
+\newenvironment{titleover}[1][]{%
\ifthenelse{\not\equal{#1}{}}
-{
-TITLE OVER #1:
-}{
-TITLE OVER:
+{%
+\titleovertext #1\punctchar
+}{%
+\titleovertext\punctchar
}%
\\*[\baselineskip]
\dialtab\begin{minipage}[b]{\dialwidth}
\raggedright
-}{
+}{%
\end{minipage}
}
@@ -839,13 +974,15 @@ TITLE OVER:
% \end{macro}
%
% \begin{macro}{\titbreak}
+% \changes{1.2.8}{2006 Nov 15}{bugfix, v1.538}
% pagebreak for titleover environment\ldots
% \begin{macrocode}
-\newcommand{\titbreak}{
-\\\dialnametab\hbox{\more}%
+\newcommand{\titbreak}{%
+\nopagebreak
+\dialnametab\hbox{\more}%
\end{titleover}
\newpage
-\begin{titleover}[\contd]
+\begin{titleover}[\contd]%
}
% \end{macrocode}
% \end{macro}
@@ -854,10 +991,10 @@ TITLE OVER:
% titleover for short text most often a date, centred with
% adjustment for gutter\ldots
% \begin{macrocode}
-\newcommand{\centretitle}[1]{
+\newcommand{\centretitle}[1]{%
-TITLE OVER:\\*[\baselineskip]
-\hspace*{\fill}{#1}\hspace{\fill}\hspace{\widthgutter}
+\titleovertext\punctchar\\*[\baselineskip]%
+\sccentre{#1}
}
% \end{macrocode}
@@ -865,23 +1002,25 @@ TITLE OVER:\\*[\baselineskip]
% \textbf{Other macros}
%
% \begin{macro}{\fadein}
-% Always the \emph{first} thing in your script, for some reason\ldots
+% Always the \emph{first} thing in your screenplay, for some reason\ldots
% \begin{macrocode}
-\newcommand{\fadein}{
+\newcommand*{\fadeintext}{FADE~IN}
+\newcommand{\fadein}{%
-FADE IN:
+\fadeintext\punctchar
}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\fadeout}
-% Always the last thing in your script for some reason,
+% Always the last thing in your screenplay, for some reason,
% flush right with adjustment for gutter\ldots
%
% \begin{macrocode}
-\newcommand{\fadeout}{
+\newcommand*{\fadeouttext}{FADE~OUT}
+\newcommand{\fadeout}{%
-\hspace*{\fill}FADE OUT:\hspace{\widthgutter}
+\scflushright{\fadeouttext\punctchar}
}
% \end{macrocode}
@@ -889,9 +1028,10 @@ FADE IN:
% \begin{macro}{\intercut}
% flush right with adjustment for gutter\ldots
% \begin{macrocode}
-\newcommand{\intercut}{
+\newcommand*{\intercuttext}{INTERCUT~WITH}
+\newcommand{\intercut}{%
-\hspace*{\fill}INTERCUT WITH:\hspace{\widthgutter}
+\scflushright{\intercuttext\punctchar}
}
% \end{macrocode}
@@ -904,17 +1044,18 @@ FADE IN:
% \end{macrocode}
% \ldots switch it back\ldots
% \begin{macrocode}
-\newcommand*{\revert}{REVERSE \pov}
+\newcommand*{\revert}{REVERSE~\pov}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\theend}
% But this is what we've all been waiting for\ldots
-% OK, so this is actually the \emph{last} thing in the script\ldots
+% OK, so this is actually the \emph{last} thing in the screenplay\ldots
% \begin{macrocode}
-\newcommand{\theend}{
+\newcommand*{\thirty}{THE~END}
+\newcommand{\theend}{%
-\hspace*{\fill}THE END\hspace{\fill}\hspace{\widthgutter}
+\sccentre{\thirty}
}%THE END
% \end{macrocode}
@@ -934,7 +1075,7 @@ FADE IN:
%
% Issue info as to what we do\ldots
% \begin{macrocode}
-\ProvidesPackage{hardmarg}[2006/11/04 v1.521
+\ProvidesPackage{hardmarg}[2006/11/15 v1.538
For use with class screenplay
(C)2006 John Pate
released under the GNU General Public License]
@@ -969,10 +1110,10 @@ released under the GNU General Public License]
% (Well, strictly speaking the Americans have defined their measures
% using metric standards but let's not get into that.)
% Americans have a 24lb weight paper that's close to 80gsm.
-% I've got samples of Letter in both 20lb and 80gsm. The same script, with
-% the same card covers (240gsm plain white card) measures 12mm vs 15mm
-% in thickness. The 80gsm stuff is noticeably heavier and thicker
-% (less flexible).
+% I've got samples of Letter in both 20lb and 80gsm. The same
+% screenplay, with the same card covers (240gsm plain white card)
+% measures 12mm vs 15mm in thickness. The 80gsm stuff is
+% noticeably heavier and thicker (less flexible).
%
% IMHO good quality 20lb is nicer in handling and you can very much
% tell the difference. Old-style typing paper was usually pretty
@@ -1020,9 +1161,69 @@ released under the GNU General Public License]
% top and one in the bottom hole leaving the central hole empty.
%
% And while I'm on about paper, 120 pages is really the absolute
-% longest you should go. A script that runs between 100 and 110
+% longest you should go. A screenplay that runs between 100 and 110
% pages is a better bet---and that's with plenty of whitespace in the
% passages of description.
+%
+% \section{\LaTeX\ for the impatient}
+% \changes{1.2.5}{2006 Nov 09}{additions to documentation, v1.532}
+%
+% You will likely need to be familiar with the following standard \LaTeX\
+% foibles and constructs.
+%
+% In \TeX\ the \textsl{space} or \textsl{blank} character has special
+% properties:
+% \begin{itemize}
+% \item one blank is the same as a thousand and counts as one,
+% except for \textsl{carriage returns} where two, or more, consecutive
+% carriage returns signal a paragraph break. A single carriage
+% return is treated as a blank;
+% \item blanks at the beginning of a line are ignored;
+% \item blanks terminating a command name are removed (except
+% in the case of printing \textsl{command characters}, see for example
+% |\$| below);
+% \item blanks following \textsl{full stop} (period) get extra
+% space inserted, except where the full stop follows an uppercase
+% character. Blanks following a \textsl{colon} get extra space
+% inserted, as do those after an \textsl{exclamation mark};
+% \end{itemize}
+% So to work with this you likely need to know:
+% \begin{itemize}
+% \item \verb*|\ | force single space (e.g.\ after e.g. and
+% see |\pov| and |\revert| \texttt{screenplay} commands which follow
+% convention and therefore need this to get a space after them);
+% \item |\@| force double space after full stop
+% following an uppercase character (place it before the offending
+% full stop);
+% \item |%| is the \textsl{comment character} (makes things invisible
+% to \TeX)---the comment character used immediately before a carriage
+% return suppresses the space \TeX\ would otherwise substitute for
+% the carriage return;
+% \item |\\| force a linebreak;
+% \item |\\*| force a linebreak but don't allow a pagebreak;
+% \item |\pagebreak| (works in description text)
+% \item |\nopagebreak|
+% \item |~| non-breaking space, |$\sim$| gives a $\sim$ symbol;
+% \end{itemize}
+% You \emph{do} want \TeX\ to munge space for you, I advise you
+% \emph{against} the use of the |\frenchspacing| command
+% with \texttt{screenplay} (even if you're French).
+%
+% Special characters you might want:
+% \begin{itemize}
+% \item |\#| to produce a \# symbol;
+% \item |\$| to produce a \$ symbol;
+% \item |\%| to produce a \% symbol;
+% \item |$\backslash$| to produce a $\backslash$ symbol;
+% \item |\ldots| ellipsis \ldots
+% \end{itemize}
+%
+% A \LaTeX\ installation comes with extensive
+% documentation---\emph{read it}!
+%
+% Also check out the \textit{\TeX\ Users Group}
+% \href{http://www.tug.org/}%
+% {\texttt{http://www.tug.org}}.
%
% \section{Todo}
% If anybody else uses it maybe they'll spot stuff that's
@@ -1038,16 +1239,44 @@ released under the GNU General Public License]
% \texttt{test.pdf} show identical pitch and the inter-line
% spacing is pretty close. However, I chose a |\baselinestretch|
% value to complement the |\baselineskip| and be more typographically
-% correct rather than exactly match \texttt{script.pdf}.
+% appropriate rather than exactly match \texttt{script.pdf}
+% (i.e.\ we're emulating a typewriter).
%
-% You can easily tell which is which because \texttt{test.pdf}
-% numbers the first page whilst \texttt{script.pdf} starts numbering
-% on page~2.
+% You can tell which is which because \texttt{test.pdf}
+% numbers the first page whilst \texttt{script.pdf} starts
+% numbering on the second page of the screenplay.
%
% If I get any \emph{useful} feedback I \emph{may} alter things
-% accordingly.
-%
-% Feel free to help with documentation.
+% accordingly. In that regard Don (the webmaster) at,
+% \href{http://www.simplyscripts.com/}%
+% {\texttt{http://www.simplyscripts.com}}
+% has judged the results as, ``Script is in some generally agreed
+% upon screenplay format or close enough,'' which is my intention
+% for this |class|.
+%
+% If anyone comes up with additional |style| package(s) suitably
+% applicable I'll add such to the |.dtx| bundle. Having researched
+% the subject I believe it's inappropriate to use constructs like
+% CUT TO:, DISSOLVE TO:, FADE TO:, etc.\ in a Draft Screenplay, though
+% they might legitimately appear in a Shooting Script or something
+% getting close to it. This |class| is aimed at Draft Screenplays,
+% IMHO any further elaboration of capabilities should be via
+% additional |style| packages---which I leave as an exercise for the
+% reader.
+%
+% Please ensure you have tried latest available version before
+% reporting any bugs.
+%
+% \section{Disclaimer}
+% The arcane art of writing screenplays has spawned a whole industry
+% of books and software. \texttt{screenplay} is my modest and, more
+% importantly, \emph{free} contribution. It is \copyright 2006
+% John Pate, released under the \textit{GNU General Public License}.
+% Your mileage may vary. E\&OE.
+%
+% For howto contact the author see,
+% \href{http://dvc.org.uk/johnny.html}%
+% {\texttt{http://dvc.org.uk/johnny.html}}.
%
% \newpage
% \section{A note for our Sponsor}
@@ -1064,13 +1293,13 @@ released under the GNU General Public License]
%
%\iffalse
%<*rider>
-%% Test document: facsimile of first page
+%% Test document: facsimile of title and first page
%% of http://www.oscars.org/nicholl/script.pdf
%% to demonstrate veracity of class screenplay
%% see http://www.dvc.org.uk/sacrific.txt/
%% for more information on the document class.
%%
-\documentclass{screenplay}[2006/11/04]
+\documentclass{screenplay}[2006/11/15]
\title{For a Few Days More}
\author{April Rider}
\address{555 George St NNW\\
@@ -1129,7 +1358,7 @@ comes.
%\fi
%\iffalse
%<*example>
-\documentclass{screenplay}[2006/11/04]
+\documentclass{screenplay}[2006/11/15]
\title{Example .tex File}
@@ -1155,14 +1384,21 @@ johnny@dvc.org.uk
%% Note: but don't have blank lines *inside* the body of text in
%% a dialogue environment.
%% I use vi (Elvis) with macros to make a lot of typing disappear.
+%% You can, of course, define LaTeX macros to shorten the command names.
%%
%% Anyhoo, on with the show ...
-%%
+
%% for some reason this always happens at the start ...
\fadein
\intslug[illumination]{example sample -- screenplay.cls}
+In space, nobody knows what time of day it is. Wait, there is no
+day.
+
+So BOB, a cross-dressing Republican, and BROWN, a Christian
+fundamentalist Democrat, are talking nonsense instead.
+
\begin{dialogue}{Bob}
That means that someone
@@ -1176,11 +1412,10 @@ and Bliar?
\end{dialogue}
Bob buries his head in his hands.
-\intercut
\intslug{Atlantis -- somewhere ANyway}
-John and Mark are at adjacent consoles. Fred is with them. Tom
+JOHN and MARK are at adjacent consoles. FRED is with them. TOM
is at another console slightly further away.
\begin{dialogue}{John}
@@ -1207,13 +1442,14 @@ They look up at the main screen.
\begin{dialogue}[to John and Mark]{Fred}
Lock on to that.
-\dialbreak[to Tom]{Fred}%
+\dialbreak[to Tom]{Fred}
Establish planetary orbit.
\end{dialogue}
\intextslug[day]{in or out}
Apparently some people do this.
+\intercut
\extintslug[night]{out or in}
Or even this.
@@ -1225,9 +1461,7 @@ tell the time. You probably will need to specify.
Don't put in pagebreaks by hand until you're really, really
finished editing!
-%% see what happens if you take out the linebreak
-It isn't the done thing to hyphenate for formatting \\
- purposes.
+It isn't the done thing to hyphenate for formatting purposes.
\centretitle{http://dvc.org.uk/sacrific.txt/}
That was a centred titleover.