我正在尝试在 LaTeX 上创建一些韩语初学者课程。我正在使用CJKutf8
韩语字体包。它在文档的大部分内容中都有效。但是当我尝试显示一些韩语字符的随机组合以进行练习时,一些字母块没有显示。代码如下:
\documentclass{article}
\usepackage{enumerate}
\usepackage{multicol}
\usepackage{CJKutf8} %korean font
\begin{document}
\begin{CJK}{UTF8}{mj}
%Practice Question 1
\begin{multicols}{3}
\begin{enumerate}
\item 느
\item 쳐
\item 호
\item 할
\item 썈
\item 뾰
\item 땨
\item 숧
\item 앓
\item 흃
\item 뱀
\item 육
\item 새
\item 톁
\item 핧
\item 똥
\item 쯖
\item 롈
\item 이
\item 흙
\item 밐
\item 쏖
\item 왜
\item 랏
\item 쨁
\item 즣
\item 끃
\item 쏖
\item 쏐
\item 뼻
\item 떍
\item 멱
\end{enumerate}
\end{multicols}
\end{CJK}
\end{document}
未显示的列表项是:썈、땨、숧、흃、톁、핧、쯖、롈、밐、쏖、쨁、즣、끃、뼻、떍
这是我得到的输出:
有人能帮助我了解问题是什么以及如何解决它吗?
答案1
由于你可以自由地使用 XeLaTeX 或 LuaLaTeX 代替 pdfLaTeX,因此我建议你不是使用该CJKutf8
包及其CJK
环境。相反,只需使用 XeLaTeX 或 LuaLaTeX、fontspec
包和合适的 OpenType 字体。在下面的代码中,我使用了 Google 的Noto Serif KR
和Noto Sans KR
字体系列,任何人都可以下载并免费使用。衬线字体有 7 种字体粗细,无衬线字体有 6 种字体粗细。
使用的许多好处之一fontspec
是,可以轻松调整默认和粗体字体粗细(当然,前提是字体提供了所需的粗细)。例如,在下面的代码中,我没有使用 的默认字体粗细(“常规”和“粗体”)Noto Sans KR
;相反,我更轻松一步,将Light
和指定为和Medium
选项的参数。UprightFont
BoldFont
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{multicol,lipsum,geometry}
\usepackage{fontspec}
\setmainfont{Noto Serif KR}
\setsansfont{Noto Sans KR}[UprightFont = {* Light},
BoldFont = {* Medium}]
\begin{document}
%Practice Question 1
\begin{multicols}{3}
\begin{enumerate}
\item 느
\item 쳐
\item 호
\item 할
\item 썈
\item 뾰
\item 땨
\item 숧
\item 앓
\item 흃
\item 뱀
\item 육
\item 새
\item 톁
\item 핧
\item 똥
\item 쯖
\item 롈
\item 이
\item 흙
\item 밐
\item 쏖
\item 왜
\item 랏
\item 쨁
\item 즣
\item 끃
\item 쏖
\item 쏐
\item 뼻
\item 떍
\item 멱
\end{enumerate}
\end{multicols}
느 쳐 호 할 썈 뾰 땨 숧 앓 흃 뱀 육 새 톁 핧 똥 쯖 롈 이 흙 밐 쏖 왜 랏 쨁 즣 끃 쏖 쏐 뼻 떍 멱
\textbf{느 쳐 호 할 썈 뾰 땨 숧 앓 흃 뱀 육 새 톁 핧 똥 쯖 롈 이 흙 밐 쏖 왜 랏 쨁 즣 끃 쏖 쏐 뼻 떍 멱}
\textsf{느 쳐 호 할 썈 뾰 땨 숧 앓 흃 뱀 육 새 톁 핧 똥 쯖 롈 이 흙 밐 쏖 왜 랏 쨁 즣 끃 쏖 쏐 뼻 떍 멱}
\textsf{\textbf{느 쳐 호 할 썈 뾰 땨 숧 앓 흃 뱀 육 새 톁 핧 똥 쯖 롈 이 흙 밐 쏖 왜 랏 쨁 즣 끃 쏖 쏐 뼻 떍 멱}}
\medskip
\noindent
\lipsum[1][1-4] % filler text
\end{document}
答案2
问题不在于 TeX 或 LaTeX 系统,而在于它们使用的字体。
韩语使用韩文字母。由于韩文字母是由辅音和元音组合而成,因此,目前使用的辅音字母和元音字母可以组成 11,172 个韩文字母。
但是,大多数单词并不需要全部字母,而设计包含所有字母的字体需要付出很多努力。因此,许多韩语字体设计师不会设计全部 11,172 个字母,而是设计足够多的字母(约 2,350-2,850 个),这些字母可以毫无问题地表达韩语。(当然,有许多支持完整 11,172 个字母的韩语字体,如 Mico 的回答所示。)
您用来排版韩文的字体似乎只包含有限数量的韩文字母,并且未呈现的字母(썈、땨、숧、흃、톁、핧、쯖、롈、밐、쏖、쨁、즣、끃、뼻、떍)在韩语中不使用。如果在韩语文档中使用它们,字体可能不会造成问题,但如果在某些特殊情况下使用它们(例如测试随机字形),则字母将不会显示。
要解决此问题,您必须使用另一种完全提供所有韩语字母的字体。Noto Sans CJK KR、Noto Serif CJK KR、나눔명조(NanumMyeongjo)、나눔고딕(NanumGothic) 是支持所有 11,172 个字母的韩语字体的一些示例。