Closed muzimuzhi closed 7 months ago
回想了一下最开始写这块组件的思路,是从 fduthesis
抄来的,见 fduthesis.dtx#L2923-L2935。 曾老师那个模板中各种嵌入的文字可以定死不动,但是呢,南大教务给的要求很模糊,经常有同学要灵活调整,我就给了个赋值接口 (._.)
实际上我也很迷糊,这些 c
量在绝大多数情况下是不用更改,是否要为了偶发情况全都改成 g
型……
我想的是,如果没有禁止多次设置某个选项,那么就不能把选项值存在常量里。哪怕大部分时候这些选项只设置一次。
如果有局部修改样式的需求,也许用 l
型更灵活,可以支持 {<local setting> <content>}
这样的用法。
我得去看一下 fduthesis
,看看它是不是也实际允许多次设置那些选项。
我得去看一下
fduthesis
,看看它是不是也实际允许多次设置那些选项
是没有的。大概复旦的规定有比较好的一致性,没有这种需求。
我把所有可能被修改的 c
型都改成了 l
型。仔细一想在这个点上纠结确实有点,蠢 orz
现在 check-declarations
只会报告 xeCJK
自身的误用,以及一处(我没头绪的)全局修改了 \@begindvi
的误用。
哇啊,rebase 把提交记录搞得好乱。就这样吧全都改好了。
先决条件
[X] 我已尝试更新模板版本
[X] 我已检索模板手册
[X] 我已检索项目 wiki
[X] 我已确认这个问题没有在其他 issues 中提出过。
期望的现象
会被修改的 token list variable,视修改是局部还是全局,应命名为
\l_..._tl
或\g_..._tl
。发生了什么
目前项目里大量使用形如
\c_..._tl
的 constant token list variable,它们有的不是 constant/常量,目前的命名不合适。constant 意味着创建同时赋值,且后续不应修改。默认没有硬性约束,使用
\debug_on:n { check-declarations }
能报告一些错误的用法。我没有完整检查,但
\c_@@_fmt_...tl
一类看起来都应该使用\l_@@_fmt_...tl
。 https://github.com/nju-lug/NJUThesis/blob/4bd5fd2bb37b767997e5025e4e41db71ae78a0fd/source/njuthesis.dtx#L2887-L2893最小工作示例
njuthesis 模板版本
v1.3.2
模板获取途径
使用包管理器从 CTAN 安装
操作系统
macOS
TeX 发行版
TeX Live 2023
编译程序
XeLaTeX
额外信息
texdoc interface3
(2024-02-20), sec. 1.1 Naming functions and variables, p. 3texdoc interface3
(2024-02-20), sec. 4.8 Debugging support, doc for\debug_on:n