我希望将示例拆分开来,\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}