自定义 gb4e 子示例(与交叉引用无关)

自定义 gb4e 子示例(与交叉引用无关)

我正在使用 gb4e 来标记语义论文中的示例。这些示例带有特定的上下文,我想提一下,在这个特定的上下文中,至少有两个恰当的答案。我想要的是这样的:

(36)上下文:外面下着雨。

A:今天天气真好。-->而不是a。

B:是的,你是对的。-->而不是b。

B':是的,但是天气太热了。-->而不是 c。

B'':不,你错了。-->而不是d。

(这些子示例之间没有空格)

我理解通过使用其他包,例如语言我可以解决这个问题,但我想知道是否可以更改 gb4e 包中的任何设置以继续使用它。

非常感谢!

这是 MWE(如果格式看起来很糟糕请见谅):

    \documentclass[12pt]{article}
     \usepackage{gb4e}
    \begin{exe}
    \ex Context: It's raining outside. 
    \begin{xlist}
    \ex[A:] It's a really nice weather today. 
    \ex[B:] Yes, you are right.
    \ex[B':] Yes, but it is so hot.
    \ex[B'':] No, you are wrong.
    \end{xlist}
    \end{exe}
    \end{document}

答案1

如果您要经常这样做,我会创建一个修改版的命令,gb4e \exi以便正确排列所有内容。我将其称为\exk,其对应\sn版本为\snk。这比重新定义\exi自身更好。

\documentclass{article}
\usepackage{gb4e}
\makeatletter
\newcommand\exk[1]{\item[{\makebox[1.5em][l]{#1}}]\@ifnextchar [{\@exj}{}}
\newcommand\snk{\exk{}}
\makeatother
\begin{document}
\begin{exe}
\ex Context: It’s raining outside.
\begin{xlist}
\exk{A:}{It's a really nice weather today.}
\exk{B:}{Yes, you are right.}
\exk{B’:}{Yes, but it is so hot.}
\exk{B’’:}{No, you are wrong.}
\snk{Some example}
\end{xlist}
\end{exe}
\end{document}

代码输出

答案2

为了提供自定义示例标识符,您可以使用\exi{<identifier>},如第 1.2 节(第 4 页)中所述gb4e 手册。标识符默认不左对齐,因此您可以考虑使用 B 0、 B 1、 B 2使它们具有相同的宽度(尽管在语言学中大多数人可能使用素数符号)。

梅威瑟:

\documentclass[12pt]{article}
\usepackage{gb4e}
\begin{document}
\begin{exe}
\ex Context: It's raining outside. 
\begin{xlist}
\exi{A:} It's a really nice weather today. 
\exi{B:} Yes, you are right.
\exi{B':} Yes, but it is so hot.
\exi{B'':} No, you are wrong.
\end{xlist}
\end{exe}
\end{document}

结果:

在此处输入图片描述

相关内容