缅甸语和 LuaLaTeX

缅甸语和 LuaLaTeX

LuaLaTeX我正在做一个需要(TeX Live) 和字体的项目Noto Serif Myanmar。我需要几句话缅甸语仅。MWE 可以很好地与 配合使用XeLaTeX。但LuaLaTeX连字有问题。有没有办法让它LuaLaTeX与使用的Noto Serif Myanmar字体配合使用(除了将它们设置为XeLaTeX并将它们作为图形包含,例如https://ctan.org/pkg/standalone)?

\documentclass[landscape]{memoir}

\usepackage{fontspec,polyglossia,url}

\newfontfamily{\burmeseFamily}{NotoSerifMyanmar-Regular.ttf}
\newfontfamily{\burmeseFamilyDecom}{MyanmarMN}
\newcommand{\burmeseTest}[1]{
{\burmeseFamily{} #1}
\hfill
{\burmeseFamilyDecom{} #1}}

\begin{document}

\burmeseTest{င်းကွန်းင်းလောင်းတော်ကြီး}

\bigskip
\burmeseTest{မ္မတီခေါင်းလောင်းကြီး}


\vfill
Might be usefull: \url{https://r12a.github.io/pickers/burmese/}
\end{document}

RHS 只是为了比较,LHS 才是我真正需要的。

XeLaTeX(正确): 在此处输入图片描述

LuaLaTeX(错误): 在此处输入图片描述

网站https://r12a.github.io/pickers/burmese/可能对连字分析有用。感谢 ShreevatsaR 在下面的评论,该网站https://en.wikipedia.org/wiki/Complex_text_layout可能会提供一些相关信息。如果你不熟悉这些Noto字体,你可能需要阅读https://en.wikipedia.org/wiki/Noto_fonts


更新。版本 2.7b (2019/02/12)https://ctan.org/pkg/fontspec添加(实验性)对其他渲染引擎的支持,例如HarfbuzzGraphite。我无法正确设置这些引擎,但另请参阅https://tex.stackexchange.com/a/441914/128553以下。

后来,帖子如何在 TeXLive 上安装 HarfTeX?什么是“latex-dev”?, 和https://tex.stackexchange.com/a/515934/128553导致一种新的、更简单的方法来获得所需的结果。我感谢所有参与解决问题的人,也感谢我的系统管理员慷慨地更新了系统。

如何在乳胶中书写缅甸语?相关的。

答案1

我没有你的第二个字体。但是使用引擎 luahbtex 和 luaotfload 版本 > 3.11,你的示例如下所示:

\documentclass[landscape]{memoir}

\usepackage{fontspec,polyglossia,url}

\newfontfamily{\burmeseFamily}
           {NotoSerifMyanmar-Regular.ttf}[Renderer=Harfbuzz,Script=Myanmar]

\begin{document}

\burmeseFamily 
င်းကွန်းင်းလောင်းတော်ကြီး

မ္မတီခေါင်းလောင်းကြီး

\end{document}

![在此处输入图片描述

二进制 luahbtex 已在 texlive 2019 和当前 miktex 中可用。目前可以使用 lualatex-dev 格式(什么是“latex-dev”?),在texlive 2020中它将成为lualatex使用的标准引擎。

答案2

这是使用我的一个示例Luatex-harfbuzz-shaper

\documentclass[landscape]{memoir}

\usepackage{harfbuzz}
% \usepackage{fontspec,polyglossia,url}
\usepackage{url}

\font\burmeseFamily={Noto Sans Myanmar:+script=mymr;+language=mya} at 12pt
\font\burmeseFamilyDecom={Noto Sans Myanmar:+script=dflt;+language=dflt} at 12pt
\newcommand{\burmeseTest}[1]{
{\burmeseFamily{} #1}
\hfill
{\burmeseFamilyDecom{} #1}
}

\begin{document}

\burmeseTest{င်းကွန်းင်းလောင်းတော်ကြီး}

\bigskip
\burmeseTest{မ္မတီခေါင်းလောင်းကြီး}


\bigskip
Might be usefull: \url{https://r12a.github.io/pickers/burmese/}
\end{document}

请注意,它要求您的系统上已安装 Noto Sans Myanmar。您还需要安装路哈夫巴兹在您的系统上。

结果如下:

在此处输入图片描述

答案3

目前,LuaTeX 不支持世界上大多数文字,包括缅甸语和其他婆罗米语衍生文字。这是因为它仅支持字符一个接一个排列的简单文字;不支持需要复杂的文本布局

据我所知,它对梵文和马拉雅拉姆语提供了一些基本的支持,但对缅甸语则没有。如果你需要使用这种“不受支持”的脚本,你可以选择:

  • 只需使用 XeTeX(或带有适合您的脚本/语言的包的 pdfTeX,如果存在)而不是 LuaTeX(例如,如果您使用 LaTeX,则使用xelatex而不是进行编译lualatex)。

  • 在另一个应用程序(如 XeTeX 或其他)中生成文本,并将其作为图像插入到您的 LuaTeX 文档中。

  • 使用 LuaTeX 库 (Harfbuzz) 的“实验性”方法之一进行文本整形。以下是一些链接(您必须自己理解):tatzetwerk/luatex-harfbuzzdeepakjois/luatex-harfbuzzmichal-h21/luatex-harfbuzz-shaper(联系邮件列表帖子),两位 LuaTeX 开发人员最近发表的文章

  • 弄清楚 LuaTeX 如何支持天城文,并模仿它支持缅甸语(和其他文字)。(我不知道这有多容易:一方面,Harfbuzz 是一个长期运行的项目,非常复杂;另一方面,粗略一看,LuaTeX 中对天城文的少量支持代码似乎足以满足一些常见用途……尽管我还没有进行任何详细测试。)

您还应该在 LuaTeX 邮件列表上询问:几个月前有人声称从来没有人要求 LuaTeX 开发人员支持此类脚本!

答案4

这篇文章已经过时了,但可能是解决类似问题的备用方案,请参阅https://tex.stackexchange.com/a/515934/128553特别是对于那些无法使用更精密引擎的人来说。

@ShreevatsaR 给出了一些很好的想法。但是,由于我只需要两个词,所以我添加了 as 这两个词PDF。这种方法合理且经济,因为我不需要投入太多时间来尝试使他的建议奏效,因为我从未使用过他建议的工具,也尝试过其他建议https://tex.stackexchange.com/a/434933/128553https://tex.stackexchange.com/a/441914/128553以失败告终。

如果有人对细节感兴趣:

Burmese.tex我们使用以下命令编译以下文件XeLaTeX

\documentclass[11pt,tikz,border=0ex]{standalone}

\usepackage{fontspec,polyglossia,url}

%This is necessary to scale the Burmese font. On a larger project, you can also simply load the same style file in which the definitions are found. 
\setmainfont{texgyrepagella-regular.otf}

%You may want to choose NotoSerifMyanmar-Medium.ttf or a different font for a better optical match
\newfontfamily{\burmeseFamily}{NotoSerifMyanmar-Regular.ttf}[Scale=MatchLowercase]
%There might be simpler ways to get equivalent results. 
\newcommand{\burmeseFont}[1]{\tikz \node[inner sep=0pt] {\burmeseFamily{}#1};}

\begin{document}

\burmeseFont{င်းကွန်းင်းလောင်းတော်ကြီး}

\burmeseFont{မ္မတီခေါင်းလောင်းကြီး}

\end{document}

这将使文件Burmese.pdf包含以下两页: 在此处输入图片描述

我们可以按如下方式使用该文件:

\documentclass[11pt]{memoir}

\usepackage{fontspec,polyglossia,url,pdfpages}

\setmainfont{texgyrepagella-regular.otf}

%Lowering the PDF gives matching baselines 
\newcommand{\burmeseA}
{\mbox{\lower 1.00ex\hbox{\includegraphics[page=1]{Burmese.pdf}}}}
\newcommand{\burmeseB}
{\mbox{\lower 1.00ex\hbox{\includegraphics[page=2]{Burmese.pdf}}}}

\begin{document}

Lorem ipsum \burmeseA{} dolor sit manet. 

Et \burmeseB{} nil nisi colloquor. 

\end{document}

得到以下结果。 在此处输入图片描述

Burmese.tex两个文件中的字体大小和主字体匹配很重要。如果需要不同的字体,可以改变文件中的字体大小和样式。请注意:第二个文件中的缅甸文字母PDF不可复制。

相关内容