1

I'm using Natbib and I'm trying to make the authors in my bibliography appear like

Bryan Sullivan, Vincent Liu

but at the moment they appears like

Bryan Sullivan and Vincent Liu

I have tried using

\renewcommand{\multinamedelim}{\addsemicolon\space}

but it's not working, it says that \multinamedelim doesn't exist.

I'm adding bibliography as so:

@book {
    WebApplicationSecurity,
    author = {{Bryan Sullivan} and {Vincent Liu}},
    title = {Web Application Security, a Beginner's Guide},
    publisher = {McGraw Hill},
    year = {2011}
}

I have also tried changing the "and" in this code to a comma, but then the second author disappears completely.

I'm compiling with XeLaTeX. Any help would be appreciated

2
  • 1
    Formatting issues of the type you set out in your posting are governed not by natbib, which is for the most part a citation management system, but by the bibliography style that's being employed. Please do tell us which bibliography style you employ.
    – Mico
    Aug 28, 2019 at 14:33
  • 1
    Here it is: \bibliographystyle{IEEEtranN} Aug 28, 2019 at 14:42

1 Answer 1

2

OK, I'm new to this (~1yr new to LaTeX, even newer bst) so please be kind, but I think I've got it:

Modify IEEEtranN.bst such that FUNCTION {format.names} reads:

FUNCTION {format.names}
{ 'bibinfo :=
  duplicate$ empty$ 'skip$ {
  this.to.prev.status
  this.status.std
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      name.format.string
      format.name$
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        { nameptr num.names.shown.with.forced.et.al #1 + =
          numnames max.num.names.before.forced.et.al >
          is.forced.et.al and and
            { "others" 't :=
              #1 'namesleft :=
            }
            { skip$ }
          if$
          namesleft #1 >
            { ", " * t do.name.latex.cmd * }
            { s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                { " " * bbl.etal emphasize * }
                { numnames #2 >
                    { "," * }
                    { "," * } %%%%%%%%%%%%% added this line
                    %{ skip$ } %%%%%%%%%%%%% commented out this line
                  if$
                  %bbl.and %%%%%%%%%%%%% commented out this line
                  space.word * t do.name.latex.cmd *
                }
              if$
            }
          if$
        }
        { t do.name.latex.cmd }
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  cap.status.std
  } if$
}

This should change the name formatting, as shown below, for all types. Hope that helps!

enter image description here

Edit: if you want the in text reference formatting to change as well as the bibliography formatting, follow the answer by @Mico : https://tex.stackexchange.com/a/506121/169285 (with a word of caution - it will also change 'format.lab.names' and I'm not entirely sure what this does).

Edit 2: MWE:

\documentclass{article}
\usepackage{natbib}

\begin{document}

Stuff happened \cite{WebApplicationSecurity}.

\newpage
\bibliographystyle{IEEEtranN}
\bibliography{mybib.bib}

\end{document}
10
  • Thanks for the solution, but I'm kind of in a hurry, so I don't really have time to test this now that I found a quicker (but probably worse) way to do it, which is just to code the author like author = {{Bryan Sullivan, Vincent Liu}}, Aug 28, 2019 at 16:16
  • @DavidAntelo - Rather than write author = {{Bryan Sullivan, Vincent Liu}}, it's much better to write author = {Bryan Sullivan and Vincent Liu}. That way, if you ever need to change bibliography styles, you don't have to do a lot of hand editing of the author fields of your bib entries. Please see the answer I just posted for a completely different -- and, I dare say, better -- approach to formatting the author field.
    – Mico
    Aug 28, 2019 at 17:07
  • It's not good advice to "[m]odify IEEEtranN.bst such that..." Original files of the TeX distribution should never be edited directly, if for no other reason than guarding against the chance that the file will get updated at some point in the future by the system, overwriting the changes you made. It's much better practice to start by making a copy of the bst file, renaming the copy, and making the required edits in the oopy only.
    – Mico
    Aug 28, 2019 at 17:10
  • This answer looks interesting - but maybe it can be improved by including a screenshot of the result and/or a Minimal Working Example with Bibliography (MWEB) to make the answer easier to reproduce (for the asker but also for people that might find this answer at some point in the future).
    – Marijn
    Aug 28, 2019 at 17:26
  • I like @Mico's answer but it is doing things in a different way - it changes the definition of 'and', which means that it would change the in text reference as well as the bibliography formatting. 'and' is also used in the definition of 'format.lab.names', which I'll be honest - I don't know what this does. Aug 28, 2019 at 17:56

You must log in to answer this question.

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