我想知道是否有办法引用方程式所在的部分。
\documentclass{article}
\begin{document}
\section{section 1}\label{sec:first}
\begin{equation}\label{eq:eq1}
1+1=2 \\
\end{equation}
\section{section2}\label{sec:second}
From equation \eqref{eq:eq1} in section \ref{sec:first}...
\end{document}
基本上,我想\ref{sec:first}
用对方程的引用来替换并获取它所在的部分。提前谢谢您!
答案1
您可能想要将章节编号添加到方程编号中。
这样,每个对方程的引用也包含章节编号,您不必添加诸如此类的内容\ref{sec:first}
。
您只需要在序言中添加这一行:
\numberwithin{equation}{section}
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{section}
\begin{document}
\section{section 1}\label{sec:first}
\begin{equation}\label{eq:eq1}
1+1=2 \\
\end{equation}
\section{section2}\label{sec:second}
\begin{equation}\label{eq:eq2}
2+2=4 \\
\end{equation}
From equation \eqref{eq:eq1}...
\end{document}
输出:
答案2
如果你想要获取参考文献的章节编号,你必须使用一些技巧,例如包zref
。类似问题已经有解决方案了从公式参考中提取节号但是,功劳应该归于 Werner ;-)
我的版本使用功能设置了一个特殊标签zref
,但是,您必须同时使用\label{eq:eq1}
两者\localspeciallabel{eq:eq1}
,但我将其包装成一个通用\commonlabel{eq:eq1}
命令。
对该部分的引用是通过\eqsecref{eq:eq1}
等完成的。我将名称从 更改为\eqref
,因为包中已经有一个同名的命令amsmath
。
\documentclass{article}
\usepackage{zref}
\makeatletter
\zref@newlist{specialreflist}
\zref@newprop{section}{\arabic{section}}
\zref@addprop{specialreflist}{section}
\newcommand*{\localspeciallabel}[1]{\zref@labelbylist{#1}{specialreflist}}%
\newcommand*{\eqsecref}[1]{%
% Do formatting of number here or outside
\zref@extractdefault{#1}{section}{??}
}%
\makeatother
\newcommand{\commonlabel}[1]{%
\label{#1}%
\localspeciallabel{#1}%
}%
\begin{document}
\section{section 1}\label{sec:first}
\section{section2}\label{sec:second}
\begin{equation}\commonlabel{eq:eq1}
1+1=2 \\
\end{equation}
\section{section 3}%\label{sec:three}
\begin{equation}\commonlabel{eq:eq2}
\sqrt{2} \approx 1.414 \\
\end{equation}
From equation \ref{eq:eq1} in section \eqsecref{eq:eq1} it is clear that\ldots, whereas equation \ref{eq:eq2} in section \eqsecref{eq:eq2} shows that\ldots
\end{document}