如何让 \ref{number} 打印实际数字而不是它引用的小节编号?

如何让 \ref{number} 打印实际数字而不是它引用的小节编号?

使用 \label 和 \ref 的示例

以下 MWE

\documentclass[12pt]{book}%ext
%\usepackage{hyperref}

\begin{document}  

see problem \ref{1} below and problem \ref{5} below.
    
\chapter{Differential equations}
\section{some section name}
\subsection{problem 1 from some book}
\label{1}

\subsection{problem 2 from some book}
\label{2}

OK.

\chapter{Differential equations second book}
\section{some section name}
\subsection{problem 1 from some second book}
\label{3}

OK.

\subsection{problem 2 from some second book}
\label{5}

OK.

\end{document}

使用编译lualatex foo.tex给出

在此处输入图片描述

在这种情况下,需要进行哪些更改才能\ref{1}打印出准确的标签名称1?这样输出就会显示

see problem 1 below and problem 5 below

在阅读 PDF 时,我不在乎子节编号。我需要知道实际问题编号本身,也就是 的参数所指的内容\ref{1}。当然,单击ref仍会将我发送到文档中该子节label所在的实际子节。我只希望显示的内容与1原样一致。

我使用的标签是全局计数器,每出现一个问题,计数器就增加一。

我查看了大量文档,但至今仍无法弄清楚如何操作。我需要为此使用不同的包吗?还是需要使用 phantomsection?我需要使用 \hyperlink 和 \hypertarget 模拟输出,如下所示。这可能吗?如果不可能,我将继续使用\hyperlink\hypertarget在这种情况下

\hyperlink使用和的示例\hypertarget

\documentclass[12pt]{book}
\usepackage{hyperref}
\begin{document}  

see problem \hyperlink{1}{1} below and problem \hyperlink{4}{4} below.
    
\chapter{Differential equations}
\section{some section name}
\subsection{problem 1 from some book}
\hypertarget{1}{}

\subsection{problem 2 from some book}
\hypertarget{2}{}

OK.

\chapter{Differential equations second book}
\section{some section name}
\subsection{problem 1 from some second book}
\hypertarget{3}{}

OK.

\subsection{problem 2 from some second book}
\hypertarget{4}{}

OK.

\end{document}

编译上述内容后,它会给出我想要的输出

在此处输入图片描述

或者

使用 \label 和 \hyperref 的示例

这是由 gusbrs 在评论中提出的建议

\documentclass[12pt]{book}%ext
\usepackage{hyperref}
\begin{document}  

see problem \hyperref[1]{1} below and problem \hyperref[4]{4} below.
    
\chapter{Differential equations}
\section{some section name}
\subsection{problem 1 from some book}
\label{1}

\subsection{problem 2 from some book}
\label{2}

OK.

\chapter{Differential equations second book}
\section{some section name}
\subsection{problem 1 from some second book}
\label{3}

OK.

\subsection{problem 2 from some second book}
\label{4}

OK.

\end{document}

在此处输入图片描述

使用 Tl 2021

答案1

\label您收到的使用和的建议\ref通常很合理。但是,正如您在评论中所解释的那样,在您的案例中,您想要引用的“全局计数器”不是 LaTeX 计数器,而是由生成 LaTeX 文档的外部程序在其他地方生成的计数器。从 LaTeX 引用系统的角度来看,这个“计数器”是“任意文本”,在这种情况下,的工具hyperref似乎是最合适的。

像您一直使用的那样使用\hypertarget和应该可以正常工作,但是使用和可能会得到一些简化,如下例所示。使用/与/ : 锚点位置之间也存在技术差异。使用后者,超链接锚点将与分段命令一起放置,而使用前者,锚点将位于其下方。实际上,这意味着使用/ 时,当您跟随超链接时,您一定会看到您期望的标题。\hyperlink\label\hyperref\hypertarget\hyperlink\label\hyperref\label\hyperref

\documentclass[12pt]{book}
\usepackage{hyperref}
\begin{document}

see problem \hyperref[1]{1} below and problem \hyperref[4]{4} below.

\chapter{Differential equations}
\section{some section name}
\subsection{problem 1 from some book}
\label{1}

\subsection{problem 2 from some book}
\label{2}

OK.

\chapter{Differential equations second book}
\section{some section name}
\subsection{problem 1 from some second book}
\label{3}

OK.

\subsection{problem 2 from some second book}
\label{4}

OK.

\end{document}

这并不意味着您不能以有趣的方式使用\label\ref,但为此,我认为计数器应该在 LaTeX 端处理,例如,如果您使用专用计数器为您的问题创建了一个环境。但这可能会在调整生成文档的程序方面产生一些成本,这是否值得,我无法判断,但您肯定可以。;-)

相关内容