特定のディレクトリからスニペットをインポートする方法はありますか?画像の場合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>
完全なパスを指定できます ( Windows パスの場合も、\
(not ) を使用することを忘れないでください)。/
固定パスを設定したい場合は、次のように新しいコマンドを作成するだけです。
\documentclass{article}
\usepackage{minted}
\newcommand{\myminted}[1]{\inputminted{latex}{/my/dir/#1}}
\begin{document}
\myminted{main.tex}
\end{document}