新增《会议预算表》LaTeX 模板 #24
源文件:微信收到的 会议预算表.doc(51712 字节,**OLE2 老式 .doc**, D0CF11E0 签名)。python-docx 读不了,处理链路: .doc --(LibreOffice headless)--> .docx --(python-docx)--> 结构 ## 新增文件 会议预算表/oucmeeting.sty 版式包(含全部 28 行合并规则) 会议预算表/会议预算表.tex 空表正文(只有内容,无 \SetCell) 会议预算表/README.md 用法 + 踩坑记录 ## 版式(实测) 页面 A4 210×297mm 边距 top 38.01 / bottom 35.01 / left 28.01 / right 26.00 mm 版心 155.99 × 223.98 mm 字号 标题 22pt,表格与说明 9pt 表格 28 行 × 7 列,边框 0.5pt,行高 5.6mm 四个边距都不常见,是原表为把 28 行塞进一页压出来的。照抄不"优化"。 ⚠️ 原表宽 169.12mm(tblGrid 9588 twips),**比分宽出版心 13.12mm**, 原 docx 靠 fixed 布局硬撑、实际压进页边距。本模板等比缩到版心内。 ## 三个踩了很久的坑(全部写进代码注释 + README) ### 1. 合并必须用矩阵式语法,不能写 \SetCell 在这套 7 列 Q[c,m,wd=…] + colsep=1.0mm 配置下,内容里一写 \SetCell[c=n] 就报: ! Missing number, treated as zero. ! 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} % 必崩 ✅ 正解:在 tblr 选项里用 cell{行}{列}={c=n}{对齐},被合并格留空。 这个坑吃掉最多时间 —— 因为报错行号指向 \end{tblr}, 试过 \shortstack、\rotatebox、\newline 各种改,全都不对, 最后靠「同一合并规则换成 cell{} 语法就 0 错」的最小复现才定位到。 ### 2. \SetCell[r=n] 与 \SetCell[c=m] 不能同现 纵向合并和横向合并放同一行,报同样那串错。 本表完全不用纵向合并 —— 「其他费用」改成 \rotatebox{90} 竖排, 第 1 列下面 4 行留空,视觉等价。 ### 3. colspec / hline / vline / ht 参数不能用宏 tabularray 用自带展开器解析这些选项,遇到用户宏直接 `! Undefined control sequence.`。全部写字面值。 ## 页高预算(关键,别乱改行高) 28 × 5.6mm = 156.8mm 标题区(附件1 + 22pt 标题 + 日期行)≈ 30mm 说明 3 条(第 2 条占两行)≈ 35mm 合计 ≈ 222mm ≤ 223.98mm ✅ 刚好一页 ⚠️ 行高 5.6mm 已在下限附近。改回 6.0mm 会让 28 行多出 11.2mm, 第 3 条说明立刻被挤到第 2 页(实测过)。 ## 验证 1 页 error 0 Overfull 0 Underfull 0 表格 155.52mm / 版心 155.99mm → 界内 内容 50 项逐项核对,全部存在 (唯一"缺失"项是「不得坐支现金」因跨行被 \n 断开, 去空白后匹配通过 —— 不是真缺失) 全库 bash build.sh all → **15/15 通过**(新增第 15 项,已加入 verify_all.sh) 双端一致: WSL TeX Live 2025 1 页 err=0 over=0 under=0 Windows TeX Live 2022 1 页 err=0 over=0 under=0 ## 说明 空表,金额/卡号/日期/人名一律留空。不含任何真实数据。
This commit is contained in:
+126
@@ -0,0 +1,126 @@
|
||||
%======================================================================
|
||||
% 中国海洋大学会议预算表(空表模板)
|
||||
%
|
||||
% 用途:演示 oucmeeting.sty 的用法,并作为可直接印刷使用的空表。
|
||||
%
|
||||
% 编译: xelatex 会议预算表.tex (单次即可)
|
||||
%
|
||||
% ⚠️ 这是**空表**。金额、卡号、日期、人名一律留空,供手填。
|
||||
%
|
||||
% ⚠️⚠️ 本文件的表格**只写内容,不写任何 \SetCell**。
|
||||
% 所有合并规则都在 oucmeeting.sty 的 oucmeettable 环境里,
|
||||
% 用 cell{行}{列}={c=n}{对齐} 矩阵式声明。
|
||||
% 原因(踩了两小时):在这套 7 列 Q[c,m,wd=…] + colsep 配置下,
|
||||
% 一写 \SetCell 就报一串 Missing number,且错误全指向 \end{tblr}。
|
||||
% 详见 sty 第 4 节的记录。
|
||||
%
|
||||
% ⚠️ 被合并掉的格在内容里**留空**(写 `& &`),不要写 {}。
|
||||
%
|
||||
% 28 行的合并结构(行号 = 表格第几行,从 1 起):
|
||||
% R1 会议名称 2+5
|
||||
% R2 会议时间/地点 2+2+2+1
|
||||
% R3 会议类型 2+5
|
||||
% R4 参会人数 2+5
|
||||
% R5 支出项目卡号 2+5
|
||||
% R6 会议内容 2+5
|
||||
% R7 会议收入预算 跨 7 列
|
||||
% R8 收入表头 2+2+2+1
|
||||
% R9 会务费收入 2+2+2+1
|
||||
% R10 科研经费 2+2+2+1
|
||||
% R11 财政拨款专项 2+2+2+1
|
||||
% R12 学校预算经费 2+2+2+1
|
||||
% R13 其他 2+2+2+1
|
||||
% R14 合计 2+2+2+1
|
||||
% R15 会议支出预算 跨 7 列
|
||||
% R16 支出表头 3+2+2
|
||||
% R17 专家咨询费 3+2+2
|
||||
% R18 城市间交通费 3+2+2
|
||||
% R19 住宿费 3+2+2
|
||||
% R20 伙食费 3+2+2
|
||||
% R21 其他费用/交通费 1+2+2+2
|
||||
% R22 会议资料印刷费 1+2+2+2
|
||||
% R23 会议室使用费 1+2+2+2
|
||||
% R24 工作人员补助 1+2+2+2
|
||||
% R25 其他 1+2+2+2
|
||||
% R26 合计 3+2+2
|
||||
% R27 意见栏 3+4
|
||||
% R28 签字栏 3+4
|
||||
%======================================================================
|
||||
\documentclass[UTF8]{ctexart}
|
||||
\usepackage{oucmeeting}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\oucmeetattach{附件 1}
|
||||
|
||||
\oucmeettitle{中国海洋大学会议预算表}
|
||||
|
||||
\oucmeetdateline{填表日期:\hspace*{4em}年\hspace*{2em}月\hspace*{2em}日%
|
||||
\hfill 金额单位:\hspace*{3em}元}
|
||||
|
||||
\begin{oucmeettable}
|
||||
% ---- R1~R6 基本信息 ----
|
||||
会议名称 & & & & & & \\
|
||||
会议时间 & & 会议地点 & & & & \\
|
||||
% ⚠️ R3/R4 的填空横线用 \hspace 撑,宽度必须控制。
|
||||
% 跨 5 列约 122mm,三个选项各带一对(\hspace{3em})就要 6×3em=18em
|
||||
% 再加文字,实测撑到 529.7bp(版心止于 521.57),超 8bp。
|
||||
% ⇒ 单个填空收到 2.2em(约 7mm,手写两三个字够用)。
|
||||
会议类型 & & 国内业务会议(\hspace*{2.2em})\hspace*{1em}%
|
||||
国内管理会议(\hspace*{2.2em})\hspace*{1em}%
|
||||
在华举办国际会议(\hspace*{2.2em}) & & & & \\
|
||||
参会人数 & & 总数\hspace*{2.2em}人\hspace*{1em}%
|
||||
(其中参会代表\hspace*{2.2em}人;工作人员\hspace*{2.2em}人;%
|
||||
外宾\hspace*{2.2em}人) & & & & \\
|
||||
会议支出项目卡号 & & & & & & \\
|
||||
会议内容 & & & & & & \\
|
||||
|
||||
% ---- R7~R14 收入预算 ----
|
||||
\bfseries 会议收入预算 & & & & & & \\
|
||||
收入项目 & & 项目经费卡号 & & 金额 & & 备注 \\
|
||||
会务费收入 & & & & & & 每人\hspace*{2.5em}元 \\
|
||||
科研经费 & & & & & & \\
|
||||
财政拨款会议专项经费 & & & & & & \\
|
||||
学校预算经费 & & & & & & \\
|
||||
其他 & & & & & & \\
|
||||
合计 & & & & & & \\
|
||||
|
||||
% ---- R15~R26 支出预算 ----
|
||||
\bfseries 会议支出预算 & & & & & & \\
|
||||
支出项目 & & & 预算金额 & & 实际支出金额(由财务处填写) & \\
|
||||
专家咨询费(含讲课及评审费) & & & & & & \\
|
||||
专家城市间交通费 & & & & & & \\
|
||||
住宿费 & & & & & & \\
|
||||
伙食费 & & & & & & \\
|
||||
|
||||
% R21~R25:「其他费用」竖排,只写在第 1 列的第一行(R21),
|
||||
% 下面 4 行该列留空。用 \rotatebox 真旋转,不用 \\ 换行
|
||||
% (\\ 会被 tabularray 当成行结束,破坏整表)。
|
||||
\rotatebox{90}{其他费用} & 交通费 & & & & & \\
|
||||
& 会议资料印刷费 & & & & & \\
|
||||
& 会议室使用费 & & & & & \\
|
||||
& 工作人员补助 & & & & & \\
|
||||
& 其他 & & & & & \\
|
||||
|
||||
合计 & & & & & & \\
|
||||
|
||||
% R27~R28 意见与签字(跨 3+4)
|
||||
% ⚠️⚠️ 这里的 \hspace 会把**单元格撑宽,进而把表格右边框推出纸外**,
|
||||
% 而且文字本身仍在版心内 —— 所以逐 span 查文字查不出来,
|
||||
% 只有查竖线坐标才能发现(实测最右竖线跑到 526.40,版心止于 521.57)。
|
||||
% 实测数据:\hspace*{7em} → 超 4.83bp;4.5em → 仍超 4.83bp(跨列宽度已定死,
|
||||
% hspace 只是让内容溢出单元格,不改列宽)。
|
||||
% ⇒ 该单元格内容必须能在一行内放下。「(签字) (盖章)」共 9 个全角字符
|
||||
% ≈ 9×9bp = 81bp,跨 4 列约 96mm = 272bp,够放,只要 hspace 不太大。
|
||||
% 给 3em(约 9.5mm)即可,手写签名空间足够。
|
||||
经费(项目)负责人意见: & & & 所在单位负责人意见:\hspace*{4em}校级领导意见: & & & & \\
|
||||
\hfill(签字) & & & (签字)\hspace*{3em}(盖章) & & & & \\
|
||||
\end{oucmeettable}
|
||||
|
||||
\begin{oucmeetnotes}
|
||||
\oucmeetnote{1、}{会议借款和报销应按会议预算执行,如突破预算总额,须按原程序审批;}
|
||||
\oucmeetnote{2、}{收取会务费时按要求给会议代表开具发票,收取的会务费及发票存根和记账联统一交财务处入账,不得坐支现金;}
|
||||
\oucmeetnote{3、}{会议费开支实行定额控制,标准参照《中国海洋大学会议费管理办法》。}
|
||||
\end{oucmeetnotes}
|
||||
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user