Tenho notado alguns casos de hifenização inadequada em meu documento. Especificamente, o LaTeX está quebrando palavras hifenizadas como "grande escala" em algum lugaroutrodo que o hífen. (Achei que isso fosse algo que o LaTeX notoriamente se recusa a fazer!)
Até agora notei o problema apenas nas listas inline produzidas com o enumitem
pacote. Talvez seja apenas uma coincidência, mas nunca vejo o problema em textos com palavras semelhantes que não usam listas embutidas. Aqui está um exemplo mínimo:
\documentclass[a4paper,11pt]{article}
\usepackage[inline]{enumitem}
\begin{document}
% This paragraph is hyphenated correctly
Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
% This paragraph is hyphenated poorly
Foo bar f:
\begin{enumerate*}[label=(\roman*)]
\item Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
\end{enumerate*}
\end{document}
Saída:
O que está acontecendo aqui? Será enumitem
que é culpa? Independentemente disso, existe alguma maneira de consertar isso? Tentei mudar large-scale
para, \mbox{large}-\mbox{scale}
mas o LaTeX se recusa a quebrar a linha no hífen. (Em qualquer caso, eu preferiria uma solução global em vez de uma que exija que eu localize e corrija manualmente cada palavra mal hifenizada.)
Responder1
É devido ao fato de que enumerate*
encaixota o conteúdo e depois o faz \unhbox
. Não admira que isso não aconteça com XeLaTeX (com fontes não legadas) e LuaLaTeX.
\documentclass[a4paper,11pt]{article}
\usepackage[inline]{enumitem}
\begin{document}
% This paragraph is hyphenated correctly
Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
% This paragraph is hyphenated poorly
Foo bar f:
\begin{enumerate*}[label=(\roman*)]
\item Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
\end{enumerate*}
% This paragraph is hyphenated poorly
\setbox0=\hbox{Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.}
\leavevmode\unhbox0
\end{document}
O texto do boxe perde a referência ao idioma atual e coisas misteriosas podem acontecer. Usar mode=unboxed
.
\documentclass[a4paper,11pt]{article}
\usepackage[inline]{enumitem}
\begin{document}
% This paragraph is hyphenated correctly
Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
% This paragraph is hyphenated poorly
Foo bar f:
\begin{enumerate*}[label=(\roman*),mode=unboxed]
\item Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
\end{enumerate*}
\end{document}
Outro exemplo:
\documentclass[twocolumn]{article}
\begin{document}
\parbox{0pt}{\hspace{0pt}supercalifragilistic-expialidocious test}
\vfill\eject
\setbox0=\hbox{supercalifragilistic-expialidocious}
\parbox{0pt}{\hskip0pt\unhbox0\relax\space test}
\end{document}