테이블 형식을 사용하여 테이블 내용을 가운데로 정렬

테이블 형식을 사용하여 테이블 내용을 가운데로 정렬

두 번째와 세 번째 열을 같은 길이로 중앙에 배치하고 싶습니다.

\documentclass{article}
\usepackage{booktabs}

\begin{document}

\begin{table}[!ht]
    %\begin{tabularx}{\textwidth}{@{}Y*{3}{W}@{}}
\centering
 \begin{tabular}{ccc}
    \toprule
    & \multicolumn{2}{c}{\textbf{Testing Testing Testin}} \\
    & \multicolumn{2}{c}{\textbf{Making into Secondline (\%)}} \\
     \cmidrule{2-3}
    & \small {\textbf{AA}}
     & \small {\textbf{BB}} \\
     \midrule
    Test 1 & 33 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
        \bottomrule
    \end{tabular}

\end{table}

\end{document}

결과:

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

두 번째와 세 번째 열을 같은 길이로 중앙에 배치하고 싶습니다.

나는 시도했다 :

 \begin{tabular}{ccc}

답변1

다음은 도움을 받는 방법입니다.parbox

\documentclass{article}
\usepackage{booktabs}

\begin{document}

\begin{table}[!ht]
    %\begin{tabularx}{\textwidth}{@{}Y*{3}{W}@{}}
\centering
 \begin{tabular}{ccc}
    \toprule
    & \multicolumn{2}{c}{\textbf{Testing Testing Testin}} \\
    & \multicolumn{2}{c}{\textbf{Making into Secondline (\%)}} \\
     \cmidrule{2-3}
    &  {\parbox{3cm}{\small\hfil\textbf{AA}\hfill}}
     & {\parbox{3cm}{\small\hfil\textbf{BB}\hfill}} \\
     \midrule
    Test 1 & 33 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
        \bottomrule
    \end{tabular}

\end{table}

\end{document}

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

답변2

siunitx다음은 숫자를 적절하게 정렬(중앙에서 오른쪽으로 정렬)하는 것을 기반으로 하는 가능한 솔루션입니다 . 열에 숫자가 아닌 항목은 S한 쌍의 중괄호로 묶어야 하며 자동으로 중앙에 배치됩니다. 또한 S열의 너비도 선택할 수 있습니다. 이 솔루션은 또한 표준 셀에서 줄바꿈을 허용하는 와 및 명령 makecell인수의 공통 형식을 사용합니다 .\makecell\thead

\documentclass{article}
\usepackage{array}
\usepackage{booktabs, makecell}
\renewcommand{\theadfont}{\small\bfseries}
\usepackage{siunitx}

\begin{document}

\begin{table}[!ht]
\centering
\sisetup{table-format=3.0, table-number-alignment=center, table-column-width=1.5cm}
 \begin{tabular}{cSS}
    \toprule
    & \multicolumn{2}{c}{\small\bfseries Testing Testing Testin} \\
    & \multicolumn{2}{c}{\thead{\makebox[0pt]{Making into Secondline}\\ (\%)}} \\
     \cmidrule{2-3}
    &{\small \textbf{AA}}
     & {\small\textbf{BB}} \\
     \midrule
    Test 1 & 33 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
    Test 2 & 57 & 73 \\
        \bottomrule
    \end{tabular}
\end{table}

\end{document} 

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

답변3

이렇게 하면 열 "Z"가 가장 긴 머리글 줄 너비의 정확히 절반에 맞춰 중앙에 배치됩니다. 각 표의 너비 앞에 해당 헤더 줄의 너비가 얼마인지 LateX에 알려 주기만 ​​하면 됩니다 \settowidth.

\documentclass{article}
\usepackage{booktabs,array}
\newlength{\xxx} % suggestion:  change "xxx" for something meaningful 
\newcolumntype{Z}{>{\hfil}p{.5\xxx}}
\begin{document}

\settowidth{\xxx}{\textbf{Making into Secondline (\%)}}

\begin{tabular}{cZZ} \toprule
& \multicolumn{2}{c}{\textbf{Testing Testing Testin}} \\
& \multicolumn{2}{c}{\textbf{Making into Secondline (\%)}} \\\cmidrule{2-3}
& \small {\textbf{AA}}  & \small {\textbf{BB}} \\\midrule
Test 1 & 33 & 73 \\
Test 2 & 57 & 73 \\
Test 2 & 57 & 73 \\
Test 2 & 57 & 73 \\
Test 2 & 57 & 73 \\
Test 2 & 57 & 73 \\
Test 2 & 57 & 73 \\\bottomrule
\end{tabular}

\end{document}

음

관련 정보