哪些結構會導致文檔中的編譯時間過長?

哪些結構會導致文檔中的編譯時間過長?

我有一個朋友寫了一篇相當長的文檔。到目前為止,他已有大約 130 (PDF) 頁。他在 Windows 上使用 TexWorks,他的文件有時需要 2 - 3 分鐘才能編譯完成。

我不是問這麼長的文件這個時間是否正常。我知道這取決於很多因素,每台電腦都會有不同的時間,這取決於 CPU 等。

但我想知道如果文件中有很多構造,那麼 tex 檔案中的哪些構造會花費特別長的時間。

例如,我可以想像包含許多圖像會花費很多時間,因為每個外部文件都必須載入到文件中(假設draft未啟用)。

在他的文檔中,他也經常使用mbox連字符來防止連字符。如果給很多這樣的內容,是否會增加文件的編譯時間?

最後一個例子:他不知道該選項openright,因此\newpage在他想要在正確頁面上開啟新章節的任何地方都使用了該選項。這會導致額外的編譯時間嗎?

我希望我的問題夠清楚。

編輯:我在他的文檔中看到了另一件事。正如我看到的第一行\documentclass[all]{...}。我不知道這個選項的all存在。它達到我想像的效果嗎?它實際上啟用了所有可能的選項嗎?但這不是很矛盾嗎?例如對於parskiphalfparskip?這會損害性能嗎?我想像它就像 Java 中的那樣import *

答案1

我知道,由於涉及許多額外的考慮因素,數學可能比直接的文字花費更長的時間。包含圖像(pdf 或 mps 除外)格式也會增加編譯時間,因為這些需要處理,而不是簡單地放入程式碼中。

但 TeX 是一個排版引擎,雖然它是圖靈完備的,但當我們要求 TeX 做那些需要大量處理的事情時,它們不會特別有效。最立即浮現在腦海中的範例(由於其最近發布)是該qrcode軟體包,它使用 TeX 將文字字串轉換為二進位數據,然後從中建立圖形 QR 程式碼。 TeX 能夠完成此類任務,但並不是為此而設計的;因此,處理二維碼比處理簡單文字需要更長的時間。 (在這種情況下,時間並不長;qrcode看起來相當出色。但仍然如此。)

如同評論中所提到的,TeX 中的大量繪圖同樣需要更多時間。 tikz朋友也受此苦;不過,考慮到這些程式將 TeX 擴展到其原始範圍之外,它們的效率還是非常顯著的。 shapepar,儘管它使用 TeX 來達到其預期目的,但將 TeX 強制以奇怪且有創意的形狀排版段落,並且必須運行重複測試以確定如何最好地將給定文本適合這些形狀;因此,它通常比簡單地在正常的矩形段落中排版文字需要更長的運行時間。

最重要的是,TeX 的設計目的是將行分成段落,將段落分成頁面,將公式分成精美的排版單元;除此之外的任何事情都會變慢。

相關內容