杂记 › 生活随笔 › 口算题卡每张 A4 能排多少题:字号、页边距与信息栏怎么改分页

口算题卡每张 A4 能排多少题:字号、页边距与信息栏怎么改分页

每张 A4 排多少道口算题不是写死的:5.2 mm 字号实测 5 列 18 行、每页 90 题,题数调到 80 会掉到 72,字号推到 3.4 mm 是 105

一、一页 90 道不是写死的

想给一(2)班出一份口算周练,第一版按默认 5.2 mm 字号打出来,一页正好 90 道。我原以为「一张 A4 放多少题」是这页工具里写死的常量,把字号从最小推到最大、把题数从 40 调到 80 才知道不是:字号 3.4 mm 每页 105,9.0 mm 只剩 39;字号不动、只把题数从 40 调到 80,每行题数就从 5 掉到 4,每页题数从 90 变 72。

这页是 儿童口算题卡生成,首屏那组初值还被一年级预设覆写过一遍。生效的排版参数是 A4 纵向、页边距 10 mm、信息栏每页都印、行距 8、题距 6、字号 5.2 mm、每行最多 5 题:实测每题占位 30.41 mm 宽 × 14.34 mm 高,正好铺成 5 列 × 18 行,状态栏那行写「每行 5 题 · 每页 90 题」。

纸张、方向、页边距、信息栏各动一档,其余照首屏,实测的 cols × rows 长这样。

纸张与方向字号 mm每行题数行数每页题数
A4 纵向(首屏默认)5.251890
A4 纵向3.4521105
A4 纵向9.031339
A4 纵向 · 页边距 15 mm5.251785
A4 纵向 · 信息栏不显示5.251995
A4 横向5.251260
A5 纵向5.231236
A5 横向5.25735

二、每页题数是算出来的:cols × rows

分页口径这几行来自横式排版那段代码:

cols    = floor((usableW + colGap) / (itemW + colGap))
rows    = floor((usableH + rowGap) / lineH)
perPage = cols × rows
itemW   = maxSlots × 0.66 × font

拿 5.2 mm 那一档整链走一遍:20 以内加减的题面「□ + □ =」标称 8.86 个字槽,itemW 就是 8.86 × 0.66 × 5.2 = 30.41;A4 纵、页边距 10 mm 时 usableW 实测 190,于是 floor(196 / 36.41) = 5 列,那 196 是 usableW 加题距、36.41 是格宽加题距。行高 lineH 取 5.2 × 1.22 加行距 8 = 14.34;usableH 实测 251.6,floor(259.6 / 14.34) = 18 行;5 × 18 = 90。usableH 扣的是上下页边距、信息栏那 13 mm 带 2 mm 间隔,以及上下各一条安全带。

每个因子都能单独挪走每页题数。字号推到最小 3.4 mm,lineH 只剩 12.15、rows 涨到 21,每页 105;列数却没跟着涨——名义上 floor(196 / 25.88) 已经够 7 列,被「每行最多几题」这个输入的 5 夹住。推到最大 9.0 mm,itemW 涨到 52.63,列数掉成 3、rows 变 13,每页 39。页边距与信息栏那两档见上表:信息栏改「仅首页」不动每页题数,那三档只决定它画在哪几页、单页扣掉的高度一样。

每页题数随字号10510095906842393.44.04.45.25.87.69.0字号 mm

图 1:A4 纵向,每页题数随字号

三、题目本身变宽,也会把列数挤掉

最难想到的是题目自己的宽度。默认那档最宽的题占 8.86 个槽;题数调到 80,卷面冒出两位数,槽位升到 9.86,格宽从 30.41 涨到 33.84,5 列就塞不进 190 的可用宽,cols 变 4、perPage 从 90 降到 72。同一张纸同一个字号,每页题数还会随题量自己变。

四、版面只是分母,题池是分子

第二版我把题数继续加,才发现更早到顶的不是纸,是题池。默认「不出重复,交换律算同一题」下,20 以内加减能枚举出的不重复题共 290 道;改成只看题面,24+15 与 15+24 记两道,池子涨到 380;同时勾上必须进位和必须退位,只剩 97 道;操作数上限设成 5 的幼儿园加减只有 25 道。池子不够时它不静默塞重复:给幼儿园出 40 道,25 道的池子先放宽「重复题」这一档,告警原文是「为了凑满题量,「重复题」已放宽成允许重复」。

五、三道硬上限,触顶都写明丢了几道

还有三道写死的上限:横式单卷 200 题、竖式单卷 80 题、页数 10 页。撞到顶它会写明:A5 横向、9.0 mm 字号出 200 题,perPage 只剩 15,10 页只装得下 150 道,告警直接写「已达到 10 页上限,后面 50 道题没有排版进去」;竖式卷里把题数敲成 120,会先被夹回 80 并提示已按 80 道出卷。

六、同种子可复现,换一套题是种子加 1

出题这头可复现:种子保持 20261028、参数不动,连着生成两次,题面和排列一字不差,首三题恒为「1 + 8」「19 − 4」「13 − 12」。「换一套题」其实是种子加 1,换到 20261029 那一版与旧卷只重叠 7 道;「打乱顺序」只换排列不换题,40 个位置全动过、题面集合一道不变。

七、导出的字节、dpi 和选不中的字

默认参数下单页 PDF 实测 205367 字节,拆开是内嵌那张 JPEG 204557 加容器开销 810;三页 200 题的 PDF 887532 字节。PDF 里字体对象数为 0,也就是不嵌字体——卷面上每个数字都是一张位图,选中、复制、检索都做不到。分辨率分两套:直接打印走 8 px/mm、约 203 dpi,导出走 12 px/mm、页面提示写 305 dpi。多页导 PNG 会自动打包,200 题 3 页那个 ZIP 实测 1253618 字节。打印店要求压小时,压的只是这张位图,与每页题数无关,可走 图片压缩。

这一页说明区那 8 个头条数逐条回测全部命中,一条没被推翻;唯一偏差是单页 PDF 那条:宣传约 207 KB,实测 205.4 KB,高约 0.8%,仍在「约」字里。

八、三个卡过我的问题

Q:一张 A4 到底能放多少题,能不能给个数?

给不了单一值。5 列 × 18 行 = 90 只是 A4 纵向、5.2 mm、页边距 10 mm 这一档的实测;字号 3.4 mm 变 105、9.0 mm 变 39,A5 纵向 36,题数调到 80 又掉到 72。要准数就按自己那张纸出一版。

Q:想让一页多塞题,先动字号还是动题距?

先动字号,但列数有天花板。3.4 mm 那档每页 105 靠的是行数涨到 21,列数仍被「每行最多几题」的 5 夹住;这个输入夹在 1 到 8,不抬上去,按宽度算出的 7 列落不了地。

Q:印出来少了几道题,是丢在页面上还是丢在题池里?

两种都会写明。题池不够时告警会说按现在的上限不重复题一共只有几道;撞到 10 页时写后面 N 道题没有排版进去,N 就是丢掉的道数。

读完这页分页代码,最大的收获是别把「每张纸放多少题」当常量查表:它同时吃字号、页边距、信息栏、行距题距,还吃最长那道题的宽度。纸面生成这一类站内还有一篇把装箱逐格量过的旧文,字帖分页那篇,是另一套控件、另一笔账。

📎 相关文章

同一串 23 字节的内容切换 4 个纠错等级:这一页自己的二维码编码器走到了哪一步 2026-10-30 帧间隔填 137 ms,成品每帧其实停 140 ms:tick 量化、4096 页填充与跟着第一张走的画布 2026-10-30 拼豆图纸的色号是怎么挑出来的:开一次抖动,1024 格里有 150 格被改写 2026-10-30 横图裁掉 25%、竖图裁掉 43.75%:7 个拼图模板逐格算一笔几何账 2026-10-28 浅色底上的白字水印设成 5% 等于没加:导出 4782 字节与底图一字节不差 2026-10-28