Capitolo 5.2 · Parte II · Il mestiere
Formato del documento: formattazione in linea e formule
I segni dentro una riga: enfasi, link, chip, maiuscoletto, tabulazioni, testo verticale, segni cinesi e giapponesi, direzione del testo e formule LaTeX
In breve
Questa pagina riguarda i segni che usi dentro una riga di testo. Mettono le parole in grassetto o in corsivo, aggiungono link, disegnano piccole etichette, compongono il maiuscoletto e allineano il testo ai punti di tabulazione. Altri segni servono ai libri cinesi e giapponesi, come le piccole indicazioni di pronuncia sopra un carattere, o a una frase scritta nell’altra direzione, come l’inglese in un libro arabo. L’ultima sezione mostra come scrivere le formule matematiche.
#Formattazione in linea
Il markup in linea viene riconosciuto dentro qualsiasi blocco di testo (titoli, paragrafi, citazioni, voci di elenco). In un titolo segue headings.inlineMarks, attivo per impostazione predefinita: il corsivo, il grassetto, gli apici e i pedici, il maiuscoletto e i link del titolo si stampano come in un paragrafo, e una sequenza in corsivo in un titolo in corsivo risulta in tondo. Con l’opzione disattivata i marcatori vengono eliminati e il titolo si stampa nello stile proprio del titolo; le configurazioni salvate da postext 1.4 o precedenti i cui titoli contengono segni vengono lette in questo modo (vedi Configurazione › Titoli). Il progetto di un titolo stampa {titleText} come testo semplice in entrambi i casi.
| Markup | Sintassi | Note |
|---|---|---|
| Grassetto | bold o bold | Si disegna con bodyText.boldFontWeight. Un bodyText.boldColor facoltativo sostituisce il colore predefinito del testo per le sequenze in grassetto. |
| Corsivo | italic o italic | Si disegna con la variante corsiva della famiglia di caratteri corrente. Un bodyText.italicColor facoltativo sostituisce il colore predefinito del testo per le sequenze in corsivo. Un trattino basso marca l’enfasi solo al confine di una parola, come in CommonMark: uno tra due lettere o cifre (snake_case_name, il SR_AIR_EN.pdf di un URL) è testo (anche per bold); dentro una parola, usa gli asterischi (unbelievable). Le lettere cinesi, giapponesi e coreane qui non contano, perché quelle scritture non hanno spazi: 中文_斜体_中文 e 中文__粗体__中文 sono corsivo e grassetto. Un __ che non produce grassetto non diventa mai corsivo: foo__bar__baz resta testo. |
| Grassetto corsivo | both o both | I due attributi si combinano. |
| Apice | ^text^ | Composto al 58% del corpo del testo e alzato di un terzo: un esponente (10^-8^), la carica di uno ione (Na^+^). Il testo marcato inizia e termina con un carattere diverso dallo spazio; un accento circonflesso isolato nella prosa resta letterale, e così le faccine ^_^ e ^o^ (n.^o^ e 1^o^ sono comunque apici). |
| Pedice | ~text~ | Stesso corpo, abbassato di 0,15 del corpo del testo, così resta entro i discendenti: un indice chimico (H~2~O, pK~a~). Una tilde con una cifra su ciascun lato è un intervallo e resta letterale: 3~5 days, 需要3~5天. Lo stesso vale per una tilde tra due parole cinesi, che non apre un pedice: 周一~周五, 北京~上海; un pedice si chiude comunque prima di un carattere cinese (F~合~等于). Si combina con grassetto e corsivo (H~2~O). Un pedice e un apice scritti insieme, senza nulla in mezzo, vengono impilati come in una formula: T~0~^2^ mette il 2 sopra lo 0, qualunque dei due venga prima, con il pedice abbassato di 0,25 del corpo del testo per liberare l’apice, e la coppia prende la larghezza del più largo. Uno spazio o una lettera tra di essi li compone uno dopo l’altro; lo fa anche un word joiner (U+2060), senza nulla di visibile in mezzo. Una coppia impilata non si separa mai a un a capo: una parola troppo larga per la riga va a capo prima della coppia. |
| Maiuscoletto | :smallcaps[text] | Le lettere minuscole si compongono come maiuscole al 70% del corpo del testo: il nome di un personaggio in un’opera teatrale, una sigla nel testo corrente. Accetta altri segni al suo interno e intorno; vedi Maiuscoletto. |
| Orientamento nel testo verticale | :tcy[12], :upright[GDP], :sideways[12] | Nel testo verticale: una cella diritta (tate-chu-yoko), ogni carattere diritto in una cella propria, o l’intera sequenza ruotata. Nessun effetto nel testo orizzontale; vedi Orientamento nel testo verticale. |
| Segni cinesi | :dots[不可], :name[賈寶玉], :book[石頭記] | Punti di enfasi (着重号), la linea dei nomi propri (专名号) e il segno dei titoli di libri (书名号: 《》 o una linea ondulata, secondo cjk.bookTitleMark). Il testo resta come è scritto; vedi Segni cinesi, ruby e warichu. |
| Ruby | :ruby[紅樓]{rt="hóng lóu"} o {紅樓|hóng|lóu} | Letture pinyin o zhuyin sopra (o accanto a) i caratteri di base. La forma compatta richiede una base in Han, kana o bopomofo, quindi {x|x>0} resta testo. |
| Warichu | :warichu[note]{open="〔" close="〕"} | Una nota composta in due righe a metà grandezza dentro la riga (双行夹注), divisa tra righe e pagine. |
| Codice in linea | | Gli apici inversi vengono eliminati; la sequenza si disegna come testo semplice, esattamente come è scritta: un , un chip, una formula, un link o un marcatore di enfasi al suo interno si stampa letteralmente, ed è così che un testo mostra la sintassi. Si compone nel carattere del testo, oppure, con codeStyle.inline, nel carattere del codice come un’unità (vedi Configurazione › Listati di codice). Un listato va in un blocco di codice. |
| Escape | , , , , , | Una barra rovesciata compone il carattere marcatore stesso invece di aprire una sequenza: l’asterisco di una nota di tabella (), un accento circonflesso letterale, un simbolo del dollaro che non apre una formula. Funziona nel testo, nei chip e in didascalie, celle e note. (Fino a postext 1.4 didascalie, celle, note e chip stampavano la barra rovesciata di .) |
| Spazio non separabile | il carattere stesso: U+00A0, U+202F, U+2007 | Incolla le parole ai suoi lati, così una riga non va mai a capo tra di esse: un numero e la sua unità (37 °C), un riferimento di pagina (p. 12), un gruppo di migliaia (225 000). Lo spazio non separabile (U+00A0), lo spazio stretto non separabile (U+202F) e lo spazio cifra (U+2007) incollano tutti, nel testo, nelle didascalie, nelle celle, nei riquadri e nelle testatine, e ognuno conserva la propria larghezza: la giustificazione allarga solo gli spazi tra parole. Molti caratteri non hanno un glifo per lo spazio stretto non separabile o per lo spazio cifra; in quel caso si compongono come li compongono i browser, nel canvas, nell’HTML e nel PDF allo stesso modo: mezzo spazio tra parole e la larghezza di una cifra. Praticamente ogni carattere ha U+00A0, quindi è la scelta sicura. Un gruppo incollato in questo modo che è più largo dell’intera riga va a capo al suo ultimo spazio non separabile invece che dentro una parola. Il word joiner (U+2060) incolla senza occupare spazio. Digita il carattere stesso: un’entità HTML come si stampa come è scritta. Vedi Dove una riga non va mai a capo. |
| Trattino morbido | il carattere stesso: U+00AD | Un punto in cui la parola può essere divisa, con l’aggiunta di un trattino quando lì termina una riga: solo tra due lettere o cifre. Una parola che ne contiene uno non riceve altre divisioni dal dizionario, quindi il trattino morbido è la sua unica divisione; digitato prima della prima lettera di una parola non divide nulla e mantiene intera quell’occorrenza. Accanto a una parentesi, a una virgoletta o a un segno di punteggiatura non fa nulla. Vedi Dove una riga non va mai a capo. |
| Link | text | Il testo visibile resta nel flusso, composto esattamente come senza il link. L’URL rende le parole un link attivo nell’output HTML e PDF; vedi Link. |
| Immagine | | Il markdown di un’immagine in linea viene rimosso dal testo. Le immagini vanno dichiarate in PostextContent.resources così che il motore di impaginazione possa collocarle secondo le regole di resourcePlacement. |
| Chip | :chip[text] | Una sequenza di testo in un riquadro che va a capo come un’unità: una banca di parole, un tasto, un’etichetta. Lo stile viene da chipStyles; vedi Chip in linea. |
| Tabulazione | :tab, :tab{at=120mm align=end leader=". | Manda le parole che la seguono al tabulatore successivo: uno dei tabulatori dello stile del paragrafo, o quello impostato dai suoi attributi. Un carattere di tabulazione digitato nel testo è una tabulazione solo dove lo stile imposta dei tabulatori. Vedi Tabulazioni e tabulatori. |
| Formula in linea | $…$ | Una formula LaTeX che scorre con il testo circostante, per esempio $e^+1=0$. Composta da MathJax e disegnata come tracciati vettoriali in ogni backend. Usa \$ per un simbolo del dollaro letterale. Il ridimensionamento, la forma in display ($$ … $$) e la gestione degli errori sono trattati in Formule matematiche. |
#Link
Un link Markdown, [text](url), mantiene il suo testo nel flusso esattamente come verrebbe composto senza: il link non cambia mai gli a capo, la spaziatura o il colore. Conserva il suo URL per gli output che possono seguirlo:
- HTML (
renderToHtml): le parole collegate vengono racchiuse in<a href="…" rel="noopener noreferrer">, che prende il colore del testo e non ha sottolineatura. C’è un’ancora per ogni sequenza di parole collegate su una riga. - PDF (
postext-pdf): ogni sequenza di parole collegate su una riga diventa un’annotazione di link URI cliccabile. In un PDF con tag è un elementoLinkil cui testo sono le parole collegate. - Canvas: dipinto come testo semplice, perché un canvas non ha una superficie cliccabile.
Read the [configuration guide](https://postext.dev/en/docs/configuration "Configuration")
or write to [the team](mailto:team@example.com).- La destinazione può avere un titolo, che viene ignorato (
[text](https://example.com "Title")). Può anche essere racchiusa tra parentesi angolari, dove gli spazi diventano%20([text](<https://example.com/a b>)). - Si conservano solo le destinazioni sicure:
http:,https:,mailto:,tel:,ftp:e gli URL relativi (../guide,#top). Qualsiasi altro schema (javascript:,data:,file:…) compone il testo senza link. Il PDF collega solo URL assoluti. - La destinazione può contenere parentesi purché siano bilanciate, come in CommonMark:
[photo](https://commons.wikimedia.org/wiki/File:Bike_(Unsplash).jpg)collega l’intero URL. Una barra rovesciata protegge un carattere (\(,\_). Quando le parentesi non sono bilanciate, la destinazione termina alla sua prima)e il testo si compone senza link; codifica una parentesi isolata come%28o%29. Anche uno spazio termina la destinazione, a meno che non sia racchiusa tra parentesi angolari. - Una parola attaccata al testo del link condivide il link. In
see [the site](https://example.com).il punto fa parte dell’area cliccabile. - Il testo del link può contenere enfasi (
[**bold** words](…)) e può stare dentro un’enfasi (**[words](…)**). - I link funzionano in paragrafi, voci di elenco, citazioni, riquadri, didascalie, note e celle di tabella, e nei titoli finché
headings.inlineMarksè attivo (il valore predefinito). Le testatine, la struttura e le righe del sommario ricavate da un titolo conservano solo il testo, e lo stesso vale per il testo di un:chip[…]. - I link in stile riferimento (
[text][id]) e gli autolink (<https://…>) non vengono riconosciuti (vedi Che cosa NON è supportato).
Nel VDT la destinazione sta su ogni segmento collegato, come VDTLineSegment.href. Il parser conserva i link di una sequenza come intervalli del suo testo, in InlineSpan.links, e non divide mai una sequenza per un link: per questo un link non può cambiare l’impaginazione.
#Chip in linea
:chip[text] compone text in un riquadro (un «chip» arrotondato e colorato) che scorre con la riga: le parole di una banca di parole o di un esercizio di classificazione, i tasti della tastiera, le etichette. :chip[text]{style="key"} sceglie uno stile con nome da chipStyles (vedi il riferimento della configurazione); senza style, o con un id che nessuno stile dichiara, il chip prende il primo stile (uno stile chip incorporato quando la configurazione non ne ha; la Sandbox avvisa di un id sconosciuto).
Classify: :chip[battery] :chip[cable] :chip[switch] :chip[bulb]
Press :chip[Ctrl]{style="key"} + :chip[C]{style="key"} to copy.- Un’unità. Un chip non viene mai diviso né sillabato al suo interno; la riga va a capo tra i chip, negli spazi tra parole che li circondano. Un chip più largo dell’intera riga deborda invece di dividersi.
- Larghezza. Il suo avanzamento è il testo più il padding orizzontale e il contorno su entrambi i lati. La giustificazione allarga solo gli spazi tra parole, mai l’interno di un chip. Il
gapdello stile è lo spazio minimo mantenuto tra il riquadro e una parola o un chip vicino attraverso uno spazio: uno spazio più stretto viene integrato (non a un bordo della riga, e non contro una punteggiatura attaccata come:chip[a],). - Altezza. Il riquadro è una fascia intorno alla linea di base, 0,8 em sopra e 0,25 em sotto al corpo del chip, allargata dal padding verticale e dal contorno. Il padding verticale si dipinge fuori dal riquadro di riga e non cambia mai l’interlinea, così la griglia della linea di base regge; un riquadro più alto del passo di riga può invadere un chip della riga sopra o sotto, e la Sandbox segnala due chip su righe diverse che si sovrappongono («Chip che toccano la riga successiva») così che padding, contorno o corpo si possano ridurre.
- Testo. Il testo del chip accetta i propri segni in linea (
:chip[**bold** word],:chip[x^2^]) e l’enfasi intorno (**:chip[a]**); lo stile può impostarne famiglia, corpo, colore, grassetto e corsivo. Scrivi\]per una parentesi quadra letterale al suo interno. Rimandi, campioni di colore e formule dentro un chip restano letterali, e\$stampa un simbolo del dollaro (fino a postext 1.4 stampava anche la barra rovesciata). - Vuoto. Un chip fatto solo di spazi (
:chip[ ], spazi non separabili compresi) è un riquadro vuoto (uno spazio per la risposta, un segno di fine): largo quanto il padding orizzontale e il contorno del suo stile, alto quanto un chip con parole. Dimensiona lo spazio con ilpaddingXdi uno stile (:chip[ ]{style="blank"}). Senza nulla tra le parentesi,:chip[]resta testo letterale. - Dove. Paragrafi, voci di elenco, citazioni, riquadri, celle di tabella, didascalie e note. I titoli conservano
:chip[…]come testo letterale. - Output. Canvas, HTML e PDF dipingono il riquadro e compongono le parole come testo vero: selezionabile nell’HTML, estraibile e nell’ordine di lettura nel PDF (in un PDF con tag il riquadro è un artefatto di impaginazione e le parole appartengono al paragrafo).
#Maiuscoletto
:smallcaps[text] compone text in maiuscoletto: i nomi dei personaggi in un’opera teatrale, una sigla nel testo corrente, le prime parole di un capitolo. Le lettere minuscole si compongono come maiuscole al 70% del corpo del testo, mentre maiuscole, cifre e punteggiatura mantengono il corpo pieno, quindi :smallcaps[Hamlet] stampa una H a corpo pieno seguita da AMLET in maiuscoletto.
Enter :smallcaps[Hamlet] and :smallcaps[Horatio], reading.
The :smallcaps[unesco] report and the :smallcaps[who] guidelines.- Sintetizzato. Il maiuscoletto si ricava dalle maiuscole del carattere stesso, allo stesso modo nel canvas, nell’HTML e nel PDF, così il testo si misura e va a capo in modo identico ovunque. Il vero maiuscoletto di un carattere (la funzione OpenType
smcp) non viene usato; per averlo, componi il testo in una famiglia di maiuscoletto (per esempio una famiglia il cui nome termina con «SC») tramite uno stile di paragrafo. - Segni. Il testo accetta i propri segni in linea (
:smallcaps[**Ophelia**]) e l’enfasi intorno (*:smallcaps[Act I]*); scrivi\]per una parentesi quadra letterale al suo interno. Anche un rimando o un chip al suo interno si compone in maiuscoletto, e un rimando resta un unico link nell’HTML e nel PDF; una formula no. - A capo. Le parole vanno a capo e si sillabano come al solito; la sillabazione legge ogni parola con le sue maiuscole e minuscole originali.
- Dove. Paragrafi, voci di elenco, citazioni, riquadri, celle di tabella, didascalie e note, e i titoli finché
headings.inlineMarksè attivo (il valore predefinito); se è disattivato, il markup viene rimosso dal titolo e il testo si stampa come è scritto. - Paragrafi interi. Uno stile di paragrafo o il corpo di un riquadro con
smallCaps: truecompone tutto il suo testo in questo modo (vedi Stili di paragrafo). - Testo. Il canvas, l’HTML e il PDF riportano le lettere come sono dipinte: copiando
:smallcaps[Hamlet]si ottiene «HAMLET».
#Tabulazioni e tabulatori
Una tabulazione manda le parole che la seguono a un tabulatore sulla riga: il prezzo di un piatto a filo con la fine della giustezza dietro una fila di puntini, l’attore dopo il ruolo in un elenco del cast, il punteggio di una domanda d’esame al margine. Scrivi :tab dove va la tabulazione; gli spazi intorno vengono assorbiti. I tabulatori si impostano nella configurazione: bodyText.tabStops per ogni paragrafo, voce di elenco e citazione, i tabStops di uno stile di paragrafo per i paragrafi di un gruppo :::paragraphs, e i body.tabStops di uno stile di riquadro dentro i suoi riquadri (vedi Configurazione › Tabulatori). Un menu i cui prezzi terminano alla fine della giustezza, dietro i puntini:
paragraphStyles: [
{ id: 'menu', firstLineIndent: { value: 0, unit: 'em' }, tabStops: [{ position: 'end', align: 'end', leader: '. ' }] },
],:::paragraphs{style="menu"}
Onion soup :tab 8.50
Grilled sea bream with fennel and lemon :tab 21.00
::::tab{…} imposta un tabulatore solo per quella tabulazione, senza stile: lo spazio da compilare di un modulo fino alla fine della riga, un importo allineato sulla virgola decimale.
Name and surname :tab{at=end leader=rule}
Total due :tab{at=80% align=decimal} 1,234.50| Attributo | Significato |
|---|---|
at | Dove sta il tabulatore, a partire dal bordo iniziale della giustezza del paragrafo: una lunghezza (120mm, 4cm, 2em; un numero semplice è in punti), end per la fine della giustezza, o una sua frazione (60%). Senza at, :tab{…} va ai tabulatori dello stile come un semplice :tab. |
align | start (il valore predefinito): il testo dopo la tabulazione inizia al tabulatore. end: vi termina (il testo fino alla tabulazione successiva o alla fine del paragrafo). center: è centrato sul tabulatore. decimal: il suo separatore decimale sta sul tabulatore; una sequenza che non ne ha vi termina. |
leader | Testo ripetuto nello spazio prima del tabulatore: ".", ". ", "·", "_", "-" o un altro testo breve, nel carattere e nel colore del paragrafo. rule traccia una linea poco sotto la linea di base, lo spazio da compilare di un modulo. Predefinito: nessuno. |
gap | Spazio mantenuto tra la guida e il testo su entrambi i lati. Predefinito: 0.5em del corpo del paragrafo; un numero semplice è in punti. |
decimal | Il separatore su cui si allinea un tabulatore decimal. Predefinito: quello della lingua del documento: . in inglese, cinese, giapponese e arabo, , in spagnolo, catalano, portoghese, francese, tedesco e altre. |
- Dove va una tabulazione. Al primo tabulatore oltre il testo che la precede, tra i tabulatori successivi a quello preso dalla tabulazione precedente della riga, quindi la seconda tabulazione di una riga di solito prende il secondo tabulatore. Oltre l’ultimo tabulatore,
tabIntervalimposta altri tabulatori a ogni intervallo dall’inizio della giustezza; senza di esso la tabulazione è uno spazio tra parole. - Caratteri di tabulazione. Una tabulazione digitata nel testo (U+0009) è una tabulazione solo in un paragrafo il cui stile imposta
tabStopsotabInterval. Ovunque altrove è lo spazio tra parole che è sempre stata, così un documento scritto con tabulazioni al posto degli spazi mantiene la sua impaginazione. Più caratteri di tabulazione di fila avanzano di altrettanti tabulatori. Una tabulazione all’inizio di una riga del sorgente viene eliminata con gli altri spazi iniziali della riga: scrivi:tabper far iniziare una riga a un tabulatore. - Che cosa resta testo. Un
:tabseguito da una lettera (3:table), e un:tabnel codice in linea, in una formula, nell’indirizzo di un link o negli attributi di una direttiva. - Dove. Paragrafi, voci di elenco, citazioni, riquadri e gruppi
:::paragraphs. Titoli, didascalie, celle di tabella e il testo dei progetti (aperture, testatine) non hanno tabulatori. - Testo oltre il tabulatore. Quando il testo prima di una tabulazione ha già superato tutti i tabulatori rimasti sulla sua riga, un tabulatore
end,centerodecimalporta l’ultima parola prima della tabulazione alla riga successiva insieme al testo al tabulatore, e il testo che la precede si compone più stretto, come una riga del sommario manda a capo il titolo per tenere il numero di pagina. Un tabulatorestartva a capo prima della tabulazione, e il testo che la segue inizia la riga successiva al suo tabulatore. Una tabulazione che apre la sua riga e non trova comunque un tabulatore non occupa spazio. - Guide. Una guida riempie lo spazio prima del suo tabulatore e termina a filo con la fine di quello spazio, così i puntini di più righe si allineano qualunque sia il testo che li precede.
gapla tiene staccata dal testo su entrambi i lati; non c’è spazio prima quando la tabulazione apre la riga, né dopo quando non segue nulla. Una guida si compone con tre ripetizioni o più; uno spazio sufficiente per una o due resta vuoto, come nel sommario. - Divisione in righe. Un paragrafo che contiene una tabulazione si compone riga per riga, mai con Knuth–Plass. Nel testo giustificato solo gli spazi tra parole dopo l’ultima tabulazione di una riga assorbono il gioco, e l’ultima riga del paragrafo non viene allargata (vedi Giustificazione › Righe con tabulazioni). Un paragrafo centrato o allineato a destra compone le sue righe con tabulazioni dal lato iniziale, perché i tabulatori sono posizioni sulla giustezza. Da destra a sinistra, i tabulatori si misurano da destra e un tabulatore
endsta a sinistra (vedi Composizione araba). Nel testo verticale una tabulazione è uno spazio tra parole, e un:tablì genera l’avviso di contenutotabInVerticalText. - Testo e output. Il testo semplice ha un carattere di tabulazione (
\t) in corrispondenza di ogni tabulazione; le guide non sono testo, e copia, ricerca e mappa del sorgente le escludono. Il canvas, il visualizzatore HTML e l’EPUB a layout fisso le dipingono (nascoste agli screen reader nell’HTML); un PDF con tag le marca come artefatti, così il suo testo si leggeOnion soup 8.50. L’EPUB a layout fluido non può conservare esattamente i tabulatori: ogni riga di un paragrafo con tabulazioni diventa una fila delle parti tra le sue tabulazioni, dove un tabulatoreend,centerodecimal, o uno con guida, spinge la parte successiva alla fine della fila (la sua guida diventa un bordo punteggiato o continuo), e un tabulatorestartmantiene la parte che lo precede alla sua larghezza stampata. Un’esportazione in Word scrive:tabcome tabulazione di Word, e l’importazione da Word rilegge una tabulazione nel testo come:tabcon il tabulatore che Word le ha assegnato (vedi Sandbox › Documenti Word).
#Orientamento nel testo verticale
Nel testo verticale (layout.writingMode: 'vertical-rl') i caratteri cinesi stanno diritti, le parole latine e i numeri lunghi vengono ruotati di lato, e un numero di al massimo due cifre sta diritto in una cella, a meno che non si trovi in una frase latina, di cui segue le parole (vedi Configurazione › Numeri nel testo verticale). Tre segni distinguono a mano una sequenza:
第:tcy[120]回,:upright[GDP]增長:sideways[12]倍。:tcy[…](tate-chu-yoko, 縱中橫) compone il suo testo affiancato in una cella diritta di un em, compresso in larghezza quando è più largo::tcy[120],:tcy[3.0],:tcy[A+]. Si leggono bene fino a circa quattro caratteri.:upright[…]mette ogni carattere diritto in una cella propria, con le lettere latine centrate: una sigla letta lettera per lettera lungo la colonna. Una riga non va mai a capo al suo interno.:sideways[…]ruota l’intera sequenza con la riga, anche i caratteri cinesi: un numero di due cifre che l’autore vuole di lato.- Il testo resta nel testo semplice; i segni accettano al loro interno altri segni in linea (
:tcy[**12**]), un link (:sideways[[iPhone](https://…)]) e l’uno l’altro, con la precedenza al più interno (:tcy[:upright[AB]]mette A e B diritte), e si scrive\]per una parentesi quadra letterale. Nel testo orizzontale non cambiano nulla. - Un rimando, un richiamo di nota, una formula, un chip o un campione di colore dentro un segno mantiene la propria composizione:
:sideways[iPhone[^1]]ruota iPhone e lascia il numero della nota composto come ogni numero di nota; il numero di un rimando sta in una cella secondocjk.uprightDigits, come qualsiasi numero breve. - Anche un elemento di testo di progetto con
inlineMarks: trueli accetta quando è composto in verticale (vedi Configurazione › Elementi di testo verticale). - Per la divisione in righe e la giustificazione, una cella
:tcye ogni carattere:uprightcontano come caratteri cinesi, e accanto a essi non si inserisce lo spazio tra Han e latino.
#Segni cinesi, ruby e warichu
Le edizioni cinesi e giapponesi marcano il testo tra le righe invece che con il corsivo o la sottolineatura, glossano i caratteri con le loro letture e compongono il commento dentro la riga. Lo fanno sette direttive. Composizione cinese e Composizione giapponese spiegano le convenzioni che stanno dietro. Le direttive conservano il loro testo: i caratteri tra le parentesi quadre restano nel paragrafo (la ricerca, il sommario, le ancore dell’indice e il testo copiato li leggono come sono scritti), e accettano gli altri segni in linea al loro interno e intorno, compresi quelli annidati. Scrivi \] per una parentesi quadra letterale.
此事:dots[不可]輕忽。:name[賈寶玉]與:name[林黛玉]讀:book[西廂記]。
{滿紙|mǎn|zhǐ}荒唐言,:ruby[一把]{rt="yì bǎ"}辛酸淚!:ruby[都]{rt="ㄉㄡ"}云作者痴。
寶玉:warichu[甲戌側批:此是第一首標題詩。]{open="〔" close="〕"}道:……
{東京|とう|きょう}の:ruby[紫陽花]{rt="あじさい"}は*とんと*:sideline[見事]だ。:book[こころ]を読む。
:kunten[學]{okuri="ビテ"}而:kunten[時]{okuri="ニ"}:kunten[習]{kaeri="二" okuri="フ"}:kunten[之]{kaeri="一" okuri="ヲ"}。:dots[text]mette un punto di enfasi (着重号) sotto ogni carattere nel testo orizzontale, alla sua destra nel testo verticale, e nessuno sulla punteggiatura o sugli spazi.style="dot|circle|sesame"(predefinitodot),fill="open"per un contorno,pos="over|under"per l’altro lato. L’enfasi Markdown*…*su caratteri cinesi o giapponesi fa lo stesso concjk.emphasis: 'dots', il valore predefinito in un documento cinese o giapponese; le lettere latine nella stessa enfasi restano in corsivo. Gli attributi omessi prendonocjk.emphasisMark: un punto sotto il testo in cinese, un sesamo sopra (alla sua destra nel testo verticale) in giapponese.:name[text]traccia la linea dei nomi propri (专名号) sotto il testo (alla sua sinistra nel testo verticale), e:book[text]il segno dei titoli di libri (书名号): 《》 intorno al titolo (〈〉 per un titolo dentro un altro), la linea ondulata delle edizioni classiche e di Taiwan, o nulla, secondocjk.bookTitleMark(per impostazione predefinita le parentesi nella Cina continentale e in Giappone, la linea ondulata a Taiwan e a Hong Kong). In un documento giapponese le parentesi sono 『』, e 「」 per un titolo dentro un altro (cjk.bookTitleBrackets). Un solo sorgente serve un’edizione moderna continentale e una classica. Due nomi o titoli affiancati mantengono separate le loro linee.:ruby[base]{rt="…"}compone letture sopra la base (pinyin), o a destra di ogni carattere (zhuyin, il valore predefinito per le letture in bopomofo). Con tante letture quanti sono i caratteri, separate da spazi o da|, ogni carattere riceve la propria e una riga può andare a capo tra di essi (ruby mono);group, o un numero che non corrisponde, compone una sola lettura centrata sull’intera base, che non si divide mai.pos="over|under|right"sceglie il lato. La forma compatta{紅樓|hóng|lóu}(una lettura per ogni|) o{紅樓|hónglóu}(una lettura per l’intera base) si legge allo stesso modo, solo quando la base contiene un carattere Han, kana o bopomofo, fuori da formule, codice e attributi, quindi{x|x>0}nella prosa latina resta testo. Una barra rovesciata prima della parentesi graffa o della barra verticale mantiene come testo anche una base cinese:\{紅|hóng}e{紅\|hóng}stampano{紅|hóng}. Una base che apre o chiude una riga si allinea a quel bordo insieme alla sua lettura.mode=mono|group|jukugosceglie come le letture si dispongono sopra la base (mode=groupequivale agroup), ealign=center|jis|startcome si spazia una lettura più corta della sua base. In un documento giapponese la forma per carattere di una parola di due o più caratteri ({東京|とう|きょう},rt="とう|きょう") è ruby jukugo: ogni carattere conserva la sua lettura, che può sporgere sul carattere successivo della parola, la riga può andare a capo tra di essi, e le letture si spaziano e sporgono sui kana secondocjk.ruby.alignecjk.ruby.overhang; una sola lettura per l’intera base ({紫陽花|あじさい}, il《》di Aozora) è ruby di gruppo;mode=monomantiene una lettura per carattere senza sporgere sui vicini.:sideline[text]traccia una linea laterale (傍線) accanto al testo, punteggiatura e spazi compresi: sotto nel testo orizzontale e a destra nel testo verticale.style="solid|double|wavy|dotted"(predefinitosolid),pos="over|under"(nel testo verticale over è a destra, under a sinistra; funziona ancheposition=). Funziona con qualsiasi scrittura, compresa una frase inglese sottolineata.:warichu[note]compone una nota (双行夹注) in due righe a metà del corpo del testo dentro la riga, letta prima la riga superiore (quella di destra nel testo verticale). Una nota lunga riempie ciò che resta della riga e prosegue nella riga, colonna o pagina successiva, con almeno due dei suoi caratteri su ciascun lato della divisione (cjk.warichu.minChars).openeclosela racchiudono tra parentesi al corpo del testo;cjk.warichuimposta il corpo, il colore e le parentesi predefinite (() in un documento giapponese). Una nota in scrittura latina va a capo tra le parole.:kunten[字]{kaeri="…" okuri="…" tate}compone i segni kanbun dell’ultimo carattere tra le parentesi quadre:kaeriil segno di ritorno (レ, 一 二 三, 上 中 下, 甲 乙 丙, 天 地 人, e 一レ 上レ 甲レ 天レ; i punti di codice ㆑ ㆒ … si leggono allo stesso modo),okurigli okurigana (le parentesi di Aozora(ヲ)vengono eliminate), e l’indicatoretateil tatesen che lo unisce al carattere successivo. Il testo non viene riordinato: i segni si compongono a metà grandezza accanto a esso (cjk.kunten), e il testo copiato si legge 學ビテ而時ニ習フ之ヲ, con gli okurigana e senza i segni di ritorno. Un ruby al suo interno funziona per i caratteri letti due volte::kunten[:ruby[未]{rt="ザル" pos=under}]{kaeri="レ" okuri="ダ"}.
Il passo di riga non cambia mai: segni e letture stanno nell’interlinea, e la build avvisa quando lo spazio tra le righe di un paragrafo è troppo stretto per essi (cjkMarksExceedLeading, rubyExceedsLeading, kuntenExceedsLeading), e quando i segni sotto una riga e le letture sopra la successiva non entrano nello spazio che condividono, in un paragrafo o tra due. Dai ai paragrafi annotati uno stile di paragrafo con più interlinea. Segni, letture e note si disegnano in paragrafi, titoli, voci di elenco, citazioni e riquadri, e anche in didascalie, celle di tabella e note, la cui interlinea viene verificata allo stesso modo; nelle testatine e nei progetti il testo si stampa senza di essi. Con cjk.bookTitleMark: 'brackets' le 《》 di un titolo sono punteggiatura del testo: didascalie, celle, note, righe del sommario, segnalibri e voci dell’indice le conservano. Vedi Configurazione › Segni, ruby e warichu.
#La direzione del testo nel markup
Un documento scorre nella direzione che il suo locale implica (direction nella configurazione: da destra a sinistra per arabo, persiano, urdu o ebraico). Al suo interno il markup imposta la direzione di un blocco o di una sequenza di testo, per una citazione inglese in un libro arabo o una araba in un libro inglese.
- Un titolo o un contenitore:
{dir=ltr}o{dir=rtl}nei suoi attributi,# Introduction {dir=ltr},:::paragraphs{dir=ltr},:::callout{dir=rtl}. Ogni blocco dentro un contenitore prende la direzione, fino a un contenitore o a un titolo annidato che ne imposta un’altra. Un paragrafo semplice, un elenco o una citazione non hanno attributi propri: racchiudili in:::paragraphs{dir=…}. Altri valori vengono ignorati. Illangdi un contenitore (:::paragraphs{dir=ltr lang=en}) indica allo stesso modo la lingua dei blocchi al suo interno: i loro elenchi numerati usano le cifre di quella lingua. - Una sequenza di testo:
:ltr[…]e:rtl[…]isolano il loro testo (gli LRI…PDI e RLI…PDI dell’algoritmo bidirezionale Unicode): viene ordinato al suo interno, e il paragrafo intorno vede un solo carattere neutro.{lang=…}marca la lingua della sequenza nell’HTML e nel PDF. Un richiamo di nota, un:refo una formula al suo interno fa parte dell’isolamento, e gli isolamenti si annidano.
:::paragraphs{dir=ltr}
The opening of the *Nights* in Lane's translation.
:::
ترجمها :ltr[Edward William Lane]{lang=en} سنة ١٨٣٩.Un blocco composto contro la direzione del documento mantiene il proprio lato iniziale: il rientro, i marcatori di elenco e la fine a filo della sua ultima riga si spostano sul lato da cui inizia il suo testo. Usa un isolamento quando un titolo latino termina con un carattere neutro (un punto, una parentesi) che altrimenti si unirebbe all’arabo circostante. Anche i caratteri di controllo Unicode stessi (U+2066–2069, U+202A–202E, U+200E, U+200F, U+061C) vengono rispettati. Nell’editor della Sandbox ogni riga scorre nella direzione della sua prima lettera. Vedi Composizione araba.
#Formule matematiche
Il supporto per la matematica è una parte a pieno titolo del formato del documento. Postext analizza $…$ per le formule in linea e $$…$$ per le formule in evidenza (di blocco), e le disegna con MathJax in modalità SVG. Gli stessi tracciati vettoriali alimentano tutti e tre i backend, quindi l’anteprima su canvas, l’esportazione HTML e l’output PDF coincidono pixel per pixel, e il PDF resta interamente vettoriale a qualsiasi livello di zoom.
- In linea:
$…$. Riconosciuta in qualsiasi blocco di testo (paragrafo, titolo, citazione, voce di elenco). Aggiunge alla riga un unico riquadro atomico e indivisibile; Knuth–Plass la tratta come una parola che non si può spezzare. Se l’altezza naturale della formula sforasse il riquadro della riga, viene ridotta in modo uniforme così da preservare la griglia della linea di base: le espressioni molto alte vanno in modalità in evidenza. - In evidenza:
$$…$$. Su una riga a sé ($$\int_0^1 x^2\,dx$$) oppure su più righe tra recinzioni, con i marcatori$$su righe proprie. Viene disegnata centrata nella colonna e agganciata alla griglia della linea di base con margini superiore e inferiore configurabili (math.marginTop,math.marginBottom): è esattamente lo stesso meccanismo di correzione dei titoli, così il paragrafo dopo la formula torna sulla griglia. - Testo intorno a una formula in evidenza: una formula in evidenza su una riga a sé interrompe un paragrafo anche senza una riga vuota sopra. Il testo che la precede è un paragrafo che la introduce; il testo scritto subito sotto il
$$di chiusura, senza riga vuota, prosegue il paragrafo interrotto e viene composto senza rientro di prima riga, come TeX compone il «dove …» dopo una formula in evidenza. Una formula separata dal testo sopra da una riga vuota (o che segue un elenco, una citazione o un titolo) non interrompe nulla: il testo che la segue è un nuovo paragrafo, rientrato come al solito, con o senza riga vuota (math.indentAfterDisplay: falselo compone anch’esso senza rientro). Solo una formula in evidenza intera interrompe un paragrafo: una sola formula sulla riga, oppure una recinzione$$chiusa prima della riga vuota successiva; una riga come$$a$$ and $$b$$resta testo.math.keepWithLeadIntiene una formula nella colonna della riga che la introduce. (Fino a postext 1.4 una riga$$…$$senza riga vuota sopra veniva letta come parte del paragrafo e stampata così com’era scritta.) - Numeri delle equazioni:
\label{eq:x}in una formula in evidenza la numera, in ordine di lettura: (1), (2)… Una formula con numero occupa tutta la colonna (o la larghezza interna del riquadro), con l’equazione centrata e il suo numero allineato a destra sulla stessa riga. In unalign,gather,alignat,flalignoeqnarrayogni riga che porta un\labelriceve il proprio numero, a meno che la riga non indichi\nonumbero\notag. Una formula senza\labelnon viene numerata, come non lo è mai stata$$…$$.\tag{…}numera ancora una formula con il testo che le dai (\tag*{…}senza parentesi) e non viene contato; un\labelaccanto a esso dà un nome a quel testo. Il formato, i numeri di capitolo o di sezione (2.3) e gli azzeramenti si impostano inmath.equationNumbering. Metti il\labelal livello più esterno della formula o della sua riga: non dentroaligned,splitocases. - Rimandi alle equazioni:
\eqref{eq:x}nel testo stampa il numero come lo stampa la formula, (3), e\ref{eq:x}il numero nudo, 3; entrambi sono link, come ogni rimando.Eq.~\eqref{eq:x}tratta la~come fa LaTeX: uno spazio indivisibile. Anche:ref{id="eq:x"}e@eq:xstampano (3). Dentro una formula,\eqrefe\refstampano il numero (non un link). Un’etichetta che nessuna formula imposta stampa ? e compare nel pannello Verifiche. - Escape:
\$è un simbolo del dollaro letterale. I delimitatori$o$$senza corrispondenza producono una voceunclosedMathnel pannello Verifiche della Sandbox, con un’ancora al sorgente che porta il cursore lì con un clic. - Didascalie, note e celle di tabella compongono anch’esse la matematica in linea (da postext 1.19), nella riga insieme al testo e con l’allineamento della cella, alla dimensione del frammento. Lì un
$apre una formula solo secondo la regola di Pandoc: nessuno spazio dopo il$di apertura, nessuno spazio prima di quello di chiusura e nessuna cifra subito dopo, così i prezzi di $5 to $10 restano testo;\$stampa un simbolo del dollaro, quindi una stringa con l’escape si legge allo stesso modo nel testo e in una tabella. L’etichetta di un chip non accetta formule. Fino a postext 1.18 un$in quei punti veniva sempre stampato così com’era. - Errori: il sorgente TeX che MathJax rifiuta (macro non definite, errori di sintassi) emerge come avviso
invalidMath. La formula viene sostituita da un piccolo segnaposto rosso, così la geometria dell’impaginazione resta valida. - Configurazione: la sezione
mathdella configurazione esponeenabled,fontSizeScale(relativo alla dimensione del testo circostante: a 1,0 un em della formula ha quella dimensione, cioè il corpo del testo corrente per le formule in evidenza e per la matematica in linea nel testo corrente; da postext 1.5, che compone le formule circa il 13% più piccole rispetto alla 1.4, mentre i pacchetti e i libri della Sandbox salvati con la 1.4 conservano la loro dimensione; vedi Dimensione delle formule),color(eredita il colore del testo corrente quando non è impostato) e i margini delle formule in evidenza. - Il motore: MathJax si carica su richiesta. La Sandbox e il worker di impaginazione lo avviano da soli; nel tuo codice, esegui
await initMathEngine()prima dibuildDocument, altrimenti ogni formula viene impaginata come un riquadro segnaposto grigio (vedi Avviare il motore matematico).
The Euler identity $e^{i\pi}+1=0$ links the five fundamental constants.
$$
\int_0^{\infty} e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}
$$Una formula a metà frase, e la frase che prosegue dopo di essa senza rientro:
For a pendulum of length $L$ the period is
$$T_0 = 2\pi\sqrt{L/g}$$
where $g$ is the acceleration of free fall.Equazioni numerate e i rimandi a esse:
The energy is conserved,
$$
\begin{align}
E &= T + V \label{eq:energy} \\
&= \tfrac12 m v^2 + m g h \nonumber
\end{align}
$$
and Eq.~\eqref{eq:energy} holds at every instant.Teoremi, lemmi e dimostrazioni. Uno stile di riquadro con numbering conta i suoi riquadri, come l’amsthm di LaTeX conta gli ambienti di teorema: ogni riquadro si apre con la sua etichetta e il suo numero in grassetto, «Teorema 2.», il title della recinzione dopo il numero tra parentesi, «Teorema 2 (Bradley–Terry).», e un rimando al suo {#id} stampa «Teorema 2» (\ref{thm:x} o style=number il solo 2). Gli stili che indicano lo stesso contatore lo condividono, quindi un lemma che segue un teorema è il Lemma 3. L’endMark di uno stile di dimostrazione chiude i suoi riquadri con ∎ o □, allineato a destra sull’ultima riga. Vedi Enunciati numerati e dimostrazioni per gli stili.
:::callout{type="theorem" #thm:main title="Bradley–Terry"}
Every reward class holds one reparameterised reward.
:::
:::callout{type="proof"}
Apply the projection of \eqref{eq:projection} to any member of the class.
:::
By :ref{id="thm:main"}, the objective is unchanged.