我需要将一些 UTF8 代码复制并粘贴到列表中,但不幸的是,我收到以下错误:
! 包 inputenc 错误:Unicode 字符 \u8:\lst@FillFixed@\lst@EC\ 未设置为用于 LaTeX。
使用的键盘字符未定义
奇怪的是,我没有注意到我的 lstlisting 代码中有任何奇怪的字符(它是一些 bash 代码)。此外,我在 header 中获得了包:
\usepackage[utf8]{inputenc}
我应该怎么办?
答案1
我刚刚用它解决了这个问题
inputencoding=latin1
我希望它能够帮助一些与我处于同样情况的人。
答案2
列表无法处理 UTF8 字符。在文档中搜索关键字literate
。然后您将看到如何将 UTF-8 字符映射到 TeX 命令,例如
ü->\"u
: \lstset{literate={ü}{{\"u}}1}
答案3
我解决了添加texcl=true
配置\lstset
的问题。
答案4
其中一些可能会有帮助(可能你不需要所有这些行):
\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\lstset{literate=% Allow for German characters in lstlistings.
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
在这里你会发现许多其他语言和字符的类似代码,以及针对同一问题的一些其他提示: https://stackoverflow.com/questions/1116266/listings-in-latex-with-utf-8-or-at-least-german-umlauts/15450398
PS:每当您使用 lstlisting 时,您通常希望出于其他原因添加类似这样的内容(它们不会影响您的问题):
\usepackage{listings}
\lstset{
basicstyle=\small\ttfamily, %Looks much better.
columns=flexible, %Without this you get fixed-width fonts, which look bad.
breaklines=true, %End-of-line wrap - you really want this, usually.
language=tex %Percent comments in cursive, so you distinguish them from the commands. Other languages are also available, such as C and Matlab.
}