0
當我用 lualatex 編譯以下程式碼時,我會得到粗體。但是,我0
對 pdflatex感到正常(不是粗體) 。有沒有任何解決方法可以讓0
pdflatex 變得粗體?
\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
順便說一句,您可以透過在文件中發出命令來準確地看到正在列印哪些字元。