babel package call 应该放在序言的末尾吗?

babel package call 应该放在序言的末尾吗?

我记得几年前读过1babel ,第2行应该放在序言的末尾,以避免与其他软件包发生问题。(hyperref出于同样的原因,我相信软件包也应该放在序言的末尾。)

然而,我发现,在 MWE 中,该babel行通常紧接着\documentclass

有什么区别吗?这里的好做法是什么?

附录

这是我的 LaTeX 模板。您是否看到过其他放错位置的包调用?

\documentclass[12pt,twoside,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{setspace}
\usepackage{todonotes}
\usepackage{graphicx} 
\usepackage{lmodern}
\usepackage{xspace}
\usepackage[style=authoryear-comp,hyperref,backend=biber,isbn=false,doi=false,url=false,date=year]{biblatex}
\AtEveryBibitem{\clearlist{language}}
\renewcommand*{\newunitpunct}{\addcomma\space}
\bibliography{biblio}
\title{}
\author{}
\usepackage[francais,english]{babel}
\usepackage{csquotes}
\usepackage[colorlinks]{hyperref}
\begin{document}
\maketitle
\tableofcontents
\onehalfspacing


\printbibliography
\end{document}

1. 我不记得在哪里了...抱歉。

2.\usepackage[dutch,english]{babel}

答案1

某些软件包的行为会有所不同,或者会根据是否已加载而babel进行 某种调整:例如biblatexcsquotes...datetimefmtcountglossarieslistings microtypenatbibtikzbabel

我倾向于按类别对包调用进行分组。首先是直接涉及我的文档主要选择的那些:

\usepackage[T1]{fontenc}    % alphabets to prepare
\usepackage[utf8]{inputenc} % input encoding
\usepackage[italian]{babel} % language(s)

\usepackage{kpfonts}        % or another font package

\usepackage{geometry}       % if needed for page shape
\geometry[<options>]

\usepackage{fancyhdr}       % if needed (it should go after geometry)
<fancyhdr settings>

然后我按照可能有意义的顺序加载其他实用程序包:

\usepackage{amsmath,amssymb,amsthm}

\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{microtype}

\usepackage{csquotes}            % for biblatex, mainly
\usepackage[<options>]{biblatex} % or natbib

等等。当然,hyperref应该放在最后,但cleveref如果加载了,应该放在最后。

注意:kpfonts仅作为示例。我通常不依赖于特定的字体。

如果etex有必要,它应该第一的. 其他需要尽早加载的软件包当然是ifpdfifxetexifluatex(在需要时)。

所有包加载后,命令定义和其他设置才会生效。

相关内容