Tex Gyre Bonum 字体

Tex Gyre Bonum 字体

我正在使用 Tex Gyre Bonum 作为罗马字体,使用 Tex Gyre Bonum Math 作为数学字体编写文档。但这些字体的逗号不同。因此,公式环境中的逗号不等于常规文本中的逗号。如何使数学模式中的逗号等于常规文本中的逗号?

\documentclass[12pt,a4paper,titlepage]{report}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsmath,amssymb,cancel,esint,mathtools,stackrel,stmaryrd,undertilde,amsfonts,siunitx}
\usepackage{fontspec}
\usepackage{unicode-math}
\setromanfont{TeX Gyre Bonum}
\setmathfont[math-style=ISO,bold-style=ISO]{TeX Gyre Bonum Math}

\begin{document}

Lorem, ipsum, dolor, sit, amet, consectetur, adipiscing, elit. Fusce, vel, pellentesque, tellus. 
$$E=mc^2,$$
Nunc, ut, pharetra, mauris, quis, maximus, risus. Fusce, eu, laoreet, justo. 
$$,,,$$

This is comma in regular text: ,

This is comma in math mode: $,$

\end{document}

PDF

答案1

两种可能的解决方法:

  1. 加载dcolumn
  2. 使用polyglossia而不是babel

由于各种原因,babel-italian为了模拟 的行为,开始使用逗号icomma。显然没有办法在不加载 的情况下禁用此功能dcolumn,从而避免启动时出现混乱。

另外,发布并\AtBeginDocument{\NoIntelligentComma}不能解决问题,因为这会将逗号的数学代码恢复为旧版 LaTeX 中的值,并且不适合unicode-math

\documentclass{article}
\usepackage[italian]{babel}
\usepackage{amsmath,dcolumn}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Bonum}
\setmathfont[math-style=ISO,bold-style=ISO]{TeX Gyre Bonum Math}

\begin{document}

Lorem, ipsum, dolor, sit, amet, consectetur, 
adipiscing, elit. Fusce, vel, pellentesque, tellus. 
\[E=mc^2,\]
Nunc, ut, pharetra, mauris, quis, maximus, risus. Fusce, eu, laoreet, justo. 
\[,\text{,},\]

This is comma in regular text: ,

This is comma in math mode: $,$

\end{document}

在此处输入图片描述

相关内容