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:

tikznodes1

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

\newcommand*\myaccumTa{}
\foreach \i in {1,…,\value{myheight}}{
\foreach \k in {1,…,\value{mywidth}}{
\COPY{\i}{\arow}
\COPY{\k}{\acol}
\SUBTRACT{\arow}{1}{\solb}
\MULTIPLY{\solb}{\value{mywidth}}{\solc}
\ADD{\solc}{\acol}{\sold}

\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:

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

\newcounter{thecol}
\newcounter{therow}
\setcounter{therow}{1}
\def\zzy#1{\setcounter{thecol}{0}\def\zzsepy{}\zzzy#1\relax}
\def\zzzy#1{%
\ifx\relax#1% first one
\else%
\zzsepy\def\zzsepy{}%
\stepcounter{thecol}%
\ifthenelse{\equal{\value{thecol}}{9}}{\setcounter{thecol}{1}\stepcounter{therow}}{}
\COPY{\value{therow}}{\arow}
\COPY{\value{thecol}}{\acol}
\SUBTRACT{\arow}{1}{\solb}
\MULTIPLY{\solb}{\value{mywidth}}{\solc}
\ADD{\solc}{\acol}{\sold}
\node (A\sold) at (\acol,\arow) [draw,shape=circle, inner sep=2, fill=white, text=black,rotate=0] {\strut #1};\expandafter\zzzy
\fi}

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:

tikznodes2

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.

Advertisements

TikZ

readwritemodes
Using TikZ to draw (and subfig to position)

The code:

\documentclass[12pt]{article}

\usepackage{subfig}

\usepackage{tikz}

\usetikzlibrary{arrows.meta}

\usetikzlibrary{decorations.pathreplacing,decorations.markings}

\begin{document}

\begin{figure}

\begin{center}

\subfloat[LTR-TTB]{%

\begin{tikzpicture}

\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};

\draw[

-{Latex[scale=1.5]},

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

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

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) ;

\end{tikzpicture}

%\end{center}

%\caption{LTR scanning path}

%\end{figure}

}\qquad

%\begin{figure}[hb]

%\begin{center}

\subfloat[RTL-TTB]{%

\begin{tikzpicture}

\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};

\draw[

-{Latex[scale=1.5]},

thick,

rounded corners=1.5em

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

\end{tikzpicture}

} \\

%\end{center}

%\caption{RTL scanning path}

%\end{figure}

\subfloat[TTB-LTR]{%

%\begin{figure}

%\begin{center}

\begin{tikzpicture}

\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};

\draw[

-{Latex[scale=1.5]},

thick,

rounded corners=1.5em

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

\end{tikzpicture}

}\qquad

%\end{center}

%\caption{TTB-LTR scanning path}

%\end{figure}

\subfloat[TTB-RTL]{%

%\begin{figure}

%\begin{center}

\begin{tikzpicture}

\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};

\draw[

-{Latex[scale=1.5]},

thick,

rounded corners=1.5em

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

\end{tikzpicture}

}%end subfloat

\end{center}

\caption{Reading-Writing modes}

\end{figure}

\end{document}

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:

mulyilang

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

 

% distribution = texlive2018

% compiler = xelatex

\documentclass[12pt]{article}

\usepackage{fontspec}

\usepackage{xcolor}

\newcommand\ascale{1.5}

\newfontface\verd[Colour=blue]{Verdana}

\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}

\usepackage{graphicx}

\usepackage{bidi}

\begin{document}

\section{Scripts -- in Noto fonts}

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

\vskip2em

\verd

{\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 ᝃᝄᝆᝇᝉᝊᝋ}

\vskip1em

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 ꀀꀐꀢꁪꃪꃧ}

\section{General}

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

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

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

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

Roman {\fnsans ABCDEF abcdef}

Roman {\fnserif ABCDEF abcdef}

\end{document}

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.

uplatex_example

 

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.

 

ng1

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

ng2

ng3.jpg

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.

Various xelatex things

taxonomy

eng

 

russ

 

lith

 

opportunities

 

Tryout of taxonomy environment definition code from StackExchange, applied to various languages, using Wikipedia rubber tree classification as lipsum text:

\documentclass[12pt]{article}

\usepackage{fontspec}
\setmainfont[Scale=1.2]{Cambria}
\newfontface\fcjk[Scale=1.2]{Noto Serif CJK TC Medium}
\newfontface\fmal[Scale=1.2]{Noto Serif Malayalam}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentEnvironment{taxonomy}{O{1em}O{0pt}}
{
\begin{center}
\taxon_get_line:
}
{
\taxon_print:nn { #1 } { #2 }
\end{center}
}

\seq_new:N \l_taxon_item_seq
\seq_new:N \l_taxon_itemsA_seq
\seq_new:N \l_taxon_itemsB_seq
\dim_new:N \l_taxon_width_dim
\dim_new:N \l_taxon_indent_dim
\dim_new:N \l_taxon_default_indent_dim
\dim_new:N \l_taxon_corr_dim
\box_new:N \l_taxon_item_box

\cs_new_protected:Npn \taxon_get_line:
{
\peek_meaning_ignore_spaces:NF \end { \taxon_get_line:w }
}

\cs_new_protected:Npn \taxon_get_line:w #1 \\
{
\seq_set_split:Nnx \l_taxon_items_seq { ~ } { \tl_trim_spaces:n { #1 } }
\seq_pop_left:NN \l_taxon_items_seq \l_tmpa_tl
\seq_put_right:NV \l_taxon_itemsA_seq \l_tmpa_tl
\seq_put_right:Nx \l_taxon_itemsB_seq { \seq_use:Nn \l_taxon_items_seq { ~ } }
\taxon_get_line:
}

\cs_new_protected:Npn \taxon_print:nn #1 #2
{
\dim_zero:N \l_taxon_indent_dim
\dim_set:Nn \l_taxon_default_indent_dim { #1 }
\dim_set:Nn \l_taxon_corr_dim { #2 }
\seq_map_inline:Nn \l_taxon_itemsA_seq
{
\hbox_set:Nn \l_taxon_item_box { \hspace{ \l_taxon_indent_dim } ##1 }
\dim_compare:nT { \l_taxon_width_dim < \box_wd:N \l_taxon_item_box }
{
\dim_set:Nn \l_taxon_width_dim { \box_wd:N \l_taxon_item_box }
}
\dim_add:Nn \l_taxon_indent_dim { \l_taxon_default_indent_dim }
}
\dim_add:Nn \l_taxon_width_dim { \l_taxon_default_indent_dim }
\dim_zero:N \l_taxon_indent_dim
\leavevmode
\vbox:n
{
\seq_mapthread_function:NNN \l_taxon_itemsA_seq \l_taxon_itemsB_seq \taxon_print_line:nn
}
}
\cs_new_protected:Npn \taxon_print_line:nn #1 #2
{
\hbox:n
{
\hspace{ \l_taxon_indent_dim }
\makebox[\l_taxon_width_dim][l]{#1\dotfill\hspace{ -\l_taxon_corr_dim }}
\hspace{ \l_taxon_corr_dim }
#2
}
\dim_add:Nn \l_taxon_indent_dim { \l_taxon_default_indent_dim }
}

\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx }
\ExplSyntaxOff

\begin{document}

%\begin{taxonomy}
%Class Mammalia Linnaeus, 1758 \\
%Order Primates Linnaeus, 1758 \\
%Superfamily Hominoidea (Gray, 1825) \\
%Family Hominidae Gray, 1825 \\
%Genus Homo Linnaeus, 1758 \\
%Species Homo sapiens Linnaeus, 1758 \\
%\end{taxonomy}
%
%
%\begin{taxonomy}[2em][-6em]
%Class Mammalia Linnaeus, 1758 \\
%Order Primates Linnaeus, 1758 \\
%Superfamily Hominoidea (Gray, 1825) \\
%Family Hominidae Gray, 1825 \\
%Genus Homo Linnaeus, 1758 \\
%Species Homo sapiens Linnaeus, 1758 \\
%\end{taxonomy}


\section{English}
\begin{taxonomy}[1em][-5em]
Kingdom: Plantae \\
Clade: Angiosperms \\
Clade: Eudicots \\
Clade: Rosids \\
Order: Malpighiales \\
Family: Euphorbiaceae \\
Genus: Hevea \\
Species: \textit{Hevea brasiliensis} \\
\end{taxonomy}

\section{Russian}
\begin{taxonomy}[1em][-5em]
Домен: Эукариоты \\
Царство: Растения \\
Отдел: Цветковые \\
Класс: Двудольные \\
Порядок: Мальпигиецветные \\
Семейство: Молочайные \\
Род: Гевея \\
Вид: \textit{Гевея бразильская} \\
\end{taxonomy}

\section{Chinese}
\begin{taxonomy}[1em][-5em]
\fcjk{界}: \fcjk{植物界} Plantae \\
\fcjk{演化支}: \fcjk{被子植物} Angiosperms \\
\fcjk{演化支}: \fcjk{核心被子植物} Mesangiospermae \\
\fcjk{演化支}: \fcjk{真双子叶植物} Eudicots \\
\fcjk{演化支}: \fcjk{蔷薇类植物} Rosids \\
\fcjk{目}: \fcjk{金虎尾目} Malpighiales \\
\fcjk{科}: \fcjk{大戟科} Euphorbiaceae \\
\fcjk{属}: \fcjk{橡胶树属} Hevea \\
\fcjk{种}: \fcjk{橡膠樹} \textit{Hevea brasiliensis} \\
\end{taxonomy}

\section{Malayalam}
\begin{taxonomy}[1em][-5em]
\fmal{സാമ്രാജ്യം}: Plantae \\
\fmal{ഡിവിഷൻ}: Magnoliophyta \\
\fmal{ക്ലാസ്സ്‌}: Magnoliopsida \\
\fmal{നിര}: Malpighiales \\
\fmal{കുടുംബം}: Euphorbiaceae \\
\fmal{ഉപകുടുംബം}: Crotonoideae \\
Tribe: Micrandreae \\
Subtribe: Heveinae \\
\fmal{ജനുസ്സ്}: Hevea \\
\fmal{വർഗ്ഗം}: \textit{Hevea brasiliensis} \\
\end{taxonomy}

\section{French}
\begin{taxonomy}[1em][-5em]
Règne Plantae \\
Sous-règne Tracheobionta \\
Division Magnoliophyta \\
Classe Magnoliopsida \\
Sous-classe Rosidae \\
Ordre Euphorbiales \\
Famille Euphorbiaceae \\
Genre Hevea \\
{Nom binominal} 
\textit{Hevea brasiliensis} \\
\end{taxonomy}


%\section{Hebrew}
%\begin{taxonomy}[1em][-5em]
%ממלכה: צומח
%מערכה: בעלי פרחים
%מחלקה: דו-פסיגיים
%סדרה: מלפיגאים
%משפחה: חלבלוביים
%סוג: Hevea
%מין: הוואה ברזילאית
%\end{taxonomy}

\section{Gaelic}
\begin{taxonomy}[1em][-5em]
Ríocht: Plantae \\
Ord: Malpighiales \\
Fine: Euphorbiaceae \\
Fofhine: Crotonoideae \\
Géineas: Hevea \\
Speiceas: \textit{Hevea brasiliensis} \\
\end{taxonomy}

\section{Czech}
\begin{taxonomy}[1em][-5em]
Říše rostliny (Plantae) \\
Podříše cévnaté rostliny (Tracheobionta) \\
Oddělení krytosemenné (Magnoliophyta) \\
Třída vyšší dvouděložné (Rosopsida) \\
Řád malpígiotvaré (Malpighiales) \\
Čeleď pryšcovité (Euphorbiaceae) \\
Rod kaučukovník (Hevea) \\
{Binomické jméno}
\textit{Hevea brasiliensis} \\
\end{taxonomy}


\section{Lithuanian}
\begin{taxonomy}[1em][-5em]
Karalystė: Augalai \\
Skyrius: Magnolijūnai \\
Klasė: Magnolijainiai \\
Poklasis: Dilenijažiedžiai \\
Šeima: Karpažoliniai \\
Gentis: Kaučiukmedis \\
Rūšis: Brazilinis kaučiukmedis \\
\end{taxonomy}

\section{Hungarian}
\begin{taxonomy}[1em][-5em]
Ország: Növények (Plantae) \\
Törzs: Zárvatermők (Magnoliophyta) \\
Csoport: Valódi kétszikűek (eudicots) \\
Csoport: Rosidae \\
Csoport: Eurosids \\ 
Rend: Malpighiales \\
Család: Kutyatejfélék (Euphorbiaceae) \\
Alcsalád: Crotonoideae \\
Nemzetség-csoport: Micrandreae \\
Nemzetség: Hevea \\
Faj: \textit{Hevea brasiliensis} \\
\end{taxonomy}


\section{Paper}
\begin{taxonomy}[1em][-5em]
Newspaper: \textit{The Sydney Morning Herald} \\
Date: Saturday, 28 July 2018 \\
Liftout: Spectrum\\
Page: 15 \\
Section: The Planner \\ 
Column: Film \\
{Film name}: \textbf{The Equalizer 2} \\
Reviewer: Jake Wilson \\
\end{taxonomy}
\textsc{Quote}: ``as an actor he's a master of his domain'' \\
\textsc{Quote}: ``opportunities to watch the character think''

\end{document}

 

fontweights

Raleway: normal fonts, and small caps :

raleway

The core definition is:

\setmainfont{Raleway}[
Extension=.otf,
UprightFont=*-Regular,
ItalicFont=*-Regular-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-Bold-Italic,
FontFace={xl}{n}{*-ExtraLight},
FontFace={xl}{it}{*-ExtraLight-Italic},
FontFace={l}{n}{*-Light},
FontFace={l}{it}{*-Light-Italic},
FontFace={mb}{n}{*-Medium},
FontFace={mb}{it}{*-Medium-Italic},
FontFace={k}{n}{*-Black},
FontFace={k}{it}{*-Black-Italic},
]

Small caps are already defined in the font itself (for this font, anyway), since they are activated with only a \scshape.


Pinpoint specifications for the various weights allow, after removing the * basename, some variation:

dfferentweights

 

which in turn leads to (with the idea that people can be recognised by how they speak):

conversations

Good for doing the typeset version of the voices for Goldilocks and the Three Bears.

Some middle-sized narrative voice, hobbit-sized, is necessary, to provide the matrix against which the others are displayed.

 

The code:

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{xcolor}

\newfontface\verd[Scale=0.8]{Verdana}

\setromanfont{Georgia}[
FontFace={ul}{n}{Font=Lapidaria},
FontFace={el}{n}{Font=Leafy glade,Scale=1.5},
FontFace={l}{n}{Font=League Script Thin},
% FontFace={rr}{n}{Font=* Regular}, 
FontFace={med}{n}{Font=Linglese},
FontFace={sb}{n}{Font=Leipzig Fraktur ,Scale=1.5,Color=blue},
FontFace={b}{n}{Font=Libertinus Keyboard}, 
FontFace={eb}{n}{Font=LightUnciale},
FontFace={xb}{n}{Font=Line Dings (BRK)},
FontFace={lp}{n}{Font=Lydia Puente),Scale=2.5},
]

\DeclareRobustCommand{\ulseries}{\fontseries{ul}\selectfont}
\DeclareRobustCommand{\elseries}{\fontseries{el}\selectfont}
\DeclareRobustCommand{\lseries}{\fontseries{l}\selectfont}
%\DeclareRobustCommand{\rrseries}{\fontseries{rr}\selectfont}
\DeclareRobustCommand{\medseries}{\fontseries{med}\selectfont}
\DeclareRobustCommand{\sbseries}{\fontseries{sb}\selectfont}
\DeclareRobustCommand{\bseries}{\fontseries{b}\selectfont}
\DeclareRobustCommand{\ebseries}{\fontseries{eb}\selectfont}
\DeclareRobustCommand{\xbseries}{\fontseries{xb}\selectfont}
\DeclareRobustCommand{\lpseries}{\fontseries{lp}\selectfont}

\DeclareTextFontCommand{\textul}{\ulseries}
\DeclareTextFontCommand{\textel}{\elseries}
\DeclareTextFontCommand{\textl}{\lseries}
%\DeclareTextFontCommand{\textrr}{\rrseries}
\DeclareTextFontCommand{\textmed}{\medseries}
\DeclareTextFontCommand{\textsb}{\sbseries}
\DeclareTextFontCommand{\textb}{\bseries}
\DeclareTextFontCommand{\texteb}{\ebseries}
\DeclareTextFontCommand{\textxb}{\xbseries}
\DeclareTextFontCommand{\textlp}{\lpseries}


\newcommand\new[1]{\textul{#1}}
\newcommand\elf[1]{\textel{#1}}
\newcommand\nerd[1]{\textb{#1}}
\newcommand\elegant[1]{\textsb{#1}}
\newcommand\browncow[1]{\textlp{#1}}
\newcommand\lecturer[1]{\texteb{#1}}

\begin{document}

%\fontname\mseries
\section{Georgia and Co}

\ \par
\rmfamily
%\itshape
%\scshape
\indent{\verd Lapidaria:} \textul{Abc Thin} {\ulseries Thin}
%

{\verd Leafy Glade:} \textel{Abc ExtraLight} {\elseries ExtraLight}

{\verd Georgia:} Abc Regular

{\verd Linglese:} \textmed{Abc Medium} {\medseries Medium}

{\verd Leipzig Fraktur:} \textsb{Abc SemiBold} {\sbseries SemiBold}

{\verd Georgia bold:} \textbf{Abc Bold} {\bfseries Bold}

{\verd Libertinus Keyboard:} \textb{Abc Bold} {\bseries Bold}

{\verd LightUnciale:} \texteb{Abc ExtraBold} {\ebseries ExtraBold}

{\verd Line Dings (BRK):} \textxb{Abc Black} {\xbseries Black}

{\verd Lydia Puente:} \textlp{How now} {\lpseries Brown Cow}

\section{Introductions}
\ \par
`\new{Hi. I'm new here. My name's Milady,}' said Milady.

`\nerd{I am George},' said George. `\nerd{I like computers.}'

`\elf{Firiel. Nice to meet you},' said Firiel. `\elf{This is my first day in the city}.'

`\elegant{And my name is Veronica. I'm from the Moon,}' said Veronica.

`Here comes Professor Browncow,' said Jack.

\browncow{Good morning everyone Shall we go in now} said Professor Browncow, bringing out the keys.

\lecturer{Todays\ \ topic\ \ is\ \ all\ \ about\ \ Quantum\ \ Mechanics ...} the lecturer was saying as they moved to their seats. `\elegant{Great},' murmured Veronica.

\end{document}

 


Google’s Noto fonts collection is expanding: various weight of Noto Serifs are now there, e.g. (random letters):

 

notoweights

The code:

\documentclass[12pt]{article}
\usepackage{fontspec}

\newcommand\tfont{Noto Serif Sinhala}

\newfontface\verd[Scale=0.8]{Verdana}
\setmainfont[Scale=2]{\tfont}[
% Extension=.ttf,
UprightFont=*,
% ItalicFont=*-Regular-Italic,
BoldFont=*-Bold,
% BoldItalicFont=*-Bold-Italic,
%SmallCapsFont={[PlayfairDisplaySC-Regular.otf]},
%SmallCapsFeatures={Letters=SmallCaps},
FontFace={xl}{n}{*-ExtraLight},
% FontFace={xl}{it}{*-ExtraLight-Italic},
FontFace={l}{n}{*-Light},
% FontFace={l}{it}{*-Light-Italic},
FontFace={mb}{n}{*-Medium},
% FontFace={mb}{it}{*-Medium-Italic},
FontFace={k}{n}{*-Black},
% FontFace={k}{it}{*-Black-Italic},
]

\begin{document}

\newcommand{\test}[2]{%
{\verd{#1}:} {\fontseries{#2}\selectfont අඕ ඥිසෑ ශැචුඵ බභමඩ }\par
}

{\verd \tfont}

\test{ExtraLight}{xl}
\test{Light}{l}
\test{Regular}{m}
\test{Medium}{mb}
\test{Bold}{bx}
\test{Black}{k}


%\scshape
%\test{ExtraLight}{xl}
%\test{Light}{l}
%\test{Regular}{m}
%\test{Medium}{mb}
%\test{Bold}{bx}
%\test{Black}{k}

\end{document}

Digesting multi-stranded narratives

Two-layered referencing

Robert Graves, in his Greek Myths, used a citation style where each component of the myth was sourced to a list of relevant ancient authors and works. That technique will work for any narrative in general where there are multiple reporters, and will highlight the variations and commonalities of the different strands of traditions.

 

gamut

In Latex/Xelatex, this can be done by using the bibliography package biblatex with the option style=numeric-verb, which numbers the references, and in footnotes, if there are a series of cites, puts each of the items into their own set of square brackets.

To key them in any order but have them display in numerical order in the footnote, the biblatex option sortcites=true is used.

Rather than actual footnotes, putting all the notes at the end of the text is done by using the endnotes package, \usepackage{endnotes}, and setting the footnote to be an endnote with:

\let\footnote=\endnote

Next comes setting the endnotes to normal size

\renewcommand{\enotesize}{\normalsize}

and adjusting their margin

\makeatletter
\def\enoteformat{%
 \rightskip\z@ \leftskip\z@ %\parindent=1.8em
 \leavevmode{\setbox\z@=\lastbox}{\theenmark.\enskip}%
}
\makeatother

 

Now a shorthand command will come in handy to save typing in the full footnote and citation commands each time:

\newcommand\fnc[1]{\footnote{\cites{#1}}}

We type some text, with the references:

Item 1\fnc{a5,a3,a2}. Item 2\fnc{a1, a2}. Item 3\fnc{a5}. Item 4\fnc{a4}, Item 5\fnc{a4}, Item 6\fnc{a5,a4,a3,a2,a1}.

Print the endnotes with:

\theendnotes

And print the bibliography with:

\printbibliography

Job done.

Full code:

 

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{newsbase.bib}
%=====
% the test bibliography:
@article{a1,
author={An Author Name},
title={title 1},
titleaddon={[translation of title goes here]},
journaltitle={Example X},
date={2018-06-09}
}
@article{a2,
title={title 2},
journaltitle={Example Y},
}
@article{a3,
title={title 3},
journaltitle={Example Z},
}
@article{a4,
title={title 4},
journaltitle={Example cat},
}
@article{a5,
title={title 5},
journaltitle={Example fog},
}
\end{filecontents*}

%=====
% biblatex for the bibliography
\usepackage[british]{datetime2} % for date formatting of \today
\usepackage[style=british]{csquotes}
\usepackage[style=numeric-verb, sortcites=true, citereset=section, ibidtracker=true, indexing=cite, backend=biber, isbn=true, 
language=australian, 
%babel=hyphen
%autolang=true
]{biblatex}
\addbibresource{newsbase.bib}

%=====
% use endnotes instead of footnotes
\usepackage{endnotes}
\let\footnote=\endnote

%=====
%reset footnote marker size: not needed now, because endnotes are being used instead
\makeatletter
\def\@makefnmark{\hbox{[\normalfont\@thefnmark]}}
\makeatother

%=====
%set the endnotes to normal size, not footnote size:
\renewcommand{\enotesize}{\normalsize}

%=====
%original command to position the endnotes with respect to the margin:
%\makeatletter
%\def\enoteformat{%
% \rightskip\z@ \leftskip\z@ \parindent=1.8em
% \leavevmode{\setbox\z@=\lastbox}\llap{\theenmark.\enskip}%
%}
%\makeatother




%=====
%don't need paragraph indent when setting the format for the endnotes, but the rest of the command shifts everything to the right by a bit, so that it lines up.
\makeatletter
\def\enoteformat{%
 \rightskip\z@ \leftskip\z@ %\parindent=1.8em
 \leavevmode{\setbox\z@=\lastbox}{\theenmark.\enskip}%
}
\makeatother

%=====
%footnotes are not being used, so setting footnotes to normal size font won't do anything:
%\let\Huge\normalsize
%\let\huge\normalsize
%\let\LARGE\normalsize
%\let\Large\normalsize
%\let\large\normalsize
%\let\small\normalsize
\let\footnotesize\normalsize %footnote text
%\let\scriptsize\normalsize
%\let\tiny\normalsize

%=====
%short-version of the to-be-used-quite-often footnote~cite command pair; the cites command, because there could be multiple sources, and it handles one or more (comma separated):
\newcommand\fnc[1]{\footnote{\cites{#1}}}

%=====
%the data, meaning the text:
\begin{document}
Item 1\fnc{a5,a3,a2}. Item 2\fnc{a1, a2}. Item 3\fnc{a5}. Item 4\fnc{a4}, Item 5\fnc{a4}, Item 6\fnc{a5,a4,a3,a2,a1}.

%=====
%print the endnotes:
\theendnotes

%=====
%print the bibliography:
\printbibliography

%=====
%typesetting run is: xelatex, biber, xelatex, xelatex.
%
\end{document}