会议预算表:其他费用字距收回,不再贴格线 #24

用户指出:「其他费用,五个字,不能跟那个格子一样高啊,这样字和表格的
线都连在一起了。」

## 问题

上一版为了让四字"填满 5 行",把 \\ 的行距拉到 \\[17bp],
结果文字块高 94bp,而合并格只有 81.9bp —— **文字块比格还高**,
头尾字距格线只剩 2.5bp,视觉上字和表格横线糊成一片。

## 修正

字距改 \\[4bp]。实测对比(9pt 字,合并格高 81.9bp):

   \\[17bp]  文字块 94bp   上下留白 2.5bp    ❌ 贴线
   \\[8bp]   文字块 67bp   上下留白 7.4bp    ⚠️ 偏挤
   \\[4bp]   文字块 56bp   上下留白 13.4bp   ✅ 采用
   不加参数  文字块 43bp   上下留白 19bp     ⚠️ 挤成一团,看不出竖排

## 验证(坐标实测)

   四字 y: 531.3~540.2 / 546.9~555.8 / 562.1~571.0 / 577.4~586.4
   合并格 y: 517.9 ~ 599.8   高 81.9 bp
   距上格线 13.4 bp   距下格线 13.4 bp   ← 完全对称居中

   1 页  error 0  Overfull 0  Underfull 0
   最右 521.58(版心限 521.57)  最下 710.30(版心底 742.65)
   表格宽 155.52 mm(版心 155.99 mm)

全库 15/15 通过。双端一致:
   WSL TeX Live 2025      1 页 err=0 over=0 under=0
   Windows TeX Live 2022  1 页 err=0 over=0 under=0

## 顺便记录

README 里加了字距对照表,说明为什么必须卡在 4bp,避免以后又调回大值。
This commit is contained in:
2026-10-30 20:17:03 +08:00
parent f42e6e398a
commit 2e79b00d50
3 changed files with 28 additions and 10 deletions
+13 -2
View File
@@ -119,9 +119,20 @@ xelatex 会议预算表.tex # 单次即可,无交叉引用
纵向合并和横向合并同时出现,报同样那串错。
本表因此全部改用 `cell{}` 矩阵语法(含纵向合并 `cell{21}{1}={r=5}{c}`)。
「其他费用」用 `\shortstack{其\\[17bp]他\\[17bp]费\\[17bp]用}` 逐字竖排,
「其他费用」用 `\shortstack{其\\[4bp]他\\[4bp]费\\[4bp]用}` 逐字竖排,
**不是** `\rotatebox{90}` 旋转——旋转只是把横排整句转个角度,
不是"上下排列"。字距 `\\[17bp]` 让四个字撑满 5 行高(约 82bp)。
不是"上下排列"。
#### 字距必须卡准,否则字会贴格线
合并格高 81.9bp,四字的文字块高度随字距变化(实测数据):
| 字距 | 文字块高 | 上下留白 | 观感 |
|---|---|---|---|
| `\\[17bp]` | 94bp | 2.5bp | ❌ 比格还高,字和表格线连成一片 |
| `\\[8bp]` | 67bp | 7.4bp | ⚠️ 偏挤 |
| **`\\[4bp]`** | **56bp** | **13.4bp** | ✅ 采用 |
| 不加参数 | 43bp | 19bp | ⚠️ 字挤成一小团,看不出竖排 |
⚠️ 拉字距不能用局部 `\baselineskip`——`\shortstack` 内部会重置它,
实测设 19bp 完全无效(字距仍是 11.6bp)。必须在 `\\` 上给可选参数。
Binary file not shown.
+15 -8
View File
@@ -113,14 +113,21 @@
% ⚠️ \shortstack 里的 \\ 是**普通换行**,tabularray 在 cell{} 语法下
% 不会把它误当行结束(旧版 \SetCell 语法下会崩,那是另一个坑)。
%
% ★ 字距按 5 行高(约 82bp)拉开:四字之间有 3 个间隔,
% 基础行距 12bp + \\[17bp] ≈ 29bp/字,总高约 87bp,正好填满格高。
% 做法:给 \\ 加可选参数显式指定额外行距。
% ⚠️ 不能靠局部设 \baselineskip —— \shortstack 内部会重置它,
% 实测设 19bp 无效(字距仍是 11.6bp)。
% ⚠️ 也不能用 \parbox{}{其\\他\\费\\用} —— 那会变成 4 个独立行盒子,
% tabularray 排版错乱(实测四个字跑到不同 y 段落)。
\shortstack{其\\[17bp]他\\[17bp]费\\[17bp]用} & 交通费 & & & & & \\
% ★ 字距取 4bp:文字块约 56bp,格高 82bp → **上下各留 13bp**,
% 既不贴格线,也能看出竖排拉开的效果。
%
% ⚠️⚠️ 字距不能给太大,会顶到格线。实测(9pt 字、格高 82bp):
% \\[17bp] → 文字块 94bp,**比格高还高**,头尾字距格线只有
% 2.5bp,视觉上字和表格线连成一片(用户指出过)
% \\[8bp] → 文字块 67bp,上下各留 7.4bp ← 仍偏挤
% \\[4bp] → 文字块 56bp,上下各留 13bp ← 采用
% 不加参数 → 文字块 43bp,上下各留 19bp(字挤成一小团,不算竖排)
%
% ⚠️ 不能靠局部设 \baselineskip —— \shortstack 内部会重置它,
% 实测设 19bp 无效(字距仍是 11.6bp)。必须在 \\ 上给可选参数。
% ⚠️ 也不能用 \parbox{}{其\\他\\费\\用} —— 会变成 4 个独立行盒子,
% tabularray 排版错乱,四个字跑到不同段落(实测)。
\shortstack{其\\[4bp]他\\[4bp]费\\[4bp]用} & 交通费 & & & & & \\
& 会议资料印刷费 & & & & & \\
& 会议室使用费 & & & & & \\
& 工作人员补助 & & & & & \\