表格显示不正确

表格显示不正确
  • 下面的代码显示了放错位置的\noalign错误但我不知道哪里出了问题。
  • 该表似乎也没有 \hline正确显示。

\documentclass{article}

\usepackage[a4paper, portrait, margin=2cm]{geometry}

\usepackage{array}

\usepackage{ulem}

\usepackage{booktabs}

\usepackage{ragged2e}

\usepackage[utf8]{inputenc}

\begin{document}

\Large

\begin{center}

\begin{tabular}{|c|>{\centering}m{0.12\textwidth}|>{\centering}m{0.13\textwidth}|>{\centering}m{0.2\textwidth}|}

    \hline

    Hi & Peach & Apple & Total\\

    \hline

    Cost & v & b & a\\

\end{tabular}

\end{center}

\end{document}

在此处输入图片描述

答案1

让我将我的评论扩展到答案。 问题的原因是缺少\arraybackslash恢复的含义,通过使用选项\\修改列类型来覆盖它:m\centering

\documentclass{article}
\usepackage[a4paper, portrait, margin=2cm]{geometry}

\usepackage{ragged2e}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}
    \begin{center}
\begin{tabular}{|c|C{0.12\textwidth}|C{0.13\textwidth}|C{0.20\textwidth}|}
    \hline
    Hi & Peach & Apple & Total\\
    \hline
    Cost & v & b & a\\
    \hline
\end{tabular}
    \end{center}
\end{document}

在此处输入图片描述

不需要使用ragged2e包中确定的修改选项。您可以按如下方式修改列:\arraybackslashm

\newcolumntype{C}[1]{>{\Centering}m{#1}}

进一步的选择是不要将\\其用作行终止符,但是\tabularnewline

\documentclass{article}
\usepackage[a4paper, portrait, margin=2cm]{geometry}

\usepackage{ragged2e}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering}m{#1}}

\begin{document}
    \begin{center}
\begin{tabular}{|c|C{0.12\textwidth}|C{0.13\textwidth}|C{0.20\textwidth}|}
    \hline
    Hi & Peach & Apple & Total  \tabularnewline
    \hline
    Cost & v    & b     & a     \tabularnewline
    \hline
\end{tabular}
    \end{center}
\end{document}

答案2

在此处输入图片描述

\documentclass{article}

\usepackage{array}
\usepackage{booktabs}
\usepackage{makecell}
\begin{document}
    \Large
    \begin{center}
        \begin{tabular}{
                cccc
            }
\toprule
            Hi & Peach & Apple & \makecell{Total\\Cost}\\\midrule
            v & b & a &\\
\bottomrule
        \end{tabular}
    \end{center}
\end{document}

相关内容