\importonly 僅用於處理單一導入?

\importonly 僅用於處理單一導入?

我正在編寫一個大文檔,我不使用 include/input,而是使用套件\subimport*中的命令import。這讓我可以很輕鬆地處理親戚的路徑。

然而,好處\include是我可以\includeonly只包含某些文件,而不會破壞引用。有類似的命令嗎\subimport

編輯

我正在嘗試編寫一些程式碼來解決這個問題,但我的 LaTeX 知識確實非常有限。我寫了一些奇怪的偽代碼之類的東西,可能有幫助嗎?

\makeatletter
\AtBeginDocument{%
  \let\origsubimport\subimport
  \newcommand\subimportonly[1]{\let\somevar=#1}
  \renewcommand\subimport[1]{\@ifstar
                             if #1 == letvar, use origsubimport*; 
                             o/w just include aux?
   }}
\makeatother

答案1

\subimport更新to的所有實例\subincludefrom,並從路徑中刪除「.tex」副檔名。

例如,這樣使用\subimport

\begin{document}
\subimport{intro/}{intro.tex}
\subimport{chap1/}{chap1.tex}
\subimport{discussion/}{discussion.tex}
\end{document}

會變成這樣:

\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}

至少編譯一次後,您現在只想包含討論(例如),您可以\includeonly在序言中添加 an ,如下所示:

\includeonly{discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}

並且該文件將僅包含discussion.tex。這使得編輯-編譯-視圖循環更快,因為不包含您不處理的部分,但使用 intro.tex 和 chap1.tex 包含的 *.aux 檔案來防止任何引用被破壞。

感謝@touhami 的評論,這個答案是透過(預)單獨編譯章節來加速編譯?這個答案是我們如何使用本地路徑進行分層包含?幫我把點連起來。

答案2

截至撰寫本文時,現有答案不適用於Debian/TeXLive 2019 (LaTeX2e <2020-02-02> patch level 5), import 6.0Windows/MiKTeX 2.9 (LaTeX2e <2019-10-01> patch level 3), import 6.1。兩者均已全面更新。

就在前兩天,2020-04-01,版本6.2發布,正在可在 CTAN 上取得。手動使用該sty文件,問題並未解決。

同時,我不得不發出(借用@Paul-Calcraft的例子)

\includeonly{discussion/discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}

也就是說,完整路徑位於includeonly.否則,會出現非常意外的warning (pdf backend): no pages of output.問候語,因為所有文件內容都在subincludefrom命令內。

相關內容