把 11 个模板里满篇的 × 换成一套连贯的虚构数据,让样张能看出排版效果。
虚构设定(跨模板统一):
- 数字逻辑 / 2025 秋 / 张远航 / 计算机科学与技术学院,教学日历、成绩构成
说明、试卷归档封面、试卷四份互相对得上
- 简历:张远航,1985.03,教授博导,论文/专利/项目/获奖全套虚构
- 年度考核:同一人的 2025 年度考核表,年度总结四段写满
- 执行大纲:刻意不套用上面那套(原件就是《信号与线性系统分析》的课,
强行改课程名会让章节体系、学时分配、思政案例全对不上)
假数据都留肉眼可辨标记:DOI 统一 10.9999/、专利号 ZL209999…、
软著 2024SR99999…、手机 138 0000 0000、邮箱 example.net。
签字/日期/评语栏仍然留空——编了就分不清该改哪儿。
修掉一个既有 bug(填充时才暴露):
年度考核登记表「出生年月」的值从来不显示,连字符都不在 PDF 里。
根因是 tabularray 的 cell{r}{c}={c=n} 里那个 c 是数据行的单元序号、
不是视觉列号,表头三处 c=2 要求该行吃 15 个视觉列而表只有 11 列,
超出部分静默丢弃。迷惑点:写 12 格丢值,写 9 格反而正常。
正解是表头不写 cell{},改用行内 \SetCell[c=n]{c},每行照常写满 11 格。
同时 R0 行原件本就装不下(前六字段 115.76mm,剩 42.20mm 要放
19.68mm 标签 + 17.22mm 值,但列宽被切成 15.31/1.38/25.51),
把标签折两行「出生/年月」解决,列宽一个没改。
README 同步:根 README 与 8 个模板 README 里「一律用 × 占位」的说法
已不成立,统一改为「示例内容全部虚构」,并说明哪些位置仍必须留空。
验证:12 个模板零 error,4 处基线警告未新增;干净副本重编页数一致;
PDF 正文 × 清零;真实信息零泄漏。
125 lines
5.7 KiB
TeX
125 lines
5.7 KiB
TeX
%======================================================================
|
||
% 中国海洋大学 信息科学与工程学部 试卷归档封面(理论课)
|
||
%
|
||
% 编译: xelatex 试卷归档封面.tex
|
||
%
|
||
% 本模板不含真人信息:课程名、课程号、选课号、班级、教师姓名一律用
|
||
% × 占位。填表时只改下面【第 1 节】。
|
||
%
|
||
% 版式来源:SynologyDrive/授课/数字逻辑/2025/归档/
|
||
% 附件1:信息科学与工程学院试卷封面(理论课).doc
|
||
% (原文件名与内文标题写的是「学院」,现按现行建制改为「学部」)
|
||
% 所有尺寸已在 oucksfm.sty 内注明换算过程;要改版式请改 sty。
|
||
%
|
||
% 与原 .doc 的差异(有意为之):
|
||
% · 原文件里的真实课程信息已全部换成 × 占位
|
||
% · 单位名「学院」按现行建制改为「学部」,标题相应改为
|
||
% 「信息科学与工程学部试卷归档封面」
|
||
% · 纸张、边距、表宽、行高、字号、字体一律照原值,未做任何调整
|
||
%======================================================================
|
||
\documentclass[UTF8,fontset=none]{ctexart}
|
||
\usepackage{oucksfm}
|
||
|
||
%======================================================================
|
||
% 1. 表内内容(填表时只改这一段)
|
||
%
|
||
% ⚠️ 左列标签是学部制式用语,一般不用改;只改右列的值。
|
||
%======================================================================
|
||
|
||
%---- 左列标签(11 个,与学部原表的字一模一样,含字间空格)------------
|
||
\newcommand{\sfmyearlabel} {学\quad 年} % 原文件用两个半角空格
|
||
\newcommand{\sfmtermlabel} {学\quad 期}
|
||
\newcommand{\sfmcnolabel} {课程号}
|
||
\newcommand{\sfmsnolabel} {选课号}
|
||
\newcommand{\sfmcourselabel}{考试课程名称}
|
||
\newcommand{\sfmtypelabel} {课程类型}
|
||
\newcommand{\sfmmajorlabel} {面向专业}
|
||
\newcommand{\sfmgradelabel} {面向年级}
|
||
\newcommand{\sfmcountlabel} {试卷份数}
|
||
\newcommand{\sfmteacherlabel}{授课教师}
|
||
\newcommand{\sfmdatelabel} {日\quad 期}
|
||
|
||
%---- 右列的值(填表时改这里)------------------------------------------
|
||
%
|
||
% ⚠️⚠️【必须看】占位符「×」一律用 \ph{} 包起来,不要裸写 ×。
|
||
%
|
||
% 原因(在 年度考核登记表/ 里踩过):字体的 ASCII 区段由 fontspec 交给
|
||
% 西文字体(这里是 Times New Roman),而「×」U+00D7 属于 Latin-1,
|
||
% 会被判成 ASCII ⇒ 用 TNR 的 ×,那是 1em 宽的数学乘号,
|
||
% 与汉字的 1em 字宽【不一样】(TNR 的 × 略窄、位置也偏)。
|
||
% 结果是一串 × 撑不满预期宽度,与汉字混排时基线也参差。
|
||
%
|
||
% \ph{} 把它强制交回黑体(全角),宽度才与汉字一致。
|
||
% 本表全文黑体,所以用 \heiti 收尾即可。
|
||
%
|
||
% ⚠️ 填表时把自己的内容套进 \ph{}(每个值都要包,不要裸写):
|
||
% 例如 \newcommand{\sfmcourse}{\ph{数字逻辑}}。
|
||
%
|
||
% ⚠️ 本文件已填入**虚构示例**(学期 2025 秋、课程「数字逻辑」、任课教师
|
||
% 「张远航」等),用于演示一份填好的表长什么样。实际使用时整体替换:
|
||
% 下面每个 \ph{...} 的内容都改成自己的,不要保留示例值。
|
||
%----------------------------------------------------------------------
|
||
\newcommand{\ph}[1]{{\heiti #1\normalfont}}
|
||
|
||
% 学年。原文件写「2025年」,学期行写「秋季学期」。
|
||
% ⚠️ 注意:学部原表是「学年」+「2025年」这种写法,不是「2025—2026」。
|
||
% 若学校要求写成区间,改这里即可,行高涨一点不会溢出。
|
||
\newcommand{\sfmyear} {\ph{2025}年}
|
||
|
||
% 学期:秋 / 春,或「秋季学期」「春季学期」
|
||
\newcommand{\sfmterm} {\ph{秋}季学期}
|
||
|
||
% 课程号 / 选课号:纯数字,14pt(比其余值小一档,原表如此)
|
||
% ⚠️ 纯数字是真正的 ASCII,本来就该用 TNR,所以不用 \ph 包。
|
||
\newcommand{\sfmcno} {080502101231}
|
||
\newcommand{\sfmsno} {25252029}
|
||
|
||
% 考试课程名称
|
||
\newcommand{\sfmcourse}{\ph{数字逻辑}}
|
||
|
||
% 课程类型:专业课 / 公共基础课 / 通识课 …
|
||
\newcommand{\sfmtype} {\ph{专业课}}
|
||
|
||
% 面向专业。多个专业之间用「、」隔开。
|
||
% ⚠️⚠️ 这一格是全表唯一的高行(32.844mm),能容 3 行 16pt 文字。
|
||
% 专业名超过 3 行会自动把行撑高,整表就顶出版心了——届时请把
|
||
% oucksfm.sty 里 row{7} 的 ht 改大,或者把专业名精简。
|
||
\newcommand{\sfmmajor}{%
|
||
\ph{计算机科学与技术}、\ph{软件工程}、\ph{智能科学与技术}、\ph{数据科学}、\ph{电子信息工程}}
|
||
|
||
% 面向年级
|
||
\newcommand{\sfmgrade}{\ph{2023}级}
|
||
|
||
% 试卷份数
|
||
\newcommand{\sfmcount}{\ph{86}}
|
||
|
||
% 授课教师
|
||
\newcommand{\sfmteacher}{\ph{张远航}}
|
||
|
||
% 日期
|
||
\newcommand{\sfmdate}{\ph{2025}年\ph{01}月\ph{08}日星期\ph{三}}
|
||
|
||
%======================================================================
|
||
% 2. 正文
|
||
%======================================================================
|
||
\begin{document}
|
||
|
||
\sfmtitle{信息科学与工程学部试卷归档封面}
|
||
|
||
\begin{sfmtable}
|
||
\sfmlabel{\sfmyearlabel} & \sfmvalbig{\sfmyear} \\
|
||
\sfmlabel{\sfmtermlabel} & \sfmvalbig{\sfmterm} \\
|
||
\sfmlabel{\sfmcnolabel} & \sfmvalsmall{\sfmcno} \\
|
||
\sfmlabel{\sfmsnolabel} & \sfmvalsmall{\sfmsno} \\
|
||
\sfmlabel{\sfmcourselabel} & \sfmval{\sfmcourse} \\
|
||
\sfmlabel{\sfmtypelabel} & \sfmval{\sfmtype} \\
|
||
\sfmlabel{\sfmmajorlabel} & \sfmval{\sfmmajor} \\
|
||
\sfmlabel{\sfmgradelabel} & \sfmval{\sfmgrade} \\
|
||
\sfmlabel{\sfmcountlabel} & \sfmval{\sfmcount} \\
|
||
\sfmlabel{\sfmteacherlabel} & \sfmval{\sfmteacher} \\
|
||
\sfmlabel{\sfmdatelabel} & \sfmval{\sfmdate} \\
|
||
\end{sfmtable}
|
||
|
||
\sfmtail
|
||
|
||
\end{document} |