使用 \tableofcontents 和 \makeindex 编译 CJK 时出错

使用 \tableofcontents 和 \makeindex 编译 CJK 时出错

包含中文文本的基本文档可以正常工作:

\documentclass{article}
\usepackage{CJKutf8}
\title{标题}
\begin{document}
    \begin{CJK}{UTF8}{gkai}
        \maketitle
        (text)
    \end{CJK}
\end{document}

当我添加目录和包含中文文本的 1 个部分时,它无法编译:

\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
    \begin{CJK}{UTF8}{gkai}
        \tableofcontents
        \section{第一章}
        (text)
    \end{CJK}
\end{document}

包 inputenc 错误:Unicode 字符 \u 8:第未设置为用于 LaTeX。

当我用中文文本创建索引条目时,它也无法编译:

\documentclass{article}
\usepackage{CJKutf8}
\usepackage{makeidx}
\makeindex
\begin{document}
    \begin{CJK}{UTF8}{gkai}
        (text) \index{nihao@ 你好 nihao}
        \printindex
    \end{CJK}
\end{document}

! 软件包 inputenc 错误:Unicode 字符 \u 8:您未设置为使用 LaTeX。

请参阅 inputenc 包文档以了解解释。输入 H 可立即获得帮助。...

l.3 ...reak 或者在没有它的情况下继续。} \GenericError {(inputenc)...

我究竟做错了什么?

答案1

来自包装文档CJKutf8.txt

如果您收到错误消息:`\CJK... undefined'或其他`... undefined ...'消息,并且您找不到错误,请尝试在 说或之前插入\newpage\clearpage\cleardoublepage(后者用于双列打印)。如果 LaTeX 2e 在关闭 CJK 环境后写入包含 CJK 字符的页面的页眉、页脚或索引条目( \index 和 ),则可能会发生这种情况。...\end{CJK}\end{CJK*}\printindex

CJKutf8.sty 的类似错误消息(采用相同解决方案)是

Package inputenc Error:
Unicode char \u 8: XXX not set up for use with LaTeX

因此,在代码\clearpage之前添加一个对我有用。\end{CJK}

或者,考虑使用以下ctex包:

\documentclass{article}
\usepackage[UTF8]{ctex}

\begin{document}
        \tableofcontents
        \section{第一章}
        (text)
\end{document}

或者xeCJK与 XeLaTeX 一起使用:

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{STSong}

\begin{document}
        \tableofcontents
        \section{第一章}
        (text)
\end{document}

相关内容