扩展表格以使用页面宽度

扩展表格以使用页面宽度

我通常使用tabletabu环境来创建表格。我是 LaTeX 的新手,一段时间后我意识到当表格使用整个页面宽度而不是仅居中时,它们看起来会更好。我首先尝试\begin{tabu} to \textwidth {ccccccc}使用tabu环境,因为这是我首选的环境。但这似乎根本没有效果,所以我尝试了包,adjustbox但问题是,即使我只是从参数中定义width=\textwidth和删除totalheight=\textheight和,keepaspectratio表格仍然会在两个方向上缩放。我不确定您是否可以使用really only 来扩展表格宽度?如果可能的话,adjustbox完美的方法是 really 只使用环境。tabu

在谷歌上搜索了很多次后,我发现tabularx当表格需要横跨整个页面宽度时,该环境似乎是最简单的。但我的问题是,我甚至没有得到一个简单的tabularx示例来运行。我不知道为什么它不起作用。您将看到的包已包含在内。这意味着我无法尝试以下命令将表格扩展到页面宽度:\begin{tabularx}{\textwidth}{ccccccc}

这是我的工作示例。我取消了tabularx示例的注释,否则它将无法编译。我知道我没有删除fontsize和并使\changefont示例尽可能简单,但我绝对需要表格像这样工作,这就是我将其保留在:

\documentclass[10pt,DIV=12,a4paper,numbers=noenddot]{scrreprt}

\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{appendix}
\usepackage{tabu}     
\usepackage{multicol}  
\usepackage{multirow}  
\usepackage{booktabs}  
\usepackage{adjustbox}
\usepackage{tabularx} 
\usepackage{caption}
\usepackage{anyfontsize}
\newcommand{\changefont}[3]{\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}


\begin{document}

% TABLE 1

\begin{table}
\centering
\changefont{phv}{m}{n} % Change font to Helvetica
\fontsize{6}{9}\selectfont{ % Change font size to size 6 and line space to 9
% \begin{adjustbox}{width=\textwidth,totalheight=\textheight,keepaspectratio}
\begin{adjustbox}{width=\textwidth}
\begin{tabu} to \textwidth {lrrrrrr}

\toprule 
\rowfont{\bfseries\itshape}
First & Second & Third & \multicolumn{2}{r}{MulticColumn} & \multicolumn{2}{r}{MultiColumn} \\
&       &       & \textit{HB}    & \textit{HC}   & \textit{HB}    & \textit{HC} \\
\midrule
AXXXXXX & 0.001 & 0.051 & 1.07 & -1.10 & -0.32 & -0.80 \\
AYYYYYY & 0.308 & 0.123 & -1.80 & -2.35 & -0.55 & -0.70 \\
AZZZZZZ & 0.227 & 0.432 & -1.99 & 1.12  & -0.88 & 0.14 \\
\bottomrule

\end{tabu}
\end{adjustbox}
}
\caption{This is the caption}
\label{tab:label}
\end{table}

% TABLE 2

% \begin{table}
% \begin{tabularx}{ccccccc}
% \begin{tabularx}{\textwidth}{ccccccc}

% \toprule 
% \rowfont{\bfseries\itshape}
%   First & Second & Third & \multicolumn{2}{r}{MulticColumn} & \multicolumn{2}{r}{MultiColumn} \\
%       &       &       & \textit{HB}    & \textit{HC}   & \textit{HB}    & \textit{HC} \\
%     \midrule
%     AXXXXXX & 0.001 & 0.051 & 1.07 & -1.10 & -0.32 & -0.80 \\
%     AYYYYYY & 0.308 & 0.123 & -1.80 & -2.35 & -0.55 & -0.70 \\
%     AZZZZZZ & 0.227 & 0.432 & -1.99 & 1.12  & -0.88 & 0.14 \\
%     \bottomrule
%       
% \end{tabularx}
% \end{table}

\end{document}

这是我想挤压到页面宽度的第二个表格:

\begin{table}

\changefont{phv}{m}{n} % Change font to Helvetica

\fontsize{6}{9}\selectfont{ % Change font size to size 6 and line space to 9

\begin{tabu} to \textwidth {*13{X[c]}}

\toprule 
&       & A 1   & A 2   & A 3   & A 4   & A 5  &  A 6  & A 7  & A 8  & A 9  & A 10  &  A 11 \\
\midrule

\end{tabu}

}

\end{table}

答案1

将我的评论总结成一个答案:你说你尝试过

\begin{tabu} to \textwidth {ccccccc}

作为表格的标题,但没有得到具有\textwidth宽度的表格。这是因为c列的宽度等于其内容的宽度。为了以某种方式拉伸(或收缩)列以使其适合\textwidth tabu(并且tabularx)需要特殊的列类型X。所以

\begin{tabu} to \textwidth {XXXXXXX}

应该给出指定宽度的表格。但是,内容将不再居中。这个问题很容易解决,因为tabuX列有一个可选参数,您可以在其中指定行为:

\begin{tabu} to \textwidth {X[c]X[c]X[c]X[c]X[c]X[c]X[c]}

提示:如果您有重复的相同列规范,可以使用语法一次性声明它们*{<num>}{<spec>}*4c相当于cccc。不过,这里最好使用括号 ( *{4}{c}),这样在需要它们时就不会忘记它们:如果<num><spec>长于一个标记,则把它们括起来:*{13}{X[c]}

总而言之,现在导致

\begin{tabu} to \textwidth {*{7}{X[c]}}

让我们看看它是否有效:

\documentclass{article}
% visualize page dimensions with a frame:
\usepackage{showframe}

\usepackage{tabu}
\begin{document}

\noindent
\begin{tabu} to \textwidth {|*{7}{X[c]|}}
  a & b & c & d & e & f & g \\
  a & b & c & d & e & f & g \\
\end{tabu}

\end{document}

在此处输入图片描述

相关内容