我正在尝试使用以下语言编写双语(孟加拉语+英语)文档拉特克孟加拉语包裹。
这是我的 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
。)我最终做的是编写一个使用babel
2020 年或更高版本的 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 时,情况就没那么糟糕了。
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}
仅使用在 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