我希望当我使用命令\tag
为方程式赋予名称而不是数字时,该名称将以粗体打印在方程式旁边(不带括号),但随后引用该方程式时将以正常字体打印名称。
我尝试了\newtagform
包中的命令mathtools
,但它并没有完全满足我的要求。它允许我将所有显示的标签(自动方程编号以及手动添加的名称)更改为粗体。我可以\usetagform{bold}
在每个方程前面加上一个,\tag
然后在其后加上一个,但这很尴尬,而且当或环境同时包含命名方程(其标签应为粗体)和编号方程(其标签应为正常字体)\usetagform{default}
时,它不起作用。gather
align
我也尝试制作一个自定义命令来执行\tag{\bfseries #1}
然后,但是由于重新定义命令\def@currentlabel{#1}
的方式,这不起作用。amsmath
\label
平均能量损失
\documentclass{article}
\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{align}
e&=mc^2 \tag{Einstein's Equation} \label{einstein}
\\
m &= \frac{e}{c^2} \label{meinstein}
\end{align}
Notice that \ref{meinstein} is a trivial consequence of \ref{einstein}.
\end{document}
答案1
以下代码定义了一个Cian
以您的名字命名的新标签格式。它会检测标签中是否包含字母,然后应用相应的样式。
A.1
然而,这意味着对于附录中编号为(包含字母)的方程式,您应该切换回正常标签格式。
另外,为了得到“equation”这个词,我在这里使用了包cleveref
(与标签格式无关)。当然你也可以手动写这个词,这取决于你。
\documentclass{article}
\usepackage{mathtools}
\usepackage[noabbrev]{cleveref}
\ExplSyntaxOn
\NewDocumentCommand \CianFormat { m }
{
\regex_match:nnTF { [A-Za-z] } { #1 }
{ \textbf{#1} }
{ (#1) }
}
\ExplSyntaxOff
\newtagform{Cian}[\CianFormat]{}{}
\begin{document}
\usetagform{Cian}
\begin{align}
e&=mc^2 \tag{Einstein's Equation} \label{einstein}
\\
m &= \frac{c^2}{e} \label{meinstein}
\end{align}
Notice that \cref{meinstein} is a trivial consequence of \ref{einstein}.
\end{document}