Aller au contenu principal

Chapitre 17 · Partie II · Le métier

Mise en page japonaise

Comment Postext compose le japonais, verticalement et horizontalement : la région Japon, le kinsoku, l’espacement des yakumono, les crochets en début de paragraphe, les formes verticales, les furigana, les points d’insistance et les traits latéraux, le kanbun, les compteurs, les titres en gyōdori, les notes, un index en ordre gojūon, les citations, les polices et les sources de l’Aozora Bunko

Mis à jour 2026-10-0530 minenescafrptzhjaar

En bref

Cette page explique comment Postext met en page un texte japonais. Les livres japonais se composent de haut en bas, en colonnes lues de droite à gauche, ou bien en lignes horizontales comme cette page. Un document en japonais suit les règles japonaises de coupure des lignes, d’espacement de la ponctuation, de petites lectures placées au-dessus des caractères et de points d’insistance. La page traite aussi des notes, des nombres écrits en kanji, des titres qui occupent un nombre fixe de lignes, d’un index trié selon la prononciation et de la reprise des textes de la bibliothèque Aozora Bunko. Elle se termine par deux exemples complets et les limites qui subsistent.

Une page japonaise mêle quatre écritures sur une grille de cases carrées, et l’espacement de sa ponctuation fait partie du texte.

Postext compose le japonais verticalement et horizontalement, à partir d’une seule source Markdown et d’une seule configuration. Un document en japonais coupe ses lignes selon les règles du kinsoku (les caractères interdits en début ou en fin de ligne), donne à chaque crochet et à chaque virgule l’espace que la composition japonaise leur accorde et le reprend là où deux signes se rencontrent, compose le crochet qui ouvre un paragraphe comme le font la plupart des romans, redresse les petits kana et les signes d’une ligne verticale dans leurs formes verticales, espace les furigana (petites lectures en kana) 1:2:1 au-dessus de leurs kanji, place des points en sésame au-dessus des mots mis en relief, numérote les chapitres 第一章 et trie un index selon la lecture. Depuis postext 1.16, tout cela découle de locale: 'ja' ; les versions antérieures composaient le japonais avec les valeurs par défaut de la Chine continentale. Cette page explique ce que fait le moteur et quels réglages le contrôlent. La référence de configuration liste chaque clé avec sa valeur par défaut, et le format de document décrit le balisage.

Les règles suivent la note du W3C Requirements for Japanese Text Layout (JLReq), citée ci-dessous par section, et JIS X 4051, la norme japonaise dont elle rend compte. Une grande partie de la mécanique est partagée avec le chinois, et la page Mise en page chinoise décrit ce que cette page ne fait que mentionner : la grille de caractères, le cadre pivoté d’une page verticale, la reliure à droite et les sorties. Les sources sont listées à la fin.

#La région Japon

Un document dont la locale est japonaise (ja, ja-JP, ja-Jpan, quelle que soit la casse, avec - ou _) prend la région japan des réglages cjk. Chaque champ cjk laissé à 'auto' se résout alors selon l’usage japonais, de même que les notes, l’index, les citations et les mots intégrés. On peut aussi fixer cjk.region: 'japan' à la main, dans n’importe quel document, pour composer une page selon les règles japonaises ; les mots intégrés et les valeurs par défaut des notes, de l’index et des citations suivent toujours la langue. DOCUMENT_LANGUAGES, la liste qu’affiche le menu Langue du document du Sandbox, place 日本語 entre les entrées chinoises et l’arabe.

#Ce qui change avec la locale

RéglageJapon (ja)Chine continentale (zh-Hans)
Coupure des lignes (lineBreak)ja-very-strict : les petits kana, ー, 々 et 〜 n’ouvrent jamais une lignegb
Chasse de la ponctuation (punctuationWidth)fullwidth, avec la compression des paires de JLReq ; un signe fermant garde son demi-cadratin en fin de ligne tant que la ligne n’en a pas besoinkaiming
? et ! dans un paragraphe (spaceAfterQuestion)un cadratin d’espace après euxpas d’espace
Le quart de cadratin à côté d’un mot occidental (latinSpacingEdge)western : aussi du côté qui se termine par un crochet ou un symbole, normalize()関数letters : seulement à côté d’une lettre ou d’un chiffre
Un crochet qui ouvre un paragraphe (paragraphStartBracket)half : dans la seconde moitié du retraitcomme en tout début de ligne
Débord (hangingPunctuation)allow, pour 、。,. seulementnone
*…* (emphasis, emphasisMark)points en sésame au-dessus du texte, à sa droite en texte verticalpoints sous le texte
:book[…] (bookTitleMark, bookTitleBrackets)『』, avec 「」 à l’intérieur《》, avec 〈〉 à l’intérieur
Crochets du warichu (warichu.open, close)()aucun
Ruby (ruby.overhang, ruby.align)sur les kana seulement, espacé 1:2:1un quart du corps du ruby sur tout voisin, centré
{漢字|かん|じ}ruby jukugoruby mono
Le jeton 一 dans une numérotationjapanese-informal : 百一simp-chinese-informal : 一百零一
Notes dans un livre verticalaprès le chapitre (後注), appels (1) à droite de la ligneau pied de la colonne
Groupes de l’index (index.groupBy)rangées du gojūon selon la lecture (あ行, か行…)initiales du pinyin
Locale des citationsja-JPzh-CN
Figure, tableau, suite de tableau図、表、(続き)图, 表, (续)

Les mots intégrés sont eux aussi japonais : les renvois impriment 第3章, 2.3節 et 12ページ, la bibliographie s’intitule 参考文献, un tableau ou un encadré coupé indique 次ページへ続く, l’index intitule ses symboles et ses nombres 記号 et 数字 et écrit ses renvois avec une flèche (金之助 →夏目漱石, et →夏目漱石、森鷗外も見よ après les pages), et un EPUB nomme sa navigation 目次, 表紙, 本文. Une table de chaînes sans entrée japonaise donne l’anglais, jamais le chinois. Les types figure et tableau sont numérotés par chapitre, et une légende se lit 図1-1 東京の地図 : l’étiquette et le numéro accolés, une espace idéographique avant le texte, pas de point final (JLReq §4.3). Un :ref donne 図1-1, et un tableau continué 表1-1 東京の区(続き). Ce sont les valeurs par défaut de captionStyle.labelNumberGap et de labelSeparator dans un document japonais ; une valeur fixée là l’emporte. La césure est désactivée, comme dans tout document CJK, sauf si on l’active pour les mots latins.

La même étiquette de langue est déclarée dans les sorties : le document HTML et chacune de ses pages portent lang="ja", et le PDF déclare /Lang (ja) et met en forme son texte avec les formes de glyphes japonaises (voir Polices). La mise en page mesure dans cette langue et le canvas y peint (ctx.lang), dans tous les contextes : sur une page dans une autre langue (une page anglaise qui montre un livre japonais, un pen) comme dans un worker de mise en page, les lignes sont celles que donnerait une page japonaise. Noto Serif JP compose un chiffre large de 0,47 em en japonais et de 0,55 em dans une langue dont il n’a pas les formes. C’est bodyText.shapingLanguage: 'document', la valeur par défaut depuis postext 1.30 ; avec 'host', que conserve un livre enregistré avant la 1.30, la mise en page mesure, et le canvas peint, dans la langue de la page qui l’héberge. Unicode donne un seul point de code à 直, 骨 et 角, et une police japonaise les dessine autrement qu’une police chinoise.

#Kanji, kana et rōmaji

