列表中支持 UTF-8(BMP 字符集)。

列表中支持 UTF-8(BMP 字符集)。

我正在使用 LaTeX 向期刊提交一篇论文,我需要能够将 Unicode 符号写入列表中。到目前为止,我已经能够使用该软件包。它的列表环境与上的设置moreverb结合使用效果非常好。但是,有些符号(如 Σ)就是不起作用。utf8xinputenc

注意:我使用列表是因为内容是代码片段,而不是传统的数学表达式。以下是一些最简单的示例。

\documentclass[preprint, 11pt]{sigplanconf}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{verbatim}
\usepackage{moreverb}
\usepackage{listings}

这有效:

\begin{listing}{1}
test = 2 ∈ s
\end{listing}

这不起作用:

\begin{listing}{1}
sum = Σ(s)
\end{listing}

请帮忙!

答案1

您的问题实际上与列表无关;您也会在列表之外遇到错误。关键是 Latex 根本不了解如何显示 unicode 字符。

使用数学字符,这个问题很容易解决,但是由于环境原因moreverb,您无法在列表中直接使用数学。幸运的是,该inputenc包为您提供了一种解决方法。您需要明确告诉 Latex,它应该如何呈现未知的 utf8 字符。

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{verbatim}
\usepackage{moreverb}

\DeclareUnicodeCharacter{03A3}{\ensuremath{\Sigma}}
\DeclareUnicodeCharacter{2208}{\ensuremath{\in}}

%% or simply use the newunicodechar package
%% which does the same without the need of remembering numbers:
% \usepackage{newunicodechar}
% \newunicodechar{Σ}{\ensuremath{\Sigma}}
% \newunicodechar{∈}{\ensuremath{\in}}

\begin{document}
∈ Σ

\begin{listing}{1}
test = 2 ∈ s
\end{listing}

\begin{listing}{1}
sum = Σ(s)
\end{listing}

\end{document}

编辑:\ensuremath改为使用$..$

编辑2:为 newunicodechar 包添加了代码

笔记:你不一定要使用数学模式。你也可以换成其他包含所需字符的字体并直接使用。

相关内容