新增劳务发放说明表 LaTeX 模板(form2/) #1

Closed
opened 2026-10-26 08:18:56 +00:00 by laoyang · 1 comment
Owner

背景 / 诉求

把实验室现用的《劳务发放说明表》Word 版复刻为 LaTeX 模板,与仓库内已有的
exam/(试卷)、form/(年度考核登记表)保持同一套做法:自包含子目录、
版式尽量与原 docx 逐项对齐、模板本身不含真人信息。

原始文件

C:/Users/Yongquan/SynologyDrive/实验室管理/劳务补贴/劳务发放说明表.docx

具体要求

  1. 转换为 LaTeX 模板,新建 form2/ 目录存放(与 form/ 平级)。
  2. 表内文字改写:
    • 原文:聘请秦依康等2位研究生参与《观测数据驱动的渤海生态系统健康评估关键技术研发》项目的研究工作。
    • 改为:聘请xxx等x位研究生参与《xxx》项目的研究工作。
    • 即去掉真人姓名、真实人数、真实项目名,句式保持不变。
  3. 其余内容(用工单位、用工事由、三方签字、备注等)一律用 × 占位。
  4. 版式对齐原 docx:A4、页边距、表宽 150.32mm、4 列 / 5 行、合并跨度、
    14pt 宋体、15.6pt 行距、0.5pt 边框、1.905mm 单元格内边距。
  5. 补充 README.md(用法、参数、换算表、坑),并在根 README.md 目录表登记。

验收标准

  • xelatex 劳务发放说明表.tex 零错误、零警告(无 Overfull / Underfull),输出 1 页。
  • 表宽 150.32±0.25mm;表左边距 31.70±0.10mm(docx 该表超宽 3.71mm,按左对齐锚定,故左右不对称)。
  • 5 行行高分别对齐 11.01 / 5.50 / 49.53 / 22.01 / 11.01 mm(偏差 ≤0.25mm)。
  • 表内文字与 docx 逐项一致,且不含任何真人信息(姓名 / 人数 / 项目名 / 单位名)。
  • 三个签字格的标签基线、日期行基线完全重合。
  • 用 pdftocairo -svg + pdftotext -bbox 量化验证,不靠肉眼。
## 背景 / 诉求 把实验室现用的《劳务发放说明表》Word 版复刻为 LaTeX 模板,与仓库内已有的 `exam/`(试卷)、`form/`(年度考核登记表)保持同一套做法:自包含子目录、 版式尽量与原 docx 逐项对齐、模板本身不含真人信息。 ## 原始文件 `C:/Users/Yongquan/SynologyDrive/实验室管理/劳务补贴/劳务发放说明表.docx` ## 具体要求 1. 转换为 LaTeX 模板,新建 `form2/` 目录存放(与 `form/` 平级)。 2. 表内文字改写: - 原文:`聘请秦依康等2位研究生参与《观测数据驱动的渤海生态系统健康评估关键技术研发》项目的研究工作。` - 改为:`聘请xxx等x位研究生参与《xxx》项目的研究工作。` - 即去掉真人姓名、真实人数、真实项目名,**句式保持不变**。 3. 其余内容(用工单位、用工事由、三方签字、备注等)一律用 `×` 占位。 4. 版式对齐原 docx:A4、页边距、表宽 150.32mm、4 列 / 5 行、合并跨度、 14pt 宋体、15.6pt 行距、0.5pt 边框、1.905mm 单元格内边距。 5. 补充 `README.md`(用法、参数、换算表、坑),并在根 `README.md` 目录表登记。 ## 验收标准 - [ ] `xelatex 劳务发放说明表.tex` 零错误、零警告(无 Overfull / Underfull),输出 1 页。 - [ ] 表宽 150.32±0.25mm;表左边距 31.70±0.10mm(docx 该表超宽 3.71mm,按左对齐锚定,故左右不对称)。 - [ ] 5 行行高分别对齐 11.01 / 5.50 / 49.53 / 22.01 / 11.01 mm(偏差 ≤0.25mm)。 - [ ] 表内文字与 docx 逐项一致,且不含任何真人信息(姓名 / 人数 / 项目名 / 单位名)。 - [ ] 三个签字格的标签基线、日期行基线完全重合。 - [ ] 用 `pdftocairo -svg` + `pdftotext -bbox` 量化验证,不靠肉眼。
Author
Owner

