フォントが で初めて使用されるとlualatex
、luaotfload
はフォント キャッシュ ファイルを生成するために何らかの魔法を実行します。
大きなフォント(例:Noto Sans CJK) これには多くの時間とメモリが必要になる場合があります。
私は古いコンピューター (5 年前の MacBook air、4GB RAM) を所有しており、4GB のスワップ パーティションで Linux を実行しています。このフォントの初期キャッシュ生成には 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}