Ich verwende natbib mit dem Bibliographiestil „apalike“. Ich kann zwei verschiedene Arbeiten in einer Klammer zitieren; zum Beispiel
\citep{adams03,collier09}
gibt mir
(Adams and Fournier, 2003; Collier et al., 1990)
.
Ich kann auch Seitenzahlen für jeweils eine Quelle angeben, zum Beispiel
\citep[p.3]{adams03}
gibt mir
(Adams and Fournier, 2003, p.3)
.
Meine Frage:Was ist, wenn ich Seitenzahlen für beide Quellen habe? Gibt es eine Standardmethode, um eine Ausgabe wie diese zu erstellen?
(Adams and Fournier, 2003, p.3; Collier et al., 1990, p.5)
?
Ich bin nicht besonders daran interessiert, die Bibstyle-Dateien selbst zu bearbeiten, wenn es einen einfacheren Weg gibt.
Jede Hilfe wird sehr geschätzt!
Ein Minimalbeispiel:
\documentclass{article}
\usepackage[american]{babel}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\begin{document}
\citep{adams03,collier09}
\citep[p.3]{adams03}
I would like to have something like (Adams and Fournier, 2003, p.3; Collier et al., 1990, p.5).
\bibliography{bibliography}{}
\bibliographystyle{apalike}
\end{document}
Antwort1
Es kann automatisiert werden, aber im Wesentlichen sieht es so aus:
\begin{filecontents*}{\jobname.bib}
@article{adams03,
author={A. Adams and F. Fournier},
title={?},
journal={?},
year=2003,
}
\@article{collier09,
author={C. Collier and S. Someone and T. Tomeone and V. Vomeone},
title={?},
journal={?},
year=2009,
}
\end{filecontents*}
\documentclass{article}
\usepackage[american]{babel}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\begin{document}
\citep{adams03,collier09}
\citep[p.~3]{adams03}
(\citeauthor{adams03}, \citeyear{adams03}, p.~3; \citeauthor{collier09}, \citeyear{collier09}, p.~5).
\bibliography{\jobname}
\bibliographystyle{apalike}
\end{document}
Eine bessere Version mit einer leicht anderen Syntax als \citep
, die aber für mehrere Zitate einfacher zu handhaben ist:
\begin{filecontents*}{\jobname.bib}
@article{adams03,
author={A. Adams and F. Fournier},
title={?},
journal={?},
year=2003,
}
\@article{collier09,
author={C. Collier and S. Someone and T. Tomeone and V. Vomeone},
title={?},
journal={?},
year=2009,
}
\end{filecontents*}
\documentclass{article}
\usepackage[american]{babel}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\usepackage{xparse}
\ExplSyntaxOn
\makeatletter
\NewDocumentCommand{\multicitep}{m}
{
\NAT@open
\mjb_multicitep:n { #1 }
\NAT@close
}
\makeatother
\seq_new:N \l_mjb_multicite_in_seq
\seq_new:N \l_mjb_multicite_out_seq
\seq_new:N \l_mjb_cite_seq
\cs_new_protected:Npn \mjb_multicitep:n #1
{
\seq_set_split:Nnn \l_mjb_multicite_in_seq { ; } { #1 }
\seq_clear:N \l_mjb_multicite_out_seq
\seq_map_inline:Nn \l_mjb_multicite_in_seq
{
\mjb_cite_process:n { ##1 }
}
\seq_use:Nn \l_mjb_multicite_out_seq { ;~ }
}
\cs_new_protected:Npn \mjb_cite_process:n #1
{
\seq_set_split:Nnn \l_mjb_cite_seq { , } { #1 }
\int_compare:nTF { \seq_count:N \l_mjb_cite_seq == 1 }
{
\seq_put_right:Nn \l_mjb_multicite_out_seq
{ \citeauthor{#1},~\citeyear{#1} }
}
{
\seq_put_right:Nx \l_mjb_multicite_out_seq
{
\exp_not:N \citeauthor{\seq_item:Nn \l_mjb_cite_seq { 1 }},~
\exp_not:N \citeyear{\seq_item:Nn \l_mjb_cite_seq { 1 }},~
\seq_item:Nn \l_mjb_cite_seq { 2 }
}
}
}
\ExplSyntaxOff
\begin{document}
\citep{adams03,collier09}
\citep[p.~3]{adams03}
\multicitep{adams03, p.~3; collier09, p.~5}.
\multicitep{adams03, p.~3; collier09, p.~5}.
\multicitep{adams03; collier09, p.~5}.
\multicitep{adams03; collier09, p.~5}.
\bibliography{\jobname}
\bibliographystyle{apalike}
\end{document}
Verschiedene Schlüssel werden durch ein Semikolon getrennt, eine Postnote wird durch ein Komma vom Schlüssel getrennt (wenn in der Postnote ein Komma steht, setzen Sie es in Klammern). Sie können es tatsächlich für eine einzelne Zitierung verwenden, wie
\multicitep{adams03, p.~3}
Antwort2
Beachten Sie auch die \citealp-Syntax, die unter http://merkel.texture.rocks/Latex/natbib.php
Sie müssen zwar immer noch Ihre eigenen Klammern und Semikolons verwenden, aber die Syntax ist etwas kompakter als oben (geänderter Code unten):
\begin{filecontents*}{\jobname.bib}
@article{adams03,
author={A. Adams and F. Fournier},
title={?},
journal={?},
year=2003,
}
\@article{collier09,
author={C. Collier and S. Someone and T. Tomeone and V. Vomeone},
title={?},
journal={?},
year=2009,
}
\end{filecontents*}
\documentclass{article}
\usepackage{natbib}
\begin{document}
\citep{adams03,collier09}
\citep[p.~3]{adams03}
(\citeauthor{adams03}, \citeyear{adams03}, p.~3; \citeauthor{collier09}, \citeyear{collier09}, p.~5).
(\citealp[p.~3]{adams03}; \citealp[p.~5]{collier09}).
\bibliography{\jobname}
\bibliographystyle{apalike}
\end{document}
Antwort3
Hier ist eine alternative Lösung:
\citetext{\citealp[p.~1]{ref1}; \citealp[p.~2]{ref2}}
gibt
(Ref. 1, S. 1; Ref. 2, S. 2)
In Ihrem Fall:
\citetext{\citealp[p.~3]{adams03}; \citealp[p.~5]{collier09}}
gibt, was Sie wollen.
Antwort4
Weitere Vorschläge zur Problemumgehung finden Sie hier:http://www.latex-community.org/forum/viewtopic.php?f=31&t=2840