我在文档末尾使用以下参考书目代码:
\documentclass[...]{book}
...
\begin{singlespace}
\begin{footnotesize}
\addcontentsline{toc}{chapter}{References}
\bibliographystyle{amsalpha}
\renewcommand{\bibname}{References}
\bibliography{thesis}
\end{footnotesize}
\end{singlespace}
但是,我想稍微加宽一下引文关键字和完整条目之间的边距,因为有些引文关键字太大,突出在描述中。例如:
更新:使用列夫的答案,我几乎让它工作了:
但现在左方括号始终右对齐,并且在参考键中有一个空格。
附加问题:如果可能的话,amsalpha
似乎也只在作者数量大于 4 时使用 + 后缀(例如 [SAJ+02])。是否可以将阈值降低到 3?
答案1
我猜问题在于amsalpha.bst
使用 bibtexwidth$
原语来计算最长的标签。但这个计算是基于“使用 1987 年 6 月的 cmr10”。如果你使用具有不同度量标准的字体,那么这并不总是有效。有多种方法可以解决这个问题,最简单的方法可能是编辑 .bbl 文件行\begin{thebibliography}{longestlabel}
。一个“更好”的解决方案是使用等式包。例如,使用纳特比布这就像在序言中写到的那样简单:
\usepackage{eqparbox}
\usepackage[numbers]{natbib}
\renewcommand*{\bibnumfmt}[1]{\eqparbox[t]{bblnm}{[#1]}}
要更改缩写前的作者数量,您可以编辑amsalpha.bst
。 该format.lab.names
功能似乎是执行此操作的地方。
答案2
调整列表边距:
标签的宽度和左边距应由最宽的标签决定。但您可以自行指定。
要检查发生了什么,你可以查看由 BibTeX 创建的扩展名为 的文件.bbl
。在那里你会看到如下一行:
\begin{thebibliography}{WYWB09}
这WYWB09
是标签宽度的模型。该参数可以更改,您甚至可以在序言中准备好它:
\let\stdthebibliography\thebibliography
\let\stdendthebibliography\endthebibliography
\renewenvironment*{thebibliography}[1]{%
\stdthebibliography{WYWBJ07}}
{\stdendthebibliography}
这里我使用了一种常见的解决方法:我保存了原始的 thebibliography 环境并重新定义它。重新定义使用原始环境命令,但使用固定标签。您可以选择所需的标签,或者仅将虚拟文本声明为占位符,这样您就可以调整边距。
关于几位作者:
查看文件 amsalpha.bst。你可以这样找到它:
kpsewhich amsalpha.bst
在命令提示符下,位置可能类似于C:\texlive\2009\texmf-dist\bibtex\bst\amscls\amsalpha.bst
或C:\Program Files\MiKTeX 2.8\bibtex\bst\amscls\amsalpha.bst
或类似,具体取决于您的安装。在该文件中,您将找到一个名为 的函数format.lab.names
,这可能是所需修改的位置。简单一看可能会发现这种修改有时有点困难。我宁愿不加修改地使用该样式,因为许多作者都这样使用它,只要没有非常重要的理由偏离它。
答案3
关于您的奖励问题(降低了作者门槛):Stefan 已经提供了部分解决方案。复制amsalpha.bst
到您的工作目录。在副本中,搜索字符串(出现两次)
numnames #4 >
并将两个事件替换为
numnames #3 >