新增三个深色颜色(苍松绿 / 暮山紫 / 琥珀橙)并同步要点框自动排布
一、新增颜色(放在 beamercolorthemeOUCSlide.sty) oucpine 苍松绿 RGB(30, 86, 64) 白字对比度 8.54 oucdusk 暮山紫 RGB(92, 58, 118) 白字对比度 9.04 oucamber 琥珀橙 RGB(196, 82, 16) 白字对比度 4.60 三个都是较深的颜色,与白色文字有足够对比度(WCAG >= 4.5), 可直接作色块底色;各自同样带 10 个色阶(如 oucpine10 ~ oucpine90)。 命名取自中文传统色:「苍松」「暮山紫」「琥珀」。 琥珀橙是高饱和深橘,与低饱和的暗褐「文脉棕」在饱和度上明显区分(0.98 vs 0.61)。 二、要点框自动排布 pointboxgrid(此前仅在 main 上,现同步到本分支) 每行最多 4 个,超过则均匀分成多行(5→3+2;6→3+3;7→4+3;8→4+4;9→3+3+3…), 用法见 README 的「要点框自动排布」一节。 三、验证 本分支已用 TeX Live 2026 重新编译验证:0 错误、0 溢出; 颜色样例页与要点框排布页均正常,三个新颜色在 PDF 中实际生效。
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
本模板修改自<a href="https://github.com/Helmholtz-AI-Energy/beamer-template" target="_blank">HelmholtzAI</a>模板。在原有模板基础上进行了大量修改。
|
||||
|
||||
模板主要使用海大公布的标准色,包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银。
|
||||
模板主要使用海大公布的标准色,包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银,以及后加的苍松绿、暮山紫、琥珀橙。
|
||||
|
||||
此外,使用了大量的信息框来增加模板的活力。
|
||||
|
||||
@@ -221,18 +221,44 @@ Tex文件的开头,是基本信息部分,可以根据需要添加`\title`{
|
||||
推荐的字体包括:<a href="https://github.com/adobe-fonts/source-han-sans" target="_blank">思源黑体</a>、<a href="https://alibabafont.taobao.com/wow/alibabafont/act/alifont" target="_blank">阿里普惠字体</a>、<a href="https://www.thosefree.com/oppo-sans" target="_blank">OPPO字体</a>、<a href="https://web.vip.miui.com/page/info/mio/mio/detail?postId=33935854" target="_blank">小米字体</a>。这些字体基本上都可以免费商用,并且效果都很不错。关于他们是否能够继续免费商用的政策,请查阅其官方网站以得到最准确的信息。
|
||||
|
||||
## 颜色
|
||||
根据海大公布的标准颜色,定义了相关颜色,主要包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银。其中文名称和代码如下表所示。
|
||||
根据海大公布的标准颜色,定义了相关颜色。其中文名称和代码如下表所示。
|
||||
|
||||
当然,也可以使用LaTex自带的颜色,例如white、black等。
|
||||
| 名称 | 中文名 |
|
||||
|--------------|--------------|
|
||||
| oucblue | 海大蓝 |
|
||||
| ouclightblue | 海大天蓝 |
|
||||
| oucred | 海大红 |
|
||||
| ouccherry | 樱缤粉 |
|
||||
| oucbrown | 文脉棕 |
|
||||
| oucgolden | 专金 |
|
||||
| oucsilver | 专银 |
|
||||
|
||||
| 名称 | 中文名 | 说明 |
|
||||
|--------------|--------------|------|
|
||||
| oucblue | 海大蓝 | 海大标准色 |
|
||||
| ouclightblue | 海大天蓝 | 海大标准色 |
|
||||
| oucred | 海大红 | 海大标准色 |
|
||||
| ouccherry | 樱缤粉 | 海大标准色 |
|
||||
| oucbrown | 文脉棕 | 海大标准色 |
|
||||
| oucgolden | 专金 | 海大标准色 |
|
||||
| oucsilver | 专银 | 海大标准色 |
|
||||
| oucpine | 苍松绿 | 新增,深绿 |
|
||||
| oucdusk | 暮山紫 | 新增,深紫 |
|
||||
| oucamber | 琥珀橙 | 新增,深橘 |
|
||||
|
||||
### 新增的三个颜色
|
||||
|
||||
已有的浅色(樱缤粉、专金、专银)在内容多的时候不太够用,因此补充了三个**较深的颜色**——
|
||||
深色的好处是**和白色文字有足够的对比度**,可以直接当作色块底色(`pointbox`、`titlebox`、
|
||||
`block` 等)使用,不必再担心白字看不清。
|
||||
|
||||
| 名称 | 色值 | 白字对比度 | 命名与定位 |
|
||||
|------|------|-----------|-----------|
|
||||
| `oucpine` | RGB 30, 86, 64 | 8.54 | **苍松绿**——取自传统色「苍松」,色相偏青的深绿,沉静稳重 |
|
||||
| `oucdusk` | RGB 92, 58, 118 | 9.04 | **暮山紫**——取自传统色「暮山紫」(暮色中的远山),深紫而不艳 |
|
||||
| `oucamber` | RGB 196, 82, 16 | 4.60 | **琥珀橙**——取自传统色「琥珀」,高饱和的深橘 |
|
||||
|
||||
三点说明:
|
||||
|
||||
1. **琥珀橙和文脉棕不会混淆**:文脉棕是「低饱和的暗褐」,琥珀橙是「高饱和的深橘」,
|
||||
两者在饱和度上拉开了明显差距(色相接近,但饱和度 0.61 vs 0.98)。
|
||||
2. 三个新颜色**同样带十个色阶**(`oucpine10` ~ `oucpine90` 等),浅色等级可以当背景底。
|
||||
3. 对比度按 WCAG 计算,**≥ 4.5 即白字清晰可读**。三个新颜色都在 4.5 以上
|
||||
(对比度越高,白字越清晰)。
|
||||
|
||||

|
||||
|
||||
## 颜色等级
|
||||
为了显示更丰富的色彩,定义的海大标准色,每一种颜色,都有十个等级,等级越低,颜色越浅。例如:对于海大蓝,其等级颜色从oucblue90-oucblue10不等,分成10个等级。
|
||||
@@ -249,6 +275,39 @@ Tex文件的开头,是基本信息部分,可以根据需要添加`\title`{
|
||||

|
||||

|
||||
|
||||
### 要点框自动排布(pointboxgrid)
|
||||
|
||||
要点框数量多的时候,不需要自己摆 `columns`——用 `pointboxgrid` 环境会自动排成网格:
|
||||
|
||||
```
|
||||
\begin{pointboxgrid}{高度}
|
||||
\pointitem{标题}{颜色}{内容}
|
||||
\pointitem{标题}{颜色}{内容}
|
||||
...
|
||||
\end{pointboxgrid}
|
||||
```
|
||||
|
||||
**排布规则:每行最多 4 个;超过 4 个自动分成多行,并尽量均匀(上行不少于下行)。**
|
||||
|
||||
| 个数 | 排布 | 个数 | 排布 |
|
||||
|------|------|------|------|
|
||||
| 1~4 | 一行 | 9 | 3 + 3 + 3 |
|
||||
| 5 | 3 + 2 | 10 | 4 + 3 + 3 |
|
||||
| 6 | 3 + 3 | 11 | 4 + 4 + 3 |
|
||||
| 7 | 4 + 3 | 12 | 4 + 4 + 4 |
|
||||
| 8 | 4 + 4 | N | 行数 = ⌈N/4⌉,前 N mod 行数 行每行多放一个 |
|
||||
|
||||

|
||||
|
||||
几点说明:
|
||||
|
||||
1. **高度参数的含义和 `pointbox` 的 `height` 一样**,是固定高度——内容别写超,超了会画到框外(见下)。数量多时记得**把高度调小**。
|
||||
2. **行数多了会超出页面底部**。经验值:正文区高约 243pt,总高 ≈ `69 + 行数×高度 + (行数−1)×25`(pt)。
|
||||
所以 **4 行时高度不要超过 24pt**。超过时编译日志里会有 `oucslide Warning` 提醒。
|
||||
3. 想让每行放更多/更少,可改 `\l_ouc_pbg_max`(默认 4);间距可改 `\l_ouc_pbg_gap`(横向,默认 8pt)与
|
||||
`\l_ouc_pbg_vgap`(纵向,默认 6pt)。
|
||||
4. 单个要点框仍然可以像以前那样手写 `columns` + `pointbox`,两种用法并存。
|
||||
|
||||
## 代码
|
||||
|
||||
模板可以插入代码块,使用`lstlisting`即可。
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
BIN
Binary file not shown.
+41
-1
@@ -99,7 +99,7 @@
|
||||
\frametitle{颜色}
|
||||
%\framesubtitle{基本颜色}
|
||||
|
||||
根据海大公布的标准颜色,定义了相关颜色,主要包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银。其中文名称和代码如表\ref{table:color}所示。\\
|
||||
根据海大公布的标准颜色,定义了相关颜色,主要包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银,以及后加的苍松绿、暮山紫、琥珀橙。其中文名称和代码如表\ref{table:color}所示。\\
|
||||
当然,也可以使用LaTex自带的颜色,例如white、black等。
|
||||
|
||||
\begin{table}
|
||||
@@ -114,12 +114,52 @@
|
||||
\crule[oucred]{10pt}{10pt} & oucred & 海大红 \\
|
||||
\crule[ouccherry]{10pt}{10pt} & ouccherry & 樱缤粉 \\
|
||||
\crule[oucbrown]{10pt}{10pt} & oucbrown & 文脉棕 \\
|
||||
\end{tabular}
|
||||
\hspace{1.6em}
|
||||
\begin{tabular}{ccc}
|
||||
\textbf{颜色} & \textbf{名称} & \textbf{中文名}\\\toprule
|
||||
\crule[oucgolden]{10pt}{10pt} & oucgolden & 专金 \\
|
||||
\crule[oucsilver]{10pt}{10pt} & oucsilver & 专银 \\
|
||||
\crule[oucpine]{10pt}{10pt} & oucpine & 苍松绿 \\
|
||||
\crule[oucdusk]{10pt}{10pt} & oucdusk & 暮山紫 \\
|
||||
\crule[oucamber]{10pt}{10pt} & oucamber & 琥珀橙 \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
\end{frame}
|
||||
|
||||
\subsubsection{新增颜色的应用}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{新增颜色的应用}
|
||||
|
||||
后加的三种颜色都是\textbf{较深的颜色},和白色文字有足够对比度,
|
||||
可以直接当作色块底色使用,也可以像其他颜色一样用它的浅色等级(如 \texttt{oucpine20})作背景。\\
|
||||
|
||||
\begin{columns}
|
||||
\begin{column}{0.32\textwidth}
|
||||
\begin{pointbox}[苍松绿]{oucpine}{74pt}
|
||||
沉静稳重\\
|
||||
适合与暖色交替\\
|
||||
色相偏青的深绿
|
||||
\end{pointbox}
|
||||
\end{column}
|
||||
\begin{column}{0.32\textwidth}
|
||||
\begin{pointbox}[暮山紫]{oucdusk}{74pt}
|
||||
深紫而不艳\\
|
||||
冷暖之间的过渡\\
|
||||
适合做第三色
|
||||
\end{pointbox}
|
||||
\end{column}
|
||||
\begin{column}{0.32\textwidth}
|
||||
\begin{pointbox}[琥珀橙]{oucamber}{74pt}
|
||||
高饱和的深橘\\
|
||||
与文脉棕差别明显\\
|
||||
强调时比红色柔和
|
||||
\end{pointbox}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\subsubsection{颜色等级}
|
||||
|
||||
\begin{frame}
|
||||
|
||||
@@ -89,6 +89,46 @@
|
||||
\colorlet{oucsilver80}{oucsilver!80!white}
|
||||
\colorlet{oucsilver90}{oucsilver!90!white}
|
||||
|
||||
%% OUC Pine 苍松绿
|
||||
%% 苍松绿:取自中文传统色「苍松」。色相偏青的深绿,沉静稳重,
|
||||
%% 与海大蓝同属冷色系但明显更深、更偏绿,适合与暖色交替使用。
|
||||
\definecolor{oucpine}{RGB}{30, 86, 64}
|
||||
\colorlet{oucpine10}{oucpine!10!white}
|
||||
\colorlet{oucpine20}{oucpine!20!white}
|
||||
\colorlet{oucpine30}{oucpine!30!white}
|
||||
\colorlet{oucpine40}{oucpine!40!white}
|
||||
\colorlet{oucpine50}{oucpine!50!white}
|
||||
\colorlet{oucpine60}{oucpine!60!white}
|
||||
\colorlet{oucpine70}{oucpine!70!white}
|
||||
\colorlet{oucpine80}{oucpine!80!white}
|
||||
\colorlet{oucpine90}{oucpine!90!white}
|
||||
%% OUC Dusk 暮山紫
|
||||
%% 暮山紫:取自中文传统色「暮山紫」(暮色中的远山)。深紫而不艳,
|
||||
%% 兼具蓝色的沉稳与红色的温度,是很好的第三色。
|
||||
\definecolor{oucdusk}{RGB}{92, 58, 118}
|
||||
\colorlet{oucdusk10}{oucdusk!10!white}
|
||||
\colorlet{oucdusk20}{oucdusk!20!white}
|
||||
\colorlet{oucdusk30}{oucdusk!30!white}
|
||||
\colorlet{oucdusk40}{oucdusk!40!white}
|
||||
\colorlet{oucdusk50}{oucdusk!50!white}
|
||||
\colorlet{oucdusk60}{oucdusk!60!white}
|
||||
\colorlet{oucdusk70}{oucdusk!70!white}
|
||||
\colorlet{oucdusk80}{oucdusk!80!white}
|
||||
\colorlet{oucdusk90}{oucdusk!90!white}
|
||||
%% OUC Amber 琥珀橙
|
||||
%% 琥珀橙:取自传统色「琥珀」。高饱和的深橘,
|
||||
%% 与文脉棕(低饱和的暗褐)在饱和度上拉开明显差距,两者不会混淆。
|
||||
\definecolor{oucamber}{RGB}{196, 82, 16}
|
||||
\colorlet{oucamber10}{oucamber!10!white}
|
||||
\colorlet{oucamber20}{oucamber!20!white}
|
||||
\colorlet{oucamber30}{oucamber!30!white}
|
||||
\colorlet{oucamber40}{oucamber!40!white}
|
||||
\colorlet{oucamber50}{oucamber!50!white}
|
||||
\colorlet{oucamber60}{oucamber!60!white}
|
||||
\colorlet{oucamber70}{oucamber!70!white}
|
||||
\colorlet{oucamber80}{oucamber!80!white}
|
||||
\colorlet{oucamber90}{oucamber!90!white}
|
||||
|
||||
%代码注释的颜色
|
||||
\definecolor{mygreen}{rgb}{0,0.6,0}
|
||||
|
||||
|
||||
@@ -125,6 +125,180 @@
|
||||
title=#1
|
||||
}
|
||||
|
||||
%% ======================================================================
|
||||
%% 要点框自动排布:pointboxgrid
|
||||
%% ----------------------------------------------------------------------
|
||||
%% 把任意多个要点自动排成「每行最多 4 个」的网格:
|
||||
%% \begin{pointboxgrid}{高度}
|
||||
%% \pointitem{标题}{颜色}{内容}
|
||||
%% ...
|
||||
%% \end{pointboxgrid}
|
||||
%%
|
||||
%% 排布规则(行数尽可能少,并尽量均匀):
|
||||
%% 1~4 个 → 一行
|
||||
%% 5 个 → 上行 3 + 下行 2
|
||||
%% 6 个 → 3 + 3
|
||||
%% 7 个 → 4 + 3
|
||||
%% 8 个 → 4 + 4
|
||||
%% 9 个 → 3 + 3 + 3
|
||||
%% 10 个 → 4 + 3 + 3
|
||||
%% 11 个 → 4 + 4 + 3
|
||||
%% 12 个 → 4 + 4 + 4
|
||||
%% 一般地:行数 = ceil(N/4),前 N mod 行数 行每行多放 1 个。
|
||||
%%
|
||||
%% 说明:
|
||||
%% - 高度参数与 pointbox 的 height 含义相同(固定高度,内容别超出)。
|
||||
%% - 较多行时请自行减小高度,避免总高超出页面(建议行数 ≤ 4)。
|
||||
%% - 「每行最多几个」由 \ouc_pbg_max 控制;间距由 \ouc_pbg_gap /
|
||||
%% \ouc_pbg_vgap 控制,需要时在导言区改这两个长度。
|
||||
%% ======================================================================
|
||||
\ExplSyntaxOn
|
||||
\int_new:N \l_ouc_pbg_cnt
|
||||
\int_new:N \l_ouc_pbg_n
|
||||
\int_new:N \l_ouc_pbg_rows
|
||||
\int_new:N \l_ouc_pbg_base
|
||||
\int_new:N \l_ouc_pbg_rem
|
||||
\int_new:N \l_ouc_pbg_k
|
||||
\int_new:N \l_ouc_pbg_km
|
||||
\int_new:N \l_ouc_pbg_i
|
||||
\int_new:N \l_ouc_pbg_max
|
||||
\dim_new:N \l_ouc_pbg_est
|
||||
\dim_new:N \l_ouc_pbg_colw
|
||||
\dim_new:N \l_ouc_pbg_gap
|
||||
\dim_new:N \l_ouc_pbg_vgap
|
||||
\dim_new:N \l_ouc_pbg_h
|
||||
\int_set:Nn \l_ouc_pbg_max { 4 }
|
||||
\dim_new:N \l_ouc_pbg_avail
|
||||
\dim_set:Nn \l_ouc_pbg_avail { 243pt }
|
||||
\dim_set:Nn \l_ouc_pbg_gap { 8pt }
|
||||
\dim_set:Nn \l_ouc_pbg_vgap { 6pt }
|
||||
|
||||
%% 收集一个要点:内容按原样存进带索引的宏,不做任何展开
|
||||
\NewDocumentCommand \pointitem { m m m }
|
||||
{
|
||||
\int_incr:N \l_ouc_pbg_cnt
|
||||
\tl_set:cn { l_ouc_pbg_t_ \int_use:N \l_ouc_pbg_cnt } {#1}
|
||||
\tl_set:cn { l_ouc_pbg_c_ \int_use:N \l_ouc_pbg_cnt } {#2}
|
||||
\tl_set:cn { l_ouc_pbg_b_ \int_use:N \l_ouc_pbg_cnt } {#3}
|
||||
}
|
||||
|
||||
%% 画一个要点框:按序号直接取用存好的宏
|
||||
\cs_new_protected:Npn \ouc_pbg_emit:n #1
|
||||
{
|
||||
\begin{pointbox}
|
||||
[ \tl_use:c { l_ouc_pbg_t_#1 } ]
|
||||
{ \tl_use:c { l_ouc_pbg_c_#1 } }
|
||||
{ \dim_use:N \l_ouc_pbg_h }
|
||||
\tl_use:c { l_ouc_pbg_b_#1 }
|
||||
\end{pointbox}
|
||||
}
|
||||
|
||||
%% 列宽 = (正文宽 - (k-1)*间距) / k
|
||||
%% 注:某些 TeX Live 下 expl3 的维度乘法(*)会静默算出 0,
|
||||
%% 因此走 fp_eval + dim_to_fp 的浮点路径,稳妥。
|
||||
\cs_new_protected:Nn \ouc_pbg_setcolw:
|
||||
{
|
||||
\int_set:Nn \l_ouc_pbg_km { \int_use:N \l_ouc_pbg_k - 1 }
|
||||
\dim_set:Nn \l_ouc_pbg_colw
|
||||
{
|
||||
\fp_eval:n
|
||||
{
|
||||
( \dim_to_fp:n { \textwidth }
|
||||
- \int_use:N \l_ouc_pbg_km * \dim_to_fp:n { \l_ouc_pbg_gap } )
|
||||
/ \int_use:N \l_ouc_pbg_k
|
||||
}
|
||||
pt
|
||||
}
|
||||
}
|
||||
|
||||
\cs_new_protected:Nn \ouc_pbg_typeset:
|
||||
{
|
||||
\int_set:Nn \l_ouc_pbg_n { \int_use:N \l_ouc_pbg_cnt }
|
||||
\int_compare:nNnT { \int_use:N \l_ouc_pbg_n } > { 0 }
|
||||
{
|
||||
%% 行数 = ceil(N / max)
|
||||
\int_set:Nn \l_ouc_pbg_rows
|
||||
{
|
||||
\int_div_truncate:nn
|
||||
{ \int_use:N \l_ouc_pbg_n + \int_use:N \l_ouc_pbg_max - 1 }
|
||||
{ \int_use:N \l_ouc_pbg_max }
|
||||
}
|
||||
%% 均匀分配:前 rem 行每行多 1 个(上行不少于下行)
|
||||
\int_set:Nn \l_ouc_pbg_base
|
||||
{
|
||||
\int_div_truncate:nn
|
||||
{ \int_use:N \l_ouc_pbg_n } { \int_use:N \l_ouc_pbg_rows }
|
||||
}
|
||||
\int_set:Nn \l_ouc_pbg_rem
|
||||
{
|
||||
\int_use:N \l_ouc_pbg_n
|
||||
- \int_use:N \l_ouc_pbg_base * \int_use:N \l_ouc_pbg_rows
|
||||
}
|
||||
%% 预估总高度并与正文可用高度比较(公式按实测校准):
|
||||
%% 总高 ≈ 69pt(首行含标题条) + 行数*高度 + (行数-1)*25pt(行间距)
|
||||
\dim_set:Nn \l_ouc_pbg_est
|
||||
{
|
||||
\fp_eval:n
|
||||
{
|
||||
69
|
||||
+ \int_use:N \l_ouc_pbg_rows * \dim_to_fp:n { \l_ouc_pbg_h }
|
||||
+ ( \int_use:N \l_ouc_pbg_rows - 1 ) * 25
|
||||
}
|
||||
pt
|
||||
}
|
||||
\ifdim \l_ouc_pbg_est > \l_ouc_pbg_avail
|
||||
\PackageWarning{oucslide}
|
||||
{
|
||||
要点框共 \int_use:N \l_ouc_pbg_n\space 个,排成
|
||||
\int_use:N \l_ouc_pbg_rows\space 行、每框高 \dim_use:N \l_ouc_pbg_h,
|
||||
预估总高 \dim_use:N \l_ouc_pbg_est\space 已超过正文可用高度
|
||||
\dim_use:N \l_ouc_pbg_avail,可能超出页面底部。
|
||||
请把高度改小(4 行时建议不超过 24pt)或减少要点个数
|
||||
}
|
||||
\fi
|
||||
\int_zero:N \l_ouc_pbg_i
|
||||
\int_step_inline:nn { \int_use:N \l_ouc_pbg_rows }
|
||||
{
|
||||
\int_set:Nn \l_ouc_pbg_k { \int_use:N \l_ouc_pbg_base }
|
||||
%% 注意:此处的比较必须用 \ifnum。
|
||||
%% expl3 的 \int_compare:nNnT 在这套 TeX Live 下判定有误,
|
||||
%% 会把所有 ##1 都判成"小于等于",导致行内个数分配失效。
|
||||
\ifnum ##1 > \int_use:N \l_ouc_pbg_rem \else
|
||||
\int_incr:N \l_ouc_pbg_k
|
||||
\fi
|
||||
\ouc_pbg_setcolw:
|
||||
%% 必须用 [onlytextwidth],否则默认 columns 会带来
|
||||
%% 左/右边距,4 列时左右各溢出约 10pt。
|
||||
\begin{columns}[onlytextwidth]
|
||||
\int_step_inline:nn { \int_use:N \l_ouc_pbg_k }
|
||||
{
|
||||
\int_incr:N \l_ouc_pbg_i
|
||||
\begin{column}{\dim_use:N \l_ouc_pbg_colw}
|
||||
\ouc_pbg_emit:n { \int_use:N \l_ouc_pbg_i }
|
||||
\end{column}
|
||||
}
|
||||
\end{columns}
|
||||
\ifnum ##1 < \int_use:N \l_ouc_pbg_rows
|
||||
\vspace{\dim_use:N \l_ouc_pbg_vgap}
|
||||
\fi
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%% 友好设置:\pointboxsetup{每行最多几个}{横向间距}{纵向间距}
|
||||
%% 例如 \pointboxsetup{5}{6pt}{4pt}
|
||||
\NewDocumentCommand \pointboxsetup { m m m }
|
||||
{
|
||||
\int_set:Nn \l_ouc_pbg_max {#1}
|
||||
\dim_set:Nn \l_ouc_pbg_gap {#2}
|
||||
\dim_set:Nn \l_ouc_pbg_vgap {#3}
|
||||
}
|
||||
|
||||
\NewDocumentEnvironment { pointboxgrid } { m }
|
||||
{ \int_zero:N \l_ouc_pbg_cnt \dim_set:Nn \l_ouc_pbg_h {#1} }
|
||||
{ \ouc_pbg_typeset: }
|
||||
\ExplSyntaxOff
|
||||
|
||||
%文本框textbox
|
||||
\newtcolorbox{textbox}[1]{
|
||||
colback=#1!5!white,
|
||||
|
||||
Reference in New Issue
Block a user