如何处理 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}