垂直对齐/表格/文本/数学

垂直对齐/表格/文本/数学

我想创建一个单元格中包含文本和数学符号的表格。问题是我希望每个单元格中的上下文都垂直居中对齐。

下面你可以看到我到目前为止所做的

\documentclass[a4paper,12pt]{report}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsfonts}

\usepackage[table]{xcolor}

\begin{document}

   \newcolumntype{K}{>{\centering}m{4.5cm}}
   \newcolumntype{L}{>{\centering}m{3.5cm}}
   \newcolumntype{M}{@{}m{0pt}@{}}

   \begin{tabular}{|c|K|c|c|L|M|}
      \multicolumn{2}{c}{\cellcolor{cyan}\textbf{Column A}} &  &  \multicolumn{2}{c}{\cellcolor{cyan}\textbf{Column B}}\\[5pt]
      a.  & $5x^3(x - 1)^3$, $2x(x - 1)^4$   &  & 1. & $-10x^4(x - 1)^3$ &\\[20pt]
      \hline        
      b.  & $5x(x - 1)^2$, $2x^3(x - 1)$     &  & 2. & $10x^2(x - 1)$ &\\[20pt]
      \hline            
      c.  & $5x^4(x^2 - 1)$, $2x^2(x - 1)^2$  &  & 3. & $10x^2(x - 1)^4$ &\\[20pt]
      \hline            
      d.  & $5x^2(x - 1)^2$, $2x^4(1 - x)^3$ &  & 4. & $10x^3(x - 1)^2$ &\\[20pt]
      \hline        
      c.  & $\dfrac{x^2}{x + 1}$                       &  & 5. & $10x^4(x - 1)^2(x + 1)$ &\\
      \hline
   \end{tabular}

\end{document}

如您所见,第一行的文本未垂直对齐。有什么建议吗?

答案1

您可以通过在顶部添加一行来伪造它,形式为

\multicolumn{2}{c|}{\cellcolor{cyan}} &  &  \multicolumn{2}{c}{\cellcolor{cyan}}\\[-5pt]

这是 MWE。我还更改了前导多列格式,c|使垂直黑线与青色边框对称。

\documentclass[a4paper,12pt]{report}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsfonts}

\usepackage[table]{xcolor}

\begin{document}

   \newcolumntype{K}{>{\centering}m{4.5cm}}
   \newcolumntype{L}{>{\centering}m{3.5cm}}
   \newcolumntype{M}{@{}m{0pt}@{}}

   \begin{tabular}{|c|K|c|c|L|M|}
      \multicolumn{2}{c|}{\cellcolor{cyan}} &  &  \multicolumn{2}{c}{\cellcolor{cyan}}\\[-5pt]
      \multicolumn{2}{c|}{\cellcolor{cyan}\textbf{Column A}} &  &  \multicolumn{2}{c}{\cellcolor{cyan}\textbf{Column B}}\\[5pt]
      a.  & $5x^3(x - 1)^3$, $2x(x - 1)^4$   &  & 1. & $-10x^4(x - 1)^3$ &\\[20pt]
      \hline        
      b.  & $5x(x - 1)^2$, $2x^3(x - 1)$     &  & 2. & $10x^2(x - 1)$ &\\[20pt]
      \hline            
      c.  & $5x^4(x^2 - 1)$, $2x^2(x - 1)^2$  &  & 3. & $10x^2(x - 1)^4$ &\\[20pt]
      \hline            
      d.  & $5x^2(x - 1)^2$, $2x^4(1 - x)^3$ &  & 4. & $10x^3(x - 1)^2$ &\\[20pt]
      \hline        
      c.  & $\dfrac{x^2}{x + 1}$                       &  & 5. & $10x^4(x - 1)^2(x + 1)$ &\\
      \hline
   \end{tabular}

\end{document}

在此处输入图片描述

