为什么我的交叉引用不起作用以及其他一些问题

为什么我的交叉引用不起作用以及其他一些问题

我是 TEX 初学者,现在正在学习如何创建引用。我正在阅读 Oetiker、Partl、Hyna、Schlegl 所著的《The Not So Short Introduction to LATEX2》一书;在第 42 页第 2.8 节“交叉引用”中,代码​​写为

A reference to this section \label{sec:this} looks like:
"see section~\ref{sec:this} on page~\pageref{sec:this}"

我正在使用 CTex 和 WinEdt,我的问题是:

  1. 我用上面的代码制作了一个 pdf 文件,但是章节和页码没有突出显示,我无法点击它们。为什么会这样?
  2. 我尝试通过键入页码(如)来引用其他页面{sec:37},但不起作用。我该如何修复?
  3. 代码sec实际上是什么意思?它是任意的还是预定义的语法?
  4. 当我输入 时\label{},出现了一个名为标签 (51) 的菜单框,并且有一个下拉菜单,如c:ISYACc:UNBOUNDc:UNIFBURN、... 等... 那是什么?我们必须从这些列表中选择,还是我们可以自己编写类似的{sec:this}

非常感谢您的帮助!非常感谢!

答案1

通用机制是使用 来在文档中的某个位置设置锚点\label{<name>},其中<name>可以是数字、字母:和的组合-(以防万一)。这些锚点必须由作者明确设置,这就是为什么\ref{sec:47}除非您未定义它,否则它将不起作用。设置锚点后,您可以使用\ref{<name>}(提供相应的计数器,如章节或部分或方程式或...数字)或\pageref{<name>}(提供相应的页码)来引用它。

一些作者使用诸如、等标识符sec:eq:使thm:锚点名称更易于人类阅读,但这对于机制的运行而言并非必要。


LaTeX 的机制可以通过一些软件包进行扩展:

  • hyperref使引用成为可点击的超链接(并具有更多功能)。
  • cleveref例如,找到标签的正确名称并打印为\ref{anchor5}section~5不是。5
  • varioref比较锚点和参考的页码并自动添加文本on previous page,如on page 6等。
  • nameref可以打印锚点的实际标题。

平均能量损失

\documentclass[english]{article}

% langage
\usepackage{babel}

% only for \lipsum blind text
\usepackage{lipsum}

% ref packages
\usepackage{nameref}
% folowing  must be in this order
\usepackage{varioref}
\usepackage{hyperref}
\usepackage{cleveref}

\begin{document}
\section{First section}
\lipsum[1-10]

\section{My section}\label{sec:mysection}
\lipsum[1-22]

\section{References}
\begin{itemize}
    \item \verb+\ref{sec:mysection}+: \ref{sec:mysection}
    \item \verb+\pageref{sec:mysection}+: \pageref{sec:mysection}
    \item \verb+\cref{sec:mysection}+: \cref{sec:mysection}
    \item \verb+\cpageref{sec:mysection}+: \cpageref{sec:mysection}
    \item \verb+\vref{sec:mysection}+: \vref{sec:mysection}% already combined with \cref
    \item \verb+\vpageref{sec:mysection}+: \vpageref{sec:mysection}
    \item \verb+\nameref{sec:mysection}+: \nameref{sec:mysection}
\end{itemize}
\end{document}

不同的参考

相关内容