tripman.pdf
在瀏覽 Don Knuth 在 TeX 上的出版品時,我參考了我的 MacTeX 發行版上的文件。技術人員可能知道,該文件解釋了測試的目的TRIP
以及如何使用測試,以及提供輸入文件的源代碼和正確的輸出。我決定(愚蠢地?)親自嘗試測試,這就是問題開始的地方。
我有兩個問題:
- 在附錄A的步驟2中,我該如何修改
INITEX
以便依照其中指定的參數設定?我聽說過“更改文件”,它可以修改weave
、tangle
、cweave
、 的輸出,並且ctangle
不更改原始文件WEB
或CWEB
文件,但據我了解,此類文件無法修改UNIX
可執行文件的行為。不修改TeX源碼, 如何才能做到這一點? - 步驟4運行的版本應該
INITEX
是步驟2未修改的版本還是修改後的版本?我認為,出於調試目的,應該使用修改後的版本,但我想確認一下。
非常感謝有關進行此測試的潛在挑戰的任何進一步資訊。我是 LaTeX 的頻繁用戶(儘管誠然不熟練),最近開始閱讀 Don Knuth 關於排版和排版的著作,並且在理解這些材料時可能需要一些幫助。
我的機器是Mac,運行MacTeX形式的TeXLive 2019。如果缺少任何其他所需信息,請在評論中索取。
謝謝。
這是我第一次涉足 TeX.SX,因此我的問題品質可能較差。對於在寫這個問題的過程中可能犯下的任何失禮,我深表歉意,並且我歡迎所有關於如何改進上述問題的建議。任何有關適當標記的建議將不勝感激。請溫柔一點。
答案1
的實施\TeX
是在 中完成的tex.web
。該檔案是一個通用實現,必須針對作業系統或一般情況下針對特定電腦和 Pascal 編譯器進行自訂。例如,必須更改檔案名稱約定以及輸入和輸出過程以滿足特定係統的規範,並且如果 Pascal 編譯器不允許語句else
中存在路徑case
,則必須更改原始程式碼中的多個位置。
因此,程式不僅讀取單個 文件,TANGLE
而且還可以處理此類文件的更改文件。因此,要編譯您需要的內容,其中包含針對您的機器的變更。WEAVE
WEB
\TeX
tex.web
tex.ch
要檢查更改檔案的變更是否不會\TeX
導致實作不相容,即相同的 .tex 檔案產生與其他\TeX
實作不同的輸出,一個條件是trip
必須通過測試。它需要一個特殊版本,INITEX
其中某些編譯時參數具有預定義值,以使測試的輸出具有可比性。因此,要執行trip
測試,您必須建立一個特殊版本\TeX
,這意味著您必須處理tex.web
更改檔案並使用 Pascal 編譯器編譯產生的 Pascal 輸出。
測試過程中詳細描述了本地更改檔案的其他更改,並解釋了測試步驟。結果必須與預設系統產生的輸出進行比較\TeX
。這些結果也列在測試程序中,並且它們可能會隨著每個新的
tex.web
.
您可以CTAN
找到相關文件和來源:
(1)https://ctan.org/tex-archive/systems/knuth/dist/tex包含tex.web
和tripman.tex
以及測試所需的所有文件trip
;
(2)https://ctan.org/tex-archive/systems/knuth/dist/web包含原始碼和TANGLE
手冊;WEAVE
WEB
(3)https://ctan.org/tex-archive/systems/knuth/local/tex/initex.ch
是一個未經測試且不完整的trip
測試更改文件範例。
(看https://ctan.org/tex-archive/systems/unix適用於不同 Pascal 編譯器的完整系統;但請注意,我不建議使用這些系統。
如果你下載
https://ctan.org/tex-archive/systems/knuth/dist/lib/webmac.tex您可以 (i) 在沒有更改文件的情況下運行weave tex.web
等weave tangle.web
,以獲得可以處理的 *.tex 文件,plain tex
以及 (ii) 閱讀通用程式。當然,您可以添加一個更改文件,然後看看會發生什麼。
如果你下載
https://ctan.org/tex-archive/systems/texlive/Source/texlive-20190408-source.tar.xztexk\web2c\triptrap
您可以找到包含該 texlive 系統的行程測試結果的 目錄。 (當然,您必須能夠處理xz
和 歸檔。)tar