简历排版修正:项目经验整块右移、西文换 Cochineal、课程执行大纲漏网 × #12

一、项目经验整块右移(简历/awesome-source-cv.cls)
  \rightcolumnlength 算早了:geometry 的 1.5cm 边距要到导言区结束才生效,
  cls 里那句 \setlength 读到 article 默认 \textwidth=345pt,算出 249.87pt,
  比应有的 417.02pt 少 167.15pt。longtable 把窄表居中排,整块右移 83.6pt。
  修法:计算挪进 \AtBeginDocument 并减去 | 竖线的 \arrayrulewidth;
  R 列由 >{\hfill}m{2.5cm} 改为 >{\raggedright\arraybackslash}p{2.5cm}。
  日期左边缘 145.1 -> 48.5pt,与其余章节严格对齐。
  这类错误零 error 零 warning,只能量 PDF 坐标才能发现。

二、西文换 Cochineal(fonts/cochineal/ + fonts.tex + 简历 cls)
  中文思源宋体配 Termes 时西文笔画偏细,中英混排会「陷进去」。
  Cochineal 宽 225.42pt vs Termes 229.68pt,只窄 1.9%,断行位置基本不动;
  Pagella/XCharter 宽 7~11%,会把全库断行推着变,故不选。
  字体 920KB 入 fonts/cochineal/(SIL OFL 1.1,附 OFL.txt),
  fonts.tex 新增 \oucUseCochineal 开关,只简历调用,其余 10 个模板不受影响。

三、换字体后暴露的真实缺陷
  西文窄 1.9% 让断点整体前移,ICIEA 那条论文冲出 88.49pt(文字顶到纸边)。
  根因是中文紧跟英文的位置不是断开点,整串被当长单词。
  加 \emergencystretch=3em 解决。

四、课程执行大纲漏网占位符(ouccourse.sty)
  ××学部××学院 硬编码在 \ccschool 里,#11 只扫了 .tex 没扫 .sty 所以漏了。
  拆成 \ccdepartment / \cccollege 两个名称宏,默认「信息科学与工程学部 /
  计算机科学与技术学院」。重编后全文 × 归零。

「代码库 PDF 没更新」经核实不成立:本地/远程 HEAD 均为 8984b93,
从服务器下载 8 个 PDF 逐字节比对全部一致,简历.pdf 3 页 0 个 ×。

验证:简历 3 页 0 error/0 Overfull/0 Underfull;全库 12 项编译回归与基线一致。
This commit is contained in:
2026-10-27 13:13:54 +08:00
parent 8984b93ee7
commit 69da5b41a6
15 changed files with 455 additions and 27 deletions
+79
View File
@@ -70,6 +70,9 @@
%
% Termes 与 Times New Roman 字符宽度逐字相同,因此原有的西文断行、
% 表格列宽、行内公式对齐都不会因为换字体而漂。
%
% ⚠️ 全库默认就是 Termes。简历模板(简历/)单独换成 Cochineal,
% 见下面「一之二」。其余 10 个模板不受影响。
%======================================================================
\setmainfont{texgyretermes}[
Extension = .otf,
@@ -80,6 +83,82 @@
BoldItalicFont = *-bolditalic,
]
%======================================================================
% 一之二、西文备用字体:Cochineal(Minion 风格)
%
% 为什么加这一款:Termes 是 Times 的度量兼容替代,中文用思源宋体时,
% 两者笔画粗细与字面灰度差得比较明显 —— 汉字是宋体的中等粗细,
% 西文 Termes 偏细偏紧,中英混排时西文那一段会"陷进去"。
% Cochineal(Michael Sharpe 据 Minion 设计)笔画更饱满,与宋体灰度
% 接近,学术出版物里用得很广。
%
% 与 Termes 的度量差异(10pt 下同一句英文的排印宽度):
% Termes 229.68pt 100.0% x 高 0.450
% Cochineal 225.42pt 98.1% x 高 0.433
% 窄 1.9%,换过去几乎不会让断行位置变。这是选它而不是 Pagella
% (宽 10.8%)/ XCharter(宽 7.4%)的主要理由:那两款会把全库的
% 表格列宽和断行推着变。
%
% ⚠️ **不是全局生效**,必须显式调用下面这条才会切:
% \OUCLatinCochineal
% 目前只有 简历/awesome-source-cv.cls 调用。其余模板保持 Termes。
%
% ⚠️ 三个地方一起换才算真的换掉:
% ① \setmainfont —— 正文西文(正文里的英文、数字、DOI)
% ② \tnr / \tnrb —— 模板里显式用 Times 形态的地方
% ③ 数学字体 —— 本模板库的模板都不带公式,故未配 unicode-math。
% 若将来某个模板要用公式,得再补 \setmathfont,否则公式里的
% 拉丁字母还是 Computer Modern。
%
% 授权:SIL OFL 1.1(Copyright 2010-2014 Sebastian Kosch;
% 2016-2021 Michael Sharpe)。OFL.txt 已随字体放在
% ../fonts/cochineal/ 下。
%
% 度量数据(供将来换字体时对照,单位 1/1000 em,upm=1000):
% 字体 x 高 cap 高 x/cap A 宽 字重
% Termes 450 662 0.68 722 400
% Cochineal 433 649 0.67 612 400
%======================================================================
\newfontfamily\OUCLatinCochineal{cochineal}[
Extension = .otf,
Path = ../fonts/cochineal/,
UprightFont = *-Roman,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
% 粗体专用档:对应上面 \tnrb 的语义("取粗体那一字形当常规用")。
% 与 \tnr 同样四档齐全,否则 \bfseries 里会报
% Font shape `TU/cochineal/b/n' undefined
% 并静默回落,表现是加粗失效。
\newfontfamily\OUCLatinCochinealBold{cochineal}[
Extension = .otf,
Path = ../fonts/cochineal/,
UprightFont = *-Bold,
BoldFont = *-Bold,
ItalicFont = *-BoldItalic,
BoldItalicFont = *-BoldItalic,
]
% 把上一条真正装成"正文西文字体"的开关。
% 单独做成命令而不在字体声明处直接 \setmainfont,是因为 \newfontfamily
% 只登记了一个字族;要让它接管正文,必须再用 \setmainfont 指过去。
\newcommand{\oucUseCochineal}{%
\setmainfont{cochineal}[
Extension = .otf,
Path = ../fonts/cochineal/,
UprightFont = *-Roman,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]%
% \tnr / \tnrb 也跟着走,否则模板里显式写了 \tnr 的地方仍是 Termes,
% 同一页出现两种西文字体。
\renewcommand{\tnr}{\OUCLatinCochineal}%
\renewcommand{\tnrb}{\OUCLatinCochinealBold}%
}
%======================================================================
% 二、中文主字体
%