已完成

提交 e032aec,已推送至 main(565ec7c..e032aec)。

交付文件

文件 说明
form2/ouclw.sty 版式包,16.7KB,全部尺寸附 twips→mm 换算注释
form2/劳务发放说明表.tex 主文件,填表只改 4 个变量(\lwunit \lwreason \lwnote \lwwork)
form2/劳务发放说明表.pdf 编译成品,1 页
form2/README.md 用法、换算表、四个坑、量化校验方法与实测数据
README.md 目录表登记 form2/

文字改写(按要求执行)

原文:聘请秦依康等2位研究生参与《观测数据驱动的渤海生态系统健康评估关键技术研发》项目的研究工作。
改为:聘请xxx等x位研究生参与《xxx》项目的研究工作。

句式一字未动,仅把真人姓名、人数、项目名换成占位。.tex 里写作
聘请{\songti ×××}等{\songti ×}位研究生参与《{\songti ×××}》项目的研究工作。
(× 是该系列模板惯用的占位符,与 form/ 一致)

量化验收结果

用 pdftocairo -svg 取矢量线条坐标 + pdftotext -bbox 取字坐标:

指标 实测 目标 差
表宽 150.137 mm 150.319 mm −0.18 mm
表左边界 31.662 mm 31.700 mm −0.04 mm
表右边界 181.799 mm 182.019 mm −0.22 mm
R0 用工单位 11.172 mm 11.01 mm +0.16 mm
R1 用工事由 5.668 mm 5.50 mm +0.17 mm
R2 具体工作 49.646 mm 49.53 mm +0.12 mm
R3 三方签字 22.159 mm 22.01 mm +0.15 mm
R4 备注 11.172 mm 11.01 mm +0.16 mm
  • 编译:零错误、零 Overfull / Underfull,输出 1 页。
  • 三个签字格标签基线完全重合(rel-top 均为 1.06 pt),日期行也完全重合(均为 47.69 pt)。
  • 表内文字与 docx 逐单元格核对一致,无真人信息残留。

与原 docx 的差异及原因

  1. 表宽差 0.18 mm、每行高 +0.15 mm
    tabularray 计宽按 n−1 根竖线、画宽按 n 根,系统性差 0.5 pt。为消除
    Overfull \hbox (0.50964pt),把 4 个列宽常量各减 0.0449 mm,代价是表宽
    缩了 0.18 mm(0.12%,肉眼不可辨)。

  2. 左右页边距不对称(31.70 / 27.98 mm),不是居中
    原表宽 150.32 mm 比 docx 版心 146.68 mm 宽 3.71 mm,而 tblPr 里没有
    jc、tblInd=0 ⇒ Word 按左对齐处理,表从左边距起排、右端溢进右边距。
    本模板照实复现。若改成左右等边距,表会整体左移 1.86 mm,与 Word 不符。

本次踩到并已写入 README 的四个坑

  1. ctex 默认 \linespread ≈ 1.3 会把 \fontsize{14}{15.6} 的行距放大成
    20.28 pt,导致 5 行行高全部 +30%,ht= 压不住。必须
    \linespread{1}\relax 前置,且要在 \AtBeginDocument 再执行一次。
  2. 合并格 {c} 是不折行的 LR 模式:文字超宽时撑宽整表而不是折行;
    且格内 \hsize 未重设,长文本按版心折行冲出格子。
  3. 合并格内容可用宽要补回 2·colsep·(n−1):漏算会让 \parbox 偏窄,
    长文本提前折行 —— 「批准单位负责人签字」(9 字 = 44.45 mm)就曾被折成
    两行,而 c1+c2 只有 41.37 mm,正确的是 45.1753 mm。
  4. \parbox[t] 与 tabularray 的 strut 叠加,每行白白多出 3.6 pt
    (R0 从 31.67 → 35.26)。原表 R0C1/R2C1 的“贴顶”其实是靠段落数把行高
    填满实现的,所以 \parbox 应保持 [c]、用 \lwblank{n} 补足段落数。

经验同步写入项目记忆 2025-10-23.md。

## 已完成 提交 `e032aec`,已推送至 `main`(`565ec7c..e032aec`)。 ### 交付文件 | 文件 | 说明 | | :-- | :-- | | `form2/ouclw.sty` | 版式包,16.7KB,全部尺寸附 twips→mm 换算注释 | | `form2/劳务发放说明表.tex` | 主文件,填表只改 4 个变量(`\lwunit` `\lwreason` `\lwnote` `\lwwork`) | | `form2/劳务发放说明表.pdf` | 编译成品,1 页 | | `form2/README.md` | 用法、换算表、四个坑、量化校验方法与实测数据 | | `README.md` | 目录表登记 `form2/` | ### 文字改写(按要求执行) ``` 原文:聘请秦依康等2位研究生参与《观测数据驱动的渤海生态系统健康评估关键技术研发》项目的研究工作。 改为:聘请xxx等x位研究生参与《xxx》项目的研究工作。 ``` 句式一字未动,仅把真人姓名、人数、项目名换成占位。`.tex` 里写作 `聘请{\songti ×××}等{\songti ×}位研究生参与《{\songti ×××}》项目的研究工作。` (`×` 是该系列模板惯用的占位符,与 `form/` 一致) ### 量化验收结果 用 `pdftocairo -svg` 取矢量线条坐标 + `pdftotext -bbox` 取字坐标: | 指标 | 实测 | 目标 | 差 | | :-- | --: | --: | --: | | 表宽 | 150.137 mm | 150.319 mm | −0.18 mm | | 表左边界 | 31.662 mm | 31.700 mm | −0.04 mm | | 表右边界 | 181.799 mm | 182.019 mm | −0.22 mm | | R0 用工单位 | 11.172 mm | 11.01 mm | +0.16 mm | | R1 用工事由 | 5.668 mm | 5.50 mm | +0.17 mm | | R2 具体工作 | 49.646 mm | 49.53 mm | +0.12 mm | | R3 三方签字 | 22.159 mm | 22.01 mm | +0.15 mm | | R4 备注 | 11.172 mm | 11.01 mm | +0.16 mm | - 编译:**零错误、零 Overfull / Underfull**,输出 1 页。 - 三个签字格标签基线完全重合(`rel-top` 均为 1.06 pt),日期行也完全重合(均为 47.69 pt)。 - 表内文字与 docx 逐单元格核对一致,无真人信息残留。 ### 与原 docx 的差异及原因 1. **表宽差 0.18 mm、每行高 +0.15 mm** tabularray 计宽按 n−1 根竖线、画宽按 n 根,系统性差 0.5 pt。为消除 `Overfull \hbox (0.50964pt)`,把 4 个列宽常量各减 0.0449 mm,代价是表宽 缩了 0.18 mm(0.12%,肉眼不可辨)。 2. **左右页边距不对称(31.70 / 27.98 mm),不是居中** 原表宽 150.32 mm 比 docx 版心 146.68 mm 宽 3.71 mm,而 `tblPr` 里没有 `jc`、`tblInd=0` ⇒ Word 按左对齐处理,表从左边距起排、右端溢进右边距。 本模板照实复现。若改成左右等边距,表会整体左移 1.86 mm,与 Word 不符。 ### 本次踩到并已写入 README 的四个坑 1. **ctex 默认 `\linespread ≈ 1.3`** 会把 `\fontsize{14}{15.6}` 的行距放大成 20.28 pt,导致 5 行行高全部 +30%,`ht=` 压不住。必须 `\linespread{1}\relax` 前置,且要在 `\AtBeginDocument` 再执行一次。 2. **合并格 `{c}` 是不折行的 LR 模式**:文字超宽时撑宽整表而不是折行; 且格内 `\hsize` 未重设,长文本按版心折行冲出格子。 3. **合并格内容可用宽要补回 `2·colsep·(n−1)`**:漏算会让 `\parbox` 偏窄, 长文本提前折行 —— 「批准单位负责人签字」(9 字 = 44.45 mm)就曾被折成 两行,而 c1+c2 只有 41.37 mm,正确的是 45.1753 mm。 4. **`\parbox[t]` 与 tabularray 的 strut 叠加**,每行白白多出 3.6 pt (R0 从 31.67 → 35.26)。原表 R0C1/R2C1 的“贴顶”其实是靠段落数把行高 填满实现的,所以 `\parbox` 应保持 `[c]`、用 `\lwblank{n}` 补足段落数。 经验同步写入项目记忆 `2025-10-23.md`。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/ouc_latex_template#1