新しく定義された方言の後、リストは「要求された言語を読み込めません」

新しく定義された方言の後、リストは「要求された言語を読み込めません」

[これはないの複製ajehの質問]

私は、リストパッケージ用に、XSLTを超えるいくつかの追加キーワードを含むXMLの新しいXSLT2方言を定義しましたが、これを認識させることができません。エラーメッセージが表示されます。

! Package Listings Error: Couldn't load requested language.

See the Listings package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.10 \begin{lstlisting}[language=XSLT2]

! Package Listings Error: language xslt2 undefined.

(xslt2 を小文字で引用しているのも奇妙ですが、これはおそらく別の問題です)。

MWE は次のとおりです (余分なキーワードはカットされています)。

\documentclass{article}
\usepackage{listings}
\lstdefinelanguage[XSLT2]{XML}% copied from lstlang1.sty
  {morekeywords={xsl:for-each-group},%
   alsodigit={-},%
  }%
\lstloadlanguages{[XSLT2]XML}
\begin{document}
This is a test
\begin{lstlisting}[language=XSLT2]
<xsl:for-each-group select="db:biblioentry">
  ...
</xsl:for-each-group>
\end{lstlisting}
\end{document}

何が間違っているのでしょうか?

[編集] を使用できることはわかっています[language={[XSLT2]XML}]が、既存の XSLT 言語を使用する場合は、 を実行する必要はありません{[XSLT]XML}... 同じように動作するように実装するにはどうすればよいですか? を使用してみました\lstset{defaultdialect=[XSLT2]XML}が、効果はありませんでした。

答え1

方言ではなく、XMLに基づいた新しい言語を定義したいので、構文が間違っています。

\documentclass{article}
\usepackage{listings}
\lstdefinelanguage{XSLT2}[]{XML}% changed
  {morekeywords={xsl:for-each-group},%
   alsodigit={-},%
  }%
\lstloadlanguages{XSLT2}
\begin{document}
This is a test
\begin{lstlisting}[language=XSLT]
<xsl:for-each-group select="db:biblioentry">
  ...
</xsl:for-each-group>
\end{lstlisting}
\end{document}

関連情報