Tabularx usando alinhamento X com tamanhos variados

Tabularx usando alinhamento X com tamanhos variados

Eu estava usando a técnica descritaaquimas obtive um resultado estranho na imagem (perto do cursor).

Alguma idéia de por que e como isso pode ser resolvido?

insira a descrição da imagem aqui

\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}

Responder1

Como @DavidCarlisle já mencionou, a soma das larguras deve somar 3X porque você tem 3 colunas. Portanto, se você precisar da coluna 3, por exemplo, 0.08\textwidthvocê deve definir \hsize=3*0.08 approx 0.25\hsizena especificação for \newcolumntype{v}.

Meu conselho, entretanto, é simplificar o problema usando apenas a pcoluna. Veja as duas opções abaixo:

%\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}

insira a descrição da imagem aqui

Responder2

Eu acho que você quer três Xcolunas, as duas últimas tendo largura igual a 1/5 da largura da primeira coluna. Neste caso as razões α e β, algo como coordenadas baricêntricas, devem satisfazer as equações α = 5β, α + 2β =3, ou seja, α=15/7, β=3/7. Uma aproximação é 2.15e 0.425respectivamente.

Então eu acho que você está atrás disso:

\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}

insira a descrição da imagem aqui

Responder3

Como você conhece as proporções de suas colunas, ou seja, a primeira coluna deve ser quatro vezes as outras duas, você pode simplesmente fazer algumas contas, que você precisa fazer de tabularxqualquer maneira.

\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} 

Então você só precisa dividir 1 em partes proporcionais a 4, 1 e 1, então 4/6, 1/6 e 1/6.

insira a descrição da imagem aqui

informação relacionada