newtxmath 与 fontspec 结合使用的注意事项

newtxmath 与 fontspec 结合使用的注意事项

我能够使用以下工具排版一份约 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}

相关内容