有时我的文本中会出现主字体中没有的字符,例如汉字或表情符号等,我不想在文本中不断使用各种命令来修改它以更改字体。
我知道这可以通过改变语言来实现,但是当主字体中没有某个字符时,我希望 LuaLateX 本身检查字体列表并使用这些字体中的字符。
当我看到关于在文本中使用表情符号的答案时,我有了这个想法: 在 LuaLaTeX 中用字体代替表情符号
是否可以将这样的算法用于 LuaLaTeX 和带有 directlua 的 babel 包?
\documentclass{article}
\usepackage[bidi=basic]{babel}
\babelprovide[import, main]{arabic}
\babelfont{rm}{Amiri}
%%how force latex to use another font if an special charchter is not in Amiri font?
\begin{document}
سلام\\
hello\\
答案1
您可以将提供的后备扩展为多种字体并正常传递。
\documentclass{article}
\usepackage[bidi=basic]{babel}
\babelprovide[import, main]{arabic}
\directlua {
luaotfload.add_fallback("myfallback", {
"Noto Sans CJK SC:mode=harf;",
"Noto Color Emoji:mode=harf;",
})
}
\babelfont{rm}[RawFeature={fallback=myfallback}]{Amiri}
\begin{document}
سلام\\
hello\\