%% %% This is file `screenplay-pkg.sty' % Copyright 2006 by John Pate % Copyright 2015 by Alan Munn % % This package implements the tools of the screenplay document class % in the form of a package so that screenplay fragments can be included % within another document class. % % The main documentation for the package is contained in the screenplay class % documentation. Please read that in addition the included documentation. % % All commands related to the titlepage in screenplay.cls have been % eliminated. % % One new environment is implemented: % % \begin{screenplay} ... \end{screenplay} % % Two additional user commands are added to allow for user adjustment of the % fragment font and linespacing (the setspace package is used for spacing unless memoir is loaded). % % \screenspacing{} % sets the linespacing for screenplay fragments; default % is \onehalfspacing % \screenfont{} % sets the font for screenplay fragments; default is % \ttfamily % % % \sccenter % American spellings of centring commands now possible % \centertitle % % % This package may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This package has the LPPL maintenance status `maintained'. % % The Current Maintainer of this package is Alan Munn. % % This package consists of the file % % screenplay-pkg.sty % % and documentation files: % % screenplay-pkg.tex, screenplay-pkg.pdf, % screenplay-pkg-example.tex and screenplay-pkg-example.pdf. % % Version 1.0 2015/07/11 % Version 1.1 2017/08/05 Added memoir support % \NeedsTeXFormat{LaTeX2e}[2003/12/01] \ProvidesPackage{screenplay-pkg}[2017/08/05 v1.1 LaTeX2e Draft Screenplay tools adapted from the screenplay document class original code (C)2006 John Pate package modifications (C)2015-2017 Alan Munn released under the LPPL] \DeclareOption*{% \PackageError{screenplay-pkg}{Unwanted option '\CurrentOption'}% {There are no options available for screenplay-pkg}} \ProcessOptions\relax \RequirePackage{ifthen}[2001/05/26] % Use setspace or memoir for linespacing AM \@ifclassloaded{memoir} {\newcommand*{\@screenspacing}{\OnehalfSpacing}} {\RequirePackage{setspace} \newcommand*{\@screenspacing}{\onehalfspacing}} % screenplay font will default to ttfamily AM \newcommand*{\@screenfont}{\ttfamily} % screenplay font can be changed with \screenfont macro AM \newcommand*{\screenfont}[1]{\renewcommand\@screenfont{#1}} \newcommand*{\screenspacing}[1]{\renewcommand\@screenspacing{#1}} \newcommand*{\dialfix}{\vspace{2pt}} % new command to set the internal spacing and formatting of % the screenplay fragments AM \newcommand*{\@screensetup}{% \@screenspacing\@screenfont\raggedright \setlength{\parskip}{\baselineskip} \setlength{\parindent}{0in}} \newcommand*{\slugspace}{\hspace{2.0em plus 0em minus 0em}} \newlength{\widthgutter} \setlength{\widthgutter}{0.1in} % Don't want to change global \textwidth in the package version %\addtolength{\textwidth}{\widthgutter} \newlength{\dialwidth} \setlength{\dialwidth}{3.0in} \newlength{\dialgutter} \setlength{\dialgutter}{0.2in} \addtolength{\dialwidth}{\dialgutter} \newcommand*{\dialtab}{\hspace*{1.5in}} \newcommand*{\dialnametab}{\hspace*{1.2in}} \newlength{\parenwidth} \setlength{\parenwidth}{1.5in} \addtolength{\parenwidth}{\dialgutter} \newcommand*{\parentab}{\hspace{0.7in}} % Added new environment for screenplay fragments AM \newenvironment{screenplay}{\@screensetup}{} \newcommand*{\more}{(MORE)} \newcommand*{\contd}{(CONT'D)} \newcommand{\paren}[1]{% \parentab\parbox[t]{\parenwidth}{\raggedright(#1)\dialfix}\\ } \newenvironment{dialogue}[2][]{% \dialtab\dialnametab\hbox{\MakeUppercase{#2}}\\* \dialtab\begin{minipage}[b]{\dialwidth} \dialfix \raggedright \ifthenelse{\not\equal{#1}{}} {% \paren{#1} }{} }{% \end{minipage} } \newcommand{\dialbreak}[2][]{% \nopagebreak \dialnametab\hbox{\more}% \end{dialogue} \newpage \ifthenelse{\not\equal{#1}{}} { \begin{dialogue}[#1]{\MakeUppercase{#2} \contd} }{% \begin{dialogue}{\MakeUppercase{#2} \contd} } } \newcommand*{\placesep}{.~} \newcommand{\slug}[3][]{% \MakeUppercase{#2\placesep#3}% \ifthenelse{\not\equal{#1}{}} {% \slugspace\MakeUppercase{#1}\hspace{\fill} }{} \nopagebreak } \newcommand*{\inttext}{INT} \newcommand{\intslug}[2][]{\slug[#1]{\inttext}{#2}} \newcommand*{\exttext}{EXT} \newcommand{\extslug}[2][]{\slug[#1]{\exttext}{#2}} \newcommand*{\sepintext}{./} \newcommand{\intextslug}[2][]{% \slug[#1]{\inttext\sepintext\exttext}{#2}} \newcommand{\extintslug}[2][]{% \slug[#1]{\exttext\sepintext\inttext}{#2}} \newcommand*{% \sccentre}[1]{\hspace*{\fill}{#1}\hspace{\fill}\hspace{\widthgutter}} \let\sccenter\sccentre \newcommand*{% \scflushright}[1]{\hspace*{\fill}{#1}\hspace{\widthgutter}} \newcommand*{\punctchar}{:} \newcommand*{\titleovertext}{TITLE~OVER} \newenvironment{titleover}[1][]{% \ifthenelse{\not\equal{#1}{}} {% \titleovertext #1\punctchar }{% \titleovertext\punctchar }% \\*[\baselineskip] \dialtab\begin{minipage}[b]{\dialwidth} \raggedright }{% \end{minipage} } \newcommand{\titbreak}{% \nopagebreak \dialnametab\hbox{\more}% \end{titleover} \newpage \begin{titleover}[\contd]% } \newcommand{\centretitle}[1]{% \titleovertext\punctchar\\*[\baselineskip]% \sccentre{#1} } \newcommand*{\fadeintext}{FADE~IN} \newcommand{\fadein}{% \fadeintext\punctchar } \newcommand*{\fadeouttext}{FADE~OUT} \newcommand{\fadeout}{% \scflushright{\fadeouttext\punctchar} } \newcommand*{\intercuttext}{INTERCUT~WITH} \newcommand{\intercut}{% \scflushright{\intercuttext\punctchar} } \newcommand*{\pov}{P.O.V.} \newcommand*{\revert}{REVERSE~\pov} \newcommand*{\thirty}{THE~END} \newcommand{\theend}{% \sccentre{\thirty} } % add some American English spellings \let\sccenter\sccentre \let\centertitle\centretitle \endinput %% End of file `screenplay-pkg.sty'.