有时,枚举列表用于列出文中引用的例句,这些例句在列表中以编号显示。但由于这些引用来自很远的页面,因此读者可能会觉得必须翻回所有这些页面才能找到引用的句子很烦人。为了避免这种情况,读者可能需要重复一些列表项及其原始编号。下面是一个粗略的示例:
1.示例 1 2.示例 2 一些参考 1. 和 2 的文本。 3.示例 3. 一些文本跨越多页。 1.示例 1 一些参考 1 的文本。
实现这一点的问题是获取重复的列表项及其原始编号没有打断重复列表项所在位置之前和之后出现的列表项的数字序列。
以下是未能实现此目标的一个例子:
\documentclass{article}
\usepackage{enumitem}
\newcommand\extwo{Example 2}
\begin{document}
\begin{enumerate}
\item Example 1
\item \extwo
\end{enumerate}
Text
\begin{enumerate}[resume]
\item Example 3
\end{enumerate}
Text
\begin{enumerate}[start=2]
\item \extwo% Example 2 repeated with its original number, i.e. "1."
\end{enumerate}
Text
\begin{enumerate}[resume]
\item Example 4% Is listed as "3." when I want it be listed as "4."
\end{enumerate}
\end{document}
这个例子主要有两个问题:
- 示例 4 应该在示例 3 之后恢复列表数字序列,但事实并非如此。
- 它很脆弱。如果示例 1 和示例 2 的顺序要改变,那么第三个列表的参数也必须改为
[start=1]
。
可以修复此示例以实现我想要的吗,或者是否有更合适的方法来实现它?
答案1
我个人并不喜欢这种重复,尽管有些人会这么做。我认为最好用新的数字重复示例。但撇开这个观点不谈,使用包gb4e
和linguex
包都可以轻松实现效果。
gb4e
它提供了一个\exr{<label>}
命令,根据对标签的引用来格式化示例。
\documentclass{article}
\usepackage{gb4e}
\newcommand\extwo{Example 2}
\begin{document}
\begin{exe}
\ex Example 1
\ex \extwo \label{ex2}
\end{exe}
Text
\begin{exe}
\ex Example 3
\end{exe}
Text
\begin{exe}
\exr{ex2} \extwo% Example 2 repeated with its original number, i.e. "1."
\end{exe}
Text
\begin{exe}
\item Example 4% Is listed as "3." when I want it be listed as "4."
\end{exe}
\end{document}
linguex
它允许其\ex.
命令具有以下可选参数来设置标签。此参数可以包含\ref{}
命令。
\documentclass{article}
\usepackage{linguex}
\newcommand\extwo{Example 2}
\begin{document}
\ex. Example 1
\ex. \extwo \label{ex2}
Text.
\ex. Example 3
Text.
\ex.[\ref{ex2}] \extwo
Text
\ex. Example 4
\end{document}