
Ich habe diesen Fehler beim Kompilieren des Rezepts „pdflatex->bibtex->pdflatex x2“ im Visual Studio Code von Windows 10 erhalten.
LaTeX Error: Command \todo already defined.
Or name \end... illegal, see p.192 of the manual.
Der Code ist derselbe, den ich im Visual Studio-Code von Ubuntu 18 kompiliert habe. Ich frage mich, wie ich den Befehl „\todo“ überschreiben kann, von dem ich nicht weiß, wo er sonst noch definiert wurde. (Unter Ubuntu war das nie ein Problem!)
Ps. Teil meines Quellcodes:
%% -------------------------------
%% | 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}}}{}}
UPDATE: Ich habe eine Umgehungsmethode unter Windows gefunden, indem ich \newcommand{\todo}[1]
zu geändert habe \renewcommand{\todo}[1]
. Der geänderte Code führt jedoch auf meinem Ubuntu-System zu dem Fehler „\todo undefined“.
Es zeigt an, dass die Umgebung unterschiedlich ist, obwohl die Codes gleich sind. Ich muss herausfinden, welches Paket in Windows irgendwie hinzugefügt/aktualisiert wurde.
Antwort1
Es stammt aus changes
dem Paket (wie Sie sehen können, indem Sie es \show\todo
an verschiedenen Stellen hinzufügen und sehen, wo es definiert wird). Wenn Sie den Befehl aus diesem Paket nicht benötigen, verwenden Sie ihn einfach \renewcommand
in Ihrer Definition, um die vorhandene Definition zu überschreiben.
Antwort2
Ist dies die endgültige Version? Wenn ja, kommentieren Sie mindestens die beiden Zeilen aus, die Ihren Befehl definieren:
%\newcommand{\todo}[1]
%{{\textbf{\textcolor{red}{(\margmajortodo{}#1)}}}{}}