更改包 - 更改 \replaced 命令以仅显示新文本

更改包 - 更改 \replaced 命令以仅显示新文本

我正在使用该changes软件包。我希望生成的最终文档是这样的

  1. 突出显示更改的文本
  2. 具有变更列表、添加的命名和替换的文本。

这可以通过更改命令来实现\replaced,这样它只会显示新文本,而不显示旧文本。我不能使用\added替换,因为那样会在更改列表中显示为已添加。

这是我的 MWE

\documentclass{article}

\usepackage{changes}


\begin{document}

Alas my love you do me wrong, to cast me off discourteously. For I have loved you well \added{and long}, delighted in your \replaced{company}{corporation}  .


\listofchanges

\end{document}

我想要实现的输出是这样的(我通过作弊,MWE 不会生成它:

期望输出

答案1

以下是产生所需结果的版本:

\documentclass{article}

\usepackage{changes}

\makeatletter
\let\Changes@Markup@Deleted\@gobble
\makeatother

\begin{document}

Alas my love you do me wrong, to cast me off discourteously.
For I have loved you well \added{and long}, delighted in your \replaced{company}{corporation}.

\listofchanges

\end{document}

输出:

在此处输入图片描述

\Changes@Markup@Deleted宏会生成突出显示的替换文本(基于所设置的任何样式)。我们只需将其定义为忽略其参数,这样生成的文本始终为空。

答案2

@siracusa 的解决方案在较新版本的 中不再有效changes。虽然我不太确定这个新命令是何时添加的,但现在 (2020 年 2 月) 可以按\setdeletedmarkup如下方式完成此操作:

\makeatletter
\setdeletedmarkup{\@gobble{#1}}
\makeatother

相关内容