是否可以定义一个值\fboxsep
用于\fbox
,然后使用另一个值用于\colorbox
?
你能在本地定义这样的值吗?
答案1
您可以通过定义新的长度并修补相关的宏来使参数独立;这也会影响\fcolorbox
。
\documentclass{article}
\usepackage{color}
\usepackage{regexpatch}
\newlength{\colorboxsep}
\setlength{\colorboxsep}{10pt} % exaggerated
\makeatletter
\xpatchcmd*{\color@b@x}{\fboxsep}{\colorboxsep}{}{}
\makeatother
\begin{document}
\fbox{abc} \colorbox{red}{abc} \fcolorbox{black}{red}{abc}
\end{document}
您也可以使用etoolbox
和\patchcmd
,但在这种情况下您需要
\makeatletter
\patchcmd{\color@b@x}{\fboxsep}{\colorboxsep}{}{}
\patchcmd{\color@b@x}{\fboxsep}{\colorboxsep}{}{}
\patchcmd{\color@b@x}{\fboxsep}{\colorboxsep}{}{}
\patchcmd{\color@b@x}{\fboxsep}{\colorboxsep}{}{}
\makeatother