LaTeXbangla 包在 Overleaf 中不起作用

LaTeXbangla 包在 Overleaf 中不起作用

我正在尝试使用以下语言编写双语(孟加拉语+英语)文档拉特克孟加拉语包裹。

这是我的 MWE:

\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}

当我使用 Miktex XeLaTeX (Windows 10) 编译它时,它给出了完美的输出。但使用 Overleaf XeLaTeX 时,它不起作用。为什么会发生这种情况?我该如何解决这个问题?

答案1

问题(正如 David Carlisle 正确直觉到的)在于 Overleaf 没有安装这些字体。如果您单击“显示原始日志”按钮,您将看到错误消息。

感谢@imnothere 提供链接Overleaf 中可用的孟加拉字体列表。 您应该能够替换其中任何一个。有些将需要AutoFakeBold =AutoFakeSlant =选项。

正如 David Carlisle 在评论中所建议的那样,如果您想使用的字体是免费的,您可以将字体文件的副本放在您的项目文件夹中。

一个办法

将字体文件下载到项目文件夹还不足以开始latexbangla工作。(也许可以使用 进行修复\defaultfontfeatures。)我最终做的是编写一个使用babel2020 年或更高版本的 LuaLaTeX 的新解决方案。

由于您同时使用了粗体和斜体,但您链接给我的字体却没有提供任何一种,因此我使用了fontspec伪粗体和斜体。

首先,创建一个名为 fonts 的新子文件夹,并将 和 上传到kalpurush.ttf其中Siyamrupah.ttf。以下 MWE 现在对我有用:

\documentclass{article}
\tracinglostchars=2
\usepackage[bidi=basic,
            layout=sectioning.tabular,
            nil
           ]{babel}
\usepackage{unicode-math}

\defaultfontfeatures{ Scale=MatchLowercase,
                      Ligatures=TeX,
                      Renderer=HarfBuzz }

%% Kalpurush and Siyam Rupali are free for
%% download at:
%% https://www.omicronlab.com/bangla-fonts.html
\defaultfontfeatures[kalpurush]{
  Path = ./fonts/ ,
  Extension = .ttf ,
  AutoFakeBold = 1.2 ,
  AutoFakeSlant = 0.2 }
\defaultfontfeatures[Siyamrupali]{
  Path = ./fonts/ ,
  Extension = .ttf ,
  AutoFakeBold = 1.2 ,
  AutoFakeSlant = 0.2 }

\babelprovide[import, onchar=ids fonts]{english}
\babelfont{rm}
          [Language=Default]{NewComputerModernBook}
\babelfont{sf}
          [Language=Default]{NewComputerModernSansBook}
\babelfont{tt}
          [Language=Default]{NewComputerModernMonoBook}

\babelprovide[import=bn,
              main,
              onchar=ids fonts
             ]{bangla}
\babelfont[bangla]{rm}
          {kalpurush}
\babelfont[bangla]{sf}
          {Siyamrupali}
\babelfont[bangla]{tt}
          {Siyamrupali}

\setmathfont{NewCMMath-Book.otf}

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

我警告你,伪粗体电传打字文本有一些糟​​糕的暗示,这使得它在这张低分辨率图像中看起来很丑陋。当你看到全尺寸 PDF 时,情况就没那么糟糕了。

Kalpurush/Siyam Rupali 样品

Siyam rupali 字体在显示括号中的英文文本时会遇到一些问题。切换到 Mukti Narrow 或 Mitra 可以修复这些问题,或者可以配置babel为在看到(或时自动切换到英文字体)

\\如果您删除换行符并让 LaTeX 换行算法工作,布局看起来会好得多。该microtype软件包(如果您介意在加载 Bangla 字体时它会给您大量的良性警告消息,请关闭字体突出)也可能有帮助。

\documentclass{article}
\tracinglostchars=2
\usepackage[bidi=basic,
            layout=sectioning.tabular,
            nil
           ]{babel}
\usepackage{unicode-math}
\usepackage{microtype}

\defaultfontfeatures{ Scale=MatchLowercase,
                      Ligatures=TeX,
                      Renderer=HarfBuzz }

%% Kalpurush and Siyam Rupali are free for
%% download at:
%% https://www.omicronlab.com/bangla-fonts.html
\defaultfontfeatures[kalpurush]{
%  Path = ./fonts/ ,
  Extension = .ttf ,
  AutoFakeBold = 1.2 ,
  AutoFakeSlant = 0.2 }
\defaultfontfeatures[Siyamrupali]{
% Path = ./fonts/ ,
  Extension = .ttf ,
  AutoFakeBold = 1.2 ,
  AutoFakeSlant = 0.2 }
\defaultfontfeatures[Mitra]{
  AutoFakeBold = 1.2
}

\babelprovide[import, onchar=ids fonts]{english}
\babelfont{rm}
          [Language=Default]{NewComputerModernBook}
\babelfont{sf}
          [Language=Default]{NewComputerModernSansBook}
\babelfont{tt}
          [Language=Default]{NewComputerModernMonoBook}

\babelprovide[import=bn,
              main,
              onchar=ids fonts
             ]{bangla}
\babelfont[bangla]{rm}
          {kalpurush}
\babelfont[bangla]{sf}
          {MuktiNarrow}
\babelfont[bangla]{tt}
          {Mitra}

\setmathfont{NewCMMath-Book.otf}

\begin{document}
পিথাগোরাস(Pythagoras)-এর উপপাদ্যটি হল,
\textit{সমকোণী ত্রিভুজের অতিভুজের উপর অঙ্কিত  
বর্গক্ষেত্রের ক্ষেত্রফল অপর দুই বাহুর উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফলের সমষ্টির সমান।}
অর্থাৎ কোন সমকোণী ত্রিভুজের অতিভুজ $c$ এবং অপর দুই বাহু $a$ এবং $b$ হলে,

\[c^2=a^2+b^2\]

লক্ষ্য করুন, এখন পর্যন্ত টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ, ফন্ট ব্যবহৃত হয়েছে।}
\texttt{এবার, টেলিটাইপ (Teletype)টেক্সট প্রদর্শনের জন্য \textbf{সিয়াম রূপালী} ফন্ট ব্যবহৃত হল।}
পুনরায় টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ  ফন্ট ব্যবহৃত  হচ্ছে।}
\end{document}

Kalpurush/Mitra 样品

仅使用在 Overleaf 上安装的字体的解决方案:

\documentclass{article}
\tracinglostchars=2
\usepackage[bidi=basic,
            layout=sectioning.tabular,
            nil
           ]{babel}
\usepackage{unicode-math}

\defaultfontfeatures{ Scale=MatchLowercase,
                      Ligatures=TeX,
                      Renderer=HarfBuzz }

\babelprovide[import, onchar=ids fonts]{english}
\babelfont{rm}
          [Language=Default]{NewComputerModernBook}
\babelfont{sf}
          [Language=Default]{NewComputerModernSansBook}
\babelfont{tt}
          [Language=Default]{NewComputerModernMonoBook}

\defaultfontfeatures[LohitBengali]{
  AutoFakeBold = 1.2, 
  AutoFakeSlant = 0.175 }
\defaultfontfeatures[MitraMono]{
  AutoFakeBold = 1.2 }

\babelprovide[import=bn,
              main,
              onchar=ids fonts
             ]{bangla}
\babelfont[bangla]{rm}
          [Language=Default]{LohitBengali}
\babelfont[bangla]{sf}
          [Language=Default]{MuktiNarrow}
\babelfont[bangla]{tt}
          [Language=Default, Scale=0.75]{MitraMono}

\setmathfont{NewCMMath-Book.otf}

\begin{document}
পিথাগোরাস(Pythagoras)-এর উপপাদ্যটি হল,
\textit{সমকোণী ত্রিভুজের অতিভুজের উপর অঙ্কিত  
বর্গক্ষেত্রের ক্ষেত্রফল অপর দুই বাহুর উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফলের সমষ্টির সমান।} 
অর্থাৎ কোন সমকোণী ত্রিভুজের অতিভুজ $c$ এবং অপর দুই বাহু $a$ এবং $b$ হলে,

\[c^2=a^2+b^2\]

লক্ষ্য করুন, এখন পর্যন্ত টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ} ফন্ট ব্যবহৃত হয়েছে।
\texttt{এবার, টেলিটাইপ (Teletype) টেক্সট প্রদর্শনের জন্য \textbf{সিয়াম রূপালী} ফন্ট ব্যবহৃত হল।}
পুনরায় টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ  ফন্ট ব্যবহৃত  হচ্ছে।}
\end{document}

答案2

今天,我发现字体“Kalpurush”已添加到Overleaf 支持的孟加拉语字体列表。以下 MWE 是使用 Overleaf XeLaTeX (Texlive 2022) 完美编译的:

\documentclass{article}

% latexbangla with all features
\usepackage[banglamainfont=Kalpurush, 
            banglattfont=Kalpurush
           ]{latexbangla}  
% activate polyglossia
\setdefaultlanguage[numerals=Bengali, 
                    changecounternumbering=true
                   ]{bengali}
\setotherlanguage{english}
            
\begin{document}
পিথাগোরাস (Pythagoras)-এর উপপাদ্যটি হল,\\
\textit{সমকোণী ত্রিভুজের অতিভুজের উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফল অপর দুই বাহুর উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফলের সমষ্টির সমান।} \\
অর্থাৎ কোন সমকোণী ত্রিভুজের অতিভুজ $c$ এবং অপর দুই বাহু $a$ এবং $b$ হলে,
\[c^2=a^2+b^2\]
\end{document}

到目前为止(2022 年 9 月 7 日),Overleaf 不支持/不支持该字体。另外,我觉得没有必要在孟加拉语文本中使用单独的电传打字机字体。因此,我在上面的 MWE 中Siam Rupali的两个包选项中都设置了相同的字体。latexbangla

相关内容