我正在做一些带有中文字符和包装的文档ctex
\usepackage[UTF8]{ctex}
然而,当我尝试用粗体排版时,说
\begin{tikzpicture} \node at (0,0) {\textbf{固态}}; \end{tikzpicture}
我立即收到错误
!pdfTeX error: pdflatex.exe (file simhei.ttf): cannot open TrueType font file for reading
==> Fatal error occurred, no output PDF file produced!
中间也有一些警告
File: CJK.enc 2015/04/18 4.8.4
Now handling font encoding C00 ...
... no UTF-8 mapping file for font encoding C00
Now handling font encoding C05 ...
... no UTF-8 mapping file for font encoding C05
Now handling font encoding C09 ...
... no UTF-8 mapping file for font encoding C09
etc.
我在用miktex
。
现在的问题是,所有文档都是中文的,但我不会说任何中文......
答案1
该ctex
包有一个fontset=
选项,支持以下值
adobe|fandol|founder|mac|macnew|macold|ubuntu|windows|none
在 Windows 上,您可以从“应用和功能”控制面板中安装中文字体作为可选功能。这将使用 SimSun。我使用 LuaLaTeX 而不是 PDFLaTeX 进行编译:
\documentclass{article}
\usepackage[UTF8, fontset=windows]{ctex}
\begin{document}
regular 固态
\textbf{bold 固态}
\end{document}
检查第 66 页的来源手册,ctex
它定义了命令,与我能读懂的中文不同\setCJKmainfont
,您可以使用它来设置任意字体。(它还有\setCJKsansfont
和\setCJKmonofont
。)这将允许其他操作系统上的某人编译您的文档并获得相同的输出。这适用于 LuaLaTeX 或 XeLaTeX:
\documentclass{article}
\usepackage[UTF8, fontset=none]{ctex}
\setCJKmainfont[Scale=MatchUppercase]{Noto Serif CJK SC}
\begin{document}
regular 固态
\textbf{bold 固态}
\end{document}
但是,如果我们俩都看不懂中文手册,那么我们真正需要的(或者我能做到的)很可能只是将一些简短的中文短语复制粘贴到我们母语的文档中。这个babel
软件包非常适合这样做。这需要 LuaLaTeX:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{fontspec}
\babelprovide[import=zh-Hans, onchar=ids fonts]{chinese}
\defaultfontfeatures{ Scale=MatchUppercase, Ligatures=TeX }
\babelfont{rm}
[Ligatures={Common,Discretionary}, Scale=1.0]{New Computer Modern Book}
\babelfont[chinese]{rm}
{Noto Serif CJK SC}
\begin{document}
regular 固态
\textbf{bold 固态}
\end{document}
它甚至可以在同一个文档中在简体中文、繁体中文、日文汉字等之间切换。
在您的评论中,您提到遇到了 的一个大问题babel
:它的许多软件包选项都已过时,您必须使用\babelprovide
来加载某些语言。在我撰写本文时,Javier Bezos 目前正在更新文档以警告用户这一点。