![为什么我的多列表格*从右列开始并超出页面范围 (IEEEtran)?](https://linux22.com/image/412770/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E5%A4%9A%E5%88%97%E8%A1%A8%E6%A0%BC*%E4%BB%8E%E5%8F%B3%E5%88%97%E5%BC%80%E5%A7%8B%E5%B9%B6%E8%B6%85%E5%87%BA%E9%A1%B5%E9%9D%A2%E8%8C%83%E5%9B%B4%20(IEEEtran)%EF%BC%9F.png)
我正在使用 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}