我有以下表格代码
\begin{center}
\begin{table}[htbp]
\begin{tabularx}{\textwidth}{|>{\hsize=1.5\hsize}X|c|c|c|c|c|c|c|}
\hline
\textbf{Recursos} & \textbf{Unidad de Medida} & \textbf{Precio Unitario (Bs/UM)} & \textbf{Cantidad Total Requerida} & \textbf{Monto (Bs)} & \multicolumn{3}{c|}{\textbf{Fuente}} \\
\cline{6-8}
& & & & & \textbf{Recursos Propios} & \textbf{Universidad} & \textbf{Empresa} \\
\hline
& & & & & & & \\
\hline
& & & & & & & \\
\hline
\end{tabularx}
\caption{Ejemplo de tabla con el formato deseado.}
\label{tabla:ejemplo}
\end{table}
\end{center}
我试图让我的表格看起来像这样(我在 word 中制作的示例)
我该如何修复我的代码?
答案1
通过使用环境,您可以为表格tabularx
指定一个总体目标宽度(比如说),这样就走在了正确的轨道上。\textwidth
仍然需要的是允许在所有 8 列中换行,而不仅仅是第一列。您还需要允许在标题中使用连字符。以下代码实现了这些目标。请注意,所有 8 列都分配了相同的宽度;如果此设置不适合您实际的表格或不适合您,请告诉我——哪种宽度分配更合适。
该代码还提供了一个名为的实用宏\mytab
,用于在 4 个标题单元格中排版材料。
最后,请考虑省略所有垂直线(相信我,它们不会被忽略),并使用更少但间距适当的水平线。也没有必要粗体标题单元格的内容。进行这些调整的结果将使表格具有更加开放和吸引人的“外观”。
\documentclass{article} % or some other suitable document class
\usepackage[letterpaper,margin=1in]{geometry} % set page parameters as needed
\usepackage[spanish,es-tabla]{babel}
\usepackage[T1]{fontenc}
\usepackage{tabularx} % for 'tabularx' env. and 'X' col. type
\usepackage{ragged2e} % for '\RaggedRight' and '\Centering' macros
\usepackage{booktabs} % for well-spaced horizontal rules
%% define two variants of the 'X' col. type:
\newcolumntype{L}{>{\RaggedRight\hspace{0pt}}X}
\newcolumntype{C}{>{\Centering\hspace{0pt}}X}
\usepackage{amsmath} % for '\smash[b]' macro
\newcommand\mytab[1]{\smash[b]{%
\begin{tabular}[t]{@{}C@{}} #1 \end{tabular}}}
\begin{document}
\begin{table}[htbp] % do _not_ encase it in a 'center' env.
\begin{tabularx}{\textwidth}{@{} L *{7}{C} @{}}
\toprule
Recursos
& \mytab{Unidad de Medida}
& \mytab{Precio Unitario (Bs/UM)}
& \mytab{Cantidad Total Requerida}
& \mytab{Monto (Bs)}
& \multicolumn{3}{c@{}}{Fuente} \\
\cmidrule(l){6-8}
& & & & & Recursos Propios & Universidad & Empresa \\
\midrule
abd \dots & def & & & & & & \\
\addlinespace
uvw \dots & xyz & & & & & & \\
\bottomrule
\end{tabularx}
\caption{Ejemplo de tabla con el formato deseado.}
\label{tabla:ejemplo}
\end{table}
\end{document}