2019 年,不用 CTEX 套裝的新理由
本文已加入專欄文章目錄,歸入「發行版與編輯器」文章系列。
因所含 latex3 版本太低,CTEX 套裝無法編譯 Elsevier 的新模板 els-cas-templates
。
建議 CTEX 套裝的用戶
- 確認自己是否必須使用
els-cas-templates
模板 - 如果必須使用,建議安裝發行版 TeX Live 2019
- 如果不能或不願安裝 TeX Live,可嘗試使用 CTEX 套裝里的包管理器更新全部宏包
(以下是冗長的補充信息)
[1] 本專欄已發過文章《2018年,為什麼不推薦使用 CTeX 套裝了》,本文是對它的補充。
[2] CTeX 是一個多義詞,見文章《我自己使用的中文 LaTeX 術語規約》。本文全篇使用全大寫的 CTEX,以突出正在使用的是「久失維護的 CTEX 套裝/發行版」這一義項。
[3] Elsevier 有 elsarticle
和 els-cas-templates
兩套模板名,它們均提交到了 CTAN、被發行版 TeX Live 和 MikTeX 收錄。
其中,els-cas-templates
是 2019 年 4 月新提交到 CTAN 的模板。Elsevier 官網的 LaTeX 使用指南頁面,仍主要介紹 elsarticle
,僅一處提及新模板
For more complex articles two additional class files and templates are available, single-column (cas-sc.cls) and double-column (cas-dc.cls). These can be downloaded from CTAN (els-cas-template.zip).
[4] 這個新提交的模板,使用了 latex3 的編程層(通過調用 expl3
宏包 ),特別是使用了宏 msg_term:n
(在 latex3 里這類宏又稱作函數)。CTEX 模板無法編譯這個模板,就體現在編譯得到報錯,稱函數 msg_term:n
未定義。
理一理相關的時間點
- 2012 年 3 月,CTEX v2.9.2.164 發布。這也是迄今為止的「最新版」CTEX。
- 2013 年 1 月,latex3 加入新函數
msg_term:n
。 - 2019 年,latex3 團隊把函數
msg_term:n
標記為棄用(deprecated)。 - 2020 年 1 月 1 日起,latex3 對函數
msg_term:n
的兼容性支持結束。
可以看到,以 msg_term:n
的生老病死看,CTEX 套裝落後了接近一圈。
[5] 關於函數 msg_term:n
的額外信息
- 因為已標記為棄用,目前在 latex3 編程層的文檔
texdoc interface3
里,l3msg
子包部分(對應於源碼文件l3msg.dtx
)已去掉對它的使用說明。 - 因為目前處在兼容性支持期間,latex3 的源碼文件
l3deprecation.sty
仍提供了該函數。在源碼文檔texdoc source3
,Sec. 53.9 中也可以見到。 - 改函數加入 latex3 和被標記為棄用的日期,都記錄在文件
l3obsolete.txt
中。(在線訪問,本地可通過texdoc l3obsolete
打開) 。
推薦閱讀: