我希望创建如下所示的东西:
(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}