我正在使用 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}
答案1
两种可能的解决方法:
- 加载
dcolumn
包 - 使用
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}