关于python:避免longtable中的\vbox和\hbox未满?

关于python:避免longtable中的\vbox和\hbox未满?

我想使用 longtable(因为表包含多个页面),但是我收到很多错误:

Underfull \hbox (badness 2005) in paragraph at lines 22--23
\TU/lmr/m/n/10 menampilkan nilai \TU/lmr/m/it/10 vari-

Overfull \hbox (56.43303pt too wide) in alignment at lines 8--27
 [] [] [] [] [] 

我已经把表格缩小了,但没有任何效果。我也尝试添加,@{}但没有成功。我试过解决方案。黑色的溢出条消失了,但错误仍然存​​在。这是因为 latex 需要强制我的表格内容换行吗?出现所有这些警告可以吗?

这是我的 MWE

\documentclass{report}

\usepackage{longtable} % add table
\overfullrule=2cm % show overfull

\begin{document}

\begin{longtable}[c]{|p{1cm}|p{4cm}|p{4cm}|p{2cm}|p{1cm}|}
  \hline
  \textbf{No.\newline Jalur} & \textbf{Prosedur Uji} &
                                                    \textbf{\emph{Expected Result}}
  & \textbf{\emph{Result}} & \textbf{Status} \\\hline
  %
  1 & Menjalankan \emph{ssh\_out\_stream} dengan \emph{exit\_status\_ready()} bernilai
      \emph{true} & \emph{ssh\_out\_stream} akan berhenti berjalan & \emph{As expected} & Valid \\\hline
      %
  2 & Menjalankan \emph{ssh\_out\_stream} dengan \emph{variable} \emph{length} bernilai
      lebih kecil dari 0 & \emph{ssh\_out\_stream} tidak akan menampilkan nilai \emph{variable} \emph{length}
  & \emph{As expected} & Valid \\\hline
  %
  3 & Menjalankan \emph{ssh\_out\_stream} dengan \emph{variable} \emph{length} bernilai
      lebih besar dari 0 & \emph{ssh\_out\_stream} akan menampilkan nilai \emph{variable} \emph{length}
  & \emph{As expected} & Valid \\\hline
  %
  \caption{Pengujian \emph{unit} \emph{ssh\_out\_stream}}
  \label{jalur:ssh_out_stream}
\end{longtable}

\end{document}

在此处输入图片描述

先感谢您

答案1

  • 你的表格比文本区域宽得多,
  • 您可以使用包来增加文本宽度geometry,或者定义更窄的第二列和第三列(后者不推荐)
  • 第一列和最后一列的宽度太小,最好使用自然列宽(参见下面的 mwe)
  • 第二列的宽度太小,无法很好地将 oc 单元格列装入其单元格中
  • 使用该ragged2e包,您可以更好地对齐单元格中的文本。
  • 对于列标题,我建议使用包\thead中的宏makecell
  • 单元格周围有更多垂直空间,您还可以通过宏\makegappedcells从包中获取内容\makecell

无关

  • 表格标题,特殊部分longtable应位于表格顶部

    \documentclass{report}
    \usepackage{geometry}   % new
    
    \usepackage{ragged2e}
    \usepackage{longtable,
                makecell}   % new
    \newcolumntype{L}[1]{>{\RaggedRight}p{#1}}  % new
    \renewcommand\theadfont{\small\bfseries}    % new
    \setcellgapes{3pt}                          % new
    \overfullrule=2cm % show overfull
    
    %-------------------------------------- only for show page layout
    \usepackage{showframe}
    \renewcommand\ShowFrameLinethickness{0.25pt}
    \renewcommand*\ShowFrameColor{\color{red}}
    %---------------------------------------------------------------%
    
    \begin{document}
    
    {\makegapedcells    % new
     \begin{longtable}{|c|L{5cm}|L{4cm}|>{\itshape}L{2cm}|c|}   % changed
    \caption{Pengujian \emph{unit} \emph{ssh\_out\_stream}}
        \label{jalur:ssh_out_stream}                \\
        \hline
    \thead{No.\\ Jalur}
        &   \thead{Prosedur\\ Uji}
                &   \itshape\thead{Expected\\ Result}
                    &   \thead{Result}
                        &   \thead{Status}          \\
        \hline
      %
    1   &   Menjalankan \emph{ssh\_out\_stream} dengan \emph{exit\_status\_ready()} bernilai \emph{true}
            &   \emph{ssh\_out\_stream} akan berhenti berjalan
                &   As expected         & Valid \\
        \hline
    2   & Menjalankan \emph{ssh\_out\_stream} dengan \emph{variable} \emph{length} bernilai lebih kecil dari 0
            &   \emph{ssh\_out\_stream} tidak akan menampilkan nilai \emph{variable} \emph{length}
                &   As expected         & Valid      \\
        \hline
    3   & Menjalankan \emph{ssh\_out\_stream} dengan \emph{variable} \emph{length} bernilai lebih besar dari 0
            &   \emph{ssh\_out\_stream} akan menampilkan nilai \emph{variable} \emph{length}
                &   As expected         & Valid      \\
    \end{longtable}
    }
    

在此处输入图片描述

(红线表示文本边框)

相关内容