Files
laoyang 9c959c0a2f 点名册:课程信息六项改为定宽三栏对齐 #26
原来用 \hfill 均分,各栏起点随内容长短漂移,两行对不齐:
第 2 栏差 42pt、第 3 栏差 55pt。

改为定宽三栏:版心 269mm 三等分,每栏 89.67mm,
标签占 18mm,值占 63.67mm。上下两行冒号位置严格重合。

值超长自动折行,不会压到下一栏。

验证:两行冒号位置 90.7 / 344.9 / 599.1 完全一致,差值 0.0。
全库 17/17 通过,点名册 error 0、Overfull 0。
2026-11-03 22:09:02 +08:00
..

点名册

中国海洋大学课程点名册,A4 横向,20 列考勤表。

编译

cd 点名册
xelatex 点名册.tex

或仓库根:bash build.sh 点名册

文件

文件 说明
点名册.tex 主文件,课程信息与学生名单改这里
oucroll.sty 版式包,一般不改

课程信息

\rollsetcourse{数字逻辑}            % 课程名称
\rollsetcno{080502101231}          % 课程号
\rollsetsno{25252029}              % 选课号
\rollsetcredit{2.5}                % 学分
\rollsetteacher{张远航}             % 任课教师
\rollsetterm{2025 学年 秋 季学期}    % 学年学期
命令 说明
\rollsetcourse{} 课程名称
\rollsetcno{} 课程号
\rollsetsno{} 选课号
\rollsetcredit{} 学分
\rollsetteacher{} 任课教师
\rollsetterm{} 学年学期

设完后调 \rollinfo 印出信息区:

\rolltitle{中国海洋大学点名册}
\rollsetcourse{数字逻辑}
...
\rollinfo

学生名单

每人一行,三列:序号、学号、姓名。后面 17 周留空手填。

\begin{rolltable}
  \rollrow{1}{2525201001}{陈嘉禾}
  \rollrow{2}{2525201002}{丁若彤}
  ...
\end{rolltable}
参数 说明
第 1 个 序号
第 2 个 学号
第 3 个 姓名

增删学生就增删 \rollrow 行。

一页能放多少行

A4 横向(297 × 210mm),上下边距 14/16mm,扣掉标题、课程信息、表头:

行高 一页行数
5.0mm 27 行
4.5mm(默认) 30 行
4.2mm 33 行

超过这个数会溢出到第二页。要放更多学生,两个办法:

  1. 改 oucroll.sty 里 row{2-Z}={ht=4.5mm} 的行高
  2. 分两页,每页 30 人,第二页重复表头

表头

20 列表头依次是:序号、学号、姓名、1、2、3 …… 17。

周次列只写数字,不写「第 N 周」,因为横向空间有限。

改列宽或改周数,编辑 oucroll.sty:

\newcommand{\rollwno}{9mm}          % 序号
\newcommand{\rollwid}{26mm}         % 学号
\newcommand{\rollwname}{20mm}       % 姓名
\newcommand{\rollwweek}{11.4734mm}  % 每周

改列宽时必须重算,让总和恰好等于版心宽:

版心 = 297 − 14×2 = 269mm
表宽 = Σwd + 2×0.4×20(colsep)+ 0.4pt×20(竖线) = Σwd + 18.82mm
∴ Σwd = 269 − 18.82 = 250.18mm

表尾说明

\rollfoot{标记方式自行约定(如「√」出席、「缺」缺席、「假」请假)。}

不要就删掉这一行。

版式

A4 横向 297 × 210 mm
边距 左右 14mm,上 12mm,下 16mm
标题 20pt 黑体居中
课程信息 10.5pt,两行三项,三栏定宽对齐
表格 20 列 × (1 表头 + N 数据行)
表头行高 7.0mm,数据行高 4.5mm
正文 10.5pt,表头 8pt,表体 10pt
不排页码

课程信息的对齐

六项按两行三栏排,栏位固定:

课程名称:xxx    课程号:xxx      选课号:xxx
学分:xxx        任课教师:xxx    学年学期:xxx

每栏宽 89.67mm(版心 269mm 三等分),标签占 18mm,值占 63.67mm。 上下两行的冒号位置严格对齐。

值超过 17 个汉字会自动折行,不会压到下一栏。要调整栏宽或标签宽度, 改 oucroll.sty:

\setlength{\rollcolw}{89.6667mm}   % 每栏宽
\setlength{\rolllabw}{18mm}        % 标签宽
\setlength{\rollvalw}{63.6667mm}   % 值宽

三者关系:rollvalw = rollcolw − rolllabw − 8mm(8mm 是栏间余量)。

注意

示例学生名单是虚构数据,使用时全部替换。