舞台剧的两列布局

舞台剧的两列布局

我知道有几个专门为舞台剧剧本设计的文档类,但据我所知,没有一个提供我正在寻找的功能。我希望角色的名字在他们自己的列中,他们的台词在他们自己的列中左对齐。像这样:

Daniel  Hi there, what are you up to?
Anna    I was just gonna go to the store to
        grab some groceries, do you want some-
        thing?
Daniel  A pack of gum would be nice, thanks!

我的感觉是,将表格用于这种用途是错误的。它还肯定会导致分页问题。实现此目的的理想方法是什么?我真的不想滥用边注,因为我也打算使用它们。或者某个为舞台剧设计的课程是否包含此功能?

答案1

扩展 Zarko 的好主意,我将play使用枚举项打包并定义一些演员姓名等命令,\Anna以便您可以以更直观的方式编写剧本\Daniel\Susan

\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}

最好有一个“指示命令”,允许您“中断”对话并添加舞台指示。为了设置“演员列”的宽度并定义演员姓名的宏,我添加了另一个命令:

\DeclareActors{Daniel, Anna, Susan}

综合以上几点,你的游戏就开始成形了:

在此处输入图片描述

play您可以通过阅读进一步定制环境枚举项手册。以下是完整代码:

\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}

答案2

我会坚持戏剧家的方案。https://www.ctan.org/topic/drama-script

在此处输入图片描述

\documentclass[a4paper,12pt,oneside,openany]{book} % use oneside to allow geometry to keep text always left
\usepackage{dramatist} % INMHO best of related packages i.e. Theatre Stage Play Frankinstein etc. 
\usepackage{calc} %required for length adjustments
\usepackage[left=20mm,right=45mm]{geometry} % minimise left & allow for right hand notes
\setlength{\speakswidth}{\widthof{\speaksfont Daniel}} % we need to allow for the longest name unless we abreviate him to Dan throughout see character definitions later
\addtolength{\speakswidth}{\Dlabelsep} % required for first column spacing
\setlength{\speaksindent}{0mm} % maintains second line indent
% The following shortcuts must not conflict with any likely or known abbreviated command e.g. beware ans or das may be defined elsewhere
\def\ans{\annspeaks} %\lowercase short name speaks to ease repetitive typing 
\def\das{\danspeaks} % one entry per character see cast-list in main body

\title{All'o'World's a stage\\ \it or ``As I like it''\normalfont}
\author{Philipp Stephan}
\date{\today}
\begin{document}
\maketitle
\Character[\Large Anna(stagia) - An na'ctress\normalsize]{Anna}{ann}  % define characters and alias, the last variant is for ease of typing \annspeaks
\Character[\Large Daniel - A-lad-in This word play\normalsize]{Daniel}{dan} % the short form \dan can be expanded in text see last dialogue

\DramPer[\\~\newline A Cast of a Thousand \\ Less 998 miserables \\ = Our two thespians \par] %\DramPer % recommended two empty lines below

\clearpage
\scene[- A Sitting Room] % recommended one empty line below

\StageDir{\centering Raise the house - it's curtains for us.}

\dan \direct{Enters and moving centre stage, turns towards \ann}.
\begin{drama}
\das \direct{Brightly}.  Hi there, what are you up to?
\ans I was just gonna go to the store to grab some groceries, do you want something?
\das A pack of gum would be nice, thanks!
\ans \direct{Pensively}. But \dan a pack of Vivamus varius tellus et mi pretium elementum iaculis tellus semper. Donec semper iaculis ante, convallis convallis arcu laoreet vitae. Aliquam id leo ac eros ultrices rhoncus porta sed ipsum. 
\end{drama}

\centering - The End -
\end{document}

相关内容