如何禁止输出文本行开头的某个字符?特别是针对藏文文本

如何禁止输出文本行开头的某个字符?特别是针对藏文文本

我正在排版藏文文本,并试图复制藏文传统排版惯例(他们大多使用手写手稿或木版画/木版画)。有一条规则是鲱鱼(།)是最常见的标点符号,它永远不能开始新行。似乎这个惯例可能已经融入到polyglossia包代码中,因为这种错误相当罕见。然而,它确实发生了。我该在代码中添加什么,才能让新行永远不以 开头鲱鱼

MWE,有两个鲱鱼以红色开始一行:


\documentclass{letter}

\usepackage[margin=3in, paperwidth=8.5in, paperheight=11in]{geometry}

\usepackage[usenames]{xcolor}

\usepackage{polyglossia}
   \setmainlanguage{tibetan}
   \newfontfamily\tibetanfont{Jomolhari}
   
\begin{document}

\Large
ཐེག་པ་ཆེན་པོའི་ཚུལ་ལ་འཇུག་པ་མདོ་ཙམ་བརྗོད་པ། གང་ཟག་གང་དག་འཁོར་བའི་རྒྱ་མཚོ་ལས་ཐར་བར་འདོད་ཅིང་། 
བླ་ན་མེད་པའི་བྱང་ཆུབ་བསྒྲུབ་པར་འདོད་པ་རྣམས་ཀྱིས། ཐོག་མར་ཁོ་ནར་ཉོན་མོངས་པ་རྣམས་ཀྱི་མཚན་ཉིད་ལ་བརྟགས་པར་རིགས་སོ། 
{\color{red}།}གང་གི་ཕྱིར་ཉོན་མོངས་པ་རྣམས་ཀྱིས་བཅིངས་ཏེ། འགྲོ་བ་རྣམས་འཁོར་བའི་རྒྱ་མཚོར་འཁྱམས་སོ། 
།ཞེས་བཀའ་སྤྱི་ལས་གྲགས་པའི་ཕྱིར་རོ། །དེའི་འོག་ཏུ་དེ་རྣམས་ཀྱི་གཉེན་པོར་གྱུར་པའི་ལམ་གྱི་མཆོག ཉོན་མོངས་པ་ཐམས་ཅད་སྤངས་པར་གདོན་མི་ཟའོ། 
{\color{red}།}གཞན་ཡང་གང་ཞིག་གིས་ཤེས་བྱ་རྣམས་ལ་རྣམ་པར་དབྱེ་བ་གྲངས་ལས་འདས་པ་ཞིག་ཏུ་རྣམ་པར་ཕྱེ་སྟེ། 
དེ་རྣམས་ལ་ཆོས་བདག་མེད་པར་རྟོགས་པར་བྱས་ན། དེ་དག་ཐམས་ཅད་ཀྱིས་ཀྱང་ཉོན་མོངས་པ་སྤོང་བར་འགྱུར་བ་གདོན་མི་ཟའོ།

\end{document}

更新

我尝试过 egreg 的建议(见下面的答案),使用该newunicodechar包来修改鲱鱼被打印出来。当它看到鲱鱼,代码提示 latex 检查它前面是否有空格,如果有,它会用非换行空格替换这个空格。我们尝试了这种方法,因为似乎鲱鱼仅当鲱鱼位于空格之后。这适用于 egreg,但当我编译完全相同的代码时,我得到了下面的结果,前面有空格鲱鱼不应该有。第一个鲱鱼但是, 正确地直接与前一个字符相邻。我正在编译与 egreg 完全相同的代码,因此问题似乎一定在于我们的 latex 设置之间的差异。

使用完全相同的代码将此结果与以下答案中 egreg 的结果进行比较

答案1

您可以进行设置,以便 shad 删除其前面的空格并用不间断空格替换它。

如果您想给它上色,这将不起作用;在这种情况下,请记住~在它前面。

\documentclass{letter}
\usepackage[margin=3in, paperwidth=8.5in, paperheight=11in]{geometry}
\usepackage[usenames]{xcolor}
\usepackage{polyglossia}
\usepackage{newunicodechar}

\setmainlanguage{tibetan}
\newfontface\tibetanfont{Jomolhari-Regular.ttf}
\newunicodechar{།}{\ifdim\lastskip>0pt\unskip\nobreakspace\fi །}

\begin{document}

\Large
ཐེག་པ་ཆེན་པོའི་ཚུལ་ལ་འཇུག་པ་མདོ་ཙམ་བརྗོད་པ། གང་ཟག་གང་དག་འཁོར་བའི་རྒྱ་མཚོ་ལས་ཐར་བར་འདོད་ཅིང་། 
བླ་ན་མེད་པའི་བྱང་ཆུབ་བསྒྲུབ་པར་འདོད་པ་རྣམས་ཀྱིས། ཐོག་མར་ཁོ་ནར་ཉོན་མོངས་པ་རྣམས་ཀྱི་མཚན་ཉིད་ལ་བརྟགས་པར་རིགས་སོ།
།གང་གི་ཕྱིར་ཉོན་མོངས་པ་རྣམས་ཀྱིས་བཅིངས་ཏེ། འགྲོ་བ་རྣམས་འཁོར་བའི་རྒྱ་མཚོར་འཁྱམས་སོ། 
།ཞེས་བཀའ་སྤྱི་ལས་གྲགས་པའི་ཕྱིར་རོ། །དེའི་འོག་ཏུ་དེ་རྣམས་ཀྱི་གཉེན་པོར་གྱུར་པའི་ལམ་གྱི་མཆོག ཉོན་མོངས་པ་ཐམས་ཅད་སྤངས་པར་གདོན་མི་ཟའོ། 
།གཞན་ཡང་གང་ཞིག་གིས་ཤེས་བྱ་རྣམས་ལ་རྣམ་པར་དབྱེ་བ་གྲངས་ལས་འདས་པ་ཞིག་ཏུ་རྣམ་པར་ཕྱེ་སྟེ། 
དེ་རྣམས་ལ་ཆོས་བདག་མེད་པར་རྟོགས་པར་བྱས་ན། དེ་དག་ཐམས་ཅད་ཀྱིས་ཀྱང་ཉོན་མོངས་པ་སྤོང་བར་འགྱུར་བ་གདོན་མི་ཟའོ།

\end{document}

在此处输入图片描述

答案2

您可以尝试我的 tibex.tex 包,其中包含一些 sed 脚本,用于自动排版藏文标点符号。抱歉,它仅适用于普通的 XeTeX,因为我还不知道如何编写 LaTeX 包。它位于https://gitee.com/gendun-jiangcuo/tibexpkg.git. 一些例子见https://gitee.com/gendun-jiangcuo/tibex.git。大部分文档都是中文的,很抱歉。

相关内容