Une ligne japonaise contient des kanji, des hiragana, des katakana, et des lettres et chiffres latins, les rōmaji. Postext n’a besoin de rien pour les distinguer : un paragraphe qui contient plus de caractères CJK (kanji et kana comptent tous deux) que d’espaces entre mots est composé par le compositeur CJK, caractère par caractère, et un mot latin ou un nombre à l’intérieur forme une unité qu’une ligne ne coupe jamais. Entre texte japonais et texte latin, le compositeur place un quart de cadratin (cjk.latinSpacing), qu’une ligne justifiée peut étirer jusqu’à un demi-cadratin (JLReq §3.2.2) ; une espace tapée là par l’auteur est remplacée par lui, il ne s’y ajoute pas. Un mot occidental le reçoit aussi du côté qui se termine par un crochet ou un symbole (normalize()関数, (abc)関数, 100%関数 ; cjk.latinSpacingEdge: 'western', la valeur par défaut au Japon, JLReq §3.2.6), mais pas un crochet ni un symbole isolé entre des caractères japonais (関数(かんすう)は). La prose japonaise n’a pas d’espaces entre les mots, si bien qu’une espace tapée entre deux mots japonais reste une espace.

Les rōmaji en transcription Hepburn modifiée emploient des macrons (Tōkyō, Sōseki), et la police doit les posséder : Postext n’emprunte pas un glyphe manquant à une autre famille. Un mot dans une autre langue peut être balisé avec un isolat, :ltr[the Meiji era]{lang=en} : le HTML le marque lang="en", le PDF le place dans un /Span avec son propre /Lang et le met en forme avec les formes de cette langue. Les lettres et chiffres pleine chasse (K, 12) sont des caractères japonais : ils restent debout en texte vertical et comptent chacun pour un cadratin.

Les katakana demi-chasse (カタカナ) ne s’emploient pas dans les livres ; écrivez les formes pleine chasse, ou laissez le convertisseur Aozora les changer. Le tiret ondulé 〜 (U+301C) et le tilde pleine chasse ~ (U+FF5E) que les textes Windows donnent à sa place sont tous deux lus comme de la classe des traits d’union japonais.

#Le Markdown d’un chapitre japonais

Le japonais s’écrit dans le même Markdown que toute autre langue, avec les commodités d’un chapitre chinois :

  • Coupez les lignes n’importe où. Une fin de ligne entre deux caractères japonais est supprimée, si bien qu’un éditeur peut couper la source à n’importe quelle largeur.
  • Faites le retrait avec la configuration. Un paragraphe japonais est en retrait d’un cadratin : bodyText.firstLineIndent: { value: 1, unit: 'em' }. Les espaces idéographiques (U+3000) par lesquelles commence un paragraphe sont supprimées par l’analyseur, si bien qu’une source tapée avec elles est mise en retrait comme une source tapée sans elles.
  • Tapez le balisage en ASCII. Une méthode de saisie japonaise donne :::, # et [^1] ; ils s’impriment comme du texte, et la construction signale chaque ligne concernée par fullwidthMarkup, avec la forme ASCII à taper. Les valeurs d’attribut peuvent être entourées de 「…」.
  • Les identifiants et les noms de fichier gardent kana et kanji, marques de sonorisation comprises : un chapitre intitulé がっこう est enregistré sous ce nom.

#Composition horizontale

Chaque règle de cette section fonctionne de la même façon le long d’une ligne verticale ; la section suivante ajoute ce qui y change. Le compositeur est celui du chinois (voir Mise en page chinoise › Composition horizontale) ; la région Japon change ses règles là où JLReq diffère de clreq.

#Coupure des lignes (kinsoku)

Le kinsoku shori (禁則処理) écarte certains caractères du début d’une ligne et d’autres de sa fin. cjk.lineBreak a trois niveaux japonais, d’après les trois conventions de l’annexe C.3 de JLReq ; les niveaux chinois restent disponibles.

NiveauJamais en début de ligneEmployé dans
ja-very-strictCrochets et guillemets fermants 」』)〕】 ; 、,。. ; les traits d’union ‐ – ゠ 〜 ~ ; ?!‼⁇⁈⁉ ; ・:; ; les marques d’itération ゝゞヽヾ〻 et 々 ; la marque d’allongement ー ; les petits kana ぁぃぅぇぉっゃゅょゎゕゖ ァィゥェォッャュョヮヵヶ ㇰ–ㇿ ; les unités % ℃.La valeur par défaut de JIS X 4051 ; celle de la région Japon.
ja-strictComme ja-very-strict, mais les petits kana, ー et 々 peuvent ouvrir une ligne.Livres généraux (le « strict » de JLReq).
ja-looseSeulement les crochets et guillemets fermants, 、, et 。.. Traits d’union, ?!, points médians, marques d’itération, petits kana et ー peuvent ouvrir une ligne.Journaux (le « loose » de JLReq).

À tous les niveaux japonais, aucune ligne ne se termine par un crochet ou un guillemet ouvrant, un symbole monétaire reste avec son nombre (sauf en ja-loose), et la barre oblique n’a pas de règle (cette règle-là est celle de GB/T 15834). Les signes de deux cadratins ―― et …… peuvent ouvrir une ligne, comme JLReq le permet, mais ne se coupent jamais, pas plus que 〳〵. Un tiret de deux cadratins, ―― ou ——, s’imprime comme un seul trait quel que soit le blanc que la police laisse aux extrémités de son tiret, et une suite de tirets tapée comme un filet (――――――) comme un seul filet ; chaque tiret garde la chasse que lui donne sa police. Un nombre garde son signe et son unité (¥1,500, 50%), un mot latin reste entier sauf s’il est plus large que la ligne, et un appel de note n’ouvre jamais une ligne : il reste avec le caractère qui le précède.

Les nombres cerclés (①–⑳, ⑴, ❶ et leurs semblables) sont composés comme des caractères japonais : une case, pas d’espace entre eux et les rōmaji, et aucune ligne ne se termine sur l’un d’eux en ja-very-strict et ja-strict, puisqu’il numérote le texte qui le suit (cjk.circledNumbers: 'western' les compose comme des lettres latines, comme jusqu’à postext 1.24). Un titre :book[…] dans ses 『』 garde deux de ses caractères de part et d’autre d’une coupure de ligne (cjk.titleMinChars).

Quand le caractère suivant ne peut pas ouvrir une ligne, le compositeur essaie d’abord de le faire entrer en cédant de l’espace dans la ligne (oikomi, « faire rentrer »), dans l’ordre de JLReq donné plus bas, et seulement ensuite descend le caractère qui le précède à la ligne suivante (oidashi, « faire sortir »). 々 n’est jamais remplacé en début de ligne par le kanji qu’il répète (JLReq mentionne cette pratique ; elle modifie le texte).

Les livres d’images et les premiers livres de lecture composés en kana mettent une espace entre les groupes de mots (分かち書き, むかし むかし、 ある ところに) et ne coupent les lignes qu’à ces endroits. cjk.wordBreak: 'keep-all' les coupe ainsi : à une espace (U+0020 ou U+3000) et à côté de la ponctuation là où le niveau le permet (après 、。」, avant 「), jamais entre deux lettres, kana, kanji ou caractères latins. Les règles du niveau s’appliquent toujours aux espaces, et un groupe plus long que la ligne est coupé à l’intérieur comme le niveau le couperait. Un style de paragraphe fixe le sien avec wordBreak, pour un abécédaire cité dans un livre en prose ordinaire. Une ligne justifiée absorbe le jeu d’abord dans ses espaces, jusqu’à un demi-cadratin chacune, puis entre ses caractères. L’EPUB recomposable écrit word-break: keep-all. Le coréen, dont les mots (어절) sont séparés par des espaces, prend le même réglage.

#Yakumono : espacement de la ponctuation

