我知道\eqref
引用的样式与公式标签的样式完全匹配。但是,我更喜欢使用包\cref
中的cleveref
样式,因为 (1) 它允许我将单词 Equation 放在数字之前,并且 (2) 它允许我\cref{eq1,eq2}
非常舒适地输入。此外,这个问题,我正在重新定义公式数字分隔符的样式。不幸的是,这种更改没有被包捕获cleveref
。
以下是 MWE:
\documentclass{article}
\usepackage{amsmath}
\usepackage[capitalise,noabbrev,]{cleveref}
\makeatletter
\def\tagform@#1{\maketag@@@{[\ignorespaces#1\unskip\@@italiccorr]}}
\makeatother
\begin{document}
\cref{eq1} is fancy
\begin{equation}\label{eq1}
a = b
\end{equation}
\end{document}
得出的结果为:
那么,我的问题是:我怎样才能将圆括号变成方括号?
感谢大家的时间。
答案1
在我看来,最简单(但可能不是最优雅)的方法也是改变计数器,并明确应用\creflabelformat
宏。equation
\tagform@
\creflabelformat{equation}{#2\tagform@{#1}#3}
和为目标保留#2
。#3
hyperref
这是完整的代码。
\documentclass{article}
\usepackage{amsmath}
\usepackage[capitalise,noabbrev,]{cleveref}
\makeatletter
\def\tagform@#1{\maketag@@@{[\ignorespaces#1\unskip\@@italiccorr]}}
\creflabelformat{equation}{#2\tagform@{#1}#3}
\makeatother
\begin{document}
\cref{eq1} is fancy
\begin{equation}\label{eq1}
a = b
\end{equation}
\end{document}
答案2
以下解决方案使用包的宏\newtagform
以及包的宏来实现您的格式化目标。\usetagform
mathtools
\creflabelformat
cleveref
\documentclass{article}
\usepackage{mathtools} % for "\newtagform" macro
\newtagform{brackets}{[}{]}
\usetagform{brackets} % employ square brackets as delimiters around eq. numbers
\usepackage[capitalise,noabbrev]{cleveref}
\creflabelformat{equation}{#2{\upshape[#1]}#3}
\begin{document}
\cref{eq1} is fancy.
\begin{equation}\label{eq1}
a = b
\end{equation}
\end{document}