使用 cleveref 省略公式数字周围的圆括号

使用 cleveref 省略公式数字周围的圆括号

默认情况下,使用equation环境生成的方程编号放在圆括号中。我想在方程行上以及引用时删除这些。karlkoeller 给出了一个解决方案发布(该解决方案需要amsmath)。

但是当引用包 while\cref中的with 时,此操作会失败,并且默认操作按预期工作。请参阅下面的 MWE。cleveref\autoref\ref

这个问题该如何解决?或者更明智的做法是改用\autoref

平均能量损失

\documentclass{scrreprt}
\usepackage{mathtools}
\usepackage{hyperref}
\usepackage{cleveref}

% see: https://tex.stackexchange.com/questions/228448/removing-the-brackets-around-equation-numbering
\makeatletter
\renewcommand\tagform@[1]{\maketag@@@{\ignorespaces#1\unskip\@@italiccorr}}
\makeatother
%=====================================================
\begin{document}
foo
\begin{equation}
1+1=2
\label{eq:foo}
\end{equation}
Something is shown in \cref{eq:foo}. Also in \autoref{eq:foo}. And in equation \ref{eq:foo}.
\end{document}

答案1

使用\creflabelformat如下

\creflabelformat{equation}{#2\textup{#1}#3}

有帮助。

cref标签格式

\documentclass{scrreprt}
\usepackage{mathtools}
\usepackage{hyperref}
\usepackage{cleveref}

% see: https://tex.stackexchange.com/questions/228448/removing-the-brackets-around-equation-numbering
\makeatletter
\renewcommand\tagform@[1]{\maketag@@@{\ignorespaces#1\unskip\@@italiccorr}}
\makeatother

\creflabelformat{equation}{#2\textup{#1}#3}

\begin{document}
foo
\begin{equation}
1+1=2
\label{eq:foo}
\end{equation}
Something is shown in \cref{eq:foo}. Also in \autoref{eq:foo}. And in equation \ref{eq:foo}.
\end{document}

感谢 Mico 在评论中提到您应该考虑使用\textup{}以确保参考文献的字体直立。

相关内容