
[注意,這是不是的副本阿傑的問題]
我為清單包定義了一種新的 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}