siunitx:如何对手动分隔的 S 列的行进行均匀着色?

siunitx:如何对手动分隔的 S 列的行进行均匀着色?

我想控制siunitx列之间的间距,但是在第三列和第四列之间插入!{\hspace{1ex}}会导致第三行的灰色不连续,

在此处输入图片描述

while<{\hspace{1ex}}对输出没有任何影响。

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{tabularx,siunitx,multicol,ragged2e}
\usepackage[table]{xcolor}


\newcolumntype{Y}{>{\Centering}X}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{R}{>{\RaggedLeft}X}

\begin{document}
    \setlength{\tabcolsep}{0pt}
    \rowcolors{2}{gray!20}{}
    \begin{tabularx}{1\linewidth}{
            >{\hsize=1.3\hsize}L<{\hspace{1ex}}
            >{\hsize=0.7\hsize}Y<{\hspace{1ex}}
            S[table-format=3.1, round-precision=1, table-column-width = 0.2\linewidth, table-number-alignment=right]<{\hspace{1ex}}
            s[table-unit-alignment = left, table-column-width = 0.2\linewidth]
        }
        Parameter & Symbol & \multicolumn{2}{c}{Value}\\
        Inertia  & $J_M$ & 0.6 & \kilogram\m\squared\\
        Inertia  & $J_M$ & 0.6 & \kilogram\m\squared\\
    \end{tabularx}
\end{document}

答案1

对于S类型列,您可以使用键table-space-text-post将它们向右扩大,而不是<{\hspace{1ex}}(放在\hspace{1ex}单元格内容之后):

\documentclass[border=5mm]{standalone}
\usepackage{tabularx,siunitx,multicol,ragged2e}
\usepackage[table]{xcolor}


\newcolumntype{Y}{>{\Centering}X}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{R}{>{\RaggedLeft}X}

\begin{document}
    \setlength{\tabcolsep}{0pt}
    \rowcolors{2}{gray!20}{}
    \begin{tabularx}{1\linewidth}{
            >{\hsize=1.3\hsize}L<{\hspace{1ex}}
            >{\hsize=0.7\hsize}Y<{\hspace{1ex}}
            S[table-format=3.1, round-precision=1, table-column-width = 0.2\linewidth, table-number-alignment=right, table-space-text-post=\hspace{1ex}]
            s[table-unit-alignment = left, table-column-width = 0.2\linewidth]
        }
        Parameter & Symbol & \multicolumn{2}{c}{Value}\\
        Inertia  & $J_M$ & 0.6 & \kilogram\m\squared\\
        Inertia  & $J_M$ & 0.6 & \kilogram\m\squared\\
        Inertia  & $J_M$ & 0 & \kilogram\m\squared\\
    \end{tabularx}
\end{document}

在此处输入图片描述

答案2

对于一个简单的解决方案,考虑到最后的规范,我建议一个简单的解决方案是在第一列和第二列之间添加一个固定宽度(2ex)的空列。我特意添加了两个(临时)垂直规则来帮助可视化这个空列的宽度:

\documentclass[border=5mm]{standalone}
\usepackage{tabularx, siunitx, multicol, ragged2e}
\usepackage[table]{xcolor}

\newcolumntype{Y}{>{\Centering}X}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{R}{>{\RaggedLeft}X}

\begin{document}

   \rowcolors{2}{gray!20}{}
    \begin{tabularx}{\linewidth}{
            >{\hsize=1.3\hsize}L|@{}p{2ex}@{}|
            >{\hsize=0.7\hsize}Y
            S[table-format=3.1, round-precision=1, table-column-width = 0.2\linewidth, table-number-alignment=right]%
            s[table-unit-alignment = left, table-column-width = 0.2\linewidth]
        }
        Parameter & & Symbol & \multicolumn{2}{c}{Value}\\
        Inertia & & $J_M$ & 0.6 & \kilogram\m\squared\\
        Inertia & & $J_M$ & 0.6 & \kilogram\m\squared\\
    \end{tabularx}

\end{document}

在此处输入图片描述

相关内容