Какой способ создания кэша шрифта luatex для нового шрифта наименее ресурсоемкий?

Какой способ создания кэша шрифта luatex для нового шрифта наименее ресурсоемкий?

При первом использовании шрифта 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}

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