La ponctuation japonaise (yakumono, 約物) est composée pleine chasse : le glyphe occupe un demi-cadratin et l’autre moitié est de l’espace, avant un crochet ouvrant, après un crochet fermant et après 、。. ・:; se placent au milieu de leur cadratin avec un quart de cadratin de chaque côté, et ?! remplissent leur cadratin. C’est cet espace que la composition japonaise ajuste (JLReq §3.1) :

  • Paires. Là où deux signes se rencontrent, une moitié blanche disparaît : 」、 「「 、「 」「 。」 occupent un cadratin et demi au lieu de deux, et 」・ garde un quart de cadratin entre les deux glyphes (JLReq §3.1.4). compressAdjacent désactive ce comportement.
  • Fins de ligne. Un signe fermant en fin de ligne garde son demi-cadratin. C’est le premier espace cédé quand la ligne doit faire entrer un caractère de plus, et il disparaît en entier ou pas du tout.
  • À l’intérieur de la ligne, l’espace après 。 n’est jamais réduit, et les quarts d’un point médian sont cédés avant les demi-cadratins des crochets et de 、.
  • ? et ! prennent un cadratin entier d’espace après eux quand la phrase continue (JLReq §3.1.6) : 本当? そう思う. Pas devant un crochet fermant ni devant un autre ?!, pas en fin de paragraphe ni de ligne, et pas une seconde fois quand l’auteur a tapé U+3000 à cet endroit. Cet espace ne s’étire ni ne se resserre jamais. cjk.spaceAfterQuestion le désactive (ou l’active dans une autre région).
  • Nombres. 、 et ・ entre deux chiffres kanji sont composés serrés et ne se coupent jamais : 二、三日, 三・一四.
Espacement de la ponctuation japonaiseLa ligne 彼は「本当?うそ」、「いいえ」と答えた。 composée deux fois, une case par cadratin. Dans la première rangée, chaque caractère occupe un cadratin entier et rien n’est ajouté : 20 em. Dans la seconde, le crochet fermant avant la virgule, la virgule avant le crochet ouvrant et le crochet fermant avant le point cèdent chacun un demi-cadratin blanc, teinté dans la première rangée, et un cadratin d’espace suit le point d’interrogation : 19,5 em.Chaque signe sur un cadratin, rien d’ajouté彼は「本当?うそ」、「いいえ」と答えた。20 emEspacement JLReq (la région Japon)彼は「本当?うそ」、「いいえ」と答えた。20 emmoitié blanche cédée par une paireespace après ?
Les paires de signes se resserrent, et ? suivi de texte prend un cadratin d’espace.

Quand une ligne est un peu trop longue, elle rend de l’espace dans cet ordre (JLReq §3.8.3) : les espaces entre mots, puis le demi-cadratin après le signe qui termine la ligne (en entier ou pas du tout), puis les quarts d’un point médian en fin de ligne, puis les quarts des points médians à l’intérieur de la ligne, puis les demi-cadratins des crochets, de 、 et de ,, et en dernier l’espace entre japonais et latin, jusqu’à un huitième de cadratin. Quand une ligne est courte, le jeu est réparti entre ses caractères comme pour une ligne chinoise, sauf qu’aucun espace n’est ajouté après un crochet ouvrant ni avant un crochet fermant, ni à côté de 、。・:;?! ou d’une espace idéographique (JLReq §3.1.11).

#Crochets en début de paragraphe

Un paragraphe en retrait d’un cadratin peut s’ouvrir sur un crochet : c’est le cas de la plupart des dialogues d’un roman. JLReq §3.1.5 décrit trois façons de le composer, et cjk.paragraphStartBracket en choisit une :

Trois façons de composer un crochet qui ouvre un paragrapheQuatre débuts de paragraphe de deux lignes chacun sur une grille. Un paragraphe ordinaire commence après un retrait d’un cadratin. Le modèle 1 garde le retrait et donne au crochet son propre cadratin, si bien que le texte commence à 2 em. Le modèle 3 place le crochet dans la seconde moitié du retrait et le texte commence à 1 em, comme dans le paragraphe ordinaire. Le modèle au fer place le crochet contre le bord, sans retrait. Les deuxièmes lignes commencent contre le bord.Paragraphe ordinaire私はその人を常に先生と呼んでいた。だからここでもた① Retrait conservéindent「先生はいつごろ東京へお帰りになるのですか」と私は③ Demi-retraithalf「先生はいつごろ東京へお帰りになるのですか」と私は母Au fer (天付き)flush「先生はいつごろ東京へお帰りになるのですか」と私は母le retrait de paragraphe d’un cadratin
Au Japon, la valeur par défaut est le modèle ③ : le crochet remplit la seconde moitié du retrait.
  • 'indent' (①) : le retrait demeure et le crochet prend son propre cadratin après lui.
  • 'half' (③, la valeur par défaut au Japon) : le crochet cède le blanc qui précède son glyphe, qui remplit la seconde moitié du retrait, et le texte s’aligne sur celui des autres paragraphes. Avec un retrait de deux cadratins, le texte commence à 2 em.
  • 'flush' (天付き) : le crochet se place contre le bord, sans retrait.

Ce réglage ne s’applique qu’à un paragraphe doté d’un retrait de première ligne ; un retrait négatif ou l’absence de retrait restent tels quels. Dans une région chinoise, 'auto' compose le crochet comme en tout début de ligne, comme auparavant. Un crochet qui ouvre une ligne de suite à l’intérieur d’un paragraphe est toujours composé au fer (trimLineStart, activé au Japon).

#Ponctuation en débord (burasagari)

cjk.hangingPunctuation vaut 'auto' par défaut. Au Japon, cela signifie 'allow' : un 、。,. qui ouvrirait sinon la ligne suivante, et que l’oikomi ne parvient pas à faire entrer, déborde au-delà de la fin de la ligne (burasagari, ぶら下げ), en composition horizontale comme verticale. ?!, les crochets et les points médians ne débordent jamais. Ailleurs, 'auto' vaut 'none', comme auparavant. 'force' fait déborder chacun de ces signes qui termine une ligne, et 'none' désactive le débord.

#Justification et dernière ligne

Le texte courant japonais est justifié, la dernière ligne d’un paragraphe composée serrée. Une ligne qui demanderait plus d’un demi-cadratin entre ses caractères est laissée courte et signalée par cjkLooseLine (voir Césure et justification). Un paragraphe ne se termine pas sur une ligne d’un seul caractère (泣き別れ) quand bodyText.avoidRunts est activé, ce qui est la valeur par défaut : la ligne du dessus essaie d’abord de le faire entrer en cédant de l’espace de ponctuation, tant qu’aucune ligne ne devient lâche, et seulement ensuite lui donne un caractère. JLReq §3.5.4 ne place pas cet ajustement très haut et tolère souvent le caractère isolé, mais prend soin de l’éviter ; un paragraphe non justifié cède lui aussi un caractère, sa ligne du dessus en ayant un de moins. Le papier à manuscrit (原稿用紙) se compose autrement : avec cjk.grid.fullLines, un paragraphe non justifié ne cède aucun caractère, puisque la ligne du dessus ne pourrait pas être espacée et que sa dernière case resterait vide. Il fait tout de même entrer le caractère là où la ponctuation a de l’espace à céder.

#Écriture verticale

