我正在编写一份需要包含俄文、中文和英文的文档。我使用 CJK 和 babel,示例代码如下:
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian, english]{babel}
\usepackage{CJK}
\usepackage{setspace}
\doublespacing
\usepackage{natbib}
\begin{document}
слово
\begin{CJK}{UTF8}{gbsn}
你好
\end{CJK}
слово
\end{document}
CJK 环境之前的俄语可以正常显示,但之后的任何内容都无法正确显示。
答案1
只需使用CJKutf8
包即可。
\documentclass{article}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian, english]{babel}
\usepackage{CJKutf8}
\begin{document}
слово
\begin{CJK}{UTF8}{gbsn}
你好
\end{CJK}
слово
\end{document}
或者,使用 XeTeX 解决方案xeCJK
也是可以接受的。另请参阅如何在 LaTeX 中输入中文?
答案2
代码
\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian, english]{babel}% note - it is recommended to specify the variant of English required to avoid unexpected divergence depending on the version of babel e.g. american or british
\usepackage[encapsulated]{CJK}
\usepackage{setspace}
\doublespacing
\usepackage{natbib}
\begin{document}
\selectlanguage{russian}
слово
\begin{CJK}{UTF8}{gbsn}
你好
\end{CJK}
\selectlanguage{english}
Here is some text in English.
\selectlanguage{russian}
слово
\end{document}
解释
encapsulated
由于您在环境之外使用专门的编码,因此此选项是必需的CJK
。有关详细信息,请运行
texdoc cjk
笔记
- 你应该转变使用语言
\selectlanguage{<language>}
(进行一般切换,直至另行通知)或\foreignlanguage{<language>}{<some text>}
(如果您只想用另一种语言排版少量文本)。 - 您已将 定义
english
为主要语言。因此,即使俄语是文档中使用的第一语言,您也需要切换到俄语。传递english
不是一个好主意,因为它会产生歧义,并且对 的不同版本有不同的影响babel
。最好指定所需的变体,例如british
或american
。 如果俄语是主要语言,则应使用类似以下内容:
\usepackage[british,russian]{babel}
这最后的传递给的语言
babel
被认为是该文档使用的第一语言和主要语言。
答案3
显示汉字的一个简单方法是使用 kotex 包。
\usepackage{kotex}
这个包的好处是你不需要封装你的中文字符。你可以像这样写
你好
并且它们将在 PDF 中正确显示。