如何在使用 pdflatex 时成功添加一些中文表意文字字符?

如何在使用 pdflatex 时成功添加一些中文表意文字字符?

我在 Debian Jessie 上使用 TexLive 2015,我认为它是完整的安装(包括 cjk-latex、texlive-fonts-extra 和 latex-cjk-chinese-arphic-bsmi00lp 等 Debian 软件包)。

我有一份以英文为主的文档,我想在其中插入很少几个中文表意文字:

  • 龍,龍,U+F9C4e9 be 8dUTF-8 字节模式)
  • 夢,夢,U+5922e5 a4 a2UTF-8 字节模式)
  • 鱼,魚, ( UTF-8U+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+5922U+9B5AevinceU+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的评论。我想那也是我最初得到建议的地方……(?)

相关内容