Tabularx 中没有细垂直线的表格(ACS Macro Letter 期刊风格的表格)

Tabularx 中没有细垂直线的表格(ACS Macro Letter 期刊风格的表格)

在此主题中 (https://tex.stackexchange.com/a/301036/229635) 解释了如何通过使用 tabularx 和 \columncolor 以及更改多列内的悬垂参数来使两个单元格之间的小垂直线消失。

现在我正在寻找一种方法来创建如本帖附图所示的表格。

我寻求您帮助的原因是,Bernard 于 2020 年 8 月 7 日更新的代码(参见上面的链接)没有创建适合我的文档文本宽度的表格。

换句话说:有没有办法摆脱 m{} 参数中使用的所有绝对值和多列,以便无论表格有多少列,表格仍然适合文本宽度,同时仍然实现颜色填充的悬垂参数以避免单元格之间出现细白线?我想在使用 \cellcolor 时创建一个没有网格线和浅灰色头行的表格,并且在颜色填充的单元格之间没有小垂直线。

提前感谢 Benson_G

图片参考:Worm, M.; Leibig, D.; Dingels, C.; Frey, H. 可裂解聚乙二醇:3,4-环氧-1-丁烯作为共聚单体在生理相关 pH 下建立降解性。ACS Macro Letters2016,5(12), 1357–1363

在此处输入图片描述

\documentclass[a4paper,10pt, enabledeprecatedfontcommands]{scrartcl} %Art des Dokuments, Schriftgröße etc.
\usepackage[utf8]{inputenc}%Direkte Angabe von Umlauten möglich 
\usepackage[left=3cm,right=2cm,top=2cm,bottom=2cm,includehead]{geometry}%Maße für die wissenschaftliche Arbeit
\usepackage[parfill]{parskip} %Bessere Seitenumbrüche
\usepackage[onehalfspacing]{setspace} %Zeilenabstand
\usepackage[T1]{fontenc} %Silbentrennung
\usepackage[english]{babel} %Sprachanpassungen
\usepackage{graphicx} %Einfügen von Bildern
\usepackage{tabularx} %Tabellen
\usepackage{booktabs} %Weitere Möglichkeiten für Tabellen
\usepackage{here} %Lage von Tabellen und Bildern 
\usepackage{units}
\usepackage{physics}
\usepackage{amsmath}
\usepackage{textgreek}
\usepackage{textcomp}
\usepackage{amssymb}
\usepackage[labelformat=simple]{subcaption}
\usepackage{float}
\usepackage{pdfpages}
\usepackage{lmodern} 
\usepackage{enumitem}
\usepackage[hyphens]{url}  %% be sure to specify the option 'hyphens'
% \usepackage[pdftex,bookmarksnumbered,hidelinks,breaklinks]{hyperref}
\usepackage[superscript]{cite}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault} 
\usepackage[version=3]{mhchem} %Summenformeln angeben
\usepackage[labelsep=period]{caption}
\usepackage[per-mode = reciprocal, output-decimal-marker={,}, exponent-product = {\cdot}]{siunitx} %Si-Einheiten
% \usepackage[colorlinks,
% pdfpagelabels,
% pdfstartview = FitH,
% bookmarksopen = true,
% bookmarksnumbered = true,
% linkcolor = black,
% plainpages = false,
% hypertexnames = false,
% citecolor = black]{hyperref}
\usepackage{color}
\usepackage{colortbl}

\definecolor{hellgrau}{rgb}{0.90,0.90,0.90}

\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{.}}}

\renewcommand\thesubfigure{\thefigure.\arabic{subfigure}}
\addtokomafont{captionlabel}{\bfseries}

\DeclareNewTOC[
  type=scheme,                         % Name der Umgebung
  types=schemes,                       % Erweiterung (\listofschemes)
  float,                               % soll gleiten
  floatpos=tbp,                        % voreingestellte Gleitparameter
  name=Scheme,                         % Name in Überschriften
  listname={Verzeichnis der Schemata}, % Listenname
                                       % counterwithin=chapter
]{los}

\begin{document}

\begin{table}[H]
\vspace{-1.8 \baselineskip}
  \centering
  \setlength\belowcaptionskip{5 pt}
  \caption{\textbf{Reaction mixture used for the synthesis of cyclohexanone 4-nitrophenylhydrazone.}}
    \begin{tabular}{cccccc}  
     \cellcolor{hellgrau} chemicals   &\cellcolor{hellgrau} \textit{M} $^a$ (g mol$^{\text{-1}}$)  &\cellcolor{hellgrau} \textit{n} $^a$(mol 10$^{\text{-4}}$)  &\cellcolor{hellgrau} \textit{V} $^a$ (mL) &\cellcolor{hellgrau}  \textit{m} $^a$ (g) &\cellcolor{hellgrau} $\varrho$ $^a$ (g mL$^{\text{-1}}$)\\
    Cyclohexanone               & 98.14   &  \multicolumn{4}{c}{0.5 mL of the destillate}    \\
    4-Nitrophenyl hydrazine     & 153.14  &  26    &   -  & 0.4   & -     \\
    Sulfuric acid               & 98.08   &  372   &   2  & 3.68  & 1.84 \\
    Water                       & 18.02   & 1664   &   3  & 3     & 1.00 \\
    Ethanol                     & 47.07   & 1678   &   10 & 7.9   & 0.79    \\
    \end{tabular} 
    \vspace{0.6 \baselineskip} \\
    \raggedright
    $^a$Molecular mass \textit{M}, amount of substance \textit{n}, volume \textit{V}, mass \textit{m},  density $\varrho$.
  \label{tab:ReactionMixtureCyclohexanone4-nitrophenylhydrazone}%
  \vspace{-1.8 \baselineskip}
