
\subimport*{}{}
desde la importación del paquete parece romper los idiomas de los listados, pero solo si listings
un idioma no se ha utilizado en el documento raíz:
! Package Listings Error: Couldn't load requested language.
Mi hipótesis es que la versión destacada subimport
está rompiendo la ruta de los listados, pero de alguna manera se almacena en caché si el listado se usa primero fuera de la importación.
¿Hay alguna solución para esto (aparte de no usar la subimportación destacada; me gustaría seguir usándola si es posible...)
MWE a continuación.
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/Nido/Nido/nested.tex:
\begin{lstlisting}[language=Java]
//Returns true
private static bool P() {
}
\end{lstlisting}
Respuesta1
De la documentación del paquete:
Para evitar buscar la
TEXINPUTS
ruta al importar archivos, utilice las versiones 'estrella' de los comandos:\import*
y\subimport*
.
Esto significa que pdflatex
no puede buscar archivos distintos de los del directorio especificado. Sin embargo, las configuraciones de listings
idiomas se importan en el momento del uso, por lo que la memoria no está abarrotada con decenas de idiomas inútiles.
Solución: utilizar \lstloadlanguages
.
\documentclass{article}
\usepackage{import}
\usepackage{listings}
\lstloadlanguages{Java}
\begin{document}
\subimport*{mattnest/mattnest/}{nested}
\end{document}