我正在尝试编写一个非常精简的参考书目。我几乎找到了解决方案,但恼人的间距问题不断出现。
以下是 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$
}
将“:”修改为“:”。这个解决方案不是很干净,但它可能是一个开始。