layout.writingMode: 'vertical-rl' compose le livre de haut en bas, relié à droite, sa première page étant une page de gauche (JLReq §2.3). Le modèle de page est celui du chinois : voir Mise en page chinoise › Écriture verticale pour les étages, la reliure à droite, les figures et les sorties. Deux points méritent d’être rappelés pour les livres japonais. Les étages se remplissent l’un après l’autre et ne sont pas équilibrés à la fin d’un chapitre (nariyuki), alors que les colonnes d’un livre horizontal le sont, sauf si le livre est composé sur une grille de caractères, où les colonnes se remplissent elles aussi ligne après ligne (voir Mise en page chinoise › La grille de caractères). Et un style de titre peut fixer son propre mode d’écriture, si bien qu’un index ou une bibliographie peuvent être composés horizontalement à la fin d’un livre vertical, comme c’est souvent le cas.

#Formes verticales

Dans la région Japon, chaque caractère se place comme le demandent JLReq §3.1 et l’UAX #50 :

  • Les petits kana (ぁ っ ャ ㇰ) prennent la forme verticale de la police, placée plus haut et plus à droite que la forme horizontale ; une police qui n’en a pas déplace le glyphe d’environ un huitième de cadratin à la place.
  • 、。,. se placent en haut à droite de leur case, comme en Chine continentale. :; pivotent d’un quart de tour. !? restent debout, centrés. ・ occupe un cadratin entier.
  • “ ” sont des guillemets réservés à l’horizontal : une ligne verticale les imprime 〝 〟. Le texte garde “ ” pour la copie et la recherche dans le canvas et le PDF ; le HTML copie 〝〟. ‘ ’ sont pivotés.
  • Les crochets, ー, 〜 et les tirets suivent le sens de la colonne.
  • 〳〵 (くの字点, la répétition de deux kana) est un signe propre au vertical, haut de deux cases, qui ne se coupe jamais.

Le canvas utilise les formes verticales de la police elle-même quand le Sandbox a chargé le jumeau vert de la famille, et le PDF les dessine au moyen de la police en mode vertical (voir Mise en page chinoise › Le texte vertical dans chaque sortie).

#Tate-chū-yoko

Les nombres de deux chiffres au plus restent debout dans une seule case (cjk.uprightDigits, 2 par défaut), et :tcy[…], :upright[…] et :sideways[…] règlent une suite à la main, comme en chinois. Au Japon, les paires !!, !?, ?! et ?? se placent aussi debout dans une case, en demi-chasse comme en pleine chasse (すごい!?) : une paire pleine chasse est peinte avec les signes demi-chasse, qui tiennent dans un cadratin sans voir leurs traits réduits de moitié. Une paire accolée à un mot latin (Wow!!), à un troisième signe (!!!) ou à un chiffre reste telle quelle. Une telle case n’ouvre jamais une ligne.

#Pages, étages et folios

Un livre japonais vertical imprime d’ordinaire son folio en chiffres arabes en pied de page, et un folio vertical en kanji le long de la gouttière extérieure quand la maquette en prévoit un : page.pageNumbering.format: 'cjk-decimal' écrit 一〇五 pour la page 105, la forme positionnelle qu’emploient les folios (JLReq §2.6). Les chapitres s’ouvrent sur un recto, qui dans un livre relié à droite est une page de gauche : breakBefore: { enabled: true, parity: 'odd' }. Les titres de marge extérieure des éléments de texte verticaux fonctionnent sans changement pour les livres japonais.

Sur une grille de caractères (cjk.grid), une page japonaise contient toutes les lignes que compte sa grille : bodyText.avoidWidows et bodyText.avoidOrphans y sont tous deux désactivés par défaut. JLReq §3.5.4 compte les caractères de la dernière ligne d’un paragraphe et ne fixe aucun nombre de lignes à un saut de page, si bien qu’un paragraphe peut laisser une ligne au pied d’une page ou en reporter une sur la suivante. Fixez l’une ou l’autre clé à true pour rétablir la règle. Un document sans grille garde les deux activées.

#Furigana

Les furigana sont les lectures en kana placées à côté des kanji : au-dessus d’eux en composition horizontale, à leur droite en composition verticale. Ce sont des ruby, et :ruby[…] et la forme compacte {…|…} les composent comme ils composent le pinyin chinois, avec trois ajouts japonais : la façon dont une lecture se répartit sur sa base, jusqu’où elle peut empiéter sur ses voisins, et l’espacement d’une lecture courte.

#Ruby mono, ruby de groupe et ruby jukugo

{東京|とう|きょう}に行く。{紫陽花|あじさい}が咲いた。
:ruby[昨日]{rt="きのう" mode=group}、:ruby[明日]{rt="あ|す" mode=jukugo align=jis}。
  • Ruby jukugo (熟語ルビ) : chaque kanji d’un mot composé a sa propre lecture, et une ligne peut se couper entre eux, chaque partie gardant sa lecture. Une lecture peut empiéter sur le kanji suivant du mot quand elle est plus longue que le sien, mais les lectures ne se chevauchent jamais ; quand elles ne peuvent pas toutes tenir, le mot partage sa lecture comme un groupe. Dans un document japonais, {東京|とう|きょう} (une lecture par |) est un ruby jukugo.
  • Ruby de groupe (グループルビ) : une seule lecture au-dessus du mot entier, qui ne se coupe jamais. {紫陽花|あじさい} (une seule lecture pour la base), group ou mode=group. Le 紫陽花《あじさい》 d’Aozora est un ruby de groupe, tout comme ce que le convertisseur écrit à sa place.
  • Ruby mono (モノルビ) : une lecture par kanji, sans empiéter sur les voisins, mode=mono. C’est ce que signifie {東京|とう|きょう} dans un document chinois.

#Débordement et alignement

Espacement et débordement des furiganaTrois exemples avec des lectures en demi-corps au-dessus des caractères de base. Au-dessus de 紫陽花, les quatre kana de あじさい sont espacés 1:2:1, avec un quart de cadratin entre eux et un huitième à chaque extrémité. Au-dessus de 志 dans を志す, la lecture こころざ est plus longue que son kanji et empiète d’un demi-cadratin sur を et す, les kana de part et d’autre. Au-dessus de 東京に, chaque kanji garde sa lecture ; きょう commence là où finit とう et empiète d’un demi-cadratin sur に.Lecture plus courte : 1:2:1紫陽花あじさいune demi-unité aux extrémités, une entre les kanaLecture plus longue : sur les kanaを志すこころざjusqu’à un caractère de ruby de chaque côtéRuby jukugo東京にとうきょうchaque kanji garde sa lectureplace qu’une lecture prend sur un voisin
Une lecture courte est espacée 1:2:1 ; une lecture longue peut empiéter sur des kana, jamais sur des kanji.

cjk.ruby.align espace une lecture plus courte que sa base. 'jis' (la valeur par défaut au Japon) l’espace 1:2:1, une demi-unité avant le premier kana et après le dernier, une unité entre eux (JIS X 4051, JLReq §3.3.6) ; 'center' la centre serrée ; 'start' la place à partir du début de la base. Une lecture plus longue que sa base empiète sur les caractères voisins aussi loin que cjk.ruby.overhang le lui permet, et le reste de la place vient de l’espacement de la base (1:2:1 avec 'jis') :

  • 'kana' (la valeur par défaut au Japon) : au plus un caractère de ruby sur un kana, un ー ou le côté blanc d’un signe de ponctuation, un demi-caractère de ruby sur un crochet ouvrant, rien sur un kanji, un mot latin ou une autre lecture (JLReq §3.3.8).
  • 'any' : un demi-caractère de ruby sur tout voisin sans lecture.
  • 'none' : la base s’élargit jusqu’à la lecture entière.

En début et en fin de ligne, une lecture ne dépasse pas le bord : elle est alignée sur lui et la base se décale vers l’intérieur. cjk.ruby.smallKana: 'full' compose les petits kana d’une lecture en grande taille (きよう pour きょう), comme le font certains livres pour la lisibilité ; 'keep' (par défaut) les imprime tels qu’ils sont écrits. Une lecture peut se régler mot par mot avec align= et mode=, qui l’emportent sur la configuration. Dans une région chinoise, les valeurs automatiques sont les anciennes, si bien que le pinyin et le zhuyin se composent comme auparavant.

