从英语生成语音孟加拉语问题

从英语生成语音孟加拉语问题

从这个答案问题,我已编辑代码以最小化如下内容:

\documentclass{article}
\usepackage{xparse}
\usepackage{fontspec}
\newfontface\translitfont{Kalpurush.ttf}
\newfontface\bengalifont{Kalpurush.ttf}[Script=Bengali,Renderer=HarfBuzz]

\ExplSyntaxOn
\tl_new:N \l_mytrans_tl
% transliteration: Latin-to-Bangla
\NewDocumentCommand{\bn}{ m }
{
\tl_set:Nn \l_mytrans_tl { #1 }
\dobntrans
    { \tl_use:N \l_mytrans_tl }
    { \bengalifont \tl_use:N \l_mytrans_tl }
}
\newcommand\dobntrans{
\tl_replace_all:Nnn \l_mytrans_tl { ng } { ং } 
\tl_replace_all:Nnn \l_mytrans_tl { jh } { ঝ } 
\tl_replace_all:Nnn \l_mytrans_tl { NG } { ঞ } 
\tl_replace_all:Nnn \l_mytrans_tl { Th } { ঠ } 
\tl_replace_all:Nnn \l_mytrans_tl { Dh } { ঢ } 
\tl_replace_all:Nnn \l_mytrans_tl { th } { থ } 
\tl_replace_all:Nnn \l_mytrans_tl { dh } { ধ } 
\tl_replace_all:Nnn \l_mytrans_tl { ph } { ফ } 
\tl_replace_all:Nnn \l_mytrans_tl { bh } { ভ } 
\tl_replace_all:Nnn \l_mytrans_tl { sh } { শ } 
\tl_replace_all:Nnn \l_mytrans_tl { Sh } { ষ } 
\tl_replace_all:Nnn \l_mytrans_tl { Rh } { ঢ় } 
\tl_replace_all:Nnn \l_mytrans_tl { kh } { খ } 
\tl_replace_all:Nnn \l_mytrans_tl { gh } { ঘ } 
\tl_replace_all:Nnn \l_mytrans_tl { Ng } { ঙ } 
\tl_replace_all:Nnn \l_mytrans_tl { ch } { ছ } 

\tl_replace_all:Nnn \l_mytrans_tl { o= } { অ } 
\tl_replace_all:Nnn \l_mytrans_tl { a= } { আ } 
\tl_replace_all:Nnn \l_mytrans_tl { i= } { ই } 
\tl_replace_all:Nnn \l_mytrans_tl { ii= } { ঈ } 
\tl_replace_all:Nnn \l_mytrans_tl { u= } { উ } 
\tl_replace_all:Nnn \l_mytrans_tl { uu= } { ঊ } 
\tl_replace_all:Nnn \l_mytrans_tl { r= } { ঋ } 
\tl_replace_all:Nnn \l_mytrans_tl { e= } { এ } 
\tl_replace_all:Nnn \l_mytrans_tl { ai= } { ঐ } 
\tl_replace_all:Nnn \l_mytrans_tl { oo= } { ও } 
\tl_replace_all:Nnn \l_mytrans_tl { au= } { ঔ } 

\tl_replace_all:Nnn \l_mytrans_tl { a } { া } 
\tl_replace_all:Nnn \l_mytrans_tl { i } { ি } 
\tl_replace_all:Nnn \l_mytrans_tl { I } { ী } 
\tl_replace_all:Nnn \l_mytrans_tl { u } { ু } 
\tl_replace_all:Nnn \l_mytrans_tl { U } { ূ } 
\tl_replace_all:Nnn \l_mytrans_tl { -r } { ৃ } 
\tl_replace_all:Nnn \l_mytrans_tl { e } { ে } 
\tl_replace_all:Nnn \l_mytrans_tl { ai } { ৈ } 
\tl_replace_all:Nnn \l_mytrans_tl { O } { ো } 
\tl_replace_all:Nnn \l_mytrans_tl { au } { ৌ } 

\tl_replace_all:Nnn \l_mytrans_tl { k } { ক } 
\tl_replace_all:Nnn \l_mytrans_tl { g } { গ } 

\tl_replace_all:Nnn \l_mytrans_tl { c } { চ } 
\tl_replace_all:Nnn \l_mytrans_tl { j } { জ } 
\tl_replace_all:Nnn \l_mytrans_tl { J } { জ } 


\tl_replace_all:Nnn \l_mytrans_tl { T } { ট } 

\tl_replace_all:Nnn \l_mytrans_tl { D } { ড } 

\tl_replace_all:Nnn \l_mytrans_tl { N } { ণ } 

\tl_replace_all:Nnn \l_mytrans_tl { t } { ত } 
\tl_replace_all:Nnn \l_mytrans_tl { d } { দ } 
\tl_replace_all:Nnn \l_mytrans_tl { n } { ন } 

\tl_replace_all:Nnn \l_mytrans_tl { p } { প } 
\tl_replace_all:Nnn \l_mytrans_tl { f } { ফ } 
\tl_replace_all:Nnn \l_mytrans_tl { b } { ব } 
\tl_replace_all:Nnn \l_mytrans_tl { v } { ভ } 
\tl_replace_all:Nnn \l_mytrans_tl { m } { ম } 

\tl_replace_all:Nnn \l_mytrans_tl { z } { য } 
\tl_replace_all:Nnn \l_mytrans_tl { r } { র } 
\tl_replace_all:Nnn \l_mytrans_tl { l } { ল } 
\tl_replace_all:Nnn \l_mytrans_tl { S } { শ } 
\tl_replace_all:Nnn \l_mytrans_tl { s } { স } 
\tl_replace_all:Nnn \l_mytrans_tl { H } { হ } 
\tl_replace_all:Nnn \l_mytrans_tl { R } { ড় } 
\tl_replace_all:Nnn \l_mytrans_tl { y } { য় }
\tl_replace_all:Nnn \l_mytrans_tl { Y } { য় }
\tl_replace_all:Nnn \l_mytrans_tl { t- } { ৎ } 
\tl_replace_all:Nnn \l_mytrans_tl { : } { ঃ } 
\tl_replace_all:Nnn \l_mytrans_tl { ^ } { ঁ } 
\tl_replace_all:Nnn \l_mytrans_tl { o } { ্ }

\tl_replace_all:Nnn \l_mytrans_tl { 0 } { ০ } 
\tl_replace_all:Nnn \l_mytrans_tl { 1 } { ১ } 
\tl_replace_all:Nnn \l_mytrans_tl { 2 } { ২ } 
\tl_replace_all:Nnn \l_mytrans_tl { 3 } { ৩ } 
\tl_replace_all:Nnn \l_mytrans_tl { 4 } { ৪ } 
\tl_replace_all:Nnn \l_mytrans_tl { 5 } { ৫ } 
\tl_replace_all:Nnn \l_mytrans_tl { 6 } { ৬ } 
\tl_replace_all:Nnn \l_mytrans_tl { 7 } { ৭ } 
\tl_replace_all:Nnn \l_mytrans_tl { 8 } { ৮ } 
\tl_replace_all:Nnn \l_mytrans_tl { 9 } { ৯ } 
\tl_replace_all:Nnn \l_mytrans_tl { . } { । } 
}

\ExplSyntaxOff


\begin{document}
\section{\bn{banglay likhi}}
\bn{a=mader desh bangladesh. a=mra banglay ktha bli. bangladesh e=kTi chOToT desh. e=Ti dkoShiN e=Siya mHadeshe o=bsothit.}
\end{document}

。但我得到了这样的输出,其中包含大量空格(红色标记):

在此处输入图片描述

我的问题是:我怎样才能使用最少的代码删除这些空格?

答案1

\bn命令错误地重复了令牌列表。

正确的定义是:

\NewDocumentCommand{\bn}{ m }
{
\tl_set:Nn \l_mytrans_tl { #1 }
\dobntrans
   
    { \bengalifont \tl_use:N \l_mytrans_tl }
}

相关内容