12

I work for long time in a document where I use biblatex with following parameters

\usepackage[style=authoryear-comp,backend=biber,maxcitenames=\preamblemaxcitenames,giveninits=true,uniquename=init,%
maxbibnames=10,sorting=nyt,natbib=true,sortcites=no]{biblatex}

Now, it comes to pass that I have two commands, \citep and \parencite—I forgot why I have this mix. The point is that I cannot see the difference at first sight.

\citep{knuth2001things} \parencite{knuth2001things}

Produces exactly the same:

enter image description here

Used like that, is there any fundamental difference between both, or advantage in using one over the other? (I do not know, if it would be wise to change all \citep to \parencite or \parencite to \citep)

4
  • 3
    \citep is a natbib backwards compatibility alias. The biblatex name of the command is \parencite. But to ease the transition for natbib users you can get natbib names like \citep and \citet if you ask for it with natbib=true,. I usually prefer not to load the natbib compatibility module and stick to the pure biblatex names. See also tex.stackexchange.com/q/149313/35864
    – moewe
    Apr 30, 2020 at 13:49
  • 2
    Note that there is a difference between the starred versions \citep* and \parencite*.
    – moewe
    Apr 30, 2020 at 13:50
  • 1
    @moewe Based in your comment the least effort solution would be change all \citep to \parencite, so I avoid the mix. I also understand that is better to stick to pure biblatex, may I ask you how can I take away natbib=true, if I also use \citet? I like the format Knuth (2001). How can I substitute it in biblatex? Apr 30, 2020 at 13:55
  • 2
    \textcite, see my answer.
    – moewe
    Apr 30, 2020 at 15:32

1 Answer 1

21

When you are using biblatex with the natbib compatibility option (natbib=true,) to ease transition between biblatex and natbib (or vice versa),

  • \citep is a compatibility alias for \parencite and
  • \citet is an alias for \textcite.
  • Furthermore, \citealp and \citealt are both aliases for \cite.
  • Additionally, there is some rudimentary support for natbib's \defcitealias.
  • Finally, there are \citeauthor* and \citeyearpar.

So in your example there is no (and there should not be any) difference between \citep{knuth2001things} and \parencite{knuth2001things}.

There is, however, a difference between the starred versions:

  • The natbib names \citep*/\citet* produce citations with a local setting of maxnames=999, which means that all authors will be shown.
  • The biblatex name \parencite* produces citations without author names.

The natbib compatibility option will do slightly more, though. As explained in Is there a disadvantage to using natbib=true with biblatex? it will also set

\DeclareDelimFormat{nameyeardelim}{\addcomma\space}

I usually prefer not to load the natbib compatibility mode in biblatex and prefer to use the biblatex names, but muscle memory and old habits can certainly mean that the natbib compatibility mode is useful for you. Even more so if you expect to have to go back to natbib commands at some point (not many journals accept biblatex submissions).

Just keep in mind that the two quirks of natbib compatibility mode mentioned above. The behaviour of the starred version differs from standard biblatex and it sets nameyeardelim.

1
  • Thanks! You answered everything I asked, and more... :) Apr 30, 2020 at 16:45

You must log in to answer this question.

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