As is known, in the Turkish language the i
exists as distinct letters in two versions, with and without a dot (with very different pronunciations): the dotted couple i / İ
and the dotless couple ı / I
.
Plz, consider this code:
\documentclass[a4paper,12pt]{article}
\usepackage{ifxetex,ifluatex}
\usepackage{fontspec}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifluatex
\usepackage[turkish,italian]{babel}
\babelfont[italian]{rm}[Ligatures=TeX]{Garamond Premier Pro}
\babelfont[turkish]{rm}[Ligatures=TeX]{Garamond Premier Pro}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifxetex
\setmainfont[Ligatures=TeX]{Garamond Premier Pro}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{italian}
\setotherlanguage{turkish}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\textbf{Italian}
\verb!\MakeUppercase{aabbccddiixx}! \MakeUppercase{aabbccddiixx}
\verb!\MakeUppercase{aabbccddııxx}! \MakeUppercase{aabbccddııxx}
\verb!\MakeLowercase{AABBCCDDİİ}! \MakeLowercase{AABBCCDDİİ}
\verb!\MakeLowercase{AABBCCDDII}! \MakeLowercase{AABBCCDDII}
fi ffi
\textbf{Turkish}
\selectlanguage{turkish}
\verb!\MakeUppercase{aabbccddiixx}! \MakeUppercase{aabbccddiixx}
\verb!\MakeUppercase{aabbccddııxx}! \MakeUppercase{aabbccddııxx}
\verb!\MakeLowercase{AABBCCDDİİ}! \MakeLowercase{AABBCCDDİİ}
\verb!\MakeLowercase{AABBCCDDII}! \MakeLowercase{AABBCCDDII}
fi ffi
\end{document}
If you compile with Xelatex all substitution work fine.
But if you compile with Lualatex, two i
disappear:
What does this different behavior depend on? Is there a solution with Lualatex? I can also modify some lookups of the font, but I must first understand the reasons for what happens.
Thank you
Postscriptum 1st August
I realize that there is a new version of turkish.ldf (2019/07/05 v1.4), but compiling the same file I receive:
(/usr/local/texlive/2019/texmf-dist/tex/generic/babel/locale/tr/babel-turkish.t
ex
! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.13 \StartBabelCommands
*{turkish}{}
?
! Undefined control sequence.
l.14 \SetCase
?
! Missing number, treated as zero.
<to be read again>
\relax
l.15 {\uccode`i=
`İ\relax
?
! Missing number, treated as zero.
<to be read again>
\relax
l.16 \uccode`ı=
`I\relax}
?
! Missing number, treated as zero.
<to be read again>
\relax
l.17 {\lccode`İ=
`i\relax
?
! Missing number, treated as zero.
<to be read again>
\relax
l.18 \lccode`I=
`ı\relax}
?
! Undefined control sequence.
l.19 \SetHyphenMap
{%
?
! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.22 \EndBabelCommands
Giving ENTER every time, finally it compiles... Am I doing something wrong?