
array
열을 자동으로 균등한 너비로 늘리고 전체 페이지에 펼치는 환경(유사하게 작동하는 모든 것이면 충분함)을 활용하려고 합니다 . 한 가지 예:
\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand{\u}[1]{\underline{#1}}
\begin{document}
\[\begin{array}{rrr}
5 & 5 & 5\\
\u{+4} &\u{+4} &\u{+4}
\end{array}\]
\end{document}
현재 제가 알고 있는 방법은 각 열 쌍 사이에 '가짜' 열을 삽입하고 이를 사용하여 \hspace*{##cm}
열을 강제로 펼치는 것입니다. 그러나 13개 행에 7개 열이 있는 경우에는 이 작업이 약간 지루해집니다. , 어떤 이유로든 모두 단일 어레이 환경의 일부가 될 수는 없습니다.
이 문제에 대한 약간 간단한 접근 방식이 있습니까? 검색을 해보았지만 별로 도움이 될 것 같은 내용을 찾지 못했습니다. (가장 적합한 검색 문구를 입력할 만큼 전문 용어에 익숙하지 않은 경우도 있을 수 있습니다.)
답변1
a를 사용하여 tabular*
공간을 채울 수 있습니다. 수학 모드에서 열을 가지려면 내가 했던 것처럼 array
package 를 사용하세요.>{$}
\documentclass[12pt]{article}
\usepackage{amsmath,array}
\renewcommand{\u}[1]{\underline{#1}}
\begin{document}
\begin{tabular*}{\linewidth}{>{$}r<{$}@{\extracolsep{\fill}}>{$}r<{$}>{$}r<{$}}
5 & 5 & 5\\
\u{+4} &\u{+4} &\u{+4}
\end{tabular*}
\end{document}
Mico가 제안한 대로 새 열 유형을 정의하여 단순화할 수 있습니다.
\documentclass[12pt]{article}
\usepackage{amsmath,array}
\renewcommand{\u}[1]{\underline{#1}}
\newcolumntype{R}{>{$}r<{$}}
\begin{document}
\begin{tabular*}{\linewidth}{R@{\extracolsep{\fill}}RR}
5 & 5 & 5\\
\u{+4} &\u{+4} &\u{+4}
\end{tabular*}
\end{document}
답변2
(OP의 후속 의견을 통합하기 위해 답변이 업데이트되었습니다.)
귀하의 요구 사항을 올바르게 이해했다면
각 열 내의 숫자는 소수점으로 정렬됩니다.
열 자체가 중앙에 위치
전체 테이블이 텍스트 블록의 너비를 차지하도록 열 너비 및/또는 열 사이 공백의 양을 자동으로 조정합니다.
이러한 목적을 달성하는 한 가지 방법은 tabularx
환경을 사용하고, dcolumn
패키지를 로드하여 숫자를 소수점 정렬하고, X
열 유형의 수정된(예: 가운데 맞춤) 형식을 사용하여 각 행의 헤더를 조판하는 것입니다.
\documentclass[12pt]{article}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{1}{Y}{#1}}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D..{#1}} % "decimal-aligned" column type
\usepackage[normalem]{ulem} % for "safe underlining"
\renewcommand\u[1]{\uline{#1}}
\begin{document}
\hrule % just to illustrate width of text block
\smallskip\noindent
\begin{tabularx}{\linewidth}{ *{4}{d{2.0}} }
\mc{Header 1} & \mc{Header 2} & \mc{Header 3} & \mc{Header 4}\\
5 & 5 & 5 & 5\\
\u{+4} &\u{+4} &\u{+4} &\u{+4}\\
\end{tabularx}
\end{document}