inputenc 错误:Unicode 字符 \u8:未设置为与 LaTeX 一起使用

inputenc 错误:Unicode 字符 \u8:未设置为与 LaTeX 一起使用

这是关于我之前的问题多语言报告中的包冲突

\documentclass[11pt,table,a4paper]{article}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{CJKutf8}
\usepackage[english,russian]{babel}

\newenvironment{SChinese}{%
 \CJKfamily{gbsn}%
 \CJKtilde
 \CJKnospace}{}

 \begin{document}
 \selectlanguage{russian}
  Это мой первый многоязычный докладе.
  Инфантильный гипертрофический стеноз привратника - это серьёзное 
 \selectlanguage{english}
  This is my first multilingual report.

 \begin{CJK}{UTF8}{}
  \begin{SChinese}
    这是我的第一个多语种的报告。
  \end{SChinese}
  \end{CJK}

  \end{document}

当我尝试编译它时,收到以下错误消息。

LaTeX Warning: Unused global option(s):
    [table].

(./data.aux
(/usr/local/texlive/2011/texmf-dist/tex/latex/cyrillic/t2acmr.fd))
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/t1lmr.fd)

LaTeX Font Warning: Font shape `T2A/lmr/m/n' undefined (Font)         
using `T2A/cmr/m/n' instead on input line 15.


! Package inputenc Error: Unicode char \u8:  not set up for use with
LaTeX.

See the inputenc package documentation for explanation. Type  H
<return>  for immediate help.  ...                                    

l.18 ...�ный гипертрофический стеноз привра...

我怎样才能避免这样的错误信息。

答案1

根据我复制粘贴您的消息所得到的信息,您收到的错误是由于“不间断空格”字符造成的。

此字符通常不由选项设置[utf8],并且对于许多编辑器来说是不可见的,因此它可以在打字员不知情的情况下潜入文档中。

解决方案:在序言中添加

\DeclareUnicodeCharacter{00A0}{ }

如果你不想输入不间断空格,或者

\DeclareUnicodeCharacter{00A0}{~}

如果您希望角色代表其名称所代表的意思。

更新

最新版本(2015-01-01 之后)的 UTF8 配置文件确实inputenc将 U+00A0 定义为\nobreakspace,因此现在不必担心这个问题。

答案2

由于这是该错误消息在 Google 上最热门的搜索结果之一,因此下面提供了一个更通用的答案和示例:

原因是您的某个输入文件中的 unicode 字符未映射到输出。这可能(尤其是当您使用(支持 unicode 的)biblatex/biber 系统时)出现在您的参考书目中。这是一个查找错误的好地方,因为从出版商网站下载的 .bib 文件通常格式不正确。您可以判断错误是否来自 bib 文件 - 错误消息中的行号将是您的 的行号\end{document},这使得追踪实际错误变得相当棘手(检查各种辅助文件似乎没有帮助)。

有些错误很微妙,比如问题中的不间断空格,或者一个期刊给我的连字符(U+2010),看起来完全相同的键盘产生的连字符减号。

复制连字符后的字符并搜索它应该会有所帮助 - 除非您的命令窗口或编辑器通过将其转换为更常见的等效字符或用空格替换unicode来“提供帮助” - 在这种情况下,从您的.log中复制它并搜索所有输入文件。

(我很高兴根据评论来扩展它或者观察它的成长——这只是试图对搜索者有所帮助)

答案3

\usepackage[utf8x]{inputenc}

乌本图:

texlive-latex-extra使用之前必须先安装。

Fedora:

texlive-collection-latexextra使用之前必须先安装。

答案4

如果您使用不同的语言进行 bibtex 操作,也可能会遇到此错误。在这种情况下,project.bbl 可能包含不同编码的字符(例如 latin2)。

您需要做的是在将参考书目呈现为 latin2 时交换编码,然后切换回 utf8。

\inputencoding{latin2}
\bibliography{mybib}
\inputencoding{utf8}

希望这可以帮助。

相关内容