Les furigana occupent l’interligne : une hauteur de ligne du texte courant d’environ 1,75 em laisse de la place pour des lectures en demi-corps (JLReq §2.4.2), et un interligne trop étroit est signalé par rubyExceedsLeading. Une lecture en ruby sert aussi de lecture d’index au mot qu’elle annote (voir Index en ordre gojūon).

#Points d’insistance et traits latéraux

Le japonais n’incline pas ses lettres. Il met en relief avec des signes placés à côté des caractères, et trace des traits à côté d’eux à d’autres fins ; les signes conservent leur texte, si bien que la recherche et le texte copié lisent les caractères tels qu’ils sont écrits.

#Points d’insistance (bōten)

L’emphase Markdown sur un texte japonais, *とんと*, imprime un point en sésame (﹅, le 傍点 des romans) au-dessus de chaque caractère en composition horizontale et à sa droite en composition verticale (JLReq §3.3.9) ; les lettres latines comprises dans la même emphase gardent leur italique. :dots[…] fait la même chose explicitement, et ses attributs choisissent le signe :

それは*とんと*見当がつかぬ。:dots[ここ]{style=circle fill=open}が大切だ。

cjk.emphasisMark fixe la valeur par défaut pour tout le livre : style 'sesame', 'dot' ou 'circle', fill 'filled' ou 'open' (un sésame évidé est le 白ゴマ des textes d’Aozora), et position 'over' (à droite en texte vertical) ou 'under' (à gauche). Ses valeurs automatiques sont celles de la région : sésame au-dessus au Japon, point en dessous en Chine. Un sésame a la même orientation sur la feuille dans les deux modes d’écriture. Quand furigana et points d’insistance sont du même côté, les points se placent à l’extérieur des lectures.

#Traits latéraux (bōsen)

:sideline[…] trace un trait à côté du texte (傍線), en dessous en composition horizontale et à droite en composition verticale, à travers la ponctuation et les espaces :

:sideline[ここに線を引く]、:sideline[二重線]{style=double}、:sideline[波線]{style=wavy pos=over}

style vaut solid (par défaut), double, wavy ou dotted ; pos vaut over ou under (en texte vertical, over est à droite, under à gauche). Deux traits latéraux qui se rencontrent cèdent chacun un huitième de cadratin. Cela fonctionne dans toute écriture : une expression anglaise soulignée est aussi un trait latéral. Un trait latéral du même côté que des furigana les chevauche ; placez l’un des deux de l’autre côté.

#Titres d’œuvres et warichu

:book[こころ] imprime 『こころ』, et un titre à l’intérieur d’un titre prend 「」. cjk.bookTitleBrackets fixe d’autres paires, de la plus extérieure à la plus intérieure : [{ open: '《', close: '》' }]. :warichu[…] compose une note sur deux rangées en demi-corps à l’intérieur de la ligne (割注), entourée par défaut de () au Japon ; cjk.warichu.open: '' et close: '' la composent sans crochets. **…** compose du gras dans la famille du texte courant ; l’emphase en gothique de JLReq demande une police de paragraphe ou de caractère à part.

#Kanbun

Le chinois classique lu en japonais (kanbun kundoku, 漢文訓読) porte de petits signes à côté des caractères : les kaeriten (返り点), qui indiquent au lecteur de revenir plus tard à un caractère, les okurigana (送り仮名), les terminaisons japonaises, et le tatesen (竪点) qui relie deux caractères. :kunten[…] les compose ; le texte n’est pas réordonné, puisqu’il se lit avec les signes.

:kunten[學]{okuri="ビテ"}而:kunten[時]{okuri="ニ"}:kunten[習]{kaeri="二" okuri="フ"}:kunten[之]{kaeri="一" okuri="ヲ"}。
  • kaeri : le signe de retour tel qu’il s’écrit : レ, 一 二 三 四, 上 中 下, 甲 乙 丙 丁, 天 地 人, et les combinés 一レ 上レ 甲レ 天レ. Les points de code du kanbun ㆑ ㆒ … sont lus comme les caractères qu’ils représentent.
  • okuri : les okurigana. Les parenthèses d’Aozora (ヲ) sont supprimées.
  • tate : un indicateur ; un tatesen relie le caractère au suivant.

Les signes accompagnent le dernier caractère entre les crochets. Selon JIS X 4051 §5, les kaeriten se composent en demi-corps après le caractère, du côté du pied de la ligne (en bas à gauche en texte vertical), et prennent un demi-cadratin à eux ; les okurigana se placent du côté de la tête (à droite) à partir du milieu du caractère, et les plus longs repoussent le caractère suivant. Le texte horizontal reprend les mêmes règles : kaeriten après le caractère dans sa moitié inférieure, okurigana au-dessus de la ligne. cjk.kunten fixe la fontSize (un demi-cadratin par défaut), la color et le placement : 'inline' (par défaut, comme les compose JIS) ou 'interlinear', où les signes ne prennent aucune chasse et se placent dans l’interligne. Le texte copié, le HTML et l’/ActualText du PDF lisent 學ビテ而時ニ習フ之ヲ : les okurigana après leurs caractères, les signes de retour omis. Un interligne trop étroit pour les okurigana est signalé par kuntenExceedsLeading.

#Nombres et compteurs

Chaque réglage de numérotation (numéros de page, listes numérotées, notes de bas de page, compteurs de ressources, modèles de titres et libellés de page du PDF) accepte les styles japonais de CSS Counter Styles :

StyleImprimeJeton
japanese-informal一, 十, 十二, 百一, 千十, 一万一一 dans un document japonais
japanese-formal壱, 壱拾, 壱百, 弐阡参壱
hiraganaあ, い, う … ん, あああ
katakanaア, イ, ウ … ン, アアア
hiragana-irohaい, ろ, は … す, いいい
katakana-irohaイ, ロ, ハ … ス, イイイ

japanese-informal compte comme le japonais écrit les nombres en toutes lettres : 十 sans 一 initial, pas de 零 pour une position vide (百一), 万 億 兆 par groupes de quatre chiffres. japanese-formal écrit les 大字 des documents juridiques, en gardant 壱 devant chaque unité (壱拾, et non 拾). Les séries de kana suivent le gojūon (48 kana, ゐ et ゑ compris) et le poème iroha (47 kana), et continuent avec deux kana après le dernier. Les chiffres kanji positionnels (二〇二六) relèvent de cjk-decimal, la forme des années et des folios. Dans un document japonais, le jeton 一 signifie japanese-informal ; dans un document chinois, il continue de désigner les nombres chinois, si bien que 第{1:一}章 imprime 第百一章 en japonais et 第一百零一章 en chinois.

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: '' },
  ],
},

Ce sont les numéros de liste d’un livre vertical (一、 (一) 1 (1) ①). Un livre technique horizontal numérote 1. (1) ア (ア) ①, l’ordre du guide de rédaction de l’administration japonaise, avec katakana aux niveaux 3 et 4. {1:words} écrit un nombre en toutes lettres japonaises (二十一) et {1:ordinal} avec 第 (第二十一) ; {numberHan} dans un texte de maquette correspond à japanese-informal. Une partie numérotée :::part{number="第三巻"} vaut 3 pour les champs qui ont besoin d’un nombre.

#Titres et blocs

Les titres japonais se placent en lignes du texte courant et se mettent en retrait en caractères du texte courant, et quelques blocs se composent à partir du pied de la ligne ou se centrent sur la page. Tous ces réglages sont facultatifs : rien ne change tant qu’un livre ne les fixe pas.

