Verzeichnis zum Importieren von geprägten Snippets

Verzeichnis zum Importieren von geprägten Snippets

Gibt es eine Möglichkeit, minteddie Snippets aus einem bestimmten Verzeichnis zu importieren? Ich suche nach etwas Ähnlichem wie \graphicspath{{img/}}bei Bildern.

Im Moment werden alle Dateien, die ich importieren muss, mit meinen anderen .texDateien vermischt.

Antwort1

Die Funktion ist im aktuellen nicht verfügbar minted. Eine Neudefinition \inputmintedkommt leider nicht in Frage, da es je nachdem, ob draftsie ein- oder ausgeschaltet ist, unterschiedliche Definitionen gibt.

Wie dem auch sei, Sie können ganz einfach einen Wrapper um definieren \inputminted. Die Syntax von \pathinputmintedist die gleiche wie bei \inputminted:

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

Vollständiger Code

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

Dies ist die Verzeichnisstruktur, die ich für dieses Beispiel eingerichtet habe, nachdem das Dokument einmal gesetzt wurde, sodass die Pygments-Dateien bereits angezeigt werden.

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

Wie Sie aus der Ausgabe sehen

Bildbeschreibung hier eingeben

Es wird nur der erste Treffer eingegeben. Ich habe ./am Anfang der Suchpfade ein implizites eingefügt, so dass zuerst eine Datei im Arbeitsverzeichnis gefunden wird und wie in den anderen Fällen nicht weiter gesucht wird.

Antwort2

Sie können dies mit tun \inputminted[<options>]{<language>}{<filename>}.

In <filename>können Sie den vollständigen Pfad angeben (denken Sie daran, \(nicht /) auch für Windows-Pfade zu verwenden).

Wenn Sie einen festen Pfad festlegen möchten, können Sie einfach einen neuen Befehl erstellen, zum Beispiel:

\documentclass{article}

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

\begin{document}

\myminted{main.tex}

\end{document}

verwandte Informationen