Einträge „Angeforderte Sprache kann nicht geladen werden“ nach neu definiertem Dialekt

Einträge „Angeforderte Sprache kann nicht geladen werden“ nach neu definiertem Dialekt

[Beachten Sie, dass diesnichtein Duplikat vonajehs Frage]

Ich habe einen neuen XSLT2-Dialekt von XML für das Listings-Paket definiert, der einige zusätzliche Schlüsselwörter über XSLT hinaus enthält, aber ich kann ihn nicht dazu bringen, dies zu erkennen: Ich erhalte die Fehlermeldung

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

(auch seltsam ist, dass XSLT2 in Kleinbuchstaben zitiert wird, aber das ist wahrscheinlich eine andere Sache).

Hier ist das MWE (ohne zusätzliche Schlüsselwörter):

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

Was mache ich falsch?

[Bearbeiten] Ich bin mir bewusst, dass ich verwenden kann [language={[XSLT2]XML}], aber wenn ich die vorhandene XSLT-Sprache verwende, muss ich das nicht tun {[XSLT]XML}. Wie implementiere ich es, damit es auf die gleiche Weise funktioniert? Ich habe versucht, zu verwenden, \lstset{defaultdialect=[XSLT2]XML}aber es hat keine Wirkung.

Antwort1

Sie möchten keinen Dialekt, sondern eine neue Sprache auf XML-Basis definieren, daher ist Ihre Syntax falsch. Sie sollte lauten

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

verwandte Informationen