如何製作`\bm{}` 與 `\usepackage[libertine]{newtxmath}` 和 pdflatex 一起使用嗎?

如何製作`\bm{}` 與 `\usepackage[libertine]{newtxmath}` 和 pdflatex 一起使用嗎?

0當我用 lualatex 編譯以下程式碼時,我會得到粗體。但是,我0對 pdflatex感到正常(不是粗體) 。有沒有任何解決方法可以讓0pdflatex 變得粗體?

\documentclass{article}
\usepackage[libertine]{newtxmath} 
\usepackage{bm}

\begin{document}
0$0\bm{0}$ % OK with lualatex, but not with pdflatex
\end{document}

我的環境是

pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016)
LuaTeX, Version 0.95.0 (TeX Live 2016)
bm: 2017/01/16
newtx: 1.515 2017-01-22

答案1

當您libertine作為選項傳遞給newtxmath它時,然後使用數學中的半粗體粗細來表示粗體字元。但是,您尚未載入文字字體,因此預設的 Computer Modern 字體用於數學中的數字等,但沒有 Computer Modern 字體的半粗體版本。解決方法是添加字型替換指令

\DeclareFontShape{OT1}{cmr}{sb}{n}{<->ssub * cmr/b/n}{}

sb透過用重量代替重量,可以得到所需的結果,如下面的文件所示b。但實際上你應該加載適當的文字字體來匹配數學,例如只是問題

\usepackage{libertine}

在加載之前newtxmath

樣本輸出

\documentclass{article}

\usepackage[libertine]{newtxmath}
\usepackage{bm}
\DeclareFontShape{OT1}{cmr}{sb}{n}{<->ssub * cmr/b/n}{}

\begin{document}

Testing some mathematics \( x = y^2 = \int_0^1 2y\,dy \).

Testing some bold symbols \( \bm{v} = (0,0,0) = \bm{0} \).

\end{document}

\showoutput順便說一句,您可以透過在文件中發出命令來準確地看到正在列印哪些字元。

相關內容