Latex 表格中的文本换行

Latex 表格中的文本换行

我需要知道如何在 MWE 中换行。我已经看过一些关于此问题的回答。但这只会让我更加困惑。我是 Latex 的初学者。我需要在 A4 文档的 A3 页中提供表格。我还没有在 MWE 中添加它。MWE 是:

\documentclass[12pt]{report} 
\usepackage{float}
\begin{document}
\begin{table}[H]
    \centering
    \caption{Indirect Include Dependency for Sched Module}
    \begin{tabular}{|l|l|l|l|l|l|l|l|l|}
    \hline
    \textbf{Modules} & \textbf{sched.h} & \textbf{completion.h} &    \textbf{cpu.h} & \textbf{cpuidle.h} & \textbf{kernel\_stat.h} & \textbf{swait.h} & \textbf{wait.h} & \textbf{Total} \\ \hline
    arch & 984 & 15 & 214 & 20 & 106 & 1 & 49 & \textbf{1 389} \\ \hline
    block & 1 & 2 & 3 &  & 1 &  & 1 & \textbf{8} \\ \hline
    \end{tabular}
    \end{table}
\end{document}

答案1

我建议您将环境内的字体大小更改table\footnotesize并使用tabular*环境而不是环境tabular,以确保表格占据文本块的宽度。我会使用c列类型来表示 8 个数据列,并且我将不是使用大胆的在标题行中。最后,通过删除所有垂直线并使用较少但间距适当的水平线,使表格看起来更加开放。

在此处输入图片描述

\documentclass[12pt,a4paper]{report} 
\usepackage{booktabs,caption}
\begin{document}

\begin{table}
\captionsetup{font=small,skip=0.25\baselineskip}
\caption{Indirect Include Dependency for Sched Module}
\footnotesize
\setlength\tabcolsep{0pt} % let LaTeX figure out intercolumn whitespace

    \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l *{8}{c} }
    \toprule
    Modules & sched.h & completion.h & cpu.h & cpuidle.h & 
    kernel\_stat.h & swait.h & wait.h & Total \\ 
    \midrule
    arch & 984 & 15 & 214 & 20 & 106 & 1 & 49 & \textbf{1 389} \\ 
    %\hline
    block & 1 & 2 & 3 &  & 1 &  & 1 & \textbf{8} \\ 
    \bottomrule
    \end{tabular*}

\end{table}
\end{document}

答案2

根据你编译的 MWE,我假设你的意思是你希望表格适合一页,因为它现在实际上并没有这样做,而且列中没有任何需要换行的实际文本(例如多个单词或一个句子或类似的东西)。在这种情况下,我使用包graphicxresizebox{}{}{}来执行此操作。resizebox接受参数resizebox{<height>}{<width>}{<box_content>},你可以保留纵横比,同时通过给出!第一个参数和\textwidth第二个参数(或你想要的任何特定大小)将框调整为文本。基于此,你的 MWE 将是:

\documentclass[12pt]{report} 
\usepackage{float}
\usepackage{graphicx}%%Add graphicx
\begin{document}
    \begin{table}[!htbp] %%unless you have to specify a position, I find it best to let LaTeX decide
    \centering
    \caption{Indirect Include Dependency for Sched Module}
    \resizebox{\textwidth}{!}{ %%begin resize box
        \begin{tabular}{|l|l|l|l|l|l|l|l|l|}
        \hline
        \textbf{Modules} & \textbf{sched.h} & \textbf{completion.h} &    
        \textbf{cpu.h} & \textbf{cpuidle.h} & \textbf{kernel\_stat.h} & 
        \textbf{swait.h} & \textbf{wait.h} & \textbf{Total} \\ \hline
        arch & 984 & 15 & 214 & 20 & 106 & 1 & 49 & \textbf{1 389} \\ 
        \hline
        block & 1 & 2 & 3 &  & 1 &  & 1 & \textbf{8} \\ \hline
\end{tabular}
}%%Important to close your box!!
\end{table}
\end{document}

答案3

在此处输入图片描述

threeparttable启用注释,其中解释了较长列标题所用缩写的含义。通过使用缩写,表格中的字体可以保持正常大小。siunitx列中的数字右对齐但在单元格中居中:

\documentclass[12pt,a4paper]{report}
\usepackage{booktabs,tabularx,threeparttable}
\usepackage{siunitx}
\usepackage{caption}

\usepackage{etoolbox}
\renewcommand{\bfseries}{\fontseries{b}\selectfont} % <--
\robustify\bfseries                                 % <--
\newrobustcmd{\BF}{\bfseries}                       % <-- schortcut

%-------------------------------- show page layout, only for test
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
    \begin{table}
\captionsetup{font=small,skip=0.25\baselineskip}
\sisetup{detect-weight,
         mode=text,
         group-minimum-digits=4,
          }
\begin{threeparttable}[htb]
    \caption{Indirect Include Dependency for Sched Module}
\setlength\tabcolsep{3pt}
    \begin{tabular*}{\textwidth}{l
                                 @{\extracolsep{\fill}}
                                 S[table-format=3.0]
                                 S[table-format=2.0]
                                 S[table-format=3.0]
                                 S[table-format=2.0]
                                 S[table-format=3.0]
                            *{2}{S[table-format=2.0]}
                                 S[table-format=4.0]
                                 }
    \toprule
Modules & {sched.h}         & {comp.\tnote{a}}
        & {cpu.h}           & {cpuidle.h}
        & {k\_s\tnote{b}}   & {swait.h }
        & {wait.h}          & {Total}                       \\
\midrule
arch    & 984 & 15 & 214 & 20 & 106 & 1 & 49 & \BF   1 389  \\
block   &   1 &  2 &   3 &    & 1   &   &  1 & \BF       8  \\
\bottomrule
    \end{tabular*}
    \begin{tablenotes}[para,flushleft]\small
\item[a] comp.: completion.h;
\item[b] k\_s:  kernel\_stat.h.
    \end{tablenotes}
\end{threeparttable}
    \end{table}
\end{document}

相关内容