我有一个 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.