我正在做一个科学项目,它涉及将结果制成表格。我正在使用tabu
环境,但当我在第一行创建一个空单元格时,空单元格的左垂直边框仍然存在。为什么会发生这种情况?我该如何解决?谢谢。
这是我的代码:
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper}
\geometry{margin=2cm}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{array}
\usepackage{paralist}
\usepackage{verbatim}
\usepackage{subfig}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage ~of \pageref{LastPage}}\rfoot{}
\usepackage[nottoc,notlof,notlot]{tocbibind}
\usepackage[titles,subfigure]{tocloft}
\renewcommand{\cftsecfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecpagefont}{\rmfamily\mdseries\upshape}
\usepackage[version=4]{mhchem}
\usepackage{tikz}
\usepackage{float}
\usepackage{siunitx}
\usepackage{tabu}
\usepackage{longtable}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{setspace}
\onehalfspacing
\usepackage[backend=biber, style=chem-acs, citestyle=authoryear]{biblatex}
\bibliography{Biblio} %%%"Biblio" is my .bib file.
\begin{document}
\begin{table}[H]
\centering
\begin{tabu} to 1.1\textwidth{| X[l] | X[l] | X[l] | X[l] | X[c] | X[c] |}
%\tabulinesep{2pt}
\cline{2-6}
& \multicolumn{3}{ c |}{Voltage measured (V)} & \multirow{2}{*}{\thead{Mean\\ voltage (V)}} & \multirow{2}{*}{\thead{Standard\\ deviation}}\\
\cline{1-4}
Temperature (\SI{}{\degree}C) & Replicate 1 & Replicate 2 & Replicate 3 & &\\
\hline
10 & 1.79 & 1.78 & 1.79 & $\frac{1.79+1.78+1.79}{3}=1.78$ & 0.00577\\
\hline
30 & 1.82 & 1.83 & 1.84 & $\frac{1.82+1.83+1.84}{3}=1.83$ & 0.01\\
\hline
50 & 1.92 & 1.93 & 1.90 & $\frac{1.92+1.93+1.90}{3}=1.92$ & 0.0152\\
\hline
70 & 1.88 & 1.86 & 1.85 & $\frac{1.88+1.86+1.85}{3}=1.86$ & 0.0152\\
\hline
90 & 1.73 & 1.76 & 1.77 & $\frac{1.73+1.76+1.77}{3}=1.75$ & 0.0208\\
\hline
\end{tabu}
\caption{Table of raw data}
\label{tbl:rawdata}
\end{table}
\end{document}
这给了我下表:
我已在上面的照片中圈出有问题的边缘。
答案1
该问题是由表 ( \textwidth{| X[l] | X[l] | X[l] | X[l] | X[c] | X[c] |}
) 的全局定义引起的,它为每一列创建了一条垂直线。
诀窍是通过创建“单列多列单元格”来覆盖此行为。实际上,multicols
允许您重新定义此特定列的样式。因此,您应该添加\multicolumn{1}{c|}{}
第一个单元格。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\usepackage{tabu}
\usepackage{longtable}
\usepackage{makecell}
\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\begin{tabu} to 1.1\textwidth{| X[l] | X[l] | X[l] | X[l] | X[c] | X[c] |}
\cline{2-6}
\multicolumn{1}{c|}{} & \multicolumn{3}{c|}{Voltage measured (V)} & \multirow{2}{*}{\thead{Mean\\ voltage (V)}} & \multirow{2}{*}{\thead{Standard\\ deviation}}\\
\cline{1-4}
Temperature (\SI{}{\degree}C) & Replicate 1 & Replicate 2 & Replicate 3 & &\\
\hline
10 & 1.79 & 1.78 & 1.79 & $\frac{1.79+1.78+1.79}{3}=1.78$ & 0.00577\\
\hline
\end{tabu}
\end{table}
\end{document}
附言:
- 您使用的示例远非最简洁,也就是说,您的大部分代码似乎与您在此处提出的问题无关。请将示例限制为仅显示您的问题所需的代码。您可以查看本指南介绍如何修剪代码为此目的,这个了解有关最小工作示例(MWE)的更多信息。
- 您正在加载。它确实是一个很棒的数组包。请毫不犹豫地在表格中
booktabs
使用\toprule
、\midrule
和。(使用 booktab 的方法(即没有垂直线)也可能是避免此类问题的一种方法。\bottomrule
- 我不熟悉
tabu
,因为我几乎没见过。你可能想看看一些其他包裹(值得注意的是tabularx
,它们tabulary
具有相似的功能)。 (但我不知道它们是否更好。)