重複列舉清單項目及其原始編號

重複列舉清單項目及其原始編號

有時,枚舉清單用於列出範例句子,這些句子透過清單中的編號從文本中引用。但由於此類引用是從很遠的頁面進行的,因此必須翻回所有這些頁面才能看到所引用的句子可能會讓讀者感到惱火。為了避免這種情況,可能需要重複一些清單項目及其原始編號。其外觀的粗略示例如下:

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}

這個例子主要有兩個問題:

  1. 範例 4 應該在範例 3 之後恢復清單編號順序,但事實並非如此。
  2. 它很脆弱。如果要變更範例 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}

相關內容