1 Commits
Author SHA1 Message Date
laoyang e38b39310f 新增要点框自动排布环境 pointboxgrid(每行最多 4 个)
把任意多个要点自动排成网格,规则:行数 = ceil(N/4),尽量均匀且上行不少于下行
(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)。

用法:
  \begin{pointboxgrid}{高度}
    \pointitem{标题}{颜色}{内容}
    ...
  \end{pointboxgrid}
另提供 \pointboxsetup{每行最多几个}{横向间距}{纵向间距}(默认 4 / 8pt / 6pt)。

实现要点(本机 expl3 的坑,已在代码注释中说明):
 - 比较一律用 \ifnum:\int_compare:nNnT 在本机 TeX Live 下会把所有 ##1
   都判成“小于等于”,导致行内个数分配失效。
 - 列宽走 \fp_eval:n + \dim_to_fp:n:expl3 的维度乘法(*)在此环境下静默算出 0pt。
 - 要点内容存进带索引的宏、再用 \tl_use:c 取用,避开不可靠的 \exp_after:wN 展开。
 - 必须 \begin{columns}[onlytextwidth],否则默认 columns 的左右边距会让 4 列各溢出约 10pt。

另外:总高超过正文可用高度时给出 oucslide Warning
(总高 ≈ 69 + 行数×高度 + (行数−1)×25 pt;正文可用高度取 243pt)。

已验证:1~12 个排布全部符合规则;TL2022/2023/2024/2025/2026 均 0 错误 0 溢出;
原有内容不受影响(纯新增 174 行)。
2026-10-13 08:32:02 +08:00