левая( \right) проблема с Stix Math Two, когда \small применяется к группе (Lualatex)

левая( \right) проблема с Stix Math Two, когда \small применяется к группе (Lualatex)

Рассмотрим следующий MWE:

\documentclass[12pt]{article}
\usepackage{unicode-math}
\setmathfont{STIX2Math.otf}

\begin{document}
{\small Small size
\[
    \left(\frac{a}{b}\right)   \left(\frac{\frac{a}{b}}{\frac{a}{b}}\right)
\]
}

Normal size
\[
    \left(\frac{a}{b}\right) \left(\frac{\frac{a}{b}}{\frac{a}{b}}\right)
\]

\end{document}

введите описание изображения здесь

Если вы скомпилируете его, то заметите, что скобки не масштабируются правильно в первой \smallдирективе with. Если вы закомментируете, \setmathfont{Stix Two Math}то это работает. Так что, похоже, это проблема stix 2. Я использую полностью обновленную систему LuaLatex (MacTeX 2017).

Мои вопросы: а) это известная проблема? б) как можно обойти эту проблему прозрачным способом?

(Я не могу перейти на XeLaTex, так как планирую поиграться с кодом lua.)

решение1

Проблема, по-видимому, в +sstyопции, которая используется для размеров, меньших базового размера;отчет об ошибкеуже был подан на Sourceforge.

Вот пример, который можно скомпилировать с помощью xetexили luatex, и получить разные результаты.

\input ifxetex.sty

\ifxetex
  \font\extsymbolsA="STIX Two Math/OT:script=math;language=DFLT;"
  \font\extsymbolsB="STIX Two Math/OT:script=math;language=DFLT;+ssty=0;"
\else
  \input luaotfload.sty
  \font\extsymbolsA="STIX Two Math:mode=base;script=math;language=DFLT;"
  \font\extsymbolsB="STIX Two Math:mode=base;script=math;language=DFLT;+ssty=0;"
\fi

\Udelcode`(="3 `(
\Udelcode`)="3 `)

\textfont3=\extsymbolsA
$$
\left(a\over b\right)
$$

\textfont3=\extsymbolsB
$$
\left(a\over b\right)
$$

\bye

Выход сxetex

введите описание изображения здесь

Выход сluatex

введите описание изображения здесь

Проблема, по-видимому, вызвана некоторым взаимодействием с опцией и LuaTeX или luaotfload.

Однако, похоже, это влияет только на скобки, а не на другие разделители:

\documentclass[10pt]{article}
\usepackage{unicode-math}
\setmathfont{STIX Two Math}

\begin{document}
{\small Small size
\[
\left(\frac{a}{b}\right)
\left[\frac{a}{b}\right]
\left\{\frac{a}{b}\right\}
\left\langle\frac{a}{b}\right\rangle
\]
}

Normal size
\[
\left(\frac{a}{b}\right)
\left[\frac{a}{b}\right]
\left\{\frac{a}{b}\right\}
\left\langle\frac{a}{b}\right\rangle
\]

\end{document}

введите описание изображения здесь

Возможный обходной путь:

\documentclass[10pt]{article}
\usepackage{unicode-math}
\setmathfont{STIX Two Math}
\setmathfont[range={\(,\)}]{XITS Math}

\AtBeginDocument{%
  \Udelcode`(="4 `(
  \Udelcode`)="4 `)
}

\begin{document}
{\small Small size
\[
\left(\frac{a}{b}\right)
\left[\frac{a}{b}\right]
\left\{\frac{a}{b}\right\}
\left\langle\frac{a}{b}\right\rangle
\]
}

Normal size
\[
\left(\frac{a}{b}\right)
\left[\frac{a}{b}\right]
\left\{\frac{a}{b}\right\}
\left\langle\frac{a}{b}\right\rangle
\]

\end{document}

введите описание изображения здесь

Связанный контент