
\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}