我想创建一个表格,其中文本围绕分隔符“V-”对齐,并使用 \rowcolor 为其着色。普通列分隔符 @{V-} 不适用于 \rowcolors,因此我正在寻找另一种方法。是否可以使用 siunitx 包的整洁 S 列?我尝试了
\usepackage[input-decimal-markers={V-}]{siunitx}
和
\usepackage[input-signs={V-}]{siunitx}
但它会引发错误。
梅威瑟:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{siunitx}
\begin{document}
with @{V-}:\\
\rowcolors{1}{black!10}{}
\begin{tabular}{|r@{V-}l|}
\hline
C & CV-\\\hline
CC & CV-\\\hline
h1C & V-\\\hline
\end{tabular}
with c and tabcolsep=0pt:\\
\setlength{\tabcolsep}{0pt}
\rowcolors{1}{black!10}{}
\begin{tabular}{|rcl|}
\hline
C & V- & CV-\\\hline
CC & V- & CV-\\\hline
h1C & V- & V-\\\hline
\end{tabular}
\end{document}
到目前为止,tabcolsep=0pt 的版本效果最好,但是表格没有任何分隔符,非常难看。如果我只使用 S,siunitx 当然会说“无效的数字输入‘-’”。有什么想法吗?
附言:我读过205041和289298,但他们没有回答我的问题。
编辑:我不需要使用 siunitx,如果有人知道其他解决方案……
答案1
@{V-}
您可以在中{NiceTabular}
使用标准分隔符nicematrix
,并且如果您使用工具来nicematrix
获取行的颜色(\rowcolors{black!10}{}
数组开头的命令),您将获得预期的输出。
\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{|r@{V-}l|}[color-inside]
\hline
\rowcolors{black!10}{}
C & CV-\\\hline
CC & CV-\\\hline
h1C & V-\\\hline
\end{NiceTabular}
\end{document}
答案2
即使尝试了几次,我还是无法使用该问题siunitx
,但我找到了一种方法dcolumn
,并想分享我的解决方案(虽然更像是一种解决方法):
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{dcolumn}
\begin{document}
\rowcolors{2}{black!10}{}
\begin{tabular}{lD{-}{\mbox{-}}{-1}}
\toprule
some things & \multicolumn{1}{c}{random root shapes} \\
\midrule
something & \mbox{CV}-\mbox{CV-} \\
something & \mbox{CCV}-\mbox{CV-} \\
something & \mbox{h1CV}-\mbox{V-} \\
\bottomrule
\end{tabular}
\end{document}
所有 mboxing 的原因是将dcolumn
单元格设置为数学模式。这些框可防止这种情况发生,并允许在单元格内输入其他对齐符号。