#Lignes occupées (gyōdori)

lineSpan sur un niveau de titre ou un style de titre compose le titre sur autant de lignes du texte courant (行取り, JLReq §4.1.6) : lineSpan: 3 donne un titre en 3行取り, ses caractères centrés dans la bande de trois lignes, à la place de marginTop et marginBottom. La bande commence sur une ligne du texte courant et le texte qui la suit reste sur la grille, dans les deux modes d’écriture et avec cjk.grid. Un titre plus long que sa bande prend le nombre entier de lignes suivant. Les ouvertures (span: 'page'), les titres dotés d’un advancedDesign, les titres masqués et les titres à l’intérieur d’encadrés gardent leurs marges.

#Retraits et espacement régulier

indent sur un niveau ou un style met le titre en retrait depuis le début de la ligne en cadratins du texte courant (字下げ) : indent: { value: 6, unit: 'em' } correspond à 6字下げ, quelle que soit la taille propre du titre. jidori espace régulièrement un titre d’une ligne sur autant de ses propres cadratins (字取り) : avec jidori: 3, 序章 se compose 序 章, remplissant trois caractères. {jidori=5} après le texte d’un titre règle un seul titre, et {jidori=0} désactive celui de son niveau. Un titre peut aussi porter son propre {indent=N}, en cadratins du texte courant, qui l’emporte sur celui de son niveau ou de son style : ## 一 {indent=3}, et {indent=0} le place en début de ligne. Le convertisseur Aozora l’écrit sur chaque titre à partir du [#N字下げ] de la source.

headings: {
  levels: [
    { level: 2, lineSpan: 3, indent: { value: 6, unit: 'em' } },
    { level: 3, lineSpan: 2, indent: { value: 8, unit: 'em' }, jidori: 4 },
  ],
},

#Blocs composés depuis le pied et pages centrées

La date et la signature d’une lettre se composent alignées sur la fin de la ligne (地付き), ou quelques caractères avant elle (地からN字上げ). :::paragraphs accepte align, indent et endIndent comme attributs, sans style, les nombres nus comptant en cadratins :

:::paragraphs{align=end endIndent=1}
大正三年四月
夏目漱石
:::

endIndent est aussi un champ des styles de paragraphe. :::pagebreak{center} centre le texte de la page qu’il ouvre entre la tête et le pied du bloc de texte (horizontalement en texte vertical) : le ページの左右中央 d’une page de partie ou d’une dédicace. Terminez la page par un autre :::pagebreak.

#Titres au pied d’une page paire

headings.keepWithNext empêche un titre de terminer une colonne. JLReq §4.1.7 permet à un titre de terminer la dernière colonne d’une page paire, puisque son texte ouvre alors la page en regard de la même double page ; headings.keepWithNextSpread: true l’autorise, dans les livres reliés à gauche comme à droite.

#Poèmes, haïkus et tankas

Écrivez un poème dans un bloc :::verse, un vers par ligne de Markdown, une ligne vide entre les strophes. Les espaces initiales mettent une ligne en retrait : une espace idéographique (U+3000) ou deux espaces ASCII valent un caractère avec l’indentStep par défaut. En texte vertical, chaque vers est une colonne suspendue à la tête (align vaut start par défaut), son retrait compté depuis la tête vers le bas ; un vers plus long que la colonne passe à la ligne selon les règles de coupure du texte. keepStanzas garde les strophes courtes sur une même page : trois lignes pour un haïku, cinq pour un tanka.

:::verse{keepStanzas=5}
田子の浦に
 うち出でてみれば
白妙の
 富士の高嶺に
雪は降りつつ
:::

#Notes

Les livres japonais placent les notes de plus de façons que les livres occidentaux (JLReq §4.2), et Postext leur ajoute deux appels et un emplacement. Un appel se place avant un 。 de fin de phrase : écrivez 先生[^1]。. L’appel reste avec le caractère qui le précède et 。 n’ouvre jamais une ligne, si bien que les trois ne sont jamais séparés.

#Appels

footnotes.markerPosition accepte deux valeurs japonaises en plus de 'superscript' et 'inline' :

  • 'right' : un petit appel aligné sur le côté droit d’une ligne verticale, comme les livres verticaux composent (1) ; en composition horizontale, c’est un exposant. markerSize vaut 0,7 em par défaut.
  • 'side' (合印) : un appel d’environ 0,6 em à côté du mot annoté, du côté du ruby, qui se termine là où se termine le dernier caractère du mot. Il ne prend aucune place dans la ligne, qui se coupe et se justifie comme s’il n’était pas là.

footnotes.numberGap: 'em' place un cadratin entier de la note (une espace idéographique à côté d’un texte CJK) après le numéro de la note elle-même, à la place de l’espace demi-cadratin.

#Valeurs par défaut des livres japonais

Quand l’auteur ne les fixe pas, un document japonais reçoit ces valeurs (la référence de configuration détaille chaque champ) :

ChampLivre verticalLivre horizontal
placementchapterEnd (後注)column
numberingchapterpage
markerPositionrightexposant
markerTemplate({n}), chiffres debout{n}
separator.widthun tiers de la justificationun tiers de la justification
Notes après le chapitreun cadratin après le numéro, un retrait négatif de deux cadratinsla même chose, quand placement vaut chapterEnd

Une valeur explicite l’emporte et est conservée à l’enregistrement du livre. Les documents chinois, arabes et latins gardent leurs valeurs par défaut.

#Notes sur la double page (bōchū)

placement: 'spread' place les notes d’un livre vertical à côté du texte (傍注), comme le font de nombreux ouvrages savants et traductions : les notes appelées sur les deux pages d’une double page vont à la fin de la page de gauche, sous un filet long d’un tiers de la justification, numérotées par double page (numbering: 'spread', la valeur par défaut avec cet emplacement). Quand la page de gauche ne peut pas toutes les contenir avec au moins une ligne de texte, les dernières notes restent au pied de la page de droite, et une ligne dont les notes ne trouvent place nulle part passe avec elles à la double page suivante. Les livres horizontaux n’ont pas cet emplacement : 'spread' y revient à 'column', avec un avertissement unknownConfigValue.

#Index en ordre gojūon

Un index japonais est trié selon la lecture, et non selon les caractères : 漱石 se classe à そ. Une marque :index donne la lecture en kana avec yomi (ou reading) :

:index[夏目漱石]{yomi="なつめそうせき"}は:index[{東京|とう|きょう}]に生まれた。

Quand une marque n’a pas de yomi, c’est la lecture de ses furigana qui la remplace (la seconde marque est triée comme とうきょう), puis sa clé sort, puis le texte. Une entrée dont la clé contient encore un kanji est signalée par indexReadingMissing et classée après les kana, sans intitulé de groupe. À l’intérieur de :index[…], écrivez les furigana sous la forme compacte, car :ruby[…] demanderait d’échapper ses crochets.

L’ordre est celui de JIS X 4061 : les katakana se trient comme les hiragana, les petits kana comme les grands, ー comme la voyelle qui le précède (コーヒー entre こうちゃ et こおり), une marque d’itération comme le kana qu’elle répète, et à égalité le kana simple passe avant le sonorisé, puis le semi-sonorisé (は ば ぱ). Les symboles viennent d’abord, puis les nombres selon leur valeur, puis les mots latins, puis les kana. index.groupBy: 'gojuon' (automatique pour un index japonais) intitule les groupes par rangée du gojūon, あ行, か行, さ行 … わ行 ; 'kana' par le premier kana, comme le font les dictionnaires. Les entrées latines se rangent sous leurs lettres avant les kana. Les libellés de l’index sont japonais (voir Ce qui change avec la locale).

