是否可以制作\lefthypenmin
并\righthypenmin
忽略重音符号而不将其算作单独的字母?
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}}
\setmainfont[Ligatures=TeX]{PT Serif}
\newfontfamily\cyrillicfont[Ligatures=TeX]{PT Serif}
\begin{document}
\righthyphenmin=2
\parbox[t]{1pt}{\hspace{0pt}неистовое}\hspace{3cm}
\parbox[t]{1pt}{\hspace{0pt}неистовое́}
\end{document}
我的意思是这些单词应该以相同的方式连字符,但不是像这样:
我为此使用了 luaLaTeX。XeLaTeX 给出了相同的结果。
或者也许有一个针对不太常见的情况的解决方案:不允许在单词末尾的一个重音字母前使用 TeX 连字符。
更新:
XeLaTeX 有一个不太常见的情况的解决方案:编辑hyph-ru.tex
并添加以下行并运行fmtutil --all
有助于:
8^^^^0301
8а^^^^0301.
8е^^^^0301.
8и^^^^0301.
8о^^^^0301.
8у^^^^0301.
8ы^^^^0301.
8э^^^^0301.
8ю^^^^0301.
8я^^^^0301.
答案1
在我看来,luatex 的文档在这一部分相当难以理解,所以我花了一段时间才意识到需要设置\savinghyphcodes=1
才能更改 \hjcode。这似乎可行,但我不太明白,大多数情况下都是猜测:
\documentclass{article}
\usepackage{fontspec}
\savinghyphcodes=1
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setmainfont[Ligatures=TeX]{PT Serif}
\textwidth=1pt
\begin{document}
\righthyphenmin=2
blb неистовое
неистовое́
\hjcode`\^^^^0301=32 %32=zero length
неистовое́
\end{document}