调整表格宽度、间距和颜色

调整表格宽度、间距和颜色

我有一个关于 Latex 表格的问题。我花了两个小时试图找到解决方案,但无法用一个代码解决所有问题。所以我为所有问题都找到了单一的解决方案,但无法将它们整合在一起。

我添加了一些代码和图片来解释我最终想要的表格。不幸的是,有些地方我不喜欢,希望有人能帮助我。我想要:

  1. 线上下没有白色空间
  2. 我想调整行间距
  3. 表格的宽度应与我的文本宽度一致
  4. 我想根据自己指定的百分比调整所有列的宽度
  5. 在某些情况下,我希望第一列的颜色不同
  6. 我希望头部行中的文本为白色
  7. 我需要在表格中使用脚注。无论它们是在表格下方解释还是在页面底部解释都无所谓。
  8. 我想将包含数字的单元格的水平对齐方式更改为右对齐。
  9. 我愿意使用该软件包,因此如果需要的话,请随意提出另一个:-)

非常感谢您的帮助。

\documentclass{scrbook}

\usepackage{lipsum}

\usepackage{tabularx} 
\usepackage{booktabs}

\usepackage{colortbl}
\definecolor{Gray}{rgb}{0.80784, 0.86667, 0.90196} %dunkelblau
\definecolor{Lightgray}{rgb}{0.9176, 0.95, 0.95686} %hellblau
\definecolor{Akzent}{rgb}{0.6627, 0.63529, 0.55294} %akzentfarbe

\begin{document}

\lipsum[2]
\begin{table}
\begin{center}
\begin{tabularx}{\textwidth}{p{.15\linewidth} p{.1\linewidth} p{.2\linewidth} p{.2\linewidth} X}
    \toprule
    \rowcolor{Akzent}
    Category & Size & Maximum Takeoff Weight (MTOW) (kg) & Normal Operating Altitude (ft) & Airspeed (m/s)\\
    \midrule
    \rowcolor{Gray}
    Group 1 & Small & 0 - 20 & < 1,200 AGL & < 100\\
    \rowcolor{Lightgray}
    Group 2 & Medium & 21 - 55 & < 3500 & < 250\footnote{Explanation}\\
    \bottomrule
\end{tabularx}
\caption{Table}
\end{center}
\end{table}

\end{document}

enter image description here

答案1

这是看起来更漂亮的东西,尽管远非完美。点 1,这是由于在其规则上方和/或下方添加的填充booktabs。因此,我不得不抑制此填充,并将其替换为\extrarowsep,对于和\belowrulesep,使用与下面相同厚度且与行颜色相同的规则,对于aboverulesep。为了简化操作,我定义了一个\colourpadding命令,带有一个参数,即所需的颜色。

\makegapedcells使用中的命令可能有一个更简单的解决方案makecell。不幸的是,它似乎与着色表不兼容。

要点2:有几种方法可以做到这一点。最简单的方法是更改​​ 的值arraystretch。它的不便之处在于,对于 bib 值,内容不再位于其单元格的中心。如有必要,您可以使用\arraystretch=some length,这会在每行单元格的顶部添加一个长度。最后两个解决方案:makecell有两个命令:\setcellgapes{some length}\makegapedcells},这会在表格中所有单元格的顶部和底部添加一个固定长度。它在这里不起作用。最后的解决方案:cellspace定义最小单元格顶部与上方的线(或上方行的底部)之间的距离,以及单元格底部与下方的线之间的距离。

要点3。这样就完成了tabularx。我更喜欢使用 3X列,并稍微改变前两列的宽度。

要点4:我不明白你到底想要什么。

要点5:我认为您必须通过为第一列的每个单元格设置不同的颜色\cellcolor

要点6已经完成了。

第七点:脚注可以与包一起放在表格底部threeparttablethreeparttablex长表格除外)。对于通常的脚注,您可以使用tablefootnote包。

要点 8。要使数字右对齐,您可以添加>{\raggedleft}到列说明符,或选择S列类型(加载siunitx)。

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}

\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{ragged2e, eqparbox}
\newcolumntype{M}[1]{>{\RaggedRight}m{#1} <{\hspace*{-1pt}}}

\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}m{#1}}

\usepackage[table]{xcolor}
\definecolor{Gray}{rgb}{0.80784, 0.86667, 0.90196} %dunkelblau
\definecolor{Lightgray}{rgb}{0.9176, 0.95, 0.95686} %hellblau
\definecolor{Akzent}{rgb}{0.6627, 0.63529, 0.55294} %akzentfarbe
\newcommand{\whitehead}{\bfseries\color{white}}

\newcommand\colourpadding[1]{\addlinespace[-1pt]\arrayrulecolor{#1}\midrule[6pt]\arrayrulecolor{black}}

\begin{document}

\lipsum[2]
\begin{table}
\centering
\setlength\aboverulesep{0pt}
\setlength\belowrulesep{0pt}
\setlength\doublerulesep{0pt}
\setlength\extrarowheight{5pt}
\begin{tabularx}{\textwidth}{M{.12 \linewidth}M{.08\linewidth}*{3}{X}} \toprule
    \rowcolor{Akzent}
 \whitehead Category & \whitehead Size &\whitehead Maximum Takeoff Weight (MTOW) (kg) &\whitehead Normal Operating Altitude (ft) &\whitehead Airspeed (m/s)\\
    \colourpadding{Akzent}
        \midrule
        \rowcolor{Gray}
        Group 1 & Small & 0 – 20 & \eqmakebox[A][l]{< 1,200 AGL} & < 100\\
    \colourpadding{Gray}
        \rowcolor{Lightgray}
        Group 2 & Medium & 21 – 55 & \eqmakebox[A][l]{< 3500} & < 250\rlap{\footnote{Explanation}}\\
\colourpadding{Lightgray}
    \bottomrule
\end{tabularx}
\caption{Table}
\end{table}

\end{document} 

enter image description here

答案2

利用boldline来自希普诺夫用于线宽和celspace单元格中额外垂直空间的捆绑:

enter image description here

\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}

\usepackage[table]{xcolor}
  \definecolor{Gray}{rgb}{0.80784, 0.86667, 0.90196} %dunkelblau
  \definecolor{Lightgray}{rgb}{0.9176, 0.95, 0.95686} %hellblau
  \definecolor{Akzent}{rgb}{0.6627, 0.63529, 0.55294} %akzentfarbe
\usepackage{tabularx}
  \newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{cellspace}
  \setlength\cellspacetoplimit{5pt}
  \setlength\cellspacebottomlimit{5pt}
  \addparagraphcolumntypes{C}
\usepackage{boldline}% part of Shipunov bundle

\begin{document}
    \lipsum[1]
\begin{table}[ht]
    \centering
\newcommand\whitehead[1]{\textcolor{white}{\bfseries #1}}
\renewcommand\tabularxcolumn[1]{b{#1}}
\setlength\extrarowheight{4pt}
    \begin{tabularx}{\textwidth}{Sl
                                  l
                             *{3}{C}
                                }
    \hlineB{2}  % <-- defined in the package "boldline", thicknes=2pt
    \rowcolor{gray}
\whitehead{Category}
    &   \whitehead{Size}
        &    \whitehead{Maximum Take-off Weight (MTOW) (kg)}
            &   \whitehead{Normal Operating Altitude (ft)}
                &   \whitehead{Airspeed (m/s)}              \\
    \hlineB{1}
    \rowcolor{gray!10}
        Group 1 & Small  &  0 – 20 & < 1,200 AGL    & < 100 \\
    \rowcolor{gray!20}
        Group 2 & Medium & 21 – 55 & < 3500         & < 250 \rlap{\footnote{Explanation}}\\
    \hlineB{2}
\end{tabularx}
    \caption{Table}
\end{table}
    \lipsum[2]

\end{document}

答案3

{NiceTabular}以下是的功能。nicematrix的主要缺点{NiceTabular}是它不能被破坏(像 一样longtable)。

\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage{nicematrix}
\usepackage{lipsum}
\usepackage{booktabs}
\usepackage{enumitem}

\definecolor{Gray}{rgb}{0.80784, 0.86667, 0.90196} %dunkelblau
\definecolor{Lightgray}{rgb}{0.9176, 0.95, 0.95686} %hellblau
\definecolor{Akzent}{rgb}{0.6627, 0.63529, 0.55294} %akzentfarbe

\begin{document}

\lipsum[1]

\begin{table}
\NiceMatrixOptions{cell-space-top-limit=2pt}
\begin{NiceTabular}{m[l]{.12 \linewidth}m[l]{.08\linewidth}*{3}{X[m,c]}}[colortbl-like]
\toprule
\rowcolor{Akzent}
\RowStyle[color=white,bold]{\sffamily}
 Category & Size & Maximum Takeoff Weight (MTOW) (kg) & Normal Operating Altitude (ft) & Airspeed (m/s)\\
\midrule
\rowcolor{Gray}
Group 1 & Small & 0 -- 20 & < 1,200 AGL & < 100\\
\rowcolor{Lightgray}
Group 2 & Medium & 21 -- 55 & < 3500 & < 250\tabularnote{Explanation}\\
\bottomrule
\end{NiceTabular}
\caption{Table}
\end{table}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

Output of the above code

相关内容