在枚举环境中使用 gb4e

在枚举环境中使用 gb4e

我想使用枚举环境,而不是 gb4e 使用的标准标签。到目前为止,我有以下代码:

\documentclass{article}
\usepackage{gb4e, enumitem}
\begin{document}
\begin{enumerate}
\item
\begin{exe}
\ex
\gll Saja mem-bawa surat itu kepada Ali.\\
      I \textsc{CAUSE}-bring letter the to Ali.\\
\glt I brought the letter to Ali.
\end{exe}
\end{enumerate}
\end{document}

如果我省略 \ex 行,枚举环境会向右移动太远,如果我包括它,缩进是好的,但有两个标签,这是不正确的。任何帮助都值得赞赏。谢谢。

答案1

如果您唯一需要做的就是从示例中删除括号gb4e(但间距没有问题),那么解决方案很简单:

\documentclass{article}
\usepackage{gb4e}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@exe}{(}{}{}{}
\patchcmd{\@exe}{)}{.}{}{}
\makeatother
\begin{document}
\begin{exe}
\ex\gll Saja mem-bawa surat itu kepada Ali.\\
      I \textsc{CAUSE}-bring letter the to Ali\\
\glt I brought the letter to Ali.
\end{exe}
\begin{exe}\ex
\begin{xlist}
\ex[]{\gll Saja mem-bawa surat itu kepada Ali.\\
      I \textsc{CAUSE}-bring letter the to Ali\\
\glt I brought the letter to Ali.}
\ex[*]{\gll Ali Saja mem-bawa surat itu kepada. \\
      Ali I \textsc{CAUSE}-bring letter the to\\
\glt I brought the letter to Ali.}
\end{xlist}
\end{exe}
\end{document}

gb4e 代码的输出

如果您需要更改示例的缩进,则可以使用独立于示例编号宏的注释宏,并将其用于enumitem所有编号,但需要进行一些修改。我已为两个编号级别设置了适当的缩进(您可以根据需要进行更改),并将级别设置为 1,resume以便后续枚举将从上一个最后一个数字开始(因为语言示例通常是编号的)。为了提醒您更改,我实际上根本没有加载包gb4e,只是cgloss4e(尽管您也可以加载gb4e)。

我创建了一个\jg用于语法判断的宏,以便它正确对齐。

(与问题无关,但你的注释行(第二行)不应包含任何标点符号。)

\documentclass{article}
\usepackage{cgloss4e, enumitem}
\setlist[enumerate,1]{labelsep=1.25em,resume}
\setlist[enumerate,2]{label=\alph*.,labelsep=1.25em}
\newcommand*{\jg}[1]{\llap{#1}}
\begin{document}
\begin{enumerate}
\item
\gll Saja mem-bawa surat itu kepada Ali.\\
      I \textsc{CAUSE}-bring letter the to Ali\\
\glt I brought the letter to Ali.
\item
\begin{enumerate}
\item
\gll Saja mem-bawa surat itu kepada Ali.\\
      I \textsc{CAUSE}-bring letter the to Ali\\
\glt I brought the letter to Ali.
\item
\gll \jg{*}Ali Saja mem-bawa surat itu kepada. \\
      Ali I \textsc{CAUSE}-bring letter the to\\
\glt I brought the letter to Ali.
\end{enumerate}
\end{enumerate}
\end{document}

cgloss 代码的输出

相关内容