
私は lualatex を fontspec とともに使用して、数式をあるフォントでタイプセットし、テキストを別のフォントでタイプセットしています。テスト中に、タイプセットしたドキュメントの数式は、オンラインで見たいくつかのサンプルほど見栄えがよくないことがわかりました。さらに調査したところ、数式に選択したフォント ( を使用\setmathfont
) に必要なグリフ (小文字の 'd' など) があっても、lualatex はそれらのグリフの一部を の時点で読み込まれたローマン フォント フェースに置き換えて数式を作成することがわかりました\setmathfont
。
次の 2 つの画像の小文字の 'd' を見てください。最初の画像は、数式に「TeX Gyre Pagella Math」フォント、メイン テキストにデフォルト フォント (Latin Modern) を使用してコンパイルされています。2 番目の画像は、数式に「TeX Gyre Pagella Math」フォント、メイン テキストに「TeX Gyre Pagella」を使用してコンパイルされています。ちなみに、私は Cambria Math でテストを開始しましたが、これにも同じ問題が発生しています。したがって、これはフォント関連の問題ではないことは間違いありません。
まず(メインテキストに TeX Gyre Pagella を使用せず、小文字の「d」はラテンモダンからのもので、残りのグリフはそうではありません)
2番目(メインテキストにTeX Gyre Pagellaを使用。小文字の「d」はおそらくTeX Gyre Pagellaからのもので、TeX Gyre Pagella Mathからのものではありません。同じ方程式なので問題ないようです)
完全なコード (\setmathfont
両方のケースを再生成する方法については、事前に「注意」をお読みください):
% >> lualatex testmathfont.tex
\documentclass[notitlepage,letterpaper]{article}
%\usepackage{lua-visual-debug}
\usepackage[absolute]{textpos}
\usepackage[letterpaper,left=2in,right=2in,top=1in,bottom=0in]{geometry}
\usepackage[expansion=alltext,shrink=20,stretch=20]{microtype}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{unicode-math}
% NOTE:: Compile 1: keep following line commented, Compile 2: uncomment following line
%\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}
\usepackage{blindtext}
\begin{document}
\blindtext[1]\vspace*{\baselineskip}
$\displaystyle\int_a^b x^2\;\mathrm{d}x= \tfrac{1}{3} x^3 \Big|_a^b$\vspace*{\baselineskip}
\blindtext[1]\vspace*{\baselineskip}
$a_0+\cfrac{1}{a_1+\cfrac{1}{a_2+\cfrac{1}{a_3+\cdots}}}$\vspace*{\baselineskip}
\end{document}