TikZ 2

TikZ can set text nodes — \node (nodeName) at (x,y) {nodeText}; — at specified coordinates in a grid arrangement (origin at bottom left), as well as colour them and rotate them, like so:


the code for which is:
\caption{TikZ nodes}
with \myaccumTa outputting a series of \node commands, and defined as:

\foreach \i in {1,…,\value{myheight}}{
\foreach \k in {1,…,\value{mywidth}}{

\xappto\myaccumTa{\noexpand\node (A\sold) at (\acol,\arow) [draw,shape=circle, inner sep=2, fill=yellow, text=blue,rotate=240] {\strut \sold};}
Obviously, if TikZ can do that, it can stream any-direction text, including woodblock-style. Instead of being constrained by bounded loops, if we use TeX’s inherent token-iterating instinct (as exemplied by egreg’s code on StackExchange) and define a tikz picture like so:

\zzy{《紅樓夢》abcdefgh 中國古典長篇章回小說,是中國四大小說名著之一。}
\caption{TikZ nodes 2}
with \zzy defined as:

\ifx\relax#1% first one
\node (A\sold) at (\acol,\arow) [draw,shape=circle, inner sep=2, fill=white, text=black,rotate=0] {\strut #1};\expandafter\zzzy

so that, every time we are about to output into the 9th column on the page, we in effect do a carriage restore and line feed, we get this:


Setting in any direction, including TBRL, now becomes a quite straightforward transformation.

And since nodes can be individually adjusted, programmatic punctuation placement according to the style guides becomes trivial.

And all that is without even considering the other things that TikZ can do.



Using TikZ to draw (and subfig to position)

The code:











\node (A) at (-0.2,2) {a};

\node (B) at (3.2,2) {b};

\node (C) at (-0.2,1) {c};

\node (D) at (3.2,1) {d};

\node (E) at (-0.2,0) {e};

\node (F) at (3.2,0) {f};

\node (G) at (0.5,0) {o};

\node (H) at (1,0) {o};

\node (I) at (1.5,0) {o};

\node (J) at (2,0) {o};

\node (K) at (2.5,0) {o};

\node (L) at (0.5,1) {o};

\node (M) at (1,1) {o};

\node (N) at (1.5,1) {o};

\node (O) at (2,1) {o};

\node (P) at (2.5,1) {o};

\node (Q) at (0.5,2) {o};

\node (R) at (1,2) {o};

\node (S) at (1.5,2) {o};

\node (T) at (2,2) {o};

\node (U) at (2.5,2) {o};



% style between={(3,2)}{0,1}{red,dashed,thick},

% style between={5}{6}{green,very thick},


rounded corners=1.5em

] (0,2) |- (3,2) -- (0,1) -- (3,1) -- (0,0) -- (3,0);

% ] (A) |- (B) -- (C)[left] -- (D) -- (E) -- (F);

% \draw[thick,rounded corners=8pt] (0,2) |- (2,2) coordinate (x);

% \draw[-{Latex[scale=1.5]},blue,thick,dashed, rounded corners=8pt] (x) -- (0,1) ;



%\caption{LTR scanning path}







\node (A) at (3.2,2) {a};

\node (B) at (-0.2,2) {b};

\node (C) at (3.2,1) {c};

\node (D) at (-0.2,1) {d};

\node (E) at (3.2,0) {e};

\node (F) at (-0.2,0) {f};

\node (G) at (0.5,0) {o};

\node (H) at (1,0) {o};

\node (I) at (1.5,0) {o};

\node (J) at (2,0) {o};

\node (K) at (2.5,0) {o};

\node (L) at (0.5,1) {o};

\node (M) at (1,1) {o};

\node (N) at (1.5,1) {o};

\node (O) at (2,1) {o};

\node (P) at (2.5,1) {o};

\node (Q) at (0.5,2) {o};

\node (R) at (1,2) {o};

\node (S) at (1.5,2) {o};

\node (T) at (2,2) {o};

\node (U) at (2.5,2) {o};




rounded corners=1.5em

] (3,2) |- (0,2) -- (3,1) -- (0,1) -- (3,0) -- (0,0);


} \\


%\caption{RTL scanning path}






\node (A) at (0,3.2) {a};

\node (B) at (0,-0.2) {b};

\node (C) at (1,3.2) {c};

\node (D) at (1,-0.2) {d};

\node (E) at (2,3.2) {e};

\node (F) at (2,-0.2) {f};

\node (G) at (0,0.5) {o};

\node (H) at (0,1) {o};

\node (I) at (0,1.5) {o};

\node (J) at (0,2) {o};

\node (K) at (0,2.5) {o};

\node (L) at (1,0.5) {o};

\node (M) at (1,1) {o};

\node (N) at (1,1.5) {o};

\node (O) at (1,2) {o};

\node (P) at (1,2.5) {o};

\node (Q) at (2,0.5) {o};

\node (R) at (2,1) {o};

\node (S) at (2,1.5) {o};

\node (T) at (2,2) {o};

\node (U) at (2,2.5) {o};




rounded corners=1.5em

] (0,3) |- (0,0) -- (1,3) -- (1,0) -- (2,3) -- (2,0);




%\caption{TTB-LTR scanning path}






\node (A) at (0,3.2) {e};

\node (B) at (0,-0.2) {f};

\node (C) at (1,3.2) {c};

\node (D) at (1,-0.2) {d};

\node (E) at (2,3.2) {a};

\node (F) at (2,-0.2) {b};

\node (G) at (0,0.5) {o};

\node (H) at (0,1) {o};

\node (I) at (0,1.5) {o};

\node (J) at (0,2) {o};

\node (K) at (0,2.5) {o};

\node (L) at (1,0.5) {o};

\node (M) at (1,1) {o};

\node (N) at (1,1.5) {o};

\node (O) at (1,2) {o};

\node (P) at (1,2.5) {o};

\node (Q) at (2,0.5) {o};

\node (R) at (2,1) {o};

\node (S) at (2,1.5) {o};

\node (T) at (2,2) {o};

\node (U) at (2,2.5) {o};




rounded corners=1.5em

] (2,3) |- (2,0) -- (1,3) -- (1,0) -- (0,3) -- (0,0);


}%end subfloat


\caption{Reading-Writing modes}



A string of TikZ nodes could do a woodblock print, and position the punctuation, too.

Google’s Noto fonts sampled

Noto fonts sampler

Google’s free Noto fonts cover many scripts defined in Unicode.

Here’s a detail of some of them.

Random letters:


The code (can be automated via the datatools package, a CSV file with the names in it, and a loop):


% distribution = texlive2018

% compiler = xelatex






\newfontface\fad[Scale=\ascale]{Noto Sans Adlam}

\newfontface\fana{Noto Sans Anatolian Hieroglyphs}

\newfontface\fara[Scale=\ascale]{Noto Sans Arabic}

\newfontface\farm[Scale=\ascale]{Noto Sans Armenian}

\newfontface\fave[Scale=\ascale]{Noto Sans Avestan}

\newfontface\fbal[Scale=\ascale]{Noto Sans Balinese}

\newfontface\fbam[Scale=\ascale]{Noto Sans Bamum}

\newfontface\fbat[Scale=\ascale]{Noto Sans Batak}

\newfontface\fben[Scale=\ascale]{Noto Sans Bengali}

\newfontface\fbra[Scale=\ascale]{Noto Sans Brahmi}

\newfontface\fbug[Scale=\ascale]{Noto Sans Buginese}

\newfontface\fbuh[Scale=\ascale]{Noto Sans Buhid}

\newfontface\fcan[Scale=\ascale]{Noto Sans Canadian Aboriginal}

\newfontface\fcar[Scale=\ascale]{Noto Sans Carian}

\newfontface\fchak[Scale=\ascale]{Noto Sans Chakma}

\newfontface\fcham[Scale=\ascale]{Noto Sans Cham}

\newfontface\fche[Scale=\ascale]{Noto Sans Cherokee}

