我知道已经有几个人问过这个问题,但由于某种奇怪的原因,这些建议不起作用。
我曾尝试插入:
\makeatletter
\renewcommand\@biblabel[1]{#1.}
\makeatother
.tex
进入我的文件、文件和我正在使用的样式文件的序言.ltb
,但是没有任何改变引用。这是已尝试的示例:
\documentclass[noheadings]{uncthesis}
\usepackage{amsmath,amssymb,amsthm,slashed,amsfonts}
\makeatletter
\renewcommand\@biblabel[1]{#1.}
\makeatother
\begin{document}
Alan Sokal~\cite{Sokal96} recommends Bourbaki's
text~\cite{Bourbaki70} for a gentle introduction to set theory.
\begin{thebibliography}{plain}
\bibselect{Bib}
\end{thebibliography}
\end{document}
相应的 Bib.ltb 为:
\documentclass{amsart}
\usepackage{amsrefs}
\begin{document}
\begin{bibdiv}
\begin{biblist}
\bib{Bourbaki70}{book}{
title={Th\'eorie des ensembles},
author={Bourbaki, Nicolas},
date={1970},
publisher={Hermann},
address={Paris}
}
\bib{Sokal96}{article}{
title={Trangressing the boundaries},
subtitle={Toward a transformative hermeneutics of quantum gravity},
author={Sokal, Alan},
journal={Social Text},
volume={46/47},
date={1996},
pages={217--252}
}
\end{biblist}
\end{bibdiv}
\end{document}
我也尝试过插入:
\makeatletter
\renewcommand{\BibLabel}{%
\hfill
\Hy@raisedlink{\hyper@anchorstart{cite.\CurrentBib}\hyper@anchorend}%
\thebib.%
}
\makeatother
然而,这会产生错误消息
2063: Undefined control sequence.
\BibLabel ->\hfill \Hy@raisedlink
{\hyper@anchorstart {cite.\CurrentBib }\hy...
l.2063 \begin{thebibliography}{plain}
还有其他建议吗?谢谢!
答案1
由于amsrefs
正在使用,因此\BibLabel
需要重新定义:
\documentclass{article}
\usepackage{amsrefs}
\makeatletter
\renewcommand{\BibLabel}{%
\hfill
\Hy@raisedlink{\hyper@anchorstart{cite.\CurrentBib}\hyper@anchorend}%
\thebib.%
}
\makeatother
\begin{document}
Alan Sokal~\cite{Sokal96} recommends Bourbaki's
text~\cite{Bourbaki70} for a gentle introduction to set theory.
\begin{bibdiv}
\begin{biblist}
\bib{Bourbaki70}{book}{
title={Th\'eorie des ensembles},
author={Bourbaki, Nicolas},
date={1970},
publisher={Hermann},
address={Paris}
}
\bib{Sokal96}{article}{
title={Trangressing the boundaries},
subtitle={Toward a transformative hermeneutics of quantum gravity},
author={Sokal, Alan},
journal={Social Text},
volume={46/47},
date={1996},
pages={217--252}
}
\end{biblist}
\end{bibdiv}
\end{document}
仅供记录,以下是原始定义:
\newcommand{\BibLabel}{%
\hfill
\Hy@raisedlink{\hyper@anchorstart{cite.\CurrentBib}\hyper@anchorend}%
[\thebib]%
}
\@biblabel
关于为什么 的重新定义不能与 一起使用的一点解释amsrefs
:\@biblabel
是一个内核命令,并且amsrefs
不使用它来格式化参考书目中的标签(amsrefs 使用自己的\BibLabel
命令);这就是为什么在使用\@biblabel
该amsrefs
包时重新定义会悄悄地被遗忘(特别是,不会产生任何错误消息)而没有任何明显的效果。