表形式で垂直方向中央揃え、水平方向左揃え

表形式で垂直方向中央揃え、水平方向左揃え

ここで、新しい列タイプを作成する小さなコードを見つけました。ただし、これを表形式に適用すると、左の列のみが垂直に揃えられます。右の列はまったく影響を受けません。

\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}

関連情報