Files
ouc_latex_template/form/年度考核登记表.tex
T
laoyang 565ec7c505 add form: 教职工年度考核登记表 LaTeX 模板
按学校下发的 Word 表逐项复刻,尺寸全部从 docx 的 OOXML 数值换算
(twips→mm/pt),不含真人信息。

- form/ouckhtb.sty          版式包:页面/字体/11 列宽/9 行高/表格环境
- form/年度考核登记表.tex   主文件:占位数据 + 表格 + 年度总结
- form/README.md            用法、版式数据来源、四个排版坑、校验方法

关键排版结论(sty 内均有注释):
- 合并格 cell{r}{c}={c=n}{c} 的 {c} 是不折行的 LR 模式,文字超宽会
  把列撑宽、整表超出版心(实测 448pt→559pt),故合并格一律包
  \khtbfit{跨度宽}{文字}
- 合并格里 \hsize 未被重设,长文本须用定宽 \parbox
- 跨度声明只有 {c=n}{c} 一种写法
- colspec/row{} 不能放宏(Unexpandable command)
- longtblr 须 stretch=0,且要清空四个 caption 模板去掉「表 0」

校验:零 Overfull/Underfull,2 页,表宽 157.96mm(目标 158.33mm)。
2026-10-23 12:01:32 +08:00

