在 LaTeX 中重复示例,但使用双倍编号(增量和旧)

在 LaTeX 中重复示例,但使用双倍编号(增量和旧)

我正在使用 gb4e 撰写论文,我需要重复示例,同时使用新数字(示例 4 紧随示例 3)和最初呈现的原始数字来呈现它们。例如,示例 (1) 再次作为第四个示例呈现。

就像是:

(1)这是一个例子。

(2)这是第二个例子。

(3)这是第三个例子。

(4)=(1)这是一个(重复的)例子。

我知道 \exr,但我确实需要在重复的示例上有双重编号。

这是我现在正在使用的代码,但我不知道如何包含“=”符号。

\documentclass{article}
\usepackage{graphicx} % Required for inserting images

\usepackage{gb4e}
\usepackage[hidelinks]{hyperref}

\begin{document}

\begin{exe}
        \ex {This is an example.} \label{exe:original-example}
\end{exe}

\begin{exe}
        \ex {This is a second example.} %\label{exe:original-example}
\end{exe}

\begin{exe}
        \ex {This is a third example.} %\label{exe:original-example}
\end{exe}

Example \ref{exe:repeated-example} repeats example \ref{exe:original-example}

\begin{exe}
        \ex \label{exe:repeated-example} \begin{xlist}
            \exr{exe:original-example}[]{This is an (repeated) example.} 
            \end{xlist}
\end{exe}

\end{document}

并给出图中的输出:在此处输入图片描述

如果我尝试在两个数字之间添加等号,LateX 会将第二个数字和示例文本移动到下一行:

\documentclass{article}
\usepackage{graphicx} % Required for inserting images

\usepackage{gb4e}
\usepackage[hidelinks]{hyperref}

\begin{document}

\begin{exe}
        \ex {This is an example.} \label{exe:original-example}
\end{exe}

\begin{exe}
        \ex {This is a second example.} %\label{exe:original-example}
\end{exe}

\begin{exe}
        \ex {This is a third example.} %\label{exe:original-example}
\end{exe}

Example \ref{exe:repeated-example} repeats example \ref{exe:original-example}

\begin{exe}
        \ex \label{exe:repeated-example} = \begin{xlist}
            \exr{exe:original-example}[]{This is an (repeated) example.} 
            \end{xlist}
\end{exe}

\end{document}

在此处输入图片描述

有什么想法我可以怎样做吗?

答案1

这是实现此目的的方法。它具有以下限制:

  1. 它只适用于顶级({exe})示例,不适用于xlist示例。但是,重复的示例编号本身可以作为任何级别示例的引用。
  2. 每个重复的例子都必须在其自己的环境中。

用法

\begin{rex}{<label-of-previous-example>}
\ex Example as usual
\label{<label-of-current-example>}
\end{rex}

示例文档

在这个示例中,我故意增加了最后几个示例中的示例编号,以表明新数字的间距得以保留。

\documentclass{article}
\usepackage{gb4e}

\makeatletter
\def\@exr[#1]{\ifnum \@xnumdepth >0%
                 \if@xrec\@exrecwarn\fi%
                 \if@noftnote\@exrecwarn\fi%
                 \@xnumdepth0\@listdepth0\@xrectrue%
                 \save@counters%
              \fi%
                 \advance\@xnumdepth \@ne \@@xsi%
                 \exewidth{(234)=(\ref{\tmplabel})}
                 \begin{list}{(\thexnumi)=(\ref{\tmplabel})}%
                             {\usecounter{xnumi}\@subex{#1}{1em}%
                              \if@noftnote%
                                 \setcounter{xnumi}{\value{exx}}%
                              \else%
                                 \setcounter{xnumi}{\value{fnx}}%
                      \fi}}

\def\rex#1{\def\tmplabel{#1}\@ifnextchar [{\@exr}{\@exr[\@exwidth]}}
\let\endrex\endexe
\makeatother
\begin{document}
\begin{exe}
\ex This is the original example.
\label{exe:orginal-example}
\end{exe}

\begin{exe}
\ex This is a second example.
\label{exe:second-example}
\end{exe}
\begin{rex}{exe:orginal-example}
\ex
\begin{xlist}
\ex This is a sub-example \label{subex:another-label}
\ex This is another one
\end{xlist}
\end{rex}
\begin{rex}{subex:another-label}
\ex[*]{This is a second example}
\end{rex}
\setcounter{exx}{10}
\begin{exe}
\ex A bigger example number. \label{exe:bigger}
\end{exe}
\begin{rex}{exe:bigger}
\ex A repeated bigger example
\end{rex}
\end{document}

代码输出

相关内容