本文已加入專欄文章目錄,歸入「發行版與編輯器」文章系列。

因所含 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 有 elsarticleels-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 未定義。

理一理相關的時間點

  1. 2012 年 3 月,CTEX v2.9.2.164 發布。這也是迄今為止的「最新版」CTEX。
  2. 2013 年 1 月,latex3 加入新函數 msg_term:n
  3. 2019 年,latex3 團隊把函數 msg_term:n 標記為棄用(deprecated)。
  4. 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 打開) 。

推薦閱讀:

相关文章