Ошибка компиляции при использовании цвета в fontspec
В другом потоке [здесь] [1] я не смог скомпилировать код, и мы выяснили, что это из-за «цвета».
Когда я использую этот код ...
\documentclass{standalone}
\newcommand\fsname{Shobhika}
\usepackage{fontspec}
\newfontfamily\fsnsk[Script=Devanagari]{\fsname}[Colour=0000ff]\begin{document}
test
\end{document}
... возникает следующая ошибка:
! Ошибка LaTeX: отсутствует \ begin {document}. l.4 ... ntfamily \ fsnsk [Script = Devanagari] {\ fsname} [Color = 0000ff] \ begin {docum ...
Когда я уйду [Colour=0000ff]...
\documentclass{standalone}
\newcommand\fsname{Shobhika}
\usepackage{fontspec}
\newfontfamily\fsnsk[Script=Devanagari]{\fsname}
\begin{document}
test
\end{document}
... тогда компиляция в порядке. У других такой проблемы нет, и они могут скомпилировать этот код с помощью цвета. Шрифты мы протестировали и работают хорошо. В чем проблема?
Ответы
Ваш MWE может быть хорошо скомпилирован с последним дистрибутивом TeX.
Но ваша ошибка указывает на то, что [Colour=0000ff]она не рассматривается как аргумент \newfontfamily. В последних необязательных аргументах для \newfontfamilyпошли перед тем именем шрифта, но оно было изменено некоторое время назад , чтобы поставить дополнительный аргумент после имени шрифта.
Я подозреваю, что вы используете старую версию fontspec, которая не поддерживает размещение необязательного аргумента после имени шрифта.
Вы можете подтвердить это, добавив \listfilesв начало вашего документа TeX. Это заставит TeX вывести вашу fontspecверсию.
Моя (рабочая) версия fontspec 2019/10/19 v2.7d.
Если это так, то решение - обновить ваш TeX-дистрибутив.
А пока можно использовать:
\newfontfamily\fsnsk[Script=Devanagari, Colour=0000ff]{\fsname}
После обновления вам, вероятно, следует использовать:
\newfontfamily\fsnsk{\fsname}[Script=Devanagari, Colour=0000ff]
вместо того, чтобы помещать один параметр перед именем шрифта и один после него.