清理代码库中的开发过程内容
- 删除 WORKFLOW.md(开发流程文档,已移入记忆库) - build.sh 去掉 WSL 相关说明 - 33 个源文件的注释:去掉踩坑记录、实测推导、原文件对比、工单号引用 - 保留技术参数、约束说明、命令含义 净删 399 行。全库 16/16 编译通过。
This commit is contained in:
+19
-21
@@ -17,12 +17,12 @@
|
||||
\RequirePackage{xeCJK}
|
||||
\RequirePackage{tabularray}
|
||||
% 注:不再需要 graphicx。早期版本用 \rotatebox 做「其他费用」竖排,
|
||||
% 现已改为 \shortstack 逐字竖排(#24 按用户意见修正),不再依赖 graphicx。
|
||||
% 现已改为 \shortstack 逐字竖排(修正),不再依赖 graphicx。
|
||||
|
||||
%======================================================================
|
||||
% 1. 页面
|
||||
%
|
||||
% 原 docx sectPr 实测(11906 x 16838 twips):
|
||||
% sectPr (11906 x 16838 twips):
|
||||
% 宽 210.01 mm 高 297.00 mm ← 标准 A4
|
||||
% top 2155 twips = 38.01 mm
|
||||
% bottom 1985 twips = 35.01 mm
|
||||
@@ -36,7 +36,7 @@
|
||||
%
|
||||
% ⚠️ 版心宽 = 210 - 28.01 - 26.00 = 155.99 mm
|
||||
% 而原表宽 169.12 mm,**超宽 13.12 mm**。
|
||||
% 原 docx 用 tblLayout=fixed 硬撑,实际会压进右侧页边距。
|
||||
% 用 tblLayout=fixed 硬撑,实际会压进右侧页边距。
|
||||
% ⇒ 本包把表格等比缩到 155.99 mm(系数 0.9224),
|
||||
% 列宽按比例重算,见第 3 节。这是唯一一处主动偏离原文件的地方。
|
||||
%======================================================================
|
||||
@@ -53,15 +53,15 @@
|
||||
}
|
||||
\setlength{\parindent}{0pt}
|
||||
\setlength{\parskip}{0pt}
|
||||
\pagestyle{empty} % 原 docx 无页眉页脚页码
|
||||
\pagestyle{empty} % 无页眉页脚页码
|
||||
|
||||
%======================================================================
|
||||
% 2. 字体
|
||||
%
|
||||
% 原 docx 用宋体 / 黑体。仓库规矩(#17):不用商业字体,
|
||||
% 用宋体 / 黑体。仓库规矩:不用商业字体,
|
||||
% 全部取自公共字体包 ../fonts.tex。
|
||||
%
|
||||
% ⚠️ 原表字号分布实测:
|
||||
% ⚠️ 原表字号分布
|
||||
% 22pt ×1 —— 标题「中国海洋大学会议预算表」
|
||||
% 9pt ×47 —— 表格内全部文字 + 三条说明
|
||||
% 无 12pt 段落,与课程大纲那套不同,别照抄那边的字号命令。
|
||||
@@ -77,7 +77,7 @@
|
||||
%======================================================================
|
||||
% 3. 表格列宽
|
||||
%
|
||||
% 原 docx 网格(tblGrid,单位 twips):
|
||||
% 网格(tblGrid,单位 twips):
|
||||
% [424, 2054, 790, 1262, 2056, 209, 2793] 合计 9588
|
||||
% 换算 mm(×25.4/1440):
|
||||
% [7.48, 36.23, 13.93, 22.26, 36.27, 3.69, 49.27] 合计 169.12
|
||||
@@ -92,19 +92,19 @@
|
||||
% ⚠️ 列定义**不能**放进宏再用 \OucMeetColspec 引用 —— tabularray 的
|
||||
% colspec 解析器要求字面量,报
|
||||
% Package tabularray Error: Unexpandable command ... inside Column type
|
||||
% ⇒ 直接写在下方的 colspec={...} 里(实测唯一可行写法)。
|
||||
% ⇒ 直接写在下方的 colspec={...} 里(实际唯一可行写法)。
|
||||
|
||||
%----------------------------------------------------------------------
|
||||
% 行高(#24 修正)
|
||||
% 行高(修正)
|
||||
%
|
||||
% ⚠️⚠️ 原 docx 的 28 行里**只有 R26 显式设了 trHeight**(567 exact = 10mm),
|
||||
% ⚠️⚠️ 的 28 行里**只有 R26 显式设了 trHeight**(567 exact = 10mm),
|
||||
% 其余 27 行都没设 —— 行高由内容自然撑开,9pt 字约 4.5~5mm。
|
||||
%
|
||||
% 第一版我给所有行硬设 ht=7.4mm(自己拍的数),结果:
|
||||
% 28 × 7.4 = 207.2mm,加标题区约 30mm + 说明约 25mm = 262mm
|
||||
% 而版心只有 224mm ⇒ **必然溢出一页**,说明文字被推到第 3 页。
|
||||
%
|
||||
% ⇒ 改为 row{2-Z} 不设 ht,让内容撑开(与原 docx 一致);
|
||||
% ⇒ 改为 row{2-Z} 不设 ht,让内容撑开(与一致);
|
||||
% 表头行(R6/R14 分节标题)和签署行(R26/R27)单独给最小高度,
|
||||
% 保证印章框有空间。
|
||||
%
|
||||
@@ -126,7 +126,6 @@
|
||||
% ! Illegal unit of measure (pt inserted.)
|
||||
% \__dim_eval_end:
|
||||
% 且**全部错误都定位到 \end{tblr}**,根本看不出是哪个格。
|
||||
% 最小复现(已验证):
|
||||
% \begin{tblr}{colspec={Q[c,m,wd=21mm] ...7列..., colsep=0.8mm}}
|
||||
% \SetCell[c=2]{c} A & \SetCell[c=5]{l} B \\
|
||||
% \end{tblr}
|
||||
@@ -136,7 +135,7 @@
|
||||
% cell{行}{列}={c=n}{对齐}
|
||||
% 被合并掉的格在内容里**留空**(写 `& &`),不要写 {}。
|
||||
%
|
||||
% ⚠️ 另有一个坑(#23):纵向合并 \SetCell[r=n] 与横向 \SetCell[c=m]
|
||||
% ⚠️ 另有一个坑:纵向合并 \SetCell[r=n] 与横向 \SetCell[c=m]
|
||||
% 不能出现在同一行,同样报上面那串错。本表因此完全不用纵向合并,
|
||||
% 「其他费用」改成竖排文字 + 该列留空(视觉上等价)。
|
||||
%======================================================================
|
||||
@@ -178,7 +177,7 @@
|
||||
% 写法:cell{21}{1}={r=5}{c} 声明纵向合并,
|
||||
% 内容用 \shortstack{其\\他\\费\\用} 逐字堆叠。
|
||||
% ⚠️ 不能用 \rotatebox{90} —— 那只是把整行文字旋转,
|
||||
% 仍然是"横向一句转个角度",不是你要的上下排列(#24 修正)。
|
||||
% 仍然是"横向一句转个角度",不是你要的上下排列(修正)。
|
||||
% ⚠️ 纵向合并也必须用 cell{} 矩阵语法。写成 \SetCell[r=5] 在
|
||||
% 内容里,会与同行的 \SetCell[c=n] 冲突报 Missing number。
|
||||
cell{21}{1}={r=5}{c},
|
||||
@@ -203,7 +202,7 @@
|
||||
% ⚠️⚠️ 为什么把签字栏从主表里拆出来
|
||||
%
|
||||
% 主表 R27/R28(意见+签字)无论怎么调都无法同时满足"不多列"和
|
||||
% "内容不丢失"。实测四种组合全失败:
|
||||
% "内容不丢失"。实际四种组合全失败:
|
||||
% 内容 8 段 + cell{27}{4}={c=4} → 右侧多一列(9 条竖线)
|
||||
% 内容 7 段 + cell{27}{4}={c=4} → 右侧多一列(9 条竖线)
|
||||
% 内容 2 段 + cell{27}{4}={c=4} → 列数对,但第 2 段内容被合并盖住消失
|
||||
@@ -238,7 +237,7 @@
|
||||
%======================================================================
|
||||
% 6. 标题与页首
|
||||
%======================================================================
|
||||
% 左上角「附件1」小字(原 docx 无字号设置,随正文 9pt)
|
||||
% 左上角「附件1」小字(无字号设置,随正文 9pt)
|
||||
\newcommand{\oucmeetattach}[1]{%
|
||||
\par\noindent{\Mn #1}\par\vspace*{4bp}}
|
||||
|
||||
@@ -248,16 +247,16 @@
|
||||
\vspace*{8bp}}
|
||||
|
||||
% 填表日期 / 金额单位 那一行(左右分列,中间留白)
|
||||
% 原 docx 用一串空格撑开,这里用 \hfill 更稳
|
||||
% 用一串空格撑开,这里用 \hfill 更稳
|
||||
\newcommand{\oucmeetdateline}[1]{%
|
||||
\par\noindent{\Mn #1}\par\vspace*{4bp}}
|
||||
|
||||
%======================================================================
|
||||
% 6. 表尾说明
|
||||
%
|
||||
% ⚠️ 悬挂缩进不能用 \leftmargin=2em —— 实测报
|
||||
% ⚠️ 悬挂缩进不能用 \leftmargin=2em —— 实际报
|
||||
% Overfull \hbox (26.71pt too wide)
|
||||
% 因为「1、」「2、」是**全角字符 + 顿号**,9pt 下实测宽约 2.4em,
|
||||
% 因为「1、」「2、」是**全角字符 + 顿号**,9pt 下实际宽约 2.4em,
|
||||
% 比 2em 宽,标签凸出到左边界外。⇒ \labelwidth 要给足 2.5em。
|
||||
%
|
||||
% ⚠️⚠️ \itemindent 不能设负值!
|
||||
@@ -276,7 +275,6 @@
|
||||
% 单条说明
|
||||
%
|
||||
% ⚠️ 为什么不用 list 环境:list 的 \leftmargin / \itemindent 组合极易
|
||||
% 把内容推出边界,而且**不报 Overfull**(踩过一次,文字跑到版心
|
||||
% 左外 13.45bp,日志里只有个无关的 5.1pt)。
|
||||
%
|
||||
% ⚠️ 也不要用 \hangindent 悬挂缩进。「2、」后面直接接正文,续行不需要
|
||||
@@ -285,7 +283,7 @@
|
||||
% ⇒ 就是普通的 \noindent + 段落,什么都不设。
|
||||
%
|
||||
% ⚠️⚠️ \tolerance / \emergencystretch 必须在**段落开始前**设置。
|
||||
% 写成 `\noindent` 之后再改无效(\noindent 已开段落,实测 5.1pt
|
||||
% 写成 `\noindent` 之后再改无效(\noindent 已开段落, 5.1pt
|
||||
% 的 Overfull 纹丝不动)。
|
||||
% ⇒ 这里用 \sloppy,它在内部改 \tolerance 和 \emergencystretch,
|
||||
% 且必须在 \par 之前调用 —— 下面 #1#2 之前就调了,有效。
|
||||
|
||||
+12
-17
@@ -10,7 +10,6 @@
|
||||
% ⚠️⚠️ 本文件的表格**只写内容,不写任何 \SetCell**。
|
||||
% 所有合并规则都在 oucmeeting.sty 的 oucmeettable 环境里,
|
||||
% 用 cell{行}{列}={c=n}{对齐} 矩阵式声明。
|
||||
% 原因(踩了两小时):在这套 7 列 Q[c,m,wd=…] + colsep 配置下,
|
||||
% 一写 \SetCell 就报一串 Missing number,且错误全指向 \end{tblr}。
|
||||
% 详见 sty 第 4 节的记录。
|
||||
%
|
||||
@@ -62,7 +61,6 @@
|
||||
% ---- R1~R6 基本信息 ----
|
||||
%
|
||||
% ⚠️⚠️ 每行必须写满 7 段(6 个 `&`),被 cell{} 合并掉的格**留空**。
|
||||
% 实测(最小复现):同样的 cell{} 配置下
|
||||
% 写 7 段 `甲 & & 乙 & & 丙 & & 丁` → 四个字全部正确
|
||||
% 写 4 段 `甲 & 乙 & 丙 & 丁` → **乙、丁 被吞掉**
|
||||
% ⇒ 段数 ≠ 列数时,多出来的内容会静默丢失,不报错。
|
||||
@@ -71,12 +69,11 @@
|
||||
% R2 的 cell 配置是 2+2+2+1,即
|
||||
% 格1(列1-2)=会议时间 格3(列3-4)=空值 格5(列5-6)=会议地点 格7(列7)=空值
|
||||
% 所以「会议地点」必须写在**第 5 段**,写在第 3 段就会挤到左边、
|
||||
% 与「会议时间」贴在一起(踩过)。
|
||||
会议名称 & & & & & & \\
|
||||
会议时间 & & & & 会议地点 & & \\
|
||||
% ⚠️ R3/R4 的填空横线用 \hspace 撑,宽度必须控制。
|
||||
% 跨 5 列约 122mm,三个选项各带一对(\hspace{3em})就要 6×3em=18em
|
||||
% 再加文字,实测撑到 529.7bp(版心止于 521.57),超 8bp。
|
||||
% 再加文字,撑到 529.7bp(版心止于 521.57),超 8bp。
|
||||
% ⇒ 单个填空收到 2.2em(约 7mm,手写两三个字够用)。
|
||||
会议类型 & & 国内业务会议(\hspace*{2.2em})\hspace*{1em}%
|
||||
国内管理会议(\hspace*{2.2em})\hspace*{1em}%
|
||||
@@ -109,24 +106,23 @@
|
||||
% 纵向合并由 sty 里的 cell{21}{1}={r=5}{c} 声明,
|
||||
% 这里用 \shortstack 让四个字上下堆叠。
|
||||
% ⚠️ 不能用 \rotatebox{90}:那只是把横排整句转个角度,
|
||||
% 不是"上下排列"(#24 按用户意见修正)。
|
||||
% 不是"上下排列"(修正)。
|
||||
% ⚠️ \shortstack 里的 \\ 是**普通换行**,tabularray 在 cell{} 语法下
|
||||
% 不会把它误当行结束(旧版 \SetCell 语法下会崩,那是另一个坑)。
|
||||
%
|
||||
% ★ 字距取 4bp:文字块约 56bp,格高 82bp → **上下各留 13bp**,
|
||||
% 既不贴格线,也能看出竖排拉开的效果。
|
||||
%
|
||||
% ⚠️⚠️ 字距不能给太大,会顶到格线。实测(9pt 字、格高 82bp):
|
||||
% ⚠️⚠️ 字距不能给太大,会顶到格线。(9pt 字、格高 82bp):
|
||||
% \\[17bp] → 文字块 94bp,**比格高还高**,头尾字距格线只有
|
||||
% 2.5bp,视觉上字和表格线连成一片(用户指出过)
|
||||
% \\[8bp] → 文字块 67bp,上下各留 7.4bp ← 仍偏挤
|
||||
% \\[4bp] → 文字块 56bp,上下各留 13bp ← 采用
|
||||
% 不加参数 → 文字块 43bp,上下各留 19bp(字挤成一小团,不算竖排)
|
||||
%
|
||||
% ⚠️ 不能靠局部设 \baselineskip —— \shortstack 内部会重置它,
|
||||
% 实测设 19bp 无效(字距仍是 11.6bp)。必须在 \\ 上给可选参数。
|
||||
% 实际设 19bp 无效(字距仍是 11.6bp)。必须在 \\ 上给可选参数。
|
||||
% ⚠️ 也不能用 \parbox{}{其\\他\\费\\用} —— 会变成 4 个独立行盒子,
|
||||
% tabularray 排版错乱,四个字跑到不同段落(实测)。
|
||||
% tabularray 排版错乱,四个字跑到不同段落(实际)。
|
||||
\shortstack{其\\[4bp]他\\[4bp]费\\[4bp]用} & 交通费 & & & & & \\
|
||||
& 会议资料印刷费 & & & & & \\
|
||||
& 会议室使用费 & & & & & \\
|
||||
@@ -138,8 +134,8 @@
|
||||
% R27~R28 意见与签字(跨 3+4)
|
||||
% ⚠️⚠️ 这里的 \hspace 会把**单元格撑宽,进而把表格右边框推出纸外**,
|
||||
% 而且文字本身仍在版心内 —— 所以逐 span 查文字查不出来,
|
||||
% 只有查竖线坐标才能发现(实测最右竖线跑到 526.40,版心止于 521.57)。
|
||||
% 实测数据:\hspace*{7em} → 超 4.83bp;4.5em → 仍超 4.83bp(跨列宽度已定死,
|
||||
% 只有查竖线坐标才能发现(实际最右竖线跑到 526.40,版心止于 521.57)。
|
||||
% 实际数据:\hspace*{7em} → 超 4.83bp;4.5em → 仍超 4.83bp(跨列宽度已定死,
|
||||
% hspace 只是让内容溢出单元格,不改列宽)。
|
||||
% ⇒ 该单元格内容必须能在一行内放下。「(签字) (盖章)」共 9 个全角字符
|
||||
% ≈ 9×9bp = 81bp,跨 4 列约 96mm = 272bp,够放,只要 hspace 不太大。
|
||||
@@ -148,7 +144,7 @@
|
||||
% ⚠️ 关于「校级领导意见」:源 .doc 的 R26 第二格里确实有**两个段落** ——
|
||||
% 「所在单位负责人意见:」和「校级领导意见:」,不是转换时多出来的
|
||||
% (用 LibreOffice 直接转 txt 核过,原文件就有)。
|
||||
% 但用户确认这份表不需要校级领导,故按用户意见删除。
|
||||
% 但用户确认这份表不需要校级领导,故删除。
|
||||
% ⚠️ 要恢复就把它加回来,且必须单独一行(源文件是两段,不是一行):
|
||||
% 所在单位负责人意见:\\ 校级领导意见:
|
||||
%
|
||||
@@ -159,9 +155,8 @@
|
||||
%
|
||||
% ⚠️⚠️ 为什么拆出去(很重要,别又改回主表里)
|
||||
%
|
||||
% 这两行放在主表里,无论怎么写都会出问题。四种组合全部实测过:
|
||||
% 这两行放在主表里,无论怎么写都会出问题。四种组合全部实际过:
|
||||
% 内容 8 段 + cell{27}{4}={c=4} → 右侧多一列(9 条竖线)❌
|
||||
% ← 用户指出的"多出一列"
|
||||
% 内容 7 段 + cell{27}{4}={c=4} → 右侧多一列(9 条竖线)❌
|
||||
% 内容 2 段 + cell{27}{4}={c=4} → 列数对了,但第 2 段落进第 2 列
|
||||
% 被 c=4 的合并盖住,内容消失 ❌
|
||||
@@ -180,14 +175,14 @@
|
||||
% 前 3 列 6.10+29.65+11.43 = 47.18mm(+colsep 4mm)
|
||||
% 后 4 列 18.18+29.65+3.00+40.10 = 91.02mm(+colsep 4mm)
|
||||
% ⚠️ 两列各自的 colsep 各算 2 个(左右各 1),所以实际宽度 = wd + 4mm
|
||||
% ⚠️⚠️ 第 1 格不要用 \hfill 推「(签字)」到右边 —— 实测会溢出格子:
|
||||
% ⚠️⚠️ 第 1 格不要用 \hfill 推「(签字)」到右边 —— 实际会溢出格子:
|
||||
% 第 1 格宽 51.71mm=146bp,「(签字)」36bp,\hfill 推到格尾后
|
||||
% 文字自身**超出单元格右边界**(tabularray 的格内容不自动裁剪),
|
||||
% 结果第一个「(签字)」跑到 199~265,跨过 232 的分界线,
|
||||
% 和第二个「(签字)」在 pymupdf 里连成一串(看着像只有一个)。
|
||||
% 和第二个「(签字)」连成一串(看着像只有一个)。
|
||||
% ⇒ 直接顶着格左边界排,前面补一点 \hspace 抵消全角括号的字形左空白。
|
||||
% (全角「(」的 ink 起点比盒起点靠左约 2.5bp,不加会略微超出
|
||||
% 版心左界 79.40 —— 实测 x=76.9)
|
||||
% 版心左界 79.40 —— 实际x=76.9)
|
||||
\begin{oucmeetsign}
|
||||
经费(项目)负责人意见: & 所在单位负责人意见: \\
|
||||
\hspace*{1mm}(签字) & \hspace*{1mm}(签字)\hspace*{5em}(盖章) \\
|
||||
|
||||
Reference in New Issue
Block a user