我尝试将 memoir 类与bibunits
(和natbib
,如果这有关系的话)一起使用。具体来说,我使用\begin{bibunit}
和\end{bibunit}
来定义应接收单独参考书目的部分,然后我使用\putbib
,使用不同的 .bib 文件来放置它们。
这种方法确实效果不错,但有一个问题:每次\putbib
插入(可能还包括其他内容)似乎都会插入一个额外的、未编号的章节,标题为“参考书目”,这意味着带有参考文献的页面有一个相应大的页眉(并且无论我是否愿意,都会自动开始一个新页面),目录中会有一个额外的条目,等等。我宁愿不要这样 - 只putbib
生成参考文献列表即可 - 或者,如果这样的插入不可避免,我至少希望参考书目是一个部分(当前章节的一部分),而不是它自己的一个章节*。
下面是一个最简单的例子来说明我的意思:
\documentclass[12pt, a4paper]{memoir}
\usepackage{bibunits}
\usepackage[round, authoryear]{natbib}
\bibliographystyle{ecta}
\usepackage{bibunits}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\begin{bibunit}[ecta]
\chapter{First Chapter}
Bla bla.
\putbib
\end{bibunit}
\chapter{Second chapter}
\begin{bibunit}[ecta]
Bla bla.
\putbib
\end{bibunit}
\end{document}
生成目录:
我更希望在章节级别有“参考书目”条目;最好将其命名为“参考文献”。或者干脆把标题全部去掉,然后我手动做也可以。
答案1
您遇到的基本问题来自于没有使用sectionbib
选项bibunits
。因此,要使章节级别的参考书目标记为“参考”,您需要添加以下内容。
\usepackage[sectionbib]{bibunits}
\renewcommand{\bibname}{References}
请注意,如果您正在加载babel
,则必须通过包装\renewcommand
适当的babel
方法来完成此重命名。例如,如果您的主要语言设置为english
,则需要使用:
\addto\extrasenglish{\renewcommand{\bibname}{References}}
而不是上面显示的简单\renewcommand
。
但是,这memoir
会弄乱各种事情,这意味着像bibunits
这样的包只假设基本文档类可能不起作用。所以我们需要做更多的魔法,调整这里的答案(几乎是重复的):
\documentclass[12pt, a4paper]{memoir}
\begin{filecontents}{\jobname.bib}
@book{Chomsky1981,
address = {Dordrecht},
author = {Noam Chomsky},
publisher = {Foris Publications},
title = {Lectures on Government and Binding},
year = {1981}}
@book{Chomsky1986,
address = {New York},
author = {Noam Chomsky},
publisher = {Praeger},
title = {Knowledge of Language: its nature, origin and use},
year = {1986}}
\end{filecontents}
\usepackage[round, authoryear]{natbib}
\usepackage[sectionbib]{bibunits}
\renewcommand{\bibname}{References}
\newif\ifnumberedbib
\numberedbibfalse % False by default anyway
\makeatletter
\AtBeginDocument{%
\renewcommand{\@memb@bsec}{%
\ifnumberedbib
\section{\bibname}
\else
\section*{\bibname}%
\fi
\bibmark
\ifnobibintoc\else
\ifnumberedbib\else
\phantomsection
\addcontentsline{toc}{section}{\bibname}%
\fi
\fi
\prebibhook
}
\renewcommand{\bibsection}{\@memb@bsec}
}
\makeatother
\begin{document}
\bibliographystyle{ecta}
\frontmatter
\tableofcontents
\mainmatter
\begin{bibunit}[ecta]
\chapter{First Chapter}
Bla bla.
\citet{Chomsky1981}
\putbib[\jobname]
\end{bibunit}
\chapter{Second chapter}
\begin{bibunit}[ecta]
Bla bla.
\citet{Chomsky1986}
\putbib[\jobname]
\end{bibunit}
\end{document}