You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用xcolor包定义\newcommand修订标记命令时出现编译错误求助

LaTeX修改痕迹自定义命令编译报错排查

报错原因

一共两个触发点,按出现概率排序:

  • 命令重名冲突:自定义的\comment是LaTeX生态中的高频预定义命令,LaTeX内核、comment宏包、多数期刊/学位论文文档类都会预先定义该命令。\newcommand不允许重复定义已存在的命令,会直接抛出Command \comment already defined错误,这是最核心的报错原因。
  • 颜色名未定义:代码中使用的NavyBlue、ForestGreen属于xcolor的扩展颜色集合,默认加载xcolor时不会启用这些颜色名,会触发Undefined color类报错。

修复方法

按如下步骤修改代码即可正常编译:

  1. 加载xcolor时添加dvipsnames选项,启用扩展颜色集
  2. 将重名风险极高的\comment命令重命名为其他不冲突的名称(比如\editnote),避免和系统/宏包预定义命令冲突。

如果坚持使用\comment作为命令名,只需在定义\comment前添加一行\let\comment\relax即可,该代码会清空原有\comment的定义,让\newcommand可以正常创建同名命令,但需要注意后续如果加载依赖原生\comment功能的宏包,可能会出现新的冲突,非必要不推荐该操作。

修复后完整可用代码

导言区定义部分:

\usepackage[dvipsnames]{xcolor}
\usepackage{ulem}
\newcommand{\added}[1]{{\color{NavyBlue}{{}ADDED: #1}}}
\newcommand{\deleted}[1]{{\color{red}{DELETED: \sout{#1}}}}
% 原\comment重命名为\editnote避免冲突
\newcommand{\editnote}[1]{{\color{ForestGreen}{[#1]}}}

正文调用部分:

\begin{document}

Hi
I am showing that \deleted{I am deleting my old words}, \added{adding some new words} and \editnote{offering some comments.}

\end{document}

编译后可以正常显示:红色删除线标注删除内容、藏蓝色标注新增内容、森林绿色方括号标注批注内容,符合修改痕迹展示需求。

内容的提问来源于stack exchange,提问作者Shosho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:27:20