我无法使表格的中间线居中。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{fancyhdr}
\usepackage[margin=1in]{geometry}
\usepackage[document]{ragged2e}
\usepackage{float}
\pagestyle{fancy}
\setlength{\headheight}{45pt}
\begin{table}[H]
\centering
\begin{tabular}{|cc|}
\hline
\multicolumn{2}{|c|}{Estructura tasas spot} \\ \hline
\multicolumn{1}{|c|}{Plazo} & Tasa \\ \hline
\multicolumn{1}{|c|}{0,5} & 1,3 \\ \hline
\multicolumn{1}{|c|}{1} & 2,2 \\ \hline
\multicolumn{1}{|c|}{1,5} & 2,6 \\ \hline
\multicolumn{1}{|c|}{2} & 2,9 \\ \hline
\multicolumn{1}{|c|}{2,5} & 3,2 \\ \hline
\multicolumn{1}{|c|}{3} & 4 \\ \hline
\end{tabular}
\end{table}
答案1
这里有两种等效方法来实现您的格式化目标。第一种方法使用w
列类型(由array
包提供)。第二种方法使用tabularx
环境(由tabularx
包提供)。第一种方法首先计算各个列的宽度;相反,第二种方法首先计算表格的整体宽度,然后依靠机制来tabularx
确定各个列的宽度。
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc} % that's the default nowadays
\usepackage[spanish]{babel}
\usepackage{array} % for 'w' column type
\usepackage{calc}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newlength\mylen % define a scratch length variable
\begin{document}
\begin{table}[ht]
\centering
%% method 1
\settowidth\mylen{Estructura tasas spot}
\setlength\mylen{(\mylen-2\tabcolsep-\arrayrulewidth)/2}
\begin{tabular}{|wc{\mylen}|wc{\mylen}|}
\hline
\multicolumn{2}{|c|}{Estructura tasas spot} \\ \hline
Plazo & Tasa \\ \hline
0,5 & 1,3 \\ \hline
1 & 2,2 \\ \hline
1,5 & 2,6 \\ \hline
2 & 2,9 \\ \hline
2,5 & 3,2 \\ \hline
3 & 4 \\ \hline
\end{tabular}
\medskip
%% method 2
\settowidth\mylen{Estructura tasas spot}
\addtolength\mylen{2\tabcolsep+2\arrayrulewidth}
\begin{tabularx}{\mylen}{|C|C|}
\hline
\multicolumn{2}{|c|}{Estructura tasas spot} \\ \hline
Plazo & Tasa \\ \hline
0,5 & 1,3 \\ \hline
1 & 2,2 \\ \hline
1,5 & 2,6 \\ \hline
2 & 2,9 \\ \hline
2,5 & 3,2 \\ \hline
3 & 4 \\ \hline
\end{tabularx}
\end{table}
\end{document}
答案2
使用tabularray
包和与@Mico 答案(+1)中的第二个示例相同的方法,表代码稍微短一些:
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{tabularray}
\newlength\mylen % define a scratch length variable
\begin{document}
\begin{table}[ht]
\centering
\settowidth\mylen{Estructura tasas spot}
\begin{tblr}{width=\mylen+2\tabcolsep+\arrayrulewidth,
hlines, vlines,
colspec={X[c] X[c]}
}
\SetCell[c=2]{c} Estructura tasas spot
& \\
Plazo & Tasa \\
0,5 & 1,3 \\
1 & 2,2 \\
1,5 & 2,6 \\
2 & 2,9 \\
2,5 & 3,2 \\
3 & 4 \\
\end{tblr}
\end{table}
\end{document}