添加额外空间的新命令

添加额外空间的新命令

我在使用带有空输出的命令时遇到问题,该命令添加了额外的空格。

我有一份需要大量更正的大型文档。为了突出显示添加和删除的文本以便于查看,我决定定义命令 \xcut{} 和 \xadd{},稍后我可以轻松地重新定义这些命令以生成最终版本。

问题是空的 \xcut{} 现在在输出中添加了一个额外的空格。我相信有人会告诉我有更好的方法,但我已经以这种方式进行了所有更改,并且不想再经历整个过程。谢谢。

例子:

\documentclass{article}
\usepackage[usenames]{xcolor}
\usepackage[normalem]{ulem}

\def\Corrections{2}     % Highlight or Final - 1 or 2

\ifnum\Corrections=1    % 1 - Highlight
    \newcommand{\xcut}[1]{{\color{red}{\sout{#1}}}}%
    \newcommand{\xadd}[1]{{\color{green}{\uline{#1}}}}%
\fi

\ifnum\Corrections=2    % 2 - Final
    \newcommand{\xcut}[1]{}%
    \newcommand{\xadd}[1]{#1}%
\fi

\begin{document}

CUT: Shall I compare thee \xcut{thee} to a summer's day?

ADD: Thou art more \xadd{lovely} and more temperate:

BOTH: Rough winds do \xcut{snake} \xadd{shake} the darling buds of May,

\end{document}

答案1

不假思索,第一个尝试的是

\newcommand\xcut[1]{\ignorespaces}

答案2

制作“隐形”命令的标准方法是\@bsphack在其开始和\@esphack结束时使用。

\documentclass{article}
\usepackage[usenames]{xcolor}
\usepackage[normalem]{ulem}

\def\Corrections{2}     % Highlight or Final - 1 or 2

\ifnum\Corrections=1    % 1 - Highlight
    \newcommand{\xcut}[1]{{\color{red}{\sout{#1}}}}%
    \newcommand{\xadd}[1]{{\color{green}{\uline{#1}}}}%
\fi

\makeatletter
\ifnum\Corrections=2    % 2 - Final
    \newcommand{\xcut}[1]{\@bsphack\@esphack}%
    \newcommand{\xadd}[1]{#1}%
\fi

\begin{document}

CUT: Shall I compare thee \xcut{thee} to a summer's day?

ADD: Thou art more \xadd{lovely} and more temperate:

BOTH: Rough winds do \xcut{snake} \xadd{shake} the darling buds of May,

\end{document}

在此处输入图片描述

相关内容