![LaTeX、CJK 和 Chinese 缺少字体文件 cyberb65](https://linux22.com/image/377624/LaTeX%E3%80%81CJK%20%E5%92%8C%20Chinese%20%E7%BC%BA%E5%B0%91%E5%AD%97%E4%BD%93%E6%96%87%E4%BB%B6%20cyberb65%20.png)
这个问题现在有我自己的答案,我按照工作指示进行了编辑。我本来想再次编辑我自己的答案,但我的工作场所决定我的答案不予编辑。的确因为我的答案是由开源或公开材料组成的,所以属于公共领域。(从现在起我不能再给出任何答案了。)
我会把这个问题留在这里,但我必须让网站管理员知道这个问题没用。这只是一个测试(和其他几个问题一样),用于评估进入 LaTeX 等软件的门槛。最好删除这个问题。
关于 CJK 的更完整答案(我发布过)位于一个非常不相关的问题。
Davislor 认真回答了我几乎所有的问题:谢谢!我会把这个问题留在这里,以展示你的勤奋和机智。请注意我的回答(在另一个问题中)中我如何避免潜在的问题通过字体名称自动查找字体;在某些情况下,该查找实际上可能会严重循环,从而破坏 TeX 处理。被拒之门外的 LaTeX 新手主要为软件工程师,他们对“自动魔法“ 特点 ”无法提供始终可靠的功能,也无法完全控制“。
梅威瑟:
\documentclass{scrbook}
\usepackage[utf8]{inputenc} % For non-English languages
% Install cjk for Chinese, zhmetrics for font size.
\usepackage{CJKutf8}
% OT1 for Chinese. T1 for English.
\usepackage[OT1, T1]{fontenc} % T1 will be active encoding.
\begin{document}
This is mainly an English document.
\begin{CJK}{UTF8}{song}
With a smattering of Chinese: {\fontencoding{OT1}\selectfont 中文}
\end{CJK}
\end{document}
错误:
!pdfTeX error: pdflatex (file cyberb65): Font cyberb65 at 657 not found
我至少想知道哪些字体默认安装在哪些软件包中。在 MWE 中,我安装的软件包是:
- 牯牯牯
- 输入
- 中日韩
- 丰滕克
由于某些未知原因,我已经可以使用该gbsn
字体了。我在 MacOS 上。
附带问题:过渡到更好地支持 UTF-8 和非英语语言的引擎是否困难?
有效答案:不要使用song
字体系列。使用gbsn
。如果您想知道默认情况下该字体是如何/在哪里安装的,请私信给提出此问题的 Jon。
感谢@cfr,我不再使用OT1
字体编码了。字体系列不需要gbsn
。
更新的 MWE:
\documentclass{scrbook}
\usepackage[utf8]{inputenc} % For non-English languages.
% Install babel-vietnamese, vntex for Vietnamese.
\usepackage[vietnamese, english]{babel} % English will be active language.
% Install cjk for Chinese, zhmetrics for font size.
\usepackage{CJKutf8}
% T5 for Vietnamese.
\usepackage[T5, T1]{fontenc} % T1 will be active encoding.
\begin{document}
This is mainly an English document.
\begin{CJK}{UTF8}{gbsn}
With a smattering of Chinese: 中文
\end{CJK}
And some Vietnamese: {\fontencoding{T5}\selectfont Tiếng Việt}
\end{document}
答案1
您询问是否要转换到能够更好地支持更多语言的引擎。我强烈推荐它。目前,您需要应用一些解决方法,但这在 XeLaTeX 或 LuaLaTeX 中有效:
\documentclass[varwidth=10cm, preview]{standalone}
\usepackage{fontspec}
\usepackage[english]{babel}
% Babel 3.22 erroneously passes the wrong OpenType script and language options
% to fontspec. This workaround overrides the bug:
\babelprovide[script=CJK, language={Chinese Simplified}]{chinese-simplified}
\defaultfontfeatures{ Scale = MatchUppercase, Ligatures = TeX }
\babelfont{rm}[Scale = 1.0, Ligatures = Common]{Noto Serif}
\babelfont{sf}{Noto Sans}
\babelfont[chinese-simplified]{rm}[Ligatures = Common]{Noto Serif CJK SC}
\babelfont[chinese-simplified]{sf}[Ligatures = Common]{Noto Sans CJK SC}
% Also set the monospace font and load unicode-math if you need math.
\begin{document}
This is mainly an English document.
With a smattering of Chinese: \foreignlanguage{chinese-simplified}{中文}
\end{document}
我用了Noto 字体和诺托 CJK,但任何支持简体中文的 Unicode 字体都应该可以使用。
您可以使用\foreignlanguage{chinese-simplified}{...}
来表示段落中的短中文片段,以及\begin{otherlanguage}{chinese-simplified}
...\end{otherlanguage}
来表示长篇中文段落。有关更多详细信息,请参阅 Babel 手册。
我在本例中使用了 Noto 字体,但您可以更改它们。使用fontspec
,您的系统或文字处理器中的任何字体都可以使用,并且在此模板中,它们将自动缩放到主字体的高度。
截至 2019 年 1 月,这个问题比它应该的要棘手,因为它polyglossia
不支持中文,但babel
在我尝试过的几种语言中,包括中文、日语和希伯来语,都出现了问题。不过,对于中文的错误,有一个简单的一行解决方法。
安装缺失的组件
我认为您请求对丢失的字体进行后续跟踪。
在大多数 TeX Live 或 MikTeX 安装中,如果您缺少某个文件(例如包或字体),我会在 CTAN.org 上搜索它,找出哪个包包含它,然后安装该包。请确保选择搜索文件名的选项!
此次搜索发现,该cyberb65.tfm
包zhmetrics
可以在 TeX Live 或 MikTeX 中安装。
如果你使用的是 Debian/Ubuntu 的 TeX Live 安装,可以创建一个texmf
目录并从 CTAN 进行本地安装,但你应该先搜索一下是否有deb
你想要的文件的包,无论是在线的还是通过apt-file search
。例如,搜索uming.ttc
会告诉你所需的uming
字体ctex
在包中fonts-arphic-uming
。
如果缺少某个类,请搜索foo.cls
;包,foo.sty
;或 type 1 字体,foo.tfm
。例如,如果您尝试编译使用 的文档\documentclass[UTF8]{ctexart}
,但未安装 ,则会收到有关缺少类 的错误ctexart
,请搜索文件ctexart.cls
,然后在 中找到它texlive-lang-chinese
。如果缺少cjk
包,请搜索cjk.sty
。