Tabularx:如何均匀分布表格中的元素以适应页面宽度?

Tabularx:如何均匀分布表格中的元素以适应页面宽度?
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[left=2.00cm, right=2.00cm, top=4.00cm, bottom=3.00cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage{tabularx}

\begin{document}
\begin{tabularx}{\textwidth}{XlXlXlXlXlXl}
    {\tiny Class} & {\tiny STUDY} & {\tiny Student} & {\tiny Number} & {\tiny Exercise} & {\tiny Datum} \\
    XYZ & SJSO & A LONGER NAME & 129309 &  E01 &  \today \\
\end{tabularx}
\end{document}

我得到以下输出: 在此处输入图片描述

看起来不太好,不是吗?我希望以某种方式分布它,使它看起来更均匀。它可能看起来类似于以下内容:

在此处输入图片描述

答案1

这个怎么样?

在此处输入图片描述

\documentclass[10pt,a4paper]{article}
\usepackage[left=2.00cm, right=2.00cm, top=4.00cm, bottom=3.00cm]{geometry}
%\usepackage{tabularx}

\begin{document}
\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lcclll @{}}
    {\tiny Class} & {\tiny STUDY} & {\tiny Student} & {\tiny Number} & {\tiny Exercise} & {\tiny Datum} \\
    XYZ & SJSO & A LONGER NAME & 129309 &  E01 &  \today \\
\end{tabular*}
\end{document}

@{\extracolsep{\fill}}是我之前从 Mico 的一个回答中学到的一个技巧,它可以强制增加空间,但并不适用于所有X列。我将它们改为c居中或l居左,这样就\extracolsep可以了,你可以将它们更改为你想要的。

可能有很多方法可以做到这一点,我相信其他人也会有宝贵的贡献,但这有效并且看起来与您的图片相似。

编辑:更改为tabular*因为该X列未被使用(根据@Mico),注释掉\usepackage{tabularx}并添加到\noindent表格之前。

答案2

  • 对于好的答案是错过了上下文的使用你的表格
  • 下面列出了四种格式化的情况:一种使用,tabularx三种使用tabularray包:
\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[hmargin=2.00cm, vmargin={4.00cm, 3.00cm}]{geometry}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\usepackage[ngerman]{babel}
\usepackage{tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{tabularray}

\begin{document}
\noindent%
    \begin{tabularx}{\textwidth}{*{2}{>{\hsize=0.8\hsize}L} >{\hsize=1.4\hsize}L
                                 *{2}{>{\hsize=0.8\hsize}L} >{\hsize=1.4\hsize}L}
{\tiny Class} & {\tiny STUDY}  & {\tiny Student} 
              & {\tiny Number} & {\tiny Exercise} & {\tiny Datum} \\
    XYZ & SJSO & A LONGER NAME & 129309 &  E01 &  \today \\
    \end{tabularx}

\vspace{3\baselineskip}
\noindent%   
    \begin{tblr}{colspec= {*{2}{X[l]} X[2,l] *{2}{X[l]} X[1.5,l]},
                 row{1} = {font=\tiny}
                 }
Class   & STUDY & Student       & Number & Exercise &  Datum    \\
XYZ     & SJSO  & A LONGER NAME & 129309 & E01      &  \today   \\
    \end{tblr}
 
\vspace{3\baselineskip}
\noindent%
    \begin{tblr}{colspec= {*{2}{X[l]} X[2,l] *{2}{X[l]} X[1.5,l]},
                 row{1} = {font=\bfseries}
                 }
Class   & STUDY & Student       & Number & Exercise &  Datum    \\
XYZ     & SJSO  & A LONGER NAME & 129309 & E01      &  \today   \\
    \end{tblr}

\vspace{3\baselineskip}
\noindent%
    \begin{tblr}{colspec= {*{2}{X[l]} X[2,l] *{2}{X[l]} X[1.5,l]},
                 row{1} = {font=\bfseries}
                 }
Class   & STUDY & Student       & Number & Exercise &  Datum    \\
    \hline{1pt}
XYZ     & SJSO  & A LONGER NAME & 129309 & E01      &  \today   \\
    \end{tblr}
   
\end{document}

在此处输入图片描述

相关内容