LaTeX 错误:命令 \ifnumber 已使用命名法定义

LaTeX 错误:命令 \ifnumber 已使用命名法定义

我在编译时无法显示命名法包。经过一番搜索,我认为可能存在一些包干扰。我尝试查看文件output.log,但没有任何发现。请参阅附件中的日志文件快照和错误发生前的几行。

注意:我的序言中没有任何 KOMA 包,也不知道那是什么。如果有帮助的话,我使用 Overleaf 和 PdfLaTeX 作为编译器。

仅包含后就会出现以下两个错误\usepackage{nomencl}

LaTeX 错误:命令 \ifnumber 已定义。

LaTeX 错误:命令 \test@number 已定义。

感谢任何帮助!

编辑:加载后没有错误\usepackage[fixlanguage]{babelbib}\usepackage{nomencl}但仍未打印命名法。

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings} % for script
\usepackage[framed, numbered]{mcode} % for MATLAB-script
%\usepackage[T1]{fontenc}
\usepackage[english]{babel} % If you write in English
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm,bindingoffset=6mm]{geometry}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{natbib}
    \bibliographystyle{abbrvnat}
    \setcitestyle{authoryear,open={(},close={)},aysep{,}}
    %plainnat
    %abbrvnat Harvard?
    %babunsrt
    %agsm - Harvard
    %humannat
\usepackage{tocloft}
\usepackage[nottoc]{tocbibind} 
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{siunitx}
\usepackage{array} 
\usepackage{wrapfig}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{rotating}
\usepackage{float}
\usepackage{pdfpages}
\usepackage{flafter}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{multicol}
\usepackage{url}
\usepackage{tabularx}
\usepackage{parskip}
\usepackage{color, colortbl}
\usepackage{nomencl} %For abbrevations
    \makenomenclature
    % \renewcommand{\nomname}{List of Symbols}
    % \renewcommand{\nompreamble}{The next list describes several symbols that will be later used within the body of the document}
    % \immediate\write18{%
    % makeindex main.nlo -s abbr.ist -o main.nls%
    % } 
\usepackage[fixlanguage]{babelbib}
\usepackage{hyperref}
    \definecolor{dgreen}{RGB}{0,150,0}
    \definecolor{dblue}{RGB}{0,0,180}
    % \usepackage[colorlinks=true, allcolors=dblue]{hyperref}
    \hypersetup{
          colorlinks = true,
          linkcolor = black,
          anchorcolor = black,
          citecolor = black,
          urlcolor = blue
    }
    %Add prefix to hyperref
    \addto\extrasenglish{%
      \def\subsubsectionautorefname{}%
      \def\subsectionautorefname{}%
      \def\figureautorefname{Figure}
      \def\tableautorefname{Table}%
      \def\sectionautorefname{Section}%
    }

\usepackage{listings}
\usepackage[framed,numbered]{matlab-prettifier}

\lstdefinestyle{mystyle}{
    % backgroundcolor=\color{backcolour},   
    % commentstyle=\color{codegreen},
    % keywordstyle=\color{codeblue},
    % numberstyle=\tiny\color{codegray},
    % stringstyle=\color{magenta},
    % captionpos=b,
    basicstyle=\footnotesize,  
    breakatwhitespace=false,         
    breaklines=true,                 
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2
}
\lstset{style=mystyle}
\renewcommand{\lstlistingname}{Vedlegg}

\newcommand{\listequationsname}{List of Equations}
\newlistof{myequations}{equ}{\listequationsname}

\newcommand{\myequations}[1]{%
    \addcontentsline{equ}{myequations}{\protect\numberline{\theequation}#1}\par%
    }
\setlength{\cftmyequationsnumwidth}{2.5em}

\begin{document}
\input{01_Input/Chapter_input.tex}
\end{document}

答案1

MWE 也会出现此错误

\documentclass{article}

\usepackage[english]{babel}
\usepackage{babelbib}
\usepackage{nomencl}

\begin{document}
Hello world.
\end{document}

原因是 的babelbib定义\ifnumber方式与 KoMa-Script 类(更准确地说是 包scrbase)相同。为了避免在使用这些类时出现问题,babelbib请使用\providecommand

问题是,较新版本的nomenclload tocbasic,它加载scrbase,它有\newcommand{\ifnumber},并且损坏就在那里。幸运的是,有一个非常简单的解决方案:交换这两个包的顺序:

\usepackage{nomencl}
\usepackage{babelbib}

这种方式\ifnumber是在nomencl加载时定义的,并且自从babelbib使用以来\providecommand它就不会做任何事情。

相关内容