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-type 열을 H{85mm}85mm 높이의 세로 중앙 열로 대체합니다.

\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

\parboxp{}열과 해당 변형이 지정하지 않는 높이와 내부 정렬을 지정할 수 있습니다 . 이를 사용하려면 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} 

여기에 이미지 설명을 입력하세요

관련 정보