为什么我的多列表格*从右列开始并超出页面范围 (IEEEtran)?

为什么我的多列表格*从右列开始并超出页面范围 (IEEEtran)?

我正在使用 IEEEtran 类编写一个两列文档。使用其默认日志模板 bare_jrnl.tex,我添加了一堆 lorum ipsum 文本来填充第一页和第二页的第一列。然后我添加一个表格并得到以下内容:

在此处输入图片描述

有人能帮我理解为什么 table* 环境没有正确地放置在页面的左侧吗?

以下是代码:

\documentclass[journal]{IEEEtran}
\usepackage{lipsum}

\begin{document}

\lipsum[1-18]

\begin{table*}[] 
\caption{Here is a smaple caption.}
\centering
\begin{tabular}{|c|r|r|>{\columncolor[gray]{0.8}}r|r|r|r|r|}             
\hline                                                                   
  Factories   & Scenario  & Lower     & Approx. & Missing     & Target    & Average \\
                  & Length    & Bound     & Factor   & Data   & Dairy Size    & Length \\
\hline 
  F1 $\rightarrow$ F2     & 28    & 27    & 1.04 & 20 & 4 & 7.00  \\
  F1 $\rightarrow$ F3     & 109   & 102   & 1.08  & 78    & 13    & 8.46  \\
  F1 $\rightarrow$ F4     & 83    & 74    & 1.12  & 55    & 8 & 10.38 \\    
\hline                                                                    
  F2 $\rightarrow$ F1     & 152   & 139   & 1.09  & 110   & 13    & 11.69 \\
  F2 $\rightarrow$ F3     & 143   & 132   & 1.08  & 109   & 13    & 11.00 \\
  F2 $\rightarrow$ F4     & 112   & 102   & 1.10  & 83    & 8 & 14.00 \\    
\hline                                                                    
  F3 $\rightarrow$ F1     & 152   & 130   & 1.17  & 105   & 13    & 11.69 \\
  F3 $\rightarrow$ F2     & 55    & 53    & 1.04  & 42    & 4 & 13.75 \\    
  F3 $\rightarrow$ F4     & 111   & 99    & 1.12  & 76    & 8 & 13.88 \\    
\hline                                                                
  F4 $\rightarrow$ F1     & 143   & 133   & 1.08  & 102   & 13    & 11.00 \\
  F4 $\rightarrow$ F2     & 48    & 47    & 1.02  & 36    & 4 & 12.00 \\    
  F4 $\rightarrow$ F3     & 142   & 123   & 1.15  & 97    & 13    & 10.92\\ 
\hline                                                                   
\end{tabular}                                                            
\end{table}    

\end{document}

答案1

基本问题已由@jsBibra 回答(+1)解决,因此这里有一些题外的改进:

在此处输入图片描述

\documentclass[journal]{IEEEtran}
\usepackage[table]{xcolor}
\usepackage{makecell}
\usepackage{siunitx}

\usepackage{lipsum}

\begin{document}

\lipsum[1-7]

    \begin{table*}
\caption{Here is a smaple caption.}
\centering
\sisetup{table-format=3.0}
\begin{tabular}{|c|S|S|>{\columncolor[gray]{0.8}}S[table-format=1.2]|
                                                 S[table-format=3.0]|
                                                 S[table-format=2.0]|
                                                 S[table-format=2.2]|}
    \hline
\makecell{Factories}
    &{\makecell{Scenario\\ Length}}
        &{\makecell{Lower\\ Bound}}
            &{\makecell{Approx.\\ Factor}}
                &{\makecell{Missing\\ Data}}
                    &{\makecell{Target\\ Dairy Size}}
                        &{\makecell{Average\\ Length}}              \\
\hline
  F1 $\rightarrow$ F2     & 28    & 27    & 1.04 & 20 & 4 & 7.00  \\
  F1 $\rightarrow$ F3     & 109   & 102   & 1.08  & 78    & 13    & 8.46  \\
  F1 $\rightarrow$ F4     & 83    & 74    & 1.12  & 55    & 8 & 10.38 \\
