You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
4.9 KiB
TeX
168 lines
4.9 KiB
TeX
%% Based on sides package Copyright (c) 2005 Wing L. Mui
|
|
%% This class package was based on the package ``plari'' written by
|
|
%% Antti-Juhani Kaijanaho in 1998.
|
|
|
|
%% 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; see the file COPYING. If not, write to
|
|
%% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
%% Boston, MA 02111-1307, USA.
|
|
|
|
\def\filedate{2005/04/21}
|
|
\def\fileversion{20050421-CTAN}
|
|
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\typeout{plari_prime <\filedate:\fileversion> - typesetting stageplay scripts}
|
|
|
|
\newif\if@Fullpage
|
|
\@Fullpagetrue
|
|
|
|
\DeclareOption{nofullpage}{\global\@Fullpagefalse}
|
|
|
|
% We will be basing this class on the report class.
|
|
|
|
\DeclareOption*{%
|
|
\PassOptionsToClass{\CurrentOption}{extreport}% or book or whatever
|
|
}
|
|
\ProcessOptions\relax
|
|
|
|
\LoadClass{extreport}
|
|
|
|
% Now we initialize the counters.
|
|
\newcounter{act}
|
|
\newcounter{scene}[act]
|
|
\renewcommand{\theact}{\Roman{act}}
|
|
\renewcommand{\thescene}{\Roman{act}:\arabic{scene}}
|
|
|
|
% The newact commands create new pages and a huge heading.
|
|
% Change the vspace parameters if you want to change the spacing after
|
|
% an act title.
|
|
\newcommand{\actdef}[1]{
|
|
\newpage{\centering \mdseries \Huge #1\par}
|
|
\vspace{1.5em plus .5em minus .5em}%
|
|
}
|
|
|
|
\newcommand{\newact}{
|
|
\refstepcounter{act}
|
|
\actdef{\MakeUppercase{Акт} \Roman{act}}
|
|
}
|
|
\newcommand{\newactnamed}[1]{
|
|
\actdef{#1}
|
|
}
|
|
|
|
% We are going to make each scene a section so scenes do not
|
|
% get orphaned from their tltles.
|
|
% To modify spacing before and after scene titles, modify this:
|
|
\newcommand{\scenedef}{\@startsection {scene}{1}{0pt}%
|
|
{3em} % space before title
|
|
{2em} % space after title
|
|
{\centering\mdseries\Large}}
|
|
|
|
% These are the new scene commands.
|
|
\newcommand{\newscene}{
|
|
\refstepcounter{scene}
|
|
{\scenedef*{\MakeUppercase{Сцена} \arabic{scene}}}
|
|
}
|
|
|
|
\newcommand{\newscenenamed}[1]{%
|
|
\refstepcounter{scene}
|
|
{\scenedef*{\MakeUppercase{#1}}}
|
|
}
|
|
|
|
\newcommand{\newscenenamednocnt}[1]{%
|
|
{\scenedef*{\MakeUppercase{#1}}}
|
|
}
|
|
|
|
% Similarly, we use sections for the dialogue to avoid orphans.
|
|
% Once again, if you wish to change the skip amounts, do so here.
|
|
\newcommand{\repldef}{
|
|
\@startsection {diag}{2}{0pt}{1em}{0.25pt}{\centering\normalsize\mdseries\scshape}
|
|
}
|
|
\newcommand{\repl}{\repldef*}
|
|
|
|
% Now for something simple...
|
|
\newcommand{\paren}[1]{(\textit{#1})}
|
|
\newcommand{\pause}{\paren{Пауза.} }
|
|
\newcommand{\chara}[1]{\textsc{#1}}
|
|
|
|
% And now some stage directions...
|
|
\newcommand{\stagedir}[1]{%
|
|
\begingroup%
|
|
\list{}{%
|
|
\listparindent=\parindent%
|
|
\parsep=\parskip%
|
|
\topsep=\z@%
|
|
\rightmargin=\leftmargin%
|
|
}%
|
|
\item%
|
|
\let\item\@undefined%
|
|
{\vspace{1em}\normalsize \scshape \mdseries#1\vspace{1ex}}%
|
|
\endlist%
|
|
\endgroup%
|
|
}
|
|
|
|
% Now comes the cast list and stage notes...
|
|
\newcommand{\castpage}{\newscenenamednocnt{\MakeUppercase{Действующие лица}}}
|
|
\newcommand{\notes}{
|
|
\newscenenamed{Примечания}
|
|
\setlength{\parindent}{2em}
|
|
}
|
|
|
|
\newcommand{\cast}[2]{
|
|
\textsc{#1}, #2. \par
|
|
}
|
|
|
|
\newcounter{note}
|
|
\newcommand{\newnote}[1]{
|
|
\refstepcounter{scene}
|
|
\@startsection {scene}{1}{0pt}{1em}{1em}{\centering\mdseries\normalsize}*{#1}
|
|
}
|
|
|
|
\newenvironment{authortext}{\setlength{\parindent}{2em}}{\setlength{\parindent}{0em}}
|
|
|
|
% We also want there to be no indents and a medskip between long paragraphs
|
|
% of text. If you do not want there to be a skip, comment out the second line.
|
|
\setlength{\parindent}{0in}
|
|
\parskip=\medskipamount\relax
|
|
|
|
% Now we make our formatting pretty. These options can be overrided easily.
|
|
\evensidemargin 0in
|
|
\topmargin 0in
|
|
\textheight 8.5in
|
|
\baselineskip 14pt
|
|
\oddsidemargin 0.25in
|
|
\textwidth 6in
|
|
|
|
% And we're done!
|
|
|
|
\RequirePackage{fontspec}
|
|
\RequirePackage{xunicode}
|
|
\RequirePackage{xltxtra}
|
|
\RequirePackage{polyglossia}
|
|
\setdefaultlanguage{russian}
|
|
\defaultfontfeatures{Mapping=tex-text, Scale=MatchLowercase, Ligatures=TeX}
|
|
\setmainfont{PT Serif}[BoldFont={* Bold}, BoldItalicFont={* Bold Italic}, SmallCapsFont = {* Caption}]
|
|
\setmonofont{PT Mono}
|
|
\setmathrm{PT Serif}
|
|
\newfontfamily{\cyrillicfont}{PT Serif}
|
|
\RequirePackage{hyperref}
|
|
\RequirePackage{indentfirst}
|
|
|
|
\if@Fullpage
|
|
\RequirePackage[cm]{fullpage}
|
|
\fi
|
|
\pagestyle{empty}
|
|
\setcounter{secnumdepth}{0}
|
|
\setcounter{tocdepth}{2}
|
|
\author{Александр Яковлев}
|
|
\endinput
|