包 inputenc 错误:Unicode 字符 ² (U+B2)(inputenc) 未设置为用于 LaTeX。\acro{I2C}

包 inputenc 错误:Unicode 字符 ² (U+B2)(inputenc) 未设置为用于 LaTeX。\acro{I2C}

包 inputenc 错误:² (U+B2)(inputenc)未设置用于 LaTeX 的 Unicode 字符。\acro{I2C}[I²C]{Inter-Integrated Circuit}

当我尝试编译我的大学乳胶模板时,我得到了这个错误。有什么建议吗?

代码如下所示:

\documentclass[
a4paper, 
12pt,
oneside,
BCOR1cm,
toc=chapterentrywithdots] 
{scrbook}

\usepackage{graphicx}           % use for pdfLatex
\usepackage{makeidx} % f\"{u}r Benutzung des Befehls \printindex
\usepackage[colorlinks=false]{hyperref}
\usepackage{tocbibind}
\usepackage{blindtext}
\usepackage{subfigure} 
\usepackage{acronym}

\hypersetup{%
bookmarksnumbered=true, hyperindex=true,
%
%Im Acrobat Reader Subtitel 1. Ebene anzeigen
bookmarksopen=true, bookmarksopenlevel=1,
%
pdfborder=0 0 0 % Keine Box um die Links!
}


\renewcommand*{\tableofcontents}{%
    \begingroup
    \tocsection
    \tocfile{\contentsname}{toc}
    \endgroup
}
\renewcommand*{\listoffigures}{%
    \begingroup
    \tocsection
    \tocfile{\listfigurename}{lof}
    \endgroup
}
\renewcommand{\listoftables}{
    \begingroup
    \tocsection
    \tocfile{\listtablename}{lot}
    \endgroup
}
\begin{document}


\begin{titlepage}

{
    \begin{center}
        \raisebox{-1ex}{\includegraphics[scale=1.5] 
{Uni_positiv_gruen.pdf}}\\
    \end{center}
    \vspace{0.5cm}
}

\begin{center}

\LARGE{\textbf{Title of the thesis}}\\
\vspace{1cm}


\Large{\textbf{Thesis}}\\ 
\vspace{1cm}
Submitted in Fulfilment of the\\
Requirements for the Academic Degree\\
M.Sc.\\
\vspace{0.5cm}
Dept. of Computer Science\\
Chair of Computer Engineering
\end{center}
\vspace{3cm}
Submitted by: Max Mustermann\\
Student ID: 111222\\
Date: 12.12.1212\\
\vspace{0.3cm}\\
Supervising tutor: Prof. Dr. \\
(further supervisors)

\end{titlepage}

\addchap*{Abstract}
\blindtext
\\\\
\textbf{Keywords: Keyword1, Keyword2, Keyword3, ...max 5}

\tableofcontents
\listoffigures
\listoftables

\twocolumn
\addchap{List of Abbreviations}
\begin{acronym}[Bash]
\acro{KDE}{K Desktop Environment}
 \acro{SQL}{Structured Query Language}
 \acro{Bash}{Bourne-again shell}
 \acro{JDK}{Java Development Kit}
 \acro{VM}{Virtuelle Maschine}
 \acro{I2C}[I²C]{Inter-Integrated Circuit}
 \acro{KDE}{K Desktop Environment}
\acro{SQL}{Structured Query Language}
\acro{Bash}{Bourne-again shell}
\acro{JDK}{Java Development Kit}
\acro{VM}{Virtuelle Maschine}
\acro{I2C}[I²C]{Inter-Integrated Circuit}
 \acro{KDE}{K Desktop Environment}
\acro{SQL}{Structured Query Language}
\acro{Bash}{Bourne-again shell}
 \acro{JDK}{Java Development Kit}
 \acro{VM}{Virtuelle Maschine}
\acro{I2C}[I²C]{Inter-Integrated Circuit}
\acro{KDE}{K Desktop Environment}
\acro{SQL}{Structured Query Language}
\acro{Bash}{Bourne-again shell}
\acro{JDK}{Java Development Kit}
\acro{VM}{Virtuelle Maschine}
\acro{I2C}[I²C]{Inter-Integrated Circuit}
\acro{KDE}{K Desktop Environment}
\acro{SQL}{Structured Query Language}
\acro{Bash}{Bourne-again shell}
\acro{JDK}{Java Development Kit}
\acro{VM}{Virtuelle Maschine}
\acro{I2C}[I²C]{Inter-Integrated Circuit}
\acro{I2C}[I²C]{Inter-Integrated Circuit}
\end{acronym}

\chapter{Introduction}
\input{src/intro}  % Load Data from File intro.tex

\chapter{Tables}
\input{src/example_tables} % Load Data from File example_tables

\chapter{Figures}
\input{src/example_figures} % Load Data from File example_figures

\chapter{Referencing}
% Alternativ just write your text under \chapter like this example



\chapter{Subchapter}

\printindex 

\end{document}

提前致谢。

答案1

由于您没有提供预期的 MWE,所以我不知道\acro该提供什么。

但一般来说,要声明未知的 Unicode 字符,您应该加载:

\usepackage[utf8]{inputenc}

并使用:

\DeclareUnicodeCharacter{<unicode-in-hexa>}{<latex-code>}

也就是说,就你的情况而言:

\DeclareUnicodeCharacter{00B2}{\ensuremath{{}^2}}

一个更简单的选择:

\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{²}{\ensuremath{{}^2}}

编辑(与 MWE 一起)

我刚刚粘贴:

\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{00B2}{\ensuremath{{}^2}}

或者

\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{²}{\ensuremath{{}^2}}

在 MWE 序言的开头,并且(在更正为之后BCOR1cmBCOR=1cm它可以正常工作而没有任何错误或警告,并且在两种情况下都给出:

输出

答案2

您正在运行旧版工具链,它仍然使用特定于 LaTeX 的 8 位文本编码,并且不加载包含该字符的编码。

使用现代 TeX 引擎

我推荐的解决方案是切换到 LuaLaTeX 或 XeLaTeX 并加载\usepackage{fontspec}而不是fontenc。这将使您切换到使用 Unicode 和现代标准字体。仍然与较新的工具链不兼容的地方应该更新。

使用 Type 1 字体

如果你不能这样做,包含的 LaTeX 字体编码²TS1,文本伴随编码。 默认情况下,LaTeX 3 会\usepackage[utf8]{inputenc}在您的序言之后和 之前运行\begin{document}。它会将 UTF-8 字符转换为 LaTeX 命令,但由于字符太多,并且某些编码重叠,因此它只会定义您已加载的编码的命令。由于 20 世纪后期的历史原因,您从包中设置了 TS1 编码textcomp

\usepackage[T1]{fontenc}
\usepackage{textcomp}

(如果您感兴趣的话,这是因为,当商业 Type 1 字体仍然存在时,它们不包含 TS1 中的大多数符号,除非它们是专门为当时最前沿的 TeX 设计的。因此,该包会设置您的 TS1 字体实际包含的符号。)

后备方案

另一个选择是加载newunicodechar包并定义命令

\newunicodechar{²}{\textsuperscript{2}}

这是支持 Unicode 中某些其他上标字符的唯一方法。

相关内容