梅威瑟:
\documentclass[a4paper,11pt]{book}
\usepackage{color}
\usepackage{listings}
\lstdefinelanguage{mytex}[LaTeX]{TeX}{
alsoletter={\\},
morekeywords=[3]{\\mbox,},
literate={\{}{{\textcolor{blue}{\{}}}{1} {\}}{{\textcolor{blue}{\}}}}{1},
}
\lstset{language=mytex}
\lstdefinestyle{mystyle1}{
basicstyle=\normalsize\ttfamily,
keywordstyle=[3]{\color{green}},
}
\lstset{style=mystyle1}
\begin{document}
\begin{lstlisting}
\mbox{}
\end{lstlisting}
\begin{lstlisting}
f\mbox{}f
\end{lstlisting}
\end{document}
并显示
我怎样才能做到绿色,第二\mbox
?
注:@karlkoeller 的答案图片。 \mbox{}f 之间有一个空格 f。
答案1
突出显示 LaTeX 命令的最佳方法是使用texcsstyle
而不是keywordstyle
和moretexcs
而不是morekeywords
。
在你的情况下,\mbox
已经被列为 LaTeX 关键字,因此你需要先从默认关键字列表中取消声明它
deletetexcs={mbox}
然后将其添加到3
列表中
moretexcs=[3]{part,mbox,chapter}
要根据需要突出显示它们,请添加选项
texcsstyle=*[3]{\color{green}}
适合您的风格(星号也表示listings
要突出显示)。\
梅威瑟:
\documentclass[a4paper,11pt]{book}
\usepackage{color}
\usepackage{listings}
\lstdefinelanguage{mytex}[LaTeX]{TeX}{
deletetexcs={mbox},
moretexcs=[3]{part,mbox,chapter},
literate={\{}{{\textcolor{blue}{\{}}}{1} {\}}{{\textcolor{blue}{\}}}}{1},
}
\lstset{language=mytex}
\lstdefinestyle{mystyle1}{
basicstyle=\normalsize\ttfamily,
texcsstyle=*[3]{\color{green}},
}
\lstset{style=mystyle1}
\begin{document}
\begin{lstlisting}
\mbox{}
\end{lstlisting}
\begin{lstlisting}
f\mbox{}f
\end{lstlisting}
\end{document}
输出:
编辑
如果您不喜欢标准间距,请使用中的listings
选项。columns=fullflexible
\lstset
梅威瑟:
\documentclass[a4paper,11pt]{book}
\usepackage{color}
\usepackage{listings}
\lstdefinelanguage{mytex}[LaTeX]{TeX}{
deletetexcs={mbox},
moretexcs=[3]{part,mbox,chapter},
literate={\{}{{\textcolor{blue}{\{}}}{1} {\}}{{\textcolor{blue}{\}}}}{1},
}
\lstset{language=mytex,columns=fullflexible}
\lstdefinestyle{mystyle1}{
basicstyle=\normalsize\ttfamily,
texcsstyle=*[3]{\color{green}},
}
\lstset{style=mystyle1}
\begin{document}
\begin{lstlisting}
\mbox{}
\end{lstlisting}
\begin{lstlisting}
f\mbox{}f
\end{lstlisting}
\end{document}