无法阻止拉丁字符在希腊字符加粗后加粗

无法阻止拉丁字符在希腊字符加粗后加粗

我正在使用以下代码。

\documentclass[]{article}
\usepackage{amssymb}
\usepackage{amsmath}

\begin{document}
    
    \begin{eqnarray}  \label{eq:linearInterpolant}
        \boldsymbol{\beta}(\bf{s^*}) = \normalfont{c}
    \end{eqnarray}
    
\end{document}

我得到以下结果

在此处输入图片描述

也就是说,尽管粗体在 c 之前已经结束,但 c 字符仍被加粗。看来我不需要 \normalfont,但它无论如何都不起作用。我希望 c 不加粗,因为它不代表矢量。

答案1

两个不同的问题使用您的代码:

  • \bf是一个开关,不带参数。其范围扩展到当前组的末尾。( 也一样\normalfont,顺便说一下,它是一个文本模式命令,在数学模式下使用时无效。)因此

    (\bf{s^*}) = \normalfont{c}
    

    结果是相同的

    (\bf s^*) = c
    

    c以粗体显示,因为的范围\bf包含它。

  • \bf是 Plain TeX 的遗留,不应在 1994 年以后创建的 LaTeX 文档中使用 [!]。真的。\bf和它的近亲,例如\rm\it,不再在 LaTeX 内核中定义。一些文档类仍然定义\bf,但其他文档类没有。为了最大限度地提高文档在文档类之间的可移植性,您应该将所有 实例替换{\bf ...}为 或\textbf{...}\mathbf{...}具体取决于使用的是文本模式还是数学模式。

简而言之,你应该学会替换

\boldsymbol{\beta}(\bf{s^*}) = \normalfont{c}

\boldsymbol{\beta}(\mathbf{s}^*) = c

从此过上了幸福的生活。(请注意,我只会s加粗,而不会加上标星号。)

相关内容