%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% boxes %% 信息框 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 颜色一律引用 cls/color.cls 里的语义名(oucinfo / oucalert ...), % 不在这里写具体色名,更不写 RGB 值。 % % 【关于内容块里的 3 个 Underfull \hbox(#19 记录)】 % % 第 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 才是严重), % 渲染出来只是行末留白略多,不影响阅读。日志里看到它们属预期,不是回归。 % %% 带标题的文本框 % 这个框走的是"极简"路线:框线和标题栏都是白色,靠黑字 + 细边分界。 % 属于结构而非强调,不参与配色体系。 \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} }