[NTG-context] Transliteration

Ivan Pešić ivan.pesic at gmail.com
Thu Feb 3 20:15:28 CET 2022


Hello!
I've been working on a Serbian book and I had to transliterate it from 
cyrillic to latin.
There's been some nice improvement in transliteration, and I would like 
to propose a small change.
One of the peculiarities that current transliteration mechanisms (both 
internal one and the 3rd party module from Philipp Gesang)
don't process is that Љ, Њ and Џ are transliterated to Lj, Nj and Dž in 
normal words that start the sentence, or in names that normally start 
with a capital letter,
but in titles written in all capitals they should be transliterated to 
LJ, NJ and DŽ.
So, the quick solution was to update the current mapping vector and add 
another one (that is attached) that maps cyrillic capitals to LJ, NJ and DŽ
and set the correct 30 letters used in Serbian language.
It requires a bit more manual work to set the correct mapping for all 
capitals text, but it works.
I have also merged the Serbian hyphenation patterns, so there is no need 
to switch the language in order to have hyphenation in transliterated text.
That was possible because cyrillic and latin scripts use different code 
points, and there are no conflicts in patterns.
So I suggest merging the patterns for Serbian cyrillic and latin.

There is another issue if one wants to use a dropcap and the rest of 
that first word, and several following words are to be typeset in small 
caps.
If that first letter is Љ (or other two letters that transliterate as 
digraphs), then the second letter of the digraph is not typeset in small 
caps because
it gets injected before the group that turns on small caps.
For example:

    \placeinitial
    Љ{\sc уди нису знали}

but this is quite a special case...

Regards,
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20220203/ff61002a/attachment.htm>
-------------- next part --------------
return {
  transliterations = {
    ["c2l"] = {
        mapping = {
        ["А"] = "A",  ["а"] = "a",
        ["Б"] = "B",  ["б"] = "b",
        ["В"] = "V",  ["в"] = "v",
        ["Г"] = "G",  ["г"] = "g",
        ["Д"] = "D",  ["д"] = "d",
        ["Ђ"] = "Đ",  ["ђ"] = "đ",
        ["Е"] = "E",  ["е"] = "e",
        ["Ж"] = "Ž",  ["ж"] = "ž",
        ["З"] = "Z",  ["з"] = "z",
        ["И"] = "I",  ["и"] = "i",
        ["Ј"] = "J",  ["ј"] = "j",
        ["К"] = "K",  ["к"] = "k",
        ["Л"] = "L",  ["л"] = "l",
        ["Љ"] = "Lj",  ["љ"] = "lj",
        ["М"] = "M",  ["м"] = "m",
        ["Н"] = "N",  ["н"] = "n",
        ["Њ"] = "Nj",  ["њ"] = "nj",
        ["О"] = "O",  ["о"] = "o",
        ["П"] = "P",  ["п"] = "p",
        ["Р"] = "R",  ["р"] = "r",
        ["С"] = "S",  ["с"] = "s",
        ["Т"] = "T", ["т"] = "t",
        ["Ћ"] = "Ć",  ["ћ"] = "ć",
        ["У"] = "U",  ["у"] = "u",
        ["Ф"] = "F",  ["ф"] = "f",
        ["Х"] = "H", ["х"] = "h",
        ["Ц"] = "C",  ["ц"] = "c",
        ["Ч"] = "Č",  ["ч"] = "č",
        ["Џ"] = "Dž", ["џ"] = "dž",
        ["Ш"] = "Š", ["ш"] = "š",
        }
    },
    ["C2L"] = {
        mapping = {
        ["А"] = "A",  ["а"] = "a",
        ["Б"] = "B",  ["б"] = "b",
        ["В"] = "V",  ["в"] = "v",
        ["Г"] = "G",  ["г"] = "g",
        ["Д"] = "D",  ["д"] = "d",
        ["Ђ"] = "Đ",  ["ђ"] = "đ",
        ["Е"] = "E",  ["е"] = "e",
        ["Ж"] = "Ž",  ["ж"] = "ž",
        ["З"] = "Z",  ["з"] = "z",
        ["И"] = "I",  ["и"] = "i",
        ["Ј"] = "J",  ["ј"] = "j",
        ["К"] = "K",  ["к"] = "k",
        ["Л"] = "L",  ["л"] = "l",
        ["Љ"] = "LJ",  ["љ"] = "lj",
        ["М"] = "M",  ["м"] = "m",
        ["Н"] = "N",  ["н"] = "n",
        ["Њ"] = "NJ",  ["њ"] = "nj",
        ["О"] = "O",  ["о"] = "o",
        ["П"] = "P",  ["п"] = "p",
        ["Р"] = "R",  ["р"] = "r",
        ["С"] = "S",  ["с"] = "s",
        ["Т"] = "T", ["т"] = "t",
        ["Ћ"] = "Ć",  ["ћ"] = "ć",
        ["У"] = "U",  ["у"] = "u",
        ["Ф"] = "F",  ["ф"] = "f",
        ["Х"] = "H", ["х"] = "h",
        ["Ц"] = "C",  ["ц"] = "c",
        ["Ч"] = "Č",  ["ч"] = "č",
        ["Џ"] = "DŽ", ["џ"] = "dž",
        ["Ш"] = "Š", ["ш"] = "š",
        }
     }
  }
}


More information about the ntg-context mailing list