从 bibunit 中删除标题

从 bibunit 中删除标题

我正在使用 bibunit 在文档中输入多个参考书目。我不希望 bibunit 有单独的标题。我可以通过重新定义 删除带有 的文本\refname,但这仍然会留下很大的垂直空间。我怎样才能完全删除该空间?

这是一个玩具示例:

\documentclass{article}
\usepackage{bibunits}
\begin{document}

\defaultbibliographystyle{plainyr-rev}
\defaultbibliography{ab,ty2}
\renewcommand{\refname}{}

\section{Publications}

Some text goes here.

\begin{bibunit}
  \nocite{smith_douglas_ea_2004}
  \putbib
\end{bibunit}
\end{document}

得出的结果为:

我在图像上画了一条红线来显示我想要减少/消除的空间。

答案1

针对该类的特定 hack article。其他类可能需要不同的解决方法:

\documentclass{article}
\usepackage{bibunits}

%%% START HACK
\usepackage{etoolbox}
\AtBeginEnvironment{bibunit}{\renewcommand\section[5]{}}
%%% END HACK

\begin{document}

\defaultbibliographystyle{plainyr-rev}
\defaultbibliography{ab,ty2}

\section{Publications}

Some text goes here.

\begin{bibunit}
  \nocite{smith_douglas_ea_2004}
  \putbib
\end{bibunit}
\end{document}

说明:环境代码thebibliography

\newenvironment{thebibliography}[1]
     {\section*{\refname}%
      \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
      [...]

\section并且我们执行的“何时开始”的重新定义与随后的五个“论点”一起bibunits吞噬:\section

*
{\refname}
\@mkboth
{\MakeUppercase\refname}
{\MakeUppercase\refname}

一个更清晰的方法是重新定义环境:

\makeatletter
\renewenvironment{thebibliography}[1]
     {\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}
\makeatother

删除负责该命令的代码\section*

答案2

您还可以

\renewcommand{\refname}{\vspace*{-21pt}}

根据您的喜好调整 21。

相关内容