有人能描述一下如何在 LaTeX 中输入中文吗?当我编译这个时:
\documentclass{article}
\begin{document}
你好吗?
\end{document}
生成的文档什么都没显示。作为参考,我的 IME 是 Fedora 13 上的 iBus 1.3.9。
答案1
最简单的方法是(仅适用于简体中文文档):
% UTF-8 encoding
% Compile with latex+dvipdfmx, pdflatex, xelatex or lualatex
% XeLaTeX is recommanded
\documentclass[UTF8]{ctexart}
\begin{document}
文章内容。
\end{document}
或者
\documentclass{article}
\usepackage[UTF8]{ctex}
...
它是为中文排版设计的。字体大小、缩进、名称翻译、行距……一切都已设置好。
对于最新版本的ctex
软件包(v2.x),XeLaTeX 经过充分测试,支持 Windows/Mac/Linux。应自动选择操作系统中预装的正确字体。
如果仅仅想排版几个汉字,可以使用CJK
pdfLaTeX,也可以xeCJK
使用XeLaTeX。
% Compile with xelatex
% UTF-8 encoding
\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{SimSun}
\begin{document}
文章内容
\end{document}
或者
% UTF-8 encoding, pdflatex or latex+dvipdfmx
% Simplified Chinese fonts should be installed
\documentclass{article}
\usepackage{CJKutf8}
\AtBeginDvi{\input{zhwinfonts}}
\begin{document}
\begin{CJK*}{UTF8}{zhsong}
文章内容。
\clearpage\end{CJK*}
\end{document}
或者
% UTF-8 encoding
% bad-looking fonts (CJKfonts package)
% latex+dvips, latex+dvipdfm(x) or pdflatex
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
文章内容。
\clearpage\end{CJK*}
\end{document}
答案2
我在 XeLaTeX 和XeCJK
软件包下使用中文,它允许将 CJK 与您自己的字体一起使用。非常方便。
首先,看一下周百祥的网站. 这应该可以帮助您入门。
tex.SE 上还有其他关于使用fontspec
两种或多种字体以及如何获取完整中文字符集的重要评论,但您可以稍后再担心这些问题。
答案3
我最近在 Fedora 16 上遇到了这个问题。由于没有选择正确的中文字体,所以你什么也看不到,因为 Windows、Mac 和 Linux 上的中文字体是不同的。
在 Linux 上找到适合某种语言的字体的技巧是:
$ fc-list :lang=zh
Fedora 16 上默认的中文字体是:
文泉驿正黑,文泉驛正黑,文泉驿正黑:style=Regular
在你的 Fedora 13 系统上它可能是:
AR PL UMing TW:style=Light AR PL UMing CN:style=Light
(我来自台湾,所以我使用以 TW 结尾的繁体中文版本。对于简体中文,您需要“AR PL UMing CN”。)要在 Fedora 上安装中文字体等,请运行:
yum groupinstall 'Chinese Support'
将您的 LaTeX 源更改为:
\documentclass{article}
\setromanfont{AR PL UMing CN}
\begin{document}
你好吗?
\end{document}
你就会看到中文了。
上面的代码片段是为了帮助您诊断中文字体问题。对于实际工作,我赞同 xeCJK 包的建议。我的个人设置已记录这里。
由于字体不同,无法在 Windows、Mac 和 Linux 上排版相同的中文、日文等 LaTeX 源,这确实很麻烦,但这并不是 XeTex 独有的。使用latex + dvipdfmx
或pdflatex
时也同样麻烦。
答案4
仅针对我的具体用例进行说明:我想在我的 .bib 文件中(使用 biber)使用几个中文字符作为 Unicode;要像这样编译它们,我可以成功使用包{ctex}
- 不幸的是,它会破坏我原本使用的文档类中的某些格式。事实证明,包{CJKutf8}
对我来说没有破坏 - 但与 不同{ctex}
,它不能直接读取 unicode 字符 - 我们必须将它们包装在环境中,这对我来说对于 .bib 文件来说很不方便。
因此,由于我只有几个,我决定手动声明 unicode 字符,以用于{CJKutf8}
“渲染”字形。假设我只想渲染上述示例中的“文章” - 因此我首先使用我的utfinfo.pl:
$ echo 文章 | perl utfinfo.pl
Got 2 uchars
Char: '文' u: 25991 [0x6587] b: 230,150,135 [0xE6,0x96,0x87] n: CJK UNIFIED IDEOGRAPH 6587 [CJK Unified Ideographs]
Char: '章' u: 31456 [0x7AE0] b: 231,171,160 [0xE7,0xAB,0xA0] n: CJK UNIFIED IDEOGRAPH 7AE0 [CJK Unified Ideographs]
pdflatex test.tex
知道这一点,就可以使用中的指导方针构建一个有效的 MWE(并且可以编译)[Cjk 邮件列表] CJKchar 问题:
\documentclass{article}
\usepackage{CJKutf8}
% NOTE: this may require the font simsun.ttc in the same directory as this .tex file!
% [http://lists.ffii.org/pipermail/cjk/2007-November/002045.html [Cjk] Problem with CJKchar]
\newcommand{\Chi}[2]{%
\csname CJK*\endcsname{UTF8}{zhsong}%
\CJKchar{#1}{#2}%
\csname endCJK*\endcsname
}
% 文: 0x6587
% \DeclareUnicodeCharacter{6587}{\begin{CJK*}{UTF8}{zhsong}文\end{CJK*}} % nope
% \DeclareUnicodeCharacter{6587}{\CJKfamily{zhsong}文} % % nope
% \DeclareUnicodeCharacter{6587}{\CJKchar[UTF8]{"65}{"87}} % nope
% \DeclareUnicodeCharacter{6587}{\Unicode{"65}{"87}} % % cant use
\DeclareUnicodeCharacter{6587}{\Chi{"65}{"87}} % YES!
% 章: 0x7AE0
\DeclareUnicodeCharacter{7AE0}{\Chi{"7A}{"E0}} %
\AtBeginDvi{\input{zhwinfonts}} % MUST have! for \usepackage{CJKutf8}
\begin{document}
% macro test:
\Chi{"65}{"87}\Chi{"7A}{"E0} % ok
% direct unicode chars:
文章 % ok
\end{document}
编辑:还请注意,在实际的文档中,参考书目必须至少\Chi{...
在文档主体中有一个,否则参考书目部分会崩溃;将其放入\phantom
不起作用,我不喜欢在文档中插入虚假字符。事实证明,除了\Chi
,人们可以“手动”启动 CJKutf8 环境,如下所示:
\makeatletter
\let\CJK@ignorespaces\relax % else the below breaks..
\CJK@envStart{}{UTF8}{zhsong}
\makeatother
\printbibliography