满文和蒙古文

满文和蒙古文

我正在尝试在 Mac 上编写包含满文脚本的文档。满文是用蒙古字母书写的,并添加了一些变音符号,但额外的变音符号包含在 Mac OS 附带的标准蒙古字体中。满文/蒙古文脚本的功能类似于阿拉伯文脚本,因为字母是相连的,并且它们的形状会根据它们在单词中的位置而变化。

但是,Mac OS 无法正确输入甚至显示满文/蒙古文,因为它无法处理字母根据其在单词中的位置(独立字母、首字母、中间字母或尾字母)应采取的不同形式。

个人电脑现在能够输入和显示满文/蒙古文。

现在我想知道是否可以在 LaTeX 中输入满文/蒙古文(例如,通过输入字母的 UNICODE 数字),并让排字员生成正确的脚本?

答案1

一般来说,你可以使用 Unicode 数字或相应的字母:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{圈点满文印刷体}% the font name of manchu.ttf}
\begin{document}

abcdefghijklmnopqrst

\char055\char056\char057 

\end{document}

在此处输入图片描述

您必须使用 platex、lualatex 或 omega 从上到下按照正确的方向书写。

答案2

以下功能可用作manchuxetex包裹在 GitHub 上。

一个最小的例子来演示哈立德·霍斯尼将满文/蒙古文破解为从上到下、从左到右的观点:

% !TEX TS-program = xelatex
\documentclass{scrartcl}
\usepackage{fontspec}
\newfontfamily{\dcw}[]{DaicingWhite}%
\begin{document}
\noindent
Line above\\% to demonstrate that the lines are being stacked as normal
\rotatebox{-90}{%
\XeTeXupwardsmode1\\% successive lines will be stacked upwards instead of downwards
\begin{minipage}{4em}% this will be the vertical length of the Mongolian section
{\dcw% Font: Daicing White
1 ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ\\% direct Unicode input of Manchu letters
2 ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ
}% End font
\end{minipage}
\XeTeXupwardsmode0
}% End rotatebox

\noindent
Line underneath
\end{document}

得出以下结论:

英文文本部分之间的满文文本

太清白书的字母已经旋转,因此这里不需要使用Vertical=RotatedGlyphs字体功能。

答案3

Lua(La)TeX 的一个初步解决方案是模拟 XeTeX 向上模式,方法是反转文本行,然后旋转结果。唯一的问题是我无法摆脱段落中断。文本摘录自http://www.cjvlang.com/Writing/writmongol/tradmononsite.html以供比较。蒙古白葡萄可从此处购买:http://www.mongolfont.com/en/font/mnglwhiteotf.html

\documentclass{standalone}
\usepackage{luacode}
\usepackage{fontspec}
\setmainfont{Mongolian White}[Renderer=Harfbuzz,Script=Mongolian]
\begin{luacode*}
userdata = userdata or {}
--Idea taken from chickenize's \boustrophedon
userdata.mongolian = function(head)
    rot = node.new(node.id("whatsit"),node.subtype("pdf_literal"))
    rot2 = node.new(node.id("whatsit"),node.subtype("pdf_literal"))
    for line in node.traverse_id(0,head) do
        w = line.width/65536*0.99625 
        rot.data = "-1 0 0 -1 "..w.." 0 cm"
        rot2.data = "-1 0 0 -1 "..-w.." 0 cm"
        line.head = node.insert_before(line.head,line.head,node.copy(rot))
    
    node.insert_after(line.head,node.tail(line.head),node.copy(rot2))
    end
    return head
end
\end{luacode*}
\def\startmongolian{\directlua{luatexbase.add_to_callback("post_linebreak_filter", userdata.mongolian, "mongolian")}}

\def\stopmongolian{%
%Don't remove \par !
\par\directlua{luatexbase.remove_from_callback("post_linebreak_filter", "mongolian")}%
}
\usepackage{graphicx}
\begin{document}
\rotatebox{90}{%
\parbox{8cm}{%
\startmongolian
\begin{flushleft}
    ᠣᠢᠷ᠎ᠠ ᠵᠢᠨ ᠡᠳᠦᠷ᠂ ᠦᠪᠦᠷ ᠮᠣᠩᠭᠣᠯ ᠦᠨ ᠰᠢᠯᠢ ᠵᠢᠨ ᠭᠣᠣᠯ ᠠᠢᠮᠠᠭ ᠦᠨ ᠰᠢᠯᠣᠭᠣᠨ ᠬᠦᠬᠡ ᠬᠣᠰᠢᠭᠣᠨ ᠦ ᠰᠢᠭᠦᠬᠦ ᠬᠣᠷᠢᠶ᠎ᠠ ᠨᠢᠭᠡᠨ ᠬᠦᠴᠦᠷᠬᠡᠭᠯᠡᠨ ᠨᠦᠵᠢᠳᠯᠡᠭᠰᠡᠨ ᠶᠠᠯᠠᠲᠣ ᠬᠡᠷᠡᠭ ᠲᠦ ᠰᠢᠭᠦᠯᠲᠡ ᠬᠢᠪᠡ᠃ ᠰᠢᠭᠦᠨ ᠲᠠᠰᠣᠯᠣᠯᠳᠠ ᠪᠠᠷ᠂ ᠵᠠᠭᠠᠯᠳᠣᠭᠳᠠᠭᠴᠢ ᠡᠷᠬᠢᠮᠲᠦ ᠵᠢ ᠬᠦᠴᠦᠷᠭᠡᠭᠯᠡᠨ᠂ ᠨᠦᠵᠢᠳᠯᠡᠭᠰᠡᠨ ᠶᠡᠯ᠎ᠡ ᠪᠡᠷ ᠭᠣᠷᠪᠠᠨ ᠵᠢᠯ ᠦᠨ ᠬᠣᠭᠣᠴᠠᠭ᠎ᠠ ᠲᠠᠢ ᠬᠣᠷᠢᠬᠣ ᠡᠷᠡᠭᠦᠦ ᠪᠡᠷ ᠰᠢᠳᠬᠡᠭᠰᠡᠨ ᠪᠠᠢᠨ᠎ᠠ᠃
\end{flushleft}
\stopmongolian
}
}
\end{document}

在此处输入图片描述

相关内容