
\subimport*{}{}
aus dem Paketimport scheint die Listensprachen zu beschädigen, aber nur, wenn listings
eine Sprache im Stammdokument nicht verwendet wurde:
! Package Listings Error: Couldn't load requested language.
Meine Hypothese ist, dass die mit einem Sternchen versehene Version subimport
den 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
TEXINPUTS
Pfadsuche 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 listings
werden 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}