![从英语生成语音孟加拉语问题](https://linux22.com/image/441068/%E4%BB%8E%E8%8B%B1%E8%AF%AD%E7%94%9F%E6%88%90%E8%AF%AD%E9%9F%B3%E5%AD%9F%E5%8A%A0%E6%8B%89%E8%AF%AD%E9%97%AE%E9%A2%98.png)
从这个答案问题,我已编辑代码以最小化如下内容:
\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 }
}