\hline
  F2 $\rightarrow$ F1     & 152   & 139   & 1.09  & 110   & 13    & 11.69 \\
  F2 $\rightarrow$ F3     & 143   & 132   & 1.08  & 109   & 13    & 11.00 \\
  F2 $\rightarrow$ F4     & 112   & 102   & 1.10  & 83    & 8 & 14.00 \\
\hline
  F3 $\rightarrow$ F1     & 152   & 130   & 1.17  & 105   & 13    & 11.69 \\
  F3 $\rightarrow$ F2     & 55    & 53    & 1.04  & 42    & 4 & 13.75 \\
  F3 $\rightarrow$ F4     & 111   & 99    & 1.12  & 76    & 8 & 13.88 \\
\hline
  F4 $\rightarrow$ F1     & 143   & 133   & 1.08  & 102   & 13    & 11.00 \\
  F4 $\rightarrow$ F2     & 48    & 47    & 1.02  & 36    & 4 & 12.00 \\
  F4 $\rightarrow$ F3     & 142   & 123   & 1.15  & 97    & 13    & 10.92\\
\hline
\end{tabular}
    \end{table*}
\end{document}

附录: 如果您希望单元格中有更大的垂直空间,则可以通过两种方式实现:

  • 例如\renewcommand\arraystretch{1.2}之前添加\begin{tabular}(为了获得更大的拉伸,请选择 1.2 而不是所需的量)
  • 使用以下cellspace包:
\documentclass[journal]{IEEEtran}
\usepackage[table]{xcolor}
\usepackage{makecell}
\renewcommand\theadfont{\normalsize}  % <---
\usepackage[column=O]{cellspace}% define O as column operator
\setlength\cellspacetoplimit{3pt}    % additional vertical space above
\setlength\cellspacebottomlimit{3pt} % additional vertical space below
\usepackage{siunitx}

\usepackage{lipsum}

\begin{document}
\lipsum[1-7]
    \begin{table*}
\caption{Here is a sample caption.}
\centering
\sisetup{table-format=3.0}
\begin{tabular}{|Oc|S|S|>{\columncolor[gray]{0.8}}S[table-format=1.2]| % <---
                                                  S[table-format=3.0]|
                                                  S[table-format=2.0]|
                                                  S[table-format=2.2]|}
    \hline
\thead{Factories}
    &{\thead{Scenario\\ Length}}
        &{\thead{Lower\\ Bound}}
            &{\thead{Approx.\\ Factor}}
                &{\thead{Missing\\ Data}}
                    &{\thead{Target\\ Dairy Size}}
                        &{\thead{Average\\ Length}}              \\
\hline
  F1 $\rightarrow$ F2     & 28    & 27    & 1.04 & 20 & 4 & 7.00  \\
  F1 $\rightarrow$ F3     & 109   & 102   & 1.08  & 78    & 13    & 8.46  \\
  F1 $\rightarrow$ F4     & 83    & 74    & 1.12  & 55    & 8 & 10.38 \\
\hline
  F2 $\rightarrow$ F1     & 152   & 139   & 1.09  & 110   & 13    & 11.69 \\
  F2 $\rightarrow$ F3     & 143   & 132   & 1.08  & 109   & 13    & 11.00 \\
  F2 $\rightarrow$ F4     & 112   & 102   & 1.10  & 83    & 8 & 14.00 \\
\hline
  F3 $\rightarrow$ F1     & 152   & 130   & 1.17  & 105   & 13    & 11.69 \\
  F3 $\rightarrow$ F2     & 55    & 53    & 1.04  & 42    & 4 & 13.75 \\
  F3 $\rightarrow$ F4     & 111   & 99    & 1.12  & 76    & 8 & 13.88 \\
\hline
  F4 $\rightarrow$ F1     & 143   & 133   & 1.08  & 102   & 13    & 11.00 \\
  F4 $\rightarrow$ F2     & 48    & 47    & 1.02  & 36    & 4 & 12.00 \\
  F4 $\rightarrow$ F3     & 142   & 123   & 1.15  & 97    & 13    & 10.92\\
\hline
\end{tabular}
    \end{table*}
