diff --git a/Makefile b/Makefile index 4755766..b69a348 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ install: - sudo mkdir -p /usr/share/texmf-dist/tex/xetex/oreolek - sudo ln -s `pwd`/oreolek-article.cls /usr/share/texmf-dist/tex/xetex/oreolek/oreolek-article.cls - sudo ln -s `pwd`/oreolek-book.cls /usr/share/texmf-dist/tex/xetex/oreolek/oreolek-book.cls - sudo texhash + mkdir -p /usr/share/texmf-dist/tex/xetex/oreolek + ln -s `pwd`/oreolek-article.cls /usr/share/texmf-dist/tex/xetex/oreolek/oreolek-article.cls + ln -s `pwd`/oreolek-book.cls /usr/share/texmf-dist/tex/xetex/oreolek/oreolek-book.cls + ln -s `pwd`/oreolek-script.cls /usr/share/texmf-dist/tex/xetex/oreolek/oreolek-script.cls + texhash diff --git a/oreolek-script.cls b/oreolek-script.cls new file mode 100644 index 0000000..9a8680b --- /dev/null +++ b/oreolek-script.cls @@ -0,0 +1,134 @@ +%% 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} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions + +% We will be basing this class on the report class. + +\LoadClass{report} + +% 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]{% + {\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{Pause.}} +\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}{\newscenenamed{\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! \ No newline at end of file