Impedir a hifenização de uma palavra com \hifenização nem sempre funciona

Impedir a hifenização de uma palavra com \hifenização nem sempre funciona

Eu sei que é possível evitar a hifenização de uma palavra configurando \hyphenation{ }. No entanto, isso parece não funcionar em alguns casos. Aqui está um exemplo, onde a palavra é a sigla “IRES”.

\documentclass[12pt,a4paper]{article}

\usepackage[italian]{babel}

\hyphenation{IRES}
\begin{document}

\begin{minipage}{7.6cm}
  Un Ente non residente può svolgere un'attività commerciale in Italia
  partecipando a una società di capitali italiana o attraverso una stabile
  organizzazione. In entrambi i casi sul reddito d'impresa si applicherà
  l'IRES. La stabile organizzazione dovrà determinare il reddito d'impresa
  prodotto nel territorio dello Stato applicando le stesse regole
  applicabili alle società di capitali italiane come se si trattasse di
  un'entità separata e indipendente dall'ente estero.
\end{minipage}
\end{document}

O que resulta em

insira a descrição da imagem aqui


com XeLaTeX

\documentclass[12pt,a4paper]{article}

\usepackage[italian]{babel}

\begin{document}


\begin{minipage}{7.6cm}

aaaaaaaaaaaaaaa bbbbbbbbbb cccccccccc
aiii  sul reddito d'impresa  applicherà
  l'IRES. La stabile organizzazione
applicabili alle società di capitali italiane come se si trattasse di
  un'entità separata e indipendente dall'ente estero.


\end{minipage}
\end{document}

insira a descrição da imagem aqui

Responder1

Para XeLaTeX você precisa evitar a hifenização de “l'IRES” (com U+2019), porque 'é substituído por no momento da composição, mas não quando \hyphenationé usado.

\documentclass[12pt,a4paper]{article}
\usepackage[italian]{babel}

{\lccode`’=`’
\hyphenation{l’IRES}
}

\begin{document}

\parbox{0pt}{\hspace{0pt}l'IRES}

\end{document}

insira a descrição da imagem aqui

Provavelmente você também precisa all’IRESde e dell’IRES.

Se você tiver problemas para inserir , então

{\lccode"2019="2019
\hyphenation{l^^^^2019IRES}
}

também servirá.

Responder2

As marcas italianas 'participam da hifenização, então você precisal'IRES

insira a descrição da imagem aqui

\documentclass[12pt,a4paper]{article}

\usepackage[italian]{babel}

{\lccode`'=`'
\hyphenation{l'IRES}
}

\begin{document}


\begin{minipage}{7.6cm}
  Un Ente non residente può svolgere un'attività commerciale in Italia
  partecipando a una società di capitali italiana o attraverso una stabile
  organizzazione. In entrambi i casi sul reddito d'impresa si applicherà
  l'IRES. La stabile organizzazione dovrà determinare il reddito d'impresa
  prodotto nel territorio dello Stato applicando le stesse regole
  applicabili alle società di capitali italiane come se si trattasse di
  un'entità separata e indipendente dall'ente estero.
\end{minipage}
\end{document}

Mas a hifenização será ruim com OT1, você deve sempre usar T1 se estiver usando pdflatex.


Lualatex mostra o mesmo ponto de interrupção que xelatex no exemplo xelatex, e a mesma solução acima remove a hifenização resultando em

insira a descrição da imagem aqui

Mas por razões não documentadas (mas provavelmente relacionadas aos detalhes de implementação da interação com o harfbuzz), o código não funciona (e nem qualquer outra coisa que tentei) usando xelatex.

Veja a resposta do egreg, você pode usar em vez de xelatex.'\hyphenation

informação relacionada