我是 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}
因为您已经加载了这些包。