为什么 \mathbf 不能被重新定义?

为什么 \mathbf 不能被重新定义?

我有一个如下的 tex 文件:

\documentclass[]{article}
\usepackage{unicode-math}

\let\mathbf\symbfup
\let\emph\symbfup
\let\textbf\symbfup

% same result with other ways:
%\LetLtxMacro{\mathbf}{\symbfup}
%\renewcommand{\mathbf}[1]{\symbfup{#1}}
%\renewcommand{\mathbf}{\symbfup}

\begin{document}

\[
1.\mathbf\Omega 2.\emph\Omega 3.\textbf\Omega 
\]


\end{document}

输出为:

在此处输入图片描述

从日志文件中可以看到Missing character: There is no

答案1

正确的做法是\usepackage[mathbf=sym]{unicode-math}。请参阅手冊。

您不想重新定义\textbf,因为这是一个 LaTeX 命令,它在文本和数学模式下都已经执行了其他操作,以这种方式重新定义它会导致粗体文本中断。同样,您也不想重新定义\emph。获得所需内容的标准方法是\textnormal{\bfseries v}

如果要同时选择粗体文本和粗体数学,请使用\bfseries\boldmath。然后加载带有粗体版本的 OpenType 数学字体,例如 XITS Math,或使用 声明一个\setmathfont[version=bold]{Some Font Math Bold}

为了回答您提出的字面问题,unicode-math它的大部分定义都在序言的末尾(这使得它与其他包更兼容),因此您需要在里面重新定义它的大部分命令\AtBeginDocument

相关内容