我在 windows10 的 visual studio code 上编译配方“pdflatex->bibtex->pdflatex x2”时出现此错误。
LaTeX Error: Command \todo already defined.
Or name \end... illegal, see p.192 of the manual.
该代码与我在 ubuntu18 的 Visual Studio 代码上编译的代码相同。我想知道如何覆盖“\todo”命令,我不知道它在哪里定义。(这在 ubuntu 上从来都不是问题!)
附言:我的部分源代码:
%% -------------------------------
%% | My packages /commands |
%% -------------------------------
% track changes
%\usepackage{changes} % highlight changes
\usepackage[final]{changes} % don't highlight changes
% tables
\usepackage{array,multirow,graphicx}
% pseudocode
\usepackage[ruled,vlined]{algorithm2e}
% for forcing positions of tables, figures, ...
\usepackage{float}
% units
\usepackage{siunitx}
\usepackage{dcolumn}
%% ---------------------------------
%% | ToDo Marker - only for draft! |
%% ---------------------------------
% Remove this section for final version!
\setlength{\marginparwidth}{20mm}
\newcommand{\todo}[1]
{{\textbf{\textcolor{red}{(\margmajortodo{}#1)}}}{}}
\newcommand{\margmajortodo}
{\marginpar{\textbf{\textcolor{red}{ToDo}}}{}}
更新:我在 windows 上找到了一种绕过方法,即改为\newcommand{\todo}[1]
。\renewcommand{\todo}[1]
但是,在我的 ubuntu 系统上,更改后的代码给出了“\todo undefined”的错误。
虽然代码相同,但这表明环境不同。我需要做的是找出 Windows 中以某种方式添加/升级了哪个包。
答案1
它来自changes
包(您可以通过\show\todo
在各个点添加并查看它在哪里定义来看到)。如果您不需要该包中的命令,只需\renewcommand
在您的定义中使用即可覆盖现有定义。
答案2
这是最终版本吗?如果是,请至少注释掉定义命令的两行:
%\newcommand{\todo}[1]
%{{\textbf{\textcolor{red}{(\margmajortodo{}#1)}}}{}}