![Tabularx 使用不同大小的 X 对齐](https://linux22.com/image/348335/Tabularx%20%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E5%A4%A7%E5%B0%8F%E7%9A%84%20X%20%E5%AF%B9%E9%BD%90.png)
我正在使用描述的技术这里但我得到了图片中显示的奇怪结果(靠近光标)。
有什么想法可以解释为什么会这样以及怎样解决?
\documentclass[12pt,openright,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{times}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\usepackage{footnote}
\makesavenoteenv{tabular}
\makesavenoteenv{table}
\usepackage{geometry}
\geometry{margin=0.8in}
%for notes
\usepackage[show]{chato-notes}
\definecolor{light-gray}{gray}{0.65}
\definecolor{very-light-gray}{gray}{0.80}
\newcolumntype{b}{X}
\newcolumntype{s}{>{\hsize=.2\hsize}X}
\newcolumntype{v}{>{\hsize=.05\hsize}X}
\begin{document}
\date{}
\maketitle
\begin{table}[htbp]
\centering
%\begin{tabularx}{\textwidth}{| X | X | X |}
\begin{tabularx}{\textwidth}{|b|s|s|}
\hline
Alpha & Beta & Gamma \\ \hline
0 & 2 & 4 \\ \hline
1 & 3 & 5 \\ \hline
\end{tabularx}
\end{table}
\end{document}
答案1
正如@DavidCarlisle 已经提到的,宽度总和应该为 3X,因为您有 3 列。因此,如果您需要第 3 列,例如,您应该在规范中0.08\textwidth
设置。\hsize=3*0.08 approx 0.25\hsize
\newcolumntype{v}
不过,我的建议是使用列来简化问题p
。请参阅以下两个选项:
%\newcolumntype{b}{>{\hsize=2.15\hsize}X}
%\newcolumntype{s}{>{\hsize=0.6\hsize}X}
%\newcolumntype{v}{>{\hsize=0.25\hsize}X}
\begin{table}[htbp]
\centering
%\begin{tabularx}{\textwidth}{|b|s|v|} % <= This solution
\begin{tabularx}{\textwidth}{|X|p{.2\textwidth}|p{.08\textwidth}|} % <= Or this
\hline
Alpha & Beta & Gamma \\ \hline
0 & 2 & 4 \\ \hline
1 & 3 & 5 \\ \hline
\end{tabularx}
\end{table}
答案2
我猜你想要三X
列,后两列的宽度等于第一列宽度的 1/5。在这种情况下,比率 α 和 β 有点像重心坐标,必须满足方程 α = 5β、α + 2β =3,即 α=15/7、β=3/7。近似值为2.15
和0.425
。
所以我认为你追求的是这个:
\documentclass[12pt,openright,twoside]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\usepackage{geometry}
\geometry{margin=0.8in, showframe}
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabularx}{\textwidth}{|>{\hsize=2.15\hsize}X|>{\hsize=.425\hsize}X|>{\hsize=.425\hsize}X|}
\hline
Alpha & Beta & Gamma \\ \hline
0 & 2 & 4 \\ \hline
1 & 3 & 5 \\ \hline
\end{tabularx}
\end{table}
\end{document}
答案3
因为您知道各列的比例,即第一列应该是其他两列的四倍,所以您可以简单地进行一些数学运算,无论如何您都需要这样做tabularx
。
\documentclass{article}
\usepackage{array}
% The available space is \textwidth
% minus twice the number of columns \tabcolsep spaces
% minus one more than the number of columns \arrayrulewidth
%
% The first two arguments to P are numerator and denominator
% and the third argument is the number of columns
% In this case the fractions are 4/6, 1/6 and 1/6
\newcolumntype{P}[3]{%
p{#1\dimexpr(
\textwidth-
\tabcolsep*\numexpr2*#3\relax-
\arrayrulewidth*\numexpr#3+1\relax
)/#2%
}%
}
\begin{document}
\noindent
X\dotfill X
\noindent
\begin{tabular}{|P{4}{6}{3}|P{1}{6}{3}|P{1}{6}{3}|}
\hline
Alpha & Beta & Gamma \\ \hline
0 & 2 & 4 \\ \hline
1 & 3 & 5 \\ \hline
\end{tabular}
\end{document}
因此,您只需将 1 分成与 4、1 和 1 成比例的部分,即 4/6、1/6 和 1/6。