새로 정의된 방언 다음에 "요청한 언어를 로드할 수 없습니다" 목록이 표시됩니다.

새로 정의된 방언 다음에 "요청한 언어를 로드할 수 없습니다" 목록이 표시됩니다.

[참고로 이건~ 아니다중복아제의 질문]

XSLT 이외의 일부 추가 키워드를 포함하는 목록 패키지에 대해 XML의 새로운 XSLT2 방언을 정의했지만 이를 인식할 수 없습니다. 오류 메시지가 나타납니다.

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

관련 정보