Qual é a maneira com menos recursos para gerar o cache de fontes luatex para uma nova fonte?

Qual é a maneira com menos recursos para gerar o cache de fontes luatex para uma nova fonte?

Quando uma fonte é usada pela primeira vez com lualatex, luaotfloadfaz alguma mágica para produzir arquivos de cache de fontes.

Para fontes grandes (por exemplo,Noto Sans CJK) isso pode consumir muito tempo e muita memória.

Eu tenho um computador antigo (MacBook Air de 5 anos com 4 GB de RAM) rodando Linux com uma partição swap de 4 GB. A geração inicial do cache desta fonte pode levar mais de 15 minutos e inutilizar meu computador. Às vezes fico sem memória e o processo é interrompido.

Digamos que eu queira usar a fonte assim:

\documentclass{article}
\usepackage{fontspec}
\setmainfont[Script=CJK,Language=Chinese Simplified]{Noto Sans CJK SC}
\begin{document}
中文
\end{document}

Qual é a maneira menos intensiva de recursos e/ou mais rápida de gerar os arquivos de cache necessários?

No momento, saio de tudo (até do X11) e corro lualatexdo console, mas ainda demora muito, e sair de tudo é um pouco chato.

Responder1

Você pode fazer conforme proposto na seção 9.2.1 “Cortando fontes“ emFontes fora do ConTeXte remova todos os nomes de glifos da fonte.

insira a descrição da imagem aqui

Adaptado para LaTeX e seu exemplo:

\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}

informação relacionada