回忆录类和 bibunits:避免每个 \putbib 都创建一个新章节*

回忆录类和 bibunits:避免每个 \putbib 都创建一个新章节*

我尝试将 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}

代码 samepl 第 1 章

相关内容