基本上就是标题所说的。我想知道是否有办法在导入 minted 中的源代码文件时指定特定文件夹作为基础文件夹。
答案1
目前还没有这方面的规定。不过,添加一个合适的框架并不困难。
我使用了几个为回答其他问题而创建的目录仅作为示例。
\documentclass{article}
\usepackage{minted}
\makeatletter
\newcommand{\pathinputminted}[3][]{%
\expandafter\@tfor\expandafter\next\expandafter:\expandafter=\pathminted@path\do{%
\IfFileExists{\next #3}{\inputminted[#1]{#2}{\next #3}}{}%
}%
}
\newcommand{\mintedpath}[1]{%
\def\pathminted@path{#1}%
}
\makeatother
\mintedpath{{./zeno/}{wenneker/}}
\begin{document}
\pathinputminted{latex}{a.tex}
\pathinputminted{latex}{b.tex}
\pathinputminted{tex}{chsum.tex}
\end{document}
这非常简单,因为所有a.tex
在指定目录中命名的文件都\mintedpath
将被输入。
第一次命中时就可以打破循环,但使用 会更容易expl3
。
\documentclass{article}
\usepackage{minted}
\usepackage{xparse}
\ExplSyntaxOn
\tl_new:N \l_mintedpath_paths_tl
\NewDocumentCommand{\mintedpath}{m}
{
\tl_set:Nn \l_mintedpath_paths_tl { #1 }
}
\NewDocumentCommand{\pathinputminted}{O{}mm}
{
\tl_map_inline:Nn \l_mintedpath_paths_tl
{
\file_if_exist:nT { ##1 #3 }
{
\inputminted[#1]{#2}{##1 #3}
\tl_map_break:
}
}
}
\ExplSyntaxOff
\mintedpath{{./zeno/}{./wenneker/}}
\begin{document}
\pathinputminted{latex}{a.tex}
\pathinputminted{latex}{b.tex}
\pathinputminted{tex}{chsum.tex}
\end{document}