La estrella de Subimport rompe los idiomas de los listados

La estrella de Subimport rompe los idiomas de los listados

\subimport*{}{}desde la importación del paquete parece romper los idiomas de los listados, pero solo si listingsun 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 subimportestá 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 TEXINPUTSruta al importar archivos, utilice las versiones 'estrella' de los comandos: \import*y \subimport*.

Esto significa que pdflatexno puede buscar archivos distintos de los del directorio especificado. Sin embargo, las configuraciones de listingsidiomas 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}

ingrese la descripción de la imagen aquí

información relacionada