使用 expex 对对话进行语言注释并标记说话者

使用 expex 对对话进行语言注释并标记说话者

我希望创建如下所示的东西:

(1) A: word word word?

gloss gloss gloss?

translation translation translation?

B: word word word!

gloss gloss gloss!

translation translation translation!

对于普通示例,我使用如下 expex:

\pex 
\begingl
\gla ...
\glb ...
\glft ... 
\endgl...
\xe

我尝试过的一件事是这样的:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{expex}
\begin{document}
\pex<withparts>
\a<first>
\begingl
\gla Meri - mal'čik.//
\glb Mary - boy.//
\glft `Mary is a boy.'//
\endgl
\a<second>
\begingl
\gla Net, Mèri - devočka.//
\glb No, Mary - girl//
\glft `Mary is a boy.'//
\endgl
\xe\end
{document}

但它实际上不起作用,因为我可能需要对对话进行注释,其中对话是说话者 A - 说话者 B - 说话者 A,但使用这种方法我将得到 abcd...

接下来我也尝试了这个:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{expex}
\begin{document}
\pex<withparts> 
\a<first>
\begingl
\gla A: Meri - mal'čik.//
\glb A: Mary - boy.//
\glc ...//
\glft ...//
\endgl
\xe\end
{document}

我认为我可以通过添加 \glc、\gld、\gle 来复制 (1) 中的示例,但显然 \gla \glb 中的 ab 并不代表 a、b、c...

答案1

如果您只需要提供发言人标签,则只需使用label=示例的键,然后在那里添加您的发言人标签。只需相应地调整标签的宽度即可。为此,我创建了一个命令,该命令采用您设想的最长的发言人名称并根据其长度调整标签宽度。

这是一个完整的例子:

\documentclass{article}
\usepackage{expex}
\usepackage{calc}
\newlength{\largestspkr}
\newcommand*\largestlabel[1]{\settowidth{\largestspkr}{#1~}}
\largestlabel{Speaker A}
\begin{document}
\pex[labelwidth=\largestspkr]
\a[label=Speaker A]
\begingl
\gla Meri - mal'čik.//
\glb Mary - boy.//
\glft `Mary is a boy.'//
\endgl
\a[label=Speaker B]
\begingl
\gla Net, Mèri - devočka.//
\glb No, Mary - girl//
\glft `Mary is a girl.'//
\endgl
\xe\end
{document}

output of code

相关内容