Precisa alinhar o texto no meio da célula na tabela Latex

Precisa alinhar o texto no meio da célula na tabela Latex

Estou tentando colocar o centro do texto (horizontal ou vertical) nas células de uma tabela em látex (veja a última foto). O engraçado é que o código funciona em um editor online, como o https://www.papeeria.com, quando uso a distro TeXLive 2016, mas não na distro mais nova 2019. Não funciona no texmaker. E reinstalei o texmaker e o LaTeX.

Meu código é:

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

Eu entendi isso: insira a descrição da imagem aqui

Mas eu quero isso:

insira a descrição da imagem aqui

Responder1

Você poderia usar uma coluna vazia com uma altura definida para falsificar sua altura vertical. O texto a seguir substitui sua Ncoluna do tipo (não utilizada, por que você as adicionou?) por H{85mm}, que é uma coluna centralizada verticalmente com 85 mm de altura.

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

insira a descrição da imagem aqui

Se você não deseja esse efeito para cada linha da sua tabela, você pode voltar para as Ncolunas do tipo antigo e usar um explícito \rule{0pt}{<height>}nelas para definir a altura dessa linha.

Responder2

\parboxpermite especificar a altura e o alinhamento interno, o que p{}as colunas e suas variantes não fazem. Você precisa do pacote collcell para usá-los.

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

Responder3

Você poderia usar o tabularraypacote, então seu texto será automaticamente centralizado verticalmente:

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

insira a descrição da imagem aqui

informação relacionada