125 lines
6.1 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
%======================================================================
% 中国海洋大学 教职工年度考核登记表
%
% 编译: xelatex 年度考核登记表.tex
% (跑两遍,第二遍才取到正确页码)
%
% 本文件刻意不含真人信息:姓名/职工号/出生年月/单位/岗位等一律用
% × 占位。填表时只改下面【第 1 节 基本信息】和【第 3 节 年度总结】。
%
% 版式来源:2025 年学校下发的 Word 表(A4、表宽 158.33mm、11 列、
% 仿宋 14pt)。所有尺寸已在 ouckhtb.sty 内注明换算过程;
% 要改版式请改 sty,不要在这里加 \vspace 硬撑。
%======================================================================
\documentclass[UTF8,fontset=none]{ctexart}
\usepackage{ouckhtb}
%======================================================================
% 1. 基本信息(填表时只改这一段)
%======================================================================
\khtbyear{2025}
\newcommand{\khnum}{0000000} % 职工号
% ⚠️ 占位符“×”必须包 \fangsong:它会被 fontspec 当成 ASCII 交给
% Times New Roman,而 TNR 的 × 是 1em 宽的数学符号(14pt 一格),
% 9 个就是 126pt,撑破所在列。用仿宋(全角)宽度才与汉字一致。
\newcommand{\khname}{{\fangsong ××}} % 姓名(2 字宽)
\newcommand{\khsex}{{\fangsong ×}} % 性别
\newcommand{\khbirth}{{\fangsong ××××.××}} % 出生年月
\newcommand{\khdept}{{\fangsong ××××××××}} % 单位(学部/学院)
\newcommand{\khsubdept}{{\fangsong ××××××××}} % 系(研究所、实验室、科室)
\newcommand{\khparty}{{\fangsong ××××}} % 政治面貌
\newcommand{\khtitle}{{\fangsong ×××}} % 现专业技术职务
\newcommand{\khpost}{{\fangsong ×××}} % 所聘岗位
% 年度总结正文。多段之间用 \par 分隔。
\newcommand{\khsummary}{%
本人在思想上始终积极要求进步,……(此处填写年度思想政治表现)。\par
在教学工作中,本年度承担××××等课程的教学任务,……(教学工作情况)。\par
在科研方面,……(科研与项目情况)。\par
在人才培养方面,……(人才培养与团队建设情况)。}
%======================================================================
% 2. 表外标题
%======================================================================
\begin{document}
\khtbtitle
%======================================================================
% 3. 表格主体
%
% ⚠️⚠️ 每个单元格都要写满,跨度不用管(已写死在 ouckhtb.sty 里):
% 本表 11 个网格列、9 行,每行都老老实实写 11 个格子 + 结尾 \\
% 跨列合并由 sty 的 cell{r}{c}={c=n}{c} 声明,若某格是合并的起点,
% 它后面应补 (n−1) 个空 & ,凑满 11 格。数错一位就会整体错列。
%
% ⚠️⚠️⚠️ 合并格里的文字【必须】用 \khtbfit{跨度宽宏}{文字} 包起来。
% 因为 cell{r}{c}={c=n}{c} 的 {c} 是【不折行的 LR 模式】:
% 文字比所跨各列合计更宽时,它不会折行,而是把列撑宽、整张表超出版心
% (实测“系(研究所、实验室、科室)”把表从 448.3pt 撑到 558.9pt)。
% 单列的 Q[c,m,wd=…] 没有这个问题,所以只有合并格需要包。
%======================================================================
\begin{khtbtable}
%---- R0 职工号 / 姓名 / 性别 / 出生年月 -------------------------------
职工号 & & \khnum
& 姓名 & \khtbfit{\khtbspanH}{\khname} & &
& 性别 & \khsex
& 出生年月 & \khtbfit{\khtbspanG}{\khbirth} & \\
%---- R1 单位 / 系(研究所、实验室、科室) ----------------------------
\khtbfit{\khtbspanA}{单\hspace{1em}位} & &
\khtbfit{\khtbspanB}{\khdept} & & &
\khtbfit{\khtbspanC}{\khtbxi} & &
& \khtbfit{\khtbspanD}{\khsubdept} & & & \\
%---- R2 政治面貌 / 现专业技术职务 / 所聘岗位 -------------------------
\khtbfit{\khtbspanA}{政治面貌} & & \khparty
& \khtbfit{\khtbspanE}{现专业技术职务} & & \khtitle
& & \khtbfit{\khtbspanF}{所聘岗位} & & & \khpost \\
%---- R3 年度总结(竖排标签 + 正文栏) -------------------------------
% 正文与签名写进一个固定宽的 \parbox,否则会按版心宽折行冲出格子。
\khtbvert{年度总结}
& \khtbcell{\khtbsummary{\khsummary}\khtbsummarysign}
& & & & & & & & & \\
%---- R4 系(所、实验室、科室)考评意见 -------------------------------
\khtbfit{\khtbwa}{系(所、实验室、科室)考评意见}
& \khtbcellb{\khtbsign{负责人签名:}\khtbdate}
& & & & & & & & & \\
%---- R5 师德考核结果 ------------------------------------------------
\khtbfit{\khtbwa}{师德考核结果}
& \khtbcell{\khtbchoices{优秀,合格,基本合格,不合格}\khtbseal}
& & & & & & & & & \\
%---- R6 单位年度考核建议档次 ----------------------------------------
\khtbfit{\khtbwa}{单位年度考核建议档次}
& \khtbcell{\khtbsmallnote
(对考核档次为基本合格、不合格、不确定档次的人员需说明原因)\par
\khtbbodyfont
\khtbchoices{优秀,合格,基本合格,不合格,不确定档次}\khtbseal}
& & & & & & & & & \\
%---- R7 年度考核结果 ------------------------------------------------
\khtbfit{\khtbwa}{年度考核结果}
& \khtbcell{\khtbchoices{优秀,合格,基本合格,不合格,不确定档次}\khtbseal}
& & & & & & & & & \\
%---- R8 本人意见 ----------------------------------------------------
% docx 里首列是 3 个段落(空 / “本人” / “意见”),故两词各占一行。
\khtbstack{本人,意见}
& \khtbcell{本人知晓并同意考核结果为\khtbunderline{6em}。\par
\vspace*{0.4em}%
\khtbsign{本人签名:}\khtbdate}
& & & & & & & & & \\
\end{khtbtable}
%======================================================================
% 4. 表外脚注
%======================================================================
\khtbfootnote
\end{document}