Two column layout for stage play
Extending Zarko's nice idea, I would define a custom description environment play
using the enumitem package and define some commands for the actors names \Anna
, \Daniel
, \Susan
etc so that you can write the play in a more intuitive way as
\begin{play}
\Daniel Hi there, what are you up to?
\Anna I was just gonna go to the store to grab some
groceries, do you want something?
\Daniel A pack of gum would be nice, thanks!
\end{play}
It would also be good to have a "direction command" that allows you to "interrupt" the dialogue and add stage directions. To set the width of the "actor column" and to define the macros for the actor's names I have added another command:
\DeclareActors{Daniel, Anna, Susan}
Putting this together your play begins to take shape as:
You can further customise the play
environment by reading the enumitem manual. Here is the full code:
\documentclass{article}
\usepackage{calc}
\usepackage{enumitem}
\usepackage{etoolbox}
% define some macros for the play
\newlist{play}{description}{1}
\newlength\widthofactor
\newlength\widthofactors% will become width of widest actor name
\setlength\widthofactors{10mm}
\newcommand\DeclareActors[1]{% define actor commands
\renewcommand*\do[1]{
\csdef{##1}{\item[##1]}
\setlength\widthofactor{\widthof{##1\quad}}
\ifdim\widthofactors<\widthofactor
\setlength\widthofactors\widthofactor
\fi
}
\docsvlist{#1}
\setlist[play]{labelwidth=\widthofactors, leftmargin=!}
}
\newcommand\Direction[1]{\end{play}\textit{#1}\begin{play}}
%%%%
\DeclareActors{Daniel, Anna, Susan}
\begin{document}
\begin{play}
\Daniel Hi there, what are you up to?
\Anna I was just gonna go to the store to grab some
groceries, do you want something?
\Daniel A pack of gum would be nice, thanks!
\Direction{Anna exits stage left, going to the shops}
\Susan What's on your mind?
\end{play}
\end{document}