使用 titlesec 时参考文献的章节计数器错误

使用 titlesec 时参考文献的章节计数器错误

使用该包更改我的部分的样式titlesec可以很好地处理这些行

\usepackage{titlesec}
\titleformat{\section}[block]{\large\scshape\centering{\Roman{section}.}}{}{1em}{}

但是将我的文献添加到文件末尾后……

\bibliographystyle{plain}
\bibliography{literature}

...计数器没有增加,并且参考部分的间距不完全正确。但是,标题具有定义的部分样式。您有解决方案来获得一致的计数器吗?

答案1

在 的第二个参数中包含计数器并不方便\titleformat;这将导致带星号的部分以“非正统”的方式编号,如下面的简单示例所示:

\documentclass{article}
\usepackage{titlesec}
\titleformat{\section}[block]{\large\scshape\centering{\Roman{section}.}}{}{1em}{}

\begin{document}

\section{Test Section}
\subsection{Test Subsection}
\section*{Test Section}
\subsection{Test Subsection}

\end{document}

这会产生以下错误结果(编号错误、编号和标题之间的间距错误以及下属部门单位的计数器未正确重置):

在此处输入图片描述

正确的做法是\thesection先重新定义使用罗马数字,如下例所示:

\documentclass{article}
\usepackage{titlesec}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{test,
  author= "The Author",
  journal = "The Journal",
  pages= "1-2",
  year="2012"
}
\end{filecontents*}

\renewcommand\thesection{\Roman{section}}

\titleformat{\section}[block]
  {\large\scshape\filcenter}{\thesection.}{1em}{}

\begin{document}

\section{test}
\cite{test}
\bibliographystyle{plain}
\bibliography{\jobname}

\end{document}

在此处输入图片描述

如果您想要对参考书目部分进行编号,则可以使用该etoolbox包来修补\thebibliography要使用的命令,\section而不是默认命令\section*

\documentclass{article}
\usepackage{titlesec}
\usepackage{etoolbox}
\usepackage{filecontents}

\patchcmd{\thebibliography}{\section*}{\section}{}{}

\begin{filecontents*}{\jobname.bib}
@article{test,
  author= "The Author",
  journal = "The Journal",
  pages= "1-2",
  year="2012"
}
\end{filecontents*}

\renewcommand\thesection{\Roman{section}}

\titleformat{\section}[block]
  {\large\scshape\filcenter}{\thesection.}{1em}{}

\begin{document}

\section{test}
\cite{test}
\bibliographystyle{plain}
\bibliography{\jobname}

\end{document}

在此处输入图片描述

与原始问题无关,但\centering没有参数,因此\centering{text}应该使用类似的内容{\centering text\par} (仅当需要明确分组以保持局部效果时才需要括号)。

相关内容