我有以下代码:
\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
来实现。在 中tabularx
,X
将扩展列以适应所需的大小。
例如:
\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}