
我是 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,我的問題是:
- 我用上面的程式碼製作了一個pdf文件,但是章節和頁碼沒有突出顯示,我無法點擊它們。為什麼會這樣呢?
- 我嘗試透過鍵入其頁碼(如 )來引用其他頁面
{sec:37}
,但它不起作用。我該如何修復它? - 該代碼的
sec
實際含義是什麼?它是任意的還是預先定義的語法? - 當我輸入 時
\label{}
,會出現一個名為 Labels (51) 的選單框,並且有一個下拉式選單,如c:ISYAC
、c:UNBOUND
、c: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}