是否有 \ref 或 \eqref 的替代品,可以省略章节编号而不改变整体行为?

是否有 \ref 或 \eqref 的替代品,可以省略章节编号而不改变整体行为?

\ref我正在使用我大学的论文模板(回忆录课),当我使用和时,该模板默认附加章节编号\eqref,这对我来说完全没问题。

但在某些情况下我想省略它。例如,当引用多个方程式时,我想生成类似以下内容的内容:

方程 (2.5,7) 可以重写为......

我知道您可以对 做类似的事情\cite(例如,仅引用出版物的年份或作者),但我找不到\ref或 的类似技术\eqref

我见过其他处理此问题的帖子,但是它们涉及的是文档范围的,这是我不想要的。

答案1

使用下面的技术去掉章节编号\getref

在此处输入图片描述

\documentclass{memoir}
\usepackage{amsmath,refcount}

\makeatletter
\def\@getref#1.#2{#2}
\newcommand{\getref}[1]{%
  \begingroup
  \edef\x{\endgroup\noexpand\@getref\getrefnumber{#1}}\x}
\makeatother

\begin{document}

\chapter{A chapter}

\setcounter{section}{3}% Just for this example
\section{A section}\label{sec:section}

See~\eqref{eqn:equation1} and~\eqref{eqn:equation2} in Section~\ref{sec:section}.
\setcounter{equation}{12}% Just for this example
\begin{equation}
  f(x) = ax^2 + bx + c \label{eqn:equation1}
\end{equation}

See~(\ref{eqn:equation1}, \getref{eqn:equation2}) in Section~\getref{sec:section}.
\setcounter{equation}{17}% Just for this example
\begin{equation}
  f(x) = ax^2 + bx + c \label{eqn:equation2}
\end{equation}

\end{document}

随着hyperref, 您可以使用\hgetref

在此处输入图片描述

\documentclass{memoir}
\usepackage{amsmath,refcount,hyperref}

\makeatletter
\def\@getref#1.#2{#2}
\newcommand{\getref}[1]{%
  \begingroup
  \edef\x{\endgroup\noexpand\@getref\getrefnumber{#1}}\x}
\newcommand{\hgetref}[1]{\hyperref[#1]{\getref{#1}}}
\makeatother

\begin{document}

\chapter{A chapter}

\setcounter{section}{3}% Just for this example
\section{A section}\label{sec:section}

See~\eqref{eqn:equation1} and~\eqref{eqn:equation2} in Section~\ref{sec:section}.
\setcounter{equation}{12}% Just for this example
\begin{equation}
  f(x) = ax^2 + bx + c \label{eqn:equation1}
\end{equation}

See~(\ref{eqn:equation1}, \hgetref{eqn:equation2}) in Section~\hgetref{sec:section}.
\setcounter{equation}{17}% Just for this example
\begin{equation}
  f(x) = ax^2 + bx + c \label{eqn:equation2}
\end{equation}

\end{document}

相关内容