Evitar la separación de palabras de una palabra con \hyphenation no siempre funciona

Evitar la separación de palabras de una palabra con \hyphenation no siempre funciona

Sé que es posible evitar la separación de palabras de una palabra configurando \hyphenation{ }. Sin embargo, esto no parece funcionar en algunos casos. A continuación se muestra un ejemplo, donde la palabra es el acrónimo "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}

Lo que resulta en

ingrese la descripción de la imagen aquí


con 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}

ingrese la descripción de la imagen aquí

Respuesta1

Para XeLaTeX, debe evitar la separación de palabras de “l'IRES” (con U+2019), porque 'se reemplaza por en el momento de la composición tipográfica, pero no cuando \hyphenationse usa.

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

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

\begin{document}

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

\end{document}

ingrese la descripción de la imagen aquí

Probablemente también necesites all’IRESy dell’IRES.

Si tiene problemas para ingresar , entonces

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

lo hará también.

Respuesta2

El italiano hace 'parte de la separación de palabras, por lo que es necesariol'IRES

ingrese la descripción de la imagen aquí

\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}

Pero la separación de palabras será deficiente con OT1; siempre debe usar T1 si usa pdflatex.


Lualatex muestra el mismo punto de interrupción que xelatex en el ejemplo de xelatex, y la misma solución anterior elimina la separación de palabras que resulta en

ingrese la descripción de la imagen aquí

Pero por razones no documentadas (pero probablemente relacionadas con los detalles de implementación de la interacción con harfbuzz), el código no funciona (y tampoco funciona nada más que probé) usando xelatex.

Vea la respuesta de egreg, puede usar en lugar de 'para \hyphenationxelatex.

información relacionada