参考书目分两栏,章节标题分一栏

参考书目分两栏,章节标题分一栏

我使用以下内容将参考书目分为两列:

\begin{multicols}{2}
\bibliographystyle{abbrv}
\bibliography{mybib}
\end{multicols}

但是,章节标题("References"在文章文档样式中)也出现在两列中,而我希望它横跨整个页面。我怎样才能做与以下代码等效的事情,但仍使用 BibTeX?

\section*{References}
\begin{multicols}{2}
\thebibliography{..}
\end{multicols}

谢谢。

答案1

根据 Gonzalo 的回答,我建议使用etoolbox\thebibliography包选择性地更改和的定义\endthebibliography。将以下内容添加到您的序言中:

\usepackage{multicol}
\usepackage{etoolbox}
\patchcmd{\thebibliography}{\section*{\refname}}
    {\begin{multicols}{2}[\section*{\refname}]}{}{}
\patchcmd{\endthebibliography}{\endlist}{\endlist\end{multicols}}{}{}

编辑:它是如何工作的?该\patchcmd命令需要五个参数,但您可以忽略(就像我一样)最后两个参数,它们会生成修补成功/错误消息。参数 1 是要“修补”(选择性更改)的命令,参数 2 是应该替换的命令定义部分,参数 3 是替换部分。(因为thebibliography是一个环境,所以我必须修补定义它的两个命令。)

答案2

您可以重新定义thebibliography环境以使用两列并使用可选参数来multicols放置标题;将以下几行添加到文档的序言中:

\usepackage{multicol}

\makeatletter
\renewenvironment{thebibliography}[1]
     {\begin{multicols}{2}[\section*{\refname}]%
      \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist\end{multicols}}
\makeatother

现在,在文档正文中,只需使用

\bibliographystyle{abbrv}
\bibliography{mybib}

答案3

如果您正在使用natbib,解决此问题的最简单方法是使用bibpreamblebibpostamble

\usepackage{multicol}

\renewcommand{\bibpreamble}{\begin{multicols}{2}}
\renewcommand{\bibpostamble}{\end{multicols}}

这样,只有参考文献放在两列中,标题被省略。然而,它保留了参考书目的标题chapter。要更改这种情况,您可以使用例如bibsection

\usepackage{natbib}

\renewcommand\bibsection{\section{\bibname}}

答案4

我发现在两列中有引用的最简单的解决方案是使用\twocolumn如下命令:

\twocolumn
\bibliography{report}
\onecolumn

相关内容