다양한 크기의 X 정렬을 사용하는 Tabularx

다양한 크기의 X 정렬을 사용하는 Tabularx

설명된 기술을 사용하고 있었습니다.여기하지만 그림(커서 근처)에 이상한 결과가 표시되었습니다.

이유와 해결 방법에 대해 어떻게 생각하시나요?

여기에 이미지 설명을 입력하세요

\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이 이미 언급했듯이 3개의 열이 있으므로 너비의 합은 최대 3X가 되어야 합니다. 따라서 열 3이 필요한 경우(예: be) 에 대한 사양을 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

열의 비율, 즉 첫 번째 열이 다른 두 열의 4배가 되어야 한다는 사실을 알고 있으므로 어쨌든 수행해야 하는 몇 가지 계산을 간단히 수행할 수 있습니다 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이 됩니다.

여기에 이미지 설명을 입력하세요

관련 정보