Wenn eine Schriftart zum ersten Mal mit verwendet wird lualatex
, luaotfload
werden auf magische Weise Schriftart-Cache-Dateien erstellt.
Bei großen Schriftarten (z. B.Noto Sans CJK) dies kann viel Zeit und Speicherplatz beanspruchen.
Ich habe einen alten Computer (5 Jahre altes MacBook Air mit 4 GB RAM), auf dem Linux mit einer 4 GB großen Swap-Partition läuft. Die anfängliche Cache-Generierung dieser Schriftart kann mehr als 15 Minuten dauern und meinen Computer unbrauchbar machen. Manchmal geht mir einfach der Speicher aus und der Prozess wird abgebrochen.
Nehmen wir an, ich möchte die Schriftart wie folgt verwenden:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Script=CJK,Language=Chinese Simplified]{Noto Sans CJK SC}
\begin{document}
中文
\end{document}
Was ist der ressourcenschonendste und/oder schnellste Weg zum Generieren der erforderlichen Cache-Dateien?
Momentan beende ich alles (sogar X11) und führe es lualatex
von der Konsole aus, aber es dauert immer noch lange und das Beenden von allem ist etwas mühsam.
Antwort1
Sie können wie im Abschnitt 9.2.1 „Schriftarten trimmen“ beschrieben vorgehen.Schriftarten aus ConTeXtund entfernen Sie alle Glyphennamen in der Schriftart.
Angepasst an LaTeX und Ihr Beispiel:
\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}