同一文档中的日语和俄语字符

同一文档中的日语和俄语字符

我正在用英语写一份文件。但是,我需要使用一些日语和俄语单词。原则上,它似乎有效,但是一旦我使用日语字符,我就无法使用俄语字符。请注意,对我而言,使用 pdflatex 编译文档至关重要。

这里有两个最简单的例子来说明我的问题。

这个有效:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage{CJK}

\begin{document}
{\fontencoding{T2A}\selectfont ф}
\begin{CJK}{UTF8}{min}
\end{CJK}
\end{document}

但事实并非如此:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage{CJK}

\begin{document}
  {\fontencoding{T2A}\selectfont ф}
  \begin{CJK}{UTF8}{min}
  \end{CJK}
  {\fontencoding{T2A}\selectfont ф}
\end{document}

我不知道为什么。在第二种情况下,我收到以下错误消息:

! Undefined control sequence.
\CJK@XX ...r `#1\endcsname {`#2}\CJK@ignorespaces 
                                                  \fi 
l.12   {\fontencoding{T2A}\selectfont ф
                                        }

我找不到任何解释,如果能得到任何帮助我将非常感激。

答案1

嗯,似乎 CJK 包正在将一些定义全局化,但也许不应该。您可以inputenc像这样重置设置:

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A,T1]{fontenc}
\usepackage{CJK}

\begin{document}
  {\fontencoding{T2A}\selectfont ф}
  \begin{CJK}{UTF8}{min}
  \end{CJK}%
\sbox0{\input{utf8.def}}%
  {\fontencoding{T2A}\selectfont ф}
\end{document}

答案2

大卫卡莱尔的解决方案虽然有效,但还不够好。

事实上,有一个包可以解决和包可能冲突CJKutf8的问题。inputencCJK

以下是一个例子:

在此处输入图片描述

\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{min}

ру́сский: абвгдеАБВГДЕ

English: abcdefABCDEF

日本語:ぁぃぅぇぉか

\clearpage\end{CJK}
\end{document}

笔记:

  1. 请始终CJK全局使用环境,除非您知道自己在做什么。
    额外的环境\clearpage用于解决CJK包文档中描述的一个旧 bug。

  2. T2A如果您只使用英语使用的基本拉丁字母,字体编码就足够了。但是,如果您需要更多重音字母,您可以手动混合T1T2A字体编码。

  3. 对于多语言文档,我认为使用 XeLaTeX 或 LuaLaTeX 总是更好的选择。对于 XeLaTeX,使用我们的xeCJK软件包来支持自动字体选择和其他功能。对于 LuaLaTeX,使用luatexja捆绑包来支持类似的功能。

相关内容