交替等宽列

交替等宽列

我正在尝试构建一个表格,其中列交替均匀分布,并且每个第二列与小数点对齐。

通过谷歌搜索,我找到了以下代码:

\usepackage{tabularx}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{\cdot}{#1} }
\usepackage{array,booktabs,makecell}
\renewcommand\theadalign{cc}% centred tabular headers

\begin{table}
\caption{\label{tab1}Table 1}
\begin{tabularx}{\textwidth}{|X|d{2}||X|d{2}||X|d{2}|}
\hline
\thead{\textit{Country}}    & \thead{\textit{Weight}}   &   \thead{\textit{Country}}    &   \thead{\textit{Weight}} &   \thead{\textit{Country}}    &   \thead{\textit{Weight}} \\
\hline
\hline
\textbf{Belgium}    & $ 2.92 $  &   \textbf{Croatia}    &   $ 0.39 $    &   \textbf{Poland} &   $ 3.63 $    \\
\hline
\textbf{Bulgaria}   & $ 0.32 $  &   \textbf{Italy}  &   $ 12.39 $   &   \textbf{Portugal}   &   $ 1.19 $    \\
\hline
\textbf{Czech Rep.} & $ 1.94 $  &   \textbf{Cyprus} &   $ 0.08 $    &   \textbf{Romania}    &   $ 1.01 $    \\
\hline
\textbf{Denmark}    & $ 1.88 $  &   \textbf{Latvia} &   $ 0.11 $    &   \textbf{Slovenia}   &   $ 0.37 $    \\
\hline
\textbf{Germany}    & $ 27.18 $ &   \textbf{Lithuania}  &   $ 0.16 $    &   \textbf{Slovakia}   &   $ 0.65 $    \\
\hline
\textbf{Estonia}    & $ 0.13 $  &   \textbf{Luxembourg} &   $ 0.14 $    &   \textbf{Finland}    &   $ 1.63 $    \\
\hline
\textbf{Ireland}    & $ 1.77 $  &   \textbf{Hungary}    &   $ 1.06 $    &   \textbf{Sweden} &   $ 3.09 $    \\
\hline
\textbf{Greece} & $ 1.08 $  &   \textbf{Malta}  &   $ 0.04 $    &   \textbf{UK} &   $ 11.88 $   \\
\hline
\textbf{Spain}  & $ 6.66 $  &   \textbf{Netherlands}    &   $ 3.97 $    &   \textbf{EA19}   &   $ 74.80 $   \\
\hline
\textbf{France} & $ 11.61 $ &   \textbf{Austria}    &   $ 2.72 $    &   \textbf{EU28}   &   $ 100.00 $  \\
\hline
\end{tabularx}
\end{table}

但是,使用此代码我得到了这个:

在此处输入图片描述

所以我有两个问题:1) 由于某种原因,“权重”列太大,右侧有多余的空间 2) “国家/地区”列中的一些文本对于单元格的大小来说太大。这是因为页面大小吗?

谢谢!

答案1

请阅读https://www.inf.ethz.ch/personal/markusp/teaching/guides/guide-tables.pdf或者看看漂亮的表格样本

关于问题2:

通过使用X列,列的宽度被选择为适合文档的可用文本宽度。通常情况下,LaTeX 会将所有太长的文本连字符化,但对于国家名称似乎需要一点帮助,您可以使用 提供可选的连字符点Luxem\-bourg

\documentclass{article}

