2

I have a report with three bibliographies where I want different citation styles:

  1. Main part: author-year citations
  2. Appendix A: numbers citations, needed to fit many citations in a table.
  3. Appendix B: author-year citations again.

Appendices A or B could be swapped but it does not make a difference to the problem.

I have tried to achieve this with both biblatex, and natbib + multibib. I could not make it work at all with biblatex, while with natbib + multibib I came somewhat close but with faults at the third citatation/refsection, please see a mwe for natbib + multibib below.

The problem for both approaches seems to be that there can only be one 'baseline' citation style. Preferably you would like to define styles with a trick similar to \def\@mb@citenamelist{...} such as \setcitestyletwo{...}, but this seems not possible. Compiling with pdfLaTeX or LuaLaTeX does not make a difference.

Is there a way to make this setup work in any way?

Best, Robert

\documentclass{article}

% needs to have the numbers option, otherwise the second cite will never display numbers
\usepackage[numbers]{natbib}

% https://tex.stackexchange.com/questions/66778/citation-alias-with-multibib-and-natbib
\def\@mb@citenamelist{cite,citep,citet,citealp,citealt,citeptwo,citettwo,citepthree,citetthree}

\usepackage[resetlabels]{multibib}
\newcites{two}{Second-Literature}
\newcites{three}{Third-Literature}

\begin{document}
\section{First}
\setcitestyle{authoryear,round}
Authoryear style cites: \citet{Knuth:1990}

\bibliographystyle{apalike}
\bibliography{testlib}

\section{Second}
\setcitestyle{numbers,square}
Numbers style cites: \citeptwo{Lamport:94} wrote latex.

\bibliographystyletwo{unsrtnat}
\bibliographytwo{testlib}

\section{Third}
\setcitestyle{authoryear,round}
(Desired) Authoryear style cites: \citetthree{Lamport:94alt} wrote latex, but is wrongly cited using the numbers format instead of year!

\bibliographystylethree{apalike}
\bibliographythree{testlib}

\end{document}

%%%% With the contents of testlib.bib as:
@Book{Knuth:1990,
    author    = {Knuth, Donald E.},
    title     = {The Texbook},
    year      = {1990},
    isbn      = {0-201-13447-0},
    publisher = {Addison\,\textendash\,Wesley},
}

@Book{Lamport:94,
    author    = {Lamport, Leslie},
    title     = {latex: A Document Preparation System},
    year      = {1994},
    isbn      = {0-021-52983-1},
    publisher = {Addison\,\textendash\,Wesley},
}

@Book{Lamport:94alt,
    author    = {Lamport, Leslie},
    title     = {latex: A Document Preparation System},
    year      = {1994},
    isbn      = {0-021-52983-1},
    publisher = {Addison\,\textendash\,Wesley},
}

Resulting in: mwe

0

You must log in to answer this question.