定义跨页剧本对话环境

定义跨页剧本对话环境

编辑:将此视为此处答案的后续https://tex.stackexchange.com/a/63847/64528

我正在尝试创建一个用于编写剧本的 LaTeX/XeTeX 模板,专门用于从我编写的 Emacs 主要模式输出。

我想定义一个环境“对话框”,它在跨页时的行为相当特殊,即,如果在环境文本中发生分页符,则段落“(MORE)”将附加在第一页的文本底部,然后在下一页上,将重复字符名称并附加字符串“(CONT'D)”。

以下是一个近似的例子:

        BOBBY DARIN
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Donec
hendrerit tempor tellus. Donec
pretium posuere tellus. Proin quam
nisl, tincidunt et, mattis eget,
convallis nec, purus. Cum sociis
natoque penatibus et magnis dis
parturient montes, nascetur
ridiculus mus.
        (MORE)

------------ page break ------------

        BOBBY DARIN (CONT'D)
Nulla posuere. Donec
vitae dolor. Nullam tristique diam
non turpis. Cras placerat accumsan
nulla. Nullam rutrum. Nam
vestibulum accumsan nisl. Lorem
ipsum dolor sit amet, consectetuer
adipiscing elit. Donec hendrerit
tempor tellus. Donec pretium
posuere tellus. Proin quam nisl,
tincidunt et, mattis eget.

当然,需要注意的是,这是一个模板,因此输入仍然是可变的,因此无法手动拆分。

只是为了让事情更多的困难的是,有时初始角色名称可能已经与“ (CONT'D)”字符串一起出现,例如“BOBBY DARIN (CONT'D)”,在这种情况下它不应该在第二页重复...

当前环境不会尝试执行以下任何操作:

\newenvironment{dialog}[1]{
  \begingroup
  \leftskip=1.5in
  \hspace*{1.2in}\parbox[t]{4in}{#1}
  \parskip=0pt\par\nopagebreak[4]
  \rightskip=2in
}{\par\endgroup}

有人知道如何做到这一点吗?

一些说明:

  • 我认为表格不起作用,因为“对话框”文本本质上位于单个单元格中
  • 第二页上的角色名称实际上不能出现在页眉中。

相关内容