考虑到( listings
)⟨language⟩
的情况:⟨dialect⟩
- 和
\lstset{alsolanguage=[⟨dialect⟩]⟨language⟩}
, - 但不与
\lstloadlanguages{[⟨dialect⟩]⟨language⟩}
。
以下 MCE 显示了这一点:
\def
是来自语言的控制序列TeX
,\LoadClass
AlLaTeX
是来自该语言方言的控制序列TeX
。
为什么?
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily,
language=TeX,
texcsstyle=*\color{red},
}
\begin{document}
\lstloadlanguages{[AlLaTeX]TeX}
\begin{lstlisting}
\def
\LoadClass
\end{lstlisting}
\lstset{alsolanguage=[AlLaTeX]TeX}
\begin{lstlisting}
\def
\LoadClass
\end{lstlisting}
\end{document}
答案1
引用listings
包文档:
加载软件包后,建议使用以下命令加载所有使用的编程语言方言。使用一个命令加载多种语言比按需加载每种语言更快。
\lstloadlanguages{⟨comma separated list of languages⟩}
每种语言的形式都是
[⟨dialect⟩]⟨language⟩
。如果没有可选的,[⟨dialect⟩]
包将加载默认方言。因此,[Visual]C++
如果您想要 Visual C++,请写下 ,[ISO]C++
如果您想要 ISO C++,请写下 。两者可以通过命令一起加载\lstloadlanguages{[Visual]C++,[ISO]C++}
。
本质上,\lstloadlanguages
除了声明文档中将要使用的所有语言(并且为了加速,正如文档所声称的那样)之外什么也不做。
您仍然需要(或直接在块lstset
中指定语言)才能使用它。lstlistings
[language={...}]