Files
ouc_latex_template/form2/劳务发放说明表.tex
T
laoyang e032aec228 新增劳务发放说明表 LaTeX 模板(form2/)#1
把实验室《劳务发放说明表》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
2026-10-26 16:18:58 +08:00

85 lines
3.7 KiB
TeX
Raw 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.
%======================================================================
% 中国海洋大学 劳务发放说明表
%
% 编译: 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}