复制文本后出现问题:inputenc 错误:Unicode 字符 \u8:未设置为用于 LaTeX

复制文本后出现问题:inputenc 错误:Unicode 字符 \u8:未设置为用于 LaTeX

我有一个 LaTeX 文档,可以毫无问题地进行编译,但是在将一些文本复制到文档中后,我收到大量错误,如下所示:

! 包 inputenc 错误:Unicode 字符 \u8:未设置为用于 LaTeX。

我知道这种错误很常见,但就我而言,它不是由单个字符引起的,而是由整个文本(很长)引起的。

文本已在 Abi Word 中编写并保存为 UTF-8 编码的文本文件。Texmaker 编辑器也使用 UTF-8 编码。我不知道复制的文本可能有什么问题。

答案1

不幸的是,utf8.def没有显示缺失的 Unicode 字符的数字表示。缺失的字符<char>直接显示在宏中\u8:<char>。以下示例在错误消息中添加了数字信息:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{stringenc}
\usepackage{pdfescape}

\makeatletter
\renewcommand*{\UTFviii@defined}[1]{%
  \ifx#1\relax
    \begingroup
      % Remove prefix "\u8:"
      \def\x##1:{}%
      % Extract Unicode char from command name
      % (utf8.def does not support surrogates)
      \edef\x{\expandafter\x\string#1}%
      \StringEncodingConvert\x\x{utf8}{utf16be}% convert to UTF-16BE
      % Hexadecimal representation
      \EdefEscapeHex\x\x
      % Enhanced error message
      \PackageError{inputenc}{Unicode\space char\space \string#1\space
                              (U+\x)\MessageBreak
                              not\space set\space up\space
                              for\space use\space with\space LaTeX}\@eha
    \endgroup
  \else\expandafter
    #1%
  \fi
}
\makeatother

\begin{document}
^^c2^^a0 % 7-bit input for U+00A0
\end{document}

结果:

! Package inputenc Error: Unicode char \u8:  (U+00A0)
(inputenc)                not set up for use with LaTeX.

相关内容