子导入星级休息列表语言

子导入星级休息列表语言

\subimport*{}{}从包导入似乎会破坏语言列表,但前提是listings根文档中尚未使用过某种语言:

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

我的假设是,带星号的版本subimport破坏了列表的路径,但如果列表首先在导入之外使用,它就会以某种方式被缓存。

有没有解决办法(除了不使用带星号的子导入;如果可能的话我想继续使用它......)

下面的 MWE。


A/列表.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/Nest/nested.tex:

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

答案1

来自包装文档:

为了避免TEXINPUTS在导入文件时搜索路径,请使用“星号”版本的命令:\import*\subimport*

这意味着pdflatex无法查找指定目录中的文件以外的文件。但是,listings语言的设置在使用时会导入,因此内存不会被数十种无用的语言所困扰。

解决方案:使用\lstloadlanguages

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

\lstloadlanguages{Java}

\begin{document}

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

\end{document}

在此处输入图片描述

相关内容