
Eu tenho uma lista de itens do biblatex em um documento que também possui uma seção de bibliografia. Nesta parte quero listar alguns itens da bibliografia, \fullcite
mas em um estilo diferente da bibliografia principal.
Posso alterar o número de autores assim:
\begingroup
\defcounter{minnames}{2}
\fullcite{key}
\endgroup
Como posso modificar ainda mais o estilo de \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}
Quero remover o ano, os URLs desses itens listados \fullcite
também e quaisquer números de página e a edição dos livros?
Responder1
Existem duas maneiras de fazer isso: você pode redefinir o \fullcite
comando para limpar os campos que não deseja ou, conforme observado nos comentários, pode usar \AtEverycitekey
para fazer a mesma coisa.
Conceitualmente, modificar \fullcite
parece ser a melhor solução, já que usar \AtEveryCitekey
modifica qualquer citação, então se você quiser remover alguma informação do \fullcite
que normalmente está incluída no regular \cite
então vocêdeveuse esta solução.
Se você estiver apenas removendo URL, edição e páginas, \fullcite
não haverá efeitos colaterais ruins do uso, \AtEveryCitekey
pois é apenas o \fullcite
comando de citação que geraria esses campos. Mas se você quiser remover o ano também (como você mencionou nos comentários), então modificar \fullcite
é a única maneira de fazer isso. Removi a \AtEveryCitekey
solução do código por esse motivo, mas coloquei-a separadamente no final.
Dependendo do tipo de informação que você precisa suprimir, pode ser necessário usar um de \clearfield
, \clearlist
ou \clearname
. No caso de publisher
, ou location
, por exemplo, o tipo deles é uma lista, e por isso você precisa usar \clearlist
para limpá-los. A seção 2.2.2 da biblatex
documentação descreve cada campo e seu tipo de dados.
\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}
Usando\AtEveryCitekey
Conforme observado acima, o uso \AtEveryCitekey
também pode funcionar se não houver sobreposição entre as informações necessárias em uma citação regular e as informações suprimidas no arquivo \fullcite
. Aqui está o código para usar esse método:
\AtEveryCitekey{
\clearfield{url}
\clearfield{pages}
\clearfield{pagetotal}
\clearfield{edition}
\clearfield{labelyear}
}