把实验室《劳务发放说明表》docx 复刻为 XeLaTeX 模板,与 exam/、form/ 同一套做法:
自包含子目录、版式逐项对齐原 docx、模板不含真人信息。
- form2/ouclw.sty 版式包:A4 + left=31.70mm + 表宽 150.32mm,
4 列 / 5 行、14pt 宋体、15.6pt 行距、0.5pt 边框、
1.905mm 单元格内边距,全部尺寸附 twips→mm 换算注释
- form2/劳务发放说明表.tex 主文件,填表只改 4 个变量
- form2/README.md 用法、换算表、四个坑、量化校验方法与实测数据
- README.md 目录表登记 form2/
文字改写:原文「聘请秦依康等2位研究生参与《观测数据驱动的渤海生态系统健康
评估关键技术研发》项目的研究工作。」改为「聘请xxx等x位研究生参与《xxx》
项目的研究工作。」,句式未动;其余内容一律 × 占位。
量化验收(pdftocairo -svg + pdftotext -bbox):
表宽 150.137mm(目标 150.319,差 -0.18)
表左 31.662mm(目标 31.700,差 -0.04)
R0 11.172 / R1 5.668 / R2 49.646 / R3 22.159 / R4 11.172 mm 全部达标
三个签字格标签基线、日期行基线完全重合
编译零错误、零 Overfull / Underfull,输出 1 页
本次踩到并记录在 README 的四个坑:
1. ctex 默认 \linespread≈1.3 会把 \fontsize{14}{15.6} 放大成 20.28pt
2. 合并格 {c} 是 LR 模式,不折行而是撑宽整表;\hsize 也未重设
3. 合并格内容可用宽要补回 2*colsep*(n-1),否则长文本提前折行
4. \parbox[t] 与 tabularray 的 strut 叠加会每行多出 3.6pt
85 lines
3.7 KiB
TeX
85 lines
3.7 KiB
TeX
%======================================================================
|
||
% 中国海洋大学 劳务发放说明表
|
||
%
|
||
% 编译: xelatex 劳务发放说明表.tex
|
||
%
|
||
% 本模板不含真人信息:姓名、人数、项目名称一律用 × 占位。
|
||
% 填表时只改下面【第 1 节】。
|
||
%
|
||
% 版式来源:SynologyDrive/实验室管理/劳务补贴/劳务发放说明表.docx
|
||
% 所有尺寸已在 ouclw.sty 内注明换算过程;要改版式请改 sty。
|
||
%======================================================================
|
||
\documentclass[UTF8,fontset=none]{ctexart}
|
||
\usepackage{ouclw}
|
||
|
||
%======================================================================
|
||
% 1. 表格内容(填表时只改这一段)
|
||
%======================================================================
|
||
\newcommand{\lwunit}{{\songti ××××××××}} % 用工单位(学部/学院)
|
||
\newcommand{\lwreason}{{\songti ××××}} % 用工事由
|
||
\newcommand{\lwnote}{} % 备注(可留空)
|
||
|
||
% 劳务人员从事的具体工作。
|
||
% ⚠️ 原来写的是“聘请秦依康等 2 位研究生参与《观测数据驱动的渤海生态系统
|
||
% 健康评估关键技术研发》项目的研究工作。”——真人姓名与真实项目名已换成
|
||
% × 占位,句式保持不变。
|
||
\newcommand{\lwwork}{%
|
||
聘请{\songti ×××}等{\songti ×}位研究生参与《{\songti ×××}》项目的研究工作。}
|
||
|
||
%======================================================================
|
||
% 2. 正文
|
||
%======================================================================
|
||
\begin{document}
|
||
|
||
\lwtitle
|
||
|
||
%======================================================================
|
||
% 3. 表格主体
|
||
%
|
||
% ⚠️⚠️ 每行写满 4 个格子 + 结尾 \\,跨度不用管(已写死在 ouclw.sty 里)。
|
||
% 若某格是合并的起点,它后面要补 (n−1) 个空 &,凑满 4 格。
|
||
%
|
||
% ⚠️⚠️⚠️ 合并格里的文字【必须】用 \lwfit / \lwcell 等定宽 \parbox 包起来。
|
||
% 因为 cell{r}{c}={c=n}{c} 的 {c} 是【不折行的 LR 模式】:
|
||
% 文字比所跨各列合计更宽时,它不折行,而是把列撑宽、整表超出版心。
|
||
%======================================================================
|
||
\begin{lwtable}
|
||
|
||
%---- R0 用工单位 | 单位名 ---------------------------------------------
|
||
% docx 里两格都是 2 段:C0 “用工单位”/“(公章)”,C1 单位名 + 1 个空段。
|
||
% 两格内容都刚好填满行高 ⇒ vAlign 取 center 还是 top 结果相同。
|
||
% ⚠️ 必须把那个空段补出来,否则 C1 只剩 1 段(高 12.6pt),会被
|
||
% m 居中到格子中部,单位名比 C0 低 7mm 左右。
|
||
用工单位\par (公章)
|
||
& \lwcellv{\lwunit\lwblank{1}}
|
||
& & \\
|
||
|
||
%---- R1 用工事由 | 事由 -----------------------------------------------
|
||
% 唯一一个 vAlign=center 的值格,只有 1 段。
|
||
用工事由
|
||
& \lwcellv{\lwreason}
|
||
& & \\
|
||
|
||
%---- R2 劳务人员从事的具体工作 | 说明 ---------------------------------
|
||
% C0 3 段(“劳务人员”/“从事的具”/“体工作”),vAlign=center。
|
||
% C1 共 9 段:长句 + 8 个空段 = 140.4pt,刚好等于行高 ⇒ 贴顶、下方留白。
|
||
% ⚠️ 这 8 个空段不能省,否则长句会被居中到 140pt 格里的一半处(下移 64pt)。
|
||
劳务人员\par 从事的具\par 体工作
|
||
& \lwcellv{\lwwork\lwblank{8}}
|
||
& & \\
|
||
|
||
%---- R3 三方签字 ------------------------------------------------------
|
||
\lwsign{\lwspanA}{批准单位负责人签字}
|
||
& & \lwsign{\lwwc}{用工单位负责人签字}
|
||
& \lwsign{\lwwd}{经办人签字} \\
|
||
|
||
%---- R4 备注 | 内容 --------------------------------------------------
|
||
备注
|
||
& \lwcell{\lwnote}
|
||
& & \\
|
||
|
||
\end{lwtable}
|
||
|
||
\lwtail
|
||
|
||
\end{document} |