Latex テーブルのセルの中央にテキストを配置する必要がある

Latex テーブルのセルの中央にテキストを配置する必要がある

私はLaTeXの表のセルにテキストの中央(水平または垂直の両方)を配置しようとしています(最後の画像を参照)。面白いことに、コードはhttps://www.papeeria.comTeXLive 2016ディストリビューションを使用すると、などのオンラインエディターでは機能しますが、最新のディストリビューション2019では機能しません。texmakerでは機能しません。そして、texmakerとLaTeXを再インストールしました。

私のコードは次のとおりです:

\documentclass[landscape]{article}
\usepackage{array}
\usepackage{geometry}
\geometry{a4paper, left =0.85cm, right= 0.85cm, top = 1.55cm, bottom = 1.55cm}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}


\usepackage{array}    % for the first table

\usepackage{xcolor,colortbl} % <--- color cell in table





\begin{document}
    
    \begin{table}[ht]
        \centering
        \begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|N}
            \hline 
            \cellcolor{orange!50} \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\[85mm]
            
            \hline
            \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\ [85mm]
            \hline
        \end{tabular}
    \end{table}
    
    \newpage
    
    
    \begin{table}[ht]
        \centering
        \begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|N}
            \hline 
            \cellcolor{orange!50} \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\[85mm]
            
            \hline
            \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\ [85mm]
            \hline
        \end{tabular}
    \end{table}
    
\end{document} 

私はこれを理解します: ここに画像の説明を入力してください

しかし、私はこれを望んでいます:

ここに画像の説明を入力してください

答え1

高さが定義された空の列を使用して、垂直の高さを偽装することができます。次のコードは、(未使用、なぜ追加したのですか?)Nタイプの列をH{85mm}、高さ 85 mm の垂直中央の列に置き換えます。

\documentclass[landscape]{article}
\usepackage{array}
\usepackage{geometry}
\geometry{a4paper, left =0.85cm, right= 0.85cm, top = 1.55cm, bottom = 1.55cm}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}
\newcolumntype{H}[1]{@{}>{\rule{0pt}{#1}}m{0pt}@{}}


\usepackage{array}    % for the first table

\usepackage{xcolor,colortbl} % <--- color cell in table

\begin{document}
    \begin{table}[ht]
        \centering
        \begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|H{85mm}}
            \hline 
            \cellcolor{orange!50} \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\
            
            \hline
            \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\
            \hline
        \end{tabular}
    \end{table}
    \newpage
    \begin{table}[ht]
        \centering
        \begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|H{85mm}}
            \hline 
            \cellcolor{orange!50} \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\
            
            \hline
            \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text &
            \\
            \hline
        \end{tabular}
    \end{table}
\end{document} 

ここに画像の説明を入力してください

テーブルのすべての行にこの効果を適用したくない場合は、古いNタイプの列に切り替えて、明示的\rule{0pt}{<height>}に を使用し、その行の高さを設定できます。

答え2

\parbox高さと内部配置を指定できますが、p{}列とそのバリエーションでは指定できません。これらを使用するには、collcell パッケージが必要です。

\documentclass[landscape]{article}
\usepackage{geometry}
\geometry{a4paper, left =0.85cm, right= 0.85cm, top = 1.55cm, bottom = 1.55cm}

\usepackage{array}
\usepackage{collcell}
\usepackage{xcolor,colortbl} % <--- color cell in table

\newcommand{\mycolumn}[1]{\parbox[c][85mm][c]{\myarg}{\centering #1}}
\newcolumntype{M}[1]{>{\def\myarg{#1}\collectcell\mycolumn}{l}<{\endcollectcell}}

\begin{document}
    
    \begin{table}[ht]
        \centering
        \begin{tabular}{|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|M{5.1cm}|}
            \hline 
            \cellcolor{orange!50} \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text \\
            \hline
            \huge Text &
            \huge Text &
            \huge Text & 
            \huge Text & 
            \huge Text \\
            \hline
        \end{tabular}
    \end{table}
    
\end{document} 

答え3

パッケージを使用するtabularrayと、テキストは自動的に垂直方向に中央揃えされます。

\documentclass[landscape]{article}

\usepackage{geometry}
\geometry{a4paper, hmargin=0.85cm, vmargin=1.55cm}

\usepackage{tabularray}
\usepackage{xcolor}

\begin{document}
    
    \begin{table}[ht]
        \centering
        \begin{tblr}{
          vlines,
          hlines,
          colspec={XXXXX},
          rows={ht=8.5cm,halign=c,font=\huge},
          cell{1}{1}={bg=orange!50}
        }
            Text & Text & Text & Text & Text\\
            Text & Text & Text & Text & Text\\
        \end{tblr}
    \end{table}
    
\end{document} 

ここに画像の説明を入力してください

関連情報