全库 11 个模板的示例内容过度占位,通篇 ×,交付给人看时「多难看」。用户要求: 把文档过一遍,别全打叉,生成一些内容放进去。
×
现状统计(grep -c "×" 各模板 .tex):
grep -c "×"
.tex
简历/
课程教学日历/
试卷归档封面/
年度考核登记表/
成绩构成说明/
劳务发放说明表/
试卷/
课程执行大纲/
试卷归档目录/
幻灯片/
科技报告/
README.md
虚构人物:张远航,中国海洋大学信息科学与工程学部计算机科学与技术学院教授、博导, 方向「海洋遥感信息处理 / 机器学习与海洋大数据」。需填:
简历.tex
section_01_headline
section_02_work_experience
section_03_education
section_04_publications
section_05_patents
section_06_software
section_07_project
section_08_zhuanhua
section_09_jiaoyan
section_10_awards
年度考核登记表/、劳务发放说明表/、试卷归档封面/、成绩构成说明/、课程教学日历/: 把 × 换成虚构的示例填写内容,使文档呈现为一份已填好的样例(仍标注为示例)。
试卷/(学院 / 专业 / 任课教师 / 命题人)、课程执行大纲/(任课教师 / 教材作者)。
各模板 README.md 与文件头注释统一说明:本示例内容为虚构,仅演示版式,使用时整体替换。
×××
在把 11 个模板的 × 换成完整虚构示例之后,继续做了两件事。
填充内容之后,README 里「一律用 × / ×××× 占位」的说法已经不成立了, 留着会误导使用者以为正文还是叉号。改动:
××××
10.9999/
ZL209999…
138 0000 0000
example.net
简历/README.md
课程教学日历/README.md
成绩构成说明/README.md
年度考核登记表/README.md
劳务发放说明表/README.md
试卷归档封面/README.md
\ph{...}
\ph{}
试卷/README.md
课程执行大纲/README.md
这个 bug 是填充内容时才暴露的 —— 用 ××××.×× 占位时值也是空白, 所以一直没人发现。
××××.××
现象:年度考核登记表.pdf 第 1 页 R0 行,「出生年月」标签右侧空白, 1985.03 在 PDF 里连字符都不存在(不是被排到页外,是彻底没生成)。
年度考核登记表.pdf
1985.03
排查(做了 8 组最小复现):
cell{}
cell{1}{9}={c=3}
{c=2}{c,l}
\SetCell[c=2]{c}
根因:按钮在 tabularray 的 cell{r}{c}={c=n} 里,那个 c 是数据行的单元序号, 不是视觉列号。原表头三处 c=2 加起来要求该行吃掉 15 个视觉列,而表只有 11 列, 超出部分被静默丢弃 —— 丢的正好是最后一个值。 迷惑点在于「格子数对不对」完全不能当判断依据(写 9 格反而正常)。
cell{r}{c}={c=n}
c
c=2
修复:
ouckhtb.sty
\SetCell[c=n]{c}
年度考核登记表.tex
c9=15.31 / c10=1.38 / c11=25.51
修复后实测:出生/年月 分两行落在 x=409.7,1985.03 落在 x=460.8, 零 error,仍 2 页。
出生
年月
编译回归(12 项,与填充前的基线逐一对比):
4 处警告都是本次改动前就存在的,未新增。
PDF 正文占位符清零:简历 0、年度考核 0、教学日历 0、归档封面 0、劳务 0、成绩构成 0。
干净副本重编:11 个模板零 error,页数与原仓库完全一致。
真实信息零泄漏:杨永全 / 秦依康 / 13361281915 / 1985.10 / 菏泽 / 三沙路1299 全库零命中(幻灯片 .sty 里的「作者:杨永全」是模板版权署名,保留); yangyq 保留(那是仓库域名 code.yangyq.net)。
杨永全
秦依康
13361281915
1985.10
菏泽
三沙路1299
.sty
yangyq
code.yangyq.net
只提交真正改动的 PDF:科技报告/report.pdf 与 试卷归档目录/试卷归档目录.pdf 重编译后字节数只差 1~3(时间戳噪声),内容无变化,已 git checkout -- 还原,不混入无关改动。
科技报告/report.pdf
试卷归档目录/试卷归档目录.pdf
git checkout --
已提交 8984b93,推送 main。
8984b93
main
1. 全库 11 个模板的 × 换成完整虚构示例
虚构设定跨模板自洽:
假数据都留了肉眼可辨的标记,不会被误当真数据抄走: DOI 统一 10.9999/…、专利号 ZL209999…、软著 2024SR99999…、 手机 138 0000 0000、邮箱 example.net、转化受让单位带「(示例)」。
10.9999/…
2024SR99999…
签字 / 日期 / 评语 / 命题人 / 审核人 / 得分栏仍然留空 —— 这些要签字担责, 编个名字上去容易被误当真实署名。
2. 修掉一个既有 bug:年度考核登记表「出生年月」的值从来不显示
用 ××××.×× 占位时也是空白,所以原版一直没人发现,填内容才暴露。 (详细排查过程见上一条评论)
3. README 表述同步
根 README + 8 个模板 README 里「一律用 × 占位」的说法已不成立, 统一改为「示例内容全部虚构」,并说明哪些位置仍必须留空。
科技报告/report.pdf 与 试卷归档目录/试卷归档目录.pdf 重编后字节数只差 1~3 (时间戳噪声),内容无变化,已还原不提交。
需求已完成,关闭工单。
做完本单后用户反馈「PDF 里还是带很多叉」,复查发现 课程执行大纲.pdf 第 1 页仍有 4 个 ×:
课程执行大纲.pdf
××学部××学院
为什么漏:它不在 .tex 里,而是硬编码在 课程执行大纲/ouccourse.sty:223 的 \ccschool 命令中。本单当时的扫描范围是各模板的 .tex 正文文件,没有扫 .sty, 所以 .tex 里 2328+ 处都清掉了,这一处 4 个还在。
课程执行大纲/ouccourse.sty:223
\ccschool
⚠️ 教训:占位符扫描必须覆盖 .sty / .cls,不能只扫 .tex。样式文件里常把 「校名 + 院名」这类抬头写死成命令的默认输出,正文字里反而看不到。
.cls
修复:拆成两个名称宏,改院名只动导言区:
\renewcommand{\ccdepartment}{海洋地球科学学院} % 默认「信息科学与工程学部」 \renewcommand{\cccollege}{地质学系} % 默认「计算机科学与技术学院」
默认值取自该模板原有的虚构设定(陈立群 / 电子信息工程 / 2025 秋),与课程教学日历、 成绩构成说明、试卷保持一致。校名「中国海洋大学」真实,不虚构。
重编后 课程执行大纲.pdf 全文 × 归零,院名居中正常(两行 center 均为 304.1pt)。
修复后全库 PDF 只剩 5 处 ×,全部合法:参考答案 里的判断题符号 判断:× 3 处 + 数学乘号 0.3 × 85 2 处。
参考答案
判断:×
0.3 × 85
详细排查与验证过程见 #12。
漏网的那处 ××学部××学院 已在 #12 的 commit 69da5b4 中修掉:
69da5b4
课程执行大纲/ouccourse.sty
\ccdepartment
\cccollege
剩余的 5 处 × 都不是占位符:
占位符扫描必须覆盖 .sty / .cls,不能只扫 .tex。 本次就是因为只扫了 .tex,漏掉了样式文件里把「校名 + 院名」写死成命令默认输出的那一处。
全库 12 项与基线一致,课程执行大纲 仍是 5 页、err=0、 Over=1(该 1 条为改动前既有的英文断行问题,与本次无关)。
课程执行大纲
err=0
Over=1
No dependencies set.
The note is not visible to the blocked user.
现象 / 诉求
全库 11 个模板的示例内容过度占位,通篇
×,交付给人看时「多难看」。用户要求:把文档过一遍,别全打叉,生成一些内容放进去。
现状统计(
grep -c "×"各模板.tex):简历/课程教学日历/试卷归档封面/年度考核登记表/成绩构成说明/劳务发放说明表/试卷/课程执行大纲/试卷归档目录/、幻灯片/、科技报告/约束(不可突破)
README.md约定「姓名 / 学号 / 职工号 / 课程代码等一律用×或虚构值占位」——本次走「虚构值」这条路。范围
A.
简历/—— 编一份完整的虚构简历(重点,2328 个 ×)虚构人物:张远航,中国海洋大学信息科学与工程学部计算机科学与技术学院教授、博导,
方向「海洋遥感信息处理 / 机器学习与海洋大数据」。需填:
简历.tex:姓名、职称、出生年月、籍贯、政治面貌、手机、邮箱、住址section_01_headline:个人简介整段section_02_work_experience:3 段工作经历(含时间、职称、单位)section_03_education:4 段学历(含联合培养)section_04_publications:9 条论文(真实期刊名 + 编造标题与 DOI)section_05_patents:9 项专利(分「第一发明人」与「非第一发明人」两组)section_06_software:5 项软著section_07_project:4 个项目(含来源、角色、内容、关键词)section_08_zhuanhua:3 项成果转化section_09_jiaoyan:4 项教研项目section_10_awards:16 项获奖B. 表单类 5 个 —— 变成「填好的样例」
年度考核登记表/、劳务发放说明表/、试卷归档封面/、成绩构成说明/、课程教学日历/:把 × 换成虚构的示例填写内容,使文档呈现为一份已填好的样例(仍标注为示例)。
C. 零散占位补齐
试卷/(学院 / 专业 / 任课教师 / 命题人)、课程执行大纲/(任课教师 / 教材作者)。D. 文档
各模板
README.md与文件头注释统一说明:本示例内容为虚构,仅演示版式,使用时整体替换。验收标准
.tex中裸露的×××占位基本消除(保留必要的格式性占位说明)补充(同一需求的延续):文档层面表述同步 + 修掉填充过程中暴露的一个真 bug
在把 11 个模板的
×换成完整虚构示例之后,继续做了两件事。一、README 表述同步(否则文档自相矛盾)
填充内容之后,README 里「一律用
×/××××占位」的说法已经不成立了,留着会误导使用者以为正文还是叉号。改动:
README.md10.9999/、专利号ZL209999…、手机号138 0000 0000、邮箱example.net),说明哪些位置必须留空手填(签字、日期、评语栏)简历/README.md课程教学日历/README.md××××换成实际值;「真实数据零泄漏」一节重写(原文把「每个字段都换成了占位符」当成果,现在要改成「换掉」并解释为什么不打叉)成绩构成说明/README.md××××是脱敏引用,不是模板内容,避免读者混淆年度考核登记表/README.md劳务发放说明表/README.md试卷归档封面/README.md\ph{...}整个换掉」改成「保留\ph{},只换里面的字」—— 原说法会诱导用户删掉宏,导致宽度错乱试卷/README.md课程执行大纲/README.md二、修掉一个既有 bug:年度考核登记表「出生年月」的值从来不显示
这个 bug 是填充内容时才暴露的 —— 用
××××.××占位时值也是空白,所以一直没人发现。
现象:
年度考核登记表.pdf第 1 页 R0 行,「出生年月」标签右侧空白,1985.03在 PDF 里连字符都不存在(不是被排到页外,是彻底没生成)。排查(做了 8 组最小复现):
cell{}合并cell{1}{9}={c=3}/{c=2}{c,l}\SetCell[c=2]{c}根因:按钮在 tabularray 的
cell{r}{c}={c=n}里,那个c是数据行的单元序号,不是视觉列号。原表头三处
c=2加起来要求该行吃掉 15 个视觉列,而表只有 11 列,超出部分被静默丢弃 —— 丢的正好是最后一个值。
迷惑点在于「格子数对不对」完全不能当判断依据(写 9 格反而正常)。
修复:
ouckhtb.sty:表头 9 行cell{}全部删除,改在.tex数据行里用行内\SetCell[c=n]{c}。每行照常写满 11 格,跨度由行内标记自己声明。年度考核登记表.tex:R0 行同时修了一个原件固有的装不下问题 ——前六个字段已占 115.76mm,剩 42.20mm 要装「出生年月」标签(19.68mm)
c9=15.31 / c10=1.38 / c11=25.51切死,标签占不住 c9 只能整体右移到 c10-11,值就被挤出去。
处理:标签折两行「出生 / 年月」(每行 9.84mm,放得下),值回 c10-c11。
列宽一个都没改,只是让掉「标签必须一行」这个约束,换来值能显示。
修复后实测:
出生/年月分两行落在 x=409.7,1985.03落在 x=460.8,零 error,仍 2 页。
三、验证
编译回归(12 项,与填充前的基线逐一对比):
4 处警告都是本次改动前就存在的,未新增。
PDF 正文占位符清零:简历 0、年度考核 0、教学日历 0、归档封面 0、劳务 0、成绩构成 0。
干净副本重编:11 个模板零 error,页数与原仓库完全一致。
真实信息零泄漏:
杨永全/秦依康/13361281915/1985.10/菏泽/三沙路1299全库零命中(幻灯片.sty里的「作者:杨永全」是模板版权署名,保留);yangyq保留(那是仓库域名code.yangyq.net)。只提交真正改动的 PDF:
科技报告/report.pdf与试卷归档目录/试卷归档目录.pdf重编译后字节数只差 1~3(时间戳噪声),内容无变化,已
git checkout --还原,不混入无关改动。已提交
8984b93,推送main。做了什么
1. 全库 11 个模板的
×换成完整虚构示例虚构设定跨模板自洽:
试卷归档封面、试卷这四份是同一门课,放在一起看对得上
转化 3 / 教研 4 / 获奖 16 全套虚构
科研 320 万元 / 人才培养四段写满
强行改成数字逻辑,章节体系、学时分配、思政案例全对不上
假数据都留了肉眼可辨的标记,不会被误当真数据抄走:
DOI 统一
10.9999/…、专利号ZL209999…、软著2024SR99999…、手机
138 0000 0000、邮箱example.net、转化受让单位带「(示例)」。签字 / 日期 / 评语 / 命题人 / 审核人 / 得分栏仍然留空 —— 这些要签字担责,
编个名字上去容易被误当真实署名。
2. 修掉一个既有 bug:年度考核登记表「出生年月」的值从来不显示
用
××××.××占位时也是空白,所以原版一直没人发现,填内容才暴露。(详细排查过程见上一条评论)
3. README 表述同步
根 README + 8 个模板 README 里「一律用
×占位」的说法已不成立,统一改为「示例内容全部虚构」,并说明哪些位置仍必须留空。
验证结果
×计数杨永全秦依康133612819151985.10菏泽三沙路1299全库零命中(幻灯片.sty的「作者:杨永全」是版权署名,保留;yangyq是仓库域名,保留)科技报告/report.pdf与试卷归档目录/试卷归档目录.pdf重编后字节数只差 1~3(时间戳噪声),内容无变化,已还原不提交。
需求已完成,关闭工单。
补充:本单漏了一处 .sty 里的占位符
做完本单后用户反馈「PDF 里还是带很多叉」,复查发现
课程执行大纲.pdf第 1 页仍有 4 个×:为什么漏:它不在
.tex里,而是硬编码在课程执行大纲/ouccourse.sty:223的\ccschool命令中。本单当时的扫描范围是各模板的.tex正文文件,没有扫.sty,所以
.tex里 2328+ 处都清掉了,这一处 4 个还在。⚠️ 教训:占位符扫描必须覆盖
.sty/.cls,不能只扫.tex。样式文件里常把「校名 + 院名」这类抬头写死成命令的默认输出,正文字里反而看不到。
修复:拆成两个名称宏,改院名只动导言区:
默认值取自该模板原有的虚构设定(陈立群 / 电子信息工程 / 2025 秋),与课程教学日历、
成绩构成说明、试卷保持一致。校名「中国海洋大学」真实,不虚构。
重编后
课程执行大纲.pdf全文×归零,院名居中正常(两行 center 均为 304.1pt)。修复后全库 PDF 只剩 5 处
×,全部合法:参考答案里的判断题符号判断:×3 处 +数学乘号
0.3 × 852 处。详细排查与验证过程见 #12。
补做部分已完成,本次一并关闭
漏网的那处
××学部××学院已在 #12 的 commit69da5b4中修掉:课程执行大纲/ouccourse.sty:\ccschool拆成\ccdepartment/\cccollege两个名称宏,默认「信息科学与工程学部 / 计算机科学与技术学院」
课程执行大纲.pdf全文×归零(原 4 个)本单(#11)的最终结论
.tex正文占位符.sty里的硬编码占位符×剩余的 5 处
×都不是占位符:参考答案里的判断题符号判断:×—— 3 处(是答案,不能改)0.3 × 85—— 2 处(是运算,不能改)⚠️ 留给下次的教训
占位符扫描必须覆盖
.sty/.cls,不能只扫.tex。 本次就是因为只扫了.tex,漏掉了样式文件里把「校名 + 院名」写死成命令默认输出的那一处。编译回归
全库 12 项与基线一致,
课程执行大纲仍是 5 页、err=0、Over=1(该 1 条为改动前既有的英文断行问题,与本次无关)。