我正在尝试使用 pdfLaTeX 编写中文。但目前我只能编写简体中文字符,如果我尝试编写繁体中文,则文本不会显示。
这就是我所拥有的:
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
文章内容。
\clearpage\end{CJK*}
\end{document}
我需要做什么才能获得繁体中文?
答案1
您必须更改字体。
gbsn
是AR PL SungtiL GB(文鼎简报宋),一种使用GB2312字符集的字体。没有繁体中文的字形。
对于CJK
软件包,bsmi
和是繁体中文的字体系列bkai
的可能选择。例如,您可以使用CJK
%!TeX program = pdfLaTeX
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK*}{UTF8}{bsmi}
老闆來碗麵條。
{\CJKfamily{bkai}老闆來碗麵條。}
\clearpage\end{CJK*}
\end{document}
如果你使用特殊的 TeX 发行版,可能会有更多字体。例如韓輯。
不过,我认为最好还是使用 XeTeX 等现代 TeX 引擎。而且使用任何字体都更容易。例如:
%!TeX program = XeLaTeX
\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{MingLiU}
\setCJKsansfont{Microsoft JhengHei}
\begin{document}
老闆來碗麵條。
\textsf{老闆來碗麵條。}
\end{document}
答案2
背景以及为什么我不同意大多数答案
我挣扎了大约 15 个小时,因为我无法找到原始问题的全面答案:
《如何用pdfLatex写中文》
我不喜欢“切换到 XeTeX”这个通用答案,原因有二:
a) 我有一份很长的文档(超过 800 页),我依靠 microtype 来处理我的特定文档,但 XeTeX/XeLaTex/LuaTex 上没有 microtype。b) 我使用几种语言(希腊语、阿拉伯语、英语、西班牙语、德语、中文和日语),因此,如果我添加一个新包,建立一个工作文件就会变得非常困难,而且文件总是乱七八糟。
如果我对微类型没有 800 页的依赖(这是我用 \textls 进行的样式化),我会很乐意切换到现代引擎。尽管如此,许多弃用的类仍然依赖于 PdfLatex,因此,我认为能够适应特定问题很重要。
解决方案
对于 macOS Catalina (10.15.7):
- 安装 macTex:https://tug.org/mactex/mactex-download.html我使用的是 2023 年 3 月 15 日的版本。我认为使用 MikTeX 应该效果相同,但我没有费心将我的包管理器恢复为 MikTeX,但我想相信任何一个包管理器都应该可以工作。尽管如此,MacTex 还是为我完成了工作。
- 获取 zhmetrics:https://ctan.org/pkg/zhmetrics?lang=de这里的核心问题是 zhmetrics 不提供字体。相反,在 README 中,您可以看到他们建议查找几种字体:(simsun.ttc、simhei.ttf、simfang.ttf、simkai.ttf、simli.ttf 和 simyou.ttf)。这些字体是 Microsoft 字体,因此不能通过 zhmetrics 分发。尽管如此,它们可以在网上信誉良好的地方找到(我省略了具体位置,但简单的搜索引擎搜索就可以得到正确的结果)。
- 安装字体:下载后,我只是在 Mac Finder 中打开了文件。我不确定这是否有用,但我还将字体复制到了 texmf 文件夹中(我将它们放在 texmf-config、texmf-dist、texmf-var 和用户 texmf texmf-local 中)。 3.1. 我不确定这一步的效率如何,但您可以逐个尝试:用户文件夹应该足够了(通过在
kpsewhich --var-value TEXMFLOCAL
bash 终端中输入来找到它),但我太绝望了,所以我将它分散到所有文件夹中。我还将字体的副本添加到工作文件夹(例如,您正在编译的根“file.text”所在的位置)。 3.1.1. 这是夸张的说法,但您可以随意逐个测试,从仅用户文件夹和字体的系统安装开始。 - 其余步骤是 mactex 安装字体说明的一部分(https://tug.org/fonts/fontinstall.html)但简而言之:
- 将 zhmetrics 文件夹复制到用户文件夹(zhmetrics 包中已经有适合 Mactex/LiveTex 的格式,但注意不要替换文件夹而不是合并)
- 跑步
sudo -H mktexlsr
- 运行
updmap-sys --force --enable Map=ttfonts.map
--> 这是在步骤 5 中复制的 sudo -H mktexlsr
再次运行
我的代码中有一个快捷方式:
\usepackage{ifplatform}
\usepackage{CJKutf8} %Added bottom ones for possible compat with arabic
\newcommand{\textcn}[1]{\begin{CJK}{UTF8}{gbsn}#1\end{CJK}}
\ifwindows
\newcommand{\textjp}[1]{\begin{CJK}{UTF8}{MS Mincho}#1\end{CJK}}
\else
\newcommand{\textjp}[1]{\begin{CJK}{UTF8}{min}#1\end{CJK}}
\fi
我遇到的具体错误是:
!pdfTeX error: /Library/TeX/texbin/pdflatex (file cyberb59): unexpected eof in pk file
我一直在网上查找,似乎有时 pk 无法正确生成。我使用“ipaex”来处理日语,然后出现了这个问题。通过更改为“min”(如上所示)。对于中文,我已成功使用 bkai 和 bsmi 以及上述步骤。由于我还在 2 台不同的笔记本电脑上工作(家里的 Mac,办公室的 PC),我添加了 ifplatform,它与“else”子句配合得很好(不幸的是,\ifmacosx 的表现不如预期)。
也许将来有人会遇到这个问题,如果上述任何情况有帮助,请告诉我。