LaTeX 表格中完整的垂直线

LaTeX 表格中完整的垂直线

以下代码:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{tabularx}
\usepackage{chemfig}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{caption} 

\begin{document}

\maketitle
% Table generated by Excel2LaTeX from sheet 'Hoja1'
\begin{table}[htbp]
  \centering
  \caption{Add caption}
    \begin{tabular}{|c|c|c|}
    \toprule
    \multicolumn{1}{|p{5.215em}|}{Case Study} & \multicolumn{1}{p{4.57em}|}{H2O inlet (m/s)} & \multicolumn{1}{p{4.5em}|}{CO2 inlet (m/s)} \\
    \midrule
    1     & \multirow{3}[6]{*}{0.05} & 0.75 \\
\cmidrule{1-1}\cmidrule{3-3}    2     &       & 1 \\
\cmidrule{1-1}\cmidrule{3-3}    3     &       & 1.5 \\
    \midrule
    4     & \multirow{3}[6]{*}{0.075} & 0.75 \\
\cmidrule{1-1}\cmidrule{3-3}    5     &       & 1 \\
\cmidrule{1-1}\cmidrule{3-3}    6     &       & 1.5 \\
    \midrule
    7     & \multirow{3}[6]{*}{0.1} & 0.75 \\
\cmidrule{1-1}\cmidrule{3-3}    8     &       & 1 \\
\cmidrule{1-1}\cmidrule{3-3}    9     &       & 1.5 \\
    \bottomrule
    \end{tabular}%
  \label{tab:addlabel}%
\end{table}%

\end{document}

生成如图所示的表格。 在此处输入图片描述

我想完成垂直线。我该怎么做?

答案1

干脆不要使用booktabs,改用\hline\cline。请注意,自动生成的标记有点过于复杂。

\documentclass{article}
\usepackage{multirow}
\begin{document}

\begin{tabular}{|c|c|c|}
\hline
Case Study & H2O inlet (m/s) & CO2 inlet (m/s) \\
\hline
1     & \multirow{3}{*}{0.05} & 0.75 \\
\cline{1-1}\cline{3-3}    2     &       & 1 \\
\cline{1-1}\cline{3-3}    3     &       & 1.5 \\
\hline
4     & \multirow{3}{*}{0.075} & 0.75 \\
\cline{1-1}\cline{3-3}    5     &       & 1 \\
\cline{1-1}\cline{3-3}    6     &       & 1.5 \\
\hline
7     & \multirow{3}{*}{0.1} & 0.75 \\
\cline{1-1}\cline{3-3}    8     &       & 1 \\
\cline{1-1}\cline{3-3}    9     &       & 1.5 \\
\hline
\end{tabular}

\end{document}

在此处输入图片描述

如果你确实想使用,booktabs你真的应该删除垂直线,并使用类似

\documentclass{article}
\usepackage{multirow, booktabs}
\begin{document}

\begin{tabular}{ccc}
\toprule
Case Study & H2O inlet (m/s) & CO2 inlet (m/s) \\
\midrule
1     & \multirow{3}{*}{0.05} & 0.75 \\
2     &       & 1 \\
3     &       & 1.5 \\
\midrule
4     & \multirow{3}{*}{0.075} & 0.75 \\
5     &       & 1 \\
6     &       & 1.5 \\
\midrule
7     & \multirow{3}{*}{0.1} & 0.75 \\
8     &       & 1 \\
9     &       & 1.5 \\
\bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

答案2

手册booktabs上说“永远不要使用垂直规则”

但是,您可以按照如下方式减少垂直规则中的间距:

\setlength{\aboverulesep}{0.1ex}  % default 0.4ex
\setlength{\belowrulesep}{0.1ex}  % default 0.65ex

这样做当然违背了booktabs包的目的,但这取决于你

答案3

包中的垂直线nicetabular与包tabularray中定义的规则配合得很好booktabs。例如,MWE 使用tabularray数字S列中的列类型,如下所示:

\documentclass{article}

\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\usepackage{chemfig}  % if needed
\usepackage[version=4]{mhchem}
\usepackage{caption}

\begin{document}
    \begin{table}[ht]
    \sisetup{per-mode = symbol}
    \centering
\caption{Add caption}
\label{tab:addlabel}
    \begin{tblr}{hline{2-Y}, vlines,
                 colspec = {Q[c,m, wd=5em] 
                            Q[c,m, si={table-format=1.3}, wd=5em]
                            Q[c,m, si={table-format=1.2}, wd=5em]}
                 }
    \toprule
{Case\\ Study}
    & {{{ \ce{H2O} inlet\\ (\si{\meter\per\second}) }}}
        & {{{\ce{CO2} inlet\\ (\si{\meter\per\second})}}}   \\
1   & \SetCell[r=3]{m}  0.05    & 0.75  \\
2   &                           & 1     \\
3   &                           & 1.5   \\
4   & \SetCell[r=3]{m}  0.075   & 0.75  \\
5   &                           & 1     \\
6   &                           & 1.5   \\
7   & \SetCell[r=3]{m}  0.1     & 0.75  \\
8   &                           & 1     \\
9   &                           & 1.5   \\
    \bottomrule
    \end{tblr}
    \end{table}
\end{document}

在此处输入图片描述

相关内容