При первом использовании шрифта lualatex
происходит luaotfload
некое волшебство по созданию файлов кэша шрифтов.
Для крупных шрифтов (например,Ното Санс CJK) это может занять много времени и памяти.
У меня старый компьютер (5-летний MacBook Air с 4 ГБ ОЗУ) под управлением Linux с разделом подкачки 4 ГБ. Первоначальная генерация кэша этого шрифта может занять более 15 минут и сделать мой компьютер непригодным для использования. Иногда у меня просто заканчивается память, и процесс останавливается.
Допустим, я хочу использовать шрифт следующим образом:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Script=CJK,Language=Chinese Simplified]{Noto Sans CJK SC}
\begin{document}
中文
\end{document}
Какой способ создания необходимых кэш-файлов является наименее ресурсоемким и/или самым быстрым?
На данный момент я выхожу из всех приложений (даже из X11) и запускаю lualatex
с консоли, но это все равно занимает много времени, и выходить из всех приложений немного неудобно.
решение1
Вы можете сделать так, как предложено в разделе 9.2.1 «Обрезка шрифтов» вШрифты из ConTeXtи удалите все названия глифов в шрифте.
Адаптировано к LaTeX и вашему примеру:
\documentclass{article}
\usepackage{fontspec,luacode}
\begin{luacode*}
fonts.handlers.otf.readers.registerextender {
name = "remove names from Noto Sans CJK SC",
action = function(fontdata)
if string.match(fontdata.metadata.fullname, "Noto Sans CJK SC") then
texio.write_nl("Trimming font " .. fontdata.metadata.fullname)
for k, v in next, fontdata.descriptions do
v.name = nil
end
end
end
}
\end{luacode*}
\setmainfont[Script=CJK,Language=Chinese Simplified]{Noto Sans CJK SC}
\begin{document}
中文
\end{document}