
여기에서 새로운 열 유형을 생성하는 작은 코드 조각을 찾았습니다. 그러나 이를 표 형식에 적용하면 왼쪽 열만 세로로 정렬됩니다. 권리는 전혀 영향을 받지 않았습니다.
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }
아래에서는 테이블을 설정하고 이 새로운 열 유형을 사용합니다 L
. 그러나 보시다시피 첫 번째 열만 영향을 받습니다.
\begin{center}
\noindent\begin{tabular}{ | L{\dimexpr 0.4\linewidth-2\tabcolsep} | L{\dimexpr 0.4\linewidth-2\tabcolsep} | }
\hline
\multicolumn{1}{|c|}{\textbf{Header}} & \multicolumn{1}{c|}{\textbf{Header}} \\[2ex] \hline
TEXT
&
MORE TEXT \\[3ex]
\hline
TEXT
&
MORE TEXT \\[3ex]
\hline
\end{tabular}
\end{center}\break
두 열을 모두 영향을 받으려면 어떻게 해야 합니까?
답변1
의 명시적인 간격은 \\[3ex]
수직 정렬에 영향을 줍니다. 대신 사용하세요 \renewcommand\arraystretch
.
\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }
\begin{document}
\renewcommand\arraystretch{1.3}
\begin{tabular}{ | L{\dimexpr 0.4\linewidth-2\tabcolsep} | L{\dimexpr 0.4\linewidth-2\tabcolsep} | }
\hline
TEXT TEXT TEXT TEXT TEXT
TEXT TEXT TEXT TEXT TEXT
TEXT TEXT TEXT TEXT TEXT
TEXT TEXT TEXT TEXT TEXT
&
MORE TEXT \\
\hline
TEXT
&
MORE TEXT MORE TEXT MORE TEXT
MORE TEXT MORE TEXT MORE TEXT
MORE TEXT MORE TEXT MORE TEXT
MORE TEXT MORE TEXT MORE TEXT \\
\hline
\end{tabular}
\end{document}
답변2
열 지정자의 의미 에 대해 오해가 있는 것 같습니다 m{}
. 그것은~ 아니다텍스트를 셀의 세로 중앙에 배치합니다. 오히려 텍스트의 기준선이 텍스트의 수직 중앙에 있다는 것입니다. 그런 다음 동일한 행에 있는 셀의 모든 기준선이 정렬됩니다. \\[3ex]
마지막 열의 텍스트 아래에 세로 공간이 추가된 것으로 보입니다 . 따라서 기준선은 전체 셀인 공간의 수직 중앙에 있습니다. 그러면 텍스트가 맨 위에 유지됩니다. 그리고 첫 번째 열에 a를 사용하더라도 p{}
첫 번째 셀은 여전히 수직 중앙에 위치합니다. 기준선(이 경우 텍스트의 아래쪽)이 두 번째 셀의 기준선에 맞춰 정렬되기 때문입니다.
이 실험을 시도해 보십시오. L{1mm}
오른쪽에 열을 추가하고 비워 두십시오. 이제 처음 두 열은 열로 변경하더라도 모두 수직으로 중앙에 배치됩니다 p{}
.
\noindent\begin{tabular}{ | p{2cm} | p{3cm} | L{1pt}}
\hline
\multicolumn{1}{|c|}{\textbf{Header}} & \multicolumn{1}{c|}{\textbf{Header}} \\[2ex] \hline
TEXT
&
MORE TEXT & \\[3ex]
\hline
TEXT
&
MORE TEXT & \\[3ex]
\hline
\end{tabular}