約物 (句読点 / 記号)
文章中で使われる句読点、括弧、引用符、感嘆符などの記号類の総称。言語や地域によって種類・用法・文字幅が異なり、文字数カウントや組版に影響する。
約物 (やくもの、punctuation marks) は、文の構造や意味を明確にするために使われる記号類の総称です。句点「。」、読点「、」、感嘆符「!」、疑問符「?」、括弧「()」、引用符「「」」などが含まれます。日本語の組版では約物の扱いが特に複雑で、文字数カウントや行の折り返しに直接影響します。
日本語と英語では約物の体系が大きく異なります。日本語の句点「。」と読点「、」は全角文字で、それぞれ 1 文字分の幅を占めます。英語のピリオド「.」とカンマ「,」は半角文字で、後ろにスペースを伴います。この違いは文字数カウントに直接影響し、同じ内容の文章でも日本語版と英語版で約物が占める文字数の割合が異なります。
日本語の組版規則を定めた JIS X 4051:2004 (日本語文書の組版方法) は、約物を文字クラスに分け、クラスごとに字幅とクラス間の空き量を規定しています。句点類・括弧類・中点類は半角幅、感嘆符や疑問符のような区切り約物は全角幅という具合です。全角の枠に半角幅の約物が収まる形になるため、約物が連続すると空きが目立ちます。ウェブでは従来 font-feature-settings でフォント側の字形機能を指定して詰めてきましたが、2026 年 8 月時点では約物のアキを直接扱う text-spacing-trim も使えます。ただしこのプロパティは CSS Text Module Level 4 の実験的な機能で、対応は Chromium 系のブラウザに限られ、さらにフォントに OpenType の halt または chws の機能が無ければ効きません。
禁則処理は約物に関する重要な組版ルールです。JIS X 4051 は、終わり括弧類・句点類・中点類・ハイフン類などが行頭に来てはならない (行頭禁則)、始め括弧類が行末に来てはならない (行末禁則) と規定しています。これを守るために、はみ出した文字を前の行へ詰める追い込みや、次の行へ送る追い出しを行います。ブラウザでは句点や終わり括弧が行頭に来ないことは既定の折り返し規則で守られるため、line-break の指定は必須ではありません。line-break: strict が追加で禁じるのは、小書きの仮名 (っ・ゃ など) や長音記号を行頭に置く折り返しです。繰り返し記号 (々 など) は既定の設定でも行頭に来ませんが、loose はこれらすべての折り返しを許します。ただし追い込みと追い出しのどちらを選ぶか、分離禁止をどこまで守るかといった細部まで CSS で再現できるわけではありません。
SNS やメッセージアプリでは、約物の文字数カウントが実用上の問題になります。X (旧 Twitter) の上限 280 は重み付きの単位で、全角の句読点や括弧は 1 文字を 2 と数えるため、日本語の投稿は約物を含めて実質 140 文字が上限になります。半角のピリオドやカンマは 1 と数えられるので、同じ役割の記号でも全角か半角かで残りの字数が変わります。文字数を詰めたい場面では、句読点を打たずに改行や送信の区切りで文を分ける書き方も見られます。
プログラミングにおいて、約物は構文上の意味を持つ特殊文字です。セミコロン、波括弧、角括弧、ドット、コロンなどは言語の構文要素であり、構文として書くべき位置に全角の記号を使うと、コンパイル時または実行時にエラーになります。日本語入力モードの切り替え忘れで混入した全角の約物は字形が半角とよく似ているため、画面上で見分けにくく、エラーメッセージも予期しない文字がある程度しか教えてくれないことがあります。やや厄介なのは文字列リテラルやコメントの中に混入した場合で、構文エラーにならず、比較が一致しない・検索で見つからないという形で後から表面化します。エディタで不可視文字と全角文字を可視化する設定にしておくか、静的解析ツールで検出するのが現実的な対策です。