俄语中“ы”上方的重音符号移到下一行

俄语中“ы”上方的重音符号移到下一行

我正在尝试排版一份俄语文档,其中包含大量重音符号,几乎每个单词都是如此。它们由 U+0301 排版,即“组合重音符号”。我遇到一个问题,在某些情况下,重音符号会移到下一行:

\documentclass[twoside]{article}
\usepackage{fontspec}
\usepackage[T2A]{fontenc}
\newfontfamily\cyrillicfont[Mapping=tex-text]{PT Serif}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\fontsize{10}{12}\selectfont

\hyphenation{ны́-не}

\begin{document}
\parbox{1pt}{Почему́ перено́сы в словах ны́не и мы́ши ухо́дят на сле́дующую стро́чку, а в мя́со брэ́кет слу́хи ворю́га — нет?}
\end{document}

截屏

甚至\hyphenation沒有幫助。

制作\'ы也无济于事。

制作\mbox{ы́}会消除单词中的连字符。

我怎样才能修复它而不浏览整个文本(顺便说一下,它是诗篇)并在单词内放置完整的连字符模式,例如ны́\-не

答案1

感谢tex-hyphen 邮件列表,特别是克劳迪奥·贝卡利(Claudio Beccari)的解决方案是这样的。

该文件/usr/local/texlive/2015/texmf-dist/tex/generic/hyph-utf8/patterns/tex/hyph-ru.tex包含一行ы1,表示任何单词都可以在“ы”后面紧接着连字符。其他元音都没有这样的模式(因此它们不会产生这样的错误)。

因此有两种解决方案:

  1. 在 中添加2^^^^03014^^^^0301或。意思是“禁止在组合尖音符前使用连字符”。数字越大,禁止越严格。8^^^^0301hyph-ru.tex

  2. ы1从 中删除hyph-ru.tex。这意味着“无论如何,“ы”都不是可以连字符的字母,请查看其他模式”。

编辑后,您应该运行fmtutil --all(或者fmtutil-sys --all也许选项应该是--byhyphen ...,我不太明白,但fmtutil --all对我来说没问题。它不应该是sudo fmtutil!)。

[2019 年 1 月 25 日添加]: 为了避免连字符一个带重音符号的字母您可以添加以下几行到hyph-ru.tex

8^^^^0301
8а^^^^0301.
8е^^^^0301.
8и^^^^0301.
8о^^^^0301.
8у^^^^0301.
8ы^^^^0301.
8э^^^^0301.
8ю^^^^0301.
8я^^^^0301.
.а^^^^03018
.е^^^^03018
.и^^^^03018
.о^^^^03018
.у^^^^03018
.ы^^^^03018
.э^^^^03018
.ю^^^^03018
.я^^^^03018

相关内容