我正在使用 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。