Tabularx verwendet X-Ausrichtung mit unterschiedlichen Größen

Tabularx verwendet X-Ausrichtung mit unterschiedlichen Größen

Ich habe die beschriebene Technik verwendetHieraber ich habe das seltsame Ergebnis erhalten, das im Bild angezeigt wird (in der Nähe des Cursors).

Irgendwelche Ideen, warum das liegt und wie das Problem gelöst werden kann?

Bildbeschreibung hier eingeben

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

Antwort1

Wie @DavidCarlisle bereits erwähnt hat, sollte die Summe der Breiten 3X ergeben, da Sie 3 Spalten haben. Wenn Sie also beispielsweise Spalte 3 benötigen, sollten Sie dies in der Spezifikation für 0.08\textwidthfestlegen .\hsize=3*0.08 approx 0.25\hsize\newcolumntype{v}

Mein Rat ist jedoch, das Problem zu vereinfachen, indem man nur die pSpalte verwendet. Siehe die beiden Optionen unten:

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

Bildbeschreibung hier eingeben

Antwort2

Ich vermute, Sie möchten drei XSpalten, wobei die Breite der letzten beiden 1/5 der Breite der ersten Spalte beträgt. In diesem Fall müssen die Verhältnisse α und β, ähnlich wie baryzentrische Koordinaten, die Gleichungen α = 5β, α + 2β =3 erfüllen, also α = 15/7, β = 3/7. Eine Näherung ist 2.15bzw. 0.425.

Ich glaube, Sie wollen Folgendes:

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

Bildbeschreibung hier eingeben

Antwort3

Da Sie die Proportionen Ihrer Spalten kennen (d. h. die erste Spalte sollte viermal so groß sein wie die anderen beiden), können Sie einfach einige Berechnungen durchführen, die Sie sowieso durchführen müssen 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} 

Sie müssen also nur 1 in Teile teilen, die proportional zu 4, 1 und 1 sind, also 4/6, 1/6 und 1/6.

Bildbeschreibung hier eingeben

verwandte Informationen