如何使用 Latexmk 在 aux 和輸出目錄路徑中包含來源 tex 檔名?

如何使用 Latexmk 在 aux 和輸出目錄路徑中包含來源 tex 檔名?

假設我有三個目錄srcaux-dir、 、out-dir,都位於同一工作區目錄中work,以及一些獨立但格式相似的檔案bleb1.texbleb2.tex、 ... 位於src。我想配置latexmk編譯一些bleb<i>.tex文件bleb<i>.pdf,以便將輔助文件寫入bleb<i>的子目錄aux-dir,並將輸出文件(例如bleb<i>.pdf)寫入bleb<i>的子目錄out-dir。由於會有很多bleb<i>.tex文件,我想避免在第一次編譯每個bleb<i>.tex.

為此,我定義了一個自訂latexmk設定檔。work我知道在設定檔中,輔助檔案目標和輸出檔案目標可以分別通過變數$aux_dir和指定$out_dir,甚至latexmk可以方便地建立變數中指定的路徑(如果它們尚不存在)。然而,我不知道如何使子目錄名稱取決於bleb<i>來源 .tex 檔案的基本名稱。

除了覆蓋命令變數(例如 )之外,在設定檔中似乎無法存取任何占位符變數%A、等。我的第一次嘗試是更改為訪問原始檔名並將其插入到我自己的子例程中。我的第二次嘗試是嘗試將變數設定為包含要在鉤子上呼叫的自訂子程式中給出的檔案名稱的路徑。對於這兩種嘗試,預設不會接受對所有輔助檔案和輸出檔案的變更以及先前的變更。的文檔似乎沒有指定如何在設定檔中存取由 Latexmk 以任何其他方式傳遞的命令列參數(特別是來源檔案名稱)。在我的第三次嘗試中,我沒有更改和,而是嘗試更改我在第一次嘗試中對子例程內部進行的Perl 呼叫中的相應和標誌,但是,再次忽略這些標誌,只是將文件轉儲到.%R$latex = "latex %O %S"$latexinternal mylatex %A$aux_dir$out_dirmylatex$aux_dir$out_dir$$Pbasebefore_xlatexlatexmk$aux_dir$out_dirworklatexmk$aux_dir$out_dir-aux-directory-output-directorysystemlatexmylatexlatexmkwork

此時,我已經意識到,work由於可能出現的問題,例如,,我最初計劃的目錄結構一開始並不理想bibtex,但我已經花了足夠的時間嘗試讓最初的計劃實現我很好奇它是否可能,或者我誤解了latexmk.

答案1

此時,latexmk 不支援您所要求的內容。實施它是可能的;這將需要更改 Latexmk 在開始處理 tex 檔案之前使用的程式碼。現在

您所做的嘗試都太晚了,無法完成所需的工作。對給定的 .tex 檔案完成初始化後,目錄$aux_out和目錄$out_dir需要保持固定,並且為 Latexmk 所知。

相關內容