![列表中支持 UTF-8(BMP 字符集)。](https://linux22.com/image/236351/%E5%88%97%E8%A1%A8%E4%B8%AD%E6%94%AF%E6%8C%81%20UTF-8%EF%BC%88BMP%20%E5%AD%97%E7%AC%A6%E9%9B%86%EF%BC%89%E3%80%82.png)
我正在使用 LaTeX 向期刊提交一篇论文,我需要能够将 Unicode 符号写入列表中。到目前为止,我已经能够使用该软件包。它的列表环境与上的设置moreverb
结合使用效果非常好。但是,有些符号(如 Σ)就是不起作用。utf8x
inputenc
注意:我使用列表是因为内容是代码片段,而不是传统的数学表达式。以下是一些最简单的示例。
\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 包添加了代码
笔记:你不一定要使用数学模式。你也可以换成其他包含所需字符的字体并直接使用。