我想设置一个颜色参数,该参数将在文档开头定义,并在其他需要的地方进行更改。\setcolor
如下所示的命令只是打印值“红色”,而不是保存它。因此\color{\setcolor}
显然会失败。
我认为\renewcommand
应该以某种方式参与其中,但我对如何做到这一点感到困惑。
\documentclass[11pt]{article}
\usepackage{color}
\newcommand{\setcolor}[1]{#1}
\begin{document}
\setcolor{red}
\color{\setcolor}{some sample text}
\end{document}
答案1
这是一种方法。 \setcolor
是改变存储变量的宏\mycolor
。
\documentclass[11pt]{article}
\usepackage{xcolor}
\newcommand\setcolor[1]{\def\mycolor{#1}}
\newcommand\mycolor{black}
\begin{document}
Before text.
\setcolor{red}%
\textcolor{\mycolor}{some temporary sample text}
after text.
\color{\mycolor}
Now it is permanent.
\end{document}
答案2
答案3
这里有一种方法,您可以提供一个用于改变颜色的可选参数和一个应用颜色的强制参数。
\documentclass[11pt]{article}
\usepackage{xcolor}
\newcommand{\mysetcolor}{magenta}% default
\newcommand{\setcolor}[2][]{%
\ifx\relax#1\relax%
\else%
\renewcommand\mysetcolor{#1}%
\fi%
\textcolor{\mysetcolor}{#2}%
}
\begin{document}
\noindent
\setcolor{some default colored sample text}\\
\setcolor[red]{some red sample text}\\
\setcolor{some sample text with the same color as the one used before}\\
\setcolor[green]{some green sample text}
\end{document}