子導入星號破壞了列表語言

子導入星號破壞了列表語言

\subimport*{}{}from the package import 似乎會破壞列表語言,但前提是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}

在此輸入影像描述

相關內容