鑑於技術進步,是否有可能擴展 LaTeX 功能?

鑑於技術進步,是否有可能擴展 LaTeX 功能?

正如過去無數的問題/答案所指出的那樣,當存在參考文獻、TOC/LOF 等時,LaTeX 要求您至少編譯兩次。在什麼情況下您必須多次編譯文件?

在某些非常具體的案例中,避免這一額外步驟的努力已取得成功,例如 如何避免編譯兩次? 然而,這是我們今天所採取的做法,只需開發腳本和巨集來自動化此過程就足以減輕痛苦。

答案是[關於移至上一頁的問題]暗示早期電腦的記憶體限制是 TeX 最初如此建構的核心原因。稍後可能需要的資訊可以簡單地存放在任意數量的輔助文件中,並在進行下一次傳遞時引用。一旦頁面“完成”,編譯器就會忘記它。

我常常想:鑑於電腦處理和記憶體能力的進步,LaTeX 是否可能/現實/計劃在記憶體中保留更多文件以避免多次編譯?

將整個文件保存在記憶體中會佔用大量內存,並且某些非常大的文件可能無法走這條路(也許它必須是一種可選行為)。但排版的許多方面似乎都會受益於這種增強的編譯。

我意識到這觸及了 (La)TeX 是什麼以及它是如何構建的核心。這不是一個簡單的補丁;它可能需要重寫整個核心(或者確實如此?)。當然還有其他問題(這實際上會減少編譯時間嗎?);我很高興能參考另一個討論這個或相關問題的地方。 (LaTeX3 考慮過這個嗎?)

答案1

正如 Joseph 所說,這不是 Latex 的一個特性,而是 tex 的一個特性(與 xetex 和 luatex 共享),因此在任何稱為 Latex 的東西中沒有可行的方法來做到這一點。另外,我認為記憶體限制總體上並沒有那麼不同:人們的期望成長速度甚至快於硬體容量的成長速度。看到 tikz 外部化的需要,因為即使在現代硬體上,帶有一些 tikz 圖片的文檔很快就會佔用大量記憶體。

但這一切實際上都在一個名稱中,任何允許向前和向後引用的系統都在儲存訊息某處。您可能會認為Latex 將其儲存在磁碟上的.aux 檔案中,就像1970 年代那樣,但.aux 檔案可能位於SSD 上或主記憶體中的虛擬檔案系統上,並且存取它不必成為任何實際障礙,並且您評論說,您可以用 make 或 Latexmk 或 arara 或上下文或僅運行 Latex 4 次的批次檔替換“latex”,因此如果需要的話,用戶的最終效果可以是一次性編譯。

當然,只有當您能夠毫無錯誤地編寫完整的文件並且永遠不需要多次處理它時,一次性完成它才真正有好處。如果您使用編輯/編譯/預覽週期,這只是一個煩惱,因為它會減慢週期。

相關內容