导入铸造片段的目录

导入铸造片段的目录

有没有办法告诉minted从某个目录导入代码片段?我正在寻找类似于\graphicspath{{img/}}图像的方法。

现在,我需要导入的所有文件都与我的其他.tex文件混合在一起。

答案1

此功能在当前版本中不可用minted\inputminted恐怕无法重新定义,因为根据draft开启或关闭,它具有不同的定义。

无论如何,你可以很容易地定义一个包装器\inputminted。的语法\pathinputminted与以下相同\inputminted

\pathinputminted[<options>]{<language>}{<filename>}

完整代码

\documentclass{article}
\usepackage{minted}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\mintedpath}{m}
 {
  \seq_gset_split:Nnn \g_paulie_mintedpath_seq { } { #1 }
  \seq_gput_left:Nn \g_paulie_mintedpath_seq { }
 }

\seq_new:N \g_paulie_mintedpath_seq

\NewDocumentCommand{\pathinputminted}{O{}mm}
 {
  \seq_map_inline:Nn \g_paulie_mintedpath_seq
   {
    \file_if_exist:nT { ##1 #3 }
     {
      \inputminted[#1]{#2}{##1 #3}
      \seq_map_break:
     }
   }
 }
\ExplSyntaxOff

\mintedpath{ {sub1/} {sub2/} }

\begin{document}

\pathinputminted{latex}{test1.tex} % this is only in sub1

\pathinputminted{latex}{test2.tex} % this is both in sub1 and sub2

\pathinputminted{latex}{test3.tex} % this is only in sub2

\pathinputminted{latex}{test4.tex} % this is both in current directory and sub1

\end{document}

这是我为了示例而设置的目录结构,文档已经排版一次,因此 Pygments 文件已经显示出来。

paulie > ls -R
_minted-paulie/ paulie.log  paulie.tex  sub2/
paulie.aux  paulie.pdf  sub1/       test4.tex

./_minted-paulie:
24A365234AE4FDB0DF45E303775CC522F86A94839C3F0079C692F025CF998383.pygtex
4CF555EB3B29AA33E0D843E51AE34A9128809557B179BB64CA75D7BABAABEFE2.pygtex
D3967FFDA37461EF76D39CC2F8B40FCC93A75DBBC5197FD7555A181B29CF5ABC.pygtex
FD1CB1B77BD8698379A00F3A3BED29F678CA5D356D6BB9C6FD6DCBC2BA6DFEA3.pygtex
default-pyg-prefix.pygstyle
default.pygstyle

./sub1:
test1.tex   test2.tex

./sub2:
test2.tex   test3.tex   test4.tex

从输出中可以看到

在此处输入图片描述

仅输入第一个匹配项。我./在搜索路径的开头添加了一个隐式搜索,因此首先会找到工作目录中的文件,并且与其他情况一样,不会执行进一步的搜索。

答案2

您可以使用 来完成\inputminted[<options>]{<language>}{<filename>}

您可以在其中<filename>指示完整路径(请记住,对于 Windows 路径也使用\(而不是)。/

如果要设置固定路径,可以简单地创建一个新命令,例如:

\documentclass{article}

\usepackage{minted}
\newcommand{\myminted}[1]{\inputminted{latex}{/my/dir/#1}}

\begin{document}

\myminted{main.tex}

\end{document}

相关内容