劇作家の詩のスピーチの接頭辞をスピーチと同じ行に置くにはどうすればよいですか?

劇作家の詩のスピーチの接頭辞をスピーチと同じ行に置くにはどうすればよいですか?

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}

ここに画像の説明を入力してください

関連情報