我使用 overleaf 编辑简历,但我发现编译后的 PDF 中无法显示中文字符“珅”。我也尝试了 XeCJK,但它也不行。这是我的代码:
\documentclass[a4paper]{article}
\usepackage[UTF8]{ctex}
\begin{document}
珅
\end{document}
答案1
和加载的默认字体集 ( fandol
)可能不包含许多古汉字的字形。如果您在 Overleaf 上编译此内容,则可以使用加载 Noto Serif CJK SC 的选项:ctex
xeCJK
fontset=ubuntu
\usepackage[UTF8,fontset=ubuntu]{ctex}
或者如果您希望明确加载字体:
\usepackage{ctex}
\setCJKmainfont{Noto Serif CJK SC} % or some other font that has the glyph
答案2
我将通过一些最佳实践来扩展 imnothere 的精彩答案。
\documentclass[a4paper]{article}
\tracinglostchars=2
\usepackage[UTF8, fontset=none]{ctex}
\defaultfontfeatures{ Scale=MatchUppercase,
Ligatures=TeX,
Renderer=HarfBuzz }
%% Noto CJK fonts available at
%% https://www.google.com/get/noto/help/cjk/
\setmainfont{Latin Modern Roman}[Scale=1.0]
\setCJKmainfont{Noto Serif CJK SC}
\setCJKsansfont{Noto Sans CJK SC}
\setCJKmonofont{Noto Sans Mono CJK SC}
\begin{document}
珅
\end{document}
- 您希望
\tracinglostchars=2
TeX 在字体缺少字符时向您发出警告。如果没有此命令,警告将默默地埋在文件中间.log
。 - 在 LuaLaTeX 中,从 2020 年开始,您需要使用 加载 CJK 字体
Renderer=HarfBuzz
,否则会出现内存不足错误。XeTeX 默认使用 HarfBuzz,并且运行良好。如果 XeLaTeX 发现 ,它会向您发出良性警告Renderer=
。 Scale=
如果要混合使用不同的字体,您可能需要一个选项。- 您可能还希望设置无衬线字体和等宽字体。
- 如果您无论如何都要从包中重载字体集,则可以跳过使用 加载字体集
fontset=none
。