默认情况下,使用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}
有帮助。
\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{}
以确保参考文献的字体直立。