Разрешить перенос слов, разделенных дефисом, и если дефис находится на дефисе, добавить еще один дефис в следующей строке

Разрешить перенос слов, разделенных дефисом, и если дефис находится на дефисе, добавить еще один дефис в следующей строке

У меня есть два требования. Я могу выполнить каждое из этих двух требований по отдельности, но мне не удалось их объединить.

Во-первых, мне нужно разрешить перенос слов с дефисом (например: "entendendo-se"), что по умолчанию невозможно. Пример:

enten-
dendo-se

или

en-
tendendo-se

Затем, когда слово переносится, если перенос строки происходит на тире, он должен добавить еще один тире в следующей строке (это правило португальского языка). Пример:

entendendo-
-se

Я знаю, что могу добиться первого, используя пакет extdash, \-/а второго могу добиться, определив макрос, который заменит тире на \discretionary{-}{-}{-}.

Но как объединить оба требования в одном решении?

И наконец, хотя это и не обязательно, можно ли применить решение ко всем тире в какой-то части текста (чтобы мне не пришлось заменять каждое тире командой [или чем-то еще, что будет использоваться])?

PS: В настоящее время я использую компилятор XeLaTeX.

ИЗМЕНИТЬ с дополнительной информацией

Минимальный рабочий пример

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage{hyphenat}

\begin{document}

\chapter{Exemplo}
Texto completamente aleatório, foi feito para demonstrar o porquê de entendendo-se não ser hifenizado corretamente.

\end{document}

В этом примере слово entendendo-seразрывается на тире, но его можно было разорвать и раньше.

  • Решение для моего первого требования — добавить \usepackage[shortcuts]{extdash}и заменить entendendo-seна entendendo\-/se. Это необходимо, потому что LaTeX по умолчанию не разрывает слова, заключенные в тире. Вы увидите, что слово разрывается раньше (потому что LaTeX считает, что это делает первую строку красивее), и это одна из вещей, которую я хочу добиться. Слово выглядит так:enten- dendo-se
  • Решение для моего второго требования будет заключаться в замене entendendo-seна entendendo\discretionary{-}{-}{-}se. Вы увидите, что когда слово прерывается на тире, в следующей строке добавляется еще один тире (что является португальским правилом), и это мое второе требование. Слово выглядит так: entendendo- -se. Пожалуйстапримечаниечто если слово не прерывается на тире, то никакого дополнительного тире добавлять не нужно!

Однако мне не удалось совместить оба варианта...

решение1

После нескольких проб и ошибок я нашел способ выполнить оба требования:

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage{hyphenat}

\begin{document}

\chapter{Exemplo}
Texto completamente aleatório, foi feito para demonstrar o porquê de entendendo\babelhyphen{repeat}se não ser hifenizado corretamente.

\end{document}

Для большего удобства мы могли бы добавить \defineshorthand{"-}{\babelhyphen{repeat}}в преамбулу и заменить entendendo-seнаentendendo"-se

Связанный контент