
我正在寫一篇論文,遇到以下問題:
我想觀察標題「最終分析」位於包含 C、H、N、S 和 O 值的列的中心和上方。
與標題「近似分析」類似,位於包含 VM、FC 和 Ash 值的列的中心和上方。
\documentclass[preprint,12pt]{elsarticle}
% !TeX spellcheck = en_US
\usepackage{multirow} % para las tablas
\usepackage{siunitx}% paquete para manejo de números y unidades
\sisetup{detect-weight, detect-display-math}
\sisetup{detect-inline-weight=math}
\sisetup{mode=text,per-mode=symbol}% modo de unidades con barra en lugar de fracción de tamaño reducido
\usepackage{booktabs}% para tablas
\usepackage{graphicx}% para gráficos
\usepackage{pgfplots}% para gráficos
\usepackage{pdflscape}% para gráficos
\pgfplotsset{compat=newest}% para gráficos
\usetikzlibrary{plotmarks}% para gráficos
\usetikzlibrary{arrows.meta}% para gráficos
\usepgfplotslibrary{patchplots}% para gráficos
\newlength\fwidth% definido en el código de Matlab
\setlength{\fwidth}{0.8\textwidth}% defino valor de parámetro fwidth de gráficos
\usepackage{tikzscale}% para gráficos
\pgfplotsset{plot coordinates/math parser=false}% para gráficos
\usepackage{overpic}% figuras
\usepackage{tikz}% figuras
\pgfplotsset{compat=1.15}
\usepackage{float}
\usepackage[margin=2.5cm]{geometry}% setea márgenes de hoja
\usepackage{bicaption}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{}
\usepackage[skip=1ex, labelfont=bf]{caption}
\usepackage[skip=0.333\baselineskip]{caption}
\usepackage{amssymb,amsmath}
\usepackage{tabularx}
\usepackage{url}
\def\UrlFont{\normalfont}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\setlength{\fwidth}{0.8\textwidth}
\biboptions{sort&compress}
\bibliographystyle{unsrt}
\usepackage{subcaption}
\journal{Applied Energy}
\begin{document}
\begin{table} [H]
\setlength\tabcolsep{4pt}
\caption{Characteristics of OS and biomass samples.}
\label{Chemical properties of OS and the blends}
\begin{tabularx}{\textwidth}{@{}l *{8}{C} @{}}
\toprule
Material
& \multicolumn{4}{>{\hsize=\dimexpr4\hsize+8\tabcolsep\relax}C}{\textbf{Ultimate analysis}}
& \multicolumn{4}{>{\hsize=\dimexpr4\hsize+8\tabcolsep\relax}C}{\textbf{Proximate analysis}}\\
& \multicolumn{4}{c}{(wt. \%)}
& \multicolumn{4}{c}{(wt. \%)}\\
\cmidrule(lr){2-6} \cmidrule(lr){7-9}
& \textbf{C} &\textbf{ H} & \textbf{N} & \textbf{S}& \textbf{O}$^\gamma$ & \textbf{VM} & \textbf{FC} $^{\varphi}$ & \textbf{Ash}\\
\midrule
\textbf{OS} &9.3 &2.3 &0.2 &4.0 & 11.6 &24.0 &3.4 &72.6 \\
\textbf{GP}&48.8 &6.0 &1.9 &0.2& 35.7 &72.7 &19.9 &7.4 \\
\textbf{RH}&35.3 &4.7 &0.3 &0.1& 37.8 &64.4 & 12.8 &21.8 \\
\textbf{EG}& 48.2&5.9 & $<$D.L&$<$D.L&45.7 &88.5 &11.3 &0.24\\
\bottomrule
\end{tabularx}
\smallskip\footnotesize
VM: volatile matter, FC: Fixed carbon, D.L: detention limit. All values are expressed in dry basis.\\
$\varphi$: Determined by difference: $\text{FC}=100\%-\text{VM}\%-\text{Ash}\%$.\\
All reported values are given with an error of 1\% of the value.\\
$^\gamma$: Determined by difference: \%O = 100\% - C\% - H\% - N\% - S\% - Ash\%.\\
\end{table}
\end{document}
答案1
您的程式碼的問題是您想要將第 5 列和第 3 列置中,而不是像程式碼中的第 4 列和第 4 列那樣居中:
& \multicolumn{5}{c}{\textbf{Ultimate analysis}} % <========
& \multicolumn{3}{c@{}}{\textbf{Proximate analysis}}\\ % <=====
& \multicolumn{5}{c}{(wt. \%)} % <==========================
& \multicolumn{3}{c@{}}{(wt. \%)}\\ % <========================
完整修正的 MWE
\documentclass[preprint,12pt]{elsarticle}
% !TeX spellcheck = en_US
\usepackage{multirow} % para las tablas
\usepackage{siunitx}% paquete para manejo de números y unidades
\sisetup{detect-weight, detect-display-math}
\sisetup{detect-inline-weight=math}
\sisetup{mode=text,per-mode=symbol}% modo de unidades con barra en lugar de fracción de tamaño reducido
\usepackage{booktabs}% para tablas
\usepackage{graphicx}% para gráficos
\usepackage{pgfplots}% para gráficos
\usepackage{pdflscape}% para gráficos
\pgfplotsset{compat=newest}% para gráficos
\usetikzlibrary{plotmarks}% para gráficos
\usetikzlibrary{arrows.meta}% para gráficos
\usepgfplotslibrary{patchplots}% para gráficos
\newlength\fwidth% definido en el código de Matlab
\setlength{\fwidth}{0.8\textwidth}% defino valor de parámetro fwidth de gráficos
\usepackage{tikzscale}% para gráficos
\pgfplotsset{plot coordinates/math parser=false}% para gráficos
\usepackage{overpic}% figuras
\usepackage{tikz}% figuras
\pgfplotsset{compat=1.15}
\usepackage{float}
\usepackage[margin=2.5cm]{geometry}% setea márgenes de hoja
\usepackage{bicaption}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{}
\usepackage[skip=1ex, labelfont=bf]{caption}
\usepackage[skip=0.333\baselineskip]{caption}
\usepackage{amssymb,amsmath}
\usepackage{tabularx}
\usepackage{url}
\def\UrlFont{\normalfont}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\setlength{\fwidth}{0.8\textwidth}
\biboptions{sort&compress}
\bibliographystyle{unsrt}
\usepackage{subcaption}
\journal{Applied Energy}
\begin{document}
\begin{table} [H]
\setlength\tabcolsep{4pt}
\caption{Characteristics of OS and biomass samples.}
\label{Chemical properties of OS and the blends}
\begin{tabularx}{\textwidth}{@{}l *{8}{C} @{}}
\toprule
Material
& \multicolumn{5}{c}{\textbf{Ultimate analysis}} % <========
& \multicolumn{3}{c@{}}{\textbf{Proximate analysis}}\\ % <=====
& \multicolumn{5}{c}{(wt. \%)} % <==========================
& \multicolumn{3}{c@{}}{(wt. \%)}\\ % <========================
\cmidrule(lr){2-6} \cmidrule(lr){7-9}
& \textbf{C} &\textbf{ H} & \textbf{N} & \textbf{S}& \textbf{O}$^\gamma$ & \textbf{VM} & \textbf{FC} $^{\varphi}$ & \textbf{Ash}\\
\midrule
\textbf{OS} &9.3 &2.3 &0.2 &4.0 & 11.6 &24.0 &3.4 &72.6 \\
\textbf{GP}&48.8 &6.0 &1.9 &0.2& 35.7 &72.7 &19.9 &7.4 \\
\textbf{RH}&35.3 &4.7 &0.3 &0.1& 37.8 &64.4 & 12.8 &21.8 \\
\textbf{EG}& 48.2&5.9 & $<$D.L&$<$D.L&45.7 &88.5 &11.3 &0.24\\
\bottomrule
\end{tabularx}
\smallskip\footnotesize
VM: volatile matter, FC: Fixed carbon, D.L: detention limit. All values are expressed in dry basis.\\
$\varphi$: Determined by difference: $\text{FC}=100\%-\text{VM}\%-\text{Ash}\%$.\\
All reported values are given with an error of 1\% of the value.\\
$^\gamma$: Determined by difference: \%O = 100\% - C\% - H\% - N\% - S\% - Ash\%.\\
\end{table}
結果:
答案2
由於標題應該分別跨越 5 和 3 列,且標題儲存格中不允許換行,因此您應該替換
& \multicolumn{4}{>{\hsize=\dimexpr4\hsize+8\tabcolsep\relax}C}{\textbf{Ultimate analysis}}
& \multicolumn{4}{>{\hsize=\dimexpr4\hsize+8\tabcolsep\relax}C}{\textbf{Proximate analysis}}\\
& \multicolumn{4}{c}{(wt. \%)}
& \multicolumn{4}{c}{(wt. \%)}\\
和
& \multicolumn{5}{c}{\textbf{Ultimate analysis}}
& \multicolumn{3}{c@{}}{\textbf{Proximate analysis}}\\
& \multicolumn{5}{c}{(wt. \%)}
& \multicolumn{3}{c@{}}{(wt. \%)}\\
另一方面,如果您認為應該保留標題單元格的自動換行功能,則應該對相關的四行使用以下程式碼:
& \multicolumn{5}{>{\hsize=\dimexpr5\hsize+8\tabcolsep\relax}C}{\textbf{Ultimate analysis}}
& \multicolumn{3}{>{\hsize=\dimexpr3\hsize+4\tabcolsep\relax}C@{}}{\textbf{Proximate analysis}}\\
& \multicolumn{5}{c}{(wt. \%)}
& \multicolumn{3}{c@{}}{(wt. \%)}\\
無論哪種方式,都需要@{}
在列定義中新增粒子,因為整體tabularx
規格會抑製表格右側邊緣的空白。
附錄- 如果這是我的表,我願意不是使用一個tabularx
環境,因為既沒有必要也沒有理由允許在任何儲存格中自動換行。相反,我會使用tabular*
寬度設定為 的環境\textwidth
。我還會為標題提供更多結構,並且我會刪除所有粗體字以免給人留下對讀者大喊大叫的印象。重要的是,我將為所有 8 個資料列使用S
列類型(由套件提供siunitx
),以允許在各自的小數標記上對齊數字。
\documentclass[preprint,12pt,numbers]{elsarticle}
% !TeX spellcheck = en_US
\journal{Applied Energy}
%% Commented out instructions of no relevance to the table at hand.
%\usepackage{multirow}
\usepackage{siunitx}
\sisetup{detect-weight,
detect-display-math,
detect-inline-weight=math,
mode=text,
per-mode=symbol}
\usepackage{booktabs}
\usepackage{graphicx}
%\usepackage{pdflscape}
%\usepackage{pgfplots}
%\pgfplotsset{compat=newest}
%\usetikzlibrary{plotmarks}
%\usetikzlibrary{arrows.meta}
%\usepgfplotslibrary{patchplots}
%\usepackage{tikzscale}
%\pgfplotsset{plot coordinates/math parser=false}
%\usepackage{overpic}
%\usepackage{tikz}
%\pgfplotsset{compat=1.15}
%\newlength\fwidth
%\setlength{\fwidth}{0.8\textwidth}
\usepackage{float}
\usepackage[margin=2.5cm]{geometry}
%\usepackage{makecell}
%\renewcommand\theadfont{\bfseries}
%\renewcommand\theadgape{}
\usepackage{caption,subcaption}
\captionsetup{skip=1ex,labelfont=bf}
\usepackage{amssymb,amsmath,tabularx,url}
\def\UrlFont{\normalfont}
\biboptions{sort&compress}
\bibliographystyle{elsarticle-num} % or "unsrtnat"
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut macro
\begin{document}
\begin{table}[H]
\setlength\tabcolsep{0pt} %
\caption{Characteristics of OS and biomass samples.}
\label{tab:characteristics}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}
l
S[table-format=2.1]
*{3}{S[table-format=1.1]}
*{3}{S[table-format=2.1]}
S[table-format=2.2] }
\toprule
Material & \multicolumn{8}{c}{Type of Analysis}\\
\cmidrule{2-9}
& \multicolumn{5}{c}{Ultimate}
& \multicolumn{3}{c}{Proximate}\\
& \multicolumn{5}{c}{(wt.\ \%)}
& \multicolumn{3}{c}{(wt.\ \%)}\\
\cmidrule{2-6} \cmidrule{7-9}
& \mc{C} & \mc{H} & \mc{N} & \mc{S} & \mc{O$^\gamma$}
& \mc{VM} & \mc{FC$^{\varphi}$} & \mc{Ash}\\
\midrule
OS & 9.3 &2.3 &0.2 &4.0 &11.6 &24.0 &3.4 &72.6 \\
GP &48.8 &6.0 &1.9 &0.2 &35.7 &72.7 &19.9 & 7.4 \\
RH &35.3 &4.7 &0.3 &0.1 &37.8 &64.4 &12.8 &21.8 \\
EG & 48.2&5.9 &{$<$D.L} &{$<$D.L}&45.7 &88.5 &11.3 &0.24\\
\bottomrule
\end{tabular*}
\medskip
\footnotesize
VM: volatile matter, FC: Fixed carbon, D.L: detention limit. All values are expressed in dry basis.
All reported values are given with an error of 1\% of the value.
$^\gamma$: Determined by difference: \%O = 100\% $-$ C\% $-$ H\% $-$ N\% $-$ S\% $-$ Ash\%.
$^\varphi$: Determined by difference: FC = 100\% $-$ VM\% $-$ Ash\%.
\end{table}
\end{document}