我从中学到戴维斯洛答案是,我告诉 LaTeX 如果检测到缺失的字形,就警告我。然后我可以这样声明它:
\documentclass{article}
\tracinglostchars=2
\usepackage{newunicodechar}
\usepackage{fontspec}
\usepackage{ctex}
\usepackage{FiraSans}
\setCJKmainfont{ipaexm.ttf}
\setmonofont{Fira Code}
\newfontfamily\firamono{Fira Mono}[Ligatures={Common,Discretionary,TeX}]
\newunicodechar{⇒}{{\sffamily ⇒}}
\newunicodechar{⊕}{{\sffamily ⊕}}
\newunicodechar{│}{{\sffamily │}}
\newunicodechar{┬}{{\sffamily ┬}}
\newunicodechar{♯}{{\sffamily ♯}}
\newunicodechar{⨼}{{\sffamily ⨼}}
\newunicodechar{◿}{{\sffamily ◿}}
% ...
\newunicodechar{α}{$\alpha$}
\newunicodechar{δ}{$\delta$}
\newunicodechar{ε}{$\varepsilon$}
\newunicodechar{η}{$\eta$}
\newunicodechar{ι}{$\iota$}
\newunicodechar{κ}{$\kappa$}
\newunicodechar{λ}{$\lambda$}
\newunicodechar{μ}{$\mu$}
\newunicodechar{π}{$\pi$}
\newunicodechar{ω}{$\omega$}
% ...
但是现在我\tracinglostchars=2
在我的文档我注意到我有很多缺失的字形。它们大多数都是常规希腊字母,我想知道我是否需要newunicodechar
为每个字母声明一个,或者是否有更明智的替代方案。以下是缺失的字形:
$ perl -ne 'print if s/Missing.+?no\K(.+?) in font (.*?):/$1\t$2/' _build/latex/main.log | sort -u
答案1
您几乎肯定想要使用babel
或polyglossia
来处理像这样的多语言文档。 这是一个例子。