用於導入鑄造片段的目錄

用於導入鑄造片段的目錄

有沒有辦法告訴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}

相關內容