2

I am using AMSRefs to format my references, and I've noticed that the space between the last full stop and the subsequent review entry is usually absent. Here's an MCVE:

\documentclass{amsart}
\usepackage{amsrefs}

\begin{document}

\begin{bibdiv}
\begin{biblist}

\bib{art1}{article}{
    author={First Author},
    author={Second Author},
    title={Title of the paper},
    journal={Journal of interesting results},
    volume={10},
    date={2021},
    number={3},
    pages={8\ndash 11},
    review={MR12345},
    review={MR67890},
    review={Zbl 0123.45678},
}

\end{biblist}
\end{bibdiv}

\end{document}

Screenshot showing the lack of space between the last full stop and the first review entry.

If I use the command \MR provided by the package to format the Mathematical Reviews entries as review={\MR{12345}}, etc., then a sentence space is added before each review entry. So, the spacing between first and second review entries now looks weird, especially in comparison with the spacing between the second and third entries.

Screenshot showing the sentence spaces added when the \MR command is used.


Question: How can I get the spacing to be right?


I have found the following in my (limited) research, which may or may not be helpful.

Firstly, in the FAQ, the usage of the \MR command to adjust the spacing between the period and the review number is insisted:

  1. When I put

    review={MR0113214 (22 \#4052)},
    

    in a \bib, there is no space between the review number and the preceding period in the printed output.

    You must use the \MR macro to mark MR reviews:

    review={\MR{0113214 (22 \#4052)}},
    

    This will ensure the spacing is correct and also allow you to use the msc-links option.

However, this is inconvenient for the reasons described in the MCVE, namely:

  1. multiple MR reviews (a rare situation, but not impossible) are spaced incorrectly;
  2. reviews other than MR reviews, such as Zbl (Zentralblatt) and JFM (Jahrbuch) reviews, cannot be typeset properly.

Secondly, I noticed that redefining \BibSpec{article} so that the command \SentenceSpace is removed from the style specification of the review entry fixes the spacing between the final period and the first review entry so long as the \MR command is not used for markup. The reason for this is not entirely clear to me, though; looking at the documented source, the command \SentenceSpace is defined as:

2789 \newcommand{\SentenceSpace}{\relax\ifhmode\spacefactor`\. \fi}

Finally, I tried looking at the definition of the \MR command, but I couldn't get anything fruitful. In case it helps, here are the relevant definitions from the documented source:

2643 \def\strip@MRprefix#1#2#3#4\@nil{%
2644     \def\@tempa{#1#2#3#4}%
2645     \if#1M%
2646         \if#2R%
2647             \def\@tempa{#3#4}%
2648         \fi
2649     \fi
2650 }

2651 \def\MR#1{%
2652     \relax\ifhmode\unskip\spacefactor3000 \space\fi
2653     \begingroup
2654         \strip@MRprefix#1\@nil
2655         \edef\@tempa{MR\@nx\MRhref{\@tempa}{\@tempa}}%
2656     \@xp\endgroup
2657     \@tempa
2658 }

2659 \providecommand{\MRhref}[2]{#1}

...

2904 \IfOption{msc-links}{%
2905     \@ifundefined{href}{}{%
2906         \def\parse@MR#1 (#2)#3\@nil{%
2907             \def\MR@url{http://www.ams.org/mathscinet-getitem?mr=#1}%
2908             \def\@tempd{#1}%
2909             \def\@tempe{#2}%
2910         }%
2911         \def\MRhref#1#2{%
2912             \begingroup
2913                 \parse@MR#1 ()\@empty\@nil%
2914                 \href{\MR@url}{\@tempd\vphantom{()}}%
2915                 \ifx\@tempe\@empty
2916                 \else
2917                     \ \href{\MR@url}{(\@tempe)}%
2918                 \fi
2919             \endgroup
2920         }%
2921     }{}
2922 }{}

2 Answers 2

2
+100

You could define a command to add the space (and the spacefactor) to other non-MR reviews:

\documentclass{amsart}
\usepackage{amsrefs}

\newcommand\formatreview[1]{%
     \relax\ifhmode\unskip\spacefactor3000 
     \space\fi
     #1}


\begin{document}

\nonfrenchspacing
\begin{bibdiv}
\begin{biblist}

\bib{art1}{article}{
    author={First Author},
    author={Second Author},
    title={Title of the paper},
    journal={Journal of interesting results},
    volume={10},
    date={2021},
    number={3},
    pages={8\ndash 11},
    review={\MR{MR12345}},
    review={\MR{MR67890}},
    review={\formatreview{Zbl 0123.45678}},
}

\end{biblist}
\end{bibdiv}

\end{document}

enter image description here

The alternative is to redefine \MR and to remove the spacefactor setting there.

4
  • Thank you! A related question: it seems to me that the spacing after the comma at (say) no. 3, 8–11 is (when typeset) smaller than the spacing between the reviews, which seems to be equal to the spacing after the final full stop and before the first review. Is it possible to get the spacing after the commas to be consistent throughout? Jul 2, 2021 at 13:18
  • I also tried the alternative and redefined the \MR command by commenting out the line \relax\ifhmode\unskip\spacefactor3000 \space\fi in its definition, to see how that would work. The result I am getting is that there is no space between the final period and the first review (though the spacing between the reviews now appears consistent with the rest of the reference item). Jul 2, 2021 at 13:23
  • Remove only the spacefactor3000 Jul 2, 2021 at 13:32
  • Ah, you did mention 'the spacefactor setting', I should've read more carefully. Indeed, it works now, as you suggested. Thank you! Jul 2, 2021 at 13:35
0

For reasons that are not entirely clear to me, the following changes seem to solve the problem.

  • Removing the command \SentenceSpace from the \BibSpec style specification of the review entry fixes the spacing issue, provided that \MR is not used for markup.
  • To also use the \MR command, and maintain proper spacing of the review entries, I redefined it by adding the following in the preamble:
\makeatletter
\@ifundefined{href}{%
    \renewcommand{\MR}[1]{MR#1}
}{%
    \renewcommand{\MR}[1]{\href{https://mathscinet.ams.org/mathscinet-getitem?mr=MR#1}{MR#1}}
}
\makeatother

Of course, this means that I need to maintain my MR reviews in the specific format review={\MR{12345}}, and none of the following formats will do:

review={\MR{MR12345}}
review={\MR{12345 (67 \#8910)}}
review={\MR{MR12345 (67 \#8910)}}

I mention this because the \MR command provided by the AMSRefs package is actually meant to deal with the above cases. Adjusting the new \MR command to take care of these cases is currently beyond me; I am happy to take suggestions for improvement from more experienced users here.

For Zbl reviews, I defined a command \Zbl along similar lines:

\makeatletter
\@ifundefined{href}{%
    \providecommand{\Zbl}[1]{Zbl~#1}
}{%
    \providecommand{\MR}[1]{\href{https://zbmath.org/?q=an:#1}{Zbl~#1}}
}
\makeatother

Again, this means that I need to maintain the Zbl reviews in the specific format review={\Zbl{0123.45678}}.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.