
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 では問題になりませんでした!)
Ps. 私のソースコードの一部:
%% -------------------------------
%% | 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}}}{}}
\newcommand{\todo}[1]
更新:に変更することで、Windows 上でバイパスする方法を見つけました\renewcommand{\todo}[1]
。ただし、変更されたコードにより、Ubuntu システムで "\todo undefined" というエラーが発生します。
コードは同じですが、環境が異なることを示しています。私がする必要があるのは、Windows でどのパッケージが何らかの形で追加/アップグレードされたかを見つけることです。
答え1
これはchanges
パッケージからのものです (さまざまなポイントに追加して\show\todo
、どこで定義されるかを確認するとわかります)。そのパッケージのコマンドが必要ない場合は、\renewcommand
定義で を使用するだけで、既存の定義を上書きできます。
答え2
これは最終バージョンですか? そうであれば、コマンドを定義する少なくとも 2 行をコメント アウトしてください。
%\newcommand{\todo}[1]
%{{\textbf{\textcolor{red}{(\margmajortodo{}#1)}}}{}}