#Citations

Un document japonais cite avec la locale CSL ja-JP : les citations narratives relient deux auteurs par と et abrègent trois auteurs ou plus avec ほか (山田と佐藤, 鈴木ほか), et un style qui met les titres entre guillemets emploie 「」 et 『』. Le style sist02 (SIST 02, la recommandation des revues japonaises de science et de technologie) est fourni :

citations: { style: 'sist02' },

Un nom de personne écrit en caractères CJK avec une espace se lit nom de famille en premier, en BibTeX comme dans les données YAML ou JSON : author = {夏目 漱石} donne le nom de famille 夏目 et le prénom 漱石. Les noms romanisés gardent l’ordre habituel. La bibliographie s’intitule 参考文献. Voir Citations et bibliographie.

#Tableaux, légendes et notes

Furigana, points d’insistance, traits latéraux, titres d’œuvres et warichu se dessinent dans les cellules de tableau, les légendes et les notes de ressources comme dans le texte courant, au corps de la cellule ou de la légende, dans le canvas, le PDF et le HTML, et leur interlignage est vérifié de la même façon. Le texte d’un tableau ou d’une légende est horizontal sur toutes les pages : sur une page verticale, le bloc entier reste debout, si bien que le tate-chū-yoko n’y change rien et que le texte de tableau vertical (縦組みの表) n’est pas disponible.

#HTML et EPUB

La sortie HTML écrit chaque lecture comme un ruby sémantique : <ruby>東<rt>とう</rt>京<rt>きょう</rt></ruby>, un <ruby> par mot, que lisent les lecteurs d’écran. Chaque page d’un document japonais porte lang="ja", si bien qu’un hôte qui monte les pages une à une obtient tout de même les formes de glyphes japonaises. Un EPUB à mise en page fixe est fait de ces pages.

Un EPUB recomposable transporte les règles qu’un système de lecture peut appliquer lui-même : line-break: strict, normal ou loose pour les trois niveaux de kinsoku, hanging-punctuation: allow-end quand le livre fait déborder la ponctuation, text-emphasis pour les points en sésame au-dessus du texte, des cases debout pour les nombres courts et les paires !? dans les livres verticaux, le cadratin après ?!, les traits latéraux, les kunten, les appels de note, les lignes occupées et les retraits des titres, et le primary-writing-mode d’un livre vertical dans son paquet. La navigation est nommée en japonais. Voir Livres EPUB pour le reste de l’export.

#Polices

Postext compose chaque style dans une seule famille, sans repli sur une autre pour un caractère manquant, si bien qu’un livre japonais a besoin d’une police japonaise qui couvre chaque caractère qu’il imprime.

  • Noto Serif JP (mincho, 明朝) pour le texte et Noto Sans JP (gothique, ゴシック) pour les titres et les libellés forment la paire habituelle ; elles couvrent JIS X 0213, macrons des rōmaji compris, et possèdent les formes verticales. Shippori Mincho et Shippori Mincho B1 ont l’allure d’une page de bunko, mais pas de ō ni de ū. BIZ UDPMincho a des kana proportionnels ; sa sœur à chasse fixe BIZ UDMincho convient à une grille de caractères. Zen Old Mincho, Klee One (une écriture de manuel scolaire) et Kaisei Decol servent aux titres et à l’affichage.
  • La langue de la police. Une police chinoise (Noto Serif SC ou TC) dessine les kanji sous leurs formes chinoises : n’y composez pas de japonais. Une police pan-CJK (Source Han Serif, Noto Serif CJK) contient les deux, et le PDF met en forme un document japonais, ainsi qu’un isolat {lang=ja} dans n’importe quel document, avec le système de langue OpenType JAN , si bien que ses kanji et ses guillemets prennent leurs formes japonaises.
  • TrueType, pas CFF. Les versions TrueType de Google Fonts et de Fontsource sont réduites aux glyphes employés. Les fichiers CFF .otf de Source Han et de Noto CJK sont incorporés en entier, de 8 à 25 Mo par graisse (cffEmbeddedWhole). Gardez vert, vrt2, vhea et vmtx quand vous réduisez une police pour un livre vertical.
  • Dans le navigateur, Fontsource sert une famille japonaise sous forme d’une centaine de fichiers numérotés, chacun contenant une partie des caractères ; le Sandbox et son onglet PDF chargent ceux qu’utilise le texte. Aucun fichier Fontsource ne contient les hentaigana (𛀁) ni d’autres kana historiques.
  • Pas d’italique. Les polices japonaises n’en ont pas ; la mise en relief se fait avec des signes.

La section Polices chinoises, japonaises et coréennes de la référence de configuration donne le code du fournisseur de polices.

#Sources de l’Aozora Bunko

