Diretório para importação de snippets criados

Diretório para importação de snippets criados

Existe uma maneira de mintedimportar os trechos de um determinado diretório? Estou procurando algo semelhante ao modo como \graphicspath{{img/}}funciona para imagens.

No momento, todos os arquivos que preciso importar são misturados com meus outros .texarquivos.

Responder1

O recurso não está disponível no atual minted. Receio que redefinir \inputmintedesteja fora de questão, porque tem definições diferentes consoante draftesteja ligado ou desligado.

De qualquer forma, você pode facilmente definir um wrapper em torno de \inputminted. A sintaxe de \pathinputmintedé a mesma de \inputminted:

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

Código completo

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

Esta é a estrutura de diretórios que configurei para o propósito do exemplo, depois que o documento foi digitado uma vez, para que os arquivos Pygments já sejam mostrados.

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

Como você pode ver na saída

insira a descrição da imagem aqui

apenas o primeiro hit é inserido. Adicionei um implícito ./no início dos caminhos de pesquisa, para que um arquivo no diretório de trabalho seja encontrado primeiro e, como nos outros casos, nenhuma pesquisa adicional seja realizada.

Responder2

Você pode fazer isso com \inputminted[<options>]{<language>}{<filename>}.

Em <filename>você pode indicar o caminho completo (lembre-se de usar \(não /) também para caminhos do Windows.

Se quiser definir um caminho fixo, você pode simplesmente criar um novo comando, por exemplo:

\documentclass{article}

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

\begin{document}

\myminted{main.tex}

\end{document}

informação relacionada