我在编译时无法显示命名法包。经过一番搜索,我认为可能存在一些包干扰。我尝试查看文件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
。
问题是,较新版本的nomencl
load tocbasic
,它加载scrbase
,它有\newcommand{\ifnumber}
,并且损坏就在那里。幸运的是,有一个非常简单的解决方案:交换这两个包的顺序:
\usepackage{nomencl}
\usepackage{babelbib}
这种方式\ifnumber
是在nomencl
加载时定义的,并且自从babelbib
使用以来\providecommand
它就不会做任何事情。