UTF8 与 UTF-CJK 之间的冲突

UTF8 与 UTF-CJK 之间的冲突

我似乎遇到了字体编码冲突。我目前使用的是 LyX 2.1.1(在 Linux Mint 17 下)。我的大多数章节中都散布着中文文本,但导出为 PDF 时出现以下错误:

Use of \@chapter doesn't match its definition

   ...ing{latin9}Pottery Production at Huizui I}

具体来说,如您所见,只有章节标题似乎会产生此错误。当我将编码更改为 UTF8(文档 > 设置 > 语言)时,中文文本出现错误:

...in Ancient China'' {[}\begin{CJK}{GB}{}
                                 Ŵչо\end{CJK... The control sequence at the end of the top line of your error message was never \def'ed.

虽然当时我使用了繁琐的 ERT 插入,但这在 LyX 2.0.6 下不是问题;在 2.1.1 下,我只需将语言更改为“中文”,并将计算机上的输入也更改为中文。

显然,这个问题似乎源于某些问题\@chapter,但我不知道为什么这突然成为一个问题。

不幸的是,我不知道是否可以提供 MWE:这是一篇包含主文档和子文档的多章节论文。不过,我希望有人能提出一些我可以尝试的想法。

如果有任何有进取心的人希望我发送文件来查看,我很乐意这样做!

编辑1:

查看源代码,下面是造成问题的部分:

\usepackage{CJKutf8}

\begin{document} \begin{CJK}{UTF8}{}%

\chapter{\end{CJK}\inputencoding{latin9}Pottery Production at Huizui I}

\inputencoding{latin9}\label{chap:Chapter-4}In this chapter I analyze and discuss the primary data collected from the Huizui site and the

之后,当使用中文时:

...by Li Wenjie ``A Study of
the Pottery-Making Technology in Ancient China'' \begin{CJK}{GB}{}中国古代制陶工艺研究\end{CJK}\inputencoding{latin9}
 using pottery in the National History Museum collection.

正如你所见,编码似乎可以正确地来回切换,尽管上面的代码

\begin{CJK}{UTF8}{}%

    \chapter{\end{CJK}

我觉得很奇怪,因为 \chapter最终结果是“作为”CJK。

编辑2:

实际上,最后一条评论(如下)并不完全正确;当我将编码(文档 > 设置 > 语言)更改为“Unicode (utf8)”而不是“Unicode (CJK)(utf8)”时,这种不寻常的编码并不存在。但是,CJK 文本会抛出“未找到”的错误,这仍然很奇怪,因为在序言中它有这样的代码:

\usepackage[utf8]{inputenc}
\usepackage{CJKutf8}

我认为它涵盖了 CJK 文本。我认为 LyX 添加此行是因为它检测到我在文档中使用了“中文”。

编辑3:

我现在尝试了一种基于下面 egreg 的回答的解决方法,并将开头的代码更改为:

\makeatother

\begin{document}
\begin{CJK}{UTF8}{}%
\end{CJK}\inputencoding{latin9}\chapter{Pottery Production at Huizui I}

\label{chap:Chapter-4}In this chapter I analyze and discuss the primary
data collected from the Huizui site and the archaeometric analysis...

这里,\begin{CJK}不包含在 中\chapter,但现在我收到中文文本错误,尽管我将编码设置为“Unicode (CJK)(utf8)”!!这让我认为这实际上是 CJK 字体系列的问题,正如 egreg 指出的那样。不确定为什么我的设置为 {GB} 而不是以前有效的 {gbsm}。

答案1

我的印象是 LyX 在编码切换方面过于热心。但是

\begin{CJK}{}
\chapter{\end{CJK}\inputencoding{latin9}Something}

根本就是错误的代码,无论用什么技巧都无法解决问题。

如果您打算使用CJKutf8,文档编码当然应该是 UTF-8,而不是 Latin-9。如何为 LyX 设置这一点超出了我的知识范围。以下代码有效。

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{CJKutf8}

\begin{document}

\chapter{Pottery Production at Huizui I}\label{chap:Chapter-4}

In this chapter I analyze and discuss the primary data collected
from the Huizui site and the \dots

\dots\ by Li Wenjie ``A Study of
the Pottery-Making Technology in Ancient China''
\begin{CJK}{UTF8}{gbsn}中国古代制陶工艺研究\end{CJK}
using pottery in the National History Museum collection.

\end{document}

注意参数中的字体系列\begin{CJK}

在此处输入图片描述

相关内容