% \iffalse % +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= % screenplay.dtx % Latest version is available as: % http://dvc.org.uk/sacrific.txt/screenplay.zip % % Authored by and Copyright (C)2006 by % John Pate % http://dvc.org.uk % % This program is free software; you can redistribute it and/or modify it % under the terms of the GNU General Public License as published by the % Free Software Foundation; either version 2 of the License, or (at your % option) any later version. % % This program is distributed in the hope that it will be useful, but % WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY % or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License % for more details. % % You should have received a copy of the GNU General Public License along % with this program; if not, write to the Free Software Foundation, Inc., % 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA % % GPL v2 text also available as: % http://dvc.org.uk/gplv2.txt % +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= % \fi % % \iffalse %<*dtx> \ProvidesFile{screenplay.dtx} \NeedsTeXFormat{LaTeX2e}[2003/12/01] % %\ProvidesFile{screenplay.drv} % \fi %\ProvidesFile{screenplay}[2006/11/04 v1.521 % LaTeX2e Draft Screenplay document class % (C)2006 John Pate % released under the GNU General Public License] % \iffalse %<*driver> \documentclass{article} \usepackage{doc} \usepackage[dvips,letterpaper,pdfauthor=John\ Pate, pdftitle=A\ LaTeX2e\ class\ for\ Draft\ Screenplays, pdfsubject=LaTeX2e\ class\ documentation\ and\ source\ (C)2006\ John\ Pate] {hyperref} \RecordChanges \CodelineIndex \begin{document} \DocInput{screenplay.dtx} \end{document} % % \fi % % \CheckSum{309} % \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} % \changes{1.0.2}{2006 Sep 26}{minor code changes, revision to documentation, % added \texttt{test} file, \texttt{example} file, to \texttt{.dtx}, % amended \texttt{.ins}, v1.465} % \changes{1.0.3}{2006 Sep 27}{minor code changes, revision to documentation, % added change history, v1.487} % \changes{1.0.4}{2006 Sep 28}{enabled hyperlinks in documentation, v1.491} % \changes{1.0.5}{2006 Sep 29}{minor code changes, revision to documentation, % v1.494} % \changes{1.0.6}{2006 Sep 30}{fixed typos, v1.496} % \changes{1.0.7}{2006 Oct 01}{revision to documentation, v1.499} % % \MakeShortVerb{\|} % % \GetFileInfo{screenplay} % \title{\bfseries A \LaTeXe\ class for Draft Screenplays} % \author{by\\John Pate} % \date{This paper describes class \texttt{\filename}\\ % version \fileversion, released \filedate} % \maketitle % % \section{Introduction} % % Every year \textit{The Academy of Motion Picture Arts % and Sciences} runs a competition for screenplay writers, % the \textit{Nicholl Fellowships in Screenwriting}. % Full-length feature film screenplays are submitted (for % a fee). You can win money but, more importantly, placing in % the competition will make agents take notice. % \textit{The Academy} recommends a particular format which this % \texttt{class} file attempts to duplicate, using a % \texttt{.pdf} available from \textit{The Academy} website as the % model. This format has various functions, amongst which is a % gate-keeping function to show you have at least a first idea. % It also gives readers a better chance of assessing how long, % in filmic terms, your screenplay would be. Formatted along % the lines recommended, you should aim to have your screenplay % in the region of 120 pages long. Although they say A4 % paper is acceptable, it is widely held that you severely % handicap yourself if you don't use American 8.5" by 11" % Letter size paper. I have a ream on my lap as I type: 20 % pound, 106 bright, acid free. My sister brought it from % America for me---it's very expensive to buy outside the US % and not easy to find. One might imagine it's at the % photocopy stage that dealing with A4 in America becomes % a nuisance---one more reason to put your magnum opus % to the bottom of the pile. % % Of course, if you didn't know this already you likely % need to do some serious reading and research \emph{before} % you start writing. I guess trying to understand what's % going on here is a start. % % The format specifications are pretty straightforward. % You'll have to believe me when I say it wasn't quite so % straightforward for me to start from a minimal understanding % of \TeX\ and \LaTeXe\ to a usable \texttt{.dtx} file. % % This is an attempt to turn \TeX\ into a typewriter emulator. % A crazy idea---which is why it appealed to me, obviously. % Fortunately I'm easily entertained. % % I hope \texttt{screenplay.dtx} proves of use (and % instruction) to others as it has to me. % % Anyhoo, on with the show\dots % \pagebreak % \section{Getting started} % % You should have: % \begin{itemize} % \item\texttt{README}---plain text file % \item\texttt{screenplay.dtx}---the source file % \item\texttt{screenplay.ins}---driver file % \item\texttt{screenplay.pdf}---the file I assume you're reading right now % \item\texttt{test.pdf}---format test \texttt{.pdf} result % \item\texttt{COPYING}---GNU General Public License % \end{itemize} % % If not, get \texttt{screenplay.zip} via, \\ % \href{http://dvc.org.uk/sacrific.txt/screenplay.zip}% % {\texttt{http://dvc.org.uk/sacrific.txt/screenplay.zip}} % % Use the command, \\ % \texttt{> latex screenplay.ins} \\ % to generate from \texttt{screenplay.dtx}\dots % \begin{itemize} % \item\texttt{screenplay.cls}---class file % \item\texttt{hardmarg.sty}---optional style package % \item\texttt{example.tex}---example (very) mini-screenplay % \item\texttt{test.tex}---format test source file % \end{itemize} % % Once you've unpacked the bundle and generated the \texttt{class} % file do, \\ % \texttt{> latex test} \\ % to generate the \texttt{test.dvi} you can compare with the % \texttt{test.pdf}. % % Make sure everything in the printing chain can deal properly % with 8.5ins by 11ins Letter paper. Print out your % version of \texttt{test} and the provided \texttt{test.pdf} % (on Letter paper of course!) and compare them. The two % printouts should be dimensionally identical. The left margin % should measure as \emph{exactly} 1.5ins. If not you have % an old version of \texttt{dvips} and/or your printer driver % is configured incorrectly and you'll need to fix things before % you proceed further. % % \section{Some example markup} % % Although \texttt{screenplay.cls} builds on the standard \TeX\ document % class \texttt{article}, it is not intended you pass it any options % (except for the release date specification, see below). % The formatting required is minimalist. \texttt{screenplay.cls} will % issue an error message if you use any options. % % |\documentclass{screenplay}[2006/11/04]| \\ % 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\\ % |\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. % However, you may as well also initialise\ldots \\ % |\author{Your Name}| \\ % \ldots capitalised as in ordinary writing, it's not munged % in the typesetting, and\ldots\\ % |\address{99 Any Street \\| \\ % |Any Town \\ Postcode / Zip \\| \\ % |Phone \\| \\ % |email@whereami }| % % The preamble is closed, of course, by\ldots\\ % |\begin{document}| % % The first typesetting command, in the body of the document, should % be one to build the title page. % For the \textit{Nicholl Competition} this is |\nicholl|, % \emph{alternatively} for the style used when submitting to % an Agent, etc.\ use |\coverpage| (which uses your address % and name from the preamble). % % 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 % the |\fadein| command for this. % % Next would typically be a slugline, \\ % |\intslug[day]{Johnny's House}| \\ % which would produce\ldots \\ % INT.~JOHNNY'S HOUSE \quad DAY % % I made the time of day optional because my screenplay had % stuff happening in space where there is no time of % day. You will likely \emph{always} use either \textit{day} % or \textit{night}. (Refer to \textit{The Academy's} information % on formatting.) Likewise there's an |\extslug[]{}| for EXT. % % After a slugline you would typically have some description. This % is simply ordinary text with paragraph breaks as per usual. % % When you get to dialogue, you have the |dialogue environment|. % % |\begin{dialogue}{Johnny}| |After| |some| |description| |you|\\ % |would| |typically| |have|\quad |some| |dialogue.| |\end{dialogue}| % % Directions (short) can be put inside dialogue text either as an optional % argument to the dialogue environment, |\begin{dialogue}[shouting]{Johnny}| % which will result in parenthesized text below the dialogue name, or % the |\paren{}| command can be used to put parentheticals into the % blocks of dialogue text. % % Do not put any blank lines in dialogue text. % % So you wander on with your screenplay requiring little in the % way of \LaTeXe's powers until you reach the end of the % final scene. Personally I use \texttt{Elvis} with a selection % of macros in my \texttt{.exrc} to save me having to type the % commands I've invented. % % The command at the end of the final scene is always % |\fadeout| to produce the words FADE~OUT: flushright. % % 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. % % \textbf{Do not put in pagebreaks until you have really, really, % really finished editing.} % % Putting in 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. % % If you've used the |\titleover environment| you may % need the |\titbreak| command (more tea, vicar?). However, mostly % for TITLE OVER: you'll be doing a date to accommodate flash\-backs % or flash\-forwards, I expect, so use the |\centretitle| command % as in\\ % |\centretitle{December 21, 2012}|.\\ % Yes, that's the English (or for that matter French and Canadian) % ``centre'' not ``center'' in a stunning break from tradition. % % For further enlightenment, you should scrutinise the markup of % \texttt{example.tex} and peruse \textbf{The Coding} % section of this document. % % You can see a completed script marked-up % via \LaTeXe\ and formatted with \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. % % \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}. % % The provided \texttt{hardmarg.sty} shows you what happens % with the \textit{fudge factors} eliminated. Place the command % |usepackage{hardmarg}| in the document preamble % (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. % % \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 % % 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 % class file by redefining the |\slugspace| command % e.g.\ |\renewcommand*{\slugspace}{ - }| % which will change the default 3em space to |em hyphen em| spacing. % Likewise you could |\renewcommand*{\pov}{POV}| to lose the dots. % If for some strange reason you don't like \textit{The Academy's} use % 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 % 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. % % \section{Specs from \textit{The Academy}} % % Be sure to read, carefully, and inwardly digest and re-read, \\ % \href{http://www.oscars.org/nicholl/format.html}% % {\texttt{http://www.oscars.org/nicholl/format.html}} \\ % and, \\ % \href{http://www.oscars.org/nicholl/script.pdf}% % {\texttt{http://www.oscars.org/nicholl/script.pdf}}, \\ % (the model document). % % \begin{itemize} % \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" \\ % 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" \\ % Right margin: 3.3" % % \item\textbf{Numbering} \nopagebreak \\ % top right, Arabic \\ % Top margin: 0.5" \\ % Right margin: 0.75" % \end{itemize} % % INT/EXT. SLUG LINE DESCRIPTION \quad DAY/NIGHT \nopagebreak \\ % (with some kind of extra spacing before time of day) % % \StopEventually{\PrintIndex\PrintChanges} % % \section{The Coding} % \changes{1.0.8}{2006 Oct 02}{minor format fix, v1.500} % \changes{1.1.0}{2006 Oct 08}{minor code changes, v1.503} % \changes{1.1.1}{2006 Oct 08}{minor code changes, v1.504} % \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} % % \texttt{screenplay.cls v1.521} 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 % \item \texttt{kpathsea} version 3.5.4 % \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 % We are a \LaTeXe\ thang\ldots % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[2003/12/01] % \end{macrocode} % Say it like it is\ldots % \begin{macrocode} \ProvidesClass{screenplay}[2006/11/04 v1.521 LaTeX2e Draft Screenplay document class (C)2006 John Pate released under the GNU General Public License] % \end{macrocode} % 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}} \ProcessOptions\relax % \end{macrocode} % |ifthen| needed for testing for optional args\ldots % \begin{macrocode} \RequirePackage{ifthen}[2001/05/26] % \end{macrocode} % Use \texttt{article} class for its base functionality, % \emph{must} be % American Letter paper \emph{not} A4, \texttt{screenplay.cls} % eats any papersize options and ignores them\ldots % \begin{macrocode} \LoadClass[12pt,letterpaper,onecolumn,oneside]{article}[2004/02/16] % \end{macrocode} % \texttt{geometry} package puts marks in to suggest to dvi interpretors % to do the right thang for Letter paper\ldots % \begin{macrocode} \RequirePackage[dvips,letterpaper]{geometry}[2002/07/08] % \end{macrocode} % \ldots and make sure your printer driver (which means % \textit{Ghostscript} in my case) knows Letter. % I say again, you \emph{must} use American 8.5"x11" Letter % paper---stationers in the UK may call it ``US Quarto'' if they've % even heard of it, see\ldots\\ % \href{http://www.gwydir.demon.co.uk/jo/units/print.htm}% % {\texttt{http://www.gwydir.demon.co.uk/jo/units/print.htm}} % \begin{macrocode} \setlength{\paperheight}{11in} \setlength{\paperwidth}{8.5in} % \end{macrocode} % % \emph{Must} have \texttt{Courier} as font (may cause warnings about % font stuff, ignore)\ldots % \begin{macrocode} \RequirePackage{courier}[2004/09/15] \renewcommand*{\familydefault}{\ttdefault} % \end{macrocode} % You should \emph{not} hyphenate or full justify for Nicholl format\ldots % \begin{macrocode} \raggedright % \end{macrocode} % \begin{macro}{Page Nums} % Arabic top right, I'll live with where \TeX\ puts the margin\ldots % \begin{macrocode} \pagenumbering{arabic} \pagestyle{myheadings} % \end{macrocode} % (You can force the page numbers out towards the right with \\ % |\markright{\hspace*{6.2in}}| \\ % in the document preamble, at the cost of `|Overfull hbox|' warnings, % if you like.) % \end{macro} % \begin{macro}{CR/LF} % Line spacing / pitch---it looks to me the standard % \LaTeXe\ \texttt{courier} font is correct pitch, % 12pt skip is what's in \texttt{script.pdf}\ldots % \begin{macrocode} \setlength{\baselineskip}{12pt plus 0pt minus 0pt} % \end{macrocode} % and this |\baselinestretch| appears to emulate \texttt{script.pdf} % closely and, more importantly, measures up as matching the effect % of the |\baselineskip| value---it matches what \textit{Movie Magic % Screenwriter} does, for instance\dots % \begin{macrocode} \renewcommand*{\baselinestretch}{0.8} % \end{macrocode} % \textit{vspace} adjustment in |\minipage| and |\parbox| in dialogue % to correct line spacing, should likely be adjusted if % |\baselinestretch| is altered for some (crazy) reason\ldots % \changes{1.1.3}{2006 Oct 16}{minor format fix, v1.508} % \begin{macrocode} \newcommand*{\dialfix}{\vspace{2pt}} % \end{macrocode} % skip one line between paras\ldots % \begin{macrocode} \setlength{\parskip}{\baselineskip} % \end{macrocode} % no paragraph indent\ldots % \begin{macrocode} \setlength{\parindent}{0in} % \end{macrocode} % \end{macro} % \begin{macro}{\slugspace} % Extra inter-word spacing in sluglines\ldots % \begin{macrocode} \newcommand*{\slugspace}{\hspace{2.0em plus 0em minus 0em}} % \end{macrocode} % (will result in a total of |3em| space). % \end{macro} % \begin{macro}{Margins/tabs} % \changes{1.1.4}{2006 Oct 17}{minor code changes, revision to documentation, v1.509} % See specs, % fudge factors (i.e.\ a ``gutter'') are needed to resemble % the ``correct'' layout---take a ruler to it and \texttt{script.pdf}. % % 0.1" represents |1 em| in \texttt{courier} 12pt 10 pitch. % \begin{macro}{left margin} % 1.5", default 1" + % \begin{macrocode} \setlength{\evensidemargin}{0.5in} \setlength{\oddsidemargin}{0.5in} % \end{macrocode} % \end{macro} % \begin{macro}{top margin} % 0.5" to number, 1" to body\ldots % \begin{macrocode} \setlength{\topmargin}{-0.5in} \setlength{\headsep}{0.4in} \setlength{\topskip}{0in} % \end{macrocode} % \end{macro} % \begin{macro}{bottom margin} % 11" - (1" top margin) - (0.5" bottom) = % \begin{macrocode} \setlength{\textheight}{9.5in} % \end{macrocode} % \ldots bottom can go to 1.5" for page breaking purposes. % \end{macro} % \begin{macro}{right margin} % 6" width for description text to give 1" right margin, +0.1" fudge\ldots % \begin{macrocode} \setlength{\textwidth}{6.0in} \newlength{\widthgutter} \setlength{\widthgutter}{0.1in} \addtolength{\textwidth}{\widthgutter} % \end{macrocode} % (later on, we must adjust centring and flush right to the ``correct'' % margin by subtracting |\widthgutter|). % \end{macro} % % \textbf{Tabbing / spacing dialogues}\\ % Width of dialogue text, 3" with 0.2" fudge\ldots % \begin{macrocode} \newlength{\dialwidth} \setlength{\dialwidth}{3.0in} \newlength{\dialgutter} \setlength{\dialgutter}{0.2in} \addtolength{\dialwidth}{\dialgutter} % \end{macrocode} % 3" from left edge of page (1.5" left margin + 1.5")\ldots % \begin{macrocode} \newcommand*{\dialtab}{\hspace*{1.5in}} % \end{macrocode} % \textbf{name}, tab in 4.2" (margin + |\dialtab| + |\dialnametab|) % from left edge of page\ldots % \begin{macrocode} \newcommand*{\dialnametab}{\hspace*{1.2in}} % \end{macrocode} % parenthetical 1.5" with 0.2" fudge\ldots % \begin{macrocode} \newlength{\parenwidth} \setlength{\parenwidth}{1.5in} \addtolength{\parenwidth}{\dialgutter} % \end{macrocode} % parenthetical, tab in 3.7" (margin + |\dialtab| + |\parentab|) % from left edge of page\ldots % \begin{macrocode} \newcommand*{\parentab}{\hspace{0.7in}} % \end{macrocode} % % AFAICS floats not involved\ldots % \begin{macrocode} \renewcommand*{\textfraction}{1} \renewcommand*{\topfraction}{0} \renewcommand*{\bottomfraction}{0} % \end{macrocode} % \end{macro} % \begin{macro}{Title Pages} % \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} % % 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.) % % \begin{macro}{\nicholl} % For Nicholl Competition---just the title\ldots % \begin{macrocode} \newcommand{\nicholl}{ \thispagestyle{empty} \vspace*{2.25in} \begin{center}\MakeUppercase{\@title}\end{center} \newpage\setcounter{page}{1} } % \end{macrocode} % \end{macro} % \begin{macro}{\address} % Your address details for the title page\ldots % \begin{macrocode} \newcommand{\@address}{Contact via Agency} \newcommand{\address}[1]{\renewcommand{\@address}{#1}} % \end{macrocode} % \ldots see also\ldots % \end{macro} % \begin{macro}{\agent} % Some people like to put copyright and WGA registration % details on their submitted scripts\ldots 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 % 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 % 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 % \begin{macrocode} \newcommand{\@agent}{~} \newcommand{\agent}[1]{\renewcommand{\@agent}{#1}} % \end{macrocode} % \end{macro} % \begin{macro}{\titskip} % Determines how far down below the title the extra info % on the title page is written. % You may have to adjust the |\titskip| if you put in % a lot of text for |\address| and/or |\agent| but if you do % there's probably too much---it's a rubber length\ldots % \begin{macrocode} \newlength{\titskip} \setlength{\titskip}{3.75in plus 0in minus 1.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, % \begin{macrocode} \newcommand{\coverpage}{ \thispagestyle{empty} \vspace*{2.25in} \begin{center}{\MakeUppercase{\@title}}\\ \vspace{\baselineskip} by\\ \vspace{\baselineskip} \@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 % \begin{macrocode} \parbox[t]{2.0in}{\@agent}\hspace{2.0in} \parbox[t]{2.0in}{\@author\\\@address} % \end{macrocode} % Reset page numbers\ldots % \begin{macrocode} \newpage\setcounter{page}{1} } % \end{macrocode} % \end{macro} % End title page---author details % \end{macro} % \begin{macro}{\more \contd} % \changes{1.1.6}{2006 Oct 22}{minor code changes, revision to % documentation, v1.512} % \textbf{More and Continued.} You may want to use these % macros if you feel it's necessary to follow what appears to % be the ``older'' style where they aren't only used for % pagebreaks\ldots % \begin{macrocode} \newcommand*{\more}{(MORE)} % \end{macrocode} % \begin{macrocode} \newcommand*{\contd}{(CONT'D)} % \end{macrocode} % \end{macro} % \textbf{Dialogue blocks}\ldots % \begin{macro}{\paren} % |\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 % \begin{macrocode} \newcommand{\paren}[2][\\]{% #1\parentab\parbox[t]{\parenwidth}{\raggedright(#2)\dialfix}\\ } % \end{macrocode} % \end{macro} % \begin{macro}{dialogue env} % |\begin{dialogue}[directions]{character name}| \ \ldots\ |\end{dialogue}|\\ % |\begin{dialogue}{character name}| \ \dots\ |\end{dialogue}|\\ % |\minipage| won't allow pagebreaks, see below for new manual % pagebreak command for this environment. Do \emph{not} have blank lines % inside this environment. % \textbf{Name} is outside |\minipage| to mitigate `|Overfull \hbox|' % warnings with long names\ldots % \begin{macrocode} \newenvironment{dialogue}[2][]{ \dialtab\dialnametab\hbox{\MakeUppercase{#2}}\\* \dialtab\begin{minipage}[b]{\dialwidth} \dialfix \raggedright \ifthenelse{\not\equal{#1}{}} { \paren[]{#1} }{} }{ \end{minipage} } % \end{macrocode} % \end{macro} % \begin{macro}{\dialbreak} % Forcing pagebreak in dialogue,\\ % |\dialbreak{Character}| \\ % |\dialbreak[directions]{Character}|\\ % (need to know character name---\LaTeXe\ scoping rules don't % seem to like global vars, somebody tell me otherwise) % \emph{Note:} % 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}% \end{dialogue} \newpage \ifthenelse{\not\equal{#1}{}} { \begin{dialogue}[#1]{\MakeUppercase{#2} \contd} }{ \begin{dialogue}{\MakeUppercase{#2} \contd} } } % \end{macrocode} % \end{macro} % \textbf{Sluglines}\\ % Optional arg for night/day. % 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{macrocode} \newcommand{\intslug}[2][]{ \MakeUppercase{INT. #2}% \ifthenelse{\not\equal{#1}{}} {% \slugspace\MakeUppercase{#1}\hspace{\fill} }{} \nopagebreak } % \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 } % \end{macrocode} % \end{macro} % \begin{macro}{\intextslug} % Apparently people do this\dots \\ % INT./EXT. SLUGLINE DESCRIPTION \quad DAY\\ % |\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 } % \end{macrocode} % \end{macro} % \begin{macro}{\extintslug} % and/or this\dots \\ % EXT./INT. SLUGLINE DESCRIPTION \quad DAY\\ % |\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 } % \end{macrocode} % \end{macro} % \textbf{Title Over} % % \begin{macro}{titleover env} % |\begin{titleover}| \ \ldots\ |\end{titleover}| \\ % as pseudo dialogue environment (think ``Star Wars'') % the optional argument is for internal use \emph{only}\ldots % \begin{macrocode} \newenvironment{titleover}[1][]{ \ifthenelse{\not\equal{#1}{}} { TITLE OVER #1: }{ TITLE OVER: }% \\*[\baselineskip] \dialtab\begin{minipage}[b]{\dialwidth} \raggedright }{ \end{minipage} } % \end{macrocode} % \end{macro} % % \begin{macro}{\titbreak} % pagebreak for titleover environment\ldots % \begin{macrocode} \newcommand{\titbreak}{ \\\dialnametab\hbox{\more}% \end{titleover} \newpage \begin{titleover}[\contd] } % \end{macrocode} % \end{macro} % \begin{macro}{\centretitle} % |\centretitle| |{short text}| \\ % titleover for short text most often a date, centred with % adjustment for gutter\ldots % \begin{macrocode} \newcommand{\centretitle}[1]{ TITLE OVER:\\*[\baselineskip] \hspace*{\fill}{#1}\hspace{\fill}\hspace{\widthgutter} } % \end{macrocode} % \end{macro} % \textbf{Other macros} % % \begin{macro}{\fadein} % Always the \emph{first} thing in your script, for some reason\ldots % \begin{macrocode} \newcommand{\fadein}{ FADE IN: } % \end{macrocode} % \end{macro} % \begin{macro}{\fadeout} % Always the last thing in your script for some reason, % flush right with adjustment for gutter\ldots % % \begin{macrocode} \newcommand{\fadeout}{ \hspace*{\fill}FADE OUT:\hspace{\widthgutter} } % \end{macrocode} % \end{macro} % \begin{macro}{\intercut} % flush right with adjustment for gutter\ldots % \begin{macrocode} \newcommand{\intercut}{ \hspace*{\fill}INTERCUT WITH:\hspace{\widthgutter} } % \end{macrocode} % \end{macro} % \begin{macro}{\pov \revert} % \changes{1.1.7}{2006 Oct 25}{minor revisions, v1.516} % Switch point of view\ldots % \begin{macrocode} \newcommand*{\pov}{P.O.V.} % \end{macrocode} % \ldots switch it back\ldots % \begin{macrocode} \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 % \begin{macrocode} \newcommand{\theend}{ \hspace*{\fill}THE END\hspace{\fill}\hspace{\widthgutter} }%THE END % \end{macrocode} % \end{macro} %\iffalse % %\fi %\iffalse %<*hard> %\fi % \begin{macro}{hardmarg.sty} % % \textbf{Hard Margins package} \\ % Re-defines margins to exactly as stated in \texttt{script.pdf}. % Try it out and see if you like it. Also shows you what % todo if you want to fiddle with some of the margin settings\ldots % % Issue info as to what we do\ldots % \begin{macrocode} \ProvidesPackage{hardmarg}[2006/11/04 v1.521 For use with class screenplay (C)2006 John Pate released under the GNU General Public License] % \end{macrocode} % Hard 1" right margin\ldots % \begin{macrocode} \setlength{\textwidth}{6.0in} % \end{macrocode} % Flushright and centring use this, so eliminate it\ldots % \begin{macrocode} \setlength{\widthgutter}{0in} % \end{macrocode} % Set dialogue to 3" width, right margin 2.5"\dots % \begin{macrocode} \setlength{\dialwidth}{3.0in} % \end{macrocode} % Set parentheticals to 1.5" width, right margin 3.3"\ldots % \begin{macrocode} \setlength{\parenwidth}{1.5in} % \end{macrocode} % \end{macro} %\iffalse % %\fi % % \section{More about paper} % \changes{1.1.2}{2006 Oct 12}{revision to documentation, v1.507} % % Unless you're in America, getting Letter paper will be a problem. % Another issue is that the recommended 20lb weight paper is % equivalent to 75gsm, a non-standard weight for metric papers. % (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). % % IMHO good quality 20lb is nicer in handling and you can very much % tell the difference. Old-style typing paper was usually pretty % thin for ``normal'' use. % % Copy Shops will cut down A3 paper to 8.5" by 11" for you but % whether they'll get you 75gsm weight is another matter. One % told me he could ``probably'' get 75gsm paper if I really % wanted it. % % Buying Letter paper mail order in the UK is very expensive and % I haven't seen American-style pound bond weights quoted---the % ``heavy'' paper I have was sourced in the UK as % XEROX PREMIER 216mm~x~279mm 80gsm. % % Another issue is that the paper must be three-hole punched. Specs % gleaned from the Internet suggest that Letter three-hole paper is % a central hole (i.e.\ 140mm down from the top edge) with the other % two holes 108mm up, and down, from that central hole. I'm hoping % to get some genuine three-hole from America to check that out, % meantime I got a Copy Shop to drill a ream of paper for me (and % some card for covers). I'd advise that if you can't buy punched % paper, get a Copy Shop to drill it for you. It produces a vastly % neater result than using a hole punch---and a suitable hole punch % for ``home use'' is going to be rather expensive in any case. % % And then there's the paper fasteners\ldots\\ % To cut a long story short, here's what you want: % \begin{itemize} % \item ACCO solid brass \#5 brads, 1.25" long, part number 71505; % \item ACCO \#2 brass washers, part number 71511. % \end{itemize} % \ldots and a rubber mallet to hammer them in with. % The rubber mallet is easy enough to come by but % you'll have to source the paper fasteners from America (it seems to % be mainly the screenwriting fraternity that call them ``brads'' % rather than paper fasteners, BTW). The brass-plated ersatz % versions available in the UK are clearly \emph{not} up to the job % by a long shot. And beware that ACCO make a version that isn't % solid brass and is inferior to these all-brass ones, hence the % necessity for part numbers. % % The washers are for the back, where the prongs are folded over; % you use \emph{two brads}, each with a single washer, one in the % 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 % pages is a better bet---and that's with plenty of whitespace in the % passages of description. % % \section{Todo} % If anybody else uses it maybe they'll spot stuff that's % wrong but \textsl{Johnny} says, ``It works for me.'' % % The test file \texttt{test.tex} shows \texttt{screenplay} % markup applied to ``FOR A FEW DAYS MORE'' % (\href{http://www.oscars.org/nicholl/script.pdf}% % {\texttt{http://www.oscars.org/nicholl/script.pdf}}) % and the \texttt{test.pdf} file was generated from that. % % A printout of the first page \texttt{script.pdf} and % \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}. % % You can easily tell which is which because \texttt{test.pdf} % numbers the first page whilst \texttt{script.pdf} starts numbering % on page~2. % % If I get any \emph{useful} feedback I \emph{may} alter things % accordingly. % % Feel free to help with documentation. % % \newpage % \section{A note for our Sponsor} % % I don't think I'm alone when I say\ldots % \bigskip % % \Huge Hail Eris! % % \bigskip % All Hail Discordia! % \normalsize % \newpage % %\iffalse %<*rider> %% Test document: facsimile of 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] \title{For a Few Days More} \author{April Rider} \address{555 George St NNW\\ Kaplan, ND 77777\\ 999-999-9999} \begin{document} \coverpage \fadein \intslug[day]{Driskill Hotel Seminar Room} JOE and APRIL burst through the doors into a clean, well-lit seminar room. \begin{dialogue}{Joe} Are we in time? \end{dialogue} \begin{dialogue}{April} How could they start without us? We're the main attraction. \end{dialogue} Joe catches his breath as he leans against the podium at the front of the room. \begin{dialogue}[looking about the room]{Joe} We are? \end{dialogue} \begin{dialogue}{April} Don't be a moron. You know we've been invited to Austin to discuss script format. \end{dialogue} \begin{dialogue}{Joe} But why is the room empty? \end{dialogue} April and Joe both look out across the room~-- rows of empty chairs and nary a person in sight. \begin{dialogue}{April} Okay, okay, don't panic. \end{dialogue} She takes three deep breaths. Then she looks at her watch and smiles. \begin{dialogue}[continuing]{April} We're an hour early.\dots We should rehearse. \end{dialogue} \begin{dialogue}{Joe} Okay, you start. Margins? \end{dialogue} \begin{dialogue}{April} Left, 1.5 inches. Right, 1.0 inches. Top, 1.0 inches to the body, 0.5 inches to the number. Bottom, 0.5 to 1.5 inches, depending on where the page break comes. \end{dialogue} \end{document} % %\fi %\iffalse %<*example> \documentclass{screenplay}[2006/11/04] \title{Example .tex File} \author{John Pate} \address{the address\\ here if you're\\ going postal\\ UK\\ +44~(0)131~999~9999\\ johnny@dvc.org.uk } %% ... preamble finished, let's go ... \begin{document} %% Make a title page ... \coverpage %% ...or use \nicholl %% TeX allows quite a lot of leeway in whitespace, so I've messed this %% up a bit. I find keeping the format structured helps me a lot tho. %% 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. %% %% Anyhoo, on with the show ... %% %% for some reason this always happens at the start ... \fadein \intslug[illumination]{example sample -- screenplay.cls} \begin{dialogue}{Bob} That means that someone sabotaged the unit and killed the President! Was it one of us? \end{dialogue} \begin{dialogue}{Brown} Who else is mad but us, Condi\ldots \paren{beat} 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 is at another console slightly further away. \begin{dialogue}{John} The planetoid seems to have a thin crust covering a nickel-iron core. Could have been an Earth-like planet at one time. \end{dialogue} \begin{dialogue}{Mark} We're coming up on the radio source now. \end{dialogue} Brown walks in and goes to a console. He has a PARROT on his shoulder. The Parrot has an air of quiet insouciance. \begin{dialogue}{Fred} Switch the visual to main screen so we can get a good look.\end{dialogue} They look up at the main screen. \begin{dialogue}[to John and Mark]{Fred} Lock on to that. \dialbreak[to Tom]{Fred}% Establish planetary orbit. \end{dialogue} \intextslug[day]{in or out} Apparently some people do this. \extintslug[night]{out or in} Or even this. \extslug[day or nite]{NO WARRANTY -- EXPRESS OR IMPLIED} \pov\ I made the slugline DAY/NIGHT optional 'cause in space no-one can 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. \centretitle{http://dvc.org.uk/sacrific.txt/} That was a centred titleover. \begin{titleover}There's a titleover environment for dialogue-like layout if you're doing the "Star Wars" thing.\end{titleover}\extslug[All Hail Discordia!]{where to find us} http://dvc.org.uk/sacrific.txt/screenplay.zip Use the source, Luke. \extslug[illumination]{for definitive info on layout} http://www.oscars.org/nicholl/format.html %% and this always happens at the end ... \fadeout \theend \end{document} % %\fi % \Finale \endinput