七个模板原先分两套做法:幻灯片/fonts(49MB 鸿蒙 18 个字重)与 科技报告/font(92MB,含 5 款方正商业字体),其余模板直接调系统 SimSun/SimHei/KaiTi/FangSong/Times New Roman。换机器就编不出来, 方正系列也不允许随仓库分发。 统一到仓库根的 fonts/ + fonts.tex: - OUC Serif(思源宋体 SC 子集) —— 宋体 - OUC Sans(思源黑体 SC 子集) —— 黑体 - OUC Kai(霞鹜文楷子集) —— 楷体 - Zhuque Fangsong(朱雀仿宋) —— 仿宋 - TeX Gyre Termes —— 西文 Times 等价(度量逐字相同) - HarmonyOS Sans —— 幻灯片/科技报告原有字体 fonts.tex 是唯一允许声明字体的地方,7 个模板全部 \input 它。 字体体积 141MB -> 49MB(去掉重复),全库共用一套最小集合。 几处踩过的坑(均已写进源码注释): - \newCJKfontfamily 与 ctex 默认 fontset 冲突会中断编译,改用 \setCJKfamilyfont + \def - \newfontfamily 缺粗体档会让 \bfseries 静默失效,四档必须全给 - UprightFont= 与主参数不能同时给,否则文件名被拼两次 - Path= 相对编译时工作目录,不是相对 .sty - ×/□/○ 等符号按 Unicode 区段被判成西文,需 \xeCJKDeclareCharClass - 中文斜体的 ItalicFont 与主字体不在同一目录,须在 ItalicFeatures 里单独写 Path/Extension(否则报 OUCKai-Regular cannot be found) 顺带: - 科技报告 report.tex 的字体演示正文改为新字体名(原文写着方正系列) - 试卷归档封面新模板并入本库 - 科技报告 shell 命令框底色改海大蓝(#5 遗留) 验证(7 个模板 8 个 PDF 全量重编 + 逐行 A/B 对照): - 错误 0,缺字 0 - 幻灯片 362 行逐行完全一致,零漂移 - 年度考核登记表 / 劳务发放说明表 / 试卷题型示例 / 参考答案 文本完全一致 - 课程执行大纲 仅 2 处断字连字符差异(throughout、processing), 1 条 6.39pt Overfull 已论证不可见(距纸张右边缘仍有 20.7mm) - 科技报告 内嵌字体方正归零,只剩 OUC Serif/Sans/Kai + Zhuque - 全库正文 857 个非 ASCII 字符,四款中文字体(含粗体)覆盖 100%
115 lines
2.9 KiB
OpenEdge ABL
115 lines
2.9 KiB
OpenEdge ABL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
%% boxes
|
||
%% 信息框
|
||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||
%
|
||
% 颜色一律引用 cls/color.cls 里的语义名(oucinfo / oucalert ...),
|
||
% 不在这里写具体色名,更不写 RGB 值。
|
||
%
|
||
|
||
%% 带标题的文本框
|
||
% 这个框走的是"极简"路线:框线和标题栏都是白色,靠黑字 + 细边分界。
|
||
% 属于结构而非强调,不参与配色体系。
|
||
\newtcolorbox{titledbox}[1]{%
|
||
tikznode boxed title,
|
||
enhanced,
|
||
arc=3pt,
|
||
interior style={white},
|
||
attach boxed title to top center = {yshift=-\tcboxedtitleheight/2},
|
||
fonttitle=\hm,
|
||
colbacktitle=white,coltitle=black,
|
||
boxed title style={size=normal,colframe=white,boxrule=0pt},
|
||
boxrule=.5pt,
|
||
left=5pt, right=5pt, top=5pt, bottom=0pt,
|
||
boxsep=5pt,
|
||
title={#1},
|
||
halign=left,
|
||
fontupper=\fzkai
|
||
}
|
||
|
||
%% Note —— 提示框,海大蓝
|
||
\newtcolorbox{notebox}{%
|
||
enhanced,
|
||
arc=2pt,
|
||
boxrule=.5pt,
|
||
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
||
boxsep=5pt,
|
||
colframe=oucinfo,
|
||
colback=oucinfo!5!White,
|
||
colbacktitle=oucinfo!5!White,
|
||
coltext=oucinfo,
|
||
title={\textcolor{oucinfo}{\faStickyNoteO\hspace{.5em}\bfseries{\hm{笔记}}}},
|
||
halign=left,
|
||
fontupper=\fzkai
|
||
}
|
||
|
||
%% Important —— 重要框,海大红
|
||
\newtcolorbox{importantbox}{%
|
||
enhanced,
|
||
arc=2pt,
|
||
boxrule=.5pt,
|
||
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
||
boxsep=5pt,
|
||
colframe=oucalert,
|
||
colback=oucalert!5!White,
|
||
colbacktitle=oucalert!5!White,
|
||
coltext=oucalert,
|
||
title={\textcolor{oucalert}{\faExclamationCircle\hspace{.5em}\bfseries{\hm{重要}}}},
|
||
halign=left,
|
||
fontupper=\fzkai
|
||
}
|
||
|
||
%% verbatim 环境无法直接在新环境中使用
|
||
%% 换用 \VerbatimEnvironment \begin{Verbatim}
|
||
\RequirePackage{fancyvrb}
|
||
|
||
%% 命令行(浅底黑字)——中性,不参与配色体系
|
||
\newenvironment{shellbox}
|
||
{%
|
||
\VerbatimEnvironment
|
||
\begin{tcolorbox}[
|
||
enhanced,
|
||
arc=2pt,
|
||
boxrule=.5pt,
|
||
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
||
boxsep=5pt,
|
||
colframe=black,
|
||
colback=white,
|
||
coltext=black,
|
||
title={},
|
||
fontupper=\linespread{1.2}
|
||
]%
|
||
\begin{Verbatim}
|
||
}
|
||
{%
|
||
\end{Verbatim}
|
||
\end{tcolorbox}
|
||
}
|
||
|
||
%% 命令行(深底白字)——海大蓝底 + 白字
|
||
% 说明:这个框的用途是"一整条终端命令",需要与正文明确区分。
|
||
% 用海大蓝实底 + 白字:
|
||
% · 白字压在 #004098 上对比度约 10:1,远高于 WCAG AA 要求的 4.5:1
|
||
% · 与 notebox(5% 浅蓝底 + 蓝字)区分得开:一个是实底,一个是浅底
|
||
% 底色不要改浅:一旦降到 oucblue!60 以下,白字对比度会掉到 4 以下,读起来吃力。
|
||
\newenvironment{invertedshellbox}
|
||
{%
|
||
\VerbatimEnvironment
|
||
\begin{tcolorbox}[
|
||
enhanced,
|
||
arc=2pt,
|
||
boxrule=.5pt,
|
||
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
||
boxsep=5pt,
|
||
colframe=oucblue,
|
||
colback=oucblue,
|
||
coltext=white,
|
||
title={},
|
||
fontupper=\linespread{1.2}
|
||
]%
|
||
\begin{Verbatim}
|
||
}
|
||
{%
|
||
\end{Verbatim}
|
||
\end{tcolorbox}
|
||
} |