对于 minted 来说,是否有类似于 \graphicspath{ {myPath} } 的东西?

对于 minted 来说,是否有类似于 \graphicspath{ {myPath} } 的东西?

基本上就是标题所说的。我想知道是否有办法在导入 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}

相关内容