我请求你的帮助。我需要为我的硕士论文制作一个复杂的表格(对于我的 LaTeX 新手水平而言)。
- 这就是我想要做的表格:
我尝试了一些代码,但总是得到一个致命错误,如下所示:
\begin{table}[H]
\centering
\begin{tabular}{|l|l|}
& \multicolumn{3}{c}{Entreprises}\\
\hline
& \multicolumn{2}{c}{Baidu} & \multicolumn{2}{c}{Huawei} & \multicolumn{2}{c}{Tencent} \\ \hline
Années & \multicolumn{2}{c}{Croissance des revenus bruts (USD | RMB)} & \multicolumn{2}{c}{Croissance des profits nets (USD | RMB)} & Croissance des revenus bruts (RMB) & Croissance des profits nets (RMB) & Croissance des revenus bruts (RMB) & Croissance des profits nets (RMB) \\ \hline \hline
\renewcommand{\arraystretch}{2}
2007-2008 & 96,03\% & 83,34\% & 78,17 \% & 66,64\% & 33,50\% & 132,72\% & 83,25\% & 79,57\%\\
\end{tabular}
\renewcommand{\arraystretch}{1}
\caption{Croissance des revenus et profits des BATX chinoises.}
\captionsetup{font={footnotesize, bf}}
\caption*{Source : CNNIC, Rapports statistiques. Réalisé par l'auteur.}
\label{table:2}
\end{table}
你们能试着帮助我吗?我将非常感激!:)
纪尧姆。
编辑 1bis。
谢谢你的帮助!但是,我对你的表格有疑问,因为数据太完整,表格离开页面。
这是我的第一张表的代码:
\documentclass[a4paper,12pt]{book}
\usepackage[left=30mm,top=30mm,right=30mm,bottom=30mm]{geometry}
\usepackage{bookmark, tabularx, varwidth, nicematrix, array, tabularray, ragged2e}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{D}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth\relax}C}
\newcolumntype{H}{>{\setbox0=\hbox\bgroup}c<{\egroup}@{}}
\newcolumntype{Z}{>{\setbox0=\hbox\bgroup}c<{\egroup}@{\hspace*{-\tabcolsep}}}
\newcommand{\mcA}[2]{\multicolumn{#1}{c|}{#2}} % just to save some keystrokes
\newcommand{\mcB}[2]{\multicolumn{#1}{c}{#2}} % just to save some keystrokes
\newcolumntype{L}{>{\RaggedRight}X}
\begin{table}[htbp]
\centering
\begin{tabular}{|l|*{8}{c|}}
\hline
& \mcA{8}{\textbf{Croissances des entreprises}} \\ \cline{2-9}
& \mcA{4}{\textbf{Baidu}} & \mcA{2}{\textbf{Huawei}} & \mcA{2}{\textbf{Tencent}} \\ \hline
\textbf{Années} & \mcA{2}{Revenus bruts (RMB | USD)} & \mcA{2}{Profits (RMB | USD)} & Revenus bruts (RMB) & Profits (RMB) & Revenus bruts (RMB) & Profits (RMB) \\ \hline
\textbf{2007-2008} & 83,34\% & 96,03\% & 66,64\% & 78,17\% & 33,50\% & 132,74\% & 83,25\% & 79,57\% \\ \hline
\end{tabular}
\caption{Croissance des revenus et profits des BATX chinoises.
\centering
\newline\footnotesize\textbf{Source: Rapports annuels des entreprises concernées. Réalisé par l'auteur.}}
\label{tab:2}
\end{table}
\end{document}
编辑2。
谢谢 Zarko!你的表格很完美。很抱歉我的 MWE 不好。我是 LaTeX 新手,而且我的文件非常复杂,难以理解,而且包含所有软件包。所以我不想和你分享所有的混乱。
对于您的表格,我只有一个问题:是否可以将斜体从注释{Source}中删除?
答案1
{NiceTabular}
这里是一种使用构建表格的方法nicematrix
。
\documentclass{article}
\usepackage{caption}
\usepackage{nicematrix}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Croissance des revenus et profits des BATX chinoises}
\begin{NiceTabular}
[
cell-space-limits = 3pt ,
tabularnote = { \footnotesize Source: CNNIC, Rapports statistiques. Réalisé par l'auteur. } ,
hvlines,
corners,
]
{>{\bfseries}l*{8}{w{c}{5mm}}}
\RowStyle[nb-rows=2]{\bfseries}
& \Block{1-8}{Entreprises} \\
& \Block{1-4}{Baidu} &&&& \Block{1-2}{Huawei} && \Block{1-2}{Tencent} \\
Années & \Block{1-2}{A} && \Block{1-2}{B} && A & B & A & B \\
2007 & 1a & 1b & 2a & 2b & 3 & 4 & 5 & 6 \\
\end{NiceTabular}
\label{tab:1}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
booktabs
但是,我强烈建议采用符合以下精神的设计booktabs
(参见 Οὖτις 的回答)。
答案2
欢迎来到 TeX.SE!让我向您展示两种可能的解决方案。其中一种更接近您的手工草图,另一种我认为更专业,因为它在水平规则处增加了一些空间并避免了垂直线,后者是booktabs
文档:
- 永远不要使用垂直规则。
- 切勿使用双重规则
\documentclass{article}
\usepackage{booktabs}
\newcommand{\mcA}[2]{\multicolumn{#1}{c|}{#2}} % just to save some keystrokes
\newcommand{\mcB}[2]{\multicolumn{#1}{c}{#2}} % just to save some keystrokes
\begin{document}
\begin{table}[htbp]
\centering
\begin{tabular}{|l|*{8}{c|}}
\hline
& \mcA{8}{\textbf{Entreprises}} \\ \cline{2-9}
& \mcA{4}{\textbf{Baidu}} & \mcA{2}{\textbf{Huawei}} & \mcA{2}{\textbf{Tencent}} \\ \hline
\textbf{Années} & \mcA{2}{A} & \mcA{2}{B} & A & B & A & B \\ \hline
\textbf{2007} & 1a & 1b & 2a & 2b & 3 & 4 & 5 & 6 \\ \hline
\end{tabular}
\caption{Croissance des revenus et profits des BATX chinoises. \footnotesize\textbf{Source: CNNIC, Rapports statistiques. Réalisé par l'auteur.}}
\label{tab:1}
\end{table}
\begin{table}[htbp]
\centering
\begin{tabular}{l*{8}{c}}
\toprule
& \mcB{8}{\textbf{Entreprises}} \\ \cmidrule(lr){2-9}
& \mcB{4}{\textbf{Baidu}} & \mcB{2}{\textbf{Huawei}} & \mcB{2}{\textbf{Tencent}} \\ \cmidrule(lr){2-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9}
\textbf{Années} & \mcB{2}{A} & \mcB{2}{B} & A & B & A & B \\
\textbf{2007} & 1a & 1b & 2a & 2b & 3 & 4 & 5 & 6 \\ \bottomrule
\end{tabular}
\caption{Croissance des revenus et profits des BATX chinoises. \footnotesize\textbf{Source: CNNIC, Rapports statistiques. Réalisé par l'auteur.}}
\label{tab:2}
\end{table}
\end{document}
答案3
- 您没有提供 MWE(最小工作示例),因此没有关于所用文档类别或文档中页面布局的任何信息。
- 表格很宽,因此一些文本应该分成几行(大约三行)
- 不清楚您的表有多少行数据,也不清楚数据是什么。到目前为止,我们假设其他行可能有类似的数据
- 通过猜测遗漏的信息,您的表格可以是:
\documentclass{article}
\usepackage{geometry}
\usepackage[T1]{fontenc}
\usepackage{tabularray}
\UseTblrLibrary{siunitx}
\NewTableCommand\mc[1]{\SetCell[c=#1]{c}}
\begin{document}
\begin{table}[htbp]
\centering
\small
\begin{talltblr}[
caption = {Croissance des revenus et profits des BATX chinoises.},
label = {tab:2},
remark{Source} = {Rapports annuels des entreprises concernées. Réalisé par l'auteur.}
]{hline{1,2} = {2-Z}{solid}, hline{3-Z} = {1-Z}{solid},
vline{1} = {3-Z}{solid}, vline{2-Z} = {1-Z}{solid},
colspec = { Q[font=\bfseries]
*{8}{X[c,m, font=\linespread{0.84}\selectfont,
si = {table-format=3.2{\,\%}}]} },
colsep=2pt,
row{1,2} = {font=\bfseries}, % <---
row{1-3} = {guard}, % <---
cell{4-Z}{2-Z} = {appto={\,\%}}
}
& \mc{8} Croissances des entreprises
& & & & & & & \\
& \mc{4} Baidu
& & & & \mc{2} Huawei
& & \mc{2} Tencent
& \\
Années
& \mc{2} {Revenus bruts\\ (RMB | USD)}
& & \mc{2} {Profits\\ (RMB | USD)}
& & Revenus bruts (RMB)
& Profits (RMB)
& Revenus bruts (RMB)
& Profits (RMB) \\
2007-2008
& 83,34
& 96,03
& 66,64
& 78,17
& 33,50
& 132,74
& 83,25
& 79,57 \\
\end{talltblr}
\end{table}
\end{document}
- 显示的表格宽度等于文本块宽度。
- 用于表格
talltblr
的tabularray
包。它允许在表格下方添加注释和备注 - 如果表格中有几行包含数字数据,您可能会考虑单元格中的数字格式考虑在小数点处对齐。这可以通过使用模拟包的列类型的
si
选项来实现。- 添加的最后两行是哑元。它们只显示这些行中的数字格式。S
siunitx
编辑:
如果您希望将表格注释(备注)以向上的形式显示出来(在所有表格中),请在文档序言中插入以下代码行:
\SetTblrStyle{remark-tag}{font=\bfseries\upshape}
\SetTblrStyle{remark-text}{font=\small\bfseries}
从编辑的问题可以看出,您还更改了表格设计。我建议投诉此更改,您需要将表格序言更改为:
]{hline{1,2} = {2-Z}{solid}, hline{3-Z} = {1-Z}{solid},
vline{1} = {3-Z}{solid}, vline{2-Z} = {1-Z}{solid},
colspec = { Q[font=\bfseries]
*{8}{X[c,m, font=\linespread{0.84}\selectfont,
si = {table-format=3.2}]} }, % <---
colsep=4pt,
row{1,2}= {font=\bfseries},
row{1-3} = {guard},
}
并相应地更改表体第一行中的测试。结果是: