我想创建一个 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}