点名册:课程信息六项改为定宽三栏对齐 #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。
This commit is contained in:
+24
-1
@@ -119,13 +119,36 @@ A4 横向(297 × 210mm),上下边距 14/16mm,扣掉标题、课程信息
|
||||
A4 横向 297 × 210 mm
|
||||
边距 左右 14mm,上 12mm,下 16mm
|
||||
标题 20pt 黑体居中
|
||||
课程信息 10.5pt,两行三项
|
||||
课程信息 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 是栏间余量)。
|
||||
|
||||
## 注意
|
||||
|
||||
示例学生名单是虚构数据,使用时全部替换。
|
||||
+42
-14
@@ -42,7 +42,7 @@
|
||||
\fontsize{10.5bp}{13bp}\selectfont}
|
||||
|
||||
\newcommand{\rolltitlefont}{\linespread{1}\relax\fontsize{20bp}{24bp}\selectfont}
|
||||
\newcommand{\rollinfofont} {\linespread{1}\relax\fontsize{10.5bp}{13bp}\selectfont}
|
||||
\newcommand{\rollinfofont} {\linespread{1}\relax\fontsize{10.5bp}{15bp}\selectfont}
|
||||
\newcommand{\rollheadfont} {\linespread{1}\relax\fontsize{8bp}{9.5bp}\selectfont}
|
||||
\newcommand{\rollcellfont} {\linespread{1}\relax\fontsize{10bp}{12.5bp}\selectfont}
|
||||
\newcommand{\rollweekfont} {\linespread{1}\relax\fontsize{7.5bp}{9bp}\selectfont}
|
||||
@@ -88,10 +88,6 @@
|
||||
\newcommand{\rollsetterm}[1]{\renewcommand{\rollterm}{#1}}
|
||||
\newcommand{\rollsetdept}[1]{\renewcommand{\rolldept}{#1}}
|
||||
|
||||
% 一项:标签(黑体) + 值
|
||||
\newcommand{\rollfield}[2]{%
|
||||
{\heiti #1}:#2}
|
||||
|
||||
%======================================================================
|
||||
% 五、标题
|
||||
%======================================================================
|
||||
@@ -103,18 +99,50 @@
|
||||
%======================================================================
|
||||
% 六、课程信息区
|
||||
%
|
||||
% 两行,每行三项,用 \hfill 撑开
|
||||
% 两行 × 三栏,定宽对齐。
|
||||
%
|
||||
% ⚠️ 不能用 \hfill 均分:\hfill 只均分行内剩余空间,各栏起点会随
|
||||
% 标签与值的长短前后漂移,六项在两行里对不上。
|
||||
%
|
||||
% ⚠️ 值用 \parbox 显式限宽,不用 tabular 的 p 列。
|
||||
% p 列在 xeCJK 下遇到全角标点(如「(」)时断行判定不稳定,
|
||||
% 实测同样列宽,有的内容断、有的不断。\parbox 加 \raggedright
|
||||
% 断行行为可预期。
|
||||
%======================================================================
|
||||
\newlength{\rollcolw}
|
||||
\setlength{\rollcolw}{89.6667mm} % 269mm / 3
|
||||
|
||||
\newlength{\rolllabw}
|
||||
\setlength{\rolllabw}{18mm} % 标签宽,「学年学期」四字 × 10.5bp ≈ 14.8mm
|
||||
|
||||
\newlength{\rollvalw}
|
||||
\setlength{\rollvalw}{63.6667mm} % 值宽 = 89.6667 − 18 − 8(栏间余量)
|
||||
|
||||
% 一栏:标签(定宽黑体)+ 冒号 + 值(定宽,超长自动换行)
|
||||
%
|
||||
% ⚠️ 值必须加 \sloppy。xeCJK 对全角标点(如「(」)前后有断行禁则,
|
||||
% 正常断行惩罚下 TeX 宁可溢出也不在此处断,表现为文字压到下一栏。
|
||||
% \sloppy 放宽 \tolerance,让它在下一个汉字边界断掉。
|
||||
\newcommand{\rollfield}[2]{%
|
||||
\makebox[\rolllabw][l]{\heiti #1}%
|
||||
\parbox[t]{\rollvalw}{\raggedright\sloppy :#2}}
|
||||
|
||||
% 三栏一行
|
||||
\newcommand{\rollinforow}[6]{%
|
||||
\noindent
|
||||
\rollfield{#1}{#2}\hspace*{8mm}%
|
||||
\rollfield{#3}{#4}\hspace*{8mm}%
|
||||
\rollfield{#5}{#6}\par}
|
||||
|
||||
\newcommand{\rollinfo}{%
|
||||
\begingroup\rollinfofont
|
||||
\noindent
|
||||
\rollfield{课程名称}{\rollcourse}\hfill
|
||||
\rollfield{课程号}{\rollcno}\hfill
|
||||
\rollfield{选课号}{\rollsno}\par\vspace*{1.2mm}
|
||||
\noindent
|
||||
\rollfield{学分}{\rollcredit}\hfill
|
||||
\rollfield{任课教师}{\rollteacher}\hfill
|
||||
\rollfield{学年学期}{\rollterm}\par
|
||||
\rollinforow{课程名称}{\rollcourse}%
|
||||
{课程号}{\rollcno}%
|
||||
{选课号}{\rollsno}%
|
||||
\vspace*{1.2mm}%
|
||||
\rollinforow{学分}{\rollcredit}%
|
||||
{任课教师}{\rollteacher}%
|
||||
{学年学期}{\rollterm}%
|
||||
\endgroup\vspace*{2.5mm}}
|
||||
|
||||
%======================================================================
|
||||
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user