Subimport-Sternchen unterbricht die Sprachen der Listings

Subimport-Sternchen unterbricht die Sprachen der Listings

\subimport*{}{}aus dem Paketimport scheint die Listensprachen zu beschädigen, aber nur, wenn listingseine Sprache im Stammdokument nicht verwendet wurde:

! Package Listings Error: Couldn't load requested language.

Meine Hypothese ist, dass die mit einem Sternchen versehene Version subimportden Pfad für Auflistungen unterbricht, aber irgendwie zwischengespeichert wird, wenn die Auflistung zuerst außerhalb des Imports verwendet wird.

Gibt es hierfür eine Lösung (außer den Import mit markierten Unterordnern nicht zu verwenden; ich würde ihn nach Möglichkeit gerne weiterhin verwenden …)

MWE unten.


A/List.tex:

\documentclass{article} 
\usepackage{import}
\usepackage{listings}
\begin{document}

% Uncommenting the problem, oddly enough.
%\begin{lstlisting}[language=Java]
%public static void main(String[] args) {} 
%\end{lstlisting}
\subimport*{Nest/Nest/}{nested}

\end{document}  

A/Nest/Nested.tex:

\begin{lstlisting}[language=Java]
//Returns true
private static bool P() { 
}
\end{lstlisting}

Antwort1

Aus der Paketdokumentation:

Um die TEXINPUTSPfadsuche beim Importieren von Dateien zu vermeiden, verwenden Sie die „Stern“-Versionen der Befehle: \import*und \subimport*.

Dies bedeutet pdflatex, dass nicht nach anderen Dateien als denen im angegebenen Verzeichnis gesucht werden kann. Die Spracheinstellungen listingswerden jedoch bei der Verwendung importiert, sodass der Speicher nicht mit Dutzenden nutzloser Sprachen überfüllt wird.

Lösung: Verwenden Sie \lstloadlanguages.

\documentclass{article}
\usepackage{import}
\usepackage{listings}

\lstloadlanguages{Java}

\begin{document}

\subimport*{mattnest/mattnest/}{nested}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen