
Ich habe eine Liste von Biblatex-Elementen in einem Dokument, das zusätzlich einen Abschnitt mit Bibliografien enthält. In diesem Teil möchte ich einige Bibliografieelemente auflisten, \fullcite
allerdings in einem anderen Stil als die Hauptbibliografie.
Ich kann die Anzahl der Autoren wie folgt ändern:
\begingroup
\defcounter{minnames}{2}
\fullcite{key}
\endgroup
Wie kann ich den Stil von weiter ändern \fullcite
?
MWEB
\documentclass[en-US,de-DE]{article}
\usepackage[
style=authoryear-ibid,
maxnames=2,
backend=biber,
safeinputenc,
isbn=false,
doi=false,
maxcitenames=2,
urldate=iso8601,
date=iso8601
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{key,
author = {Author, A.},
year = {2001},
title = {Title},
publisher = {Publisher},
pagetotal = {383},
edition = {1},
pages = {151--154},
url = {http://www.google.com},
}
\end{filecontents}
\begin{document}
text1
\fullcite{key}
text2
\cite{key}
text3
\printbibliography[heading=bibintoc]
\end{document}
Ich möchte aus den aufgelisteten Artikeln \fullcite
auch das Jahr und die URLs sowie alle Seitenzahlen und die Ausgabe der Bücher entfernen.
Antwort1
Hierzu gibt es zwei Möglichkeiten: Sie können den \fullcite
Befehl neu definieren, um die nicht gewünschten Felder zu löschen, oder Sie können, wie in den Kommentaren angegeben, \AtEverycitekey
dasselbe mit tun.
Konzeptionell \fullcite
scheint das Modifizieren die bessere Lösung zu sein, da das Verwenden \AtEveryCitekey
jedes Zitat modifiziert. Wenn Sie also Informationen aus dem entfernen möchten, \fullcite
die normalerweise im regulären enthalten sind, \cite
dannmussverwenden Sie diese Lösung.
Wenn Sie nur URL, Ausgabe und Seiten entfernen, \fullcite
hat die Verwendung keine negativen Nebenwirkungen, \AtEveryCitekey
da nur der \fullcite
Zitatbefehl diese Felder jemals ausgeben würde. Wenn Sie jedoch auch das Jahr entfernen möchten (wie Sie in den Kommentaren erwähnen), \fullcite
ist die Änderung die einzige Möglichkeit, dies zu tun. Ich habe die \AtEveryCitekey
Lösung aus diesem Grund aus dem Code entfernt, sie aber separat am Ende platziert.
Abhängig von der Art der Informationen, die Sie unterdrücken müssen, müssen Sie möglicherweise eines von \clearfield
, \clearlist
oder verwenden \clearname
. Im Fall von publisher
, oder location
ist ihr Typ beispielsweise eine Liste, und Sie müssen \clearlist
sie daher mit löschen. Abschnitt 2.2.2 der biblatex
Dokumentation beschreibt jedes Feld und seinen Datentyp.
\documentclass[en-US,de-DE]{article}
\usepackage[
style=authoryear-ibid,
maxnames=2,
backend=biber,
safeinputenc,
isbn=false,
doi=false,
maxcitenames=2,
urldate=iso8601,
date=iso8601
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{key,
author = {Author, A.},
year = {2001},
title = {Title},
publisher = {Publisher},
pagetotal = {383},
edition = {1},
pages = {151--154},
url = {http://www.google.com},
}
\end{filecontents}
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\clearfield{url}%
\clearfield{pages}%
\clearfield{pagetotal}%
\clearfield{edition}%
\clearfield{labelyear}%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{document}
text1
\cite{key}
\fullcite{key}
text2
\cite{key}
text3
\printbibliography[heading=bibintoc]
\end{document}
Verwenden von\AtEveryCitekey
Wie oben erwähnt, \AtEveryCitekey
kann die Verwendung auch funktionieren, wenn es keine Überschneidung zwischen den Informationen gibt, die Sie in einem normalen Zitat benötigen, und den Informationen, die Sie im Zitat unterdrücken \fullcite
. Hier ist der Code zur Verwendung dieser Methode:
\AtEveryCitekey{
\clearfield{url}
\clearfield{pages}
\clearfield{pagetotal}
\clearfield{edition}
\clearfield{labelyear}
}