!['p' 열의 너비를 테이블의 나머지 너비로 설정하는 방법은 무엇입니까?](https://rvso.com/image/391731/'p'%20%EC%97%B4%EC%9D%98%20%EB%84%88%EB%B9%84%EB%A5%BC%20%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98%20%EB%82%98%EB%A8%B8%EC%A7%80%20%EB%84%88%EB%B9%84%EB%A1%9C%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
두 번째 열이 \columnwidth까지 테이블의 나머지 너비를 모두 채우는 2열 테이블을 만들려고 합니다. 다음은 내가 시작하려는 위치에 대한 간단한 예입니다.
\noindent \rowcolors[]{1}{}{gray!20}%
\begin{tabular*}{1\columnwidth}{@{\extracolsep{\fill}}cl}
column 1 header & \multicolumn{1}{c}{column 2 header}\tabularnewline
autosized column & This column should contain justified text, wrapping at the width of
the table instead of going past it\tabularnewline
some additional rows... & some additional justified text\global\rownum=0\relax\tabularnewline
\multicolumn{2}{p{1\columnwidth-2\tabcolsep}}{Justified footnotes
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare
sapien vel tellus rhoncus, placerat rutrum ipsum pretium.
Maecenas vel convallis erat. Morbi facilisis, nunc molestie consequat
consectetur, velit turpis facilisis dolor, non tempor mauris nunc
vitae risus. Nullam ante mauris, volutpat ut molestie eget, congue
non velit. Nullam id maximus ligula. }\tabularnewline
\end{tabular*}
이것이 렌더링되면 테이블의 두 번째 행이 테이블의 오른쪽을 지나 확장됩니다. 이상적으로는 현재 'l' 유형인 오른쪽 열을 'p' 유형으로 설정하는 것입니다. 하지만 명시적으로 너비를 지정해야 하는데 이 너비가 무엇인지 모르겠습니다. 하단에 있는 각주 셀의 경우 쉽습니다. 전체 테이블에 걸쳐 있다는 것을 알고 있기 때문입니다. 이미 \columnwidth라는 것을 알고 있으므로 다른 행의 중간에 있는 tabcolsep 여백을 빼면 됩니다. 너비가 딱 맞습니다.
궁극적으로 첫 번째 열의 너비는 알 수 없습니다. 왜냐하면 여기에는 더 많은 행이 포함될 수 있고 어떤 행이 반드시 가장 넓은 항목인지 알 수 없기 때문입니다.
두 번째 행의 텍스트가 표의 오른쪽을 넘치지 않고 'p' 열처럼 올바르게 줄 바꿈되지 않도록 하려면 어떻게 해야 합니까?
답변1
이를 수행하는 한 가지 방법은 저장 상자를 사용하여 첫 번째 열의 너비를 측정하는 것입니다. 이는 첫 번째 열을 두 번 입력한다는 의미입니다.
나는 열 전체에 걸쳐 확장되도록 표 형식을 설정했습니다. 색상이 더욱 확장됩니다.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{showframe}% MWE only
\newlength{\mywidth}
\begin{document}
\sbox0{\begin{tabular}{c}% measure first column + 2\tabcolsep
column 1 header \\
autosized column \\
some additional rows...
\end{tabular}}%
\setlength{\mywidth}{\dimexpr \columnwidth - \wd0}% do once
\noindent \rowcolors[]{1}{}{gray!20}%
\begin{tabular}{@{}cp{\mywidth}@{}}
column 1 header & \multicolumn{1}{c}{column 2 header}\\
autosized column & This column should contain justified text, wrapping at the width of
the table instead of going past it\\
some additional rows... & some additional justified text\global\rownum=0\relax\\
\multicolumn{2}{@{}p{\columnwidth}@{}}{Justified footnotes
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare
sapien vel tellus rhoncus, placerat rutrum ipsum pretium.
Maecenas vel convallis erat. Morbi facilisis, nunc molestie consequat
consectetur, velit turpis facilisis dolor, non tempor mauris nunc
vitae risus. Nullam ante mauris, volutpat ut molestie eget, congue
non velit. Nullam id maximus ligula. }\\
\end{tabular}
\end{document}