新定義的方言後列表“無法載入請求的語言”

新定義的方言後列表“無法載入請求的語言”

[注意,這是不是的副本阿傑的問題]

我為清單包定義了一種新的 XML XSLT2 方言,其中包括 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}

相關內容