Каталог для импорта отчеканенных фрагментов

Каталог для импорта отчеканенных фрагментов

Есть ли способ указать 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>вы можете указать полный путь (не забудьте использовать \(not /) также для путей Windows).

Если вы хотите задать фиксированный путь, вы можете просто создать новую команду, например:

\documentclass{article}

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

\begin{document}

\myminted{main.tex}

\end{document}

Связанный контент