多列在 beamer 中不起作用

多列在 beamer 中不起作用

在表格中,多色无法正常工作。并且在第一个单元格中生成垂直线,有人知道如何删除垂直线并将其内容分布在列和行中吗?

\begin{table}
 \adjustbox{minipage=\mylength,center}
     \caption{long text.}   
     \resizebox{\columnwidth}{!} {
     
      \renewcommand{\arraystretch}{3}
      
       \newcolumntype{G}{>{\centering} m{1.4cm}}
       \newcolumntype{H}{>{\centering} m{1.2cm}}
          
        
        \begin{tabular}{|H|H|G|G|G|G|G|G|}
        \hline
    
    
    \rowcolor{blue}
    \multicolumn{2}{|c|}{\textbf{long texte}}
    &\multicolumn{2}{c|}{\textbf{long}} 
    &\multicolumn{2}{c|}{\textbf{long}} 
    &\multicolumn{2}{c|}{\textbf{long}}  \\ 
    \cline{2-8}

    \rowcolor{lilad!15}
    
    &
    &\textbf{\textcolor{blue}{\small long }} 
    &\textbf{\textcolor{orange}{\small long }}
    &\textbf{\textcolor{blue}{\small long }} 
    &\textbf{\textcolor{orange}{\small long }}
    &\textbf{\textcolor{blue}{\small long }}
    &\textbf{\textcolor{orange}{\small long}}\tabularnewline
    \hline

    \end{tabular}
    \end{table}

编辑:

\setlength{\overfullrule}{5pt}% 

 \usetheme{Hannover}
 
 \usepackage{amsfonts}%letra
 \usepackage{array}%tabular
 \usepackage[spanish,portuguese,english]{babel}%diccionarios
 \usepackage{caption,setspace}
 \usepackage{color}
 \usepackage{colortbl}
 \usepackage[detect-all]{siunitx}
 \usepackage{hhline}
 \usepackage[utf8]{inputenc}%tildes
 \usepackage{longtable}
 \usepackage{lscape}
 \usepackage{ragged2e}
 \usepackage{tabularx}
 \usepackage{tabulary}
 \usepackage{tablefootnote}
 \usepackage{threeparttable,threeparttablex}
 \usepackage[most]{tcolorbox}
 \usepackage{makecell} 
 \usepackage{mathtools}
 \usepackage{multicol}%varias columnas
 \usepackage{multirow}%varias filas
 \usepackage{xcolor}
 
 
 \begin{document}
 
 \begin{frame}
 \begin{table}
    
    {\caption{Mean change in monthly Precipitation (\%) in three time slices under two RCPs.}}
    
    \resizebox{\columnwidth}{!} {
        
        
        
        \renewcommand{\arraystretch}{3}
        
        
        \newcolumntype{G}{>{\centering} m{1.4cm}}
        \newcolumntype{H}{>{\centering} m{1.2cm}}
        
        
        
        \begin{tabular}{|H|H|G|G|G|G|G|G|}
            \hline
            %                       \rowcolor{lilad!15}
            
            
            \rowcolor{blue!15}
            %\cellcolor{lilad!15}
            
            %\multicolumn{2}{|c|}{\multirow{2}{*}{ Time Slice}}}
            \multicolumn{2}{|c|}{ \textbf{Time Slice}}
            &\multicolumn{2}{c|}{\textbf{Max. Temp (${^{\circ}}$C)}} 
            &\multicolumn{2}{c|}{\textbf{Min. Temp.(${^{\circ}}$C)}} 
            &\multicolumn{2}{c|}{\textbf{PCP(\%)}}  \\ %\tabularnewline 
            \cline{3-8}
            %\hhline{~~|------|}
            \rowcolor{blue!15}
            
            
            
            %\multicolumn{-2}{|c|}{ Time Slice}
            &
            &\textbf{\textcolor{blue}{{\small RCP4.5}}} 
            &\textbf{\textcolor{orange}{{\small RCP8.5}}}
            &\textbf{\textcolor{blue}{{\small RCP4.5}}} 
            &\textbf{\textcolor{orange}{{\small RCP8.5}}}
            &\textbf{\textcolor{blue}{{\small RCP4.5}}} 
            &\textbf{\textcolor{orange}{{\small RCP8.5}}}\tabularnewline
            \hline
            
    \end{tabular}
        }
    \end{table}
    
