![如何禁止输出文本行开头的某个字符?特别是针对藏文文本](https://linux22.com/image/426843/%E5%A6%82%E4%BD%95%E7%A6%81%E6%AD%A2%E8%BE%93%E5%87%BA%E6%96%87%E6%9C%AC%E8%A1%8C%E5%BC%80%E5%A4%B4%E7%9A%84%E6%9F%90%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%9F%E7%89%B9%E5%88%AB%E6%98%AF%E9%92%88%E5%AF%B9%E8%97%8F%E6%96%87%E6%96%87%E6%9C%AC.png)
我正在排版藏文文本,并试图复制藏文传统排版惯例(他们大多使用手写手稿或木版画/木版画)。有一条规则是鲱鱼(།)是最常见的标点符号,它永远不能开始新行。似乎这个惯例可能已经融入到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 设置之间的差异。
答案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。大部分文档都是中文的,很抱歉。