我曾经renewenvironment{table}
将所有表格规则都设为绿色。我还想修复其中一些规则的位置,例如使用包选项H
。float
我尝试了如下所示的解决方案,但出现了错误。如果我注释掉 \restylefloat{table}
,我只会[H]
在表格旁边看到一个 (韦迪 https://www.overleaf.com/read/jvxrhvhqmmgh)。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{float}
\usepackage{xcolor}
\usepackage{tabu}
\usepackage{colortbl}
\restylefloat{table}
\makeatletter
\renewenvironment{table}
{\@float{table}\taburulecolor{green}\arrayrulecolor{green} }
{\end@float}
\makeatother
\begin{document}
\begin{table}[H]
\centering
\caption{This is a caption.}
\label{tab:atable}
\begin{tabular}{c|c|c}
\hline
1 & 2 & 3 \tabularnewline
\hline
4 & 5 & 6 \tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
答案1
在正常情况下,你只需要先进行设置,然后调用\@float{table}
。但是在这里你使用了\restylefloat
,这会将的定义更改为与内核定义\table
不同的内容。\@float{table}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{float}
\usepackage[table]{xcolor}
\usepackage{tabu}
\restylefloat{table}
\makeatletter
\let\float@table\table % must be after \restylefloat{table}
\renewenvironment{table}
{\taburulecolor{green}\arrayrulecolor{green}\float@table}
{\end@float}
\makeatother
\begin{document}
\begin{table}[H]
\centering
\caption{This is a caption.}
\label{tab:atable}
\begin{tabular}{c|c|c}
\hline
1 & 2 & 3 \tabularnewline
\hline
4 & 5 & 6 \tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
请注意,您不应该调用colortbl
,而是将选项传递table
给xcolor
。