LaTeX、CJK 和 Chinese 缺少字体文件 cyberb65

LaTeX、CJK 和 Chinese 缺少字体文件 cyberb65

这个问题现在有我自己的答案,我按照工作指示进行了编辑。我本来想再次编辑我自己的答案,但我的工作场所决定我的答案不予编辑。的确因为我的答案是由开源或公开材料组成的,所以属于公共领域。(从现在起我不能再给出任何答案了。)

我会把这个问题留在这里,但我必须让网站管理员知道这个问题没用。这只是一个测试(和其他几个问题一样),用于评估进入 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 字体示例

我用了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.tfmzhmetrics可以在 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

相关内容