当我尝试交叉\ref
引用gb4e
与素数 ( ) 的交叉引用\exp
我失败了。
请考虑以下示例:
\documentclass{article}
\usepackage{gb4e}
\begin{document}
\begin{exe}
\ex\label{ex:1}Example one.
\end{exe}
Reference \ref{ex:1}.
\begin{exe}
\exp{ex:1}\label{ex:2}Example two.
\end{exe}
Reference \ref{ex:2}.
\end{document}
输出结果如下:
为什么不\ref{ex:2}
产生交叉引用?我做错了什么吗?
答案1
该\exp
命令底层使用命令\exi
,后一个命令是为任意指定的示例数字设计的,因此常规计数器系统将不起作用(除非参数\exp
是标签。)
我个人认为,素数样本数字不是一个好主意,所以我不建议这样做。请参阅下面的讨论。但是,如果你坚持,你可以创建一个\primeref
命令,使用原始非素数示例的标签来引用素数示例:
\newcommand*{\primeref}[1]{\ref{#1}$'$}
然后在您的文档中,您将为原始的未加引号的例子加上标签,并使用\exp{<label>}
和\primeref{<label>}
来介绍和引用加引号的例子。
为什么引理例子对语言学来说不好
尽管在数学中使用带撇号的方程式数字可能有一定的道理,但我认为在语言学中没有同样好的理由来使用它们,当然对于语言学例子来说更是如此(例如,与分段开发的语义公式相反)。我认为使用带撇号的例子的唯一目的是展示本质上相同的东西的另一种版本。但这对于语言学例子来说并不正确,因为即使它们彼此之间差别很小,但实际上从来都不是相同的。
答案2
这应该可行。但尽管“已准备好”方程数可以在数学论文中得到证明,我同意艾伦·芒恩 (Alan Munn) 的观点,不鼓励使用“素数示例数字”。
\documentclass{article}
\usepackage{gb4e,refcount}
\makeatletter
\def\new@exp#1{\exi{{(\ref {#1}$'$)}}\edef\@currentlabel{\getrefnumber{#1}$\noexpand'$}}
\AtBeginDocument{\let\exp\new@exp}
\makeatother
\begin{document}
\begin{exe}
\ex\label{ex:1}Example one.
\end{exe}
Reference \ref{ex:1}.
\begin{exe}
\exp{ex:1}\label{ex:2}Example two.
\end{exe}
Reference \ref{ex:2}.
\end{document}
它需要几次 LaTeX 运行才能稳定下来。