列数は例外なく5列
そろばんアプリ SŌBAN に、検定と同じ形の問題用紙を刷る機能を足した。公式の見本を測ってこう報告し、クライアントに「全部5列ではないでしょ」と返された。
要点だけ置く。経緯の全体は本編に譲る。
5列と読み違えてから、面ごとの列数に直すまで
- 紙は React Native(Expo)の中で HTML を組み、
expo-printで PDF にしてexpo-sharingの共有シートに渡す。権限(UsageDescription)は1つも増えない。 - 日本珠算連盟が公開している検定の見本は 28本。最初に測ったのは 6本だけだった。そこから取れた寸法はこう。
| 分かったこと | 値 |
|---|---|
| 用紙 | A4 ではなく B4(257×364mm) |
| 見取算 | 5題を横・10口を縦、列の間隔 133.95pt、1ページ3段で15題 |
| 乗除 | 1題1行に罫線(27.1pt ごと) |
| 式の記号 |
* / =
|
- 書き出した HTML を開くと、日本語が全部化けた(
<meta charset="utf-8">が無い)。問題を<div>で並べていたので縦罫がずれた。全部<table>にすると、罫線は表の仕組みが引くのでずれようがない。 - 紙1枚の箱に B4 の高さを固定していたので、A4 で刷ると白紙が1枚ずつ挟まった。高さは固定しない。
- 列数は「使える幅 ÷ 列の間隔」で決めていた。桁が変わるたびに列数が変わり、刷った紙が揃わない。
- 28本を全部取り直して「例外なく5列」と報告した。各 PDF の1ページ目しか見ていなかった。 用紙は1本が複数の面でできていて、2ページ目の乗除は列数が違う。
| 面 | 列 |
|---|---|
| 見取算・見取暗算(2桁以上) | 5 |
| 見取暗算 7〜10級(1桁) | 10 |
| かけ算・わり算(2種目を左右に載せる級) | 2 |
| かけ算・わり算(1種目だけの面) | 1 |
- 数え方も壊れていた。PDF のテキスト抽出では、1字ずつ置かれた数字が全部 x=0 になる。フォントの字送り(
/W)を読まないと、右揃えの列が 8.6pt ずれて 5列が7列に見える。内容ストリームを1命令ずつ追って、1字ずつの座標を復元した。 - 桁が増えたとき、公式の用紙が減らしているのは列ではなく余白。列を減らす用紙は1本も無い。アプリも5列を固定し、入らないときは間隔を詰める。
- 表題の高さ 154.4pt は、年度・団体名・施行日・採点欄が並ぶ公式の値だった。無い欄の高さを真似て、135pt を白紙で次のページへ送っていた。行の大きさを並べて 76pt を計算で出した。
- A4 の乗除は、公式の行送り 27.1pt だと27行で30題が2枚に割れる。字はそのままで行送りだけ 24.9pt に詰めて、3級の3種目が5ページから3ページになった。
- 公式の見本は全ページ【禁無断転載】。リポジトリには PDF を置かず、取得先・ハッシュ・寸法だけを置いた。
▶ 実物の用紙を渡されていたのに「まだ手元に無い」と書いた朝から、「被りすぎじゃろ!」、テスターの「1枚に」まで、本編にまとめました:
SŌBAN 〜全部5列ではなかった〜(kuroto-blog)
記事に登場したアプリ: