inputenc 错误:Unicode 字符(U+2028)

inputenc 错误:Unicode 字符(U+2028)

当我尝试使用 inputenc 包在我的文档中启用 utf8 字符时,我收到错误inputenc Error: Unicode char 
 (U+2028) not set up for use with LaTeX。它由 quote 环境中的显示公式触发。例如,以下示例已经触发它:


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

 \begin{document}
   \begin{quote}
     blah:
\[ blah \]
   \end{quote}
 \end{document}

我考虑了一下\DeclareUnicodeCharacter{2028}{},这似乎确实可行(将其定义为在\\未满水平盒子的情况下生成),但这感觉有点不靠谱;这难道不应该开箱即用吗?我正在使用最新版本的 TeXLive 2016。

答案1

为什么你的源代码中有行分隔符?:-) 但无论如何,这是意料之中的:Unicode 有数万个字符,inputenc 没有为它们全部定义 tex 代码,你只需要\DeclareUnicodeCharacter为你需要的任何其他字符使用。所以你的建议

\DeclareUnicodeCharacter{2028}{} 

很好,或者

\DeclareUnicodeCharacter{2028}{\linebreak} 

取决于字符的预期含义。但实际上,这样的控制字符根本不应该出现在 tex 源中。


如果你粘贴blah:
\[ blah \]

https://w3c.github.io/xml-entities/unicode-names.html

然后你会看到以下内容,表明你在:和之间有控制字符\[

  U+000a LINE FEED (LF)     

  U+0020 SPACE     \space
  U+0020 SPACE     \space
  U+0020 SPACE     \space
  U+0020 SPACE     \space
  U+0020 SPACE     \space
  U+0062 LATIN SMALL LETTER B     b
  U+006c LATIN SMALL LETTER L     l
  U+0061 LATIN SMALL LETTER A     a
  U+0068 LATIN SMALL LETTER H     h
  U+003a COLON     : \mathcolon :
% U+2028 LINE SEPARATOR
  U+005c REVERSE SOLIDUS     \ \backslash \textbackslash
  U+005b LEFT SQUARE BRACKET     [ [ \lbrack [
  U+0020 SPACE     \space
  U+0062 LATIN SMALL LETTER B     b
  U+006c LATIN SMALL LETTER L     l
  U+0061 LATIN SMALL LETTER A     a
  U+0068 LATIN SMALL LETTER H     h
  U+0020 SPACE     \space
  U+005c REVERSE SOLIDUS     \ \backslash \textbackslash
  U+005d RIGHT SQUARE BRACKET     ] ] \rbrack ]
  U+000a LINE FEED (LF)     


相关内容