我在 Debian Jessie 上使用 TexLive 2015,我认为它是完整的安装(包括 cjk-latex、texlive-fonts-extra 和 latex-cjk-chinese-arphic-bsmi00lp 等 Debian 软件包)。
我有一份以英文为主的文档,我想在其中插入很少几个中文表意文字:
- 龍,龍,
U+F9C4
(e9 be 8d
UTF-8 字节模式) - 夢,夢,
U+5922
(e5 a4 a2
UTF-8 字节模式) - 鱼,魚, ( UTF-8
U+9B5A
字节模式)e9 ad 9a
正在运行的file -bi myfile.tex
报告text/x-tex; charset=utf-8
。我的文件顶部附近包含
\usepackage[utf8]{inputenc}
\usepackage{CJKutf8}
我还定义了
\newcommand{\chinesechar}[1]{{\CJKfamily{bsmi}#1}}
当我尝试在文档正文中使用它时,编译pdflatex
成功:
\chinesechar{}
=> 没有输出任何内容
\chinesechar{abc}
=> 输出 3 个字符“abc”
然后,我尝试了两种方法将龙字直接插入文件中。第一种方法是使用 emacs 的内置命令C-x 8 RET f9c4
将龙字插入文件中。第二种方法是从 abc 开始,然后使用十六进制编辑器将三个字节更改为 e9 9b a8(这是 U+f9c4 的 UTF-8 编码)。无论哪种方式,我都会看到代表表意文字的虚线方括号,并且在运行时会出现相同的错误消息pdflatex
:
Package inputenc Error: Unicode char \u8:[] not set up for use with LaTeX.
(除了,出现的 [] 是虚线,而不是实线。即使在编辑器之外,从该网络问题粘贴的中文字符在终端(即 xterm)中也会带有虚线方括号。)
(注:下面有人评论说我应该使用更智能的编辑器,但我认为这个问题更正确的理解是与 LaTeX 对字符的后续处理有关,而不是将字符本身输入编辑器的任务。)
更改\usepackage[utf8]{inputenc}
为\usepackage[utf8x]{inputenc}
只会产生不同的错误pdflatex
:
LaTeX error: Option clash for package inputenc.
我看到有人提到 XeLaTeX 是处理以中文为主要语言的文档的不错选择,但尝试切换也给我带来了问题。查看此网站上发布的其他问题的内容,例如如何撰写一份包含几句泰语、日语和中文的英文文档?没能使我实现我的目标。
如何插入三个汉字?已被建议为该问题的潜在重复。我不这么认为:我问的是使用文本而不是图像。话虽如此,我愿意接受这样的可能性:我想要做的事情实际上不能使用文本来完成,而是必须使用那篇文章中概述的图像。因此,我去尝试那个解决方案。具体来说,我使用龙(龍)编写了这个文件:
\documentclass{standalone}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{gbsn}
龍
\end{CJK}
\end{document}
(我也尝试过单独使用梦和鱼。)
当我使用 dream ( ) 或 fish ( ) 运行pdflatex
上述文件时,会输出 .pdf 文件,但使用 查看它时不会显示任何字符。[但是,尝试 rain ( ) 确实有效!]U+5922
U+9B5A
evince
U+96E8
当我pdflatex
使用 dragon () 运行上述文件时U+F9C4
,我最终看到
This is METAFONT, Version 2.7182818 (Tex Live 2015/dev/Debian) (preloaded base=mf)
kpathsea: Running mktexmf gbsnuf9
! I can't find file `gbsnuf9'.
<*> ...=ljfour; mag:=1; nonstopmode; input gbsnuf9
Please type another input file name
! Emergency stop.
<*> ...=ljfour; mag:=1; nonstopmode; input gbsnuf9
Transcript written on mfput.log.
grep: gbsnuf9.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input gbsnuf9' failed to make gbsnuf9.tfm.
kpathsea: Appending font creation commands to missfont.log.
! Font C70/gbsn/m/n/10/f9=gbsnuf9 at 10.0pt not loadable: Metric (TFM) file not found.
<to be read again>
relax
l.12 龍
因此,这种解决方法似乎不起作用。
总结一下这个问题:
在使用时如何才能成功包含一些中文表意文字(理想情况下是实际文本)pdflatex
?
答案1
我不确定这是否有帮助,但我使用以下方法:
%%%
%%% Load CJKutf8 to be able to print Chinese characters
%%% Provide command \zh to enable us to write Chinese characters
%%%
%
\let\internalBegin\begin%
\let\internalEnd\end%
%
%%% Our text is UTF-8 encoded.
\RequirePackage[utf8]{inputenc}%
%
\RequirePackage{CJKutf8}%
%
%%%
%%% Print some text in Chinese characters
%%% #1 the text to print
\protected\gdef\zh#1{\internalBegin{CJK}{UTF8}{gbsn}#1\internalEnd{CJK}}%
我最初在网上的某个地方找到了它,但忘记了在哪里(因此我无法添加适当的引用)。
啊,我忽略了@egreg的评论。我想那也是我最初得到建议的地方……(?)