我想要数学模式下的粗体斜体数学字符(如普通数学)。因此,我尝试使用该bm
包,但它无法与unicode-math
我的 LaTeX 文档中的包一起使用。同样,对于某些特定字符,无法删除unicode-math
包。有人能帮我一起使用这些包吗?谢谢!
以下代码在没有 的情况下可以正常工作\usepackage{unicode-math}
。但是当添加此包时,该\bm
命令不起作用。
\documentclass[12pt, twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[explicit]{titlesec}
\usepackage[english]{babel}
\usepackage{lmodern}
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{array}
\usepackage{tabularx,booktabs}
\usepackage{color, colortbl}
\usepackage{pgf, pgfplots}
\usepackage{tikz}\usetikzlibrary{shapes.misc}
\usepackage{mathrsfs}
\usepackage{enumitem}
\usepackage{geometry}
\begin{document}
$\bm{(\sqrt[n]{x})^{n}=\sqrt[n]{x^{n}}=x}$
\end{document}
答案1
首先,针对序言中显示的代码,提出一些一般性的评论和观察:
使用 LuaLaTeX 或 XeLaTeX 时,你应该不是加载
fontenc
和inputenc
包。(即使使用 pdfLaTeX,也不再需要加载inputenc
包除非您的文件的输入编码是不是UTF8 或 ASCII,它是 UTF8 的真子集。)单独加载
colortbl
和color
包是错误的,因为它不会最大限度地提高这两个包的兼容性和互操作性。因此,请用替换\usepackage{color, colortbl}
。有关更多信息\usepackage[table]{xcolor}
,请参阅包用户指南的第 2.1.2 节“包选项”以及表 1“包选项”xcolor
。当使用该
unicode-math
包以及合适的 OpenType 数学字体(通过合适的\setmathfont
指令指定)时,无需加载以下包:lmodern
、、、、、和。(附言:如果加载包但不运行指令fontspec
,amsmath
则默认数学字体为。)amsfonts
amssymb
bm
unicode-math
\setmathfont
Latin Modern Math
如果尚未加载,则会自动
unicode-math
加载该包amsmath
事先的遇到 LaTeX 指令。有关详细信息,\usepackage{unicode-math}
请参阅软件包用户指南的第 3 节“入门” 。unicode-math
如果您希望使用
\mathscr
该mathrsfs
包的指令,请务必加载mathrsfs
后unicode-math
。(我提到这一点是因为您发布的序言加载了该mathrsfs
包。)
现在,终于到了你查询的主要部分了:
我想要数学模式下的粗体斜体数学字符(如普通数学)
生成加粗斜体数学模式字母和符号,该
unicode-math
包提供了一个名为的宏\symbfit
。使用它代替\boldsymbol
和\bm
。(正如您所发现的,\bm
无论如何都不起作用;因此,不要使用它。)生成大胆直立数学模式字母和符号,使用
\symbfup
。用它代替\mathbf
。
如下面的截图所示,\symbfit
和\symbfup
——以及它们的常规粗细对应物\symit
和\symup
——会影响拉丁字母和希腊字母的粗细和形状,但是不是(数学)“运算符”的形状和权重,例如\int
,,,和。\sum
\exp
\ln
\documentclass{book}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}
\newcommand\blurb{(\sqrt[n]{x}\,)^{n}=\sqrt[n]{x^{n}}=x
\quad \alpha\beta\Sigma\Omega \quad \int\sum\exp\ln}
\usepackage{setspace} % just for this example
\setstretch{1.25}
\begin{document}
\obeylines
$\blurb$ --- default
$\symbfit{\blurb}$ --- \verb+\symbfit+
$\symbfup{\blurb}$ --- \verb+\symbfup+
$\symit{\blurb}$ --- \verb+\symit+
$\symup{\blurb}$ --- \verb+\symup+
\end{document}
答案2
该bm
包适用于旧式 8 位字体。在 中unicode-math
,加载粗体数学字体(目前为 XITS Math、Libertinus Math 或 Minion Math)并用于\boldsymbol
粗体运算符和符号。如果您只需要粗体字母,则可以使用\mathbf
、\mathbfcal
等。或者使用 Mico 提到的新命令\symbfup
来显示直立粗体、\symbfit
斜体粗体等。粗体字母适用于任何 Unicode 数学字体。
如果您想要加粗符号和不同的数学字体,您也可以加载粗体数学字体\setmathfont[version=bold]{SomeBoldMathFont.otf}
。
您正在加载许多已过时的旧包unicode-math
,其中包括amssymb
、、和。只有在使用旧版 7 位amsfonts
和8 位字体时才需要所有这些。(无论如何您都不应该加载:XeLaTeX 和 LuaLaTeX 不支持它,PDFLaTeX 不再需要它。)mathrsfs
fontenc
inputenc
inputenc