现行《listings
文档(2013/08/26 版本 1.5b)描述了一个名为 的键tag
。该键用于lstdrvrs.dtx
,这是一个附带listings
并负责预定义语言的文件。更具体地说,tag
密钥用于HTML
和XML
语言的定义,如下所示:
\lst@definelanguage{<languagename>}{
% ...
tag=**[s]<>,%
% ...
}
那么,为什么我不能使用tag
自定义语言定义中的键呢?例如,下面的代码会引发以下错误:
!Package keyval Error: tag undefined.
我的 TeX 发行版是最新的。我不明白……
\documentclass{article}
\usepackage{listings}
\lstdefinelanguage{mylang}%
{%
tag=**[s]<>,
}
\begin{document}
\begin{lstlisting}[language=mylang]
<b>foobar</b>
\end{lstlisting}
\end{document}
答案1
文档忽略了提及密钥仅在“方面”(而非语言)内tag
定义(在) 。使用lstmisc.sty
html
\lstloadaspects{html}
(或作为包选项)将把tag
密钥放在你的手中。你也可以在最后一个可选参数中加载它\lstdefinelanguage
:
\lstdefinelanguage{mylang}{tag=**[s]<>}[html]