Existe uma maneira de minted
importar 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 .tex
arquivos.
Responder1
O recurso não está disponível no atual minted
. Receio que redefinir \inputminted
esteja fora de questão, porque tem definições diferentes consoante draft
esteja 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
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}