如何将参考书目样式从 [1] 更改为 1

如何将参考书目样式从 [1] 更改为 1

我知道已经有几个人问过这个问题,但由于某种奇怪的原因,这些建议不起作用。

我曾尝试插入:

\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命令);这就是为什么在使用\@biblabelamsrefs包时重新定义会悄悄地被遗忘(特别是,不会产生任何错误消息)而没有任何明显的效果。

相关内容