約物の半角化:text-spacing-trimを実案件に入れた記録
和文の約物、つまり「」や()、句読点は、全角の枠の半分ほどが空白になっている。これが連続すると「)。」のように空きが重なり、行の途中に穴があいたように見える。
紙の組版では当然のように詰められてきたが、Webでは長らく対処が難しかった。CSSのtext-spacing-trimが主要ブラウザで使えるようになったので、本誌の記事テンプレートに導入した経緯を記録しておく。
導入した指定
.prose { text-spacing-trim: trim-start; } trim-startは行頭の始め括弧を半角にし、約物の連続を詰める。行末の処理まで含めたspace-allとの比較も行ったが、本文ではtrim-startが最も紙面に近い印象になった。
楽になったこと
以前は、記事データを保存するときにJavaScriptで約物をspanで囲み、個別に字間を調整していた。この処理が不要になり、CMSから受け取ったHTMLをそのまま表示できるようになった。検索エンジンに渡る本文にも余計な要素が入らない。
残った課題
未対応のブラウザでは、従来どおり空きが広いまま表示される。ただし読めなくなるわけではないので、段階的な改善として受け入れた。
もう一つは、Webフォントの側で約物の字幅情報(OpenTypeのhaltやchws機能)を持っていない書体では効果が出ないことだ。書体を選ぶ段階で、約物の処理に対応しているかを確認する項目を追加した。
校正の観点から
表示上の詰めが自動化されても、原稿の段階で約物の使い方を揃える作業は残る。全角と半角のかっこが混在していれば、どれだけ組版が賢くなっても揃わない。入稿ルールに「かっこは全角に統一」と明記したのは、この導入作業の副産物だった。