要更改命令的阴影颜色\rule{...}{...}
,一种解决方案是
\textcolor{blue}{\rule{2cm}{2cm}}
但我想知道如何直接全局更改此命令的颜色?
答案1
你可以做
\makeatletter
\let\old@rule\@rule
\def\@rule[#1]#2#3{\textcolor{blue}{\old@rule[#1]{#2}{#3}}}
\makeatother
但最好是定义一个新\colorrule
命令并使用它,因为您可能会发现\rule
它在意想不到的地方使用,所以如果您重新定义它,您可能会改变比您想要改变的更多。
如果您有时需要覆盖此功能,最好使用如下颜色,rulecolor
而不是blue
在需要时(重新)定义:
\documentclass{article}
\usepackage[dvipsnames]{color}
\makeatletter
\let\old@rule\@rule
\def\@rule[#1]#2#3{\textcolor{rulecolor}{\old@rule[#1]{#2}{#3}}}
\makeatother
\definecolor{rulecolor}{named}{Blue}
\usepackage{color}
\begin{document}
\rule{1cm}{1cm}
\bigskip
\rule{.1cm}{1cm}
\bigskip
{\definecolor{rulecolor}{named}{Red}\rule{1cm}{1cm}}
\bigskip
\rule{1cm}{1cm}
\end{document}
答案2
最简单的替代方案是:
\textcolor{blue}{\rule{2cm}{2cm}}
如果您想定义自己的命令,您可以将其放在前言或后面,以便随时改变颜色。
\newcommand{\myRule}[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
并使用例如:
\myRule{1cm}{1cm}
\myRule[red]{1cm}{1cm}
\myRule[blue]{1cm}{1cm}
如果您想修复整个文档的颜色,请尝试:
\newcommand{\myRule}[3]{%
\textcolor{red}{\rule{#2}{#3}} %change red to blue, green black whatever.
}