在 LaTeX 中,如果我们将定理数、引理数等信息硬编码,并将这些数字包含在宏中,那么就可以引用该数字。例如,
Theorem \thnum{3.4}\label{thm3.4} ....theorem text goes here
如果我们引用的话,文本内部的其他地方\ref{thm3.4}
。
当文章的编号方案没有任何顺序时,就会出现这种情况。
答案1
在默认交叉引用方案下,存储引用所涉及的主要宏是\@currentlabel
。因此,我们定义\thnum
打印提供的数字,但也更新\@currentlabel
:
\documentclass{article}
\makeatletter
\newcommand{\thnum}[1]{#1\renewcommand{\@currentlabel}{#1}}
\makeatother
\begin{document}
Here is some regular text. We are interested in Theorem~\ref{thm3.4}:
\noindent
{\bfseries Theorem \thnum{3.4}\label{thm3.4}} \ldots theorem text goes here
\end{document}
如果你使用hyperref
,以下的定义\thnum
就足够了:
\makeatletter
\newcommand{\thnum}[1]{\phantomsection #1\renewcommand{\@currentlabel}{#1}}
\makeatother