我正在根据 documentclass 报告撰写一份文档。除了 natbib 包之外,我还使用 multibib 包将参考列表放在文档内部,而不仅仅是放在末尾。
现在,我希望中间参考列表的标题遵循 \subsection*{} 的样式,但它看起来遵循 \chapter*{} 的样式。
但是,最终的参考书目(与整个文档相关)可以/应该保留 \chapter*{} 样式。
有什么方法可以操纵这种样式吗?或者有什么方法可以完全摆脱多书目书目标题?然后我可以直接使用 \subsection*{}...
答案1
在natbib
里面参考部分使用宏 进行格式化\bibsection
,随后由multibib
if 与 一起使用natbib
。宏定义如下:
\section *{\refname \@mkboth {\MakeUppercase {\refname }}{\MakeUppercase {\refname }}}
此定义以 开头\section
,您可以将其更改为\subsection
(或其他任何内容)。除了修改源代码外,您还可以使用包\patchcmd
中的命令临时“修补”该命令etoolbox
。此宏有五个参数:要修补的命令、搜索字符串、替换字符串和两个分别在修补成功或失败时执行的参数,也可以留空。修补中间参考书目后,您可以将其修补回主参考书目。
梅威瑟:
\documentclass[11pt]{article}
\begin{filecontents}{\jobname.bib}
@book{chicken:2010fj,
author = {Chicken, C},
title = {Chicken},
publisher = {Chicken Press},
year = {2010}
}
@book{turkey:2010jk,
author = {Turkey, T},
title = {Turkey},
publisher = {Turkey Press},
year = {2010}
}
\end{filecontents}
\usepackage{natbib}
\usepackage{multibib}
\usepackage{etoolbox}
\newcites{q}{Intermediate References}
\show\bibsection
\begin{document}
\section{On Chickens And Turkeys}
Regular reference: \citep{chicken:2010fj}. Intermediate reference: \citepq{turkey:2010jk}.
\bibliographystyleq{apalike}
\patchcmd{\bibsection}{\section}{\subsection}{}{}
\bibliographyq{\jobname.bib}
\bibliographystyle{apalike}
\patchcmd{\bibsection}{\subsection}{\section}{}{}
\bibliography{\jobname.bib}
\end{document}
请注意,也可以使用打印多个参考书目biblatex
,例如biblatex:单独列出特定的参考书目条目。