有沒有辦法告訴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 路徑也使用\
(而不是)。/
如果你想設定固定路徑,你可以簡單地建立一個新命令,例如:
\documentclass{article}
\usepackage{minted}
\newcommand{\myminted}[1]{\inputminted{latex}{/my/dir/#1}}
\begin{document}
\myminted{main.tex}
\end{document}