\lipsum[8-12]
\end{document}

您将获得:

在此处输入图片描述

编辑:

由于 OP 抱怨一开始没有明确指出答案,他的代码有什么问题,现在让我来做一下。他的代码不起作用是因为:

  • 在序言中你忘记添加\usepackage[table]{xolor}(或usepackage{colortbl}),因此你得到一系列错误(如果你强制编译):
! Undefined control sequence.
<argument> |c|r|r|>{\columncolor 
                                 [gray]{0.8}}r|r|r|r|r|
l.11 ...|r|r|>{\columncolor[gray]{0.8}}r|r|r|r|r|}

? 

看来您反而纠正了这个错误强制编译,从而显示了结果。

  • 您的代码在使用环境begin{figure*}, which is not closed by\end{figure* but with\end{figure} (see differences in use of*` 时出现拼写错误。这会在编译时出现错误(您未提供),该错误清楚地表明了错误是什么:
! LaTeX Error: \begin{table*} on input line 14 ended by \end{table}.

您再次不考虑并强制编译而不是签出,为什么\columncolor没有定义

  • 这两个错误都在两个答案中提供的 MWE 中得到纠正。只需将获得的 MWE 和您的代码进行比较,就会显示出来。

  • 除了MWE中的这个更正之外,我的回答中还指出: 以下是一些题外的改进:并且没有明确提到更改了什么(假设这从 MWE 代码中可以看出)。对此深表歉意。但是,在评论中,您询问如何在单元格中添加更多垂直空间。这在我的评论中进行了解释,在附录回答并在代码注释中指出所有更改。为此,请在注释中告知我。

结论:您犯的主要错误是,在编译 MWE 时,您没有考虑编译过程中报告的错误,而是强制执行。因此,这会使 LaTeX 混乱并导致错误的结果。

答案2

您忘记添加

\usepackage[table]{xcolor}

也减少了尺寸以\scriptsize适合

在此处输入图片描述

\documentclass[journal]{IEEEtran}
\usepackage{lipsum}
\usepackage[table]{xcolor}
\begin{document}

\lipsum[1-18]

\begin{table}[h]
\scriptsize
\caption{Here is a smaple caption.}
\centering
\begin{tabular}{|c|r|r|>{\columncolor[gray]{0.8}}r|r|r|r|r|}             
\hline                                                                   
  Factories   & Scenario  & Lower     & Approx. & Missing     & Target    & Average \\
                  & Length    & Bound     & Factor   & Data   & Dairy Size    & Length \\
\hline 
  F1 $\rightarrow$ F2     & 28    & 27    & 1.04 & 20 & 4 & 7.00  \\
  F1 $\rightarrow$ F3     & 109   & 102   & 1.08  & 78    & 13    & 8.46  \\
  F1 $\rightarrow$ F4     & 83    & 74    & 1.12  & 55    & 8 & 10.38 \\    
\hline                                                                    
  F2 $\rightarrow$ F1     & 152   & 139   & 1.09  & 110   & 13    & 11.69 \\
  F2 $\rightarrow$ F3     & 143   & 132   & 1.08  & 109   & 13    & 11.00 \\
  F2 $\rightarrow$ F4     & 112   & 102   & 1.10  & 83    & 8 & 14.00 \\    
\hline                                                                    
  F3 $\rightarrow$ F1     & 152   & 130   & 1.17  & 105   & 13    & 11.69 \\
  F3 $\rightarrow$ F2     & 55    & 53    & 1.04  & 42    & 4 & 13.75 \\    
  F3 $\rightarrow$ F4     & 111   & 99    & 1.12  & 76    & 8 & 13.88 \\    
\hline                                                                
  F4 $\rightarrow$ F1     & 143   & 133   & 1.08  & 102   & 13    & 11.00 \\
  F4 $\rightarrow$ F2     & 48    & 47    & 1.02  & 36    & 4 & 12.00 \\    
  F4 $\rightarrow$ F3     & 142   & 123   & 1.15  & 97    & 13    & 10.92\\ 
\hline                                                                   
\end{tabular}                                                            
\end{table}   

\end{document}

相关内容