我试图在 LaTeX 中显示一个较长的 Python 正则表达式lstlistings
。但在编译时,我收到以下错误消息。
! Package inputenc Error: Unicode char \u8:�\lst@FillFixed@\lst@EC� not set up for use with LaTeX.
我认为这是由引号 ' 和 ´ 引起的。如何以lstlisting
最简单的方式正确显示它们?我是 LaTeX 初学者,搜索并尝试了许多其他解决方案,但没有一个对我有帮助。
\lstset{
language=Python,
basicstyle=\footnotesize,
captionpos=t,
texcl=true,
numbers=left,
numbersep=7pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
stepnumber=1,
breaklines=true,
}
\begin{lstlisting}[frame=single, caption=Full source code]
pattern_p = re.finditer("(\t|; )((\w{2,}( |-)?)+) ?(\((m|f|n)\))? ?(\(((\w{2,}\'?-?’?\?? ?)+)(\)|,|’))?", decoded_line)
\end{lstlisting}
答案1
lstlistings 不能很好地处理 UTF-8。通过添加
\lstset{
literate={’}{\textquoteright}1 {ʹ}{\textquoteright}1
}
UTF-8 字符被替换为接近的 LaTeX 生成的对应字符。解决方案由上面的 daleif 提供。