From 503f8a5703fafd2ac586dfe19ad586cb218426cb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 24 Sep 2006 13:23:19 +0000 Subject: screenplay update (22sep06) git-svn-id: svn://tug.org/texlive/trunk@2184 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/screenplay/screenplay.cls | 221 ++++++++++++--------- 1 file changed, 125 insertions(+), 96 deletions(-) (limited to 'Master/texmf-dist/tex/latex/screenplay') diff --git a/Master/texmf-dist/tex/latex/screenplay/screenplay.cls b/Master/texmf-dist/tex/latex/screenplay/screenplay.cls index 186a3ec309a..cfb30df3f5e 100644 --- a/Master/texmf-dist/tex/latex/screenplay/screenplay.cls +++ b/Master/texmf-dist/tex/latex/screenplay/screenplay.cls @@ -1,4 +1,4 @@ -% $Header: /home/johnny/html/Sacrifice/LaTeX/RCS/screenplay.cls,v 1.440 2006/09/19 12:58:41 johnny Exp $ +% $Header: /home/johnny/html/Sacrifice/LaTeX/RCS/screenplay.cls,v 1.451 2006/09/23 08:39:25 johnny Exp $ % % % Provides markup mostly along the lines of @@ -11,17 +11,26 @@ % See specs, licence, at end. % ``It works for me.'' % I'm no kind of TeXpert! YOUR MILEAGE MAY VARY +% +% Tested with ... +% pdfeTeX 3.141592-1.21a-2.2 (Web2C 7.5.4) +% dvips(k) 5.95a +% kpathsea version 3.5.4 +% article 2004/02/16 v1.4f + -\NeedsTeXFormat{LaTeX2e} -\ProvidesClass{screenplay} +% Version used in testing ... +\NeedsTeXFormat{LaTeX2e}[2003/12/01] +\ProvidesClass{screenplay}[2006/09/23 v1.451 LaTeX2e Draft Screenplay document class + (C)2006 John Pate + released under GNU General Public License.] -% article class seems to work ... +% Some initialization... + +% Needed for testing for optional args ... % -\DeclareOption*{ - \PassOptionsToClass{\CurrentOption}{article} - } -\ProcessOptions +\RequirePackage{ifthen} % MUST be 12pt, MUST be American letter paper NOT A4 ... @@ -32,10 +41,10 @@ % \usepackage[dvips,letterpaper]{geometry} % -% and make sure your printer driver knows letter -% yes, you NEED American 8.5"x11" letter paper not A4 -% stationers in the UK call it `quarto' paper -% see http://www.gwydir.demon.co.uk/jo/units/print.htm +% and make sure your printer driver knows letter. +% Yes, you NEED American 8.5"x11" letter paper not A4 +% stationers in the UK call it `quarto' paper, see ... +% http://www.gwydir.demon.co.uk/jo/units/print.htm % MUST have Courier as font (may cause warnings about @@ -45,39 +54,53 @@ \renewcommand*\familydefault{\ttdefault} -% needed for testing for optional args ... -% -\RequirePackage{ifthen} - - -% can load hyphenation ability for non-standard font ... +% Can load hyphenation ability for non-standard font ... %\usepackage[htt]{hyphenat} % but DON'T, you should NOT hyphenate for Nicholl format % you want this ... % \raggedright % -% you'll have to nuke \raggedright wherever found to test out +% You'll have to nuke \raggedright wherever found to test out % hyphenation % -% between this and the `fixed pitch' typewriter font we may -% want to live with one or two `Overfull \hbox' warnings in -% final copy (a word going into the right margin). You will -% likely have to add a few \\ to some of the dialogue text -% blocks to help TeX out with linebreaks so the formatting -% works, or you'll get extra space where you don't want it. +% You will likely have to add a few \\ to some of the dialogue +% text blocks (and even maybe in the scene descriptions) +% to help \TeX\ out with linebreaks, or you'll get extra space +% where you don't want it (sometimes even where `Overfull \hbox' +% warnings are absent). % % LaTeX isn't really meant for fixed pitch but we're % pretending to be a typewriter here. +% end intialization -% page numbers top right ... + +% Page Numbers top right ... \pagestyle{myheadings} -% margins and such see specs at end ... -% -- fudge factors are apparent in `script.pdf' (use a ruler) -% they're needed to approach the `correct' margins with tt font ... +% Line spacing / Pitch / parindent +% +% fixed pitch, 10pt ... +\setlength{\baselineskip}{10pt plus 0pt minus 0pt} +% AFAICS floats not involved ... +\renewcommand*{\textfraction}{1} +\renewcommand*{\topfraction}{0} +\renewcommand*{\bottomfraction}{0} +%\setlength{\floatsep}{\baselineskip} +%\setlength{\textfloatsep}{\floatsep} +%\setlength{\intextsep}{\floatsep} +% +% skip one line between paras ... +\setlength{\parskip}{\baselineskip} +% no paragraph indent ... +\setlength{\parindent}{0in} + + +% Margins and such, see specs at end +% fudge factors needed to resemble the `correct' +% layout - take a ruler to it and `script.pdf' ... % % left margin 1.5", default 1" + ... \setlength{\evensidemargin}{0.5in} @@ -95,42 +118,36 @@ % 6" for 1" right margin ... \setlength{\textwidth}{6.1in} % 0.1" fudge % +% extra inter-word spacing in sluglines ... +\newcommand{\slugspace}{\hspace{2.0em plus 0em minus 0em}} +%\newcommand{\slugspace}{ - } +%\newcommand{\slugspace}{\quad} +% % tabbing / spacing for dialogues ... \newcommand{\dialwidth}{3.2in} % 3" wide with 0.2" fudge -\newcommand{\dialtab}{\hspace{1.5in}} % 3" from left edge +\newcommand{\dialtab}{\hspace*{1.5in}} % 3" from left edge \newcommand{\dialnametab}{\hspace*{1.2in}} % NAME, tab in 4.2" from left -\newcommand{\parenwidth}{1.7in} % parenthetical 1.5" with 0.2" fudge +\newcommand{\parenwidth}{1.7in} %parenthetical 1.5" with 0.2" fudge \newcommand{\parentab}{\hspace{0.7in}} % paren, tab in 3.7" from left % -% kludgy fix for formatting of parenthetical ... -\newcommand{\parenkludge}{\vspace{5pt}} -% multi-line parentheticals require this be in, tested with -% TeX 3.141592 (Web2C 7.5.4) -% pdfeTeX 3.141592-1.21a-2.2 (Web2C 7.5.4) -% kpathsea version 3.5.4 - - -% line spacing / pitch / parindent +\newcommand{\dialfix}{\vspace{5pt}} % adjust space above dialogue % -% fixed pitch, 10pt ... -\setlength{\baselineskip}{10pt plus 0pt minus 0pt} -% LaTeX floats minipages and centring (I assume) so fix them ... -\setlength{\floatsep}{\baselineskip} -\setlength{\textfloatsep}{\baselineskip} -\setlength{\intextsep}{\baselineskip} -% -% skip one line between paras ... -\setlength{\parskip}{\baselineskip} -% no paragraph indent ... -\setlength{\parindent}{0in} +% fix for formatting of multi-line parenthetical ... +\newcommand{\parenkludge}{\dialfix} +% ... more missing space to put back +% (I really should look at the TeX source sometime.) -% for title page - author details ... +% Title Page - Author details ... % % use one of \titleauthor, \nicholl, \titleextra to taste ... % this must be the first command after \begin{document} % -% you may have to adjust the \vspace if you put in a lot of text +% you may have to adjust the \titlesepspace if you put in a lot of text +% +\newcommand{\titlesepspace}{\vspace{3.75in plus 0in minus 1.0in}} +% there's also a the space occupied by the optional copyright year +\newcommand{\copyspace}{\vspace*{2ex plus 0ex minus 0ex}} % % \titleauthor[year]{title}{author's name}{contact details\\email etc} @@ -144,17 +161,17 @@ \vspace{\baselineskip} by\\ \vspace{\baselineskip} - #3 + #3\\ + \vspace*{\baselineskip} \ifthenelse{\not\equal{#1}{}} { - \\\vspace{\baselineskip}\scriptsize\copyright\normalsize#1% - \end{center} - \vspace{4.0in} - }{% - \end{center} - \vspace{4.2in} + \scriptsize\copyright\normalsize#1 + }{ + \copyspace } - \hspace{4.0in}\parbox[t]{2.0in}{\raggedright#4} + \end{center} + \titlesepspace + \hspace*{4.0in}\parbox[t]{2.0in}{\raggedright#4} % reset page numbers for actual blurb ... \newpage\setcounter{page}{1} } %titleauthor @@ -182,8 +199,11 @@ \vspace{\baselineskip} by\\ \vspace{\baselineskip} - #3\end{center} - \vspace{4.2in} + #3\\ + \vspace*{\baselineskip} + \copyspace + \end{center} + \titlesepspace \parbox[t]{2.0in}{\raggedright#1}\hspace*{2.0in}\parbox[t]{2.0in}{\raggedright#4} % reset page numbers for actual blurb ... \newpage\setcounter{page}{1} @@ -196,9 +216,10 @@ % \paren{hello world} % parenthetical within dialogue env stage dirs ... % only for _very short_ text (directions) within dialogue env +% the [optional arg] is for internal use only % -\newcommand{\paren}[1]{% -\\\parentab\parbox[t]{\parenwidth}{\raggedright(#1)\parenkludge}\\ +\newcommand{\paren}[2][\\]{% +#1\parentab\parbox[t]{\parenwidth}{\raggedright(#2)\parenkludge}\\ } %paren @@ -208,20 +229,22 @@ % \begin{dialogue}{character name} ... \end{dialogue} % % minipage won't allow pagebreaks, see below for new manual -% pagebreak command for this env -% (you can centre the NAME but tabbing is more typewriter-esque) +% pagebreak command for this env. +% NAME is outside \minipage to mitigate `Overfull \hbox' +% warnings with long names % \newenvironment{dialogue}[2][]{ +\dialtab\dialnametab\hbox{\MakeUppercase{#2}}\nopagebreak\\ \dialtab\begin{minipage}[b]{\dialwidth} +\dialfix \raggedright -\dialnametab\hbox{\MakeUppercase{#2}} -%\centerline{\MakeUppercase{#2}} \ifthenelse{\not\equal{#1}{}} { -\paren{#1} -}{\\} -}{ \end{minipage} +\paren[]{#1} +}{} +}{ +\end{minipage} }% end dialogue @@ -238,7 +261,6 @@ % \newcommand{\dialbreak}[2][]{ \\\dialnametab\hbox{(MORE)}% -%\centerline{(MORE)}% \end{dialogue} \pagebreak \ifthenelse{\not\equal{#1}{}} @@ -257,13 +279,14 @@ % \newcommand{\intslug}[2][]{ -\MakeUppercase{INT. #2} +\MakeUppercase{INT. #2}% \ifthenelse{\not\equal{#1}{}} - {% 1em = width of `M' -\hspace{1em}\MakeUppercase{#1} + {% +\slugspace\MakeUppercase{#1}\hspace{\fill} }{} \nopagebreak + }% intslug % \extslug[time of day]{description text} @@ -271,13 +294,14 @@ % \newcommand{\extslug}[2][]{ -\MakeUppercase{EXT. #2} +\MakeUppercase{EXT. #2}% \ifthenelse{\not\equal{#1}{}} {% -\hspace{1em}\MakeUppercase{#1} +\slugspace\MakeUppercase{#1}\hspace{\fill} }{} \nopagebreak + }% extslug % Apparently people do this ... @@ -286,13 +310,14 @@ % \newcommand{\intextslug}[2][]{ -\MakeUppercase{INT./EXT. #2} +\MakeUppercase{INT./EXT. #2}% \ifthenelse{\not\equal{#1}{}} {% -\hspace{1em}\MakeUppercase{#1} +\slugspace\MakeUppercase{#1}\hspace{\fill} }{} \nopagebreak + }% intextslug % and/or this ... @@ -301,13 +326,14 @@ % \newcommand{\extintslug}[2][]{ -\MakeUppercase{EXT./INT. #2} +\MakeUppercase{EXT./INT. #2}% \ifthenelse{\not\equal{#1}{}} {% -\hspace{1em}\MakeUppercase{#1} +\slugspace\MakeUppercase{#1}\hspace{\fill} }{} \nopagebreak + }% extintslug % Title over ... @@ -337,22 +363,22 @@ TITLE OVER:\\ % \newcommand{\titbreak}{ \\\dialnametab\hbox{(MORE)}% -%\centerline{(MORE)}% \end{titleover} \pagebreak \begin{titleover}[CONT'D] } - % title over for short text, most often a date % \centretitle{short text} % \newcommand{\centretitle}[1]{ + TITLE OVER: -\vspace{\baselineskip} \nopagebreak -\centerline{#1}\\ + +\hspace*{\fill}{#1}\hspace{\fill} + } %titleover @@ -372,9 +398,9 @@ FADE IN: % \newcommand{\fadeout}{ -\vspace{-\baselineskip} -\begin{flushright}FADE OUT:\end{flushright} -\vspace{-\baselineskip} + +\hspace*{\fill}FADE OUT: + } %fadeout @@ -383,9 +409,9 @@ FADE IN: % \newcommand{\intercut}{ -\vspace{-\baselineskip} -\begin{flushright}INTERCUT WITH:\end{flushright} -\vspace{-\baselineskip} + +\hspace*{\fill}INTERCUT WITH: + } %intercut @@ -397,8 +423,12 @@ FADE IN: % yeah! \newcommand{\theend}{ -\begin{center}THE END\end{center} -} + + +\hspace*{\fill}THE END\hspace{\fill} + + +} %THE END % specs from the Academy ... @@ -414,7 +444,6 @@ FADE IN: % Right margin: 1.0" % % DIALOGUE -% centre NAME over dialogue (deprecated) % tab NAME to: 4.2" % Left margin: 3.0" % Right margin: 2.5" @@ -429,7 +458,7 @@ FADE IN: % INT/EXT. SLUG LINE DESCRIPTION DAY/NIGHT % ^^^ some kind of extra spacing % -% $Id: screenplay.cls,v 1.440 2006/09/19 12:58:41 johnny Exp $ +% $Id: screenplay.cls,v 1.451 2006/09/23 08:39:25 johnny Exp $ % +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= % % Latest version is available as: -- cgit v1.2.3