L’Aozora Bunko (青空文庫) réunit des milliers de textes japonais tombés dans le domaine public, saisis en texte brut avec leur propre notation : les lectures entre 《》, | là où la base d’une lecture ne commence pas à un changement d’écriture, et des notes [#…] pour la mise en page, l’emphase, les titres et les caractères hors de JIS X 0208. Le skill postext-port fournit un convertisseur, aozora.py (Python 3.10, bibliothèque standard seulement), qui transforme un tel fichier en Markdown Postext :

python3 aozora.py 773_ruby_5968.zip -o kokoro.md --report report.json --styles styles.json

Il lit une archive zip ou un fichier texte, en UTF-8 ou dans l’encodage CP932 qu’emploient les fichiers d’Aozora, et écrit :

  • 漢字《かんじ》 et |麦藁帽《むぎわらぼう》 en ruby de groupe {漢字|かんじ}, les lectures à gauche avec pos=under ;
  • les 傍点 en :dots[…]{style=sesame} (et les autres formes que dessine Postext), les 傍線 en :sideline[…], le 縦中横 en :tcy[…], les 割り注 en :warichu[…], les kunten en :kunten[…] ;
  • les 大・中・小見出し en #, ##, ### ; 改ページ, 改丁 et 改見開き en :::pagebreak avec leur parité ;
  • 字下げ, 地付き et 字上げ en :::paragraphs{style="aozora-…"}, dont il renvoie les styles de paragraphe (--styles) pour les paragraphStyles du projet ;
  • les gaiji (※[#「てへん+劣」、第3水準1-84-77]) en caractère, au moyen de JIS X 0213 ; /\ en 〳〵 ; les katakana demi-chasse en pleine chasse.

Le U+3000 initial d’un paragraphe est supprimé (la configuration le met en retrait), et un paragraphe qui s’ouvre sur un crochet est laissé à cjk.paragraphStartBracket, si bien que le modèle ③ tombe exactement là où la source le plaçait. Les notes éditoriales ([#「X」は底本では「Y」]) et le bloc bibliographique final ne sont pas imprimés : ils reviennent dans le rapport et dans les crédits, qu’Aozora demande de conserver avec le texte. Tout ce que le convertisseur ne connaît pas est listé dans le rapport avec son numéro de ligne. Voir Le skill postext-port.

#Deux configurations complètes

Toutes deux sont des préréglages JSON, tels que le Sandbox les enregistre (postext-config.json).

#Un roman en bunko, composé verticalement

Un bunko (文庫, 105 × 148 mm) en Noto Serif JP de 9 pt, 38 caractères par ligne, composé de haut en bas et relié à droite. Les chapitres s’ouvrent sur un recto, numérotés 第一章 et en retrait de quatre caractères ; les sections occupent trois lignes, six caractères plus bas. Le kinsoku, l’espacement des yakumono, le modèle ③, le débord, les points en sésame, les 『』, l’espacement des furigana et les notes de fin de chapitre viennent de la locale :

{
  "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 est omis, si bien que la page prend autant de lignes que sa largeur en contient (15 ici). parity: 'odd' ouvre chaque chapitre sur une page de gauche, le recto d’un livre relié à droite. Les notes n’ont besoin d’aucun réglage : elles vont après chaque chapitre, appelées par (1) à droite de la ligne.

#Un livre technique, composé horizontalement

Un livre au format B5 (182 × 257 mm) composé horizontalement en Noto Serif JP de 9,5 pt, les titres en Noto Sans JP, les chapitres numérotés 第1章, les sections sur trois lignes et les sous-sections sur deux, les listes numérotées 1. (1) ア (ア) ①, les notes au pied de la page numérotées par page, et un index par rangées du gojūon :

{
  "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" } }
      }
    ]
  }
}

Les clés cjk et footnotes ne sont pas nécessaires : la locale donne au japonais horizontal son kinsoku et son espacement, et ses notes au pied de la page, numérotées par page, avec un filet long d’un tiers de la justification. Les légendes se lisent 図1-1 構成.

#Dans le Sandbox et le livre de recettes

Dans le Sandbox, Maquette › Système d’écriture regroupe la langue du document (日本語), le mode d’écriture, la reliure et tous les réglages cjk, japonais compris. Réglages japonais par défaut › Examiner… prépare un livre pour le japonais en une étape, en bunko vertical ou en livre technique horizontal, et liste d’abord chaque changement : Noto Serif JP et Noto Sans JP, un interlignage de 1,75 em, un retrait d’un cadratin, la grille de caractères d’un livre vertical, 図 et 表, 第一章, des titres en gyōdori et en retrait, des numéros de liste japonais, et les réglages chinois qui gêneraient les réglages japonais remis sur Auto. Les sélecteurs de police listent les familles japonaises en un groupe, l’échantillon de caractères montre un passage de 吾輩は猫である avec ses points d’insistance, et la barre d’outils de l’éditeur a un bouton ruby et un bouton tate-chū-yoko pour un livre japonais. Voir Sandbox.

L’étagère des vitrines contient Kokoro de Natsume Sōseki (こころ, 1914) en japonais, vertical et relié à droite, d’après le texte de l’Aozora Bunko, et le guide du Sandbox lui-même a une édition japonaise. Les Recettes rassemblent les recettes japonaises dans leur collection Mise en page japonaise, chacune une page ou une double page accompagnée du script qui la compose.

#Limites connues

  • Kinsoku : 々 en début de ligne n’est pas remplacé par le kanji qu’il répète ; la convention « loose » intermédiaire de JLReq pour les magazines n’est pas un niveau à part ; à l’intérieur d’une note warichu, ‥‥ peut se retrouver à cheval sur ses deux rangées.
  • Yakumono : le 、 serré entre chiffres kanji s’applique aussi à une énumération écrite 一、二、三 ; un point médian en fin de ligne ne cède que le quart qui le suit.
  • Furigana : la disposition jukugo ajuste chaque lecture près de son propre kanji, sans reprendre tous les cas tabulés de l’annexe F de JLReq ; une lecture en début de paragraphe n’empiète pas sur le retrait ; un mot coupé des deux côtés sur une même ligne peut sortir légèrement trop long.
  • Signes : les triangles, doubles cercles et croix d’Aozora (三角, 二重丸, 蛇の目, ばつ傍点), les signes à gauche autres que pos=under, et les traits latéraux tiretés ou en trait-point ne sont pas dessinés (le convertisseur les signale) ; un trait latéral du même côté que des furigana les chevauche ; **…** ne passe pas à une police gothique.
  • Kanbun : les signes de retour combinés (一レ) sont deux glyphes en demi-corps, et non un signe composé unique ; en mode interlinéaire, des okurigana longs peuvent rencontrer les signes du caractère suivant ; les signes à l’intérieur des notes warichu, des légendes et des cellules sont supprimés.
  • Titres et blocs : le gyōdori ne s’applique pas à l’intérieur des encadrés ni aux ouvertures ; :::pagebreak{center} ne termine pas la page de lui-même ; il n’existe pas de 字取り en ligne pour un mot du texte courant.
  • Notes : les notes sur la double page d’une page à plusieurs étages vont au pied de l’étage où se trouve le texte ; les livres horizontaux n’ont pas d’emplacement sur la double page ; la place du report est estimée avant que les figures de la page de gauche soient connues.
  • Index : le séparateur reste ,  ; les entrées latines passent avant les kana, sans option pour les mettre en dernier ; une marque invisible n’emprunte pas une lecture à un ruby situé ailleurs sur la ligne.
  • Citations : SIST 02 est le seul style japonais fourni ; les citations auteur-date gardent la ponctuation ASCII ; les bibliographies ne sont pas triées selon la lecture.
  • Tableaux : le texte des cellules et des légendes est horizontal sur toutes les pages.
  • Les numéros de ligne ne sont pas imprimés en texte vertical : un livre vertical qui active lineNumbers n’en obtient aucun, avec un avertissement de configuration lineNumbersUnsupported. Les livres horizontaux numérotent leurs lignes comme les autres (Configuration › Numéros de ligne).
  • Habillage. En texte horizontal, une image ou un encadré peut se placer d’un côté de sa colonne avec le texte à côté (voir Habillage) ; sous la grille de caractères, la place qu’il occupe est un nombre entier de caractères, si bien que les lignes voisines restent sur la grille. Le texte vertical ne compose aucun texte à côté d’une figure : une figure habillée garde sa bande, avec un avertissement textWrap (wrapUnsupported pour la valeur par défaut d’un type de ressource).
  • Tabulations. Un paragraphe horizontal qui contient une tabulation (:tab, ou un caractère de tabulation sous un style doté de taquets) est composé ligne par ligne : coupé entre les caractères selon le kinsoku, mais sans compression des yakumono ni justification entre les caractères. En texte vertical, il n’y a pas de taquets de tabulation : une tabulation est une espace entre mots, et un :tab déclenche l’avertissement de contenu tabInVerticalText. Un paragraphe avec du ruby, du warichu ou des signes de kanbun compose aussi ses tabulations comme des espaces entre mots. Voir Tabulations et taquets.
  • Lettrines. Un paragraphe horizontal peut s’ouvrir sur une lettrine d’un caractère, réglée depuis un style de paragraphe ou un niveau de titre (voir Lettrines) : sa taille se calcule d’après la hauteur propre du caractère rapportée à celle du texte, et le compositeur compose les lignes raccourcies selon le kinsoku comme d’habitude. Le texte vertical n’a pas de lettrines : un paragraphe qui s’ouvrirait sur une lettrine est composé sans elle et déclenche l’avertissement de contenu dropCap.
  • Listings de code. Un listing horizontal est composé ligne par ligne dans sa police de code ; dans une police à chasse fixe avec des kanji (BIZ UDGothic), un caractère pleine chasse occupe deux cases, si bien que les colonnes s’alignent, et une tabulation le compte pour deux. En texte vertical, un listing suit le flux vertical, ses caractères latins couchés comme le texte vertical les compose, et ne prend pas de numéros de ligne. Voir Listings de code.
  • Polices : une famille par style sans repli ; polices CFF incorporées en entier ; les métriques proportionnelles verticales (vpal) ne sont pas utilisées.
  • Le texte de maquette (titres courants, ouvertures, titres d’encadrés) suit le kinsoku, l’espacement des yakumono et l’espace entre japonais et rōmaji, comme le texte courant (cjk.composeDesignText, depuis postext 1.25), mais il est composé en drapeau et imprime lectures et signes en texte brut.

#Sources