2

I have 1 badbox: Underfull \hbox (badness 10000) in paragraph. I know where the badbox is from. If you change "BBBBBW" in the code to "BBBBB", the badbox will be gone. So maybe because LaTeX does not know how to go to a newline correctly and beautifully. Is there way to solve this?

\documentclass[a4paper,man,natbib]{apa6}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{longtable}

\title{AA}
\shorttitle{AA}
\author{AA}
\affiliation{AA}
\abstract{AA}

\begin{document}
\maketitle

\centering
\begin{longtable}{|p{.25\textwidth}|p{.20\textwidth}|p{.47\textwidth}|}
\caption{\label{tab:reading}AAA.}
\\ \hline
AAAAAAAAAA & AAAA BBBBBW & AAA \\ \hline
\end{longtable}
\end{document}
2
  • Add \raggedright at the beginning of the column data (as in AAAAAAAAAA & \raggedright AAAA BBBBBW & AAA \\ \hline ). Essentially, because a single word only fits on the line, it cannot space the words for full alignment. Thus, the underfull box. Making the right margin ragged eliminates the imperative to fully align the column. Oct 28, 2015 at 1:17
  • Hi @StevenB.Segletes Is there a smart way? because I have a really big table, so I got over 50 badbox. And I don't know which cell is. Thanks Oct 28, 2015 at 1:52

1 Answer 1

2

In a comment to the OP, I identified the source of the underfull \hbox as a problem in trying to enforce full alignment on a narrow column where only one word fit within the column width. In that case, full alignment could not be achieved and an underfull box resulted. The proposed solution was to define the cell as \raggedright.

The OP then asked if there was a way to automate this solution for the longtable, as it was large, with many such box issues. The solution I propose here is to define a new column type (I call it P) which invokes \raggedright and other stuff necessary to handle all columns. (I coincidentally grabbed the column type definition from this unrelated question: Making LaTeX tabular environment behave well under copy/paste)

\documentclass[a4paper,man,natbib]{apa6}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{longtable}

\usepackage{array}
\newcolumntype{P}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}


\title{AA}
\shorttitle{AA}
\author{AA}
\affiliation{AA}
\abstract{AA}

\begin{document}
\maketitle


\begin{longtable}{|P{.25\textwidth}|P{.20\textwidth}|P{.47\textwidth}|}
\caption{\label{tab:reading}AAA.}
\\ \hline
AAAAAAAAAA & AAAA BBBBBW & AAA \\ \hline
\end{longtable}
\end{document}
3
  • Hi Steven, this is sooooo cool! Thank you so much! [P.S. It shows another "Overfull \hbox (1.36171pt too wide)", but just need change .47 to .46.] Oct 28, 2015 at 2:39
  • @HongboMiao You are very welcome. Best wishes! Oct 28, 2015 at 2:40
  • All contents in the table shows beautiful now! Thanks! Oct 28, 2015 at 2:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .