章 8 · 部 II · 技法
日本語の組版
Postextが日本語を縦組みと横組みで組む方法。日本の地域設定、禁則処理、約物のアキ、段落先頭の括弧、縦組み用の字形、ルビ、圏点と傍線、漢文訓読、番号付け、行取りの見出し、注、五十音順の索引、引用、フォント、青空文庫のテキスト
かんたんな説明
このページでは、Postextが日本語の文章をどのようにページに並べるかを説明します。日本語の本は、上から下へ書いた行を右から左へ読む形でも、このページのように横書きでも作れます。日本語の文書では、行の区切り方、句読点や括弧のまわりの空き、漢字の脇に小さく付ける読みがな、強調の印が、日本語の決まりに従います。ほかに、注、漢字で書く数字、決まった行数を使う見出し、読みの順に並べる巻末の索引、青空文庫の作品の取り込み方も取り上げます。最後に、2つの設定の例と、まだできないことを挙げています。
日本語のページでは4種類の文字が正方形の升目の上に混ざり合い、約物のアキまでがテキストの一部です。
Postextは、1つのMarkdownソースと1つの設定から、日本語を縦組みでも横組みでも組みます。文書の言語が日本語であれば、行は禁則処理に従って分割され、括弧や読点には日本語の組版で与えるアキが付き、約物が連続するところではそのアキが詰められます。段落を始める括弧は多くの小説と同じ位置に置かれ、小書きの仮名や縦組みの行の約物は縦組み用の字形になり、ルビは親文字の上に1:2:1で配置され、強調した語にはゴマ点の圏点が付き、章番号は第一章となり、索引は読みの順に並びます。postext 1.16以降、これらはすべてlocale: 'ja'から決まります。それより前のバージョンでは、日本語を中国大陸の既定値で組んでいました。このページでは、エンジンが何を行い、どの設定がそれを制御するかを説明します。すべてのキーとその既定値は設定リファレンスに、マークアップは文書形式にあります。
規則は、W3Cの『日本語組版処理の要件』(JLReq。以下では節番号で参照します)と、JLReqが解説している日本の規格JIS X 4051に従っています。仕組みの多くは中国語と共通で、このページでは触れるだけの部分(文字グリッド、縦組みのページの回転した枠、右綴じ、各出力)は中国語の組版で説明しています。出典は末尾に挙げます。
#日本の地域設定
localeが日本語(ja、ja-JP、ja-Jpan。大文字・小文字は問わず、-でも_でもかまいません)の文書は、cjk設定のjapan地域を使います。'auto'のままのcjkフィールドはすべて日本の慣習に解決され、注、索引、引用、組み込みの語句も同様です。cjk.region: 'japan'は手動でも設定でき、どの文書でもページを日本語の規則で組めます。その場合も、組み込みの語句と、注・索引・引用の既定値は文書の言語に従います。Sandbox(ブラウザーで動く編集環境)の文書の言語セレクトに表示される一覧DOCUMENT_LANGUAGESでは、日本語は中国語の項目とアラビア語の間にあります。
#ロケールで変わる設定
| 設定 | 日本(ja) | 中国大陸(zh-Hans) |
|---|---|---|
行分割(lineBreak) | ja-very-strict:小書きの仮名、ー、々、〜は行頭に来ない | gb |
約物の幅(punctuationWidth) | fullwidth。JLReqの約物の連続の詰めを伴う。行末の終わり括弧類は、行に必要になるまで二分のアキを保つ | kaiming |
段落中の?と!(spaceAfterQuestion) | 後ろに全角アキ | アキなし |
段落を始める括弧(paragraphStartBracket) | half:字下げの後半に置く | ほかの行頭と同じ |
ぶら下げ(hangingPunctuation) | allow。、。,.のみ | none |
*…*(emphasis、emphasisMark) | テキストの上にゴマ点(縦組みでは右) | テキストの下に点 |
:book[…](bookTitleMark、bookTitleBrackets) | 『』。その内側では「」 | 《》。その内側では〈〉 |
割注の括弧(warichu.open、close) | () | なし |
ルビ(ruby.overhang、ruby.align) | かなにだけ掛け、1:2:1で配置 | ルビのない隣接文字ならどれにでもルビ文字の1/4まで掛け、中付き |
{漢字|かん|じ} | 熟語ルビ | モノルビ |
番号付けのトークン一 | japanese-informal:百一 | simp-chinese-informal:一百零一 |
| 縦組みの本の注 | 章の後(後注)。合印(1)は行の右 | 段の地 |
索引のグループ(index.groupBy) | 読みによる五十音の行(あ行、か行…) | ピンインの頭文字 |
| 引用のロケール | ja-JP | zh-CN |
| 図、表、表の続き | 図、表、(続き) | 图, 表, (续) |
組み込みの語句も日本語になります。相互参照は第3章、2.3節、12ページと表示し、参考文献の見出しは参考文献、分割された表や囲みには次ページへ続くと入ります。索引は記号と数字のグループに記号と数字の見出しを付け、相互参照を矢印で書きます(金之助 →夏目漱石。ページ番号の後では→夏目漱石、森鷗外も見よ)。EPUBはナビゲーションに目次、表紙、本文と名前を付けます。日本語の項目がない文字列の表では英語が使われ、中国語にはなりません。図と表の種類は章ごとに番号を振り、キャプションは図1-1 東京の地図となります。ラベルと番号の間はベタ、テキストの前に全角スペースを入れ、句点は付けません(JLReq §4.3)。:refは図1-1、表の続きは表1-1 東京の区(続き)と表示します。これらは日本語の文書でのcaptionStyle.labelNumberGapとlabelSeparatorの既定値で、そこに値を設定すればそちらが優先されます。ハイフネーションは、ほかのCJKの文書と同じく、欧文の語に対して有効にしない限りオフです。
出力にも同じ言語タグが宣言されます。HTML文書とその各ページはlang="ja"を持ち、Canvasはctx.langを指定して描画し、PDFは/Lang (ja)を宣言して、日本語の字形でテキストをシェーピングします(フォントを参照)。Unicodeでは直、骨、角はそれぞれ1つのコードポイントですが、日本語の書体と中国語の書体では字形が異なります。
#漢字・かな・ローマ字
日本語の行には、漢字、ひらがな、カタカナ、そしてローマ字(ラテン文字と数字)が混在します。Postextでは、これらを区別するための指定は不要です。単語間のスペースよりCJKの文字(漢字とかなの両方を数えます)の多い段落はCJKの組版処理で1字ずつ組まれ、その中の欧文の語や数字は、行がその内部で分割されない1つの単位になります。和欧間には四分アキ(cjk.latinSpacing)を入れ、両端そろえの行ではこれを二分まで広げられます(JLReq §3.2.2)。著者がそこに入力したスペースはこのアキに置き換えられ、アキに加算はされません。日本語の文には語間のスペースがないため、2つの日本語の語の間に入力したスペースは、スペースのまま残ります。
修正ヘボン式のローマ字は長音符号(マクロン)を使うので(Tōkyō、Sōseki)、書体にその字形が必要です。Postextは、書体にない字形をほかのファミリーから借りません。ほかの言語の語は、:ltr[the Meiji era]{lang=en}のようにアイソレートでタグ付けできます。HTMLはそれをlang="en"とし、PDFは独自の/Langを持つ/Spanに入れて、その言語の字形でシェーピングします。全角の英数字(K、12)は日本語の文字として扱われ、縦組みでは正立し、それぞれ全角1字分を占めます。
半角カタカナ(カタカナ)は書籍では使いません。全角で入力するか、青空文庫の変換ツールで変換してください。波ダッシュ〜(U+301C)と、Windowsのテキストで代わりに使われる全角チルダ~(U+FF5E)は、どちらも日本語のハイフン類として扱います。
#日本語の章のMarkdown
日本語は、ほかの言語と同じMarkdownで書きます。中国語の章と同じく、次の便利な扱いがあります。
- どこで折り返してもかまいません。2つの日本語の文字の間の改行は削除されるので、エディターでソースを任意の幅で折り返せます。
- 字下げは設定で行います。日本語の段落は1字下げにします(
bodyText.firstLineIndent: { value: 1, unit: 'em' })。段落の先頭の全角スペース(U+3000)はパーサーが削除するので、全角スペースで字下げしたソースも、そうでないソースと同じように字下げされます。 - マークアップはASCIIで入力します。日本語の入力システムでは
:::、#、[^1]が入力されますが、これらはテキストとして印字され、ビルドはその行を、入力すべきASCIIの形とともにfullwidthMarkupとして報告します。属性値は「…」で囲んでもかまいません。 - IDとファイル名は、かなと漢字を濁点も含めてそのまま保ちます。がっこうという題の章は、その名前で保存されます。
#横組み
この節の規則は、縦組みの行でもすべて同じように働きます。縦組みで変わる点は次の節で補います。組版処理は中国語と同じものです(中国語の組版 › 横組みを参照)。日本の地域設定は、JLReqがclreqと異なるところでその規則を変えます。
#禁則処理
禁則処理は、ある文字が行頭に、別の文字が行末に来ないようにする処理です。cjk.lineBreakには、JLReq付録C.3の3つの慣習にならった日本語の3つのレベルがあります。中国語のレベルも引き続き使えます。
| レベル | 行頭に来ない文字 | 用途 |
|---|---|---|
ja-very-strict | 終わり括弧類(」』)〕】)、読点類と句点類(、,。.)、ハイフン類(‐ – ゠ 〜 ~)、区切り約物(?!‼⁇⁈⁉)、中点類(・:;)、繰返し記号(ゝゞヽヾ〻と々)、長音記号(ー)、小書きの仮名(ぁぃぅぇぉっゃゅょゎゕゖ ァィゥェォッャュョヮヵヶ ㇰ–ㇿ)、単位記号(% ℃)。 | JIS X 4051の既定。日本の地域設定の既定。 |
ja-strict | ja-very-strictと同じですが、小書きの仮名、ー、々は行頭に来てもかまいません。 | 一般書籍(JLReqの「strict」)。 |
ja-loose | 終わり括弧類、読点類(、,)、句点類(。.)のみ。ハイフン類、?!、中点類、繰返し記号、小書きの仮名、ーは行頭に来てもかまいません。 | 新聞(JLReqの「loose」)。 |
日本語のどのレベルでも、始め括弧類で行が終わることはなく、通貨記号は数字から離れず(ja-looseを除く)、斜線には規則がありません(その規則はGB/T 15834のものです)。2倍ダッシュ――と2倍の3点リーダー……は、JLReqが認めるとおり行頭に来てもかまいませんが、分割はされません。〳〵も同様です。数字は符号や単位と離れず(¥1,500、50%)、欧文の語は行より長くない限り分割されず、注の合印は行頭に来ません。合印は前の文字と一緒に置かれます。
次の文字が行頭に来られないとき、組版処理はまず、下に示すJLReqの順で行内のアキを詰めてその文字を行に収めようとし(追い込み)、それができない場合にだけ、前の文字を次の行へ送ります(追い出し)。行頭の々を、繰り返している元の漢字に置き換えることはしません(JLReqはこの慣行に触れていますが、テキストが変わってしまいます)。
かなで組む絵本や低学年向けの読み物では、文節の間にスペースを入れ(分かち書き、むかし むかし、 ある ところに)、そこでだけ改行します。cjk.wordBreak: 'keep-all'はこの方式で改行します。改行するのは、スペース(U+0020またはU+3000)の位置と、レベルが許す約物の隣(、。」の後、「の前)だけで、2つの文字(かな、漢字、欧文)の間では改行しません。スペースの位置でもレベルの規則は適用され、行より長い文節は、そのレベルに従って文節の内部で分割されます。普通の文章の本に初等読本を引用する場合などは、段落スタイルのwordBreakで個別に設定できます。両端そろえの行は、余りをまずスペースに1つあたり二分まで配分し、次に文字の間に配分します。リフロー型のEPUBはword-break: keep-allを書き出します。語(어절)の間にスペースを入れる韓国語も、同じ設定を使います。
#約物のアキ
日本語の約物は全角で組みます。字形が二分を占め、残りの二分がアキで、始め括弧類の前、終わり括弧類の後、、。の後に付きます。・:;は全角の中央に置かれて前後に四分ずつのアキを持ち、?!は全角を占めます。日本語の組版で調整するのは、このアキです(JLReq §3.1)。
- 約物の連続。2つの約物が隣り合うところでは、空白の二分を1つ取り除きます。」、 「「 、「 」「 。」は全角2字分ではなく全角1字半になり、」・では2つの字形の間に四分アキが残ります(JLReq §3.1.4)。
compressAdjacentでオフにできます。 - 行末。行末の終わり括弧類は二分のアキを保ちます。行にもう1字収める必要があるとき最初に詰めるアキで、すべて詰めるか、まったく詰めないかのどちらかです。
- 行の途中では、。の後のアキは詰めません。中点類の四分アキは、括弧類や、の二分アキより先に詰めます。
- 疑問符と感嘆符(?!)は、文が続くとき、後ろに全角アキを入れます(JLReq §3.1.6):本当? そう思う。終わり括弧類やほかの?!の前、段落末や行末では入れず、著者がそこにU+3000を入力していれば重ねて入れません。このアキは伸縮しません。
cjk.spaceAfterQuestionでオフにできます(ほかの地域ではオンにできます)。 - 漢数字。2つの漢数字の間の、と・はベタで組み、そこで改行しません(二、三日、三・一四)。
行がわずかに長すぎるときは、次の順でアキを詰めます(JLReq §3.8.3)。語間のスペース、行末の約物の後の二分(すべてか、まったく詰めないか)、行末の中点類の四分、行内の中点類の四分、括弧類と読点(、,)の二分、最後に和欧間のアキを八分まで。行が短いときは、中国語の行と同じく文字の間に配分しますが、始め括弧類の後と終わり括弧類の前、および、。・:;?!や全角スペースの隣にはアキを加えません(JLReq §3.1.11)。
#段落先頭の括弧
1字下げの段落は、括弧で始まることがあります。小説の会話文の多くがそうです。JLReq §3.1.5はその組み方を3通り挙げており、cjk.paragraphStartBracketでそのどれかを選びます。
'indent'(①):字下げを残し、括弧はその後に全角1字を取ります。'half'(③、日本の既定):括弧が字形の前の空白を詰め、字形が字下げの後半を占めます。本文は、ほかの段落の本文と位置がそろいます。字下げが全角2字なら、本文は全角2字下がった位置から始まります。'flush'(天付き):括弧を字下げなしで行頭に置きます。
これは1行目に字下げのある段落にだけ適用され、ぶら下げインデントの段落や字下げのない段落はそのままです。中国語の地域では、'auto'は従来どおり括弧をほかの行頭と同じように組みます。段落の途中で折り返した行の先頭にある括弧は、常に天付きで組みます(trimLineStart、日本ではオン)。
#ぶら下げ
cjk.hangingPunctuationの既定値は'auto'です。日本ではこれが'allow'になり、本来なら次の行の先頭に来てしまい、追い込みでも行に収められない句読点(、。,.)を行末の外にぶら下げます。横組みでも縦組みでも同じです。?!、括弧類、中点類はぶら下げません。ほかの地域では'auto'は従来どおり'none'です。'force'は行末に来るこれらの約物をすべてぶら下げ、'none'はぶら下げをオフにします。
#両端そろえと段落の最終行
日本語の本文は両端そろえで組み、段落の最終行はベタ組みにします。字間に二分を超えるアキが必要になる行は、行長に満たないまま組んでcjkLooseLineとして報告します(ハイフネーションと両端そろえを参照)。bodyText.avoidRuntsがオン(既定)のときは、段落が1字だけの行で終わることはありません(泣き別れ)。まず前の行が、ゆるい行を生まない範囲で約物のアキを詰めてその字を取り込もうとし、それができない場合にだけ、前の行から1字を送ります。
#縦組み
layout.writingMode: 'vertical-rl'で、本は縦組み・右綴じになり、最初のページは左ページになります(JLReq §2.3)。ページのモデルは中国語と同じです。段、右綴じ、図、各出力については中国語の組版 › 縦組みを参照してください。日本語の本について、改めて挙げておく点が2つあります。段は順に埋められ、章の終わりでそろえられません(成り行き)。横組みの本の段組みはそろえられます。また、見出しスタイルは独自の組方向を持てるので、縦組みの本の巻末で索引や参考文献を横組みにできます。そうした本は多くあります。
#縦組み用の字形
日本の地域設定では、各文字をJLReq §3.1とUAX #50のとおりに配置します。
- 小書きの仮名(ぁ っ ャ ㇰ)は、横組みの字形より右上に寄った、フォントの縦組み用字形を使います。縦組み用字形のない書体では、代わりに字形を約八分ずらします。
- 句読点(、。,.)は、中国大陸と同じく全角枠の右上に置きます。コロンとセミコロン(:;)は90度回転させます。疑問符と感嘆符(!?)は中央に正立させます。中黒(・)は全角を占めます。
- 引用符(“ ”)は横組み専用で、縦組みの行では〝 〟で印字します。CanvasとPDFでは、コピーと検索のためにテキストは“ ”のまま保たれ、HTMLでは〝〟がコピーされます。‘ ’は回転させます。
- 括弧類、ー、〜、ダッシュは、行の方向に合わせて向きを変えます。
- くの字点(〳〵)は、2つのかなの繰り返しを表す縦組み専用の記号で、2字分の高さを占め、分割されません。
Sandboxがフォントファミリーのvert版を読み込んでいれば、Canvasはフォント自身の縦組み用字形を使い、PDFは縦組み用のフォントを通してそれを描画します(中国語の組版 › 出力形式ごとの縦組みを参照)。
#縦中横
2桁までの数字は1字分の枠に正立させます(cjk.uprightDigits、既定は2)。中国語と同じく、:tcy[…]、:upright[…]、:sideways[…]で手動でも指定できます。日本では、!!、!?、?!、??の組み合わせも、半角でも全角でも1字分の枠に正立させます(すごい!?)。全角の組み合わせは半角の記号で描画するので、画線を半分に細らせずに全角1字に収まります。欧文の語に接する組み合わせ(Wow!!)、3つ目の記号が続くもの(!!!)、数字に接するものはそのままです。このような枠は行頭に来ません。
#ページ・段・ノンブル
縦組みの日本語の本は、ふつうノンブルを地にアラビア数字で入れます。デザインで小口に縦のノンブルを置く場合は漢数字にします。page.pageNumbering.format: 'cjk-decimal'は105ページを一〇五と書きます。ノンブルに使う位取りの形です(JLReq §2.6)。章は奇数ページから始め、右綴じの本ではそれは左ページです(breakBefore: { enabled: true, parity: 'odd' })。縦組みのテキスト要素の小口の柱は、日本語の本でもそのまま使えます。
#ルビ
ルビ(振り仮名)は漢字の脇に付けるかなの読みで、横組みでは上、縦組みでは右に置きます。:ruby[…]と簡略形の{…|…}で、中国語のピンインと同じように付けられます。日本語では、読みを親文字にどう割り振るか、隣の文字にどこまで掛けてよいか、短いルビをどう配置するか、の3点が加わります。
#モノルビ・グループルビ・熟語ルビ
{東京|とう|きょう}に行く。{紫陽花|あじさい}が咲いた。
:ruby[昨日]{rt="きのう" mode=group}、:ruby[明日]{rt="あ|す" mode=jukugo align=jis}。- 熟語ルビ:熟語の各漢字がそれぞれの読みを持ち、行はその間で分割でき、分割された各部分は自分の読みを保ちます。読みが自分の漢字より長いときは同じ語の次の漢字に掛かってもかまいませんが、読み同士は重なりません。すべてを収められないときは、語全体でグループルビとして読みを共有します。日本語の文書では、
{東京|とう|きょう}(|ごとに1つの読み)は熟語ルビです。 - グループルビ:語全体に1つの読みを付け、その語は分割されません。
{紫陽花|あじさい}(親文字全体に1つの読み)、group、またはmode=groupで指定します。青空文庫の紫陽花《あじさい》はグループルビで、変換ツールもそれをグループルビとして書き出します。 - モノルビ:漢字ごとに読みを付け、隣の文字には掛けません(
mode=mono)。中国語の文書では、{東京|とう|きょう}はこの意味になります。
#ルビの掛けと配置
cjk.ruby.alignは、親文字より短いルビの配置を決めます。'jis'(日本の既定)は1:2:1で配置し、最初のかなの前と最後のかなの後に半単位、かなの間に1単位のアキを入れます(JIS X 4051、JLReq §3.3.6)。'center'はルビをベタ組みで中央に置き(中付き)、'start'は親文字の先頭からそろえます(肩付き)。親文字より長いルビはcjk.ruby.overhangが許す範囲で両隣の文字に掛かり、残りの長さは親文字の字間を空けて確保します('jis'では1:2:1)。
'kana'(日本の既定):かな、ー、約物のアキ部分にはルビ1字分まで、始め括弧類にはルビ半字分まで掛かり、漢字、欧文の語、ほかのルビには掛かりません(JLReq §3.3.8)。'any':ルビのない隣接文字ならどれにでも、ルビ半字分まで掛かります。'none':親文字をルビ全体の長さまで広げます。
行頭と行末では、ルビは行の端を越えません。端にそろえて、親文字を内側に移します。cjk.ruby.smallKana: 'full'は、一部の本が読みやすさのために行うように、ルビの小書きの仮名を並字で組みます(きょうはきよう)。'keep'(既定)は入力どおりに印字します。語ごとにalign=とmode=で指定することもでき、設定より優先されます。中国語の地域では自動の値は従来どおりなので、ピンインと注音の組み方は変わりません。
ルビは行間に置かれます。本文の行送りを約1.75emにすれば、半分の大きさのルビが収まります(JLReq §2.4.2)。行間が狭すぎるとrubyExceedsLeadingとして報告されます。ルビの読みは、それが付いている語の索引での読みにもなります(五十音順の索引を参照)。
#圏点と傍線
日本語では文字をイタリックにしません。強調には文字の脇に記号を付け、ほかの目的には文字の脇に線を引きます。記号を付けても文字はそのまま残るので、検索やコピーしたテキストでは、書かれたとおりの文字が読み取られます。
#圏点(傍点)
日本語のテキストにMarkdownの強調*とんと*を使うと、横組みでは各文字の上、縦組みでは右にゴマ点(﹅、小説の傍点)を付けます(JLReq §3.3.9)。同じ強調の中の欧文はイタリックのままです。:dots[…]は同じことを明示的に行い、属性で記号を選べます。
それは*とんと*見当がつかぬ。:dots[ここ]{style=circle fill=open}が大切だ。cjk.emphasisMarkは本全体の既定を決めます。styleは'sesame'、'dot'、'circle'のいずれか、fillは'filled'または'open'(白抜きのゴマ点が青空文庫のテキストの白ゴマにあたります)、positionは'over'(縦組みでは右)または'under'(左)です。自動の値は地域によって決まり、日本では上にゴマ点、中国では下に点です。ゴマ点は、どちらの組方向でも紙面上で同じ向きになります。ルビと圏点が同じ側にあるときは、圏点をルビの外側に置きます。
#傍線
:sideline[…]は、テキストの脇に線(傍線)を引きます。横組みでは下、縦組みでは右に、約物やスペースも通して引きます。
:sideline[ここに線を引く]、:sideline[二重線]{style=double}、:sideline[波線]{style=wavy pos=over}styleはsolid(既定)、double、wavy、dottedのいずれか、posはoverまたはunderです(縦組みではoverが右、underが左)。2本の傍線が接するところでは、それぞれ八分ずつ詰めます。どの文字体系でも使え、英語の句に引いた下線も傍線です。ルビと同じ側にある傍線はルビと重なるので、どちらかを反対側に置いてください。
#書名括弧と割注
:book[こころ]は『こころ』と印字し、書名の中の書名には「」を使います。cjk.bookTitleBracketsで、ほかの括弧を外側から順に指定できます([{ open: '《', close: '》' }])。:warichu[…]は行の中に半分の大きさの2行で注を組み(割注)、日本では既定で()で囲みます。cjk.warichu.open: ''とclose: ''で括弧なしになります。**…**は本文と同じファミリーの太字で組みます。JLReqのゴシック体による強調には、段落または文字に専用の書体を設定する必要があります。
#漢文
漢文を日本語として読む漢文訓読では、文字の脇に小さな記号を付けます。後で戻って読む文字を示す返り点、日本語の語尾を補う送り仮名、2字をつなぐ竪点です。:kunten[…]でこれらを付けます。テキストは記号とともに読むものなので、並べ替えはしません。
:kunten[學]{okuri="ビテ"}而:kunten[時]{okuri="ニ"}:kunten[習]{kaeri="二" okuri="フ"}:kunten[之]{kaeri="一" okuri="ヲ"}。kaeri:書かれたとおりの返り点。レ、一 二 三 四、上 中 下、甲 乙 丙 丁、天 地 人、および複合した一レ 上レ 甲レ 天レ。漢文用のコードポイント㆑ ㆒ …は、それが表す文字として読みます。okuri:送り仮名。青空文庫の括弧(ヲ)は削除されます。tate:フラグ。竪点で次の文字とつなぎます。
記号は角括弧の中の最後の文字に付きます。JIS X 4051 §5に従い、返り点は文字の後ろ、行の地側(縦組みでは左下)に半分の大きさで置き、それ自体が二分を占めます。送り仮名は文字の中ほどから天側(右)に置き、長いものは次の文字を後ろへ送ります。横組みにも同じ規則を当てはめ、返り点は文字の後ろの下半分に、送り仮名は行の上に置きます。cjk.kuntenではfontSize(既定は二分)、color、placementを設定します。配置は'inline'(既定。JISの組み方)か'interlinear'で、後者では記号は送り幅を持たず、行間に置かれます。コピーしたテキスト、HTML、PDFの/ActualTextは學ビテ而時ニ習フ之ヲと読みます。送り仮名はその文字の後に入り、返り点は省かれます。送り仮名に対して行間が狭すぎると、kuntenExceedsLeadingとして報告されます。
#数字と番号付け
番号付けの設定(ノンブル、番号付きリスト、脚注、リソースの番号、見出しのテンプレート、PDFのページラベル)はすべて、CSS Counter Stylesの日本語のスタイルを使えます。
| スタイル | 表示 | トークン |
|---|---|---|
japanese-informal | 一, 十, 十二, 百一, 千十, 一万一 | 日本語の文書での一 |
japanese-formal | 壱, 壱拾, 壱百, 弐阡参 | 壱 |
hiragana | あ, い, う … ん, ああ | あ |
katakana | ア, イ, ウ … ン, アア | ア |
hiragana-iroha | い, ろ, は … す, いい | い |
katakana-iroha | イ, ロ, ハ … ス, イイ | イ |
japanese-informalは、日本語で数を言葉で書くときと同じ数え方です。十の前に一を付けず、空位に零を入れず(百一)、万 億 兆で4桁ごとに区切ります。japanese-formalは法律文書の大字で書き、各単位の前に壱を付けます(拾ではなく壱拾)。かなの系列は五十音(ゐとゑを含む48字)といろは歌(47字)の順で、最後の字の後は2字の組み合わせで続きます。位取りの漢数字(二〇二六)はcjk-decimalで、年やノンブルに使う形です。日本語の文書ではトークン一はjapanese-informalを意味し、中国語の文書では引き続き中国語の数字を意味します。そのため第{1:一}章は、日本語では第百一章、中国語では第一百零一章と表示されます。
headings: {
levels: [{ level: 1, numberingTemplate: '第{1:一}章', numberSeparator: ' ' }],
},
orderedLists: {
levels: [
{ level: 1, numberFormat: 'japanese-informal', separator: '、' },
{ level: 2, numberFormat: 'japanese-informal', prefix: '(', separator: ')' },
{ level: 3, numberFormat: 'arabic', separator: '' },
{ level: 4, numberFormat: 'arabic', prefix: '(', separator: ')' },
{ level: 5, numberFormat: 'circled-decimal', separator: '' },
],
},これは縦組みの本のリスト番号です(一、 (一) 1 (1) ①)。横組みの技術書は、公用文の書き方の手引きにならって「1. (1) ア (ア) ①」の順に番号を振り、レベル3と4にkatakanaを使います。{1:words}は数を日本語の言葉で(二十一)、{1:ordinal}は第を付けて(第二十一)書きます。デザインテキストの{numberHan}はjapanese-informalです。:::part{number="第三巻"}と番号を付けた部は、数を必要とするプレースホルダーでは3として扱われます。
#見出しとブロック
日本語の見出しは本文の行を単位として配置し、本文の文字を単位として字下げします。また、いくつかのブロックは行末側からそろえたり、ページの中央に置いたりします。これらの設定はすべて任意で、本で設定するまで何も変わりません。
#行取り
見出しのレベルまたは見出しスタイルのlineSpanは、見出しを本文のその行数分の領域に組みます(行取り、JLReq §4.1.6)。lineSpan: 3で3行取りの見出しになり、文字は3行分の帯の中央に置かれます。これはmarginTopとmarginBottomの代わりになります。帯は本文の行の位置から始まり、その後のテキストもグリッドからずれません。どちらの組方向でも、cjk.gridを使っていても同じです。帯より長い見出しは、次の整数の行数を取ります。扉の見出し(span: 'page')、advancedDesignを持つ見出し、非表示の見出し、囲みの中の見出しは、マージンのままです。
#字下げと字取り
レベルまたはスタイルのindentは、見出しを行頭から本文の文字単位で下げます(字下げ)。indent: { value: 6, unit: 'em' }は、見出し自体の文字サイズにかかわらず6字下げです。jidoriは1行の見出しを、見出し自身の文字サイズでその字数分に均等に割り付けます(字取り)。jidori: 3なら、序章は序 章と組まれて3字分を占めます。見出しの題の後に{jidori=5}と書くとその見出しだけに適用され、{jidori=0}でそのレベルの字取りをオフにします。見出しには、レベルやスタイルの値より優先される独自の{indent=N}を本文の文字単位で付けることもできます。## 一 {indent=3}のように書き、{indent=0}で行頭に置きます。青空文庫の変換ツールは、ソースの[#N字下げ]から、すべての見出しにこれを書き出します。
headings: {
levels: [
{ level: 2, lineSpan: 3, indent: { value: 6, unit: 'em' } },
{ level: 3, lineSpan: 2, indent: { value: 8, unit: 'em' }, jidori: 4 },
],
},#地付き・字上げと左右中央のページ
手紙の日付や署名は、行末にそろえる(地付き)か、行末から数字分上げて組みます(地からN字上げ)。:::paragraphsは、スタイルなしでalign、indent、endIndentを属性として受け取り、数字だけの値は全角の字数として数えます。
:::paragraphs{align=end endIndent=1}
大正三年四月
夏目漱石
:::endIndentは段落スタイルのフィールドでもあります。:::pagebreak{center}は、それが始めるページのテキストを版面の天地の中央に置きます(縦組みでは左右方向の中央)。部扉や献辞で使う、ページの左右中央の組みです。ページは別の:::pagebreakで終えてください。
#偶数ページ末尾の見出し
headings.keepWithNextは、見出しで段が終わらないようにします。JLReq §4.1.7は、偶数ページの最後の段を見出しで終えることを認めています。その本文は、同じ見開きの向かいのページで始まるからです。headings.keepWithNextSpread: trueでこれを許可でき、左綴じでも右綴じでも使えます。
#注
日本語の本は欧文の本より多くの方法で注を配置します(JLReq §4.2)。Postextはそのために、2つの合印の形式と1つの配置を用意しています。文末の。の前に合印を置く場合は、先生[^1]。と書いてください。合印は前の文字から離れず、。は行頭に来ないので、この3つが分かれることはありません。
#注の合印
footnotes.markerPositionは、'superscript'と'inline'のほかに、日本語向けの値を2つ取ります。
'right':縦組みの本が(1)を組むように、縦組みの行の右側にそろえた小さな合印です。横組みでは上付きになります。markerSizeの既定は0.7emです。'side'(語の脇の合印):注を付けた語の脇、ルビの側に置く約0.6emの合印で、語の最後の文字の終わりにそろえます。行の中で場所を取らないので、行の分割と両端そろえは合印がないものとして行われます。
footnotes.numberGap: 'em'は、注自身の番号の後に、二分スペースの代わりに注の文字サイズで全角のアキ(CJKのテキストの隣では全角スペース)を入れます。
#日本語の本の既定値
著者が設定しないとき、日本語の文書には次の値が使われます(すべてのフィールドは設定リファレンスにあります)。
| フィールド | 縦組みの本 | 横組みの本 |
|---|---|---|
placement | chapterEnd(後注) | column |
numbering | chapter | page |
markerPosition | right | 上付き |
markerTemplate | ({n})、数字は正立 | {n} |
separator.width | 行長の3分の1 | 行長の3分の1 |
| 章の後の注 | 番号の後に全角アキ、2字のぶら下げインデント | 同じ(placementがchapterEndのとき) |
明示した値が優先され、本を保存してもそのまま保たれます。中国語、アラビア語、欧文の文書は、それぞれの既定値のままです。
#見開きの傍注
placement: 'spread'は、多くの学術書や翻訳書のように、縦組みの本の注を本文の脇に組みます(傍注)。見開きの両ページで参照された注は、行長の3分の1の長さの罫の下で左ページの末尾にまとめられ、見開きごとに番号が振られます(numbering: 'spread'。この配置での既定)。左ページに少なくとも1行の本文を残してすべての注を収められないときは、最後の注を右ページの地に残します。どこにも注が収まらない行は、その注とともに次の見開きに送られます。横組みの本にはこの配置はなく、'spread'はunknownConfigValue警告とともに'column'に戻ります。
#五十音順の索引
日本語の索引は、文字ではなく読みで並べます。漱石は「そ」の項に入ります。:indexマークでは、yomi(またはreading)で読みをかなで指定します。
:index[夏目漱石]{yomi="なつめそうせき"}は:index[{東京|とう|きょう}]に生まれた。マークにyomiがないときは、ルビの読み(2つ目のマークはとうきょうとして並びます)、次にsortキー、最後にテキストが使われます。それでもキーに漢字が残る項目はindexReadingMissingとして報告され、かなの項目の後に見出しなしで置かれます。:index[…]の中のルビは簡略形で書いてください。:ruby[…]では括弧をエスケープする必要があるからです。
並び順はJIS X 4061に従います。カタカナはひらがなとして、小書きの仮名は並字として、ーは直前の母音として(コーヒーはこうちゃとこおりの間)、繰返し記号は繰り返すかなとして扱い、それでも同じなら清音、濁音、半濁音の順です(は ば ぱ)。記号が先頭で、次に数字が値の順、次に欧文の語、最後にかなが並びます。index.groupBy: 'gojuon'(日本語の索引では自動)は、あ行、か行、さ行 … わ行と五十音の行で見出しを付け、'kana'は辞書のように先頭のかなで見出しを付けます。欧文の項目は、かなの前にアルファベットごとの見出しで並びます。索引のラベルは日本語です(ロケールで変わる設定を参照)。
#引用
日本語の文書はCSLロケールja-JPで引用します。著者名を文中に組み込む引用では、2人の著者を「と」でつなぎ、3人以上は「ほか」で省略します(山田と佐藤、鈴木ほか)。題名を括弧で示すスタイルは「」と『』を使います。スタイルsist02(SIST 02。日本の科学技術系の学術誌のための基準)を同梱しています。
citations: { style: 'sist02' },CJKの文字で書かれ、スペースを含む個人名は、BibTeXでもYAMLやJSONのデータでも、姓が先として読まれます。author = {夏目 漱石}は姓が夏目、名が漱石です。ローマ字表記の名前は通常の順序のままです。参考文献の見出しは参考文献です。引用と参考文献を参照してください。
#表・キャプション・注記
ルビ、圏点、傍線、書名括弧、割注は、表のセル、キャプション、リソースの注記でも本文と同じように、セルやキャプションの文字サイズでCanvas、PDF、HTMLに描画され、行間も同じように検査されます。表やキャプションのテキストは、どのページでも横組みです。縦組みのページではブロック全体が正立するので、そこでは縦中横は何も変えず、縦組みの表は使えません。
#HTMLとEPUB
HTML出力は、各読みを意味のあるルビとして書き出します(<ruby>東<rt>とう</rt>京<rt>きょう</rt></ruby>)。語ごとに1つの<ruby>で、スクリーンリーダーが読み上げます。日本語の文書のすべてのページがlang="ja"を持つので、ページを1枚ずつ組み込むホストでも日本語の字形が使われます。固定レイアウトのEPUBは、これらのページでできています。
リフロー型のEPUBは、リーディングシステムが自分で適用できる規則を持っています。3つの禁則レベルに対応するline-break: strict、normal、loose、ぶら下げを行う本のhanging-punctuation: allow-end、テキストの上のゴマ点を表すtext-emphasis、縦組みの本での短い数字と!?の組み合わせの縦中横、?!の後の全角アキ、傍線、訓点、注の合印、見出しの行取りと字下げ、そして縦組みの本のパッケージに書くprimary-writing-modeです。ナビゲーションには日本語の名前が付きます。書き出しのほかの点はEPUBの本を参照してください。
#フォント
Postextは各スタイルを1つのファミリーで組み、書体にない文字をほかのファミリーで補いません。そのため日本語の本には、印字するすべての文字を収めた日本語の書体が必要です。
- 本文にNoto Serif JP(明朝体)、見出しやラベルにNoto Sans JP(ゴシック体)を組み合わせるのが一般的です。ローマ字のマクロンも含めてJIS X 0213の範囲を収め、縦組み用字形も持っています。Shippori MinchoとShippori Mincho B1は文庫本の紙面の趣がありますが、ōとūがありません。BIZ UDPMinchoはプロポーショナルなかなを持ち、等幅の姉妹書体BIZ UDMinchoは文字グリッドに向きます。Zen Old Mincho、Klee One(教科書体)、Kaisei Decolは見出しや大きな表示に使えます。
- 書体の言語。中国語の書体(Noto Serif SCやTC)は漢字を中国の字形で描くので、日本語を組むのに使わないでください。汎CJK書体(Source Han Serif、Noto Serif CJK)は両方の字形を持ち、PDFは日本語の文書と、どの文書でも
{lang=ja}のアイソレートを、OpenTypeの言語システムJANでシェーピングするので、漢字や引用符が日本語の字形になります。 - CFFではなくTrueType。Google FontsとFontsourceのTrueType版は、使った字形だけにサブセット化されます。Source HanとNoto CJKのCFFの
.otfファイルは全体が埋め込まれ、1ウェイトあたり8〜25MBになります(cffEmbeddedWhole)。縦組みの本のために書体をサブセット化するときは、vert、vrt2、vhea、vmtxを残してください。 - ブラウザーでは、Fontsourceは日本語のファミリーを、それぞれ文字の一部を収めた約100個の番号付きファイルとして配信します。SandboxとそのPDFタブは、テキストで使うファイルだけを読み込みます。変体仮名(𛀁)やほかの歴史的なかなを収めたFontsourceのファイルはありません。
- イタリックはありません。日本語の書体にはイタリックがなく、強調は圏点で行います。
設定リファレンスの中国語・日本語・韓国語のフォントに、フォントプロバイダーのコードがあります。
#青空文庫のテキスト
青空文庫は、著作権の切れた数千の日本語のテキストを、独自の記法によるプレーンテキストで公開しています。読みは《》で示し、読みの親文字が文字種の変わり目から始まらないところには|を置き、レイアウト、強調、見出し、JIS X 0208外の文字には[#…]の注記を使います。postext-portスキルには変換ツールaozora.py(Python 3.10、標準ライブラリーのみ)が付属しており、そうしたファイルをPostextのMarkdownに変換します。
python3 aozora.py 773_ruby_5968.zip -o kokoro.md --report report.json --styles styles.jsonzipファイルかテキストファイルを、UTF-8または青空文庫のファイルが使うCP932で読み込み、次のように書き出します。
漢字《かんじ》と|麦藁帽《むぎわらぼう》はグループルビ{漢字|かんじ}に、左側のルビはpos=underにします。- 傍点は
:dots[…]{style=sesame}(およびPostextが描けるほかの形)に、傍線は:sideline[…]に、縦中横は:tcy[…]に、割り注は:warichu[…]に、訓点は:kunten[…]にします。 - 大・中・小見出しは
#、##、###に、改ページ、改丁、改見開きは、それぞれのページの偶奇の指定とともに:::pagebreakにします。 - 字下げ、地付き、字上げは
:::paragraphs{style="aozora-…"}にし、プロジェクトのparagraphStylesに使う段落スタイルを返します(--styles)。 - 外字(
※[#「てへん+劣」、第3水準1-84-77])はJIS X 0213を通して文字に、/\は〳〵に、半角カタカナは全角にします。
段落先頭のU+3000は削除し(字下げは設定で行います)、括弧で始まる段落はcjk.paragraphStartBracketに任せるので、パターン③で括弧はソースのとおりの位置に置かれます。校訂の注記([#「X」は底本では「Y」])と末尾の書誌情報は印字しません。これらはレポートとクレジットに入ります。青空文庫は、書誌情報をテキストとともに残すよう求めています。変換ツールが扱えないものは、すべて行番号とともにレポートに一覧表示されます。postext-portスキルを参照してください。
#2つの完全な設定例
どちらも、Sandboxが保存するのと同じプリセットのJSON(postext-config.json)です。
#縦組みの文庫本の小説
文庫判(105×148mm)で、Noto Serif JPの9pt、1行38字、縦組み・右綴じです。章は奇数ページから始まり、第一章と番号を振って4字下げにし、節は3行取りの6字下げにします。禁則処理、約物のアキ、パターン③、ぶら下げ、ゴマ点の圏点、『』、ルビの配置、章末の注はロケールから決まります。
{
"locale": "ja",
"page": {
"sizePreset": "custom",
"width": { "value": 105, "unit": "mm" },
"height": { "value": 148, "unit": "mm" },
"margins": {
"top": { "value": 14, "unit": "mm" },
"bottom": { "value": 13, "unit": "mm" },
"left": { "value": 10, "unit": "mm" },
"right": { "value": 9, "unit": "mm" },
"mirror": true
}
},
"layout": { "layoutType": "single", "writingMode": "vertical-rl" },
"bodyText": {
"fontFamily": "Noto Serif JP",
"fontSize": { "value": 9, "unit": "pt" },
"lineHeight": { "value": 1.75, "unit": "em" },
"textAlign": "justify",
"firstLineIndent": { "value": 1, "unit": "em" }
},
"headings": {
"fontFamily": "Noto Sans JP",
"levels": [
{
"level": 1,
"fontSize": { "value": 12, "unit": "pt" },
"numberingTemplate": "第{1:一}章",
"numberSeparator": " ",
"indent": { "value": 4, "unit": "em" },
"breakBefore": { "enabled": true, "parity": "odd" }
},
{
"level": 2,
"fontSize": { "value": 10, "unit": "pt" },
"lineSpan": 3,
"indent": { "value": 6, "unit": "em" }
}
]
},
"cjk": { "grid": { "enabled": true, "charsPerLine": 38 } },
"header": { "elements": [] },
"footer": {
"elements": [
{
"kind": "text",
"id": "folio",
"content": "{pageNumber}",
"fontFamily": "Noto Serif JP",
"fontSize": { "value": 7, "unit": "pt" },
"overflow": "clip",
"placement": { "anchor": { "to": "container", "edge": "center" } }
}
]
}
}linesPerPageは省略しているので、ページは幅に収まるだけの行数(ここでは15行)を取ります。parity: 'odd'は各章を、右綴じの本の奇数ページである左ページで始めます。注には設定は不要で、各章の後に置かれ、行の右に合印(1)が付きます。
#横組みの技術書
B5判(182×257mm)、横組みでNoto Serif JPの9.5pt、見出しはNoto Sans JPです。章番号は第1章、節は3行取り、項は2行取り、リストの番号は1. (1) ア (ア) ①、注はページの地に置いてページごとに番号を振り、索引は五十音の行で分けます。
{
"locale": "ja",
"page": {
"sizePreset": "custom",
"width": { "value": 182, "unit": "mm" },
"height": { "value": 257, "unit": "mm" },
"margins": {
"top": { "value": 22, "unit": "mm" },
"bottom": { "value": 22, "unit": "mm" },
"left": { "value": 20, "unit": "mm" },
"right": { "value": 18, "unit": "mm" },
"mirror": true
}
},
"layout": { "layoutType": "single" },
"bodyText": {
"fontFamily": "Noto Serif JP",
"fontSize": { "value": 9.5, "unit": "pt" },
"lineHeight": { "value": 1.75, "unit": "em" },
"textAlign": "justify",
"firstLineIndent": { "value": 1, "unit": "em" }
},
"headings": {
"fontFamily": "Noto Sans JP",
"levels": [
{
"level": 1,
"fontSize": { "value": 16, "unit": "pt" },
"numberingTemplate": "第{1}章",
"numberSeparator": " ",
"breakBefore": { "enabled": true, "parity": "odd" }
},
{ "level": 2, "fontSize": { "value": 12, "unit": "pt" }, "numberingTemplate": "{1}.{2}", "lineSpan": 3 },
{ "level": 3, "fontSize": { "value": 10, "unit": "pt" }, "lineSpan": 2 }
]
},
"orderedLists": {
"levels": [
{ "level": 1, "numberFormat": "arabic", "separator": "." },
{ "level": 2, "numberFormat": "arabic", "prefix": "(", "separator": ")" },
{ "level": 3, "numberFormat": "katakana", "separator": "" },
{ "level": 4, "numberFormat": "katakana", "prefix": "(", "separator": ")" },
{ "level": 5, "numberFormat": "circled-decimal", "separator": "" }
]
},
"header": { "elements": [] },
"footer": {
"elements": [
{
"kind": "text",
"id": "folio",
"content": "{pageNumber}",
"fontFamily": "Noto Sans JP",
"fontSize": { "value": 8, "unit": "pt" },
"overflow": "clip",
"placement": { "anchor": { "to": "container", "edge": "center" } }
}
]
}
}cjkとfootnotesのキーは不要です。ロケールが横組みの日本語に禁則処理とアキを与え、注をページの地に置いて、ページごとに番号を振り、行長の3分の1の長さの罫を引きます。キャプションは図1-1 構成となります。
#Sandboxとレシピ集
Sandboxでは、デザイン › 表記体系に、文書の言語(日本語)、組方向、綴じ、日本語向けを含むすべてのcjk設定があります。「日本語の既定設定 › 確認…」は、本を縦組みの文庫本か横組みの技術書として一度に日本語向けに設定し、先に変更点を一覧にします。変更点は、Noto Serif JPとNoto Sans JP、1.75emの行送り、1字下げ、縦組みの本の文字グリッド、図と表、第一章、行取りと字下げのある見出し、日本語のリスト番号、そして日本語の設定の妨げになる中国語の設定を自動に戻すことです。フォントの選択メニューは日本語のファミリーをグループにまとめて表示し、書体見本には吾輩は猫であるの一節が圏点付きで表示されます。日本語の本では、エディターのツールバーにルビのボタンと縦中横のボタンが加わります。Sandboxを参照してください。
ショーケースの棚には、青空文庫のテキストから組んだ夏目漱石の『こころ』(1914年)が、日本語で縦組み・右綴じで並んでいます。Sandboxに内蔵のPostextガイドにも日本語版があります。レシピ集の「日本語の組版」コレクションには日本語のレシピが集められており、どれも1ページか見開きと、それを組むスクリプトでできています。
#既知の制限
- 禁則処理:行頭の々を、繰り返している元の漢字に置き換えません。雑誌向けのJLReqの中間的な「loose」の慣習は、独立したレベルになっていません。割注の中では、‥‥が2行にまたがることがあります。
- 約物:漢数字の間の、をベタで組む処理は、一、二、三のような列挙にも適用されます。行末の中点類は、後ろの四分しか詰めません。
- ルビ:熟語ルビの配置は、各読みを自分の漢字の近くに収める近似で、JLReq付録Fの表にあるすべての場合を再現するものではありません。段落先頭のルビは字下げ部分に掛かりません。1行の中で両側を切られた語は、わずかに長くなることがあります。
- 記号:青空文庫の三角、二重丸、蛇の目、ばつ傍点、
pos=under以外の左側の記号、破線と一点鎖線の傍線は描画しません(変換ツールが報告します)。ルビと同じ側の傍線はルビと重なります。**…**はゴシック体に切り替わりません。 - 漢文:複合した返り点(一レ)は半分の大きさの2つの字形で、1つに合成した記号ではありません。行間モードでは、長い送り仮名が次の文字の記号と接することがあります。割注、キャプション、セルの中の記号は省かれます。
- 見出しとブロック:行取りは囲みの中や扉の見出しには適用されません。
:::pagebreak{center}は、それ自体ではページを終えません。本文中の語に対するインラインの字取りはありません。 - 注:複数の段があるページの傍注は、本文のある段の地に置かれます。横組みの本には見開きの傍注の配置がありません。次の見開きへ送るための領域は、左ページの図が決まる前に見積もられます。
- 索引:区切りは
,のままです。欧文の項目はかなの前に置かれ、後ろに置くオプションはありません。表示されないマークは、同じ行のほかの場所のルビから読みを借りません。 - 引用:同梱されている日本語のスタイルはSIST 02だけです。著者年方式の引用はASCIIの約物を使います。参考文献は読みの順に並べ替えられません。
- 表:セルとキャプションのテキストは、どのページでも横組みです。
- フォント:スタイルごとに1つのファミリーで、代替フォントはありません。CFFの書体は全体が埋め込まれます。縦組みのプロポーショナルメトリクス(
vpal)は使いません。 - デザインテキスト(柱、扉、囲みの題)は、日本語を任意の2文字の間で分割し、禁則処理も約物のアキも行わず、ルビや記号はプレーンテキストとして印字します。
#出典
- W3C、日本語組版処理の要件(JLReq)、W3Cグループノート。
- JIS X 4051:2004『日本語文書の組版方法』。
- JIS X 4061:1996 日本語文字列照合順番。
- W3C、CSS Text Level 3とLevel 4、CSS Text Decoration Level 3(
text-emphasis)、CSS Ruby Annotation Layout、CSS Writing Modes Level 4、CSS Counter Styles Level 3。 - Unicode Standard Annex #14 Line Breaking Algorithmと#50 Unicode Vertical Text Layout。
- 青空文庫、注記一覧。
- SIST 02『参照文献の書き方』(科学技術振興機構)、およびCSLのja-JPロケール。