gb4e 中的拆分示例

gb4e 中的拆分示例

我希望将示例拆分开来,\usepackage{gb4e}使解释性注释尽可能接近所解释的内容。通常,我的排版示例如下所示:

(1) blabla
(2) a. blabla,
    b. blabla
    c. blabla
(3) blabla bal

然后我给出一些解释性的评论。

这是由以下人员制作的:

\begin{exe}
  \ex  blabla
  \ex \begin{xlist}
      \ex blabla
      \ex blabla
      \ex blabla
    \end{xlist}
  \ex blabla bla
\end{exe}

我希望这些例子看起来像这样......

(1) blabla
(2) a. blabla,
    b. blabla

Some explanatory remarks. Some explanatory remarks. Some explanatory remarks. 
Some explanatory remarks. Some explanatory remarks.  

    c. blabla
(3) blabla bal

...或者像这样:

(1) blabla
(2) a. blabla,
    b. blabla

Some explanatory remarks. Some explanatory remarks. Some explanatory remarks. 
Some explanatory remarks. Some explanatory remarks.

(2) c. blabla
(3) blabla bal

后一个选项在“c.”前重复数字“(2)”,另一个则不重复。

因此,我们的想法是将示例分成几个部分,并在其间给出一些解释。理想的答案应该是这样的:

\begin{exe}
  \ex  blabla
  \ex \begin{xlist}
      \ex blabla
      \ex blabla
    \end{xlist}
\end{exe}

Explanatory remarks...

我不知道如何生成其余的命令/环境。我猜有一种方法可以做到这一点\setcounter。但如果这可行,我不知道如何在没有数字的情况下获得解决方案。

答案1

违背我的判断,这里有一种方法可以获取您建议的两种格式。我们保存计数器值并使用宏gb4e\exr引用第二种格式的拆分示例的标签,然后使用gb4e\sn来获取第一种格式。我但是,建议使用其中任一种。

\documentclass{article}
\usepackage{gb4e}
\newcounter{savedex}
\makeatletter
\newcommand*{\saveex}{\setcounter{savedex}{\value{\@xnumctr}}}
\newcommand*{\resumeex}{\setcounter{\@xnumctr}{\value{savedex}}}
\makeatother
\begin{document}
\noindent This is some text.

\begin{exe}
\ex\label{1}
  \begin{xlist}
    \ex This is an example.
    \ex This is another example.
    \saveex
  \end{xlist}
\end{exe}

\noindent These are some remarks about this example.

\begin{exe}
\exr{1}
  \begin{xlist}
    \resumeex
    \ex An example.
    \ex Another example.
    \saveex
  \end{xlist}
\end{exe}

\noindent some more remarks.

\begin{exe}
\sn
  \begin{xlist}
    \resumeex
    \ex An example.
    \ex Another example.
  \end{xlist}
\end{exe}
\end{document}

代码输出

答案2

编辑1:使用 gb4e + float 的解决方案

米

回应 Alan Munn 的评论,为了维护gb4e包并用注释拆分子列表而不使用任何缩进,一个解决方案可以是带有H选项的新浮动环境,尽管这会产生浮动的常见问题(浮动太多等):

\documentclass{article}    
\usepackage[utf8]{inputenc}    
\usepackage{gb4e}    
\usepackage{float}
\newfloat{remarks}{H}{rem}
\setlength{\textfloatsep}{0em} 
\setlength{\abovecaptionskip}{0em}
\setlength{\belowcaptionskip}{0em}
\restylefloat{remarks}
\begin{document}
\begin{exe}
  \ex  blabla
  \ex \begin{xlist}
      \ex blabla
      \ex blabla
\begin{remarks}
Some explanatory remarks. 
Some explanatory remarks. 
Some explanatory remarks. 
Some explanatory remarks.  
\end{remarks}
      \ex blabla
    \end{xlist}
  \ex blabla bla
\end{exe}
\end{document}

对我来说这也是一个坏主意,我把我的原始答案留gb4e在了子列表末尾,但没有给出引用,尽管这可以用这个包来完成(我认为用linguex或者philex也可以)。

\documentclass{article}
\newcounter{example}
\setcounter{example}{0}
\newenvironment{examples}{%
  \list{(\theexample)}%
  {\def\example{\refstepcounter{example}\item}%
    \settowidth{\leftmargin}{10.\hskip\labelsep}%
    \labelwidth\leftmargin\advance\labelwidth-\labelsep}}
{\endlist}

\newcounter{partno}
\renewcommand\thepartno{\alph{partno}}
\newenvironment{parts}{\list{\thepartno.}%
{\def\part{\item}%
 \usecounter{partno}%
 \settowidth{\leftmargin}{(m)\hskip\labelsep}%
 \labelwidth\leftmargin\advance\labelwidth-\labelsep}}%
{\endlist}

\begin{document}

\begin{examples}
  \example Bla bla bla 
  \example \label{second} Bla bla bla 
    \begin{parts}
    \part Bla bla bla 
    \part \label{second-b} Bla bla bla 
     \end{parts}
\end{examples}

\noindent Some explanatory remarks 
on \ref{second}.\ref{second-b}. 
Some explanatory remarks. Some explanatory remarks.
Some explanatory remarks. Some explanatory remarks.  


\begin{examples}
  \example Bla bla bla
  \example \label{fourth} Bla bla bla
  \end{examples}

\noindent Some explanatory remarks on \ref{fourth}.
Some explanatory remarks. Some explanatory remarks.
Some explanatory remarks. Some explanatory remarks.  

\end{document}

相关内容