我正在使用 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
这是实现此目的的方法。它具有以下限制:
- 它只适用于顶级(
{exe}
)示例,不适用于xlist
示例。但是,重复的示例编号本身可以作为任何级别示例的引用。 - 每个重复的例子都必须在其自己的环境中。
用法
\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}