\end{frame}

\end{document}

输出

如图所示,虽然上面的代码使用了“多列”,但它在第一个单元格中生成了一条垂直线,我想将其删除。

答案1

您有一个带标题的多列Time Slice,但目前您在下一行有两个空单元格,因此它们得到一个 | 将&下一行的第一个单元格替换为 \multicolumn{2}{|c|}{}

答案2

首先,一些无关评论/疑问:

  • 您应该意识到beamer加载一些包graphicxamsmath因为xcolor它本身需要,因此您不需要再次加载它们
  • 软件包caption在 beamer 中无法正常工作。字幕beamer有自己的机制,可以通过 进行设置/调整\setbeamertemlate{caption}...\setbeamerfont{caption}{...}
  • multicol在演示中没有多大意义。相反,它beamer提供columns环境,当需要同时呈现某些内容时(例如文本和图像)
  • 演示文稿中的包装landscape没有任何意义。所有框架都必须是“纵向”的
  • 您真的需要这么多的表包吗?
  • tablefootnote为什么加载时需要包裹threeparttable(先写表格注释吗?)
  • ETC。

考虑到上述情况,你的序言可以是:

\documentclass[xcolor=table]{beamer}
\usetheme{Hannover}

\usepackage[spanish,portuguese,english]{babel}%diccionarios
\usepackage[detect-all]{siunitx}
\usepackage{ragged2e}
\usepackage{hhline}
\usepackage{array}%tabular
\usepackage{longtable}
\usepackage{makecell}
\usepackage{multirow}%varias filas
\usepackage{tabularx}
\usepackage{tabulary}
\usepackage{tablefootnote}
\usepackage{threeparttable,threeparttablex}
\usepackage[most]{tcolorbox}

主题明确:上下文,为什么您需要两列“时间片”数据尚不清楚。从提供的代码片段可以得出结论,一列就足够了(这样您的问题就不会发生)。

我将使用tabularray包来描述您的表格。使用它,MWE(最小工作示例)可以更简短、更清晰:

\documentclass[xcolor=table]{beamer}
\usetheme{Hannover}

\usepackage[spanish,portuguese,english]{babel}%diccionarios
\usepackage{tabularray}
\UseTblrLibrary{siunitx}
\sisetup{detect-all}
\NewTableCommand\SCTC[1]{\SetCell{fg=#1}}

\usepackage[most]{tcolorbox} % not used in this MWE
 

\begin{document}
\begin{frame}
\frametitle{Example of table using the \texttt{tabularray} package}
    \begin{table}
\caption{Mean change in monthly Precipitation (\%) in three time slices under two RCPs.}
\begin{tblr}{hlines, vlines,
             colspec= {c *{6}{X[c]}},
             colsep = 3pt,
             rowsep = 5pt,
             rows   = {font=\footnotesize\bfseries, bg=blue!15},
             }
Time Slice
    &   \SetCell[c=2]{c}    Max. Temp (\si{\celsius})
        &   &   \SetCell[c=2]{c}    Min. Temp. (\si{\celsius})
                &   &   \SetCell[c=2]{c}    PCP (\%)        
                        &                               \\
month ?
    &   \SCTC{blue}    RCP4.5
        &   \SCTC{orange}    RCP8.5
            &   \SCTC{blue}    RCP4.5
                &   \SCTC{orange}    RCP8.5
                    &   \SCTC{blue}    RCP4.5
                        &   \SCTC{orange}    RCP8.5      \\
\end{tblr}
    \end{table}
\end{frame}

\end{document}

在此处输入图片描述

相关内容