Files
laoyang 3906bb49a4 清理代码库中的开发过程内容
- 删除 WORKFLOW.md(开发流程文档,已移入记忆库)
- build.sh 去掉 WSL 相关说明
- 33 个源文件的注释:去掉踩坑记录、实测推导、原文件对比、工单号引用
- 保留技术参数、约束说明、命令含义

净删 399 行。全库 16/16 编译通过。
2026-11-01 09:29:00 +08:00

208 lines
10 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
%======================================================================
% 成绩构成说明.tex — 中国海洋大学《成绩构成说明》
%
% 编译:在本目录下 xelatex 成绩构成说明.tex
% (不要从仓库根目录调用,fonts.tex 用的是相对路径)
%
% ------------------------------------------------------------------
% ⚠️ 本文件里所有课程信息、比例、日期**全是虚构占位符**,
% 不得把真实课程数据留在模板里提交。
% ------------------------------------------------------------------
%
% 填表只需改下面第 1 节的 5 个宏,正文不用动。
%======================================================================
\documentclass[UTF8,fontset=none,zihao=-4,a4paper]{ctexart}
\usepackage{oucgrade}
%======================================================================
% 【第 1 节】课程信息(改这里就够了)
%
% ⚠️ 比例必须**自洽**,正文里有一处自动校验会检查:
% 理论课比例 + 实验课比例 = 100%
% 平时成绩比例 + 期末成绩比例 = 理论课比例
% 作业比例 + 点名比例(+ 其它) = 平时成绩比例
% 若填错,编译时会在 log 里打出警告,并在 PDF 上印一个醒目的
% 「⚠ 比例不自洽」提示,防止带着算术错误归档。
%======================================================================
\newcommand{\grdcourse}{数字逻辑} % 课程名称
\newcommand{\grdyear}{2025} % 学年
\newcommand{\grdseason}{秋} % 季学期(春 / 秋)
\newcommand{\grdteacher}{张远航} % 任课教师
% ---- 总成绩构成(百分数,只填数字,不要带 %)----
\newcommand{\grdtheory}{80} % 理论课占总成绩
\newcommand{\grdlab}{20} % 实验课占总成绩
% ---- 理论课内部构成 ----
\newcommand{\grddaily}{30} % 平时成绩占理论课
\newcommand{\grdfinal}{70} % 期末考试成绩占理论课
% ---- 平时成绩内部构成(合计应等于 \grddaily)----
\newcommand{\grdhw}{20} % 作业占理论课
\newcommand{\grdattend}{10} % 点名占理论课
% ---- 实验课说明(一句话,写清由谁评定)----
\newcommand{\grdlabnote}{由实验课教师根据实验报告与实验操作评定。}
%======================================================================
% 比例自洽校验
%
% 模板会检查三组加法是否成立(校验代码在 oucgrade.sty §9):
% 理论课 + 实验课 = 100
% 平时 + 期末 = 理论课
% 作业 + 点名 = 平时
% 不通过时 log 里打 *** oucgrade: 比例不自洽 ***,文末印红字提示。
%
% 为什么值得做:成绩构成说明是要归档、要被教务抽查的文件,
% 比例加不起来是最常见也最难被自己发现的错误 —— 原件那句
% 「平时成绩占30%(作业占20%,点名占10%)」正是靠心算才看得出 20+10=30。
%======================================================================
\AtBeginDocument{\grdcheck
{\grdtheory}{\grdlab}{\grddaily}{\grdfinal}{\grdhw}{\grdattend}}
%======================================================================
\begin{document}
%======================================================================
% 【第 2 节】标题区
%======================================================================
\grdmaintitle{成绩构成说明}
\vspace{1.2mm}
\grdsubtitleline{\grdcourse\quad \grdyear~学年~\grdseason~季学期期末考试}
% 比例不平衡的警告印在这里(标题正下方),而不是文末 ——
% 文末会被签字栏挤到第 2 页,没人翻就等于没提示。
% 正常情况下这几行什么都不输出。
\grdwarnifbad
\vspace{2.0mm}
{\centering\rule{\textwidth}{0.5pt}\par}
\vspace{3.0mm}
%======================================================================
% 【第 3 节】总述
%
% 原件第一段是「理论课成绩占总成绩的80%。理论课成绩包括平时成绩、
% 期末考试成绩。……实验成绩占总成绩的20%。由实验课教师提供。」
% —— 一段里塞了四层比例关系,读起来要在脑子里做三次加减。
%
% 改写策略:总述只讲「几块、各占多少」,具体细分交给下面的表格。
% 这样总述是一句话,表格负责分解,各司其职。
%======================================================================
\grdpara{本课程成绩由\textbf{理论课}与\textbf{实验课}两部分构成,
分别占总成绩的 \grdtheory\% 与 \grdlab\%。两部分的具体构成与评定依据
见下表。}
%======================================================================
% 【第 4 节】成绩构成表
%
% 这是本模板相对原件最大的改进。
%
% 原件那句「理论课占80%。平时占30%(作业20%,点名10%),期末占70%」
% 藏着三层不同基准的百分数:
% 80% → 基准是总成绩
% 30% / 70% → 基准是**理论课**(不是总成绩)
% 20% / 10% → 基准也是理论课
% 于是实际占总成绩是 80×30% = 24%、80×20% = 16%……学生要心算三轮
% 才知道「作业到底折总成绩几分」。教务检查时这里也是最常被挑错的地方。
%
% 表格设计:左半给「占理论课」的原比例(老师填表时的口径),
% 右半用 \grdcalc 自动算出「占总成绩」的真实权重。两者并排,
% 不用做任何心算,也杜绝了算错的可能。
%======================================================================
\grdsec{一、成绩构成}
\begin{grdtable}
%------------------- 表头 -------------------
\grdth{项目} & \grdth{占本类} & \grdth{细分项目} &
\grdth{占本类} & \grdth{占总成绩} & \grdth{评定依据} \\
%------------------- 理论课(跨 2 行)-------------------
% ⚠️ 每行必须是**恰好 6 个格**。&\& 多一个就会多出一列,
% 整表撑破版心报 Overfull(实际多一个 & 后冲出 122pt)。
% ⚠️ 分项比例写在「评定依据」列、**不写在「细分项目」列**,是刻意的:
% 「细分项目」列可用宽只有 26mm(62.9bp),而「平时成绩(作业 20%、
% 点名 10%)」累计约 155bp,按中文避头尾规则必然折 **3 行**(56.2pt)。
% 但「理论课」是跨 2 行(r=2)的格,格高只有 2×7.5mm = 54.73pt,
% 而 **tabularray 的跨行格不会自己长高,只会让内容溢出格线** ——
% 实际第 3 行「10%)」的墨迹底离行线只剩 0.90pt(0.32mm),
% 同一张表其他行的间距是 4.97pt(1.75mm),一眼看得出挤。
% 仅画外框时那里本来没有线,缺陷被完全掩盖;画满全格线后才暴露。
% 「评定依据」列 29.4mm(74.17bp)放「作业 20% / 点名 10%」只折 2 行
% (34bp),进 54.73pt 的格绰绰有余。信息一点没少,只是换了格。
\SetCell[r=2]{c} \grdtd{理论课}
& \SetCell[r=2]{c} \grdtd{\grdtheory\%}
& \grdtd{平时成绩(作业 \grdhw\%、点名 \grdattend\%)}
& \grdtd{\grddaily\%}
& \grdtd{\grdcalc{\grdtheory}{\grddaily}\%}
& \grdtd{作业 + 出勤} \\
& & \grdtd{期末} & \grdtd{\grdfinal\%}
& \grdtd{\grdcalc{\grdtheory}{\grdfinal}\%}
& \grdtd{闭卷考试} \\
%------------------- 实验课 -------------------
\grdtd{实验课} & \grdtd{\grdlab\%}
& \grdtd{实验环节} & \grdtd{100\%}
& \grdtd{\grdlab\%} & \grdtd{实验教师评定} \\
%------------------- 合计 -------------------
% ⚠️ 跨 6 列时必须显式给 wd,否则用自然宽度不折行,报 Overfull。
% wd = 表宽 − 2×colsep = 146.5 − 2×1.905 = 142.69mm
% (跨列格的 colsep 只算首尾各一个,不按每列算)
\SetCell[c=6]{m,wd=142.34mm}
\grdtd{\textbf{合计占总成绩 100\%:}理论课 \grdtheory\%
(平时 \grdcalc{\grdtheory}{\grddaily}\% +
期末 \grdcalc{\grdtheory}{\grdfinal}\%)+ 实验课 \grdlab\%} \\
\end{grdtable}
%======================================================================
% 【第 5 节】分项说明
%
% 表格给数字,这一节给「怎么算」。原件缺这一层——学生看到
% 「作业占20%」并不知道是按几次作业平均、缺交怎么算。
% 这里留成占位文字,任课教师按自己课程的规则填写。
%======================================================================
\grdsec{二、分项说明}
\grdpara{\textbf{平时成绩}(占理论课 \grddaily\%)由以下各项累计:}
\begin{grdlist}
\grditem{作业(\grdhw\%)}{:按章布置,取各次作业成绩的算术平均;
缺交一次扣该次成绩的 20\%,抄袭该次作业按 0 分计。}
\grditem{点名(\grdattend\%)}{:随机抽查出勤,缺席一次扣 5 分,
累计缺席达 3 次者该项记 0 分。}
\end{grdlist}
\grdpara{\textbf{期末考试成绩}(占理论课 \grdfinal\%):闭卷笔试,
卷面 100 分,按 \grdfinal\% 折算计入总成绩。}
\grdpara{\textbf{实验成绩}(占总成绩 \grdlab\%):\grdlabnote}
%======================================================================
% 【第 6 节】成绩评定与异议
%
% 这一节原件没有,是本模板新增的。理由:成绩构成说明作为归档材料,
% 除了"怎么算"还应当说明"有异议怎么办",否则学生申诉时无据可依。
%
% 若你所在院系不要求,或需要压到一页,整节删掉即可
% (用 \grdomit 开关控制,不必删代码)。
%======================================================================
\def\grdwithini{1} % 1=印这一节,0=不印
\ifnum\grdwithini=1
\grdsec{三、成绩评定与异议}
\grdpara{总成绩按上述各项加权求和后,按学校规定的成绩记载办法取整记入。
学生对成绩有异议的,可在成绩公布后 5 个工作日内向开课单位提出书面复核
申请,逾期不再受理。}
\fi
%======================================================================
% 【第 7 节】签字栏
%
% ⚠️ 原件**没有**这一栏,是用户要求补的。
% 没有任课教师签字的成绩构成说明,在教务归档时不被认作有效文件,
% 所以这一节是必需的,不是装饰。
%======================================================================
\grdsignblock
\end{document}