![Tufte-Latex 自由文本和数学字体不兼容问题](https://linux22.com/image/371553/Tufte-Latex%20%E8%87%AA%E7%94%B1%E6%96%87%E6%9C%AC%E5%92%8C%E6%95%B0%E5%AD%A6%E5%AD%97%E4%BD%93%E4%B8%8D%E5%85%BC%E5%AE%B9%E9%97%AE%E9%A2%98.png)
我想用该类编写一个实质性的数学文档tufte-book
,并进行一些小的更改。我的第一个问题是,在加载我喜欢的字体libertine
以及newtxmath
获取其关联的数学字体后,我仍然会得到 libertine 和 math 中的文本,看起来像默认的 Palatino。我正在使用 进行编译pdflatex
。这是 MWE:
\documentclass[nofont]{tufte-book}
\usepackage[T1]{fontenc}
\usepackage{amsthm}
\usepackage{newtxmath}
\usepackage{libertine}
\everymath{\displaystyle}
\begin{document}
We have
\[
\frac{d}{dx}(\sin \theta)=\cos \theta,
\]
with libertine text but math in Palatino. Another example is the summation formula
\[
\sum_{i=1}^\infty i^2=\frac{n(n+1)(2n+1)}{6}.
\]
\end{document}
答案1
您可以考虑使用Khaled Hosny 的Linux Libertine 的分支名为自由主义者其中包括基于 Linux Libertine 的 OpenType 数学字体。切换到 XeLaTeX,然后将以下内容添加到文档的序言中:
\usepackage{fontspec}
\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}
\setmonofont{Libertinus Mono}
\usepackage{unicode-math}
\setmathfont{Libertinus Math}
使用xelatex
,字体编码默认为 Unicocde (UTF-8),因此您可以删除fontenc
包以及libertine
和newtxmath
包。
完整的测试文档如下:
\documentclass[nofonts]{tufte-book}
\usepackage{amsthm}
\usepackage{fontspec}
\setmainfont{Libertinus Serif}
\setsansfont{Libertinus Sans}
\setmonofont{Libertinus Mono}
\usepackage{unicode-math}
\setmathfont{Libertinus Math}
\everymath{\displaystyle}
\begin{document}
We have
\[
\frac{d}{dx}(\sin \theta)=\cos \theta,
\]
with Libertinus Serif text and math in Libertinus Math. Another example is the summation formula
\[
\sum_{i=1}^\infty i^2=\frac{n(n+1)(2n+1)}{6}.
\]
\end{document}
结果如下: