如何在LaTeX中发出引用的文本内容?

如何在LaTeX中发出引用的文本内容?,latex,Latex,我有一个章节: \section{Introduction} \label{sec:introduction} 我想要一个指向该部分的链接,其中链接文本是该部分的名称。我可以使用hyperref: The \hyperrf[sec:introduction]{Introduction} introduces the paper. 但这需要重复章节标题(“引言”)。有办法抓住它吗ref生成的节号不正确autoref生成“section”,然后是节号,这也不对。您可以尝试使用 \newsave

我有一个章节:

\section{Introduction} \label{sec:introduction}
我想要一个指向该部分的链接,其中链接文本是该部分的名称。我可以使用
hyperref

The \hyperrf[sec:introduction]{Introduction} introduces the paper.
但这需要重复章节标题(“引言”)。有办法抓住它吗
ref
生成的节号不正确
autoref
生成“section”,然后是节号,这也不对。

您可以尝试使用

  • \newsavebox
  • \savebox
  • \usebox
这不会为您节省任何打字,但会为您提供每个标题的单一权威来源



你可能会搜索
ctan.org
,我怀疑这已经完成了。

据我所知,没有标准的方法可以做到这一点。简单地说,SECTION命令不会将节的名称存储在容易检索到的任何位置。是的,它们被插入目录(以及相关的辅助文件)并设置了标记,但是如果没有额外的上下文,对这些内容的访问最多也不可靠,通常是不可能的,而在您需要返回到本节时,上下文几乎总是不可用的

您发布的代码示例与我将要编写的代码类似。可能会有一个包来自动完成这项工作,但如果有一个包的话,它可能是相当复杂的代码,因为这并不是一个特别常见的用例。事实上,你所创作的最终文本是不正确的;“引言”一词在句子中应该是小写的,而这一点(通常)不能通过反向引用实际的章节标题来实现


我会把它吸起来,然后手动写出这样的参考资料。它们的数量将不足以证明自动化的合理性。当然,如果你正在做的事情比你的示例所建议的要复杂(许多自动生成的部分或其他),事情可能会有所不同,但如果是这样的话,那真的是一个完全不同的问题。

有几个包为你提供了这一点。nameref作为hyperref的一部分分发以实现此目的:

有一个更通用的包用于交叉引用基本上是任何东西,称为zref:

它的作者和hyperref,Heiko Oberdiek是同一个人;这是我会选择的。下面是一个例子:

\documentclass[oneside,12pt]{article}
\usepackage[user,titleref]{zref}
\begin{document}
\section{Introduction of sorts.}\zlabel{sec:intro}
Hello
\subsection{Structure}
We begin in `\ztitleref{sec:intro}'.
\end{document}

请注意,它甚至删除了章节标题中的尾随句点。

您提出了一些好的观点,但有一些软件包可以做到这一点。请看,这就是我在工作时把LaTeX Companion的副本放在办公桌上,懒得用谷歌搜索软件包的结果。。。。