我有以下带有一个标签的方程式:
\section{This is super math section}
\begin{eqnarray}
c + d \\
\label{eq:eq2}
a + b
\end{eqnarray}
但是如果我想获取方程式所在的部分编号并引用此部分(从编号中),该怎么办?
Equation \eqref{eq:eq2} on page \pageref{eq:eq2} in section \???{eq:eq2} is brilliant!
编辑:使用参考定义环境。
\documentclass[a4paper,11pt,twocolumn]{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{yhmath}
\usepackage{cleveref}
\theoremstyle{definition}
\newtheorem{defi}{Definition}[section]
\begin{document}
Definition \ref{def:def1} on page \pageref{def:def1} in section \cref{def:def1} is brilliant!
\section{Definitions}
\begin{defi}\label{def:def1}
This is body of definition.
\end{defi}
\end{document}
给出:定义 1.1 节第 1 页上的定义 1.1 非常精彩!
需要:第 1 节第 1 页的定义 1.1 非常精彩!
答案1
有CTAN 中有许多软件包管理交叉引用。不幸的是,有些不兼容或必须按某种顺序加载。对于您的问题,解决方案可能\cref
来自以下cleverref
包:
\documentclass{article}
% \usepackage{varioref} % before of hyperref and cleveref
\usepackage{amsmath}
\usepackage[colorlinks=true]{hyperref}
\usepackage{cleveref}
\begin{document}
Equation
% \vref{eq:eq2}
\eqref{eq:eq2}
% \vpageref{eq:eq2}
in \cref{eq:eq2}
named \nameref{eq:eq2}
is brilliant!
\autoref{eq:eq1} is dull.
\section{This is super math section}
\begin{eqnarray}
\label{eq:eq1}
c + d \\
\label{eq:eq2}
a + b
\end{eqnarray}
\end{document}
编辑:对于带有 的问题的附加问题\newtheorem
,另一种解决方案可能是smartref
包:
\documentclass{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{defi}{Definition}[section]
\usepackage{smartref}
\addtoreflist{section}
\begin{document}
Definition \ref{def:def1}
on page \pageref{def:def1}
in section \sectionref{def:def1} is brilliant!
\section{Definitions}
\begin{defi}\label{def:def1}
This is body of definition.
\end{defi}
\end{document}