# How to change bibliography style from [1] to 1

I know that several people have already asked this question, but for some strange reason the suggestions are not working.

I have tried inserting:

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


into the preamble of my .tex file, of the .ltb file, and of the style file that I am using, however nothing changes the references. This is and example of what has been tried:

\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}


The corresponding Bib.ltb would be:

\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}


I have also tried inserting:

\makeatletter
\renewcommand{\BibLabel}{%
\hfill
\Hy@raisedlink{\hyper@anchorstart{cite.\CurrentBib}\hyper@anchorend}%
\thebib.%
}
\makeatother


However, this yields the error message

2063: Undefined control sequence.
\BibLabel ->\hfill \Hy@raisedlink
{\hyper@anchorstart {cite.\CurrentBib }\hy...
l.2063 \begin{thebibliography}{plain}


Are there any other suggestions? Thank you!

-
Hi Kathleen, welcome to TeX.sx! Redefining \@biblabel as you did in your code does change the list of references from [n] to n.. Perhaps you could include a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}, and also a fragment of your .bib file. :) – Paulo Cereda Mar 15 '13 at 18:49
@PauloCereda No; if amsrefs is used, as is the case here, the mentioned redefinition of \@biblabel doesn't change the label formatting in the bibliography – Gonzalo Medina Mar 15 '13 at 19:17
@Kathleen I took the liberty of adding a MWE illustrating the problem, and the corresponding image; I hope it's OK. – Gonzalo Medina Mar 15 '13 at 19:31
And where is the file uncthesis.cls to be found? – Gonzalo Medina Mar 16 '13 at 14:48
Try loading the amsrefs package in your .tex file right before the redefinition: \usepackage{amsrefs} \makeatletter \renewcommand{\BibLabel}{ \hfill \Hy@raisedlink{\hyper@anchorstart{cite.\CurrentBib}\hyper@anchorend} \thebib. } \makeatother. – Gonzalo Medina Mar 16 '13 at 14:52

## 1 Answer

Since amsrefs is being used, a redefinition of \BibLabel is needed:

\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}


Just for the record, here's the original definition:

\newcommand{\BibLabel}{%
\hfill
\Hy@raisedlink{\hyper@anchorstart{cite.\CurrentBib}\hyper@anchorend}%
[\thebib]%
}


A little explanation on why the redefinition of \@biblabel doesn't work with amsrefs: \@biblabel is a kernel's command and amsrefs doesn't use it to format the labels in the bibliography (amsrefs uses its own \BibLabel command); that's why redefining \@biblabel when the amsrefs package is used goes silently into oblivion (in particular, no error message will be produced) without any visible effect.

-
Thank you for your suggestions. I think I need to provide some more information. This is what the tex file looks like: \documentclass[noheadings]{uncthesis} \usepackage{amsmath,amssymb,amsthm,slashed,amsfonts} \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} And then I have a .ltb file that looks like: \documentclass{amsart} \usepackage{amsrefs} \begin{document} \begin{bibdiv} \begin{biblist} \end{biblist} \end{bibdiv} – Kathleen Mar 16 '13 at 13:55
@Kathleen does this mean that you tried my suggestion and it didn't work? – Gonzalo Medina Mar 16 '13 at 14:07
I did try it. I got an error message: Undefined control sequence. If I "Goto Error" it sends me to \begin{thebibliography}{plain} – Kathleen Mar 16 '13 at 14:12
@Kathleen what exactly is the complete error message? You didn't mention what is the undefined control sequence. Also, please, since code formatting in comments is a nightmare, edit your question and add the code there. – Gonzalo Medina Mar 16 '13 at 14:15