我正在尝试排版一份俄语文档,其中包含大量重音符号,几乎每个单词都是如此。它们由 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
,表示任何单词都可以在“ы”后面紧接着连字符。其他元音都没有这样的模式(因此它们不会产生这样的错误)。
因此有两种解决方案:
在 中添加
2^^^^0301
或4^^^^0301
或。意思是“禁止在组合尖音符前使用连字符”。数字越大,禁止越严格。8^^^^0301
hyph-ru.tex
ы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