縦書きテスター — 2書体を並べて縦に組む
入力した文章を、選んだ書体で縦に組みます(CSS の writing-mode: vertical-rl)。下の欄には、入力した字のうち、その書体では縦書き用の字形にならない字と、書体に無い字を出します(判定の対象は下の表と同じ47字)。
「ちょっと待って」と、彼女は言った。 コーヒーはすっかり冷めていた〜。(午後三時)
「ちょっと待って」と、彼女は言った。 コーヒーはすっかり冷めていた〜。(午後三時)
書体の後ろの数字は、47字のうち縦書き用の字形に置き換わる字の数です(◎○×は主要8字と vmtx での判定なので、◎でも数字が小さい書体があります)。書体は、入力した字だけを Google Fonts から読み込みます(入力の先頭400字から、重複を除いて200字まで)。
縦書きで形が変わる字と、フォント側の準備
縦書きでも、漢字や仮名の多くは横書きと同じ形のまま正立で並びます。ところが句読点・括弧・長音記号・小書きの仮名は、横書きの形のままだと向きや位置が合いません。Unicode の UAX #50(Unicode Vertical Text Layout)は字ごとに縦書きでの扱いを決めていて、このページで数えた47字のうち、句読点と小書きの仮名は「Tu」、長音記号・波線・括弧は「Tr」に分類されています(Unicode 18.0.0 の VerticalOrientation.txt)。
Tu: Characters which are not just upright or sideways, but generally require a different glyph than in the code charts when used in vertical texts. In addition, as a fallback, the character can be displayed with the code chart glyph upright. / Tr: Same as Tu except that, as a fallback, the character can be displayed with the code chart glyph rotated 90 degrees clockwise.
訳:Tu=正立か横倒しかだけでは済まず、縦書きでは一般にコード表とは別の字形が要る字。代替表示として、コード表の字形を正立で表示することもできる。Tr=Tu と同じだが、代替表示はコード表の字形を時計回りに90度回したもの。
出典:UAX #50 Unicode Vertical Text Layout(Unicode 18.0.0・2026-10-05 確認)
縦書き用の字形を用意するのはフォントの役目です。OpenType では vert(Vertical Alternates)という機能が、横書きの字形を縦書き用の字形に置き換えます。仕様には、小書きの「ぁ」を右上に寄せた字形に置き換える例が載っています。
In vertical writing mode, the glyph for HIRAGANA LETTER SMALL A (U+3041 “ぁ”) is transformed into a glyph that is shifted up and to the right, which is properly positioned for upright presentation in vertical writing mode.
訳:縦書きでは、小書きの「ぁ」(U+3041)の字形は、上と右に寄せた字形に置き換えられる。これが縦書きで正立に置くときの正しい位置になる。
出典:OpenType 1.9.1 Registered features u–z(vert)(2024-04-15 版)
CSS の仕様は、縦書きではこの vert を有効にするよう求めています。一方で、フォントが縦書き用の字形を持たない「Tr」の字について、ブラウザが横倒しで補うことは期待していません。
Additionally, font features (such as alternate glyphs and other transformation) intended for use in vertical typesetting must be used. (E.g. the OpenType vert feature must be enabled.) … In the case of Tr characters, if such vertical alternate glyphs are missing from the font, the UA may wish to [RFC6919] (but is not expected to) synthesize the missing glyphs by typesetting them sideways etc.
訳:縦組み用のフォント機能(代替字形など)は使わなければならない(例:OpenType の vert を有効にする)。…Tr の字について、フォントに縦書き用の代替字形が無い場合、UA(ブラウザ)は横倒しにするなどして補ってもよいが、そうすることは期待されていない。
出典:CSS Writing Modes Level 3(W3C 勧告 2019-12-10 版)
Chromium 148 で実際に組んで確かめたところ、縦書き用の字形を持たない字は縦用の形に置き換わらず、横書きの形のまま並びました(Murecho の「ー」、Kosugi Maru の「〜」、Sawarabi Gothic の句読点・括弧・「ー」など)。「ー」が横棒のまま、句読点が横書きと同じ位置のまま並ぶので、縦書きでは目立ちます。逆に、縦書き用の字形に置き換わっても位置まで整うとは限りません。同じ Chromium 148 で Dela Gothic One はかぎ括弧(「 」)が縦書き用の字形に置き換わるものの、隣の字に重なって描かれました。下の表の数字は置き換えの有無なので、仕上がりは上のテスターで確かめてください。Firefox と Safari では確認していません。
このほか、68書体のうち64ファミリーが縦書き用の字送り(vmtx)を持ちます。vpal(縦組みのプロポーショナル詰め)と vkna(縦書き専用の仮名)は、OpenType の仕様で「既定ではオフ」とされる任意の機能で、使うときは CSS の font-feature-settings で指定します。vpal は14ファミリー、vkna は47ファミリーが持っています。
68書体の縦書き対応(47字を1字ずつ)
数字は、その群の字のうち縦書き用の字形(vert)に置き換わる字の数です。句読点4字(、 。 , .)・長音と波線3字(ー 〜 ~)・括弧18字・小書きの仮名22字。群ごとに全部そろう書体は、句読点 48、長音・波線 23、括弧 49、小書き仮名 55ファミリーでした。 判定(◎○×)は実測一覧と同じ基準で、◎=主要8字(、 。 ー 「 」 ( ) 〜)の縦用字形と vmtx がそろう/○=一部が欠ける/×=vert(vrt2)を持たない。「収録の無い字」は書体に字そのものが無く、別の書体で表示される字です。計測は Google Fonts が配布するフォントファイル(400 に最も近いウェイト)を fontTools で読み、vert の単純置換を数えました。
| 書体 | 判定 | 句読点 | 長音・波線 | 括弧 | 小書き仮名 | vmtx | vpal | vkna | 縦用字形にならない字 | 収録の無い字 |
|---|---|---|---|---|---|---|---|---|---|---|
| Noto Sans JP | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | — | なし | なし |
| M PLUS 1p | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | — | なし | なし |
| Noto Serif JP | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | — | なし | なし |
| M PLUS Rounded 1c | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | — | なし | なし |
| Stick | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | — | なし | なし |
| Rampart One | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| Yusei Magic | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| Shippori Mincho | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| BIZ UDPGothic | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| LINE Seed JP | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | — | なし | なし |
| IBM Plex Sans JP | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | — | なし | なし |
| Hachi Maru Pop | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| DotGothic16 | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | — | なし | なし |
| Klee One | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| Shippori Mincho B1 | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| RocknRoll One | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| BIZ UDGothic | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| Kiwi Maru | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| Train One | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| BIZ UDPMincho | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| Reggae One | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | あり | あり | なし | なし |
| Yomogi | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| BIZ UDMincho | ◎ | 4/4 | 3/3 | 18/18 | 22/22 | あり | — | あり | なし | なし |
| Zen Maru Gothic | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Mochiy Pop One | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | ~ | なし |
| Zen Old Mincho | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Kaisei Opti | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | — | 〜 | なし |
| Kaisei Decol | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | — | 〜 | なし |
| Zen Kaku Gothic New | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Zen Kaku Gothic Antique | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Kosugi Maru | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | 〜 | なし |
| Kosugi | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | 〜 | なし |
| Hina Mincho | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | 〜 | なし |
| Yuji Syuku | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | 〜 |
| Murecho | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | ー | なし |
| Zen Antique | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Shippori Antique | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | あり | あり | なし | ~ |
| Yuji Mai | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | 〜 |
| Zen Kurenaido | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Yuji Boku | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | 〜 |
| Kaisei HarunoUmi | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | — | 〜 | なし |
| Zen Antique Soft | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | なし | ~ |
| Kaisei Tokumin | ○ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | — | 〜 | なし |
| Mochiy Pop P One | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | — | あり | ~ | なし |
| Shippori Antique B1 | ◎ | 4/4 | 2/3 | 18/18 | 22/22 | あり | あり | あり | なし | ~ |
| Potta One | ◎ | 4/4 | 2/3 | 18/18 | 21/22 | あり | — | あり | ~ ゎ | なし |
| WDXL Lubrifont JP N | ○ | 3/4 | 2/3 | 18/18 | 22/22 | あり | — | — | , | 〜 |
| Chokokutai | ◎ | 4/4 | 2/3 | 18/18 | 21/22 | あり | — | あり | ~ ゎ | なし |
| New Tegomin | ○ | 2/4 | 1/3 | 18/18 | 22/22 | あり | — | あり | , . ~ | 〜 |
| Tsukimi Rounded | ○ | 2/4 | 2/3 | 16/18 | 21/22 | あり | あり | あり | ヮ | , . 〜 { } |
| Sawarabi Mincho | ○ | 4/4 | 2/3 | 12/18 | 19/22 | なし | — | — | ~ ( ) [ ] { } ヮ ヵ ヶ | なし |
| Cherry Bomb One | ○ | 2/4 | 1/3 | 10/18 | 22/22 | あり | — | あり | 〜 | , . ~ 【 】 〈 〉 《 》 [ ] |
| M PLUS 1 | ◎ | 2/4 | 2/3 | 8/18 | 22/22 | あり | — | あり | , . ~ 【 】 〔 〕 《 》 [ ] { } | なし |
| M PLUS 2 | ◎ | 2/4 | 2/3 | 8/18 | 22/22 | あり | — | あり | , . ~ 【 】 〔 〕 《 》 [ ] { } | なし |
| M PLUS U | ◎ | 2/4 | 2/3 | 8/18 | 22/22 | あり | — | あり | , . ~ 【 】 〔 〕 《 》 [ ] { } | なし |
| Aoboshi One | ◎ | 2/4 | 2/3 | 4/18 | 22/22 | あり | — | あり | ~ [ ] | , . 『 』 【 】 〔 〕 〈 〉 《 》 { } |
| Palette Mosaic | ○ | 2/4 | 1/3 | 2/18 | 22/22 | あり | — | あり | なし | , . 〜 ~ 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } |
| Shizuru | ○ | 2/4 | 1/3 | 2/18 | 22/22 | あり | — | あり | なし | , . 〜 ~ 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } |
| Rock 3D | ○ | 2/4 | 1/3 | 2/18 | 22/22 | あり | — | あり | なし | , . 〜 ~ 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } |
| Yuji Hentaigana Akari | ○ | 2/4 | 1/3 | 0/18 | 10/22 | あり | — | あり | なし | , . 〜 ~ 「 」 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ |
| Yuji Hentaigana Akebono | ○ | 2/4 | 1/3 | 0/18 | 10/22 | あり | — | あり | なし | , . 〜 ~ 「 」 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ |
| Monomaniac One | ○ | 0/4 | 0/3 | 12/18 | 0/22 | あり | — | — | 、 。 ー 〜 ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | , . ~ ( ) [ ] { } |
| Darumadrop One | ○ | 0/4 | 0/3 | 12/18 | 0/22 | なし | — | — | 、 。 ー 〜 ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | , . ~ ( ) [ ] { } |
| Slackside One | ○ | 0/4 | 0/3 | 12/18 | 0/22 | あり | — | — | 、 。 ー 〜 ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | , . ~ ( ) [ ] { } |
| Dela Gothic One | ○ | 2/4 | 1/3 | 2/18 | 0/22 | あり | — | — | , . 〜 ~ 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | なし |
| Sawarabi Gothic | × | 0/4 | 0/3 | 0/18 | 0/22 | なし | — | — | 、 。 , . ー 〜 ~ 「 」 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | なし |
| M PLUS 1 Code | × | 0/4 | 0/3 | 0/18 | 0/22 | あり | — | — | 、 。 ー 「 」 『 』 ( ) 〈 〉 ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | , . 〜 ~ 【 】 〔 〕 《 》 [ ] { } |
| Kapakana | × | 0/4 | 0/3 | 0/18 | 0/22 | なし | — | — | 、 ー ぁ ぃ ぅ ぇ ぉ っ ゃ ゅ ょ ゎ ァ ィ ゥ ェ ォ ッ ャ ュ ョ ヮ ヵ ヶ | 。 , . 〜 ~ 「 」 『 』 ( ) 【 】 〔 〕 〈 〉 《 》 [ ] { } |
字ごとの集計 — そろいにくいのは波線と全角の約物
68書体のうち、縦書き用の字形を持つ書体が少ない字は、「~」36ファミリー・「〜」42ファミリー・「,」48ファミリー・「.」49ファミリーの順です。「〜」(波ダッシュ U+301C)と「~」(全角チルダ U+FF5E)は見た目が似ていても別の字で、片方だけ縦書き用の字形を持つ書体が30ファミリーあります。UAX #50 の分類は Unicode 18.0.0 の値です。
| 字 | 符号位置 | UAX #50 | 縦用字形あり | 置換なし | 収録なし |
|---|---|---|---|---|---|
| 句読点 | |||||
| 、 | U+3001 | Tu | 62 | 6 | 0 |
| 。 | U+3002 | Tu | 62 | 5 | 1 |
| , | U+FF0C | Tu | 48 | 7 | 13 |
| . | U+FF0E | Tu | 49 | 6 | 13 |
| 長音・波線 | |||||
| ー | U+30FC | Tr | 61 | 7 | 0 |
| 〜 | U+301C | Tr | 42 | 13 | 13 |
| ~ | U+FF5E | Tr | 36 | 12 | 20 |
| 括弧 | |||||
| 「 | U+300C | Tr | 63 | 2 | 3 |
| 」 | U+300D | Tr | 63 | 2 | 3 |
| 『 | U+300E | Tr | 58 | 3 | 7 |
| 』 | U+300F | Tr | 58 | 3 | 7 |
| ( | U+FF08 | Tr | 55 | 4 | 9 |
| ) | U+FF09 | Tr | 55 | 4 | 9 |
| 【 | U+3010 | Tr | 54 | 5 | 9 |
| 】 | U+3011 | Tr | 54 | 5 | 9 |
| 〔 | U+3014 | Tr | 55 | 5 | 8 |
| 〕 | U+3015 | Tr | 55 | 5 | 8 |
| 〈 | U+3008 | Tr | 57 | 3 | 8 |
| 〉 | U+3009 | Tr | 57 | 3 | 8 |
| 《 | U+300A | Tr | 54 | 5 | 9 |
| 》 | U+300B | Tr | 54 | 5 | 9 |
| [ | U+FF3B | Tr | 50 | 7 | 11 |
| ] | U+FF3D | Tr | 50 | 7 | 11 |
| { | U+FF5B | Tr | 50 | 6 | 12 |
| } | U+FF5D | Tr | 50 | 6 | 12 |
| 小書き仮名 | |||||
| ぁ | U+3041 | Tu | 61 | 7 | 0 |
| ぃ | U+3043 | Tu | 61 | 7 | 0 |
| ぅ | U+3045 | Tu | 61 | 7 | 0 |
| ぇ | U+3047 | Tu | 61 | 7 | 0 |
| ぉ | U+3049 | Tu | 61 | 7 | 0 |
| っ | U+3063 | Tu | 61 | 7 | 0 |
| ゃ | U+3083 | Tu | 61 | 7 | 0 |
| ゅ | U+3085 | Tu | 61 | 7 | 0 |
| ょ | U+3087 | Tu | 61 | 7 | 0 |
| ゎ | U+308E | Tu | 59 | 9 | 0 |
| ァ | U+30A1 | Tu | 59 | 7 | 2 |
| ィ | U+30A3 | Tu | 59 | 7 | 2 |
| ゥ | U+30A5 | Tu | 59 | 7 | 2 |
| ェ | U+30A7 | Tu | 59 | 7 | 2 |
| ォ | U+30A9 | Tu | 59 | 7 | 2 |
| ッ | U+30C3 | Tu | 59 | 7 | 2 |
| ャ | U+30E3 | Tu | 59 | 7 | 2 |
| ュ | U+30E5 | Tu | 59 | 7 | 2 |
| ョ | U+30E7 | Tu | 59 | 7 | 2 |
| ヮ | U+30EE | Tu | 57 | 9 | 2 |
| ヵ | U+30F5 | Tu | 58 | 8 | 2 |
| ヶ | U+30F6 | Tu | 58 | 8 | 2 |
CSS で縦書きにする
writing-mode: vertical-rl で縦書きになります。text-orientation の初期値 mixed のままなら、漢字や仮名は正立、英字は横倒しで並びます。2桁の数字などを横に並べて1字分に収めるときは text-combine-upright: all、vpal を持つ書体で字間を詰めるときは font-feature-settings: "vpal" を指定します。
.tategaki {
writing-mode: vertical-rl; /* 縦書き・行は右から左へ */
font-family: "Noto Sans JP", sans-serif;
}
.tategaki .tcy {
text-combine-upright: all; /* 「12」などを1字分に収めて縦中横にする */
}
.tategaki.tsume {
font-feature-settings: "vpal"; /* 縦組みの詰め(vpal を持つ書体だけ変わる) */
}書体の読み込み方は使い方・ダウンロードにまとめ、そこで埋め込みコードを作れます。縦書き用の字形がそろう書体は用途別のおすすめからも選べます。
タイポグラフィ・デザイン書籍
デザイン書籍を読み放題・聴き放題でPR
縦組みや文字組みの参考書は、Amazonの定額サービスで対象タイトルを追加料金なしで読んだり聴いたりできます。