%%
%% 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 
%
% 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).
%
%    \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
%

\NeedsTeXFormat{LaTeX2e}[2003/12/01]
\ProvidesPackage{screenplay-pkg}[2015/07/11 v1.0
LaTeX2e Draft Screenplay tools adapted from the screenplay document class
original code (C)2006 John Pate
package modifications (C)2015 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 for linespacing AM
\RequirePackage{setspace}
% 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}{\onehalfspacing}
\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'.
