科技报告模板(科技报告/)里的配色跟幻灯片模板(幻灯片/)不是一套。同一个学校、同一个项目的两个模板,"蓝"和"红"看起来不一样,放在一起明显不协调。
科技报告/
幻灯片/
要求:文档中用到的颜色,除代码高亮的语义色外,一律从海大蓝、海大红等幻灯片里已有的标准色中选,保持两个模板配色完全一致。
排查后发现,科技报告用的是 xcolor 自带的通用色,与海大无关:
boxes.cls
NavyBlue
Orange
code.cls
rgb(0,0,1)
rgb(0,0.5,0)
rgb(0.64,0.08,0.08)
rgb(0.17,0.57,0.68)
NavyBlue!10!white
violet
gray
setting.tex
新建 cls/color.cls,所有颜色集中定义在这里,其他文件一律不许出现 RGB 值或直接色名,只引用语义别名。这样将来调色只改一处。
cls/color.cls
report.cls 里的引入顺序必须靠前(boxes.cls / code.cls 都要用这里定义的颜色):
report.cls
\input{cls/global.cls}%全局设定 \input{cls/color.cls}%海大标准色(必须在 boxes/code 之前)
幻灯片/theme/beamercolorthemeOUCSlide.sty
oucblue
ouclightblue
oucred
ouccherry
oucbrown
oucgolden
oucsilver
oucpine
oucdusk
oucamber
按语义引用,而不是按色名——将来"笔记框"想从海大蓝换成苍松绿,只改一行:
oucprimary / oucaccent / oucinfo / oucalert / ouccaption / oucrule / ouclink / oucmuted
oucprimary
oucaccent
oucinfo
oucalert
ouccaption
oucrule
ouclink
oucmuted
代码高亮的语义色(关键字 / 注释 / 字符串 / 类型)必须彼此区分得开,全部套同一个海大色会看不清。所以做法是从标准色派生,不另造一套:
shellbox
invertedshellbox
#004098
#C81528
#000000
#CFD0D0
#F7F8FA
#4 只涉及封面图元素(logo 尺寸与定位),本单只涉及配色定义(cls/color.cls 与各 cls 的颜色引用),改动文件不重叠、可各自独立验收
配色已统一并推送(提交 c69f446)。
c69f446
新建 科技报告/cls/color.cls,所有颜色集中定义在这里,其他文件一律不许出现 RGB 值或直接色名,只引用语义别名。以后调色只改一处。
科技报告/cls/color.cls
report.cls 里的引入顺序已调整到 boxes.cls / code.cls 之前(那两者要用这里的颜色)。
含 8 个语义词别名,正文与各 cls 按语义引用(oucinfo / oucalert 等),不写色名。
从远端全新克隆后编译(6 个模板全测):
试卷/参考答案与评分标准示例.tex 错误=0 3页 试卷/试卷题型示例.tex 错误=0 6页 年度考核登记表/年度考核登记表.tex 错误=0 2页 劳务发放说明表/劳务发放说明表.tex 错误=0 1页 课程执行大纲/课程执行大纲.tex 错误=0 5页 幻灯片/slides.tex 错误=0 30页 科技报告/report.tex 错误=0 10页 Overfull=0
PDF 逐 span 提取实际渲染色:
文字色:{'#000000': 1013, '#004098': 29, '#C81528': 18, '#FFFFFF': 1, '#F5F7FB': 10} 非标准色残留:无
改前存在的 NavyBlue / Orange / violet / 硬写 RGB 已全部消失, 矢量填充与描边色也全部落在 #004098 / #C81528 / #CFD0D0 / #F7F8FA 内。
页数、文字位置与改前完全一致,版式零变化。
No dependencies set.
The note is not visible to the blocked user.
现象 / 诉求
科技报告模板(
科技报告/)里的配色跟幻灯片模板(幻灯片/)不是一套。同一个学校、同一个项目的两个模板,"蓝"和"红"看起来不一样,放在一起明显不协调。要求:文档中用到的颜色,除代码高亮的语义色外,一律从海大蓝、海大红等幻灯片里已有的标准色中选,保持两个模板配色完全一致。
改前的实际问题
排查后发现,科技报告用的是 xcolor 自带的通用色,与海大无关:
boxes.clsnoteboxNavyBlue(#000080 海军蓝)boxes.clsimportantboxOrange(#FFA500)code.cls关键字rgb(0,0,1)纯蓝code.cls注释rgb(0,0.5,0)纯绿code.cls字符串rgb(0.64,0.08,0.08)暗红code.cls类型rgb(0.17,0.57,0.68)青code.clsbash 块NavyBlue!10!whitecode.cls代码标题violet紫code.cls行号graysetting.tex水印方案:单一配色入口
新建
cls/color.cls,所有颜色集中定义在这里,其他文件一律不许出现 RGB 值或直接色名,只引用语义别名。这样将来调色只改一处。report.cls里的引入顺序必须靠前(boxes.cls/code.cls都要用这里定义的颜色):10 个基色(与
幻灯片/theme/beamercolorthemeOUCSlide.sty逐值相同)oucblue海大蓝ouclightblue海大天蓝oucred海大红ouccherry樱缤粉oucbrown文脉棕oucgolden专金oucsilver专银oucpine苍松绿oucdusk暮山紫oucamber琥珀橙语义词别名
按语义引用,而不是按色名——将来"笔记框"想从海大蓝换成苍松绿,只改一行:
oucprimary/oucaccent/oucinfo/oucalert/ouccaption/oucrule/ouclink/oucmuted代码配色的处理(用户明确允许的例外)
代码高亮的语义色(关键字 / 注释 / 字符串 / 类型)必须彼此区分得开,全部套同一个海大色会看不清。所以做法是从标准色派生,不另造一套:
有意保持中性的两处
shellbox/invertedshellbox:终端反白块语义上就该是黑底,换成蓝会变成"强调块",反而抢正文注意力。保持黑。oucrule的写法。验收标准
#004098/#C81528/#000000,无 NavyBlue / Orange / violet 残留#004098/#C81528/#CFD0D0/#F7F8FA内为什么单独建单
#4 只涉及封面图元素(logo 尺寸与定位),本单只涉及配色定义(cls/color.cls 与各 cls 的颜色引用),改动文件不重叠、可各自独立验收
完成情况
配色已统一并推送(提交
c69f446)。改法:单一配色入口
新建
科技报告/cls/color.cls,所有颜色集中定义在这里,其他文件一律不许出现RGB 值或直接色名,只引用语义别名。以后调色只改一处。
report.cls里的引入顺序已调整到boxes.cls/code.cls之前(那两者要用这里的颜色)。10 个基色与幻灯片逐值相同
含 8 个语义词别名,正文与各 cls 按语义引用(
oucinfo/oucalert等),不写色名。逐处改动
刻意保留的两处中性色(已在代码注释里写明理由)
shellbox/invertedshellbox保持黑底终端反白块的语义就是「黑底终端」。换成海大蓝会让它变成"强调块",
跟 notebox 撞语义,反而抢正文注意力。
彩色页眉线会跟正文的海大蓝标题抢视觉层级。注释里留了改用
oucrule的写法,想开随时打开。
验证
从远端全新克隆后编译(6 个模板全测):
PDF 逐 span 提取实际渲染色:
改前存在的
NavyBlue/Orange/violet/ 硬写 RGB 已全部消失,矢量填充与描边色也全部落在
#004098/#C81528/#CFD0D0/#F7F8FA内。页数、文字位置与改前完全一致,版式零变化。