newcommand + csname + sout + cref = ERROR: Extra },或者忘记了 \endgroup

newcommand + csname + sout + cref = ERROR: Extra },或者忘记了 \endgroup

我不确定为什么,但我创建了一个命令来自动为每个作者添加一个删除命令。如果我使用它删除普通文本,它会起作用。如果我使用它删除里面的文本\cref{...},它会失败并出现错误ERROR: Extra }, or forgotten \endgroup.(当然我检查了所有括号是否都已关闭)。我不确定为什么,但删除的所有东西都会失败(ulem、soul),但文本着色可以工作。

梅威瑟:

\documentclass[]{article}
\usepackage{xcolor}
\usepackage[normalem]{ulem}
\newcommand{\addEditor}[1]{%
  \expandafter\newcommand\csname #1Remove\endcsname[1]{%
    \sout{##1}%
  }%
}

\addEditor{myname}

\usepackage{cleveref}

\begin{document}
\section{Demo}\label{sec:mysec}
Removing a simple text works: \mynameRemove{See this simple text without cref}.

Removing a text with cref fails: \mynameRemove{See this text with \cref{sec:mysec}}.
\end{document}

相关内容