새 글꼴에 대한 Luatex 글꼴 캐시를 생성하는 데 리소스를 가장 적게 사용하는 방법은 무엇입니까?

새 글꼴에 대한 Luatex 글꼴 캐시를 생성하는 데 리소스를 가장 적게 사용하는 방법은 무엇입니까?

글꼴을 에서 처음 사용하면 에서는 lualatex글꼴 luaotfload캐시 파일을 생성하는 마법을 수행합니다.

큰 글꼴의 경우(예:노토 산스 CJK) 이 작업에는 많은 시간과 메모리가 소요될 수 있습니다.

나는 4GB 스왑 파티션이 있는 Linux를 실행하는 오래된 컴퓨터(4GB RAM을 갖춘 5년 된 MacBook Air)를 가지고 있습니다. 이 글꼴의 초기 캐시 생성에는 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}

관련 정보