表格和 tabularx

表格和 tabularx

我有以下代码:

\begin{tabularx}{1\textwidth}{|c||p{4cm}||p{3cm}|}
\hline
\textsc{\textbf{Nombre}} & \textsc{\textbf{Ancho de banda con compresión}} & \textsc{\textbf{Ancho de banda sin compresion}} \\ \hline
H.261 & 40 Kbits/s & 2 Mbits/s \\ \hline
H.263 & 64 Kbits/s & 583.9 Mbits/s \\ \hline
H.263p & 64 Kbits/s & 583.9 Mbits/s \\ \hline
H.264 & 64 Kbits/s & 960 Mbit/s \\ \hline
\end{tabularx}

我的问题是我不知道为什么它给我这个输出: 乳胶

为什么会出现黄色区域?

提前致谢。

答案1

我不明白为什么使用\tabularx而不使用X列类型...如果您希望表格宽度等于\textwidth,那么就利用tabularx这些功能!

无论如何,看看以下解决方案是否是您想要的:

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{newtxtext,newtxmath}

    \usepackage{makecell,tabularx}
    \renewcommand\theadfont{\bfseries\scshape}
    \usepackage{siunitx}

    \begin{document}
\begin{tabularx}{\textwidth}{|X||X||S[table-format=3.2]@{}X<{Mbits/s}|}
                                    \hline
\thead{Nombre} 
        & \thead{Ancho de banda\\ con compresión} 
                     & \multicolumn{2}{c|}{
                       \thead{Ancho de banda\\ sin compresion}} 
                               \\   \hline
H.261   & 40 Kbits/s &   2   & \\   \hline
H.263   & 64 Kbits/s & 583.9 & \\   \hline
H.263p  & 64 Kbits/s & 583.9 & \\   \hline
H.264   & 64 Kbits/s & 960   & \\   \hline
\end{tabularx}
    \end{document}

在其中,我从 Mico 答案中窃取了字体问题,使用makecell包来设置列标题,并使用S来自的列来设置第三列中的数字siunitx

替代解决方案,如对 Mico 评论的回复:

在此处输入图片描述

在这种情况下,代码需要稍加修改:

\documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage[spanish]{babel}
    \usepackage{newtxtext,newtxmath}

    \usepackage{makecell,tabularx}
    \renewcommand\theadfont{\bfseries\scshape}
    \usepackage{siunitx}

    \begin{document}
\begin{tabularx}{\textwidth}{|@{\quad}l||
           >{\centering\arraybackslash}X||S[table-format=9.2]@{}l<{Mbits/s\qquad\qquad}|}
                                    \hline
\thead{Nombre}
        & \thead{Ancho de banda\\ con compresión}
                     & \multicolumn{2}{c|}{
                       \thead{Ancho de banda\\ sin compresion}}
                               \\   \hline
H.261   & 40 Kbits/s &   2   & \\   \hline
H.263   & 64 Kbits/s & 583.9 & \\   \hline
H.263p  & 64 Kbits/s & 583.9 & \\   \hline
H.264   & 64 Kbits/s & 960   & \\   \hline
\end{tabularx}
    \end{document}

答案2

您要求表格长度为,\textwidth但不调整列的大小。您可以使用X来实现。在 中tabularxX将扩展列以适应所需的大小。

例如:

\documentclass{article}
\usepackage{tabularx}
\begin{document}

\begin{tabularx}{1\textwidth}{|X||p{4cm}||p{3cm}|}
\hline
\textsc{\textbf{Nombre}} & \textsc{\textbf{Ancho de banda con compresión}} & \textsc{\textbf{Ancho de banda sin compresion}} \\ \hline
H.261 & 40 Kbits/s & 2 Mbits/s \\ \hline
H.263 & 64 Kbits/s & 583.9 Mbits/s \\ \hline
H.263p & 64 Kbits/s & 583.9 Mbits/s \\ \hline
H.264 & 64 Kbits/s & 960 Mbit/s \\ \hline
\end{tabularx}
\end{document}

输出:

在此处输入图片描述

答案3

除了在环境中提供至少一个 type-X 列之外tabularx,您还应该

  • 使用实际上提供粗体小写字母的字体系列(Computer Modern 没有),并且

  • 不要在窄列中使用完全对齐,因为这样做几乎肯定会在单词之间产生不可接受的大间隙;相反,在窄列中使用右对齐模式

  • 努力使表格看起来更加“开放”,通过(i)不使用任何垂直条,(ii)去掉大部分水平线,以及(iii)使用包的线条绘制宏来绘制booktabs剩下的几条水平线。

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

% Use a font family that provides bold&smallcaps glyphs
\usepackage{newtxtext,newtxmath}     
\usepackage{booktabs,ragged2e}

% ragged-right version of "p" column type
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash}p{#1}} 

\begin{document}
\noindent
\begin{tabularx}{1\textwidth}{X P{3cm} P{3cm}}
\toprule
\textsc{\textbf{Nombre}} & 
\textsc{\textbf{Ancho de banda con compresión}} & 
\textsc{\textbf{Ancho de banda sin compresión}} \\
\midrule
H.261 & 40 Kbits/s & 2 Mbits/s \\ 
H.263 & 64 Kbits/s & 583.9 Mbits/s \\ 
H.263p & 64 Kbits/s & 583.9 Mbits/s \\ 
H.264 & 64 Kbits/s & 960 Mbit/s \\ 
\bottomrule
\end{tabularx}
\end{document} 

相关内容