\end{table}

\end{document}

答案1

像这样?

在此处输入图片描述

(红线表示页面布局)

  • 从您的文档示例中,我尝试制作 MWE(最小工作示例),因此从您的示例中删除了所有与您的问题无关的包和设置
  • 旧版本的软件包甚至弃用的软件包都会被指示并用最新版本替换
  • 对于使用表格的tabularx环境,其宽度设置为\textwidth,因此使用它们可以解决表格宽度应等于的问题\textwidth
  • 对于带有数字的列S,使用包中定义的列siunitx,这些列可以将数字对齐到小数点
  • 因为我怀疑你在表格标题中标明了“脚注”,我建议最好使用tnotes在中定义的脚注threeparttable,并描述它们的含义table notes

梅威瑟:

\documentclass[a4paper,10pt, 
               enabledeprecatedfontcommands]{scrartcl} %Art des Dokuments, Schriftgröße etc.
\usepackage[hmargin={3cm,2cm},vmargin=2cm,
            includehead]{geometry}%Maße für die wissenschaftliche Arbeit
%\usepackage[utf8]{inputenc}% now is default encoding 
\usepackage{lmodern}
\usepackage[T1]{fontenc} %Silbentrennung
\usepackage[english]{babel} %Sprachanpassungen
 
\usepackage[column=O]{cellspace}                % <-- new
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}
\addparagraphcolumntypes{X}
\usepackage{booktabs, tabularx, % Tabellen
            threeparttable}     % new 
\newcommand\mcx[1]{\multicolumn{1}{>{\centering\arraybackslash}OX}{#1}}
\renewcommand\TPTtagStyle{\bfseries}%for formating tags (in table, in items)

\usepackage[version=4]{mhchem}  % newest version
\usepackage{siunitx}% instead of units, which is deprecate
\usepackage[skip=1ex, format=plain, font=small, labelfont=bf]{caption}     % new
%\usepackage[labelformat=simple]{subcaption}
\usepackage[table]{xcolor}  % changed, instead of "color" and "colortbl"
\definecolor{hellgrau}{rgb}{0.90,0.90,0.90}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%


\begin{document}
    \begin{table}[ht]
    \centering
    \renewcommand\tabularxcolumn[1]{m{#1}}
\begin{threeparttable}
\caption{Reaction mixture used for the synthesis of cyclohexanone 4-nitrophenylhydrazone.}
\label{tab:ReactionMixtureCyclohexanone4-nitrophenylhydrazone}
    \begin{tabularx}{0.8\linewidth}{l 
                                    S[table-format=3.2]
                                    S[table-format=4.0]
                                    S[table-format=2.0]
                                    S[table-format=1.1]
                                    S[table-format=1.2]
                                    }
    \rowcolor{hellgrau} 
chemicals   & \mcx{$M$\tnote{a} (\si{\gram\per\mole})}  
                & \mcx{$n$\tnote{b} (\si{\gram\per\mole})}  
                    & \mcx{$V$\tnote{c}\par     (\si{\milli\liter})} 
                        & \mcx{$m$\tnote{d}\par     (\si{\gram})}
                            & \mcx{$\varrho$\tnote{e}\par (\si{\gram\per\mole})}          \\
% table body
Cyclohexanone           & 98.14   & \multicolumn{4}{c}{\SI{0.5}{\milli\liter} of the distillate} \\
4-Nitrophenyl hydrazine & 153.14  &  26    & {--} & 0.4   & {--}     \\
Sulfuric acid           & 98.08   &  372   &   2  & 3.68  & 1.84    \\
Water                   & 18.02   & 1664   &   3  & 3     & 1.00    \\
Ethanol                 & 47.07   & 1678   &   10 & 7.9   & 0.79    \\
    \bottomrule
    \end{tabularx}
    \begin{tablenotes}[flushleft, para]\footnotesize
\item[a]    $M$: Molecular mass
\item[b]    $n$: amount of substance , 
\item[c]    $V$: volume, 
\item[d]    $m$: mass,  
\item[e]    $\varrho$: density .
    \end{tablenotes}
\end{threeparttable}
    \end{table}
\end{document}

编辑:

  • 建议的表格设计宽度为\texwidth,但列数不能为任意数,如果您希望避免单元格内容重叠。换句话说,它受列内容大小的限制。

  • 如果表中没有数字,那么您可以在上面的 MWE 中使用X列说明符并省略\mcx在列标题中使用(但您的代码示例中不是这种情况)

答案2

与。{NiceTabular*}nicematrix

\documentclass{article}
\usepackage{nicematrix}
\usepackage{enumitem}

\begin{document}
\newcolumntype{-}{@{\extracolsep{\fill}}}

\begin{table}
\caption{Caption of my table\tabularnote{A tabular note.}}
\begin{NiceTabular*}{\textwidth}{c-c-c-c-c}
\CodeBefore
  \rowcolor{lightgray}{1}
\Body
  Col 1 & Col 2 & Col 3 & Col 4 & Col 5 \\
  text & text & text & text & text \\
  text & text & text & text & text \\
  text & text & text & text & text \\
  text & text & text & text & text \\
\end{NiceTabular*}
\end{table}

\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

上述代码的输出

相关内容