我希望有一个普通字体符号(在数学模式下)作为 hepthesis 文档类中的描述项。
例子:
\documentclass{hepthesis}
\usepackage{amsmath}
\usepackage{enumitem}
\begin{document}
\begin{mainmatter}
$T$ as in test. (This is what I want.)
\begin{description}
\item[$T$] as in test. (This is the default.)
\item[\textmd{$T$}] as in test. (No.)
\item[\mdseries $T$] as in test. (No.)
\item[$\unboldmath T$] as in test. (No.)
\end{description}
\begin{description}[format=\mdseries]
\item[$T$] as in test.
\end{description}
\end{mainmatter}
\end{document}
但如何呢?
答案1
您可以重新定义\makelabel
使用before
键:
\documentclass{hepthesis}
\usepackage{amsmath}
\usepackage{enumitem}
\begin{document}
\begin{mainmatter}
$T$ as in test. (This is what I want.)
\begin{description}[before={\renewcommand\makelabel[1]{\normalfont ##1}}]
\item[$T$] as in test.
\end{description}
\end{mainmatter}
\end{document}
答案2
这是班级的刻意选择:
%% Misc tweaks
\AtEndOfClass{%
%% Make maths in titles go automatically bold
\g@addto@macro\bfseries{\boldmath}
%% Declare a bold version of the typewriter font
\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
}
我认为这完全是错误的:物理学家应该非常清楚,符号和粗体版本之间存在很大差异:字母电视意味着标量,而电视将是一个向量。
在章节标题中,你会遇到同样的数学问题,所有标量都会变成矢量。因此,我建议的解决办法是删除“\boldmath
标题中”的调整:
\edef\bfseries{\noexpand\protect\expandafter\noexpand\csname bfseries \endcsname}
或者,使用etoolbox
:
\usepackage{etoolbox}
\patchcmd{\bfseries}{\boldmath}{}{}{}
完整示例
\documentclass{hepthesis}
\edef\bfseries{\noexpand\protect\expandafter\noexpand\csname bfseries \endcsname}
\begin{document}
$T$ as in test. (This is what I want.)
\begin{description}
\item[$T$] as in test. (This is the default.)
\end{description}
\end{document}
注 1
您尝试将\unboldmath
其放置在错误的位置:这样的命令应该放在数学之外:\item[\unboldmath$T$]
。
笔记2
该类所做的修补除了在数学上是错误的之外,从 LaTeX 的角度来看也是错误的:修补的命令不是\bfseries
,而是其内部版本,其名称中带有尾随空格:
\usepackage{xpatch}
\xapptocmd{\bfseries}{\boldmath}