
ここで、新しい列タイプを作成する小さなコードを見つけました。ただし、これを表形式に適用すると、左の列のみが垂直に揃えられます。右の列はまったく影響を受けません。
\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]
が最後の列のテキストの下に追加されているように見えます。つまり、ベースラインは、セル全体であるそのスペースの垂直方向の中央にあります。そして、テキストは上部に保たれます。また、p{}
最初の列に を使用した場合でも、最初のセルは垂直方向に中央揃えされます。これは、そのベースライン (この場合はテキストの下部) が 2 番目のセルのベースラインと揃うためです。
次の実験を試してみてください。L{1mm}
右側に列を追加し、空のままにします。これで、最初の 2 つの列は、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}