我已经检查过了这个问题,其中 OP 想要丢弃\color
在 other 内部使用时的效果\textcolor
。@Rmano 比我快,回答了问题和我想要的方式一样。
然而,“我们的”解决方案在额外的空格方面存在一点问题:
我尝试过很多方法修复它\relax
,比如\gobble
,,,\xspace
\ignorespaces
但我随机拍摄,找不到解决方案。你有什么想法吗?
\documentclass{article}
\usepackage{color}
\newcommand{\Textcolor}[2]{%
\textcolor{#1}{\renewcommand{\color}[1]{}#2}%
}%
\begin{document}
Some text
Some {\color{blue} text}
Some \textcolor{blue}{text}
\textcolor{red}{Some {\color{blue} text}}
\Textcolor{red}{Some {\color{blue} text}} %should produce the same
\Textcolor{red}{Some {\color{blue}text}} %should produce the same
\textcolor{red}{Some {\color{blue} text}}
\end{document}
答案1
的标准工作\color
以 结束\ignorespaces
。
\documentclass{article}
\usepackage{color}
\newcommand{\Textcolor}[2]{%
\textcolor{#1}{\renewcommand{\color}[1]{\ignorespaces}#2}%
}
\begin{document}
Some text
Some {\color{blue} text}
Some \textcolor{blue}{text}
\textcolor{red}{Some {\color{blue} text}}
\Textcolor{red}{Some {\color{blue} text}} %should produce the same
\Textcolor{red}{Some {\color{blue}text}} %should produce the same
\textcolor{red}{Some {\color{blue} text}}
\end{document}
实际上应该是
\renewcommand{\color}[2][]{\ignorespaces}
来应对诸如此类的情况\color[rgb]{0.1,1,0.3}
。