交叉引用样式?

交叉引用样式?

我想在交叉引用周围加上括号,并删除交叉引用编号周围的括号,如下图所示。

在此处输入图片描述

我使用了cleveref包,我尝试了这个

\documentclass{book}
\usepackage{color}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=cyan}
\usepackage{amsmath}
\usepackage{cleveref}
\crefname{equation}{(eq.}{eqs.}        
\crefname{section}{(sec.}{secs.}
\crefdefaultlabelformat{#2\textbf{\textup{#1}}#3)}
\creflabelformat{equation}{#2\textbf{\textit{\textup{#1}}}#3)}
\begin{document}
\chapter{Math}
\section{Equation}\label{sec:equation}
\begin{align}
A =& B (C + D) \label{eq:equation 1}\\
  =& B C + B D
\end{align}
see \cref{sec:equation} and \cref{eq:equation 1}
\end{document}

问题是当我引用多个方程式或多个部分时,如下所示: 在此处输入图片描述

有什么帮助吗?

答案1

对于要交叉引用的每种项目类型(equationsection等),您需要提供\crefmultiformat\crefrangeformat指令来明确说明格式要求。如果参数恰好由两个项目组成,或者有两个以上的项目,但项目编号中存在间隙cleveref,则程序包将使用前一个宏来评估指令的参数。如果参数中的三个或更多项目的列表不包含间隙,或者遇到,则\cref使用后一个宏。cleveref\cref\crefrange{first-arg}{last-arg}

在下面的示例中,我展示了equation项目所需的代码。我相信您可以弄清楚如何为、、等项目提供类似sectionfigure说明table

由于您将为单个和多个项目提供明确的格式说明,因此我还建议您删除\crefdefaultlabelformat\creflabelformat指令,并使用类似

\crefformat{equation}{(eq.~#2\textbf{\textup{#1}}#3)}

对于需要通过 进行交叉引用的每种项目类型\cref在此处输入图片描述

\documentclass{book}
\usepackage{amsmath} % for "gather" environment
\usepackage{xcolor}
\usepackage[colorlinks=true, linkcolor=cyan]{hyperref}
\usepackage{cleveref}

\crefformat{equation}{(eq.~#2\textbf{\textup{#1}}#3)}
\crefmultiformat{equation}%
   {(eqs.~#2\textbf{\textup{#1}}#3}% % first item in list
   { and~#2\textbf{\textup{#1}}#3)}% % second (if exactly two items)
   {, #2\textbf{\textup{#1}}#3}%     % middle (if more than two items)
   { and~#2\textbf{\textup{#1}}#3)}  % last   (if more than two items)
\crefrangeformat{equation}%
   {(eqs.~#3\textbf{\textup{#1}}#4 to~#5\textbf{\textup{#2}}#6)}

\begin{document}
\setcounter{chapter}{1}
\setcounter{section}{1}

\begin{gather}
A = B (C + D) \label{eq:mult}  \\
e^{i\pi}-1=0  \label{eq:euler} \\
a^2+b^2=c^2   \label{eq:pyth}  \\
E = m c^2     \label{eq:einst}
\end{gather}

\cref{eq:mult,eq:pyth}                   % two items

\cref{eq:mult,eq:pyth,eq:einst}          % three items, with gap

\cref{eq:mult,eq:euler,eq:pyth,eq:einst} % four items, no gap

\crefrange{eq:mult}{eq:einst}            % explicit range of items
\end{document}

相关内容