在热情地使用交替表格行着色功能xcolor
(我在 TeXSE 上发现了这个功能,还有许多其他最有用的东西)时,我偶然发现了一个恼人的现象:代码
\documentclass{amsart}
\usepackage[table]{xcolor}
\rowcolors{2}{gray!10}{white}
\begin{document}
\begin{tabular}{l|r}
left head&right head\\
\hline
\hline
cell&cell\\
\hline
L\hfill R&cell\\
\hline
cell&cell\\
\hline
cell&cell\\
cell&cell
\end{tabular}
\end{document}
生产
那个恼人的盲点无疑是由 造成的\hfill
,但为什么呢?我能去掉它吗?如果你告诉我怎么做,我不介意把那个特定的单元格分成两部分。制作额外的列不是一个选择,因为我只在极少数的单元格中偶尔需要它。
答案1
如果使用fill
胶水,总数必须0fill
参见第 10 页顶部的段落texdoc colortbl
。
\documentclass{amsart}
\usepackage[table]{xcolor}
\rowcolors{2}{gray!10}{white}
\begin{document}
\begin{tabular}{l|r}
left head&right head\\
\hline
\hline
cell&cell\\
\hline
L\hfill R\hspace{-\fill}\mbox{}&cell\\
\hline
cell&cell\\
\hline
cell&cell\\
cell&cell
\end{tabular}
\end{document}
答案2
{NiceTabular}
以下是使用构建该表的一种方法nicematrix
。
您将在 PDF 查看器中获得完美的输出。在某些 PDF 查看器(例如 Adobe Reader)中,规则似乎不会因某些缩放级别而消失。
\documentclass{amsart}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{l|r}
\CodeBefore
\rowcolors{2}{gray!10}{}
\Body
left head&right head\\
\hline
\hline
cell&cell\\
\hline
L \Block[r]{}{R}&cell\\
\hline
cell&cell\\
\hline
cell&cell\\
cell&cell
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案3
尝试把
\begin{tabular}{@{}ll@{}}L&R\end{tabular}
而不是使用单元格\hfill
(您可以轻松构建宏)