行番号で不足している \vbox (不良度 10000) が検出されました

行番号で不足している \vbox (不良度 10000) が検出されました

以下のようなそれほど複雑ではないテーブルがあるのですが、常に「Underfull \vbox (badness 10000) が 127 行目で検出されました」というエラーが発生します。再現できるといいのですが。原因と修正方法をご存知の方はいらっしゃいますか? これは単なる例で、1 つのファイルに約 100 個のテーブルがある可能性があり、最初に修正したいと思います。

\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\usepackage{geometry}
\usepackage[parfill]{parskip}  
\geometry{letterpaper} 
\usepackage{graphicx}   
\usepackage{longtable}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{colortbl, xcolor}
\usepackage{amssymb}
\usepackage{enumitem}
\usepackage{float}
\usepackage{color}
\usepackage{multirow}
\usepackage{epstopdf}
   \hfuzz=\maxdimen
   \tolerance=10000
   \hbadness=10000


\begin{document}
\begin{longtable}{rL{2cm}L{3.5cm}L{2cm}L{4cm}L{1.8cm}}
  \hline
 & Variable & Description & Type & Values & Missing \\ 
  \hline
1 & sid & child id & string &  &  \\ 
   \rowcolor[gray]{0.8}2 & specnum & specimen number  & string &  &  \\ 
  3 & specseq & specimen sequence & string &  &  \\ 
   \rowcolor[gray]{0.8}4 & spectype & specimen type  & string &  &  \\ 
  5 & vstnum & visit number & integer &  &  \\ 
   \rowcolor[gray]{0.8}6 & vstwk & visit week & string &  &  \\ 
  7 & vstdetail & visit details  & string &  &  \\ 
   \rowcolor[gray]{0.8}8 & lps & α lps gmu/ml (endocab) & integer &  -9= missing & -9 \\ 
  9 & rept & do you need to repeat sample? & categorical & 1 = yes, 2 = no &  \\ 
   \rowcolor[gray]{0.8}10 & resn & reason for repeating & categorical & 3=sample out of range, 4 = assay failed, -9 = not applicable & -9 \\ 
  11 & comnt & comment & string &  &  \\ 
   \rowcolor[gray]{0.8}12 & specdt & date of specimen collection dd/mm/yy & date &  & 1999-09-09 \\ 
  13 & assydt & date assay performed dd/mm/yy & date &  & 1999-09-09 \\ 
   \rowcolor[gray]{0.8}14 & dedt & date entered & date &  & 1999-09-09 \\ 
  15 & qcdt & date checked & date &  & 1999-09-09 \\ 
   \rowcolor[gray]{0.8}16 & batch & assay batch \# & integer &  &  \\ 
  17 & version & batch version & string &  &  \\ 
   \rowcolor[gray]{0.8} \hline
\hline
\end{longtable}
\end{document}

答え1

箱が満杯でないという警告は単なる警告であり、エラーではありません。

\documentclass[landscape]{article}



\usepackage{longtable}

\addtolength\textwidth{120pt}


\usepackage[T1]{fontenc}


\usepackage{array}

\showoutput
\newcolumntype{L}[1]{>{\raggedright\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash\hspace{0pt}}m{#1}}



\begin{document}

\begin{longtable}{rL{2cm}L{3.5cm}L{2cm}L{4cm}L{1.8cm}}
\hline
1 & sid & child id & string &  &  
\end{longtable}


\end{document}

上記は、不足しているボックスが、ベースライン スキップの高さにしようとしている空白行であるが、0.4 ポイントの高さのルールのみが含まれていることを示しています\hline

これは明らかに longtable パッケージの文書化されていない機能です。パッケージの作成者に責任があると思います。

答え2

David Carlisle の例によると、上部/下部の hlines を head/foot として配置すると、underfull 警告を回避できます。

\begin{longtable}{rL{2cm}L{3.5cm}L{2cm}L{4cm}L{1.8cm}}
\hline
\endhead
\hline
\endfoot
1 & sid & child id & string &  &  
\end{longtable}

私の場合、まったく同じ表を 4 つのドキュメントにインポートしたのに、1 つだけが不足メッセージを生成するのは奇妙でした。これは、ページを埋めるために表が周囲のテキスト (ドキュメントごとに異なります) とどのように適合するかに関係しているに違いありません。

関連情報