TransWikia.com

How to write Bengali in LaTeX?

TeX - LaTeX Asked by Md Kutubuddin Sardar on January 14, 2021

documentclass{barticle}
title{EkiT pRbn/dh} author{Ajana elkhk} date{pNNicesh {oi}bshakh, 1413}
begin{document}
bng
maketitle
section{pRthm pirec/chd}
rbiin/dRnaethr EkiT kibtar shuru inec ed{O}ya Hl.
begin{verse}
kt Ajanaer jana{I}el tuim \ kt gher idel ThNNa{I}. \
duurek kirel inkT bn/dhu,\ prek kirel bha{I}....

end{verse}
end{document}

7 Answers

Download any Bengali Unicode font from here and add it to the directory where your .tex file resides.

I downloaded the Kalpurush font.

Then add two commands like this before the begin{document} command.

usepackage{fontspec}    
newfontfamilyben{kalpurush.ttf}

(Use the name of the ttf file you downloaded)

Now you can write Bengali text anywhere like this:

{ben কম্পিউটার বিজ্ঞান} 

Don't forget to put everything inside curly braces like I did above. Compile using XeLaTeX.

I have done this in Overleaf and it is working perfectly.

Answered by Preetom Saha Arko on January 14, 2021

As of 2020, LuaLaTeX (with the HarfBuzz renderer) is able to display Bengali. The babel package also supports it. The following template (based on the accepted answer) runs on LuaLaTeX in TeX Live 2020.

documentclass{article}
tracinglostchars=2
usepackage[bidi=basic,layout=sectioning]{babel}
usepackage{fontspec}

babelprovide[import,main]{bengali}
babelprovide[onchar=fonts ids]{english}
defaultfontfeatures{Scale=MatchLowercase, Ligatures=TeX, Renderer=HarfBuzz}

%% These fonts are abailable at: https://www.google.com/get/noto/
babelfont{rm}
          [Ligatures=Common,Scale=1.0,Language=Default]{Noto Serif}
babelfont{sf}
          [Language=Default]{Noto Sans}
babelfont{tt}
          [Language=Default]{Noto Sans Mono}
babelfont[bengali]{rm}
          [Language=Default]{Noto Serif Bengali}
babelfont[bengali]{sf}
          [Language=Default]{Noto Sans Bengali}
babelfont[bengali]{tt}
          [Language=Default]{Noto Sans Bengali UI}

babeltags{english=english}
babeltags{bengali=bengali}

begin{document}
section{ভূমিকা}
এটি একটি ইংরেজি লেখা ছোট অধ্যায় যে বাঙ্গালী এ Google Translate দ্বারা অনুবাদ করা হয়েছে. এটা খুব স্পষ্ট নয় যদি সঠিক অনুবাদ বা না কিন্তু ক্রিয়াটি ফন্ট দেখাতে যথেষ্ট হওয়া উচিত.
end{document}

Noto Fonts sample

This sample automatically switches from the Bengali font to the English font whenever you switch to the Latin script, so “Google Translate” appears in Noto Serif, rather than Noto Serif Bengali. If you remove the onchar=fonts ids option, you can still switch between them with textenglish, begin{english}, etc.

You can change the numbering of pages, chapters, equations and so on to Bengali by adding the maparabic option to babelprovide, and can also redefine other counters such as alph and Alph.

You can also use your fonts of choice. The Language=Default font features are not strictly necessary. I included them to suppress some harmless warning messages.

Answered by Davislor on January 14, 2021

enter image description here

documentclass[12pt]{article}
usepackage{fontspec}
%setmainfont[]{kalpurush.ttf} % u can use only one font 
setmainfont[
BoldFont=kalpurush.ttf,
ItalicFont=kalpurush.ttf,
BoldItalicFont=kalpurush.ttf
]{kalpurush.ttf}

title{বাংলা আমার মায়ের ভাষা}
author{বিপুল }
date{শনিবার ২১শে ভাদ্র ১৪২৭ বঙ্গাব্দ}

begin{document}
maketitle
কিভাবে সহজে ঝামেলামুক্তভাবে বাংলা লিখবেন? 
begin{enumerate}
item প্রথমে https://www.overleaf.com  তে যান, একাউন্ট খুলুন, এবং প্রজেক্ট তৈরি করুন। 
item আপনার  পছন্দের বাংলা ফন্ট ডাউনলোড করুন, আমি কালপুরুষ ব্যবহার করেছি। 
item ফন্টটি ওভারলিফে আপলোড করুন 
item usepackage{fontpec} এবং setmainfront(kalpurush.ttf) সেট করা হয়েছে। 
item এখন পছন্দ মতো বাংলা লিখুন।
item আপনি  চাইলে বোল্ড, ইটালিক বা অন্য স্টাইলের জন্য ভিন্ন ভিন্ন ফন্ট ব্যবহার করতে পারেন। 
item শুভকামনা রইলো। 
end{enumerate}

Answered by Bipul Mohanto on January 14, 2021

I'm using overleaf for Bangla writing. There is no installation and it's easy. Follow my instruction.

Answered by Rajan saha Raju on January 14, 2021

Nothing is impossible

documentclass{report}
usepackage{fontspec}
setmainfont{[Kalpurush.ttf]}
newfontface{en}{[Chapaza Italic.ttf]} %%this is optional, if you want to use a secondary font. Any english font is supported

begin{document} 
chapter{আমি বাংলায় গান গাই। }
এখন খুব সহজে বাংলা ফন্ট ব্যবহার করুন\ 
{en fontspec} প্যাকেজ এবং {en XeLatex} ইঞ্জিন এর সাহায্যে।\

{Large বড়ো অক্ষর}\
rule{6cm}{1pt}\
{en Hope this will help you a lot}
end{document}

working very well, just download Kalpurush.ttf font and past it into the project folder. remember that the font name need to be accurate. Now change your latex compile engine to XeLatex instead of PdfLatex. Kalpurus.ttf download link: Click

Answered by Ravi on January 14, 2021

The problem with polyglossa is that its support for Bangla (or Bengali) is quite limited. This prompted me to write a new package latexbangla, which extends the former's functionalities and addresses most of the Bangla related typesetting issues. It also provides full support for common commands and environments, automatic transition from Bangla to English (and vice versa), and a patch to fix unproportionate whitespace error in popular Bangla fonts. With latexbangla, you can simply type usual LaTeX syntax and expect everything to behave as it should.

Sample code: (from package documentation)

documentclass{article}
usepackage[banglamainfont=Kalpurush, 
            banglattfont=Siyam Rupali
           ]{latexbangla}
begin{document}
পিথাগোরাস(Pythagoras)-এর উপপাদ্যটি হল, textit{সমকোণী ত্রিভুজের অতিভুজের উপর অঙ্কিত  
বর্গক্ষেত্রের ক্ষেত্রফল অপর দুই বাহুর উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফলের সমষ্টির সমান।}
অর্থাৎ কোন সমকোণী ত্রিভুজের অতিভুজ $c$ এবং অপর দুই বাহু $a$ এবং $b$ হলে,
[c^2=a^2+b^2]
লক্ষ্য করুন, এখন পর্যন্ত টেক্সট প্রদর্শনের জন্য textbf{কালপুরুষ} ফন্ট ব্যবহৃত হয়েছে।\
texttt{এবার, টেলিটাইপ(Teletype) টেক্সট প্রদর্শনের জন্য textbf{সিয়াম রূপালী} 
ফন্ট ব্যবহৃত হল।}\
পুনরায় টেক্সট প্রদর্শনের জন্য textbf{কালপুরুষ} ফন্ট ব্যবহৃত হচ্ছে।
end{document}

enter image description here

UPD: There is number breaking problem with new polyglossia and LaTeXbangla.

Way to fix that pointed here. This problem is mainly because of polyglossia bug. Which was fixed later on. But LaTeXbangla wasn't updated.

Answered by Adib Hasan on January 14, 2021

Although it's not completely clear what your question is asking, I would recommend using XeLaTeX and the polyglossia package for Bengali. This way you just enter your Bengali text in regular form.

I used the Akaash font from here: Free Bangla Fonts. Since I don't speak Bengali, I translated a short text from English using Google Translate. My apologies if it did an awful translation.

% !TEX TS-program = XeLaTeX

documentclass[10pt]{article}
usepackage{polyglossia}
setmainlanguage[numerals=Devanagari]{bengali}
setotherlanguage{english}
newfontfamilyenglishfont[Scale=MatchLowercase]{Linux Biolinum O}
newfontfamilybengalifont[Script=Bengali]{Akaash}
begin{document}
tableofcontents

section{ভূমিকা}
এটি একটি ইংরেজি লেখা ছোট অধ্যায় যে বাঙ্গালী এ textenglish{Google Translate} দ্বারা অনুবাদ করা হয়েছে. এটা খুব স্পষ্ট নয় যদি সঠিক অনুবাদ বা না কিন্তু ক্রিয়াটি ফন্ট দেখাতে যথেষ্ট হওয়া উচিত.
end{document}

output of code

As the example shows, and as mentioned in the comments, this does not make all numerals Bengali. For a solution to this problem, see:

Answered by Alan Munn on January 14, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP