章节和小节中的控制序列未定义

章节和小节中的控制序列未定义

我是 LaTex 新手,正在写我的第一篇论文。不知为何,我的许多章节和小节都存在以下错误:

在此处输入图片描述

我的代码很长,所以我不确定除了这一行之外还要分享哪些行,但是从所以我认为文档类型很重要。我的是:

\documentclass{article}

其余的包裹是

\usepackage[utf8]{inputenc}
\usepackage{graphicx}
% \usepackage[section]{placeins}
% \usepackage{placeins}
\usepackage{float}
\let\Oldsection\section
\renewcommand{\section}{\FloatBarrier\Oldsection}
\let\Oldsubsection\subsection
\renewcommand{\subsection}{\FloatBarrier\Oldsubsection}
\let\Oldsubsubsection\subsubsection
\renewcommand{\subsubsection}{\FloatBarrier\Oldsubsubsection}
\usepackage{caption}
\usepackage{subcaption}
% \usepackage[LGRgreek]{mathastext}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{makecell}
\usepackage{diagbox}
\usepackage{rotating}
% \documentclass{article}
\usepackage{geometry}
\usepackage[skip=1ex]{caption}
\usepackage{amsmath}

\usepackage[hidelinks,colorlinks=true,linkcolor=blue,citecolor=blue]{hyperref}
\usepackage[backend=biber,style=numeric,sorting=none]{biblatex}
\addbibresource{mybib.bib}
\usepackage {hyperref}

从上述 SO 问题中的一条评论中,他们提到“文章类未定义\sectionfont,因此您必须为其提供定义”。但我不确定这是什么意思,也不知道如何定义字体,因为我是新手。

答案1

作为完整的测试文件发布:

\documentclass{article}


\usepackage[utf8]{inputenc}
\usepackage{graphicx}
% \usepackage[section]{placeins}
% \usepackage{placeins}
\usepackage{float}
\let\Oldsection\section
\renewcommand{\section}{\FloatBarrier\Oldsection}
\let\Oldsubsection\subsection
\renewcommand{\subsection}{\FloatBarrier\Oldsubsection}
\let\Oldsubsubsection\subsubsection
\renewcommand{\subsubsection}{\FloatBarrier\Oldsubsubsection}
\usepackage{caption}
\usepackage{subcaption}
% \usepackage[LGRgreek]{mathastext}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{makecell}
\usepackage{diagbox}
\usepackage{rotating}
% \documentclass{article}
\usepackage{geometry}
\usepackage[skip=1ex]{caption}
\usepackage{amsmath}

\usepackage[hidelinks,colorlinks=true,linkcolor=blue,citecolor=blue]{hyperref}
\usepackage[backend=biber,style=numeric,sorting=none]{biblatex}
\addbibresource{mybib.bib}
\usepackage {hyperref}

\begin{document}

\section{zzz}
zzz
\end{document}

您将在日志中看到错误是

! Undefined control sequence.
\section ->\FloatBarrier 
                         \Oldsection 
l.35 \section
             {zzz}
? 

未定义的命令表明\FloatBarrier你没有定义该命令。

它由未加载的包定义placeins,但即使使用了该包,您也不应该\section以这种方式重新定义。只需使用该section选项,正如您的帖子中注释掉的那样。

因此,基本的解决方法是删除

\let\Oldsection\section
\renewcommand{\section}{\FloatBarrier\Oldsection}
\let\Oldsubsection\subsection
\renewcommand{\subsection}{\FloatBarrier\Oldsubsection}
\let\Oldsubsubsection\subsubsection
\renewcommand{\subsubsection}{\FloatBarrier\Oldsubsubsection}

然后示例运行就不会出现错误。

您还应该删除

\usepackage[utf8]{inputenc}

除非你有一个旧的乳胶

并删除

\usepackage[skip=1ex]{caption}

\usepackage {hyperref}

因为您已经加载了这些包。

相关内容