如何扩大表格的大小以超越整体文本的布局?
我的意思是,最初它看起来像这样:
我想制作如下表格:
以下是我的 LaTeX 代码(如果您需要的话):
\begin{table}[h!]
\begin{center}
\tiny \begin{tabular{||p{0.7cm}|p{1cm}|p{1cm}|p{1.5cm}|p{1cm}|p{1cm}|p{1cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|}
\hline
& PM & PB & MT\_RACHAT & TAUX & AGE & ANCIEN & RACHTOT & RACHPART & TAUXRACH\\ [0.8ex]
\hline\hline
Min & 0 & 0 &0 &0 & 0,1006 & 0& 0 & 0 & 0 \\
\hline
Median & 7 685 & 143.68 & 0 & 0 &64.3333&12.72&0&0&0 \\
\hline
Mean & 32 231 &886.31 &1541& 0.3449& 60.5677& 12.64& 809.7& 854.2& 1 541 \\
\hline
Max &3 528 826 &204 718.24& 1 358 526& 2.0000& 107.2355& 34.30& 925888.8& 1358526.1& 1 358 526 \\
[1ex]
\hline
\end{tabular}
\end{center}
\caption{tbale}
\end{table}
答案1
以下是一个可能的解决方案adjustbox
:
\documentclass{article}
\usepackage{lipsum}
\usepackage{adjustbox}
\begin{document}
\lipsum[1]
\begin{table}[h!]
\begin{center}
\tiny
\begin{adjustbox}{tabular=lll,center}
\begin{tabular}{||p{0.7cm}|p{1cm}|p{1cm}|p{1.5cm}|p{1cm}|p{1cm}|p{1cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|}
\hline
& PM & PB & MT\_RACHAT & TAUX & AGE & ANCIEN & RACHTOT & RACHPART & TAUXRACH\\[0.8ex]
\hline\hline
Min & 0 & 0 &0 &0 & 0,1006 & 0& 0 & 0 & 0 \\
\hline
Median & 7 685 & 143.68 & 0 & 0 &64.3333&12.72&0&0&0 \\
\hline
Mean & 32 231 &886.31 &1541& 0.3449& 60.5677& 12.64& 809.7& 854.2& 1 541 \\
\hline
Max &3 528 826 &204 718.24& 1 358 526& 2.0000& 107.2355& 34.30& 925888.8& 1358526.1& 1 358 526 \\[1ex]
\hline
\end{tabular}
\end{adjustbox}
\end{center}
\caption{table}
\end{table}
\lipsum[2]
\end{document}
答案2
另一种方法是将表格放在没有水平空间的居中框中,但考虑以其他方式格式化表格,以适应边距并在其他方面进行改进:
\documentclass{article}
\usepackage{geometry}
\usepackage{booktabs,parskip}
\usepackage{siunitx}
\usepackage{lipsum}
\begin{document}
\lipsum[6][1-8]
\begin{table}[h!]
\centering\makebox[0pt]{\tiny%
\begin{tabular}{|p{0.7cm}|p{1cm}|p{1cm}|p{1.5cm}|p{1cm}|p{1cm}|p{1cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|cccc}
\hline
& PM & PB & MT\_RACHAT & TAUX & AGE & ANCIEN & RACHTOT & RACHPART & TAUXRACH\\ [0.8ex]
\hline\hline
Min & 0 & 0 &0 &0 & 0,1006 & 0& 0 & 0 & 0 \\
\hline
Median & 7 685 & 143.68 & 0 & 0 &64.3333&12.72&0&0&0 \\
\hline
Mean & 32 231 &886.31 &1541& 0.3449& 60.5677& 12.64& 809.7& 854.2& 1 541 \\
\hline
Max &3 528 826 &204 718.24& 1 358 526& 2.0000& 107.2355& 34.30& 925888.8& 1358526.1& 1 358 526 \\
[1ex]
\hline
\end{tabular}}
\caption{wider table centered}
\end{table}
\begin{table}[h!]\tabcolsep2.4pt
\small%
\begin{tabular}{@{}l
S[table-format=7.0]
S[table-format=7.2]
S[table-format=7.0]
S[table-format=1.4]
S[table-format=3.4]
S[table-format=2.2]
S[table-format=5.1]
S[table-format=7.1]
S[table-format=7.0]
@{}}\toprule
& {\scriptsize PM} & {\scriptsize PB} & {\scriptsize MT\_RACHAT} & {\scriptsize TAUX} & {\scriptsize AGE} & {\scriptsize ANCIEN} & {\scriptsize RACHTOT} & {\scriptsize RACHPART} & {\scriptsize TAUXRACH}\\
\cmidrule(rl){2-2}
\cmidrule(rl){3-3}
\cmidrule(rl){4-4}
\cmidrule(rl){5-5}
\cmidrule(rl){6-6}
\cmidrule(rl){7-7}
\cmidrule(rl){8-8}
\cmidrule(rl){9-9}
\cmidrule(rl){10-10}
Min & 0 & 0 &0 &0 & 0.1006 & 0& 0 & 0 & 0 \\
Median & 7 685 & 143.68 & 0 & 0 &64.3333 &12.72&0&0&0 \\
Mean & 32231 &886.31 &1541& 0.3449& 60.5677& 12.64& 809.7& 854.2& 1541 \\
Max & 3528826 &204718.24& 1358526& 2.0000& 107.2355& 34.30& 925888.8& 1358526.1& 1358526 \\\bottomrule
\end{tabular}
\caption{better table, not centered, not exceding margins}
\end{table}
\lipsum[6][1-8]
\end{document}
答案3
我总是建议用户创建一个displaytbl
围绕他们tabular
s 的环境。一个典型的定义是:
\NewDocumentEnvironment{displaytbl}{}
{\begin{center}}
{\end{center}}
现在,如果我们想扩展到边缘,这是行不通的,但我们可以做一个小的修改,只允许displaytbl
以下内容:
\makeatletter % ❶
\NewDocumentEnvironment{displaytbl}{}
{
\@flushglue = 0pt plus1fil minus1in % ❷
\begin{center}
}
{\end{center}}
\makeatother
我们需要访问 LaTeX 的一个私有变量,因此在\makeatletter
定义之前我们将使用 ❶ displaytbl
。\makeatother
我们要更改的私有变量是\@flushglue
❷,默认情况下为0pt plus1fil
。通过向其添加一个minus
术语,我们允许事物进入边距。我将它设置为,1in
但您可能需要一个较小的值,具体取决于您的边距。Plain TeX 使用允许无限扩展到边距的值进行居中0pt plus1fil minus1fil
,但这可能会导致悄悄地将事物推入比您真正想要的更远的边距。设置硬限制可以更好地控制。
还要注意的是,设置必须完成前我们调用,否则在设置其左边距和右边距\begin{center}
时不会使用该值。\begin{center}