我想在交叉引用周围加上括号,并删除交叉引用编号周围的括号,如下图所示。
我使用了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
对于要交叉引用的每种项目类型(equation
、section
等),您需要提供\crefmultiformat
和\crefrangeformat
指令来明确说明格式要求。如果参数恰好由两个项目组成,或者有两个以上的项目,但项目编号中存在间隙cleveref
,则程序包将使用前一个宏来评估指令的参数。如果参数中的三个或更多项目的列表不包含间隙,或者遇到,则\cref
使用后一个宏。cleveref
\cref
\crefrange{first-arg}{last-arg}
在下面的示例中,我展示了equation
项目所需的代码。我相信您可以弄清楚如何为、、等项目提供类似section
的figure
说明table
。
由于您将为单个和多个项目提供明确的格式说明,因此我还建议您删除\crefdefaultlabelformat
和\creflabelformat
指令,并使用类似
\crefformat{equation}{(eq.~#2\textbf{\textup{#1}}#3)}
\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}