newtxmath/lmodern 坏了吗?

newtxmath/lmodern 坏了吗?

我刚刚更新了我的软件包。如果我同时加载和MiKTeX,输出现在似乎缺少数学运算符。newtxmathlmodern

\documentclass[a4paper,twoside,12pt]{article}

\usepackage{newtxmath}
\usepackage{lmodern}

\begin{document}

$(3 + 5) \times 2 = \lambdaup$

\end{document}

我的系统上的输出缺少括号和 + 符号。我(相对)确定这种行为是新出现的 - 其中一个或两个包是否损坏了?

答案1

在日志中你会看到

Missing character: There is no � in font lmsy10!
Missing character: There is no � in font lmsy10!
Missing character: There is no � in font lmsy10!
Missing character: There is no � in font lmsy10!

它们之间并没有断裂,只是天生不相容。

newtxmath更改所有命令以适应 txmath 字体的编码,然后将字体切换为拉丁现代字体

如果您确实希望将拉丁现代文本与 Times Roman 样式数学配对,则请按其他顺序加载包,以便数学设置与正在使用的数学字体相匹配


\documentclass[a4paper,twoside,12pt]{article}
\tracinglostchars2

\usepackage{lmodern}
\usepackage{newtxmath}

\begin{document}

$(3 + 5) \times 2 = \lambdaup$

\end{document}

在此处输入图片描述

然而,这些字体实际上根本不匹配,所以通常您只会使用\usepackage{lmodern}拉丁现代文本和数学,或者\usepackage{newtxtext,newtxmath}使用新的 tx(Times Roman 风格)文本和数学。

提供了一个与拉丁现代更契合的直立 lambda,upgreek它只添加了这些字母,而不会改变整个数学设置:

在此处输入图片描述

\documentclass[a4paper,twoside,12pt]{article}
\tracinglostchars2

\usepackage{lmodern}
\usepackage{upgreek}

\begin{document}

$(3 + 5) \times 2 = \uplambda$

\end{document}

答案2

Tex Gyre 字体和其对应的数学字体在设计上很好地结合在一起。

unicode-math包中提供了(除其他外,例如math-style=选项)\up直立希腊符号的 ... 前缀,例如\uplambda

直立 lambda

平均能量损失

\documentclass[a4paper,twoside,12pt]{article}
\usepackage{unicode-math}
\setmainfont{TexGyreTermes}
\setmathfont{TexGyreTermes-Math}
%(λ 

相关内容