Directorio para importar fragmentos acuñados

Directorio para importar fragmentos acuñados

¿Hay alguna manera de saber mintedimportar los fragmentos de un directorio determinado? Estoy buscando algo similar a cómo \graphicspath{{img/}}funciona con las imágenes.

En este momento, todos los archivos que necesito importar se mezclan con mis otros .texarchivos.

Respuesta1

La función no está disponible en la versión actual minted. Me temo que redefinir \inputmintedestá fuera de discusión, porque tiene diferentes definiciones según esté draftactivado o desactivado.

De todos modos, puedes definir fácilmente un contenedor alrededor de \inputminted. La sintaxis de \pathinputmintedes la misma que \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 es la estructura de directorios que configuré para el ejemplo, después de que el documento se haya compuesto una vez, por lo que los archivos de Pygments ya se muestran.

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 se ve en la salida

ingrese la descripción de la imagen aquí

sólo se ingresa el primer resultado. Agregué un implícito ./al comienzo de las rutas de búsqueda, por lo que primero se encuentra un archivo en el directorio de trabajo y, como en los otros casos, no se realizan más búsquedas.

Respuesta2

Puedes hacerlo con \inputminted[<options>]{<language>}{<filename>}.

En <filename>puedes indicar la ruta completa (recuerda usar \(no /) también para las rutas de Windows.

Si desea establecer una ruta fija, puede simplemente crear un nuevo comando, por ejemplo:

\documentclass{article}

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

\begin{document}

\myminted{main.tex}

\end{document}

información relacionada