배열: 특정 열의 너비 설정

배열: 특정 열의 너비 설정

나는 array(수학 모드에서) 첫 번째 열을 나머지 열보다 약간 더 넓게 만들고 나머지 열은 일관된 너비를 가져야 합니다. 그냥 쓴다면

\begin{array}{c|ccc}
10000 & 1 & 20 & 300
\end{array}

두 번째, 세 번째, 네 번째 열은 모두 별도의 너비를 가지는데, 저는 이를 피하고 싶습니다. 이상적으로는 첫 번째 열의 너비를 로 설정 2cm하고 나머지 열의 너비를 1cm.

그렇게 할 수 있는 방법이 있나요? 중첩된 환경을 피하고 싶습니다 array.

답변1

(a) 열 2, 3, 4는 모두 열 중 하나에서 가장 넓은 요소(제공한 테이블의 "300")만큼 넓어야 하며 (b) 이 내용의 내용은 중앙에 위치해야 합니다. 이 해석이 정확하다면 C아래 코드에서 호출되는 새로운 열 유형을 정의하여 진행하는 것이 좋습니다. 이 유형은 이러한 가정을 충족하고 해당 내용을 기본적으로 수학 모드에 배치합니다.

열 2, 3, 4의 너비가 실제로 동일하다는 것을 쉽게 볼 수 있도록 코드에 세로 막대를 추가했습니다.

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

\documentclass{article}
\newlength\mylen
\usepackage{array} % for "\newcolumntype" macro
\newcolumntype{C}{>{\hfil$}p{\mylen}<{$\hfil}} % centered, in math mode, fixed width
\begin{document}
\[
\settowidth\mylen{300} % choose widest element in columns 2--4
\begin{array}{|c|C|C|C|}
10000 &  1  &  20 & 300\\
1     & 101 & 555 & 888\\ 
\end{array}
\]
\end{document}

업데이트, 2021년 6월: 이 답변을 게시한 지 4년 이상이 지나면서 array패키지가 크게 업데이트되었습니다. 업데이트 중 하나는 w위의 설정을 다음과 같이 더 간결하게 다시 작성할 수 있는 열 유형의 도입입니다.

\documentclass{article}
\newlength\mylen
\usepackage{array} % for 'w' column type
\begin{document}
\[
\settowidth\mylen{300} % choose widest element in columns 2--4
\begin{array}{| c | *{3}{wc{\mylen}|} }
10000 &  1  &  20 & 300\\
1     & 101 & 555 & 888
\end{array}
\]
\end{document}

답변2

가능성은 다음과 같습니다 dcolumn.

\documentclass{article}
\usepackage{dcolumn,booktabs}

\begin{document}

\[
\begin{array}{r *{3}{D{.}{.}{3.-1}}}
\toprule
10000 &  1 & 20 & 300 \\
100   & 10 & 10 &  10 \\
\bottomrule
\end{array}
\]

\[
\begin{array}{r *{3}{D{.}{.}{3.-1}}}
\toprule
10000 & 100 & 200 & 300 \\
100   & 100 & 100 & 100 \\
\bottomrule
\end{array}
\]

\end{document}

두 번째 표에서는 간격이 동일함을 보여줍니다. 열 유형 에 대한 인수는 D각각 입력 소수 구분 기호, 출력 소수 구분 기호 및 숫자 형식입니다. 여기서는 3.-1“적분 부분에 세 자리 숫자가 있고 소수 자리가 없음을 의미합니다.

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

답변3

\hphantom두 번째에서 네 번째 열에 대해 동일한 열 너비를 얻는 솔루션은 다음과 같습니다 .

\documentclass{article}
\begin{document}
\[
  \begin{array}{c|ccc}
    10000 & \hphantom{00}1 & \hphantom{0}20 & 300
  \end{array}
\]
\end{document}

결과

열 유형 p은 에서도 작동합니다 array. 예:

\documentclass{article}
\usepackage{array}
\begin{document}
\[
  \begin{array}{>{\centering}p{2cm}|*{3}{>{\centering}p{1cm}}}
    10000 & 1 & 20 & 300
  \end{array}
\]
\end{document}

결과

또는 패키지로 열을 정렬했습니다 siunitx.

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\[
  \begin{array}{S[table-format=5]|*{3}{S[table-format=3]}}
    10000 & 1 & 20 & 300
  \end{array}
\]
\end{document}

결과

관련 정보