![newtxmath 与 fontspec 结合使用的注意事项](https://linux22.com/image/284127/newtxmath%20%E4%B8%8E%20fontspec%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9.png)
我能够使用以下工具排版一份约 50 页的包含大量数学知识的讲义
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
PDFLaTeX 和 XeLaTeX 都支持。我知道如果与 XeTeX 一起使用,该libertine
包会自动加载和使用fontspec
。但是,有人在这里提到,同时使用 Type1 和 OpenType 字体不是一个好主意。那么,可能出现什么问题呢?
答案1
适用于 xelatex 和 pdflatex
\documentclass{article}
\usepackage{iftex}
\ifXeTeX
\usepackage[no-math]{fontspec}
\usepackage[libertine]{newtxmath}
\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\fi
\usepackage{libertine}
\begin{document}
$\mathbf{\Delta}$
\end{document}
答案2
不要混淆数学字体和文本字体,这一点很重要。fontspec
使用该[no-math]
选项加载时,数学字体不会受到影响,因此数学字体包应该可以正常工作。为 PDFLaTeX 编写的字体包可能无法正常工作。
但是,在将现有文档转换为 XeLaTeX 之前,校对是必要的。我发现有些特殊情况确实会出错。下面的代码使用 PDFLaTeX 可以正确呈现,但使用 XeLaTeX 时我得到了一个 ☒ 字符:
\documentclass{article}
\usepackage{iftex}
\ifXeTeX\else
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\fi
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\begin{document}
$\mathbf{\Delta}$
\end{document}