\usepackage{tabularx}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{\cdot}{#1} }
\usepackage{array,booktabs,makecell}
\renewcommand\theadalign{cc}% centred tabular headers

\begin{document}

\begin{table}
\caption{\label{tab1}Table 1}
\begin{tabularx}{\textwidth}{|X|d{2}||X|d{2}||X|d{2}|}
\hline
\thead{\textit{Country}}    & \thead{\textit{Weight}}   &   \thead{\textit{Country}}    &   \thead{\textit{Weight}} &   \thead{\textit{Country}}    &   \thead{\textit{Weight}} \\
\hline
\hline
\textbf{Belgium}    & $ 2.92 $  &   \textbf{Croatia}    &   $ 0.39 $    &   \textbf{Poland} &   $ 3.63 $    \\
\hline
\textbf{Bulgaria}   & $ 0.32 $  &   \textbf{Italy}  &   $ 12.39 $   &   \textbf{Portugal}   &   $ 1.19 $    \\
\hline
\textbf{Czech Rep.} & $ 1.94 $  &   \textbf{Cyprus} &   $ 0.08 $    &   \textbf{Romania}    &   $ 1.01 $    \\
\hline
\textbf{Denmark}    & $ 1.88 $  &   \textbf{Latvia} &   $ 0.11 $    &   \textbf{Slovenia}   &   $ 0.37 $    \\
\hline
\textbf{Germany}    & $ 27.18 $ &   \textbf{Lithuania}  &   $ 0.16 $    &   \textbf{Slovakia}   &   $ 0.65 $    \\
\hline
\textbf{Estonia}    & $ 0.13 $  &   \textbf{Luxem\-bourg} &   $ 0.14 $    &   \textbf{Finland}    &   $ 1.63 $    \\
\hline
\textbf{Ireland}    & $ 1.77 $  &   \textbf{Hungary}    &   $ 1.06 $    &   \textbf{Sweden} &   $ 3.09 $    \\
\hline
\textbf{Greece} & $ 1.08 $  &   \textbf{Malta}  &   $ 0.04 $    &   \textbf{UK} &   $ 11.88 $   \\
\hline
\textbf{Spain}  & $ 6.66 $  &   \textbf{Nether\-lands}    &   $ 3.97 $    &   \textbf{EA19}   &   $ 74.80 $   \\
\hline
\textbf{France} & $ 11.61 $ &   \textbf{Austria}    &   $ 2.72 $    &   \textbf{EU28}   &   $ 100.00 $  \\
\hline
\end{tabularx}
\end{table}
\end{document}

在此处输入图片描述


我的建议:

\documentclass{article}

\usepackage{tabularx}
\usepackage{siunitx}
\usepackage{booktabs}

\renewcommand{\arraystretch}{1.3}
\setlength{\tabcolsep}{5pt}
\usepackage{caption} 
\captionsetup[table]{skip=5pt}

\begin{document}

\begin{table}
\caption{\label{tab1}Table 1}
\begin{tabularx}{\textwidth}{@{}*{3}{XS[table-format=3.2]@{\extracolsep{8pt}}}}
\toprule
Country    & {Weight} & Country    & {Weight} & Country  & {Weight}\\
\cmidrule{1-2}\cmidrule{3-4}\cmidrule{5-6}
Belgium    & 2.92     & Croatia    & 0.39     & Poland   & 3.63\\
Bulgaria   & 0.32     & Italy      & 12.39    & Portugal & 1.19\\
Czech Rep. & 1.94     & Cyprus     & 0.08     & Romania  & 1.01\\
Denmark    & 1.88     & Latvia     & 0.11     & Slovenia & 0.37\\
Germany    & 27.18    & Lithuania  & 0.16     & Slovakia & 0.65\\
Estonia    & 0.13     & Luxembourg & 0.14     & Finland  & 1.63\\
Ireland    & 1.77     & Hungary    & 1.06     & Sweden   & 3.09\\
Greece     & 1.08     & Malta      & 0.04     & UK       & 11.88\\
Spain      & 6.66     & Netherlands& 3.97     & EA19     & 74.80\\
France     & 11.61    & Austria    & 2.72     & EU28     & 100.00\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

在此处输入图片描述

答案2

看看以下(看起来更专业:-))的表格是否可以接受:

在此处输入图片描述

\usepackage[skip=1ex]{caption}
\usepackage{booktabs,makecell,tabularx}
\renewcommand\theadfont{\normalfont\itshape}
\newcommand\mch[1]{\multicolumn{1}{>{\centering}X}{\normalfont\itshape #1}}
\usepackage{siunitx}
\usepackage{array,booktabs,makecell}
\renewcommand\theadalign{cc}% centred tabular headers

\usepackage{showframe}% only for this MWE, remove in real document
\renewcommand*\ShowFrameColor{\color{green}}

\begin{document}
    \begin{table}
\caption{Table 1}
\label{tab1}
    \begin{tabularx}{\textwidth}{*{3}{>{\bfseries}l S[table-format=3.2]}}
    \toprule
\thead[l]{Country} &   \mch{Weight}    &   \thead[l]{Country}    
    &   \mch{Weight}    &   \thead[l]{Country} &   \mch{Weight}                    \\
    \cmidrule(r){1-2}\cmidrule(lr){3-4}\cmidrule(l){5-6}
Belgium     &   2.92    &   Croatia     &   0.39    &   Poland      &   3.63    \\
Bulgaria    &   0.32    &   Italy       &  12.39    &   Portugal    &   1.19    \\
    \addlinespace
Czech Rep.  &   1.94    &   Cyprus      &   0.08    &   Romania     &   1.01    \\
Denmark     &   1.88    &   Latvia      &   0.11    &   Slovenia    &   0.37    \\
    \addlinespace
Germany     &  27.18    &   Lithuania   &   0.16    &   Slovakia    &   0.65    \\
Estonia     &   0.13    &   Luxembourg  &   0.14    &   Finland     &   1.63    \\
    \addlinespace
Ireland     &  1.77     &   Hungary     &   1.06    &   Sweden      &   3.09    \\
Greece      &  1.08     &   Malta       &   0.04    &   UK          &  11.88    \\
    \addlinespace
Spain       &  6.66     &   Netherlands &   3.97    &   EA19        &  74.80    \\
France      & 11.61     &   Austria     &   2.72    &   EU28        & 100.00    \\
    \bottomrule
\end{tabularx}

    \end{table}
\end{document}

如您所见,除了新的表格布局外,代码也得到了简化,在表格中您不需要对任何单词进行连字符连接。而且它完全适合文本宽度。

编辑: 按照建议萨姆卡特我更改了国家/地区列标题的对齐方式,还midrulecmidrule粗体替换了左侧的州名(无论如何,我宁愿使用正常字体)。要将它们更改为正常字体,只需>{\bfseries}l列类型之前删除:

\begin{tabularx}{\textwidth}{*{3}{l S[table-format=3.2]}}

你就得到了。如果你有时间,请看看:[如何设计漂亮的表格]。2

在此处输入图片描述

相关内容