如何建立一个固定宽度和固定高度的表格?(编辑:现在剩下的问题是关于颜色覆盖)

如何建立一个固定宽度和固定高度的表格?(编辑:现在剩下的问题是关于颜色覆盖)
\begin{frame}{Title}
\begin{equation*}
            \begin{tabular}{cccc}

                  & aaaaaaaaaa & aaaaaaaaa & aaaaaaaaaaaaa \\ \cline{2-4}
                $A_A \prec_B C_C$ & \multicolumn{1}{|c}{} 
                    & \multicolumn{1}{|c}{}   
                        &
                    \multicolumn{1}{|c|}{}   
                \\ \cline{2-4}
                $A_A {\tiny\cancel{\overset{\prec}{\underset{\succ}{\approx}}}_B} C_C$ & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                    & \multicolumn{1}{|c}{} 
                        & \multicolumn{1}{|c|}{} 
                     
                \\ \cline{2-4}
                $A_A=C_C$ & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                    & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                        & \multicolumn{1}{|c|}{} 
                     
                \\ \cline{2-4}
                $A_A \succ_B C_C$ & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                    & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                        & \multicolumn{1}{|c|}{} 
                \\ \cline{2-4}
                
            \end{tabular}
\end{equation*}
\end{frame}

已删除宽度的问题是因为每列的a个数不一样,高度的问题是因为自定义了大符号,我试过把开头的四个c换成p{4cm},但是一点反应都没有(这个是调整宽度用的,高度要不要用\renewcommand{\arraystretch}{1.5}之类的?)我找了几个帖子,但是他们的表格都是以{|c|c|}开头的,感觉我的情况不太合适?

还有一个问题:有些行被灰色块覆盖。我尝试将 \cline 移到 \ 之前而不是 \ 之后,但总是显示“错误”。以下是一些相关线程:Cellcolor 覆盖部分水平线(\cline) 但是他们的表格以{|c|c|}之类的内容开头,因此所有的边框线都存在,这与我的情况不一致。

非常感谢!

编辑(删除):

\begin{frame}{Frame Title}
\noindent\begin{minipage}[t][6in][t]{\textwidth}
\centering
        \begin{tabular}{@{} c p{1in} p{1in} p{1in} @{}}

              & aaaaaaaaaa & aaaaaaaaa & aaaaaaaaaaaaa \\ \cline{2-4}
            $A_A \prec_B C_C$ & \multicolumn{1}{|c}{} 
                & \multicolumn{1}{|c}{}   
                    &
                \multicolumn{1}{|c|}{}   
            \\ \cline{2-4}
            $A_A \cancel{\overset{\prec}{\underset{\succ}{\approx}}}_B C_C$ & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                & \multicolumn{1}{|c}{} 
                    & \multicolumn{1}{|c|}{} 
                 
            \\ \cline{2-4}
            $A_A=C_C$ & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                    & \multicolumn{1}{|c|}{} 
                 
            \\ \cline{2-4}
            $A_A \succ_B C_C$ & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                & \multicolumn{1}{|c}{\cellcolor[HTML]{C0C0C0}} 
                    & \multicolumn{1}{|c|}{} 
            \\ \cline{2-4}
            
        \end{tabular}
\end{minipage}

\end{frame}

答案1

这是一个{NiceTabular}使用 的解决方案nicematrix

  • 该键columns-width=auto将所有列的宽度设置为最大宽度。

  • 我已设置\arraystretch为 1.4,对于您来说,这足以使所有行具有相同的高度。

  • 该命令\Block[hvlines]{*-*}{}创建一个没有内容的块(最后一个参数),但用于在该块中绘制所有规则(使用键hvlines)。

  • 使用,规则由 PGF(Tikz 的一个子层)在构建数组后绘制,并确保在所有 PDF 查看器中都能获得彩色单元格的完美效果。但是,您{NiceTabular}需要nicematrix一些汇编

\documentclass{beamer}
\usepackage{cancel}
\usepackage{nicematrix}

\begin{document}

\begin{frame}{Title}
\renewcommand{\arraystretch}{1.4}
\begin{NiceTabular}{cccc}[colortbl-like,columns-width=auto]
& aaaaaaaaaa & aaaaaaaaa & aaaaaaaaaaaaa \\ 
$A_A \prec_B C_C$ & \Block[hvlines]{*-*}{} \\
$A_A {\tiny\cancel{\overset{\prec}{\underset{\succ}{\approx}}}_B} C_C$ & \cellcolor{gray!50} \\
$A_A=C_C$ & \cellcolor{gray!50} & \cellcolor{gray!50} \\
$A_A \succ_B C_C$ & \cellcolor{gray!50} & \cellcolor{gray!50} \\
\end{NiceTabular}
\end{frame}

\end{document}

上述代码的输出

答案2

我会消灭全部阴影区域内的线条——水平和垂直。

在此处输入图片描述

\documentclass[table]{beamer}
\usepackage{cancel,xcolor,tabularx,ragged2e}
\newcolumntype{C}{>{\Centering}X}
\newcommand\cc{\multicolumn{1}{c}{\cellcolor[HTML]{C0C0C0}}} % handy shortcut macro

\begin{document}
\begin{frame}{Title}
\begin{tabularx}{\textwidth}{l|*{3}{C|}}
\cline{2-4}
& aaaaaaaaaa & aaaaaaaaa & aaaaaaaaaaaaa \\ 
\cline{2-4}
$A_A \prec_B C_C$ 
   & & & \\ \cline{2-4}
$A_A \mathrel{{\scriptscriptstyle\cancel{\overset{\prec}{\underset{\succ}{\approx}}}_B}} C_C$ 
   & \cc &     & \\ \cline{2-4}
$A_A=C_C$ 
   & \cc & \cc & \\ \cline{2-4}
$A_A \succ_B C_C$ 
   & \cc & \cc & \\ \cline{2-4}        
\end{tabularx}
\end{frame}
\end{document}

答案3

使用scalebox(在包中定义adjustbox)和tabularay包:

\documentclass{beamer}
\usepackage{adjustbox}
\usepackage{cancel}
\usepackage{xcolor}
\usepackage{tabularray} % tested with version 2021P

\begin{document}

\begin{frame}
\frametitle{Title}
    \begin{tblr}{colspec={Q[r,$] *3{X[c]}}, % or Q[r,mode=math]
                 hline{2-Z}={2-Z}{solid},
                 vline{2-Z}={2-Z}{solid},
                 row{2-Z} = {ht=4ex}
                }
                & aaaaaaaaaa            & aaaaaaaaa         & aaaaaaaaaaaaa \\
A_A \prec_B C_C &                       &                   &               \\
A_A  \scalebox{0.7}{$\cancel{\overset{\prec}{\underset{\succ}{\approx}}}$}_B C_C
                & \SetCell{gray!50}     &                   &               \\
A_A=C_C         & \SetCell{gray!50}     & \SetCell{gray!50} &               \\
A_A \succ_B C_C & \SetCell{gray!50}     & \SetCell{gray!50} &               \\
    \end{tblr}
\end{frame}

\end{document}

在此处输入图片描述

编辑(1): 现在第 2 至第 4 列具有相同的宽度(和高度)。

编辑(2): 如果您使用 Overleaf,则需要自己加载/安装软件包tabularrrayninecolors(这是 要求的taabularray)。由于我不熟悉 Overleaf,我无法建议您如何执行此操作,但他们的支持非常友好,并且他们很乐意为您提供帮助。

另外,您不需要adjustbox在第二行中使用包 if 作为数学表达式,而是使用@Mico 答案中的建议:

\documentclass{beamer}
\usepackage{cancel}
\usepackage{xcolor}
\usepackage{tabularray} % tested with version 2021P

\begin{document}

\begin{frame}
\frametitle{Title}
    \begin{tblr}{colspec={Q[r,$] *3{X[c]}}, % or Q[r,mode=math]
                 hline{2-Z}={2-Z}{solid},
                 vline{2-Z}={2-Z}{solid},
                 row{2-Z} = {ht=4ex}
                }
                & aaaaaaaaaa            & aaaaaaaaa         & aaaaaaaaaaaaa \\
A_A \prec_B C_C &                       &                   &               \\
A_A \mathrel{\scriptstyle\cancel{\overset{\prec}{\underset{\succ}{\approx}}}_B} C_C % adopted from @Mico suggestion
                & \SetCell{gray!50}     &                   &               \\
A_A=C_C         & \SetCell{gray!50}     & \SetCell{gray!50} &               \\
A_A \succ_B C_C & \SetCell{gray!50}     & \SetCell{gray!50} &               \\
    \end{tblr}
\end{frame}

\end{document}

附录: 关于您的评论:

  • 如果你想在现有的行下添加一些(完整的)行,那么只需写下来,就像我在下面的 MWE 中所做的那样(我不知道这一行的内容是什么)
  • 如果您只希望特定单元格有多行内容,则可以将此文本添加到该单元格:
    • 如果文本足够长,它将X自动将列类型分成两行,例如new text aaaaaaaaa
    • 如果它太短,那么你需要手动将它断开,例如new\\ aaaaaaaaa
\documentclass{beamer}
\usepackage{cancel}
\usepackage{xcolor}
\usepackage{tabularray} % tested with version 2021P

\begin{document}

\begin{frame}
\frametitle{Title}
    \begin{tblr}{colspec={Q[r,$] *3{X[c,b]}}, % or Q[r,mode=math]
                 hline{2-Z}={2-Z}{solid},
                 vline{2-Z}={2-Z}{solid},
                 row{2-Z} = {ht=4ex}
                }
                & aaaaaaaaaa            & new text 
                                          aaaaaaaaa         
                                                            & aaaaaaaaaaaaa \\
A_A \prec_B C_C &                       &                   &               \\
A_A \mathrel{\scriptstyle\cancel{\overset{\prec}{\underset{\succ}{\approx}}}_B} C_C % adopted from @Mico suggestion
                & \SetCell{gray!50}     &                   &               \\
A_A=C_C         & \SetCell{gray!50}     & \SetCell{gray!50} &               \\
A_A \succ_B C_C & \SetCell{gray!50}     & \SetCell{gray!50} &               \\
A_A \nprec_B C_C    & \SetCell{gray!50} & \SetCell{gray!50} & \SetCell{gray!50}              \\
    \end{tblr}
\end{frame}

在此处输入图片描述

我使用最新的 MiKTEX 程序测试了所有示例。编译没有警告或错误。如果您使用 Overleaf(正如我从您对其他答案的评论中得出的结论),那么您可能会遇到编译问题。在这种情况下,请联系他们的支持团队并寻求帮助。

我允许自己在你的问题中添加一个背面标签,以便引起他们的注意。

相关内容