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

154 lines
3.6 KiB
Markdown
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.
# 点名册
中国海洋大学课程点名册,A4 横向,20 列考勤表。
## 编译
```bash
cd 点名册
xelatex 点名册.tex
```
或仓库根:`bash build.sh 点名册`
## 文件
| 文件 | 说明 |
|---|---|
| `点名册.tex` | 主文件,课程信息与学生名单改这里 |
| `oucroll.sty` | 版式包,一般不改 |
## 课程信息
```latex
\rollsetcourse{数字逻辑} % 课程名称
\rollsetcno{080502101231} % 课程号
\rollsetsno{25252029} % 选课号
\rollsetcredit{2.5} % 学分
\rollsetteacher{张远航} % 任课教师
\rollsetterm{2025 学年 秋 季学期} % 学年学期
```
| 命令 | 说明 |
|---|---|
| `\rollsetcourse{}` | 课程名称 |
| `\rollsetcno{}` | 课程号 |
| `\rollsetsno{}` | 选课号 |
| `\rollsetcredit{}` | 学分 |
| `\rollsetteacher{}` | 任课教师 |
| `\rollsetterm{}` | 学年学期 |
设完后调 `\rollinfo` 印出信息区:
```latex
\rolltitle{中国海洋大学点名册}
\rollsetcourse{数字逻辑}
...
\rollinfo
```
## 学生名单
每人一行,三列:序号、学号、姓名。后面 17 周留空手填。
```latex
\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`:
```latex
\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
```
## 表尾说明
```latex
\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`:
```latex
\setlength{\rollcolw}{89.6667mm} % 每栏宽
\setlength{\rolllabw}{18mm} % 标签宽
\setlength{\rollvalw}{63.6667mm} % 值宽
```
三者关系:`rollvalw = rollcolw − rolllabw − 8mm`(8mm 是栏间余量)。
## 注意
示例学生名单是虚构数据,使用时全部替换。