В настоящее время я работаю над документом, который редактирую с нескольких машин, на обеих установлена Windows 10. В обоих случаях я использую Miktex (x64). Однако на одной машине возникает проблема, когда я пытаюсь скомпилировать следующий MWE:
\documentclass{book}
\usepackage{fontspec}
\setmainfont{Arial}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
Используя XeLaTeX, PDF выглядит так, как и ожидалось, а Arial отображается как встроенный шрифт. Однако, когда я пытаюсь использовать Lualatex, PDF на самом деле использует узкий вариант шрифта.
Результат работы Xelatex следующий:
.................................................
. fontspec info: "defining-font"
.
. Font family 'Arial(0)' created for font 'Arial' with options
. [Ligatures=TeX].
.
. This font family consists of the following NFSS series/shapes:
. - 'normal' (m/n) with NFSS spec.:
. <->"Arial/OT:script=latn;language=DFLT;mapping=tex-text;"
. - 'small caps' (m/sc) with NFSS spec.:
. <->"Arial/OT:script=latn;language=DFLT;mapping=tex-text;+smcp;"- 'bold'
. (bx/n) with NFSS spec.:
. <->"Arial/B/OT:script=latn;language=DFLT;mapping=tex-text;"
. - 'bold small caps' (bx/sc) with NFSS spec.:
. <->"Arial/B/OT:script=latn;language=DFLT;mapping=tex-text;+smcp;"- 'italic'
. (m/it) with NFSS spec.:
. <->"Arial/I/OT:script=latn;language=DFLT;mapping=tex-text;"
. - 'italic small caps' (m/itsc) with NFSS spec.:
. <->"Arial/I/OT:script=latn;language=DFLT;mapping=tex-text;+smcp;"- 'bold
. italic' (bx/it) with NFSS spec.:
. <->"Arial/BI/OT:script=latn;language=DFLT;mapping=tex-text;"
. - 'bold italic small caps' (bx/itsc) with NFSS spec.:
. <->"Arial/BI/OT:script=latn;language=DFLT;mapping=tex-text;+smcp;"
.................................................
Выходные данные Lualatex:
.................................................
. fontspec info: "defining-font"
.
. Font family 'Arial(0)' created for font 'Arial' with options
. [Ligatures=TeX].
.
. This font family consists of the following NFSS series/shapes:
. - 'normal' (m/n) with NFSS spec.: <->"Arial:mode=node;+tlig;"
. - 'small caps' (m/sc) with NFSS spec.: - 'bold' (bx/n) with NFSS spec.:
. <->"Arial/B:mode=node;+tlig;"
. - 'bold small caps' (bx/sc) with NFSS spec.: - 'italic' (m/it) with NFSS
. spec.: <->"Arial/I:mode=node;+tlig;"
. - 'italic small caps' (m/itsc) with NFSS spec.: - 'bold italic' (bx/it)
. with NFSS spec.: <->"Arial/BI:mode=node;+tlig;"
. - 'bold italic small caps' (bx/itsc) with NFSS spec.:
.................................................
Я подозревал, что Lualatex на самом деле использует по умолчанию узкий вариант вместо обычного шрифта. Запуск luaotfload-tool --find="Arial"
дает следующий вывод
luaotfload | resolve : Font "Arial" found!
luaotfload | resolve : Resolved file name "c:/windows/fonts/arialn.ttf
Мне кажется, что поиск на самом деле неправильный. Я пробовал использовать параметры cache=purge
, force
и flush-lookup
, но безрезультатно. Есть ли способ вручную изменить поиск, чтобы он указывал на правильный файл?
решение1
Это может помочь до тех пор, пока проблема не будет устранена и обновление не будет загружено в дистрибутивы.
\documentclass{book}
\usepackage{fontspec}
\setmainfont{arial}[ %Need such long loading because of luaotfload issue
Extension = .ttf,
UprightFont = *,
BoldFont = *bd,
ItalicFont = *i,
BoldItalicFont = *bi]
\newfontfamily\cyrillicfont{arial}[ %for Cyrillic users
Extension = .ttf ,
UprightFont = *,
BoldFont = *bd,
ItalicFont = *i,
BoldItalicFont = *bi]
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
Идею можно использовать для затронутых шрифтов. Можно проверить
luaotfload-tool --find="Arial"
указывает на arialn.ttf
то, что Arial Narrow и
luaotfload-tool --find="DejaVuSerif"
указывает на dejavuserifcondensed.ttf
который DejaVuSerifCondensed.
Проблема, по крайней мере,один месяц.