ulem
这两个包都不允许soul
在表格环境中删除整行,例如:
\sout{1,3-Cyclopentadiene & 161.39 & 148.19 & 155.65 & 153.43 & 154.7 & 5.5 & 118.20} \\
还有其他选择吗?
xcolor
用表选项打包clashes
,dcolumn
这样看起来不是一个选项
答案1
\hline
作为一种快速而肮脏的修复方法,您可以通过减少行前后的行间距来叠加一行:
\documentclass{article}
\begin{document}
\begin{tabular}{lll}
aaaaa & bbbbb & ccccc \\
11111 & 22222 & 33333 \\ [-1.5ex]
\hline \\ [-1.5ex]
xxxxx & yyyyy & zzzzz \\
\end{tabular}
\end{document}
答案2
可以使用 TikZ 来做到这一点:
\usepackage{tikz}
\tikzstyle{every picture}+=[remember picture]
\tikzstyle{na} = [shape=rectangle,inner sep=0pt]
\newcommand{\ptStrikeA}[1]{ % Left 'point' to be striked (A)
\tikz[baseline=(A.base)]\node[na](A){#1};
}
\newcommand{\ptStrikeB}[1]{ % Right 'point' to be striked (B)
\tikz[baseline=(B.base)]\node[na](B){#1};
}
\newcommand{\strike}{ % Strike from A to B
\begin{tikzpicture}[overlay]
\draw (A.west) -- (B.east);
\end{tikzpicture}
}
\begin{document}
\begin{tabular}{lll}
aaaaa & bbbbb & ccccc \\
\ptStrikeA{11111} & 22222 & \ptStrikeB{33333} \\
xxxxx & yyyyy & zzzzz \\
\end{tabular}
\strike
\end{document}
这样,您可以删除整行,也可以删除其中的一部分。将命令\strike
放在环境之外,可以将其嵌入到 beamer 覆盖层中。
答案3
[扩展Dorian的答案]
为了在单个表中实现多个删除线,您可以动态指定开始/结束点,而不是声明更多命令:
\usepackage{tikz}
\tikzstyle{every picture}+=[remember picture]
\tikzstyle{na} = [shape=rectangle,inner sep=0pt]
% end point for strike
\newcommand{\ptStrike}[2]{
\tikz[baseline=(#1.base)]\node[na](#1){#2};
}
% draw strike between two endpoints
\newcommand{\strike}[2]{
\begin{tikzpicture}[overlay]
\draw (#1.west) -- (#2.east);
\end{tikzpicture}
}
\begin{document}
\begin{tabular}{lll}
aaaaa & bbbbb & ccccc \\
\ptStrike{A}{11111} & 22222 & \ptStrike{B}{33333} \\
xxxxx & yyyyy & zzzzz \\
\ptStrike{C}{33333333} & 55555555 & \ptStrike{D}{88888888}\\
\end{tabular}
\strike{A}{B} % draw strike from A to B
\strike{C}{D} % draw strike from C to D
\end{document}
答案4
使用{NiceTabular}
,nicematrix
您可以轻松地使用 创建的节点在 TikZ 中划出一行nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{NiceTabular}{lll}[hvlines]
aaaaa & bbbbb & ccccc \\
11111 & 22222 & 33333 \\
xxxxx & yyyyy & zzzzz \\
33333333 & 55555555 & 88888888 \\
\CodeAfter
\tikz \draw [red] (2.5-|1) -- (2.5-|last) ;
\tikz \draw [thick,red] ([yshift=-4pt]4-|1) -- ([yshift=4pt]5-|last) ;
\end{NiceTabular}
\end{document}