处理乳胶列表包中的“下划线”和特殊字符

处理乳胶列表包中的“下划线”和特殊字符

如何处理 Latex 列表中的“下划线”和特殊字符。我正在编写一个简单的 prolog 样式代码

\begin{lstlisting}[label=LE, name=R_E]
    $\alpha_{1}$ = *M1*  °h1°(^A^, ^B^) :- °b1,1°(^B^, ^A^), °b1,2°(X).
    $\alpha_{2}$ = *M2*  °h2°(^A^, ^B^) :- °b2,1°(^B^, ^A^), °b2,2°(X).
\end{lstlisting}

这将产生如下所示的输出:

在此处输入图片描述

下面是我的乳胶列表命令:

\lstset{language=Prolog,
numbers=left, numberstyle=\scriptsize, numbersep=3pt,
basicstyle=\scriptsize \ttfamily,
tabsize=3,
captionpos=t,
stepnumber=1,
frame=lines,
breaklines=true,
showspaces=false,
commentstyle=\scriptsize\ttfamily \color{mygreen},
moredelim=**[is][\color{vc}]{°}{°}, % To use text color inside a listing, we use a dilimiter
moredelim=**[is][\color{kw}]{*}{*},
moredelim=**[is][\color{darkgreen}]{^}{^},
%moredelim=**[is][\color{cyan}]{<?}{?>},
keywordstyle=\color{cyan},
morekeywords={type,value,href,xmlns,owl,/owl,rdf,/rdf,date,source,start,id,name,language,as, refersTo},
morecomment=[s]{<!--}{-->},
morecomment=[s][\color{grey}]{<<}{>>}
escapeinside={} 
}

但它不会打印字符“α”及其旁边的下划线。类似地,也会打印“h”和“b”旁边的下划线

答案1

使用“mathescape”

\begin{lstlisting}[label=LE, name=R_E, mathescape]
    $\alpha_{1}$ = *M1*  °h1°(^A^, ^B^) :- °b1,1°(^B^, ^A^), °b1,2°(X).
    $\alpha_{2}$ = *M2*  °h2°(^A^, ^B^) :- °b2,1°(^B^, ^A^), °b2,2°(X).
\end{lstlisting}

相关内容