\newcommand cria underfull\hbox (badness 10000) no parágrafo

\newcommand cria underfull\hbox (badness 10000) no parágrafo

Tenho um documento de 2 colunas com caixas repetidas.

Então criei essas macros (não se importe com as cores e a altura da caixa):

% -------------------------------------------------------
% aitparagraph
%
% gives header and content with proper size and color
% for an arbitrary box
%
\newcommand{\aitparagraph}[2]{
    \vspace{0.5cm}
    {\Large \bf \textcolor{AITred}{#1}} \\[10pt] {#2}
}


% -------------------------------------------------------
% aitbox
%
% a single box 
%
\newcommand{\aitbox}[2]{
    \begin{minipage}[t]{\hsize}
        \fcolorbox{AITgray}{white}{
            \begin{minipage}[t]{0.92 \hsize}
                \vbox to \the\boxheight{
                    \aitparagraph{#1}{#2}
                    \vfill
                }
             \end{minipage}
        }
    \end{minipage}
}

Ao usar essas macros no meu documento assim:

\begin{multicols}{2}

\aitbox{FIRSTBOX}{

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. 

}

\columnbreak

\begin{minipage}[t]{\hsize}
    \fcolorbox{AITgray}{white}{
        \begin{minipage}[t]{0.92 \hsize}
            \vbox to \the\boxheight{
                \aitparagraph{SECOND}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.}
                \vfill
            }
         \end{minipage}
    }
\end{minipage}

\end{multicols}

A primeira caixa ("FIRSTBOX") me dá "Undefull \hbox (maldade 10000) no parágrafo)", enquanto a versão pura sem macro é renderizada sem qualquer reclamação.

Utilizar a macro apresenta este aviso. Por que? Como posso me livrar disso? O que estou fazendo de errado?

Responder1

Não vou criticar todo o seu código, apenas aconselho você a ler aqui por algum tempo para aprender com os homens e mulheres sábios ;-)

Em relação às Undefull \hboxmensagens, existem dois problemas:

  1. Na sua macro, você está introduzindo um caractere de espaço após a segunda minipágina. Não tenho muita certeza de por que isso é um problema, mas comentar o espaço faz com que o aviso desapareça (digitar espaço após a minipágina no exemplo não macro não produz um aviso; não me pergunte...)
  2. Ao utilizar sua macro, você está iniciando um novo parágrafo (causado pela linha vazia) imediatamente após a quebra produzida pela \\macro in \aitparagraph, causando o segundo aviso.

Portanto, as alterações mínimas necessárias para que ambos os avisos desapareçam são:

% -------------------------------------------------------
% aitparagraph
%
% gives header and content with proper size and color
% for an arbitrary box
%
\newcommand{\aitparagraph}[2]{
    \vspace{0.5cm}
    {\Large \bf \textcolor{red}{#1}} \\[10pt] {#2}
}


% -------------------------------------------------------
% aitbox
%
% a single box 
%
\newcommand{\aitbox}[2]{
    \begin{minipage}[t]{\hsize}
        \fcolorbox{green}{white}{
            \begin{minipage}[t]{0.92 \hsize}
                \vbox{
                    \aitparagraph{#1}{#2}
                    \vfill
                }
             \end{minipage}
        }
    \end{minipage}%
}

\begin{document}

\begin{multicols}{2}

\aitbox{FIRSTBOX}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.

}

\columnbreak

\begin{minipage}[t]{\hsize}
    \fcolorbox{green}{white}{
        \begin{minipage}[t]{0.92 \hsize}
            \vbox{
                \aitparagraph{SECOND}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.}
                \vfill
            }
         \end{minipage}
    }
\end{minipage} 

\end{multicols}

Com relação ao sinal de porcentagem que introduzi, vejaQual é a utilidade dos sinais de porcentagem no final das linhas?.

Quanto ao uso de \\linhas versus linhas vazias, não consegui encontrar uma única resposta canônica, mas vejaaqui.

informação relacionada