我想强调一下TeX 代码列表,因此我使用lstlisting
。
\begin{lstlisting}[language=TeX]
\begin{tabular}{ |p{4cm}|p{4cm}|p{4cm}| }
\hline
\multicolumn{3}{|c|}{Country List} \\
\hline
Country Name & ISO ALPHA 2 & ISO ALPHA 3 \\
\hline
Afghanistan & AF & AFG \\
Aland Islands & AX & ALA \\
Albania & AL & ALB \\
\hline
\end{tabular}
\end{lstlisting}
我的lstset
是:
\lstset{extendedchars=\true,keepspaces=true,
basicstyle=\ttfamily,columns=flexible,
escapechar=$,escapebegin=\[,escapeend=\]
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
numberstyle=\color{codegray},
stringstyle=\color{codepurple},
breakatwhitespace=false,
breaklines=true,
captionpos=b,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
但我对结果并不满意——只end
变成了洋红色,其他文字都是黑色:
我认为begin
是与 同等重要的关键字end
,但它也是黑色的。有什么方法可以让 TeX 代码高亮显示吗?
答案1
您的问题源于要求listings
突出显示 TeX 代码,而您实际上提供的是 LaTeX 代码。在 TeX 中\begin
,\hline
、\multicolumn
等未使用,因此未突出显示。只需将您的语言更改为 LaTeX,方法是将 添加language=[LaTeX]{TeX}
到\lstset
。
\documentclass{article}
\usepackage{listings, xcolor}
\lstset{extendedchars=\true,keepspaces=true,
basicstyle=\ttfamily,columns=flexible,
escapechar=$,escapebegin=\[,escapeend=\]
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
numberstyle=\color{codegray},
stringstyle=\color{codepurple},
breakatwhitespace=false,
breaklines=true,
captionpos=b,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
language=[LaTeX]{TeX} %<--
}
\begin{document}
\begin{lstlisting}
\begin{tabular}{ |p{4cm}|p{4cm}|p{4cm}| }
\hline
\multicolumn{3}{|c|}{Country List} \\
\hline
Country Name & ISO ALPHA 2 & ISO ALPHA 3 \\
\hline
Afghanistan & AF & AFG \\
Aland Islands & AX & ALA \\
Albania & AL & ALB \\
\hline
\end{tabular}
\end{lstlisting}
\end{document}