不久前,我问了一些关于 LaTeX 中希腊语的问题,得到了一些很好的回复。在同样的背景下,我现在正在研究韩语,但我在设置打字机/等宽字体时遇到了问题。
对于如何处理这个问题有什么建议吗?
我的 MWE:
\documentclass[twoside]{book}
\tracinglostchars=2
\usepackage{xeCJK}
\setmainfont{Noto Sans CJK SC}[Language=Korean]
\begin{document}
\obeylines
00027 printf({"{}JUST A PRINT STATEMENT\(\backslash\)n"{}});
00027 printf({"{}Just a print statement\(\backslash\)n"{}});
00028 printf({"large 다음에 의해 생성됨 Doxygen 1.8.19\(\backslash\)n"{}});
\begin{verbatim}
00027 printf({"{}JUST A PRINT STATEMENT SOME MORE TEXT SOME MORE TEXT\(\backslash\)n"{}});
00027 printf({"{}Just a print statement some more text some more text\(\backslash\)n"{}});
00028 printf({"large 다음에 의해 생성됨 Doxygen 1.8.19\(\backslash\)n"{}});
\end{verbatim}
\end{document}
答案1
xeCJK
您可以使用该包来\setCJKmainfont
设置 CJK 字符的字体。该\setmainfont
命令也可用于设置非 CJK 字符的字体。
梅威瑟:
\documentclass{article}
\tracinglostchars=2
\usepackage{xeCJK}
\setCJKmainfont{Noto Sans CJK SC}
%\setCJKmonofont{Noto Sans CJK SC} optional: set separate monospace font
\begin{document}
\obeylines
00027 printf({"{}JUST A PRINT STATEMENT\(\backslash\)n"{}});
00027 printf({"{}Just a print statement\(\backslash\)n"{}});
00028 printf({"large 다음에 의해 생성됨 Doxygen 1.8.19\(\backslash\)n"{}});
\begin{verbatim}
00027 printf({"{}JUST A PRINT STATEMENT SOME MORE TEXT\(\backslash\)n"{}});
00027 printf({"{}Just a print statement some more text\(\backslash\)n"{}});
00028 printf({"large 다음에 의해 생성됨 Doxygen 1.8.19\(\backslash\)n"{}});
\end{verbatim}
\end{document}
结果:
您也可以为不同的字体系列设置单独的字体,例如无衬线字体、数学字体或等宽字体。对于等宽字体,命令为\setCJKmonofont
。请参阅 xeCJK手动的参见第 6 页并进一步了解字体系列的命令概述。
答案2
以下内容在 TeX Live 2020 上使用 xelatex 进行编译时没有错误:
\documentclass[twoside]{book}
\tracinglostchars=2
\usepackage{xeCJK}
\defaultfontfeatures{Scale = MatchLowercase, Ligatures = TeX}
\setmainfont{Noto Sans}[Scale = 1.0]
\setmonofont{Noto Sans Mono}
%% The Noto Korean fonts can be downloaded from:
%% https://www.google.com/get/noto/help/cjk/
\setCJKmainfont{Noto Sans CJK KR}[Script=Hangul, Language=Korean]
\setCJKmonofont{Noto Sans Mono CJK KR}[Script=Hangul, Language=Korean]
\begin{document}
\obeylines
00027 printf({"{}JUST A PRINT STATEMENT\(\backslash\)n"{}});
00027 printf({"{}Just a print statement\(\backslash\)n"{}});
00028 printf({"large 다음에 의해 생성됨 Doxygen 1.8.19\(\backslash\)n"{}});
\begin{verbatim}
00027 printf({"{}JUST A PRINT STATEMENT SOME MORE TEXT SOME MORE TEXT\(\backslash\)n"{}});
00027 printf({"{}Just a print statement some more text some more text\(\backslash\)n"{}});
00028 printf({"large 다음에 의해 생성됨 Doxygen 1.8.19\(\backslash\)n"{}});
\end{verbatim}
\end{document}
您必须先下载所需的字体,例如Noto Sans CJK KR。 在 Windows 或 Mac 上,确保将它们安装为系统字体,而不仅仅是为您自己安装。
它们不通过 CTAN 分发,但您可以将文件放在以下任意位置:
- 将它们安装为系统字体。在 Windows 或 Mac 上,请确保为所有用户安装它们,以便 XeTeX 可以找到它们。
- 一些 Linux 发行版会将它们打包并保持更新。在 Debian 或 Ubuntu 上,它们位于
apt
软件包中fonts-noto-cjk
。 - 将它们复制到本地 TEXMF 树。使用 MikTeX,您可以将环境变量设置
TEXINPUTS=
为此本地目录。 - 将它们下载到本地文件夹并使用 选择它们
Path=
,例如\setCJKmonofont{NotoSansMonoCJKkr}[Path = ./customfonts , UprightFont = *-Regular , BoldFont = *-Bold , Extension = .otf]
(如果这是您下载的版本。)如果您尝试在另一台具有不同版本字体的计算机上编译文档,则此方法会中断。另一方面,这是确保您存档的字体版本完全相同且输出完全相同的唯一方法。 - 将文件或指向它们的符号链接与
.tex
文件一起放在项目目录中,然后更改到该目录来编译它们。 - 在 Linux 上,您可以将字体复制到子目录,
/usr/local/share/fonts/
为所有人安装,或者~/.fonts/
为自己安装。
只有简体中文字体对您有用,是因为有一个 CTAN 包可以安装这些字体。