我想创建一个横跨整个页面宽度的表格,其中一列的大小是另一列大小的一半。正如建议的那样这里,我使用tabularx
它。但是,出于某种原因,我的表格不想跨越整个页面。在下面的 MWE 中,我为顶行指定了一种颜色,这样可以直观地看到最后一列的单元格宽度不合适。
\documentclass{article}
\usepackage{colortbl}
\usepackage{tabularx}
\newcolumntype{Y}{>{\hsize=0.5\hsize}X} % Half the size of X.
\begin{document}
\begin{tabularx}{\linewidth}{XXY} % E.g., XYY does work...
\hline
% The first row is given a color to clearly show the cell width.
\rowcolor{blue} A & B & Lorem ipsum dolor sit amet\\ \hline
a & b & c \\ \hline
\end{tabularx}
\end{document}
正如代码中看到的,我使用X
表示普通列,并Y
使用 表示半尺寸列。当我使用 columns 时XYY
,它似乎有效。因此,对我来说,它似乎相当随机。有人能解释一下哪里出了问题吗?按我想要的方式创建列的正确方法是什么(即 40%、40%、20%)?
答案1
您只是误用了 中的系数\hsize=...
:它们实际上不是比例系数,而是重心系数,即它们的总和必须等于 X 型柱的总数。换句话说,在这里,您必须求解线性系统:2x+y=3,x=2y。
将您的系数结果与正确系数的结果进行比较。我添加了垂直规则以可视化每列的确切宽度:
\documentclass{article}
\usepackage{colortbl}
\usepackage{tabularx}
\newcolumntype{Y}{>{\hsize=0.5\hsize}X} % Half the size of X.
\begin{document}
\begin{tabularx}{\linewidth}{XXY} % E.g., XYY does work...
\hline
% The first row is given a color to clearly show the cell width.
\rowcolor{blue} A & B & Lorem ipsum dolor sit amet\\ \hline
a & b & c \\ \hline
\end{tabularx}
\end{document}