Листинги «невозможно загрузить запрошенный язык» после нового определенного диалекта

Листинги «невозможно загрузить запрошенный язык» после нового определенного диалекта

[Обратите внимание, что этонетдубликатвопрос адже]

Я определил новый диалект XSLT2 XML для пакета листингов, который включает некоторые дополнительные ключевые слова помимо XSLT, но я не могу заставить его распознать это: я получаю сообщение об ошибке

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

Связанный контент