戏剧家诗歌演讲前缀怎么能和演讲放在同一句话里呢?

戏剧家诗歌演讲前缀怎么能和演讲放在同一句话里呢?

使用verse来自dramatist包,我希望将语音前缀与演讲放在同一行,因为它们适用于散文环境。

有许多用于自定义格式的钩子,但我不知道如何使用它们来做到这一点。

这与这个问题,但我并不想把散文和诗歌混在一起,所以我希望有一个更简单的解决方案。我正在排版一部长篇诗歌剧,所以把每段演讲都放在自己的环境中会很不方便。

答案1

前缀的排版方式由内部命令控制\@character,默认情况下,如果使用环境,则将它们设置在自己的行中drama*,如果使用非星号版本的环境,则将它们设置在行中;这是原始定义:

\def\@character#1#2{%
    \@namedef{#2}{{\namefont #1}\xspace}
    \n@me@ppend@nddef{#2}{\@ppendname}{%
        \if@drverse
            {\speakstab\speaksfont{#1}\speaksdel\par\nobreak\addvspace{-\parskip}}
        \else
            \item[#1\speaksdel]
        \fi}
}

如果希望两个环境以相同的方式处理前缀,则可以省略条件分支:

\documentclass{memoir}    
\usepackage{dramatist}

\makeatletter
\def\@character#1#2{%
    \@namedef{#2}{{\namefont #1}\xspace}
    \n@me@ppend@nddef{#2}{\@ppendname}{%
            \item[#1\speaksdel]
}
}
\makeatother

\begin{document}

\Character[Poe Prose]{POE}{poe}
\Character[Frost Verse]{FROST}{frost}

\begin{drama*}
\frostspeaks Some say the world will end in fire; \\
Some say in ice. \\ 
From what I've tasted of desire \\
I hold with those who favor fire. \\ 
But if it had to perish twice, \\
I think I know enough of hate \\ 
To know that for destruction ice \\ 
Is also great  \\
And would suffice.
\end{drama*}

\begin{drama}
\poespeaks For the most wild, yet most homely narrative which I am about to pen, I neither expect nor solicit belief. Mad indeed would I be to expect it, in a case where my very senses reject their own evidence.
\end{drama}

\end{document}

在此处输入图片描述

相关内容