Los listados "no se pueden cargar el idioma solicitado" después del dialecto recién definido

Los listados "no se pueden cargar el idioma solicitado" después del dialecto recién definido

[Tenga en cuenta que esto esnoun duplicado dela pregunta de ajeh]

He definido un nuevo dialecto XSLT2 de XML para el paquete de listados que incluye algunas palabras clave adicionales además de XSLT, pero no logro que reconozca esto: aparece el mensaje de error

! 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.

(También es extraño que cite xslt2 en minúsculas, pero probablemente sea un asunto diferente).

Aquí está el MWE (recorte de palabras clave adicionales):

\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}

¿Qué estoy haciendo mal?

[editar] Soy consciente de que puedo usar [language={[XSLT2]XML}], pero si uso el lenguaje XSLT existente no tengo que hacerlo {[XSLT]XML}... ¿cómo lo implemento para que funcione de la misma manera? He intentado usarlo \lstset{defaultdialect=[XSLT2]XML}pero no tiene ningún efecto.

Respuesta1

No desea definir un dialecto sino un nuevo idioma basado en xml, por lo que su sintaxis es incorrecta. Debería ser

\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}

información relacionada