From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/scripttex/stagplay.tex | 278 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 macros/scripttex/stagplay.tex (limited to 'macros/scripttex/stagplay.tex') diff --git a/macros/scripttex/stagplay.tex b/macros/scripttex/stagplay.tex new file mode 100644 index 0000000000..be506418ec --- /dev/null +++ b/macros/scripttex/stagplay.tex @@ -0,0 +1,278 @@ +% TeX stageplay macros -- typeset format +% Copyright 1991-2002 Adrian McCarthy See documentation for re-distribution info. +\def\banner{ScriptTeX 1.04, 10-MAR-2002, typeset stageplay format}%version +\immediate\write16{\banner} +% +% These macros will produce a typeset script in stageplay format. +% +% +% General page layout: +% +\font\sc=cmcsc10 % Caps and small caps +\font\twbf=cmbx12 % Twelve point bold face +\hsize=6.5truein +\vsize=8.3truein +\parindent 0pt +\parskip\baselineskip +\hoffset=0.5truein +% +% My first output routine. Marks have three parts: act/scene header, +% dialog continuation text for top of page, and dialog continuation text +% for the bottom of the page. No insertions are handled at this time. +% +\output={% + \ifx\LR\empty \else + \if L\LR \hoffset=0.0truein \global\def\LR{R} + \else \hoffset=0.5truein \global\def\LR{L} + \fi + \fi%x + \shipout\vbox to 9.0truein{\makeheadline \pagebody \makefootline} + \advancepageno +% No supereject nonsense since we aren't going to deal with insertions. +} +\def\makeheadline{% Act/scene header and page number + \line{\tenrm \ifcase0\expandafter\relax\firstmark\fi% + \ifnum\pageno>0 \hss $\oldstyle\folio$. \fi} + \vskip\baselineskip +} +\def\pagebody{% + \line{\ifcase1\expandafter\relax\topmark\fi \hss} + \unvbox255 + \line{\ifcase2\expandafter\relax\botmark\fi \hss} + \vfil +} +\def\makefootline{% + \line{\footer} +} +% +% Revision information +% +\def\titletext{Stageplay} +\def\title#1{\def\titletext{#1}} +\def\seriestext{} % here for compatibility with screenplay format +\def\series#1{\def\seriesname{#1}} +\def\authortext{} +\def\author#1{\def\authortext{#1}} +\def\drafttext{} +\def\draft#1{\def\drafttext{#1}} +\def\basedon#1{\def\basedontext{#1}} +\def\basedontext{} +\def\showcopyright#1{\def\copyrighttext{$\copyright$~#1}} +\def\copyrighttext{} +\def\address#1{\def\addresstext{\vtop{\settabs 1\columns \tabalign #1\cr}}} +\def\\{\cr\tabalign} +\def\addresstext{} +\def\today{% + \hbox{\number\day-\ifcase\month\or JAN\or FEB\or MAR\or APR\or MAY% + \or JUN\or JUL\or AUG\or SEP\or OCT\or NOV\or DEC\fi% + -\number\year}% +} +\edef\datetext{\today} +\def\date#1{\def\datetext{#1}} +% +% We count acts and scenes for you. +% +\newcount\actcnt \actcnt=0 +\def\currentact{} +\newcount\scenecnt \scenecnt=0 +\def\currentscene{} +\def\stdhead{% + {\tenit \titletext\/} + {\tenrm \currentact\ifx\currentscene\empty \else,\currentscene\fi} +} +\def\stdfoot{{\tenrm \drafttext} \hss {\tenrm \datetext}} +\def\stdxref{% + \ifx\currentact\emtpy \else% + \currentact, % + \fi% + \ifx\currentscene\empty \else% + \currentscene% + \fi +} +\def\Roman#1{\uppercase\expandafter{\romannumeral#1}} +\def\roman#1{\romannumeral#1} +% +% Variants +% +\def\LR{} +\def\twoside{\def\LR{R}} +\def\jlbrooks{} % for compatibility with screenplay format +\def\movie{} +\def\TV{} +\def\sitcom{} +\def\manuscript{ + \def\header{\stdhead} + \def\footer{} + \def\draftblock{} +} +\def\proof{ + \ifx\drafttext\empty \draft{Working Draft}\fi + \def\header{\stdhead} + \def\footer{\stdfoot} +} +\def\shoot{ % here for compatibility with screenplay format + \manuscript +} +% +% Breakdowns +% +\def\makecastlist{\immediate\write16{Cast lists no longer supported.}} +\def\collectcast{\immediate\write16{Cast lists no longer supported.}} +\def\makescenelist{\immediate\write16{Scene lists no longer supported.}} +\def\collectscenes{\immediate\write16{Scene lists no longer supported.}} +% +% Make a titlepage +% +\def\maketitle{% + \ifx\LR\empty \else \def\LR{R} \fi + \hbox{} + \vskip 2in + \ifx\seriestext\empty \else + \centerline{\rm \seriestext} + \vskip 3\baselineskip + \fi + \centerline{\twbf \titletext} + \vskip\baselineskip + \ifx\authortext\empty \else + \centerline{\rm \authortext} + \fi + \vskip\baselineskip + \centerline{\basedontext} + \vskip 3.5in + \line{\copyrighttext\hfill\addresstext} + \vskip 3\baselineskip + \draftblock + \pageno=0 + { + \def\header{} + \def\footer{} + \eject + } + \pageno=1 +} +\def\draftblock{% + \vskip 2in + \ifx\drafttext\empty \else + \rightline{\rm \drafttext} + \fi + \rightline{\rm \datetext} +} +% +% Standard header for acts, tags, and teasers +% +\def\acthead#1{% + \acttail + \advance\actcnt by 1 + \scenecnt=0 + \edef\currentact{#1} + \mark{\header\noexpand\or\noexpand\or} + \vfill + \penalty-10000 + \vskip\baselineskip + \centerline{\twbf ACT #1} + \vskip 2\baselineskip +} +% +% Standard tail for acts, tags, and teasers +% +\def\acttail{% + \penalty1000 + \ifx\currentact\empty \else + \vskip 2\baselineskip + \centerline{\twbf END OF ACT \currentact} + \fi +} +% +% Regular script constructs: +% +\def\act{\acthead{\Roman\actcnt}} +\def\teaser{\prolog} % Here for compatibility with +\def\tag{\epilog} % screenplay format. +\def\prolog{\acthead{Prolog}\actcnt=0} +\def\epilog{\acthead{Epilog}} +\def\prologue{\acthead{Prologue}\actcnt=0} +\def\epilogue{\acthead{Epilogue}} +\def\theend{ + \def\acttailblock{ + \vskip 2\baselineskip + \centerline{\bf THE END} + } +} + +\def\scene#1{% + \advance\scenecnt by 1 + \edef\currentscene{\roman\scenecnt} + \mark{\header\noexpand\or\noexpand\or} + {\it Scene \roman\scenecnt: #1}\par + \penalty1000 +} + +\def\stage{% + \mark{\header\noexpand\or\noexpand\or} + \it +} + +\def\trans#1{% + \mark{\header\noexpand\or\noexpand\or} + \penalty100 + \rightline{\it #1} + \par + \penalty-100 +} + +\def\open#1{\trans{#1}} +\def\close#1{\trans{#1}} + +\outer\def\dialog#1#2\par{% + \mark{\header\noexpand\or\noexpand\or} + \hangindent=5pc {\sc #1:} \rm + \mark{\header\noexpand\or {\sc #1:} {\it (cont'd)\/}% + \noexpand\or \rightline{\it (more)}} + #2\par +} + +\def\paren#1{{\sl (#1)\/}} + +\def\leadin#1{% + #1~\ldots + \par + \penalty200 + \def\leadtext{#1} +} +\def\pickup{\phantom{\leadtext}\llap{\ldots}~} + +\def\em#1{{\it #1\/}} +\def\extra#1{#1} +\def\introduce#1{#1} +\def\sound#1{#1} % Here for compatibility with screenplay format. +\def\ldots{.\thinspace.\thinspace.} + +\def\cleanup{% + \par + \acttail + \mark{\header\noexpand\or\noexpand\or} + \vfill + \penalty-10000 +} +\def\bye{ + \cleanup + \end +} +% +% Shortcuts: +% (Most of these make more sense in the screenplay format.) +\def\beat{\paren{pause}} +\def\cut{\trans{cut to}} +\def\dissolve{\trans{dissolve to}} +\def\ext#1{\scene{#1}} +\def\fadein{\open{Lights up}} +\def\fadeout{\close{Lights down}} +\def\int#1{\scene{#1}} +\def\os{\paren{off stage}} +\def\shot#1\par{\par\stage #1} +\let\tv=\TV +\def\vo{\paren{voice over}} +% +% Defaults +% +\manuscript -- cgit v1.2.3