5

I'm using natbib with the super option, which generates citation call-outs in the form of superscript numerals. These numerals look quite a bit like footnote markers. I'd like to use the fnpct package to move the citation call-out numerals outside of the punctuation and improve the kerning. Unfortunately, by default it only works with \footnotes instead of natbib's \cites. According to chapter 8 of the documentation and this answer, you can hack fnpct together with Biblatex by adding the command \AdaptNoteOpt\cite\multcite to the preamble. But I'm using natbib and BibTeX instead of biblatex, and if I try adding that command my TeX capacity gets exceeded.

MWE: trying to compile

\documentclass{article}
\usepackage[super,compress]{natbib}
\usepackage{fnpct}

\AdaptNoteOpt\cite\multcite

\begin{document}

Hello world \cite{Anderson}.

\end{document}

results in the error message

! TeX capacity exceeded, sorry [main memory size=5000000]. \l__xparse_args_tl ...{Anderson}{Anderson}{Anderso n}{Anderson}{Anderson}{And...

It seems that for some reason the \AdaptNoteOpt command is causing the parser to duplicate {Anderson} umpteen times. How do I fix this?

Edit: The reason that I want to do this is explain in this question. I want the citation superscripts to be outside of the punctuation. If I do it manually (Hello world.\cite{Anderson}), then there's a bit too much horizontal space between the period and the superscript. I'd like to bring the superscript in a point or two closer to the punctuation mark (although not directly above it), which apparently can be done using the fnpct package. If there's an easier way to do that which doesn't require the package, I'd accept that as well.

9
  • You don't need this with Biblatex, do you? You can switch the automatic punctuation stuff on and use that. If Biblatex is an option, you can use it with the natbib compatibility setting.
    – cfr
    Jun 10, 2018 at 3:44
  • 2
    I wouldn't sacrifice logical punctuation for improved kerning. In any case, where should the markers be for your language or for the requirements you need to meet? That's really what matters - it isn't a case of what you happen to fancy doing, but what's correct for your linguistic and submission/publication context.
    – cfr
    Jun 10, 2018 at 3:47
  • @cfr Edited to clarify.
    – tparker
    Jun 10, 2018 at 4:01
  • 1
    Depending on engine, microtype might be an option?
    – cfr
    Jun 10, 2018 at 4:06
  • 1
    @cfr I'm using Microtype in my real use case, but it doesn't help.
    – tparker
    Jun 10, 2018 at 13:46

1 Answer 1

4

With fnpct v1.x (updated answer Jan 2021)

With version 1.x it works natively:

\documentclass{article}
\usepackage[super,compress]{natbib}
\usepackage{fnpct}

\AdaptNote\cite{oom}{%
  \IfNoValueTF{#1}
    {#NOTE{#3}}
    {\IfNoValueTF{#2}{#NOTE[#1]{#3}}{#NOTE[#1][#2]{#3}}}%
}

\begin{document}

Hello world\cite{Anderson}.

\end{document}

With fnpct v0.x (original answer)

natbib defines \cite with \DeclareRobustCommand\cite which causes a problem here.

The definition of \cite is now \protect\cite␣ where the name of the internal macro \cite␣ includes a trailing space which I've indicated with .

A solution is

\expandafter\AdaptNoteOpt\csname cite \endcsname\multcite

where the blank after cite is crucial.

\documentclass{article}
\usepackage[super,compress]{natbib}
\usepackage{fnpct}

\expandafter\AdaptNoteOpt\csname cite \endcsname\multcite

\begin{document}

Hello world\cite{Anderson}.

\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .