J...S
During this year's TUG meeting, there was a talk about the Tulu-Tigalari script.
https://tug.org/tug2025/abstracts/murthy-tulu-tigalari.txt
Tulu-Tigalari is a script used to write a few Indian
languages. Unicode 16 supports this script.
https://en.wikipedia.org/wiki/Tulu-Tigalari_(Unicode_block)
Is there a way to write in LaTeX using the Tulu-Tigalari script yet?
I suppose that we need a font for the script first.
I found the following places from web sarches which could be suitable fonts.
- TULUSRI.ttf: https://www.thetulufont.in/
- baravu.otf: https://github.com/OpenTuluFont/baravu
- PalamTulu: https://tulupedia.com/home/library-and-gallery/tulu-fonts/palamtulu-font
- Darage: https://tulupedia.com/home/library-and-gallery/tulu-fonts/darage/
But couldn't make any of them work. Not sure if I'm doing anything wrong though.
For example, I tried the following with TULUSRI.ttf font.
Tried this with babel:
```
\documentclass{article}
\usepackage[english]{babel}
%\usepackage{fontspec}
\babelprovide{tulu}
%\babelfont[tulu]{rm}{TULUSRI.ttf}
\babelfont{tulu}[
Extension = .ttf,
Path = ./
%UprightFont=*-Regular,
%BoldFont = *-Bold,
%ItalicFont = *-Regular,
%ItalicFeatures = {FakeSlant=0.3}
]{TuluSri}
\begin{document}
hi
h
a
\end{document}
```
The PDF output here simply ignores the Tulu-Tigalari characters.
This was my first time using babel, so I am not sure if I used it correctly.
```
$ xelatex babel-eg.tex
This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2024) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./babel-eg.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>
(/media//0ea3c6b0-352e-41d5-a54e-02de583c7e2e/data/texlive/texmf-dist/tex
/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/data/texlive/texmf-dist/tex/latex/base/size10.clo))
(/data/texlive/texmf-dist/tex/generic/babel/babel.sty
(/data/texlive/texmf-dist/tex/generic/babel/xebabel.def)
(/data/texlive/texmf-dist/tex/generic/babel-english/english.ldf))
(/data/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex)
(/data/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty
(/data/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(/data/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
(/data/texlive/texmf-dist/tex/latex/l3backend/l3backend-xetex.def)))
(/data/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
(/data/texlive/texmf-dist/tex/latex/base/fontenc.sty)
(/data/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg))) (./babel-eg.aux
Package babel Info: The following font families will use the default
(babel) settings for all or some languages:
(babel) * \rmfamily = lmr
(babel) "[lmroman10-regular]:mapping=tex-text;" at 10.0pt
(babel) * \sffamily = lmss
(babel) "[lmsans10-regular]:mapping=tex-text;" at 10.0pt
(babel) * \ttfamily = lmtt
(babel) "[lmmono10-regular]:" at 10.0pt
(babel) There is nothing intrinsically wrong with it, but
(babel) 'babel' will no set Script and Language, which could
(babel) be relevant in some languages. If your document uses
(babel) these families, consider redefining them with \babelfont.
(babel) Reported on input line 3.
)
(/data/texlive/texmf-dist/tex /latex/base/ts1cmr.fd)
Missing character: There is no (U+11388) in font [lmroman10-regular]:mapping=
tex-text;!
Missing character: There is no (U+113A1) in font [lmroman10-regular]:mapping=
tex-text;!
Missing character: There is no (U+113BB) in font [lmroman10-regular]:mapping=
tex-text;!
[1] (./babel-eg.aux) )
Output written on babel-eg.pdf (1 page).
Transcript written on babel-eg.log.
```
This was the PDF output rendered:

Also tried the same with polyglossia:
```
\documentclass{article}
\usepackage{polyglossia}
\setotherlanguage{tulu}
\newfontfamily\tulufont[Path=./]{TULUSRI.ttf}
%\newfontfamily\tulufont[Path=./]{LastResortHE-Regular.ttf}
\begin{document}
hi
\texttulu{}
h
\texttulu{}
a
\end{document}
```
This gave some default character each time a Tulu-Tigalari character is used. Same dummy character regardless of the actual character to be rendered.
I do get a warning saying that `gloss-tulu.ldf` doesn't exist.
```
$ xelatex poly.tex
This is XeTeX, Version 3.141592653-2.6-0.999996 (TeX Live 2024) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./poly.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>
(/data/texlive/texmf-dist/tex
/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/data/texlive/texmf-dist/tex/latex/base/size10.clo))
(/data/texlive/texmf-dist/tex/latex/polyglossia/polyglossia.sty
(/data/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/data/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/data/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/data/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/data/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex))))
(/data/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty
(/data/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(/data/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
(/data/texlive/texmf-dist/tex/latex/l3backend/l3backend-xetex.def)))
(/data/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
(/data/texlive/texmf-dist/tex/latex/base/fontenc.sty)
(/data/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg)))
(/data/texlive/texmf-dist/tex/generic/iftex/iftex.sty)
(/data/texlive/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf))
Package polyglossia Warning: File gloss-tulu.ldf do not exists!
(polyglossia) I will nevertheless try to use hyphenation pattern
s for tulu. on input line 4.
Package polyglossia Warning: No hyphenation patterns were loaded for `tulu'
(polyglossia) I will use \language=\l@nohyphenation instead on i
nput line 4.
(./poly.aux)
(/data/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) [1] (./poly.aux) )
Output written on poly.pdf (1 page).
Transcript written on poly.log.
```
This was the rendered PDF output:

I guess this could mean that the glyph is missing from the font?
I tried the following commands:
```
$ fc-query --format='%{charset}\n' TULUSRI.ttf
20-7e 950 964-965 d01-d03 d05-d0c d0e-d10 d12-d28 d2a-d39 d3d-d44
d46-d48 d4a-d4e d54-d55 d57-d5a d5d d60 d62 d66-d70 d7a-d7f 1cd6 1cdc
200b-200d 2013-2014 2018-201f 20a4 20a8 20ac 20b9 25cc
$ fc-query TULUSRI.ttf
Pattern has 25 elts (size 32)
family: "TULUSRI"(s)
familylang: "en"(s)
style: "Regular"(s)
stylelang: "en"(s)
fullname: "TULUSRI"(s)
fullnamelang: "en"(s)
slant: 0(i)(s)
weight: 80(f)(s)
width: 100(f)(s)
size: [0 3276.75](s)
foundry: "TULU"(s)
file: "TULUSRI.ttf"(s)
index: 0(i)(s)
outline: True(s)
scalable: True(s)
charset:
0000: 00000000 ffffffff ffffffff 7fffffff 00000000 00000000 00000000 00000000
0009: 00000000 00000000 00010000 00000030 00000000 00000000 00000000 00000000
000d: fffddfee e3fffdff 27b07ddf fc01ffc5 00000000 00000000 00000000 00000000
001c: 00000000 00000000 00000000 00000000 00000000 00000000 10400000 00000000
0020: ff183800 00000000 00000000 00000000 00000000 02001110 00000000 00000000
0025: 00000000 00000000 00000000 00000000 00000000 00000000 00001000 00000000
(s)
lang: fj|ho|ia|ie|io|nr|om|so|ss|st|sw|ts|uz|xh|zu|kj|kwm|ms|ng|rn|rw|sn|za(s)
fontversion: 655360(i)(s)
capability: "otlayout:mlym"(s)
fontformat: "TrueType"(s)
decorative: False(s)
postscriptname: "TULUSRI"(s)
color: False(s)
symbol: False(s)
variable: False(s)
```
I found the following script online to list the characters in a given font file
(can't find the source link of it now, please tell me if anyone knows where
it is from and I'll add the link here).
```
#!/bin/bash -
Usage() { echo "$0 FontFile"; exit 1; }
SayError() { local error=$1; shift; echo "$0: $@"; exit "$error"; }
[ "$#" -ne 1 ] && Usage
width=70
fontfile="$1"
[ -f "$fontfile" ] || SayError 4 'File not found'
list=$(fc-query --format='%{charset}\n' "$fontfile")
for range in $list
do IFS=- read start end <<<"$range"
if [ "$end" ]
then
start=$((16#$start))
end=$((16#$end))
for((i=start;i<=end;i++)); do
printf -v char '\\U%x' "$i"
printf '%b' "$char"
done
else
printf '%b' "\\U$start"
fi
done | grep -oP '.{'"$width"'}'
```
The output of this But this script does seems to suggest that Tulu-Tigalari characters are not available in it.
```
$ bash fclist.sh TULUSRI.ttf
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde
fghijklmnopqrstuvwxyz{|}~ॐ।॥ഁംഃഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമ
യരറലളഴവശഷസഹഽാിീുൂൃൄെേൈൊോൌ്ൎൔൕൗ൘൙൚൝ൠൢ൦൧൨൩൪൫൬൭൮൯൰ൺൻർൽൾൿ᳖᳜–—‘’‚‛“”„‟₤₨
```
The letters are mostly Latin and Malayalam, not Tulu-Tigalari as far as I can tell.
Though there seems to be a handful of Tulu letters too but only very few of them.
-----
Also, this github issue says fonts for some Unicode 16 scripts including
Tulu-Tigalari does not yet exist.
https://github.com/google/fonts/issues/9500
The comment on that issue is from June 2025. Could it be that an open
source font for Tulu-Tigalari does not yet exist?