删除压缩书目中的条目之间的空格

删除压缩书目中的条目之间的空格

我正在尝试编写一个非常精简的参考书目。我几乎找到了解决方案,但恼人的间距问题不断出现。

以下是 MWE:

\documentclass[10pt]{article}
\usepackage[numbers,sort&compress,super]{natbib}

\usepackage{paralist}
\let\olditem\item
\renewenvironment{thebibliography}[1]{%             
  \section*{\refname}
  \let\par\relax\let\newblock\relax
  \inparaenum}{\endinparaenum}

\makeatletter
  \renewcommand\@biblabel[1]{{\bf #1}.}
\makeatother

\begin{document}

Cite two papers\cite{MaynardSmith1995,Adami2000b}.

\bibliographystyle{unsrt}
\bibliography{mwe_bib}{}

\end{document}

mwe_bib.bib 的位置

@Article{Adami2000b,
 author =       {C. Adami},
 journal =      {Proc. Natl. Acad. Sci. USA}, 
 year =         {2000},
 volume =       {97},
 pages =        {4463-4468}
}

@Book{MaynardSmith1995,
 author =    {J. {Maynard Smith} and E. Szathm\'{a}ry},
 title =     {The Major Evolutionary Transitions},
 publisher = {Oxford University Press},
 year =      {1995},
}

输出如下:

在此处输入图片描述

我想要做的是删除参考文献 1 的结尾和参考文献 2 的开头之间的大空格。也就是说,“1995.”和“2.”之间的大空格。

我搜索了几个小时的解决方案,但无济于事。如能得到任何帮助我将不胜感激。

编辑:感谢 Thomas 和 Mico,上面的 MWE 现在可以正常工作了。不幸的是,只要再添加一个引用,问题就会再次出现。这是一个新的 MWE:

\documentclass[10pt]{article}
\usepackage[numbers,sort&compress,super]{natbib}

\usepackage{paralist}
\let\olditem\item
\renewenvironment{thebibliography}[1]{%             
  \section*{\refname}
  \let\par\relax\let\newblock\relax
  \inparaenum}{\endinparaenum}

\makeatletter
  \renewcommand\@biblabel[1]{{\bf #1}.}
\makeatother

\begin{document}

Cite three papers\cite{MaynardSmith1995,Adami2000b,Adami2002}.

\bibliographystyle{unsrt}
\bibliography{mwe_bib}{}

\end{document}

其中 unsrt 已根据 Mico 的评论进行了修改,使用 \hspace{0pt} 并且 mwe_bib.bib 现在是

@Article{Adami2000b,
  author =       {C. Adami},
  journal =      {Proc. Natl. Acad. Sci. USA}, 
  year =         {2000},
  volume =       {97},
  pages =        {4463-4468}
}

@Book{MaynardSmith1995,
  author =   {J. {Maynard Smith} and E. Szathm\'{a}ry},
  title =    {The Major Evolutionary Transitions},
  publisher =    {Oxford University Press},
  year =     {1995},
}

@Article{Adami2002,
  author =       {C. Adami},
  journal =      {BioEssays},
  year =         {2002},
  volume =       {24},
  pages =        {1085-1094}
}

输出如下:

在此处输入图片描述

现在,第二个引用的结尾和第三个引用的开头之间有一个难看的空格。有什么想法吗?

答案1

除了上述更改之外,解决方案还需要下面第 8 行:

\documentclass[10pt]{article}
\usepackage[numbers,sort&compress,super]{natbib}

\usepackage{paralist}
\let\olditem\item
\renewenvironment{thebibliography}[1]{%             
  \section*{\refname}
  \let\par\relax\let\newblock\relax
  \renewcommand{\item}[1][]{{\bf \olditem}}
  \inparaenum}{\endinparaenum}

\begin{document}

Cite three papers\cite{MaynardSmith1995,Adami2000b,Adami2002}.

\bibliographystyle{mystyle}
\bibliography{unsrt}{}

\end{document}

现在输出看起来应该是这样的:

在此处输入图片描述

答案2

我提出的想法是添加可破坏的空间。

将文件“unsrt.bst”放在您的工作目录中并修改第 393 行(在我的 Latex 版本中);代码如下所示:

FUNCTION {format.vol.num.pages}
{ volume field.or.null
  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
        { pop$ format.pages }
        { ":" * pages n.dashify * } % !!!!!!!!!! here
      if$
    }
  if$
}

将“:”修改为“:”。这个解决方案不是很干净,但它可能是一个开始。

相关内容