当使用缅甸文本作为主字体时,英文输出效果不好。我希望将英文输出作为默认字体。
答案1
Babel 允许您设置单独的英语和缅甸语字体。这是一个在 LuaLaTeX(2020 年或更高版本)中编译的示例,经过微小更改后也可能在 XeLaTeX 中运行。文本应从《联合国人权宣言》中复制,对于任何错误,我深表歉意。
\documentclass{article}
\tracinglostchars=2
% Both English and Myanmar are LTR languages, and do not really need bidi.
\usepackage[bidi=basic, layout=sectioning, english]{babel}
\usepackage{unicode-math}
\usepackage{microtype}
\babelprovide[import=my, main]{myanmar}
\defaultfontfeatures{ Scale=MatchUppercase, Ligatures=TeX, Renderer=HarfBuzz }
% Padauk available from: https://software.sil.org/padauk/
\babelfont{rm}
[Scale=1.0, Ligatures=Common]{NewComputerModernBook}
\babelfont[myanmar]{rm}
{Padauk}
\setmathfont{NewCMMath-Book.otf}
\newenvironment{english}%
{\begin{otherlanguage}{english}\fussy}%
{\end{otherlanguage}}
\newcommand\textenglish[1]{\begin{english}#1\end{english}}
\setlength\emergencystretch{\hsize}\hbadness=10000 % To mitigate the poor hyphenation.
\begin{document}
\section*{အပြည်ပြည်ဆိုင်ရာ လူ့အခွင့်အရေး ကြေညာစာတမ်း}
\begin{english}
Whereas recognition of the inherent dignity and of the equal and inalienable rights of all members of the human family is the foundation of freedom, justice and peace in the world,
\end{english}
၁၉၄၈ ခုနှစ်၊ ဒီဇင်ဘာလ ၁၀ ရက်နေ့တွင် ကမ္ဘာ့ကုလသမဂ္ဂအဖွဲ့ ညီလာခံအစည်းအဝေးကြီးက လူ့အခွင့်အရေးကြေညာစာတမ်းကြီးကို အတည်ပြု၍ ကြေညာလိုက်ရာ ထိုကြေညာစာတမ်းကြီး၏ စာသားသည်နောက်စာမျက်နှာ များတွင် အပြည့်အစုံပါရှိသည်။ ဤကဲ့သို့ ရာဇဝင်တင်မည့် ကြေညာချက်ကို ပြုလုပ်ပြီးနောက် ဤညီလာခံအစည်းအဝေးကြီးက ကမ္ဘာ့ကုလသမဂ္ဂအဖွဲ့ဝင် နိုင်ငံ အားလုံးအား ထိုကြေညာစာတမ်းကြီး၏ စာသားကိုအများပြည်သူတို့ ကြားသိစေရန် ကြေညာပါမည့် အကြောင်းကိုလည်းကောင်း၊ ထို့ပြင်နိုင်ငံများ၊ သို့တည်းမဟုတ် နယ်မြေများ၏ နိုင်ငံရေး အဆင့်အတန်းကို လိုက်၍ ခွဲခြားခြင်း မပြုဘဲအဓိကအားဖြင့် စာသင်ကျောင်းများနှင့် အခြားပညာရေး အဖွဲ့အစည်းများတွင် ထိုကြေညာစာတမ်းကြီးကို ဖြန့်ချိ ဝေငှ စေရန်၊ မြင်သာအောင် ပြသထားစေရန်၊ ဖတ်ကြားစေရန်နှင့် အဓိပ္ပာယ်ရှင်းလင်း ဖော်ပြစေရန် ဆောင်ရွက်ပါမည့် အကြောင်းဖြင့် လည်းကောင်း ဆင့်ဆို လိုက်သည်။
\end{document}
如果英语是主要语言,您可以将命令替换\babelprovide
为\babelprovide[import=my, onchar=ids fonts]{myanmar}
,Babel 将自动检测您正在输入的脚本,并相应地设置字体和连字符。Babel 还允许您将该语言称为缅甸语或缅甸语,无论您喜欢哪种。
无论如何,Babel 针对您的语言的连字模式显然有很多不足之处。您可以通过增加\emergencystretch
单词之间的允许距离 (这比\sloppy
) 并启用microtype
字体扩展,这样会给您带来过多的单词间距,而不是参差不齐的右边距。如果这样做,请使用 重新打开英语的默认设置\fussy
。我重新定义了\begin{english}
和\textenglish
以自动执行此操作。您也可以选择\raggedright
。虽然我不会说英语,也无法提供建议,但我非常有限的理解是,您可能能够插入更多空格以使布局更具吸引力,或者插入自由连字点 ( \-
) 或零宽度空格(^^^^200b
或\hspace{0pt}
)以指示在没有更好的选择的情况下在哪里中断长单词。
关于字体的说明:据我所知,最常用的缅甸字体是 Zawgyi One,但它不能正确支持 Unicode。在这里,我使用 SIL 的 Padauk。另一个不错的选择可能是 Noto Serif Myanmar 和 Noto Sans Myanmar,因为它们有各种各样的系列(Light condensed、Semibold ExtraWide 等),这使得您更有可能选择与您的英语字体相匹配的组合。微软的 Myanmar Text 字体也适用。
您添加了polyglossia
标签,但截至 2020 年,Polyglossia 不支持您的语言。将来可能会支持。如果您切换,文档主体应该保持兼容。