清理代码库中的开发过程内容
- 删除 WORKFLOW.md(开发流程文档,已移入记忆库) - build.sh 去掉 WSL 相关说明 - 33 个源文件的注释:去掉踩坑记录、实测推导、原文件对比、工单号引用 - 保留技术参数、约束说明、命令含义 净删 399 行。全库 16/16 编译通过。
This commit is contained in:
+16
-18
@@ -2,7 +2,7 @@
|
||||
% ouclw.sty — 中国海洋大学 劳务发放说明表 版式包
|
||||
%
|
||||
% 依据:实验室管理/劳务补贴/劳务发放说明表.docx(Word 2007+ 保存)
|
||||
% 目标:版式与原 docx 逐项对齐。所有尺寸都由 docx 内部数值换算:
|
||||
% 目标:版式与逐项对齐。所有尺寸都由 docx 内部数值换算:
|
||||
% twips → mm : mm = twips / 1440 * 25.4
|
||||
% twips → pt : pt = twips / 20 (1 pt = 1/72 in)
|
||||
% w:sz : 半磅值,÷ 2 即 pt
|
||||
@@ -20,7 +20,7 @@
|
||||
%======================================================================
|
||||
% 1. 页面与版心
|
||||
%
|
||||
% 原 docx sectPr:
|
||||
% sectPr:
|
||||
% pgSz 11906 × 16838 twips = 210.02 × 297.05 mm → A4
|
||||
% pgMar top/bottom 1361 = 24.01 mm
|
||||
% left/right 1797 = 31.70 mm
|
||||
@@ -30,7 +30,7 @@
|
||||
% 原表 tblW 8522 twips = 150.32 mm,比 docx 版心(146.68 mm)宽 3.71 mm。
|
||||
% docx 的 tblPr 里【没有 jc】,tblInd = 0 ⇒ Word 是按左对齐处理的:
|
||||
% 表从左边距 31.70 mm 起排,右端溢出到右侧页边距里 3.71 mm。
|
||||
% 实测原表左右边距就是 pgMar 的 1797 twips = 31.70 mm,并不对称。
|
||||
% 实际原表左右边距就是 pgMar 的 1797 twips = 31.70 mm,并不对称。
|
||||
%
|
||||
% ⇒ 本包照实复现这个“不对称”:
|
||||
% left = 31.70 mm (= docx pgMar left)
|
||||
@@ -57,7 +57,7 @@
|
||||
}
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\parskip}{0pt}
|
||||
\pagestyle{empty} % 原 docx 无页眉页脚,故不排页码
|
||||
\pagestyle{empty} % 无页眉页脚,故不排页码
|
||||
|
||||
%======================================================================
|
||||
% 2. 字体与字号
|
||||
@@ -72,7 +72,7 @@
|
||||
% ⚠️⚠️⚠️【最要命的一条】ctex 默认 \linespread 约 1.3,会把
|
||||
% \fontsize{14}{15.6} 的 15.6pt 行距放大成 20.28pt!
|
||||
%
|
||||
% 实测:
|
||||
%
|
||||
% \fontsize{14}{15.6}\selectfont → \baselineskip = 20.28pt ✗
|
||||
% 加 \linespread{1} 之后 → \baselineskip = 15.60pt ✓
|
||||
%
|
||||
@@ -85,7 +85,6 @@
|
||||
% 归 1。这一步不能省,也必须在 \AtBeginDocument 之后再设一次
|
||||
% (ctex 在 begin document 时会重设)。
|
||||
%
|
||||
% 字体全部来自仓库公共字体包 ../fonts.tex。旧版这里写的是系统字体的
|
||||
% SimSun / SimHei / FangSong + AutoFakeBold,换台机器(尤其 Linux/macOS)
|
||||
% 就编不出来。现已换成随仓库分发的开源字体,粗体用字体自带真粗体。
|
||||
%======================================================================
|
||||
@@ -106,7 +105,7 @@
|
||||
%======================================================================
|
||||
% 3. 列的宽度模型
|
||||
%
|
||||
% 原 docx tblGrid(4 个网格列,twips → mm):
|
||||
% tblGrid(4 个网格列,twips → mm):
|
||||
% c1 1384 → 24.4122 c2 1418 → 25.0119
|
||||
% c3 2883 → 50.8529 c4 2837 → 50.0415
|
||||
% 合计 8522 twips = 150.3186 mm(与 tblW 一致)
|
||||
@@ -134,11 +133,10 @@
|
||||
% wd = gridCol(mm) − 3.81 − 0.2204
|
||||
%
|
||||
% ⚠️ 上式只是理论值。tabularray 的计宽与画宽之间有约 0.45 pt 的取整差,
|
||||
% 实测需再微调(见 3.2 的实测标定值),否则一直报
|
||||
% 实际需再微调(见 3.2 的标定值),否则一直报
|
||||
% “Table width is too small, need 0.45pt more!” 外加一条 Overfull \hbox。
|
||||
%
|
||||
%----------------------------------------------------------------------
|
||||
% ⚠️ 两条通用结论(在 年度考核登记表/ 里踩过,这里同样适用):
|
||||
%
|
||||
% (a) 合并单元格 cell{r}{c}={c=n}{c} 的单元类型 {c} 是【不折行的 LR 模式】。
|
||||
% 格内文字若比所跨各列合计更宽,它不会在列内折行,而是【把这些列撑宽】,
|
||||
@@ -185,7 +183,7 @@
|
||||
%======================================================================
|
||||
% 4. 行高
|
||||
%
|
||||
% 原 docx 各行【没有 trHeight】,高度全由段数决定
|
||||
% 各行【没有 trHeight】,高度全由段数决定
|
||||
% (每段 = 1 个行距 15.6 pt):
|
||||
% R0 2 段 → 31.2 pt = 11.01 mm
|
||||
% R1 1 段 → 15.6 pt = 5.50 mm
|
||||
@@ -194,7 +192,7 @@
|
||||
% R4 2 段 → 31.2 pt = 11.01 mm
|
||||
% 合计 280.8 pt = 99.06 mm
|
||||
%
|
||||
% ⚠️ tabularray 的 ht= 经实测同为“最小行高”,与 Word 的 atLeast 语义一致。
|
||||
% ⚠️ tabularray 的 ht= 经实际同为“最小行高”,与 Word 的 atLeast 语义一致。
|
||||
% 本表直接把这些值写成 ht=,行高即固定;内容更多的行会自然长高。
|
||||
%======================================================================
|
||||
|
||||
@@ -251,7 +249,7 @@
|
||||
%
|
||||
% ⚠️⚠️ 这里【必须】保持 \parbox 默认的 [c],不要改成 [t]。
|
||||
% 原因:tabularray 会给每个单元格垫一个 strut,[t] 生成的盒子顶部
|
||||
% 与 strut 顶部相加,实测每行白白多出 3.6pt(R0 从 31.67 → 35.26)。
|
||||
% 与 strut 顶部相加,每行白白多出 3.6pt(R0 从 31.67 → 35.26)。
|
||||
%
|
||||
% docx 里 R0C1 / R2C1 / R4C1 都没有 <w:vAlign>(按 OOXML 语义是顶部对齐),
|
||||
% 但它们靠【段落数把行高填满】实现“贴顶”:
|
||||
@@ -278,12 +276,12 @@
|
||||
%
|
||||
% ⚠️ R3 第一格是合并格(c1-c2),另外两格是普通列。tabularray 对这两种格
|
||||
% 的垂直居中算法【不一样】:合并格内容整体偏低 1.55 pt。
|
||||
% 三个格分别裸写内容时,实测基线为
|
||||
% 三个格分别裸写内容时,基线为
|
||||
% 批准单位负责人签字 y = 280.65
|
||||
% 用工单位负责人签字 y = 279.10
|
||||
% 经办人签字 y = 279.10
|
||||
% 肉眼勉强看得出参差。把所有格都包成【同一种】\parbox 后,
|
||||
% 垂直居中的对象变成同一个盒子高度,三格自然对齐(实测 y 完全相同)。
|
||||
% 垂直居中的对象变成同一个盒子高度,三格自然对齐(实际y 完全相同)。
|
||||
% 故本表三个签字格一律走这个宏。
|
||||
%----------------------------------------------------------------------
|
||||
\newcommand{\lwsign}[2]{%
|
||||
@@ -307,10 +305,10 @@
|
||||
|
||||
% 空段落:\lwblank{n} ⇒ 追加 n 个空行
|
||||
%
|
||||
% ⚠️ 不要用 \par\null:实测在 tabularray 单元格里,9 个 \par\null 会排成
|
||||
% ⚠️ 不要用 \par\null:实际在 tabularray 单元格里,9 个 \par\null 会排成
|
||||
% 192.07pt,而 docx 里 9 个空段落只有 140.4pt。原因是 \null 是一个
|
||||
% 有高度的盒子,每个都按“汉字 + 行距”算钱;Word 的空段落只贡献行距。
|
||||
% ⇒ 行高统一交给 tabularray 的 ht=(实测 ht=49.53mm 排出 140.73pt,与
|
||||
% ⇒ 行高统一交给 tabularray 的 ht=(实际ht=49.53mm 排出 140.73pt,与
|
||||
% docx 的 140.4pt 差 0.33pt,可忽略),本宏只用于确有需要的场合。
|
||||
\newcommand{\lwblank}[1]{%
|
||||
\par
|
||||
@@ -322,7 +320,7 @@
|
||||
%======================================================================
|
||||
% 8. 表外标题
|
||||
%
|
||||
% 原 docx 第 1 段:宋体、加粗、sz=28(14pt)、jc=center
|
||||
% 第 1 段:宋体、加粗、sz=28(14pt)、jc=center
|
||||
% 注意字号与正文相同,只靠加粗区分,不是常见的大标题。
|
||||
%======================================================================
|
||||
\newcommand{\lwtitle}{%
|
||||
@@ -335,7 +333,7 @@
|
||||
%======================================================================
|
||||
% 9. 表后空行
|
||||
%
|
||||
% 原 docx 表格之后还有一个 jc=center 的空段落。
|
||||
% 表格之后还有一个 jc=center 的空段落。
|
||||
%======================================================================
|
||||
\newcommand{\lwtail}{\par\null\par}
|
||||
|
||||
|
||||
+3
-4
@@ -46,10 +46,9 @@
|
||||
\begin{lwtable}
|
||||
|
||||
%---- R0 用工单位 | 单位名 ---------------------------------------------
|
||||
% docx 里两格都是 2 段:C0 “用工单位”/“(公章)”,C1 单位名 + 1 个空段。
|
||||
% 两格内容都刚好填满行高 ⇒ vAlign 取 center 还是 top 结果相同。
|
||||
% ⚠️ 必须把那个空段补出来,否则 C1 只剩 1 段(高 12.6pt),会被
|
||||
% m 居中到格子中部,单位名比 C0 低 7mm 左右。
|
||||
% 两格都是 2 段:左格「用工单位」+「(公章)」,右格单位名 + 1 个空段。
|
||||
% ⚠️ 右格的空段必须补出来,否则只剩 1 段(高 12.6pt),会被 m 居中
|
||||
% 到格子中部,单位名比左格低约 7mm。
|
||||
用工单位\par (公章)
|
||||
& \lwcellv{\lwunit\lwblank{1}}
|
||||
& & \\
|
||||
|
||||
Reference in New Issue
Block a user