2026-10-26 18:31:04 +08:00
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
|
%% boxes
|
|
|
|
|
|
%% 信息框
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2026-10-26 22:50:19 +08:00
|
|
|
|
%
|
|
|
|
|
|
% 颜色一律引用 cls/color.cls 里的语义名(oucinfo / oucalert ...),
|
|
|
|
|
|
% 不在这里写具体色名,更不写 RGB 值。
|
|
|
|
|
|
%
|
2026-11-01 09:29:00 +08:00
|
|
|
|
% 【关于内容块里的 3 个 Underfull \hbox(记录)】
|
2026-10-29 15:47:33 +08:00
|
|
|
|
%
|
|
|
|
|
|
% 第 208/214/220 行那三段示例文字里有 \verb|Illuminate\Foundation\Http\Kernel|,
|
|
|
|
|
|
% 这个 35 字符的串在 \verb 里**不能断行**,整行只能把它塞进去,于是那行
|
|
|
|
|
|
% 被撑松 —— 报 Underfull (badness 1231)。
|
|
|
|
|
|
%
|
|
|
|
|
|
% · \emergencystretch 2em / 10em —— 无效。它不是"额度不够"的问题:
|
|
|
|
|
|
% 这一行没有足够的可拉伸 glue 可用,给多少额度都无从施展。
|
|
|
|
|
|
% · \sloppy —— 反而更差,badness 从 1231 升到 3590(放宽了断行标准,
|
|
|
|
|
|
% TeX 选了别的更松的解)。
|
|
|
|
|
|
%
|
|
|
|
|
|
% 有效但**不采用**的方案:
|
|
|
|
|
|
% · \seqsplit —— Underfull 归零,代价是在任意字符处断行,
|
|
|
|
|
|
% 一条代码路径被切成两段,可读性明显变差。
|
|
|
|
|
|
% · 换窄体等宽 lmmonoltcond(Light Condensed)—— 也归零,
|
|
|
|
|
|
% 但压缩字体让代码变窄变小,为一个示例文本牺牲整体代码可读性不合理。
|
|
|
|
|
|
%
|
|
|
|
|
|
% 结论:保留这 3 个 Underfull。badness 1231 属轻微(10000 才是严重),
|
|
|
|
|
|
% 渲染出来只是行末留白略多,不影响阅读。日志里看到它们属预期,不是回归。
|
|
|
|
|
|
%
|
2026-10-26 18:31:04 +08:00
|
|
|
|
|
|
|
|
|
|
%% 带标题的文本框
|
2026-10-26 22:50:19 +08:00
|
|
|
|
% 这个框走的是"极简"路线:框线和标题栏都是白色,靠黑字 + 细边分界。
|
|
|
|
|
|
% 属于结构而非强调,不参与配色体系。
|
2026-10-26 18:31:04 +08:00
|
|
|
|
\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
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-10-26 22:50:19 +08:00
|
|
|
|
%% Note —— 提示框,海大蓝
|
2026-10-26 18:31:04 +08:00
|
|
|
|
\newtcolorbox{notebox}{%
|
|
|
|
|
|
enhanced,
|
|
|
|
|
|
arc=2pt,
|
|
|
|
|
|
boxrule=.5pt,
|
|
|
|
|
|
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
|
|
|
|
|
boxsep=5pt,
|
2026-10-26 22:50:19 +08:00
|
|
|
|
colframe=oucinfo,
|
|
|
|
|
|
colback=oucinfo!5!White,
|
|
|
|
|
|
colbacktitle=oucinfo!5!White,
|
|
|
|
|
|
coltext=oucinfo,
|
|
|
|
|
|
title={\textcolor{oucinfo}{\faStickyNoteO\hspace{.5em}\bfseries{\hm{笔记}}}},
|
2026-10-26 18:31:04 +08:00
|
|
|
|
halign=left,
|
|
|
|
|
|
fontupper=\fzkai
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-10-26 22:50:19 +08:00
|
|
|
|
%% Important —— 重要框,海大红
|
2026-10-26 18:31:04 +08:00
|
|
|
|
\newtcolorbox{importantbox}{%
|
|
|
|
|
|
enhanced,
|
|
|
|
|
|
arc=2pt,
|
|
|
|
|
|
boxrule=.5pt,
|
|
|
|
|
|
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
|
|
|
|
|
boxsep=5pt,
|
2026-10-26 22:50:19 +08:00
|
|
|
|
colframe=oucalert,
|
|
|
|
|
|
colback=oucalert!5!White,
|
|
|
|
|
|
colbacktitle=oucalert!5!White,
|
|
|
|
|
|
coltext=oucalert,
|
|
|
|
|
|
title={\textcolor{oucalert}{\faExclamationCircle\hspace{.5em}\bfseries{\hm{重要}}}},
|
2026-10-26 18:31:04 +08:00
|
|
|
|
halign=left,
|
|
|
|
|
|
fontupper=\fzkai
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
%% verbatim 环境无法直接在新环境中使用
|
|
|
|
|
|
%% 换用 \VerbatimEnvironment \begin{Verbatim}
|
|
|
|
|
|
\RequirePackage{fancyvrb}
|
|
|
|
|
|
|
2026-10-26 22:50:19 +08:00
|
|
|
|
%% 命令行(浅底黑字)——中性,不参与配色体系
|
2026-10-26 18:31:04 +08:00
|
|
|
|
\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}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-10-27 00:43:14 +08:00
|
|
|
|
%% 命令行(深底白字)——海大蓝底 + 白字
|
|
|
|
|
|
% 说明:这个框的用途是"一整条终端命令",需要与正文明确区分。
|
|
|
|
|
|
% 用海大蓝实底 + 白字:
|
|
|
|
|
|
% · 白字压在 #004098 上对比度约 10:1,远高于 WCAG AA 要求的 4.5:1
|
|
|
|
|
|
% · 与 notebox(5% 浅蓝底 + 蓝字)区分得开:一个是实底,一个是浅底
|
|
|
|
|
|
% 底色不要改浅:一旦降到 oucblue!60 以下,白字对比度会掉到 4 以下,读起来吃力。
|
2026-10-26 18:31:04 +08:00
|
|
|
|
\newenvironment{invertedshellbox}
|
|
|
|
|
|
{%
|
|
|
|
|
|
\VerbatimEnvironment
|
|
|
|
|
|
\begin{tcolorbox}[
|
|
|
|
|
|
enhanced,
|
|
|
|
|
|
arc=2pt,
|
|
|
|
|
|
boxrule=.5pt,
|
|
|
|
|
|
left=5pt, right=5pt, top=0pt, bottom=0pt,
|
|
|
|
|
|
boxsep=5pt,
|
2026-10-27 00:43:14 +08:00
|
|
|
|
colframe=oucblue,
|
|
|
|
|
|
colback=oucblue,
|
2026-10-26 18:31:04 +08:00
|
|
|
|
coltext=white,
|
|
|
|
|
|
title={},
|
|
|
|
|
|
fontupper=\linespread{1.2}
|
|
|
|
|
|
]%
|
|
|
|
|
|
\begin{Verbatim}
|
|
|
|
|
|
}
|
|
|
|
|
|
{%
|
|
|
|
|
|
\end{Verbatim}
|
|
|
|
|
|
\end{tcolorbox}
|
|
|
|
|
|
}
|