我正在寻找一种方法来为列表中的所有 LaTeX 命令着色。我目前正在使用一种糟糕的方法来做到这一点:
\lstset{
language=TeX,
morekeywords={caption,label,documentclass,some,latex,commands,name,...},
morekeywords=[2]{begin,end},
keywordstyle=\color{blue},
keywordstyle=[2]\color{red},
morestring=[s]{[}{]},
morestring=[s]{\{}{\}},
stringstyle=\color{red},
% some other confs
}
我认为添加每个命令是一种糟糕的处理方式。也许有一种方法可以使用正则表达式?
要着色的内容示例:
\begin{lstlisting}[caption={An example}]
\begin{document}
This is a short example to colorate.
\begin{itemize}
\item an item
\item another item
\end{itemize}
\end{lstlisting}
答案1
minted 包支持 tex/latex 的语法高亮。
平均能量损失
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{minted}
\begin{document}
\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
linenos
]{latex}
\begin{align}
T_{\eta,s}(x)=F^{\eta'^{-1}}(F^{\eta}(x\mid s)\mid s)
\label{eq:acuracy tranformation}
\end{align}
\end{minted}
\end{document}
编译时必须使用 shel escape 选项
pdflatex -shell-escape texsource.tex