如果您也希望修复最后一行,请使用stackengine包并使用\addstackgap[]{}带有条目$\dfrac{x^2}{x + 1}$的:

      c.  & \addstackgap{$\dfrac{x^2}{x + 1}$}  &  & 5. & $10x^4(x - 1)^2(x + 1)$ &\\

实现

在此处输入图片描述

答案2

m列失去基线对齐,因此我不会将它们用于简短的单行示例。在这里,我简化了表格标记,删除了“额外”的列,并稍微打开了表格。我保留了全宽,\hline就像您拥有的那样,但我很想让它们不穿过中间,或者根本没有线条。

在此处输入图片描述

\documentclass[a4paper,12pt]{report}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsfonts}

\usepackage[table]{xcolor}

\begin{document}

   \newcolumntype{K}{>{\centering\arraybackslash}p{4.5cm}}
   \newcolumntype{L}{>{\centering\arraybackslash}p{3.5cm}}

   {\renewcommand\arraystretch{2.5}%
   \begin{tabular}{|c|K|@{\hspace{1cm}}|c|L|}
      \hline
      \multicolumn{2}{|c|@{\hspace{1cm}}|}{\cellcolor{cyan}\textbf{Column A}} & 
    \multicolumn{2}{c|}{\cellcolor{cyan}\textbf{Column B}}\\
      \hline
      a.  & $5x^3(x - 1)^3$, $2x(x - 1)^4$   &  1. & $-10x^4(x - 1)^3$ \\
      \hline
      b.  & $5x(x - 1)^2$, $2x^3(x - 1)$     &  2. & $10x^2(x - 1)$ \\
      \cline{1-2}\cline{3-4}          
      c.  & $5x^4(x^2 - 1)$, $2x^2(x - 1)^2$  &  3. & $10x^2(x - 1)^4$ \\
      \hline            
      d.  & $5x^2(x - 1)^2$, $2x^4(1 - x)^3$ &  4. & $10x^3(x - 1)^2$ \\
      \hline        
      c.  & $\dfrac{x^2}{x + 1}$             & 5. & $10x^4(x - 1)^2(x + 1)$ \\
      \hline
   \end{tabular}}

\end{document}

答案3

使单元格垂直居中的最简单方法是使用cellspace包:它(全局)定义 columnx 中单元格内容上方和下方的最小垂直间距,并使用以字母为前缀的说明符S(或者C如果您加载siunitx)。

以下代码仅使用cSc列。此外,我使用了\hhlines,并在彩色列标题下添加了一行,因为我发现它更整洁:

\documentclass[a4paper,12pt]{report}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{array, cellspace, hhline}
\setlength\cellspacetoplimit{15pt}
\setlength\cellspacebottomlimit{15pt}
\usepackage[table]{xcolor}

\begin{document}

   \begin{tabular}{|*{2}{Sc|}p{2em}*{2}{|Sc}|}
      \multicolumn{2}{Sc}{\cellcolor{cyan}\textbf{Column A}} & & \multicolumn{2}{>{\columncolor{cyan}[6.4pt][6pt]}c}{\cellcolor{cyan}\textbf{Column B}}\\
      \hhline{--~|--}
      a. & $5x^3(x - 1)^3$, $2x(x - 1)^4$ & & 1. & $-10x^4(x - 1)^3$ \\
      \hhline{--~|--}
      b. & $5x(x - 1)^2$, $2x^3(x - 1)$ & & 2. & $10x^2(x - 1)$ \\
      \hhline{--~|--}
      c. & $5x^4(x^2 - 1)$, $2x^2(x - 1)^2$ & & 3. & $10x^2(x - 1)^4$ \\
      \hhline{--~|--}
      d. & $5x^2(x - 1)^2$, $2x^4(1 - x)^3$ & & 4. & $10x^3(x - 1)^2$ \\
      \hhline{--~|--}
      c. & $\smash{\dfrac{x^2}{x + 1}}$ & & 5. & $10x^4(x - 1)^2(x + 1)$ \\
      \hhline{--~|--}
   \end{tabular}

\end{document} 

在此处输入图片描述

相关内容