在 LaTeX 中,我们可以这样说:
"See equation \ref{eq} on page \pageref{eq}..."
有什么办法可以做到:
"See equation \ref{eq} in chapter \chapterref{eq}..."
答案1
hyperref
将\autoref
成为\autoref{chap:foo}
“章节X“
\documentclass{book}
\usepackage{hyperref}
\begin{document}
\chapter{Foo}
\label{chap:foo}
This is the beginning of \autoref{chap:foo}
\end{document}
生成:
要编辑超链接引用的显示方式,请参阅这个问题
cleveref
是另一个提供此类功能的软件包。
LaTeX 维基百科有关于各种交叉引用选项的详细信息。
答案2
你可以用这个包来做这件事zref
。下面是一个使用示例:
\documentclass{book}
\usepackage{zref-user}
\makeatletter
\zref@newprop{chapter}{\thechapter}
\zref@newprop{chaptertype}{\@chapapp}% as suggested by Danie Els
\zref@addprop{main}{chapter,chaptertype}
\makeatother
\begin{document}
\chapter{ch1}
ch1
\chapter{ch2}
ch2
\begin{equation}\zlabel{x1}
x=1
\end{equation}
\chapter{ch3}
See equation~\zref{x1} in chapter~\zref[chapter]{x1}.
Or, Danie's suggestion (in case you move equations between
chapters and appendices):
See equation~\zref{x1} in \zref[chaptertype]{x1}~\zref[chapter]{x1}
\end{document}
答案3
正如 meep.meep 已经发布的,nameref
可用于引用章节名称。但是,为了正确使用,您需要手动标记和引用章节,而不是使用公式的标签。
\documentclass{report}
\usepackage{nameref}
\usepackage[english]{babel}
\begin{document}
\chapter{Introduction}\label{chap:intro}
\begin{equation}
E = m\cdot c^2 \label{eq:emcsq}
\end{equation}
\chapter{Other}\label{chap:other}
% By name: "See equation 1.1 in chapter Introduction."
See equation~\ref{eq:emcsq} in chapter~\nameref{chap:intro}.
% By number: "See equation 1.1 in chapter 1."
See equation~\ref{eq:emcsq} in chapter~\ref{chap:intro}.
% Or both: "See equation 1.1 in chapter 1 ``Introduction''."
See equation~\ref{eq:emcsq} in chapter~\ref{chap:intro} ``\nameref{chap:intro}''.
\end{document}
之前~
是\ref
为了防止在这个位置换行。
答案4
您可以使用标签来标记章节和小节,然后像引用任何其他浮点数一样引用它们,如下所示:
\section{Introduction}
\subsection{Background}
\label{sec:bg}
tesagahgshlgasghagö as seen in \ref{sec:bg} ......