创建具有粗体对齐标题和自动调整列宽的表格

创建具有粗体对齐标题和自动调整列宽的表格

我想创建一个 2 列表格,标题为粗体,居中对齐,行左对齐。由于左列包含较长的文本,因此我希望文本的宽度能够根据页面宽度自动调整,以便整个表可以轻松放入页面中。

下面是除了调整列宽之外完成所有操作的代码。

\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|}
\hline
\multicolumn{1}{|c|}{\textbf{Column 1}}                                                                                                                         
& \multicolumn{1}{c|}{\textbf{Column 2}} \\ \hline
long text long text long text long text long text long text long text long 
text long text long text long text long text long text long text long text 
long text & Row 1                                  \\ \hline
\end{tabular}
\end{table}

我知道 tabularx 可以做到这一点。但不知道如何做到这一点。有什么帮助吗?

答案1

你可以这样使用tabularx

\documentclass[]{article}

\usepackage{tabularx}

\begin{document}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{|X|X|}
\hline
\multicolumn{1}{|c|}{\textbf{Column 1}}                                                                                                                         
& \multicolumn{1}{c|}{\textbf{Column 2}} \\ \hline
long text long text long text long text long text long text long text long 
text long text long text long text long text long text long text long text 
long text & Row 1                                  \\ \hline
\end{tabularx}
\end{table}
\end{document}

如果您确信第二列不会包含太多文本,则可以将代码更改为:

\documentclass[]{article}

\usepackage{tabularx}

\begin{document}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{|X|l|}
\hline
\multicolumn{1}{|c|}{\textbf{Column 1}}                                                                                                                         
& \multicolumn{1}{c|}{\textbf{Column 2}} \\ \hline
long text long text long text long text long text long text long text long 
text long text long text long text long text long text long text long text 
long text & Row 1                                  \\ \hline
\end{tabularx}
\end{table}
\end{document}

tabularx环境中,您可以使用第一个参数定义表的宽度,并且可以使用列说明符X,该列说明符占用尽可能多的空间来填充指定的宽度。

此外,我会通过不使用垂直线并利用包来增强表格的视觉效果booktabs

\documentclass[]{article}

\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}
\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabularx}{\linewidth}{X l}
\toprule
\multicolumn{1}{c}{\textbf{Column 1}}                                                                                                                         
& \multicolumn{1}{c}{\textbf{Column 2}} \\
\midrule
long text long text long text long text long text long text long text long 
text long text long text long text long text long text long text long text 
long text & Row 1                                  \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

在此处输入图片描述

第四种变体,提供与第二种类似的结果,但是具有固定宽度的列(我只tabularx在这里放置环境,而不是完整的 MWE):

\begin{tabularx}{\linewidth}{|X|p{2cm}|}
    \hline
    \multicolumn{1}{|c|}{\textbf{Column 1}}                                                                                                                         
    & \multicolumn{1}{c|}{\textbf{Column 2}} \\ \hline
    long text long text long text long text long text long text long text long 
    text long text long text long text long text long text long text long text 
    long text & Row 1                                  \\ \hline
\end{tabularx}

相关内容