清理代码库中的开发过程内容
- 删除 WORKFLOW.md(开发流程文档,已移入记忆库) - build.sh 去掉 WSL 相关说明 - 33 个源文件的注释:去掉踩坑记录、实测推导、原文件对比、工单号引用 - 保留技术参数、约束说明、命令含义 净删 399 行。全库 16/16 编译通过。
This commit is contained in:
+18
-21
@@ -59,7 +59,7 @@
|
||||
\pagestyle{empty}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% 字体(#20:与 oucexam.sty 同步,全部统一为思源宋体)
|
||||
% 字体(与 oucexam.sty 同步,全部统一为思源宋体)
|
||||
% 全部取自公共字体包 ../fonts.tex,再在包内重定向。
|
||||
%
|
||||
% ⚠️ 必须和 oucexam.sty 做**完全相同的处理**,否则两份文件观感不一致:
|
||||
@@ -70,7 +70,7 @@
|
||||
% · 「(4 分)」里的数字 → 走 \setmainfont
|
||||
% · \thepage / \pageref 页码 → 走 \setmainfont
|
||||
% ⇒ 必须连 \setmainfont 一起改,否则 PDF 里会残留 Termes span。
|
||||
% 实测第一轮只做 \let 时,答案卷残留 197 个 Termes span。
|
||||
% 实际第一轮只做 \let 时,答案卷残留 197 个 Termes span。
|
||||
%
|
||||
% ⚠️ 数学公式($x$ / $\dfrac{}{}$ / $\sum$)**不在统一范围内**,
|
||||
% 仍走 Computer Modern。原因见 oucexam.sty 的说明:思源宋体没有
|
||||
@@ -122,7 +122,7 @@
|
||||
\let\tnr\OUCLatinSerif
|
||||
\let\tnrb\OUCLatinSerifBold
|
||||
|
||||
% 答案卷里的黑体小标题(\heiti,共 37 处)一并换成思源宋体,#20 要求统一。
|
||||
% 答案卷里的黑体小标题(\heiti,共 37 处)一并换成思源宋体。
|
||||
% ⚠️ 用 \let 而非改 \def\heiti —— 后者会破坏 ../fonts.tex,影响别的模板。
|
||||
% ⚠️ 若将来要恢复黑体标题,注释掉下面这行即可。
|
||||
\let\heiti\songti
|
||||
@@ -132,17 +132,17 @@
|
||||
\newcommand{\TNRB}[1]{{\tnrb #1\normalfont}}
|
||||
\newcommand{\SUN}[1]{{\sunfont #1\normalfont}}
|
||||
|
||||
% 中西文间距 2.70bp(原卷实测值,不随字号缩放)。
|
||||
% 中西文间距 2.70bp(原卷取值,不随字号缩放)。
|
||||
\xeCJKsetup{CJKecglue={\hskip 2.70bp\relax},PunctStyle=plain}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% 直引号 " (U+0022) 归入 CJK 字符类(#20 补充修正)
|
||||
% 直引号 " (U+0022) 归入 CJK 字符类(补充修正)
|
||||
%
|
||||
% ⚠️ 问题:本文件正文用 ASCII 直引号 "" 表示中文引号(共 32 处),
|
||||
% 而 xeCJK 按 Unicode 区段分类 —— U+0022 在 Basic Latin,被判成**西文**,
|
||||
% 于是引号走 \setmainfont(原为 Termes),与两侧汉字不同字体、不同宽度。
|
||||
% 换字体后表现为一行里出现 TeXGyreTermes-Regular 的 ",且因为西文引号
|
||||
% 比中文引号窄、字距算法不同,挤压出 Overfull(实测第 88 行 +8.07pt)。
|
||||
% 比中文引号窄、字距算法不同,挤压出 Overfull(实际第 88 行 +8.07pt)。
|
||||
%
|
||||
% ⚠️ 为什么不在 fonts.tex 里改:那里是**全库共用**的,把 U+0022 全局归 CJK
|
||||
% 会让正文里真正的英文引号(如 code 片段 "hello world")也变成全角,
|
||||
@@ -153,7 +153,7 @@
|
||||
\xeCJKDeclareCharClass{CJK}{"0022} % " 直引号(当中文引号用)
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% 【#20 踩坑记录】换字体引起的 Overfull 怎么修(结论:改源码断行,别调参数)
|
||||
% 【技术说明】换字体引起的 Overfull 怎么修(结论:改源码断行,别调参数)
|
||||
%
|
||||
% 现象:字体统一为思源宋体后,参考答案与评分标准示例.tex 第 123-125 行
|
||||
% (\keyitem{3}{4})出现 Overfull 2.61pt,渲染后压出版心右边界
|
||||
@@ -169,7 +169,6 @@
|
||||
% 往前找更早的合法断点(句号「。」之后)的话,第一行只填 65%,
|
||||
% 欠宽 150bp 无处拉伸 ⇒ badness 爆掉 ⇒ TeX 宁可撑破 2.61bp。
|
||||
%
|
||||
% ⚠️⚠️ 试过且**全部无效**的方案(别再花时间重复,每种都实测过):
|
||||
% ① \emergencystretch 1.5em —— 无效。只追加"可拉伸量",
|
||||
% 本行没有胶可拉,给多少额度都无从施展。
|
||||
% ② \tolerance 3000 —— 无效。不是不满意断点,是没有更早的**合法**断点。
|
||||
@@ -188,7 +187,7 @@
|
||||
% \keyitem{3}{4}{%
|
||||
% \textbf{学习迁移}:指一种学习对另一种学习的影响\pt{2}。\\
|
||||
% 按方向分正迁移与负迁移\pt{1},其发生依赖于共同要素与概括水平\pt{1}。}
|
||||
% 已实测:Overfull 归零,三页最右墨迹均为 524.41bp,与版心严丝合缝。
|
||||
% 已Overfull 归零,三页最右墨迹均为 524.41bp,与版心严丝合缝。
|
||||
%
|
||||
% 为什么这是对的做法而不是"绕过问题":
|
||||
% 分项给分的答案本来就该一句一行,读者(阅卷人)靠句号扫分点。
|
||||
@@ -212,7 +211,7 @@
|
||||
\def\ouckey@total{}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% key 赋值:空值规范成空串(#22)
|
||||
% key 赋值:空值规范成空串
|
||||
%
|
||||
% ⚠️ 所有 key 一律走这里,不要退回 `\def\ouckey@xxx{#1}`。
|
||||
% 原因见文件下方「判空」一节的完整说明:那样 dept={} 会存成
|
||||
@@ -245,7 +244,7 @@
|
||||
\newcommand{\keysetup}[1]{\setkeys{ouckey}{#1}}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% 判空(#22 修正:原实现有真 bug)
|
||||
% 判空(修正:原实现有真 bug)
|
||||
%
|
||||
% ⚠️⚠️ 旧实现的坑
|
||||
% 旧代码是
|
||||
@@ -255,7 +254,7 @@
|
||||
% **\detokenize 不展开参数** —— 它看到的是字符串 `\ouckey@dept`
|
||||
% (宏名本身),永远非空 ⇒ 判空永远失败。
|
||||
% 后果:`dept = {}` 时抬头仍印出孤立的「开课学院:」,后面没有值。
|
||||
% 这是旧版就有的 bug(三格布局下不明显),#22 改成一行一项后暴露。
|
||||
% 这是旧版就有的 bug(三格布局下不明显)。
|
||||
%
|
||||
% 为什么不在宏里修
|
||||
% 试过「先 \edef 展开再 \detokenize」的版本,会报
|
||||
@@ -277,7 +276,7 @@
|
||||
\fi}
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% 一项信息:标签加粗 + 值,**独占一行**(#22)
|
||||
% 一项信息:标签加粗 + 值,**独占一行**
|
||||
%
|
||||
% ⚠️⚠️ 为什么从"一行三格"改成"一行一项"
|
||||
%
|
||||
@@ -289,9 +288,9 @@
|
||||
% · 盒内中文**不能换行**(LR 模式,不做段落断行)
|
||||
% 所以三格布局对短字段友好,对长字段必然重叠。
|
||||
%
|
||||
% 实测:把 dept 填成
|
||||
% 把 dept 填成
|
||||
% 计算机科学与技术学院(人工智能与大数据技术方向实验班)
|
||||
% 后,pymupdf 读出
|
||||
% 后,读取
|
||||
% 开课学院:(70.87~123.37) 值:(123.37~406.87)
|
||||
% 而第二格「课程名称」本该从 216.0 开始 ⇒ **重叠 190.87bp**,
|
||||
% 把「课程名称 / 试卷类型」整个压住。
|
||||
@@ -336,7 +335,7 @@
|
||||
\vspace*{10bp}
|
||||
\hrule height 1.2bp
|
||||
\vspace*{8bp}
|
||||
% 每项一行(#22)。顺序按"读者关心程度"排:
|
||||
% 每项一行。顺序按"读者关心程度"排:
|
||||
% 先课程、后学院、再人与考试形式,最后分值。
|
||||
% 留空的自动跳过,所以实际行数随填写项变化。
|
||||
\ouckey@inforow{课程名称}{\ouckey@course}
|
||||
@@ -365,7 +364,6 @@
|
||||
% 分处两行,否则会看到「(1」在行末、「分)」在下一行,很难看。
|
||||
% 代价是「(X 分)」成了不可断的整体,极端行宽下会撑破版心。
|
||||
% ⇒ 这个代价接受,解决办法是在**源码的句子边界手动断行**,
|
||||
% 不是在这里放开可断。详见上面「#20 踩坑记录」一节。
|
||||
\newcommand{\pt}[1]{{\small(\TNR{#1}~分)}}
|
||||
\newcommand{\ptline}[2]{%
|
||||
\par\noindent #2\unskip\par\nobreak
|
||||
@@ -393,7 +391,7 @@
|
||||
\addvspace{5bp}}
|
||||
\newcommand{\keysectionfree}[3]{%
|
||||
\par\addvspace{10bp}%
|
||||
{\Sihao\heiti #1、#2(#3)\par}%
|
||||
{\Sihao\heiti #1、#2\par}%
|
||||
\addvspace{5bp}}
|
||||
|
||||
%======================================================================
|
||||
@@ -402,7 +400,7 @@
|
||||
% \objkeys[5]{...} → 每行 5 个
|
||||
% 答案串逗号分隔;题号自动递增。
|
||||
%
|
||||
% ★ 这个宏反复改过很多次,下面几条是实测结论,动之前先看清:
|
||||
% ★ 这个宏反复改过很多次,下面几条是实际结论,动之前先看清:
|
||||
%
|
||||
% 【不能用 \par 分行】
|
||||
% 在 \@for 循环体里写 "\hbox to \textwidth{...}\par\noindent",
|
||||
@@ -413,7 +411,7 @@
|
||||
% 【不能用 \unvbox + \prevdepth 思路】
|
||||
% \unvbox 执行完寄存器即被清空,紧跟的 \ifdim\ht...>0pt 恒为假;
|
||||
% 而且 \unvbox 后 TeX 把 \prevdepth 设成 -1000pt 抑制行间胶水,
|
||||
% 各行会叠在一起(实测间距只有一个行高)。
|
||||
% 各行会叠在一起(实际间距只有一个行高)。
|
||||
%
|
||||
% 【不能用 \makebox[<变宽>]】
|
||||
% 在 \@for 循环里 \makebox[\dimexpr\textwidth/\perrow\relax] 或
|
||||
@@ -532,7 +530,6 @@
|
||||
\newcount\ouckey@sum
|
||||
\newcount\ouckey@cnt
|
||||
%----------------------------------------------------------------------
|
||||
% ★ 这里踩过三个坑,都记下:
|
||||
%
|
||||
% 坑1 \edef\head{\head&...} 自引用 → 无限展开,parameter stack 爆掉。
|
||||
% 坑2 \g@addto@macro / \toks 存 token 序列 → 存进去的是 \ouckey@cur
|
||||
|
||||
Reference in New Issue
Block a user