\newfontface\fcjkja[Scale=\ascale]{Noto Sans CJK JP Regular}

\newfontface\fcjkkr[Scale=\ascale]{Noto Sans CJK KR Regular}

\newfontface\fcjksc[Scale=\ascale]{Noto Sans CJK SC Regular}

\newfontface\fcjktc[Scale=\ascale]{Noto Sans CJK TC Regular}

\newfontface\fcop[Scale=\ascale]{Noto Sans Coptic}

\newfontface\fcun[Scale=\ascale]{Noto Sans Cuneiform}

\newfontface\fcyp[Scale=\ascale]{Noto Sans Cypriot}

\newfontface\fdes[Scale=\ascale]{Noto Sans Deseret}

\newfontface\fdev[Scale=\ascale]{Noto Sans Devanagari}

\newfontface\fegy[Scale=\ascale]{Noto Sans Egyptian Hieroglyphs}

\newfontface\feth[Scale=\ascale]{Noto Sans Ethiopic}

\newfontface\fgeo[Scale=\ascale]{Noto Sans Georgian}

\newfontface\fgla[Scale=\ascale]{Noto Sans Glagolitic}

\newfontface\fgot[Scale=\ascale]{Noto Sans Gothic}

\newfontface\fguj[Scale=\ascale]{Noto Sans Gujarati}

\newfontface\fgur[Scale=\ascale]{Noto Sans Gurmukhi}

\newfontface\fhan[Scale=\ascale]{Noto Sans Hanunoo}

\newfontface\fheb[Scale=\ascale]{Noto Sans Hebrew}

\newfontface\fimp[Scale=\ascale]{Noto Sans Imperial Aramaic}

\newfontface\fins[Scale=\ascale]{Noto Sans Inscriptional Pahlavi}

\newfontface\fjav[Scale=\ascale]{Noto Sans Javanese}

\newfontface\fkai[Scale=\ascale]{Noto Sans Kaithi}

\newfontface\fkan[Scale=\ascale]{Noto Sans Kannada}

\newfontface\fkay[Scale=\ascale]{Noto Sans Kayah Li}

\newfontface\fkha[Scale=\ascale]{Noto Sans Kharoshthi}

\newfontface\fkhm[Scale=\ascale]{Noto Sans Khmer}

\newfontface\flao[Scale=\ascale]{Noto Sans Lao}

\newfontface\flep[Scale=\ascale]{Noto Sans Lepcha}

\newfontface\flim[Scale=\ascale]{Noto Sans Limbu}

\newfontface\flinb[Scale=\ascale]{Noto Sans Linear B}

\newfontface\flis[Scale=\ascale]{Noto Sans Lisu}

\newfontface\flyc[Scale=\ascale]{Noto Sans Lycian}

\newfontface\flyd[Scale=\ascale]{Noto Sans Lydian}

\newfontface\fmal[Scale=\ascale]{Noto Sans Malayalam}

\newfontface\fman[Scale=\ascale]{Noto Sans Mandaic}

\newfontface\fmee[Scale=\ascale]{Noto Sans Meetei Mayek}

\newfontface\fmon[Scale=\ascale]{Noto Sans Mongolian}

\newfontface\fmya[Scale=\ascale]{Noto Sans Myanmar}

\newfontface\fmya[Scale=\ascale]{Noto Sans Myanmar}

\newfontface\fmya[Scale=\ascale]{Noto Sans Myanmar}

\newfontface\fnew[Scale=\ascale]{Noto Sans New Tai Lue}

\newfontface\fnko[Scale=\ascale]{Noto Sans NKo}

\newfontface\fogh[Scale=\ascale]{Noto Sans Ogham}

\newfontface\folx[Scale=\ascale]{Noto Sans Ol Chiki}

\newfontface\foldi[Scale=\ascale]{Noto Sans Old Italic}

\newfontface\foldp[Scale=\ascale]{Noto Sans Old Persian}

\newfontface\folds[Scale=\ascale]{Noto Sans Old South Arabian}

\newfontface\foldt[Scale=\ascale]{Noto Sans Old Turkic}

\newfontface\fori[Scale=\ascale]{Noto Sans Oriya}

\newfontface\fosa[Scale=\ascale]{Noto Sans Osage}

\newfontface\fosm[Scale=\ascale]{Noto Sans Osmanya}

\newfontface\fpha[Scale=\ascale]{Noto Sans Phags Pa}

\newfontface\fpho[Scale=\ascale]{Noto Sans Phoenician}

\newfontface\frej[Scale=\ascale]{Noto Sans Rejang}

\newfontface\frun[Scale=\ascale]{Noto Sans Runic}

\newfontface\fsam[Scale=\ascale]{Noto Sans Samaritan}

\newfontface\fsau[Scale=\ascale]{Noto Sans Saurashtra}

\newfontface\fsin[Scale=\ascale]{Noto Sans Sinhala}

\newfontface\fsun[Scale=\ascale]{Noto Sans Sundanese}

\newfontface\fsyl[Scale=\ascale]{Noto Sans Syloti Nagri}

\newfontface\fsyre[Scale=\ascale]{Noto Sans Syriac Eastern}

\newfontface\fsyrs[Scale=\ascale]{Noto Sans Syriac Estrangela}

\newfontface\fsyrw[Scale=\ascale]{Noto Sans Syriac Western}

\newfontface\ftaga[Scale=\ascale]{Noto Sans Tagalog}

\newfontface\ftagb[Scale=\ascale]{Noto Sans Tagbanwa}

\newfontface\ftail[Scale=\ascale]{Noto Sans Tai Le}

\newfontface\ftait[Scale=\ascale]{Noto Sans Tai Tham}

\newfontface\ftaiv[Scale=\ascale]{Noto Sans Tai Viet}

\newfontface\ftam[Scale=\ascale]{Noto Sans Tamil}

\newfontface\ftel[Scale=\ascale]{Noto Sans Telugu}

\newfontface\fthaa[Scale=\ascale]{Noto Sans Thaana}

\newfontface\fthai[Scale=\ascale]{Noto Sans Thai}

\newfontface\ftib[Scale=\ascale]{Noto Sans Tibetan}

\newfontface\ftif[Scale=\ascale]{Noto Sans Tifinagh}

\newfontface\fuga[Scale=\ascale]{Noto Sans Ugaritic}

\newfontface\fvai[Scale=\ascale]{Noto Sans Vai}

\newfontface\fyi[Scale=\ascale]{Noto Sans Yi}

\newfontface\fnsans[Scale=\ascale]{Noto Sans}

\newfontface\fphad[Scale=\ascale]{Noto Sans Symbols}

\newfontface\fsarm[Scale=\ascale,Colour=red]{Noto Serif Armenian}

\newfontface\fsben[Scale=\ascale,Colour=red]{Noto Serif Bengali}

\newfontface\fscjk[Scale=\ascale,Colour=red]{Noto Serif CJK JP}

\newfontface\fscjk[Scale=\ascale,Colour=red]{Noto Serif CJK SC}

\newfontface\fscjk[Scale=\ascale,Colour=red]{Noto Serif CJK TC}

\newfontface\fsdev[Scale=\ascale,Colour=red]{Noto Serif Devanagari}

\newfontface\fseth[Scale=\ascale,Colour=red]{Noto Serif Ethiopic}

\newfontface\fsgeo[Scale=\ascale,Colour=red]{Noto Serif Georgian}

\newfontface\fsguj[Scale=\ascale,Colour=red]{Noto Serif Gujarati}

\newfontface\fsheb[Scale=\ascale,Colour=red]{Noto Serif Hebrew}

\newfontface\fskan[Scale=\ascale,Colour=red]{Noto Serif Kannada}

\newfontface\fskhm[Scale=\ascale,Colour=red]{Noto Serif Khmer}

\newfontface\fslao[Scale=\ascale,Colour=red]{Noto Serif Lao}

\newfontface\fsmal[Scale=\ascale,Colour=red]{Noto Serif Malayalam}

\newfontface\fsmya[Scale=\ascale,Colour=red]{Noto Serif Myanmar}

\newfontface\fssin[Scale=\ascale,Colour=red]{Noto Serif Sinhala}

\newfontface\fstam[Scale=\ascale,Colour=red]{Noto Serif Tamil}

\newfontface\fstel[Scale=\ascale,Colour=red]{Noto Serif Telugu}

\newfontface\fstha[Scale=\ascale,Colour=red]{Noto Serif Thai}

\newfontface\fnserif[Scale=\ascale,Colour=red]{Noto Serif}




\section{Scripts -- in Noto fonts}

Sans-serif fonts are in \textbf{black}, serif fonts are in {\color{red}\textbf{red}}.



{\fad \RTL{\verd Adlam} 𞤵𞤥𞤕 𞤂𞤒𞤢𞤲𞥂𞤅 }

\verd Anatolian Hieroglyphs {\fana 𔐁𔐒𔐢𔐳𔑳𔑫𔑺𔐺}

{\fara {\RTL {\verd Arabic} ببب طشس} }

Armenian {\farm ԳՃՔդճւ}

Armenian {\fsarm ԳՃՔդճւ}

{\fave \RTL {\verd Avestan} 𐬃𐬓𐬢𐬡𐬠}

Balinese {\fbal ᬔᬤᬥᬳᭃᬒ}

Bamum {\fbam ꚤꚴꛄꛓꛂꛈꛁꛌ}

Batak {\fbat ᯅᯕᯥᯣᯢᯡ}

Bengali {\fben অকথৌণী}

Bengali {\fsben অকথৌণী}

Brahmi {\fbra 𑀄𑀔𑀤𑀥𑀖𑀇𑀘𑀠}

Buginese {\fbug ᨃᨓᨔᨕᨅᨆᨖ}

Buhid {\fbuh ᝃᝄᝆᝇᝉᝊᝋ}


Unified Canadian Aboriginal {\fcan ᐂᐒᐲᐴᐗᐉᑙ}

Carian {\fcar 𐊠𐊡𐊢𐊣𐊤𐊥𐊦𐊧𐊨𐊩}

Chakma {\fchak 𑄃𑄄𑄅𑄆𑄧𑄦𑄨𑄥𑄫}

Chan {\fcham ꨃꨓꨱꨣꨴꨖꨶꨈ}

Cherokee {\fche ᎣᎳᏂᏄᏇᎸᎧ}

CJK Japanese {\fcjkja 日本語ぶブロック}

CJK JP {\fscjk 日本語ぶブロック}

CJK Korean {\fcjkkr ᄆᄖᄗᄘᄒᄲ}

CJK Chinese Simplified Characters {\fcjksc 马闺镚}

CJK SC {\fscjk 马闺镚}

CJK Chinese Traditional Characters {\fcjktc 馬閨鏰聾論女戀 }

CJK TC {\fscjk 馬閨鏰聾論女戀}

Deseret {\fdes 𐐵𐐥𐐔𐐳𐑄𐐗𐐙𐐙𐐨𐐪𐐺𐐻}

Devanagari {\fdev ऄपॉतुळॅ}

Devanagari {\fsdev ऄपॉतुळॅ}

Egyptian Hieroglyphs {\fegy 𓀂𓁢𓁽𓂘𓃈𓃧 }

Ethiopic {\feth ሀሁሑሡሲቓ}

Ethiopic {\fseth ሀሁሑሡሲቓ}

Georgian {\fgeo Ⴀგდფჳჲლ}

Georgian {\fsgeo Ⴀგდფჳჲლ}

Glagolitic {\fgla ⰁⰂⰴⰵⰥⱇⰙ}

Gothic {\fgot 𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷}

Gujarati {\fguj અખૉધેસૄણૈપિ}

Gujarati {\fsguj અખૉધેસૄણૈપિ}

Gurmukhi {\fgur ਅਛੋਹੈਧਤੀਭਾ}

Hanunoo {\fhan ᜢᜣᜦᜨᜩᜪᜫᜬ}

{\fheb \RTL {\verd Hebrew} אבגדהוז}

{\fsheb \RTL {\verd Hebrew} אבגדהוז}

{\fimp\RTL {\verd Imperial Aramaic}𐡀𐡁𐡂𐡃𐡄𐡅𐡆}

{\fins \RTL {\verd Inscriptional Pahlavi} 𐭠𐭡𐭢𐭣𐭤𐭥𐭦}

Javanese {\fjav ꦆꦖꦦꦶꦥꦵꦤ꦳}

Kaithi {\fkai 𑂄𑂕𑂥𑂷𑂧𑂳𑂇𑂲}

Kannada {\fkan ಅಥಽಷೈಪೌ}

Kannada {\fskan ಅಥಽಷೈಪೌ}

Kayah Li {\fkay ꤂ꤒꤓꤧꤗꤨꤙꤩ꤇꤈}

Kharoshthi {\fkha 𐨢𐨳𐨤𐨖𐨌𐨝𐨭}

Khmer {\fkhm កខើរឿឪឫឺឣ}

Khmer {\fskhm កខើរឿឪឫឺឣ}

Lao {\flao ຄດຣິຢໄວຽມະ}

Lao {\fslao ຄດຣິຢໄວຽມະ}

Lepcha {\flep ᰃᰓᰔᰄᰕᰈ}

Limbu {\flim ᤀᤔᤴᤕᤥᤓᤲᤘᤉᤈ}

Linear B {\flinb 𐀂𐀒𐀢𐀤𐁉𐀊}

Lisu {\flis ꓐꓑꓒꓓꓔꓕꓖ}

Lycian {\flyc 𐊀𐊁𐊂𐊃𐊄𐊅𐊆}

{\flyd \RTL {\verd Lydian} 𐤠𐤡𐤢𐤣𐤤𐤥𐤦}

Malayalam {\fmal അകഥൃത്ഗസ}

Malayalam {\fsmal അകഥൃത്ഗസ}

{\fman \RTL {\verd Mandaic} ࡀࡁࡂࡃࡄࡅࡆ }

Meetei Mayek {\fmee ꯁꯂꯃꯤꯕꯥꯖꯦꯢ}

Mongolian \rotatebox{-90}{\fmon { ᠥᠦᠧᠨ}}

Myanmar {\fmya ကခဂဃဵါဇးဠ }

Myanmar {\fsmya ကခဂဃဵါဇးဠ}

New Tai Lue {\fnew ᦀᦁᦐᦩᦙᦇᦅ}

{\fnko \RTL {\verd NKo} ߁߂߃ߓߕ߆߇}

Ogham {\fogh ᚇᚌᚃᚉᚎᚁ}

Ol Chiki {\folx ᱑᱒᱓ᱣᱤᱥ᱖}

Old Italic {\foldi 𐌀𐌁𐌂𐌃𐌄𐌅𐌆𐌆𐌇}

Old Persian {\foldp 𐎠𐎡𐎲𐎳𐎴𐎥𐎧}

{\folds \RTL {\verd Old South Arabian} 𐩡𐩢𐩣𐩤𐩥𐩦𐩧 }

{\foldt \RTL {\verd Old Turkic} 𐰀𐰁𐰂𐰃𐰒𐰄𐰅𐰆 }

Oriya {\fori ଅକଥ଼ତୃଗି}

Osage {\fosa 𐒰𐒱𐓁𐓱𐓳𐓤𐓨𐓜}

Osmanya {\fosm 𐒀𐒁𐒂𐒃𐒄𐒅𐒆}

Phags Pa \rotatebox{-90}{\fpha ꡀꡁꡂꡃꡄꡅ}

Phaistos Disc {\fphad 𐇐𐇑𐇒𐇓𐇔𐇕𐇖𐇗𐇘𐇙𐇚𐇛}

{\fpho \RTL {\verd Phoenician} 𐤀𐤁𐤂𐤃𐤄𐤅𐤆}

Rejang {\frej ꤰꤱꤲꤳꤴꤵꤶ}

Runic {\frun ᚠᚢᚦᚨᚬᚱᚳ}

{\fsam \RTL {\verd Samaritan} ࠀࠁࠂࠃࠄࠅࠆ }

Saurashtra {\fsau ꢂꢒꢢꢣꢳꢴꢖ}

Sinhala {\fsin ඔපඕඅඅශවැශා}

Sinhala {\fssin ඔපඕඅඅශවැශා}

Sundanese {\fsun ᮃᮄᮅᮆᮇᮗᮈ}

Syloti Nagri {\fsyl ꠇꠉꠙꠧꠗꠥꠔꠤ}

{\fsyre \RTL {\verd Syriac Eastern} ܐܒܓܕܥܤܨܨ}

{\fsyrs \RTL {\verd Syriac Estrangela} ܐܒܓܕܥܤܨܨ}

{\fsyrw \RTL {\verd Syriac Western} ܐܒܓܕܥܤܨܨ}

Tagalog {\ftaga ᜀᜁᜂᜃᜄᜅᜆ}

Tagbanwa {\ftagb ᝠᝡᝧᝦᝤᝪᝫ}

Tai Le {\ftail ᥐᥑᥒᥓᥤᥔᥢᥗ}

Tai Tham {\ftait ᨠᨡᩂᨳᩤᩅᩢᩑᩁ}

Tai Viet {\ftaiv ꪀꪁꪑꪢꪤꪳꪠꪱꪅꪵ}

Tamil {\ftam அகதழொஈஇ}

Tamil {\fstam அகதழொஈஇ}

Telugu {\ftel అఔఴెశో}

Telugu {\fstel అఔఴెశో}

{\fthaa \RTL {\verd Thaana} ހށނޓޤވމިޘު}

Thai {\fthai กขฃำคุจง}

Thai {\fstha กขฃำคุจง}

Tibetan {\ftib ཀདཱིགྷཱུཅཆཹཧ}

Tifinagh {\ftif ⴲⴵⴷⴸⴺⵊⵖⵖ}

Ugaritic {\fuga 𐎀𐎁𐎂𐎃𐎄𐎅𐎖}

Vai {\fvai ꔀꔐꔡꕃꕖꕊꔘ}

Yi {\fyi ꀀꀐꀢꁪꃪꃧ}


Cyrillic {\fnsans АБВГДЕЖ абвгдеж}

Cyrillic {\fnserif АБВГДЕЖ абвгдеж}

Greek {\fnsans ΑΒΓΔΕΖ αβγδεζ}

Greek {\fnserif ΑΒΓΔΕΖ αβγδεζ}

Roman {\fnsans ABCDEF abcdef}

Roman {\fnserif ABCDEF abcdef}


Japanese typesetting

Japanese typesetting with Latex requires compiling with uplatex, which is part of TexLive.

Tried installing TexLive2018 via a local CTAN mirror – too slow! And cutting out after 200-300 files. Same thing with a Berlin mirror mentioned in a use list. Installs over the network not really practical. Somehow found a Canadian mirror in one of the forums, with the time difference it meant it was their off-peak on the weekend.

Thirty minutes to download a 3.2GB iso file, then mounting it, and 6 hours to install over 3500 packages, with platex appearing at the four hour mark. Yay!

Some random code from a Japanese forum compiles quite well.



The amount of work that has gone into uplatex (and the distribution install).

Am impressed.

Newsgamut style

The newsgamut latex code works quite well.

Proof of concept on a googled recent non-common law case reporting stream with more than a few sources.



Endnotes (with multiple citations automatically arranged in numerical order) and references. Plus, in a separate test, the note numbering resets with a new section.



An obvious enhancement is (automagic) sentence numbering, for pinpoint referencing. Although, the note numbers are already sort-of sentence markers (or, more specifically, factoid markers).

The question of overlapping information needs a methodological way of being represented, that is, nested information threads should be shown how? Perhaps bracketing.