在此主题中 (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 节点)。