
\subimport*{}{}
do pacote import parece quebrar os idiomas das listagens, mas somente se listings
um idioma não tiver sido usado no documento raiz:
! Package Listings Error: Couldn't load requested language.
Minha hipótese é que a versão com estrela subimport
está interrompendo o caminho das listagens, mas de alguma forma ela é armazenada em cache se a listagem for usada primeiro fora da importação.
Existe uma solução para isso (além de não usar a sub importação com estrela; gostaria de continuar usando, se possível...)
MWE abaixo.
A/Lista.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/Ninho/Ninho/nested.tex:
\begin{lstlisting}[language=Java]
//Returns true
private static bool P() {
}
\end{lstlisting}
Responder1
Da documentação do pacote:
Para evitar pesquisar o
TEXINPUTS
caminho ao importar arquivos, use as versões 'estrela' dos comandos:\import*
e\subimport*
.
Isso significa que pdflatex
não é possível procurar arquivos diferentes daqueles no diretório especificado. No entanto, as configurações de listings
idiomas são importadas no momento do uso, para que a memória não fique sobrecarregada com dezenas de idiomas inúteis.
Solução: use \lstloadlanguages
.
\documentclass{article}
\usepackage{import}
\usepackage{listings}
\lstloadlanguages{Java}
\begin{document}
\subimport*{mattnest/mattnest/}{nested}
\end{document}