代码

代码

我正在编写一份需要包含俄文、中文和英文的文档。我使用 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。最好指定所需的变体,例如britishamerican
  • 如果俄语是主要语言,则应使用类似以下内容:

    \usepackage[british,russian]{babel}

    最后的传递给的语言babel被认为是该文档使用的第一语言和主要语言。

答案3

显示汉字的一个简单方法是使用 kotex 包。

\usepackage{kotex}

这个包的好处是你不需要封装你的中文字符。你可以像这样写

你好

并且它们将在 PDF 中正确显示。

相关内容