답변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}