如何撰写一份包含几句泰语、日语和中文的英文文档?

如何撰写一份包含几句泰语、日语和中文的英文文档?

我正在写一份 99% 都是英文的文件,但需要一些其他语言的单词,包括泰语、日语和中文。后两种语言我都成功了,但泰语就不行了。以下是 MNWE:

\documentclass{article}

\usepackage{CJKutf8}

\begin{document}

Japanese: \begin{CJK}{UTF8}{min}結核\end{CJK}
Chinese: \begin{CJK}{UTF8}{bsmi}結核\end{CJK}
Thai: \begin{CJK}{UTF8}{gar}ไข้เด็งกี\end{CJK}   % <-- fail 

\end{document}

编译失败,显示:

LaTeX Font Warning: Font shape `C70/gar/m/n' undefined
(Font)              using `C70/song/m/n' instead on input line 9.

(/usr/local/texlive/2013/texmf-dist/tex/latex/cjk/texinput/UTF8/c70song.fd)
./b0rken.tex:9: Undefined control sequence.
try@size@range ...extract@rangefontinfo font@info 
                                                  <-*>@nil <@nnil 
l.9 Thai: \begin{CJK}{UTF8}{gar}ไข
                                      ้เด็งกี\end{CJK}  % <-- ...

注释掉“失败”行可以成功编译日文和中文字符,它们应该出现在输出中。

这是使用 MacTeX 2013。我确实安装了cjkfonts-tlwg包。我还有几个c90*文件,包括c90gar.fdc90nrsr.fd

我确实需要使用普通的 pdfTeX 而不是 XeTeX。

答案1

要使用泰语字体,我们不需要加载CJK包,而是babel需要包。

要使用编码中的字体C90,我们可以使用包thaicjk的选项babel

\documentclass{article}

\usepackage[utf8x]{inputenc}

% English is the main language
\usepackage[thaicjk,english]{babel}
\addto\extrasthaicjk{\fontencoding{C90}\selectfont}

% Hack into CJKutf8 package for an option clash error
\makeatletter
\@namedef{[email protected]}{utf8}
\makeatother
\usepackage{CJKutf8}

\begin{document}

Japanese: \begin{CJK}{UTF8}{min}結核\end{CJK}
Chinese: \begin{CJK}{UTF8}{bsmi}結核\end{CJK}
Thai: \foreignlanguage{thaicjk}{ไข้เด็งกี}

\end{document}

或者,我们也可以在编码中使用字体LTH。在这种情况下,我们需要使用thaibabel 的选项。请参阅babel-thai

\documentclass{article}

\usepackage[utf8x]{inputenc}

% English is the main language
\usepackage[thai,english]{babel}

% Hack into CJKutf8 package for an option clash error
\makeatletter
\@namedef{[email protected]}{utf8}
\makeatother
\usepackage{CJKutf8}

\begin{document}

Japanese: \begin{CJK}{UTF8}{min}結核\end{CJK}
Chinese: \begin{CJK}{UTF8}{bsmi}結核\end{CJK}
Thai: \textthai{ไข้เด็งกี}

\end{document}

相关内容