使用(重新)新命令时需要额外的空格

使用(重新)新命令时需要额外的空格

我已经检查过了这个问题,其中 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}

相关内容