\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}