Capitolo 17 · Parte II · Il mestiere
Composizione giapponese
Come Postext compone il giapponese in verticale e in orizzontale: la regione Giappone, il kinsoku, la spaziatura degli yakumono, le parentesi a inizio paragrafo, le forme verticali, i furigana, i segni di enfasi e le linee laterali, il kanbun, i numerali, i titoli in gyōdori, le note, un indice in ordine gojūon, le citazioni, i font e i testi dell’Aozora Bunko
In breve
Questa pagina spiega come Postext impagina il testo giapponese. I libri giapponesi si compongono dall’alto in basso, in colonne che si leggono da destra a sinistra, oppure in orizzontale come questa pagina. Un documento in giapponese segue le regole giapponesi per gli a capo, la spaziatura della punteggiatura, le piccole guide di lettura sopra i caratteri e i segni di enfasi. La pagina tratta anche le note, i numeri scritti in kanji, i titoli che occupano un numero fisso di righe, un indice analitico ordinato per suono e il modo di importare i testi della biblioteca Aozora Bunko. Si chiude con due esempi completi e con i limiti che restano.
Una pagina giapponese mescola quattro scritture su una griglia di celle quadrate, e la spaziatura della sua punteggiatura fa parte del testo.
Postext compone il giapponese in verticale e in orizzontale, da un unico sorgente Markdown e un’unica configurazione. Un documento in lingua giapponese divide le righe secondo le regole del kinsoku, dà a ogni parentesi e a ogni virgola lo spazio che le assegna la composizione giapponese e lo riprende dove due segni si incontrano, compone la parentesi che apre un paragrafo come fa la maggior parte dei romanzi, mette i kana piccoli e i segni di una riga verticale nelle loro forme verticali, spazia i furigana 1:2:1 sopra i loro kanji, mette punti a sesamo sulle parole in enfasi, numera i capitoli 第一章 e ordina l’indice per lettura. Da postext 1.16 tutto questo discende da locale: 'ja'; le versioni precedenti componevano il giapponese con i valori predefiniti della Cina continentale. Questa pagina spiega che cosa fa il motore e quali impostazioni lo controllano. Il riferimento della configurazione elenca ogni chiave con il suo valore predefinito, e il formato del documento descrive il markup.
Le regole seguono i Requirements for Japanese Text Layout del W3C (JLReq), citati più avanti per sezione, e la JIS X 4051, lo standard giapponese che quel documento riassume. Gran parte dei meccanismi è condivisa con il cinese, e Composizione cinese descrive le parti che questa pagina si limita a nominare: la griglia dei caratteri, la cornice ruotata di una pagina verticale, la rilegatura a destra e gli output. Le fonti sono elencate alla fine.
#La regione Giappone
Un documento il cui locale è giapponese (ja, ja-JP, ja-Jpan, maiuscolo o minuscolo, con - o _) prende la regione japan delle impostazioni cjk. Ogni campo cjk lasciato su 'auto' si risolve allora nella convenzione giapponese, e lo stesso vale per le note, l’indice analitico, le citazioni e le parole predefinite. cjk.region: 'japan' si può anche impostare a mano, in qualsiasi documento, per comporre una pagina secondo le regole giapponesi; le parole predefinite e i valori predefiniti delle note, dell’indice e delle citazioni continuano a seguire la lingua. DOCUMENT_LANGUAGES, l’elenco mostrato dal menu Lingua del documento della Sandbox, ha 日本語 tra le voci cinesi e l’arabo.
#Che cosa cambia con la lingua
| Impostazione | Giappone (ja) | Cina continentale (zh-Hans) |
|---|---|---|
Divisione in righe (lineBreak) | ja-very-strict: i kana piccoli, ー, 々 e 〜 non aprono mai una riga | gb |
Larghezza della punteggiatura (punctuationWidth) | fullwidth, con la compressione delle coppie della JLReq; un segno di chiusura conserva il suo mezzo em a fine riga finché la riga non ne ha bisogno | kaiming |
? e ! in un paragrafo (spaceAfterQuestion) | un em di spazio dopo il segno | nessuno spazio |
Il quarto di em accanto a una parola occidentale (latinSpacingEdge) | western: anche su un lato che termina con una parentesi o un simbolo, normalize()関数 | letters: solo accanto a una lettera o a una cifra |
Una parentesi che apre un paragrafo (paragraphStartBracket) | half: nella seconda metà del rientro | come a qualsiasi inizio riga |
Punteggiatura sporgente (hangingPunctuation) | allow, solo per 、。,. | none |
*…* (emphasis, emphasisMark) | punti a sesamo sopra il testo, alla sua destra nel testo verticale | punti sotto il testo |
:book[…] (bookTitleMark, bookTitleBrackets) | 『』, con 「」 al loro interno | 《》, con 〈〉 al loro interno |
Parentesi del warichu (warichu.open, close) | () | nessuna |
Ruby (ruby.overhang, ruby.align) | sporge solo sui kana, spaziato 1:2:1 | sporge di un quarto della dimensione del ruby su qualsiasi carattere vicino, centrato |
{漢字|かん|じ} | ruby jukugo | ruby mono |
Il token 一 in una numerazione | japanese-informal: 百一 | simp-chinese-informal: 一百零一 |
| Note in un libro verticale | dopo il capitolo (後注), richiami (1) a destra della riga | al piede della colonna |
Gruppi dell’indice (index.groupBy) | righe gojūon per lettura (あ行, か行…) | iniziali pinyin |
| Lingua delle citazioni | ja-JP | zh-CN |
| Figura, tabella, tabella continuata | 図、表、(続き) | 图, 表, (续) |
Anche le parole predefinite sono in giapponese: i rimandi stampano 第3章, 2.3節 e 12ページ, la bibliografia si intitola 参考文献, una tabella o un riquadro diviso riporta 次ページへ続く, l’indice analitico intitola i suoi simboli e numeri 記号 e 数字 e scrive i rinvii con una freccia (金之助 →夏目漱石, e →夏目漱石、森鷗外も見よ dopo le pagine), e un EPUB chiama la sua navigazione 目次, 表紙, 本文. Una tabella di stringhe senza voce giapponese ricade sull’inglese, mai sul cinese. I tipi figura e tabella numerano per capitolo, e una didascalia si legge 図1-1 東京の地図: etichetta e numero accostati, uno spazio ideografico prima del testo, nessun punto finale (JLReq §4.3). Un :ref si legge 図1-1, e una tabella continuata 表1-1 東京の区(続き). Sono i valori predefiniti di captionStyle.labelNumberGap e labelSeparator in un documento giapponese; un valore impostato lì ha la precedenza. La sillabazione è disattivata, come in ogni documento CJK, a meno che non la si attivi per le parole latine.
Lo stesso tag viene dichiarato negli output: il documento HTML e ognuna delle sue pagine portano lang="ja", e il PDF dichiara /Lang (ja) e modella il testo con le forme dei glifi giapponesi (vedi Font). L’impaginazione misura in quella lingua e il canvas dipinge in quella lingua (ctx.lang), in ogni contesto: in una pagina in un’altra lingua (una pagina inglese che mostra un libro giapponese, un pen) e in un worker di impaginazione le righe sono quelle che darebbe una pagina giapponese. Noto Serif JP compone una cifra larga 0,47 em in giapponese e 0,55 em in una lingua per cui non ha forme. È bodyText.shapingLanguage: 'document', il valore predefinito da postext 1.30; con 'host', che un libro salvato prima della 1.30 conserva, l’impaginazione misura, e il canvas dipinge, nella lingua della pagina che lo ospita. Unicode assegna a 直, 骨 e 角 un solo punto di codice ciascuno, e un carattere giapponese li disegna in modo diverso da uno cinese.
#Kanji, kana e rōmaji
Una riga giapponese contiene kanji, hiragana, katakana e lettere e cifre latine, il rōmaji. Postext non ha bisogno di nulla per distinguerli: un paragrafo che contiene più caratteri CJK (contano sia i kanji sia i kana) che spazi tra parole viene composto dal compositore CJK, carattere per carattere, e una parola latina o un numero al suo interno è un’unità che una riga non divide mai. Tra testo giapponese e testo latino il compositore inserisce un quarto di em (cjk.latinSpacing), che una riga giustificata può allargare fino a mezzo em (JLReq §3.2.2); uno spazio digitato lì dall’autore viene sostituito, non sommato. Una parola occidentale lo riceve anche su un lato che termina con una parentesi o un simbolo (normalize()関数, (abc)関数, 100%関数; cjk.latinSpacingEdge: 'western', il valore predefinito in Giappone, JLReq §3.2.6), ma non una parentesi o un simbolo isolato tra caratteri giapponesi (関数(かんすう)は). La prosa giapponese non ha spazi tra le parole, quindi uno spazio digitato tra due parole giapponesi resta uno spazio.
Il rōmaji nella trascrizione Hepburn modificata usa i macron (Tōkyō, Sōseki), e il carattere deve averli: Postext non prende in prestito un glifo mancante da un’altra famiglia. Una parola in un’altra lingua si può marcare con un isolamento, :ltr[the Meiji era]{lang=en}: l’HTML la marca lang="en", il PDF la compone in uno /Span con il suo /Lang e la modella con le forme di quella lingua. Le lettere e le cifre a larghezza piena (K, 12) sono caratteri giapponesi: stanno diritte nel testo verticale e contano un em ciascuna.
I katakana a mezza larghezza (カタカナ) non si usano nei libri; scrivi le forme a larghezza piena, oppure lascia che le cambi il convertitore Aozora. Il trattino ondulato 〜 (U+301C) e la tilde a larghezza piena ~ (U+FF5E) che il testo di Windows produce al suo posto vengono letti entrambi come la classe del trattino giapponese.
#Il Markdown di un capitolo giapponese
Il giapponese si scrive nello stesso Markdown di qualsiasi altra lingua, con le comodità di un capitolo cinese:
- Manda a capo dove vuoi. Un fine riga tra due caratteri giapponesi viene eliminato, quindi un editor può spezzare il sorgente a qualsiasi larghezza.
- Rientra con la configurazione. Un paragrafo giapponese rientra di un em:
bodyText.firstLineIndent: { value: 1, unit: 'em' }. Gli spazi ideografici (U+3000) con cui inizia un paragrafo vengono eliminati dal parser, così un sorgente digitato con essi rientra come uno digitato senza. - Digita il markup in ASCII. Un metodo di input giapponese produce
:::,#e[^1]; vengono stampati come testo, e la build segnala ogni riga comefullwidthMarkupindicando la forma ASCII da digitare. I valori degli attributi si possono racchiudere tra 「…」. - Id e nomi di file conservano kana e kanji, segni di sonorizzazione compresi: un capitolo intitolato がっこう viene salvato con quel nome.
#Composizione orizzontale
Ogni regola di questa sezione funziona allo stesso modo lungo una riga verticale; la sezione successiva aggiunge ciò che lì cambia. Il compositore è quello del cinese (vedi Composizione cinese › Composizione orizzontale); la regione Giappone ne cambia le regole dove la JLReq differisce dalla clreq.
#Divisione in righe (kinsoku)
Il kinsoku shori (禁則処理) tiene alcuni caratteri lontani dall’inizio di una riga e altri dalla sua fine. cjk.lineBreak ha tre livelli giapponesi, ricalcati sulle tre convenzioni dell’Appendice C.3 della JLReq; i livelli cinesi restano disponibili.
| Livello | Mai a inizio riga | Usato in |
|---|---|---|
ja-very-strict | Parentesi e virgolette di chiusura 」』)〕】; 、,。.; i trattini ‐ – ゠ 〜 ~; ?!‼⁇⁈⁉; ・:;; i segni di iterazione ゝゞヽヾ〻 e 々; il segno di allungamento ー; i kana piccoli ぁぃぅぇぉっゃゅょゎゕゖ ァィゥェォッャュョヮヵヶ ㇰ–ㇿ; le unità % ℃. | Il valore predefinito della JIS X 4051; quello della regione Giappone. |
ja-strict | Come ja-very-strict, ma i kana piccoli, ー e 々 possono aprire una riga. | Libri di carattere generale (lo «strict» della JLReq). |
ja-loose | Solo parentesi e virgolette di chiusura, 、, e 。.. Trattini, ?!, punti mediani, segni di iterazione, kana piccoli e ー possono aprire una riga. | Quotidiani (il «loose» della JLReq). |
A ogni livello giapponese nessuna riga termina con una parentesi o una virgoletta di apertura, un simbolo di valuta resta con il suo numero (tranne che con ja-loose), e la barra non ha regole (quella regola è della GB/T 15834). I segni di due em ―― e …… possono aprire una riga, come consente la JLReq, ma non si dividono mai, e lo stesso vale per 〳〵. Una lineetta di due em, ―― o ——, si stampa come un solo tratto qualunque sia il bianco che il carattere lascia alle estremità della sua lineetta, e una fila di lineette digitata come filetto (――――――) come un solo filetto; ogni lineetta conserva l’avanzamento del suo carattere. Un numero resta con il suo segno e la sua unità (¥1,500, 50%), una parola latina resta intera a meno che non sia più larga della riga, e un richiamo di nota non apre mai una riga: resta con il carattere che lo precede.
I numeri cerchiati (①–⑳, ⑴, ❶ e simili) si compongono come caratteri giapponesi: una cella, nessuno spazio tra essi e il rōmaji, e con ja-very-strict e ja-strict nessuna riga termina con uno di essi, perché numera il testo che segue (cjk.circledNumbers: 'western' li compone come lettere latine, come fino a postext 1.24). Un titolo :book[…] nei suoi 『』 tiene due dei suoi caratteri su ciascun lato di un a capo (cjk.titleMinChars).
Quando il carattere successivo non può aprire una riga, il compositore prova prima ad accoglierlo cedendo spazio nella riga (oikomi, spinta dentro), nell’ordine della JLReq riportato più sotto, e solo dopo porta a capo il carattere che lo precede (oidashi, spinta fuori). 々 non viene mai sostituito dal kanji che ripete a inizio riga (la JLReq cita questa pratica; cambia il testo).
I libri illustrati e i primi libri di lettura composti in kana mettono uno spazio tra le frasi (分かち書き, むかし むかし、 ある ところに) e vanno a capo solo lì. cjk.wordBreak: 'keep-all' li divide così: in corrispondenza di uno spazio (U+0020 o U+3000) e accanto alla punteggiatura dove il livello lo consente (dopo 、。」, prima di 「), mai tra due lettere, kana, kanji o caratteri latini. Le regole del livello valgono ancora sugli spazi, e una frase più lunga della riga viene divisa al suo interno come la dividerebbe il livello. Uno stile di paragrafo imposta il proprio valore con wordBreak, per un sillabario citato in un libro di prosa ordinaria. Una riga giustificata assorbe il gioco prima nei suoi spazi, fino a mezzo em ciascuno, poi tra i suoi caratteri. L’EPUB a layout fluido scrive word-break: keep-all. Il coreano, che separa le parole (어절) con spazi, usa la stessa impostazione.
#Yakumono: la spaziatura della punteggiatura
La punteggiatura giapponese (yakumono, 約物) si compone a larghezza piena: il glifo occupa mezzo em e l’altra metà è spazio, prima di una parentesi di apertura, dopo una di chiusura e dopo 、。. ・:; stanno al centro del loro em con un quarto di em per lato, e ?! riempiono il loro em. Ciò che la composizione giapponese regola è quello spazio (JLReq §3.1):
- Coppie. Dove due segni si incontrano, una metà bianca se ne va: 」、 「「 、「 」「 。」 occupano un em e mezzo invece di due, e 」・ tiene un quarto di em tra i due glifi (JLReq §3.1.4).
compressAdjacentlo disattiva. - Fine riga. Un segno di chiusura a fine riga conserva il suo mezzo em. È il primo spazio a essere ceduto quando la riga deve accogliere un carattere in più, e viene ceduto per intero o per niente.
- Dentro la riga, lo spazio dopo 。 non viene mai ridotto, e i quarti di un punto mediano vengono ceduti prima dei mezzi em delle parentesi e di 、.
- ? e ! prendono un em pieno di spazio dopo di sé quando la frase continua (JLReq §3.1.6): 本当? そう思う. Non prima di una parentesi di chiusura o di un altro ?!, non alla fine di un paragrafo o di una riga, e non di nuovo quando l’autore ha digitato lì U+3000. Lo spazio non si allarga né si restringe mai.
cjk.spaceAfterQuestionlo disattiva (o lo attiva in un’altra regione). - Numerali. 、 e ・ tra due numerali in kanji si compongono accostati e non si dividono mai: 二、三日, 三・一四.
Quando una riga è troppo lunga di poco, restituisce spazio in quest’ordine (JLReq §3.8.3): gli spazi tra parole, poi il mezzo em dopo il segno che chiude la riga (tutto o niente), poi i quarti di un punto mediano a fine riga, poi i quarti dei punti mediani dentro la riga, poi i mezzi em di parentesi, 、 e ,, e infine lo spazio tra giapponese e latino, fino a un ottavo di em. Quando una riga è corta, la si allarga tra i suoi caratteri come una riga cinese, salvo che non si aggiunge spazio dopo una parentesi di apertura né prima di una di chiusura, né accanto a 、。・:;?! o a uno spazio ideografico (JLReq §3.1.11).
#Parentesi a inizio paragrafo
Un paragrafo rientrato di un em può aprirsi con una parentesi: lo fa la maggior parte dei dialoghi di un romanzo. La JLReq §3.1.5 descrive tre modi di comporla, e cjk.paragraphStartBracket ne sceglie uno:
'indent'(①): il rientro resta e la parentesi prende un em tutto suo dopo di esso.'half'(③, il valore predefinito in Giappone): la parentesi cede il bianco che precede il suo glifo, che riempie la seconda metà del rientro, e il testo si allinea con quello degli altri paragrafi. Con un rientro di due em il testo inizia a 2 em.'flush'(天付き): la parentesi sta sul bordo, senza rientro.
Si applica solo a un paragrafo con rientro della prima riga; un rientro sporgente o l’assenza di rientro restano come sono. In una regione cinese 'auto' compone la parentesi come a qualsiasi inizio riga, come prima. Una parentesi che apre una riga spezzata all’interno di un paragrafo si compone sempre a filo (trimLineStart, attivo in Giappone).
#Punteggiatura sporgente (burasagari)
cjk.hangingPunctuation vale 'auto' per impostazione predefinita. In Giappone significa 'allow': un 、。,. che altrimenti aprirebbe la riga successiva, e che la spinta dentro non riesce ad accogliere, sporge oltre la fine della riga (burasagari, ぶら下げ), in orizzontale e in verticale. ?!, le parentesi e i punti mediani non sporgono mai. Altrove 'auto' significa 'none', come prima. 'force' fa sporgere ogni segno di questo tipo che chiude una riga, e 'none' disattiva la punteggiatura sporgente.
#La giustificazione e l’ultima riga
Il testo giapponese si compone giustificato, con l’ultima riga del paragrafo accostata. Una riga che richiederebbe più di mezzo em tra i suoi caratteri viene composta corta e segnalata come cjkLooseLine (vedi Sillabazione e giustificazione). Un paragrafo non termina con una riga di un solo carattere (泣き別れ) quando bodyText.avoidRunts è attivo, come per impostazione predefinita: la riga sopra prova prima ad accoglierlo cedendo spazio di punteggiatura, purché nessuna riga diventi troppo spaziata, e solo dopo gli cede un carattere. La JLReq §3.5.4 non dà a questa regolazione una priorità alta e spesso tollera il carattere isolato, ma cerca di evitarlo; anche un paragrafo non giustificato cede un carattere, lasciando la riga sopra più corta di uno. La carta da manoscritto (原稿用紙) si compone diversamente: con cjk.grid.fullLines un paragrafo non giustificato non cede alcun carattere, perché la riga sopra non potrebbe essere allargata e il suo ultimo quadrato resterebbe vuoto. Accoglie comunque il carattere dove la punteggiatura ha spazio da cedere.
#Scrittura verticale
layout.writingMode: 'vertical-rl' compone il libro dall’alto in basso, rilegato a destra, con la prima pagina sul lato sinistro (JLReq §2.3). Il modello di pagina è quello cinese: vedi Composizione cinese › Scrittura verticale per i registri, la rilegatura a destra, le figure e gli output. Per i libri giapponesi vale la pena ripetere due cose. I registri si riempiono uno dopo l’altro e non vengono bilanciati alla fine di un capitolo (nariyuki), mentre le colonne di un libro orizzontale sì, a meno che il libro non sia composto su una griglia di caratteri, dove anche le colonne si riempiono riga per riga (vedi Composizione cinese › La griglia dei caratteri). E uno stile di titolo può impostare il proprio modo di scrittura, così un indice o una bibliografia si possono comporre in orizzontale in fondo a un libro verticale, come accade in molti libri.
#Forme verticali
Nella regione Giappone ogni carattere si dispone come chiedono la JLReq §3.1 e la UAX #50:
- I kana piccoli (ぁ っ ャ ㇰ) prendono la forma verticale del font, che sta più in alto e più a destra di quella orizzontale; con un carattere che non la ha, il glifo viene invece spostato di circa un ottavo di em.
- 、。,. stanno nell’angolo in alto a destra della loro cella, come nella Cina continentale. :; sono ruotati di un quarto di giro. !? stanno diritti, centrati. ・ occupa un em pieno.
- “ ” sono virgolette solo orizzontali: una riga verticale le stampa come 〝 〟. Il testo conserva “ ” per la copia e la ricerca nel canvas e nel PDF; l’HTML copia 〝〟. ‘ ’ vengono ruotate.
- Le parentesi, ー, 〜 e le lineette seguono la colonna.
- 〳〵 (くの字点, la ripetizione di due kana) è un segno solo verticale, alto due celle, che non si divide mai.
Il canvas usa le forme verticali proprie del font quando la Sandbox ha caricato il gemello vert della famiglia, e il PDF le disegna tramite il font in modalità verticale (vedi Composizione cinese › Il testo verticale in ogni output).
#Tate-chū-yoko
I numeri fino a due cifre stanno diritti in una cella (cjk.uprightDigits, 2 per impostazione predefinita), e :tcy[…], :upright[…] e :sideways[…] impostano a mano una sequenza, come in cinese. In Giappone anche le coppie !!, !?, ?! e ?? stanno in una cella diritta, a mezza larghezza o a larghezza piena (すごい!?): una coppia a larghezza piena viene dipinta con i segni a mezza larghezza, che entrano in un em senza dimezzare i tratti. Una coppia a contatto con una parola latina (Wow!!), un terzo segno (!!!) o una cifra resta com’è. Una cella di questo tipo non apre mai una riga.
#Pagine, registri e folio
Un libro giapponese verticale di solito stampa il folio in cifre arabe al piede, e un folio verticale in kanji lungo il margine esterno quando il progetto grafico lo prevede: page.pageNumbering.format: 'cjk-decimal' scrive 一〇五 per la pagina 105, la forma posizionale usata dai folio (JLReq §2.6). I capitoli si aprono su un recto, che in un libro rilegato a destra è una pagina sinistra: breakBefore: { enabled: true, parity: 'odd' }. Le testatine sul margine esterno di Elementi di testo verticale funzionano senza modifiche per i libri giapponesi.
Su una griglia di caratteri (cjk.grid) una pagina giapponese contiene tutte le righe che la sua griglia conta: lì bodyText.avoidWidows e bodyText.avoidOrphans sono entrambi disattivati per impostazione predefinita. La JLReq §3.5.4 conta i caratteri dell’ultima riga di un paragrafo e non fissa un numero di righe a un’interruzione di pagina, quindi un paragrafo può lasciare una riga al piede di una pagina o portarne una alla successiva. Imposta una delle due chiavi su true per ripristinare la regola. Un documento senza griglia le tiene attive entrambe.
#Furigana
I furigana sono le letture in kana composte accanto ai kanji: sopra di essi in orizzontale, alla loro destra in verticale. Sono ruby, e :ruby[…] e la forma compatta {…|…} li compongono come compongono il pinyin cinese, con tre aggiunte giapponesi: il modo in cui una lettura si ripartisce sulla sua base, quanto può sporgere sui caratteri vicini e come si spazia una lettura corta.
#Ruby mono, di gruppo e jukugo
{東京|とう|きょう}に行く。{紫陽花|あじさい}が咲いた。
:ruby[昨日]{rt="きのう" mode=group}、:ruby[明日]{rt="あ|す" mode=jukugo align=jis}。- Ruby jukugo (熟語ルビ): ogni kanji di un composto ha la propria lettura, e una riga può andare a capo tra di essi, ciascuna parte con la sua lettura. Una lettura può sporgere sul kanji successivo della parola quando è più lunga del proprio, ma le letture non si sovrappongono mai; quando non entrano tutte, la parola condivide la lettura come un gruppo. In un documento giapponese
{東京|とう|きょう}(una lettura per ogni|) è ruby jukugo. - Ruby di gruppo (グループルビ): una sola lettura sopra l’intera parola, che non si divide mai.
{紫陽花|あじさい}(una lettura per la base),groupomode=group. Il紫陽花《あじさい》di Aozora è ruby di gruppo, e così ciò che il convertitore scrive al suo posto. - Ruby mono (モノルビ): una lettura per kanji senza sporgere sui vicini,
mode=mono. È ciò che{東京|とう|きょう}significa in un documento cinese.
#Sporgenza e allineamento
cjk.ruby.align spazia una lettura più corta della sua base. 'jis' (il valore predefinito in Giappone) la spazia 1:2:1, mezza unità prima del primo kana e dopo l’ultimo, un’unità tra di essi (JIS X 4051, JLReq §3.3.6); 'center' la centra accostata; 'start' la allinea all’inizio della base. Una lettura più lunga della sua base sporge sui caratteri accanto fin dove cjk.ruby.overhang lo permette, e il resto dello spazio si ottiene spaziando la base (1:2:1 con 'jis'):
'kana'(il valore predefinito in Giappone): al massimo un carattere ruby su un kana, un ー o il lato bianco di un segno di punteggiatura, mezzo carattere ruby su una parentesi di apertura, nulla su un kanji, una parola latina o un’altra lettura (JLReq §3.3.8).'any': mezzo carattere ruby su qualsiasi vicino privo di lettura.'none': la base si allarga fino all’intera lettura.
All’inizio e alla fine di una riga una lettura non sporge oltre il bordo: si allinea a filo con esso e la base si sposta verso l’interno. cjk.ruby.smallKana: 'full' compone a grandezza piena i kana piccoli di una lettura (きよう per きょう), come fanno alcuni libri per leggibilità; 'keep' (predefinito) li stampa come sono scritti. Una lettura si può scrivere parola per parola con align= e mode=, che hanno la precedenza sulla configurazione. In una regione cinese i valori automatici sono quelli di prima, quindi pinyin e zhuyin si compongono come prima.
I furigana stanno nello spazio tra le righe: un’interlinea del testo di circa 1,75 em lascia spazio per letture a metà grandezza (JLReq §2.4.2), e uno spazio troppo stretto viene segnalato come rubyExceedsLeading. Una lettura ruby serve anche come lettura per l’indice della parola che marca (vedi Indice in ordine gojūon).
#Segni di enfasi e linee laterali
Il giapponese non inclina le lettere. Mette in enfasi con segni accanto ai caratteri e traccia linee accanto a essi per altri scopi; i segni conservano il testo, quindi la ricerca e il testo copiato leggono i caratteri come sono scritti.
#Segni di enfasi (bōten)
L’enfasi Markdown su testo giapponese, *とんと*, stampa un punto a sesamo (﹅, il 傍点 dei romanzi) sopra ogni carattere in orizzontale e alla sua destra in verticale (JLReq §3.3.9); le lettere latine dentro la stessa enfasi mantengono il corsivo. :dots[…] fa lo stesso in modo esplicito, e i suoi attributi scelgono il segno:
それは*とんと*見当がつかぬ。:dots[ここ]{style=circle fill=open}が大切だ。cjk.emphasisMark imposta il valore predefinito per tutto il libro: style 'sesame', 'dot' o 'circle', fill 'filled' o 'open' (un sesamo vuoto è il 白ゴマ dei testi Aozora), e position 'over' (a destra nel testo verticale) o 'under' (a sinistra). I suoi valori automatici sono quelli della regione: sesamo sopra in Giappone, un punto sotto in Cina. Un sesamo ha lo stesso orientamento sul foglio in entrambi i modi di scrittura. Quando furigana e segni di enfasi stanno sullo stesso lato, i segni vanno all’esterno delle letture.
#Linee laterali (bōsen)
:sideline[…] traccia una linea accanto al testo (傍線), sotto di esso in orizzontale e alla sua destra in verticale, attraverso punteggiatura e spazi:
:sideline[ここに線を引く]、:sideline[二重線]{style=double}、:sideline[波線]{style=wavy pos=over}style è solid (predefinito), double, wavy o dotted; pos è over o under (nel testo verticale over è a destra, under a sinistra). Due linee laterali che si incontrano cedono ciascuna un ottavo di em. Funziona con qualsiasi scrittura: anche una frase inglese sottolineata è una linea laterale. Una linea laterale sullo stesso lato dei furigana si sovrappone a essi; metti uno dei due sull’altro lato.
#Titoli di libri e warichu
:book[こころ] stampa 『こころ』, e un titolo dentro un titolo prende 「」. cjk.bookTitleBrackets imposta altre coppie, dalla più esterna: [{ open: '《', close: '》' }]. :warichu[…] compone una nota in due righe a metà grandezza dentro la riga (割注), racchiusa tra () per impostazione predefinita in Giappone; cjk.warichu.open: '' e close: '' la compongono senza parentesi. **…** compone il grassetto nella famiglia del testo; l’enfasi in gotico della JLReq richiede un carattere tipografico a parte, a livello di paragrafo o di carattere.
#Kanbun
Il cinese classico letto come giapponese (kanbun kundoku, 漢文訓読) porta piccoli segni accanto ai caratteri: i kaeriten (返り点), che dicono al lettore di tornare più tardi a un carattere, gli okurigana (送り仮名), le desinenze giapponesi, e il tatesen (竪点) che unisce due caratteri. :kunten[…] li compone; il testo non viene riordinato, perché si legge con i segni.
:kunten[學]{okuri="ビテ"}而:kunten[時]{okuri="ニ"}:kunten[習]{kaeri="二" okuri="フ"}:kunten[之]{kaeri="一" okuri="ヲ"}。kaeri: il segno di ritorno come si scrive: レ, 一 二 三 四, 上 中 下, 甲 乙 丙 丁, 天 地 人, e i combinati 一レ 上レ 甲レ 天レ. I punti di codice kanbun ㆑ ㆒ … si leggono come i caratteri che rappresentano.okuri: gli okurigana. Le parentesi di Aozora(ヲ)vengono eliminate.tate: un indicatore; un tatesen unisce il carattere al successivo.
I segni vanno con l’ultimo carattere tra le parentesi quadre. Seguendo la JIS X 4051 §5, i kaeriten si compongono a metà grandezza dopo il carattere, sul lato del piede della riga (in basso a sinistra nel testo verticale), e occupano mezzo em tutto loro; gli okurigana stanno sul lato della testa (a destra) a partire dalla metà del carattere, e quelli più lunghi spingono avanti il carattere successivo. Il testo orizzontale applica le stesse regole: kaeriten dopo il carattere, nella sua metà inferiore, okurigana sopra la riga. cjk.kunten imposta fontSize (mezzo em per impostazione predefinita), color e placement: 'inline' (predefinito, come li compone la JIS) o 'interlinear', dove i segni non hanno avanzamento e stanno nello spazio tra le righe. Il testo copiato, l’HTML e l’/ActualText del PDF leggono 學ビテ而時ニ習フ之ヲ: gli okurigana dopo i loro caratteri, i segni di ritorno omessi. Uno spazio tra le righe troppo stretto per gli okurigana viene segnalato come kuntenExceedsLeading.
#Numerali e contatori
Ogni impostazione di numerazione (numeri di pagina, elenchi numerati, note a piè di pagina, contatori delle risorse, modelli dei titoli ed etichette di pagina del PDF) accetta gli stili giapponesi di CSS Counter Styles:
| Stile | Stampa | Token |
|---|---|---|
japanese-informal | 一, 十, 十二, 百一, 千十, 一万一 | 一 in un documento giapponese |
japanese-formal | 壱, 壱拾, 壱百, 弐阡参 | 壱 |
hiragana | あ, い, う … ん, ああ | あ |
katakana | ア, イ, ウ … ン, アア | ア |
hiragana-iroha | い, ろ, は … す, いい | い |
katakana-iroha | イ, ロ, ハ … ス, イイ | イ |
japanese-informal conta come il giapponese scrive i numeri in lettere: 十 senza 一 iniziale, nessun 零 per una posizione vuota (百一), 万 億 兆 per gruppi di quattro cifre. japanese-formal scrive i 大字 dei documenti legali, mantenendo 壱 prima di ogni unità (壱拾, non 拾). Le serie di kana seguono il gojūon (48 kana, ゐ e ゑ compresi) e la poesia iroha (47 kana), e proseguono con due kana dopo l’ultimo. Le cifre posizionali in kanji (二〇二六) sono cjk-decimal, la forma degli anni e dei folio. In un documento giapponese il token 一 significa japanese-informal; in uno cinese continua a indicare i numerali cinesi, quindi 第{1:一}章 stampa 第百一章 in giapponese e 第一百零一章 in cinese.
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: '' },
],
},Questi sono i numeri degli elenchi di un libro verticale (一、 (一) 1 (1) ①). Un libro tecnico orizzontale numera 1. (1) ア (ア) ①, l’ordine della guida di scrittura del governo, con katakana ai livelli 3 e 4. {1:words} scrive un numero in lettere giapponesi (二十一) e {1:ordinal} con 第 (第二十一); {numberHan} in un testo del progetto grafico è japanese-informal. Una parte numerata :::part{number="第三巻"} vale 3 per i segnaposto che richiedono un numero.
#Titoli e blocchi
I titoli giapponesi si collocano in righe del testo e si rientrano in caratteri del testo, e alcuni blocchi si compongono a partire dal piede della riga o centrati nella pagina. Tutte queste impostazioni sono facoltative: nulla cambia finché un libro non le imposta.
#Righe occupate (gyōdori)
lineSpan su un livello di titolo o su uno stile di titolo compone il titolo in quel numero di righe del testo (行取り, JLReq §4.1.6): lineSpan: 3 produce un titolo 3行取り, con i caratteri centrati nella fascia di tre righe, al posto di marginTop e marginBottom. La fascia inizia su una riga del testo e il testo che segue resta sulla griglia, in entrambi i modi di scrittura e con cjk.grid. Un titolo più lungo della sua fascia occupa il numero intero di righe successivo. Le aperture (span: 'page'), i titoli con un advancedDesign, i titoli nascosti e i titoli dentro i riquadri conservano i loro margini.
#Rientri e spaziatura uniforme
indent su un livello o su uno stile rientra il titolo dall’inizio della riga in em del testo (字下げ): indent: { value: 6, unit: 'em' } è 6字下げ, qualunque sia la dimensione propria del titolo. jidori spazia uniformemente un titolo di una riga su quel numero di em propri (字取り): con jidori: 3, 序章 si compone 序 章, riempiendo tre caratteri. {jidori=5} dopo il testo di un titolo imposta un singolo titolo, e {jidori=0} disattiva quello del suo livello. Un titolo può anche portare un proprio {indent=N}, in em del testo, che prevale su quello del livello o dello stile: ## 一 {indent=3}, e {indent=0} lo compone a inizio riga. Il convertitore Aozora lo scrive su ogni titolo a partire dal [#N字下げ] del sorgente.
headings: {
levels: [
{ level: 2, lineSpan: 3, indent: { value: 6, unit: 'em' } },
{ level: 3, lineSpan: 2, indent: { value: 8, unit: 'em' }, jidori: 4 },
],
},#Blocchi composti dal piede e pagine centrate
La data e la firma di una lettera si compongono a filo con la fine della riga (地付き), o qualche carattere più in su (地からN字上げ). :::paragraphs accetta align, indent e endIndent come attributi, senza uno stile, con numeri semplici che contano em:
:::paragraphs{align=end endIndent=1}
大正三年四月
夏目漱石
:::endIndent è anche un campo degli stili di paragrafo. :::pagebreak{center} centra il testo della pagina che apre tra la testa e il piede della gabbia del testo (in orizzontale nel testo verticale): il ページの左右中央 di un occhiello di parte o di una dedica. Chiudi la pagina con un altro :::pagebreak.
#Titoli al piede di una pagina pari
headings.keepWithNext impedisce a un titolo di chiudere una colonna. La JLReq §4.1.7 consente a un titolo di chiudere l’ultima colonna di una pagina pari, perché il suo testo apre allora la pagina di fronte della stessa doppia pagina; headings.keepWithNextSpread: true lo permette, nei libri rilegati a sinistra come in quelli rilegati a destra.
#Poesie, haiku e tanka
Scrivi una poesia in un blocco :::verse, un verso per riga di Markdown, una riga vuota tra le strofe. Gli spazi iniziali rientrano un verso: uno spazio ideografico (U+3000) o due spazi ASCII valgono un carattere con l’indentStep predefinito. Nel testo verticale ogni verso è una colonna appesa alla testa (align vale start per impostazione predefinita), con il rientro contato verso il basso a partire dalla testa; un verso più lungo della colonna va a capo secondo le regole di divisione del testo. keepStanzas tiene le strofe brevi su una pagina: tre versi per un haiku, cinque per un tanka.
:::verse{keepStanzas=5}
田子の浦に
うち出でてみれば
白妙の
富士の高嶺に
雪は降りつつ
:::#Note
I libri giapponesi collocano le note in più modi di quelli occidentali (JLReq §4.2), e Postext aggiunge per esse due richiami e una collocazione. Un richiamo va prima di un 。 finale di frase: scrivi 先生[^1]。. Il richiamo resta con il carattere che lo precede e 。 non apre mai una riga, quindi i tre non vengono mai separati.
#Richiami
footnotes.markerPosition accetta due valori giapponesi oltre a 'superscript' e 'inline':
'right': un piccolo richiamo a filo con il lato destro di una riga verticale, come i libri verticali compongono (1); in orizzontale è un apice.markerSizevale 0,7 em per impostazione predefinita.'side'(合印): un richiamo di circa 0,6 em accanto alla parola marcata, sul lato del ruby, che termina dove termina l’ultimo carattere della parola. Non occupa spazio nella riga, che si divide e si giustifica come se non ci fosse.
footnotes.numberGap: 'em' mette un em pieno della nota (uno spazio ideografico accanto a testo CJK) dopo il numero della nota stessa, al posto dello spazio en.
#Valori predefiniti per i libri giapponesi
Quando l’autore non li imposta, un documento giapponese riceve questi valori (il riferimento della configurazione riporta ogni campo):
| Campo | Libro verticale | Libro orizzontale |
|---|---|---|
placement | chapterEnd (後注) | column |
numbering | chapter | page |
markerPosition | right | apice |
markerTemplate | ({n}), cifre diritte | {n} |
separator.width | un terzo della giustezza | un terzo della giustezza |
| Note dopo il capitolo | un em dopo il numero, un rientro sporgente di due em | lo stesso, quando placement è chapterEnd |
Un valore esplicito ha la precedenza e viene conservato quando il libro viene salvato. I documenti cinesi, arabi e latini mantengono i propri valori predefiniti.
#Note sulla doppia pagina (bōchū)
placement: 'spread' compone le note di un libro verticale accanto al testo (傍注), come fanno molti libri accademici e tradotti: le note citate in entrambe le pagine di una doppia pagina vanno in fondo alla pagina sinistra, sotto un filetto lungo un terzo della giustezza, numerate per doppia pagina (numbering: 'spread', il valore predefinito con questa collocazione). Quando la pagina sinistra non riesce a contenerle tutte con almeno una riga di testo, le ultime note restano al piede della pagina destra, e una riga le cui note non entrano da nessuna parte passa con esse alla doppia pagina successiva. I libri orizzontali non hanno questa collocazione: lì 'spread' ricade su 'column', con un avviso unknownConfigValue.
#Indice in ordine gojūon
Un indice analitico giapponese si ordina per lettura, non per caratteri: 漱石 va sotto そ. Un segno :index fornisce la lettura in kana con yomi (o reading):
:index[夏目漱石]{yomi="なつめそうせき"}は:index[{東京|とう|きょう}]に生まれた。Quando un segno non ha yomi, ne fa le veci la lettura dei suoi furigana (il secondo segno si ordina come とうきょう), poi la sua chiave sort, poi il testo. Una voce la cui chiave contiene ancora un kanji viene segnalata come indexReadingMissing e collocata dopo i kana, senza intestazione. Dentro :index[…] scrivi i furigana nella forma compatta, perché :ruby[…] richiederebbe di proteggere le sue parentesi.
L’ordine è quello della JIS X 4061: i katakana si ordinano come hiragana, i kana piccoli come quelli grandi, ー come la vocale che lo precede (コーヒー tra こうちゃ e こおり), un segno di iterazione come il kana che ripete, e a parità vengono prima i semplici, poi i sonori, poi i semisonori (は ば ぱ). Prima vengono i simboli, poi i numeri per valore, poi le parole latine, poi i kana. index.groupBy: 'gojuon' (automatico per un indice giapponese) intitola i gruppi per riga gojūon, あ行, か行, さ行 … わ行; 'kana' per il primo kana, come fanno i dizionari. Le voci latine si raggruppano sotto le loro lettere prima dei kana. Le etichette dell’indice sono in giapponese (vedi Che cosa cambia con la lingua).
#Citazioni
Un documento giapponese cita con la locale CSL ja-JP: le citazioni narrative uniscono due autori con と e abbreviano tre o più autori con ほか (山田と佐藤, 鈴木ほか), e uno stile che mette i titoli tra virgolette usa 「」 e 『』. Lo stile sist02 (SIST 02, la linea guida delle riviste giapponesi di scienza e tecnologia) è incluso:
citations: { style: 'sist02' },Un nome di persona scritto in caratteri CJK con uno spazio si legge cognome per primo, in BibTeX e nei dati YAML o JSON: author = {夏目 漱石} è il cognome 夏目 e il nome 漱石. I nomi romanizzati mantengono l’ordine consueto. La bibliografia si intitola 参考文献. Vedi Citazioni e bibliografia.
#Tabelle, didascalie e note
Furigana, segni di enfasi, linee laterali, titoli di libri e warichu vengono disegnati nelle celle delle tabelle, nelle didascalie e nelle note delle risorse come nel testo, alla dimensione della cella o della didascalia, nel canvas, nel PDF e nell’HTML, e la loro interlinea viene verificata allo stesso modo. Il testo di una tabella o di una didascalia è orizzontale in ogni pagina: in una pagina verticale l’intero blocco sta diritto, quindi lì il tate-chū-yoko non cambia nulla e il testo verticale nelle tabelle (縦組みの表) non è disponibile.
#HTML ed EPUB
L’output HTML scrive ogni lettura come ruby semantico: <ruby>東<rt>とう</rt>京<rt>きょう</rt></ruby>, un <ruby> per parola, che gli screen reader leggono. Ogni pagina di un documento giapponese porta lang="ja", così anche un host che monta le pagine una alla volta ottiene le forme dei glifi giapponesi. Un EPUB a layout fisso è fatto di queste pagine.
Un EPUB a layout fluido porta le regole che un sistema di lettura può applicare da sé: line-break: strict, normal o loose per i tre livelli di kinsoku, hanging-punctuation: allow-end quando il libro usa la punteggiatura sporgente, text-emphasis per i segni a sesamo sopra il testo, celle diritte per i numeri brevi e per le coppie !? nei libri verticali, l’em dopo ?!, le linee laterali, i kunten, i richiami di nota, le righe occupate e i rientri dei titoli, e il primary-writing-mode di un libro verticale nel suo package. La navigazione ha nomi giapponesi. Vedi Libri EPUB per il resto dell’esportazione.
#Font
Postext compone ogni stile in una sola famiglia, senza ricadere su un’altra per un carattere mancante, quindi un libro giapponese ha bisogno di un carattere giapponese che copra ogni carattere che stampa.
- Noto Serif JP (mincho, 明朝) per il testo e Noto Sans JP (gotico, ゴシック) per titoli ed etichette sono la coppia consueta; coprono la JIS X 0213, macron del rōmaji compresi, e hanno le forme verticali. Shippori Mincho e Shippori Mincho B1 hanno l’aspetto di una pagina bunko, ma non hanno ō né ū. BIZ UDPMincho ha kana proporzionali; il suo fratello a larghezza fissa BIZ UDMincho si presta a una griglia di caratteri. Zen Old Mincho, Klee One (una grafia da libro scolastico) e Kaisei Decol servono per titoli e testo da display.
- La lingua del carattere. Un carattere cinese (Noto Serif SC o TC) disegna i kanji nelle forme cinesi: non comporre il giapponese con esso. Un carattere pan-CJK (Source Han Serif, Noto Serif CJK) le contiene entrambe, e il PDF modella un documento giapponese, e un isolamento
{lang=ja}in qualsiasi documento, con il sistema linguistico OpenTypeJAN, così i suoi kanji e le sue virgolette prendono le forme giapponesi. - TrueType, non CFF. Le build TrueType di Google Fonts e Fontsource vengono ridotte ai glifi usati. I file CFF
.otfdi Source Han e Noto CJK vengono incorporati interi, da 8 a 25 MB per peso (cffEmbeddedWhole). Conservavert,vrt2,vheaevmtxquando riduci un carattere per un libro verticale. - Nel browser, Fontsource serve una famiglia giapponese come un centinaio di file numerati, ciascuno con una parte dei caratteri; la Sandbox e la sua scheda PDF caricano quelli che il testo usa. Nessun file di Fontsource contiene gli hentaigana (𛀁) o altri kana storici.
- Niente corsivi. I caratteri giapponesi non ne hanno; l’enfasi si compone con i segni.
Font cinesi, giapponesi e coreani, nel riferimento della configurazione, riporta il codice del provider di font.
#Testi dell’Aozora Bunko
L’Aozora Bunko (青空文庫) raccoglie migliaia di testi giapponesi non più coperti da diritto d’autore, digitati in testo semplice con una notazione propria: letture tra 《》, | dove la base di una lettura non inizia a un cambio di scrittura, e note [#…] per l’impaginazione, l’enfasi, i titoli e i caratteri esterni alla JIS X 0208. La skill postext-port include un convertitore, aozora.py (Python 3.10, solo libreria standard), che trasforma un file di questo tipo in Markdown di Postext:
python3 aozora.py 773_ruby_5968.zip -o kokoro.md --report report.json --styles styles.jsonLegge uno zip o un file di testo, in UTF-8 o nella codifica CP932 usata dai file Aozora, e scrive:
漢字《かんじ》e|麦藁帽《むぎわらぼう》come ruby di gruppo{漢字|かんじ}, le letture a sinistra comepos=under;- 傍点 come
:dots[…]{style=sesame}(e le altre forme che Postext disegna), 傍線 come:sideline[…], 縦中横 come:tcy[…], 割り注 come:warichu[…], i kunten come:kunten[…]; - 大・中・小見出し come
#,##,###; 改ページ, 改丁 e 改見開き come:::pagebreakcon la loro parità; - 字下げ, 地付き e 字上げ come
:::paragraphs{style="aozora-…"}, di cui restituisce gli stili di paragrafo (--styles) per iparagraphStylesdel progetto; - i gaiji (
※[#「てへん+劣」、第3水準1-84-77]) come il carattere corrispondente, tramite la JIS X 0213; /\ come 〳〵; i katakana a mezza larghezza come a larghezza piena.
L’U+3000 iniziale di un paragrafo viene eliminato (lo rientra la configurazione), e un paragrafo che si apre con una parentesi viene lasciato a cjk.paragraphStartBracket, così lo schema ③ cade esattamente dove lo ha messo il sorgente. Le note editoriali ([#「X」は底本では「Y」]) e il blocco bibliografico in fondo non vengono stampati: tornano nel rapporto e nei crediti, che l’Aozora chiede di conservare insieme al testo. Tutto ciò che il convertitore non conosce viene elencato nel rapporto con il numero di riga. Vedi La skill postext-port.
#Due configurazioni complete
Entrambe sono JSON di preset, come li salva la Sandbox (postext-config.json).
#Un romanzo bunko, composto in verticale
Un bunko (文庫, 105 × 148 mm) in Noto Serif JP a 9 pt, 38 caratteri per riga, composto dall’alto in basso e rilegato a destra. I capitoli si aprono su un recto, numerati 第一章 e rientrati di quattro caratteri; le sezioni occupano tre righe, sei caratteri più in basso. Kinsoku, spaziatura degli yakumono, schema ③, punteggiatura sporgente, segni a sesamo, 『』, spaziatura dei furigana e note di fine capitolo vengono dalla lingua:
{
"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 è omesso, quindi la pagina contiene tutte le righe che la sua larghezza consente (qui 15). parity: 'odd' apre ogni capitolo su una pagina sinistra, il recto di un libro rilegato a destra. Le note non richiedono impostazioni: vanno dopo ogni capitolo, con il richiamo (1) a destra della riga.
#Un libro tecnico, composto in orizzontale
Un libro B5 (182 × 257 mm) composto in orizzontale in Noto Serif JP a 9,5 pt, titoli in Noto Sans JP, capitoli numerati 第1章, sezioni su tre righe e sottosezioni su due, elenchi numerati 1. (1) ア (ア) ①, note al piede della pagina numerate per pagina e un indice per righe 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" } }
}
]
}
}Le chiavi cjk e footnotes non servono: la lingua dà al giapponese orizzontale il suo kinsoku e la sua spaziatura, e le sue note al piede della pagina, numerate per pagina, con un filetto lungo un terzo della giustezza. Le didascalie si leggono 図1-1 構成.
#Nella Sandbox e nel Ricettario
Nella Sandbox, Grafica › Sistema di scrittura raccoglie la lingua del documento (日本語), il modo di scrittura, la rilegatura e tutte le impostazioni cjk, comprese quelle giapponesi. Predefiniti per il giapponese › Rivedi… prepara un libro per il giapponese in un solo passaggio, come bunko verticale o come libro tecnico orizzontale, ed elenca prima ogni modifica: Noto Serif JP e Noto Sans JP, un’interlinea di 1,75 em, un rientro di un em, la griglia dei caratteri di un libro verticale, 図 e 表, 第一章, titoli in gyōdori e rientrati, numeri di elenco giapponesi, e le impostazioni cinesi che intralcerebbero quelle giapponesi riportate su Auto. I selettori di font elencano le famiglie giapponesi come un gruppo, il campione tipografico mostra un passo di 吾輩は猫である con i suoi segni di enfasi, e la barra degli strumenti dell’editor ha un pulsante per il ruby e uno per il tate-chū-yoko in un libro giapponese. Vedi Sandbox.
Lo scaffale delle vetrine contiene Kokoro di Natsume Sōseki (こころ, 1914) in giapponese, verticale e rilegato a destra, dal testo dell’Aozora Bunko, e la guida della Sandbox stessa ha un’edizione giapponese. Il Ricettario raccoglie le ricette giapponesi nella sua raccolta Impaginazione giapponese, ciascuna una pagina o una doppia pagina con lo script che la compone.
#Limiti noti
- Kinsoku: 々 a inizio riga non viene sostituito dal kanji che ripete; la convenzione «lasca» intermedia che la JLReq prevede per le riviste non è un livello a sé; dentro una nota warichu, ‥‥ può finire a cavallo delle sue due righe.
- Yakumono: il 、 pieno tra numerali in kanji si applica anche a un’enumerazione scritta 一、二、三; un punto mediano a fine riga cede soltanto il quarto che lo segue.
- Furigana: la composizione dei jukugo adatta ogni lettura accanto al proprio kanji, non riproduce tutti i casi tabulati nell’Appendice F della JLReq; una lettura a inizio paragrafo non invade il rientro; una parola tagliata su entrambi i lati in una stessa riga può risultare leggermente lunga.
- Segni: i triangoli, i doppi cerchi e le croci di Aozora (三角, 二重丸, 蛇の目, ばつ傍点), i segni sul lato sinistro diversi da
pos=undere le linee laterali tratteggiate o a tratto e punto non vengono disegnati (il convertitore li segnala); una linea laterale sullo stesso lato dei furigana si sovrappone a essi;**…**non passa a un carattere gotico. - Kanbun: i segni di ritorno combinati (一レ) sono due glifi a mezza grandezza, non un unico segno composto; in modalità interlineare un okurigana lungo può toccare i segni del carattere seguente; i segni dentro note warichu, didascalie e celle vengono scartati.
- Titoli e blocchi: il gyōdori non si applica dentro i riquadri né alle aperture;
:::pagebreak{center}da solo non chiude la pagina; non esiste un 字取り in linea per una parola nel testo corrente. - Note: le note di doppia pagina su una pagina con più registri vanno al piede del registro in cui si trova il testo; i libri orizzontali non hanno la collocazione sulla doppia pagina; lo spazio per il rinvio viene stimato prima di conoscere le figure della pagina sinistra.
- Indice analitico: il separatore resta
,; le voci latine precedono quelle in kana, senza un’opzione per metterle in fondo; un segno invisibile non prende in prestito la lettura dal ruby presente altrove nella riga. - Citazioni: SIST 02 è l’unico stile giapponese incluso; le citazioni autore-data mantengono la punteggiatura ASCII; le bibliografie non sono ordinate per lettura.
- Tabelle: il testo delle celle e delle didascalie è orizzontale in tutte le pagine.
- Numeri di riga: non vengono stampati nel testo verticale: un libro verticale che attiva
lineNumbersnon ne ottiene nessuno e riceve un avviso di configurazionelineNumbersUnsupported. I libri orizzontali numerano le righe come qualsiasi altro libro (Configurazione › Numeri di riga). - Scontornatura del testo. Nel testo orizzontale un’immagine o un riquadro può stare su un lato della colonna con il testo accanto (vedi Scontornatura del testo); con la griglia dei caratteri lo spazio che occupa è un numero intero di caratteri, così le righe accanto restano sulla griglia. Il testo verticale non compone testo accanto a una figura: una figura scontornata mantiene la sua fascia, con un avviso
textWrap(wrapUnsupportedper il valore predefinito di un tipo di risorsa). - Tabulazioni. Un paragrafo orizzontale che contiene una tabulazione (
:tab, oppure un carattere di tabulazione con uno stile dotato di tabulatori) viene composto riga per riga: diviso tra i caratteri secondo il kinsoku, ma senza compressione degli yakumono né giustificazione tra i caratteri. Nel testo verticale non esistono tabulatori: una tabulazione è uno spazio tra parole e un:tabgenera l’avviso di contenutotabInVerticalText. Anche un paragrafo con ruby, warichu o segni kanbun compone le tabulazioni come spazi tra parole. Vedi Tabulazioni e tabulatori. - Capilettera. Un paragrafo orizzontale può aprirsi con un capolettera di un carattere, impostato da uno stile di paragrafo o da un livello di titolo (vedi Capilettera): la sua dimensione si basa sull’altezza propria del carattere rispetto a quella del testo, e il compositore compone le righe accorciate secondo il kinsoku come di consueto. Il testo verticale non ha capilettera: un paragrafo che ne avrebbe uno viene composto senza e genera l’avviso di contenuto
dropCap. - Listati di codice. Un listato orizzontale viene composto riga per riga nel suo carattere per il codice; in un carattere monospaziato con kanji (BIZ UDGothic) un carattere a larghezza piena occupa due celle, così le colonne restano allineate, e una tabulazione lo conta come due. Nel testo verticale un listato segue il flusso verticale, con il testo latino ruotato di lato come lo compone il testo verticale, e non riceve numeri di riga. Vedi Listati di codice.
- Font: una sola famiglia per stile, senza font di riserva; i caratteri CFF vengono incorporati interi; le metriche proporzionali verticali (
vpal) non vengono usate. - Testo del progetto grafico (testatine, aperture, titoli dei riquadri): segue il kinsoku, la spaziatura degli yakumono e lo spazio tra giapponese e rōmaji come il corpo del testo (
cjk.composeDesignText, da postext 1.25), ma viene composto in bandiera e stampa letture e segni come testo semplice.
#Fonti
- W3C, Requirements for Japanese Text Layout (JLReq), Group Note.
- JIS X 4051:2004 日本語文書の組版方法 (regole di composizione dei documenti giapponesi).
- JIS X 4061:1996 日本語文字列照合順番 (ordinamento delle stringhe di caratteri giapponesi).
- W3C, CSS Text Level 3 e Level 4, CSS Text Decoration Level 3 (
text-emphasis), CSS Ruby Annotation Layout, CSS Writing Modes Level 4 e CSS Counter Styles Level 3. - Unicode Standard Annex #14, Line Breaking Algorithm, e #50, Unicode Vertical Text Layout.
- 青空文庫, 注記一覧 (la guida alle annotazioni dell’Aozora Bunko).
- SIST 02 参照文献の書き方 (Japan Science and Technology Agency) e la locale ja-JP di CSL.