Evite hifenização antes de combinar acentos

Evite hifenização antes de combinar acentos

Alguns alfabetos, como o cirílico, gerenciam vogais com acento agudo com a ajuda do caractere unicode 0301, o acento agudo combinado. Isto pode levar a problemas de hifenização, porque o caractere de hifenização às vezes é colocado entre a vogal e o caractere de acento, resultando em um posicionamento incorreto do acento como no exemplo a seguir (compilado em LuaLaTex):

insira a descrição da imagem aqui

A palavra 'со́гре́ши́вши́я' está hifenizada corretamente:'о' 'U0301' - 'г'

A palavra 'при́сно́' tem, em vez disso, uma hifenização incorreta: 'и' - 'U0301' 'с'resultando no posicionamento incorreto do acento no início da quarta linha.

Na verdade, o problema pode ser evitado localmente conduzindo a hifenização com o usual при́\-сно́, mas quero evitar esse bug globalmente.

NOTA: esta questão é parcialmente emitida na questãoEvite hifenização em torno de um caractere específico, mas não consigo ver como o comando \lccodepode lidar com a combinação de acentos.

Este é o código de referência:

\documentclass[a5paper]{memoir}

\usepackage[russian]{babel}
\usepackage{fontspec}

\setmainfont{Linux Libertine}

\setlength{\spinemargin}{55mm}  
\setlrmarginsandblock{\spinemargin}{*}{1}
\checkandfixthelayout

\newcommand\TextRus{ди́це́, при́зри́ на́ лю́ди́ со́гре́ши́вши́я, яви́ я́ко́ при́сно́ си́лу Тво́ю: при́зыва́е́м.}

\begin{document}

\begin{hyphenrules}{russian}
\noindent\TextRus
\end{hyphenrules}

\end{document}

Responder1

Adicionando 8^^^^0301ao hyph-ru.tex conforme sugerido aqui (Acento em russo acima de «ы» vai para a próxima linha) funcionou para mim e suprimiu a hifenização (não há necessidade de reconstruir os formatos, pois o lualatex os carrega instantaneamente de qualquer maneira).

insira a descrição da imagem aqui

Imho, isso significa que o padrão está com defeito e você deve relatar isso aos mantenedores.

informação relacionada