[Tex/LaTex] Missing bold and italic font in XeLaTeX

fontspecxetex

Please see this MWE given below which tries to produce normal, bold and italic text in Bengali.

\documentclass{article}

% For a bilingual document
\RequirePackage{fontspec}
\RequirePackage{polyglossia}
\setmainlanguage{english}
\defaultfontfeatures{Ligatures=TeX}

% Times New Roman used for English
\setmainfont[Mapping=tex-text, Ligatures=TeX]{Times New Roman}

% Bengali
\setotherlanguage[numerals=Devanagari]{bengali}
\newfontfamily\bengalifont[Script=Bengali]{SolaimanLipi}
\newfontfamily\bengalifontbf[Script=Bengali]{SolaimanLipi}
\newfontfamily\bengalifonttt[Script=Bengali]{SolaimanLipi}
\newfontfamily\bengalifontsf[Script=Bengali]{SolaimanLipi}

\begin{document}

\begin{bengali}
  বাংলা ভাষা

  \textbf{বাংলা ভাষা}

  \textit{বাংলা ভাষা}

\end{bengali}

\end{document}

When compiled, the second and third text appear in normal font, with the following log message:

LaTeX Font Warning: Font shape `EU1/SolaimanLipi(0)/bx/n' undefined
(Font)              using `EU1/SolaimanLipi(0)/m/n' instead on input line 24.


LaTeX Font Warning: Font shape `EU1/SolaimanLipi(0)/m/it' undefined
(Font)              using `EU1/SolaimanLipi(0)/m/n' instead on input line 26.

However, the same font (SolaimanLipi) can be used in other applications, e.g. LibreOffice to get the same effect.

enter image description here

What is it I could be doing wrong?

EDIT

LibreOffice is using the same font

enter image description here

There is no other SolaimanLipi font in my machine

Command

sudo find / -name SolaimanLipi* -print

gives,

/home/masroor/.local/share/fonts/SolaimanLipi_20-04-07.ttf

Best Answer

You could work with the faking of bold fonts as many WYSIWYG editors are using this too.

In the following code I've added the AutoFakeBold=4.0 font option. Just adjust the number to adjust the weight (the higher the bolder).

Edit: If you also want to fake italics/slanted font try using AutoFakeSlant=0.4 where the number also indicates the strength of the slant.

bengali faked bold and slanted

\documentclass{article}

% For a bilingual document
\RequirePackage{fontspec}
\RequirePackage{polyglossia}
\setmainlanguage{english}
\defaultfontfeatures{Ligatures=TeX}

% Times New Roman used for English
\setmainfont[Mapping=tex-text, Ligatures=TeX]{Times New Roman}

% Bengali
\setotherlanguage[numerals=Devanagari]{bengali}
\newfontfamily\bengalifont[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi.ttf}
\newfontfamily\bengalifontbf[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi.ttf}
\newfontfamily\bengalifonttt[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi.ttf}
\newfontfamily\bengalifontsf[Script=Bengali,AutoFakeBold=4.0,AutoFakeSlant=0.4]{SolaimanLipi.ttf}

\begin{document}

\begin{bengali}
  বাংলা ভাষা

  \textbf{বাংলা ভাষা}

  \textit{বাংলা ভাষা}

\end{bengali}

\end{document}