
Tenho minha bibliografia quase exatamente como desejo, com uma exceção: gostaria que o ano viesse depois do título do periódico, separado por vírgula, sem parênteses. No momento, o número da edição e o ano estão juntos entre parênteses. Além disso, os dois pontos vêm depois do volume e não depois do problema, como eu gostaria. (Não consigo mover manualmente o número do campo "problema" para o campo "número" em centenas de entradas do Bibtex, conforme sugerido em outra resposta).
Aqui está meu MWE
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
giveninits=true,
maxbibnames=2,
%citestyle=nature,
sorting=none,
isbn=false,
doi=false
]{biblatex}
\DeclareNameAlias{sortname}{family-given/given-family}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname} % 1st author as lastname, comma, firstname-initials, 2nd author as firstname-initials lastname
\DeclareNameWrapperFormat{sortname}{\mkbibbold{#1}}
\DeclareNameWrapperAlias{author}{sortname}
\DeclareNameWrapperAlias{editor}{sortname}
\DeclareNameWrapperAlias{translator}{sortname} %names bold
\AtEveryBibitem{\clearfield{month}} %month not printed
\AtEveryBibitem{\clearfield{day}} %day not printed
\AtEveryBibitem{\clearfield{note}} %notes not printed
\DeclareFieldFormat*{title}{#1} %no quotation marks
\DeclareDelimFormat[biblist,bib]{nametitledelim}{\addcomma\space} %comma after names
\renewrobustcmd*{\bibinitdelim}{\,} %thinspace between name initials
\renewbibmacro{in:}{%
\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}} %supresses "In:" before journal titles
\DeclareFieldFormat{titlecase}{#1} %Journal titles capitalized as given (not sentence case)
\DeclareFieldFormat[article, inbook, incollection, inproceedings, misc, thesis, unpublished]
{number}{\mkbibparens{#1}} %number/issue between brackets
\DeclareFieldFormat[article, inproceedings, incollection, inbook]
{pages}{p. #1} %single p. instead of pp.
\renewbibmacro*{volume+number+eid}{
\printfield{volume}
\printfield{number}
\printunit{\addcolon}} %format 16(4):224--225 for articles
%year after journal title
%no parentheses around date
\addbibresource{test.bib}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@Article{Brem2002,
author = {Brem, Rachel B and Yvert, Gaël and Clinton, Rebecca and Kruglyak, Leonid},
title = {Genetic dissection of transcriptional regulation in budding yeast.},
journal = {Science},
year = {2002},
volume = {296},
pages = {752--755},
month = apr,
issue = {5568},
}
@Article{Yvert2003,
author = {Yvert, Gaël and Brem, Rachel B and Whittle, Jacqueline and Akey, Joshua M and Foss, Eric and Smith, Erin N and Mackelprang, Rachel and Kruglyak, Leonid},
title = {Trans-acting regulatory variation in Saccharomyces cerevisiae and the role of transcription factors.},
journal = {Nat. Genet.},
year = {2003},
volume = {35},
pages = {57--64},
month = sep,
issue = {1},
}
\end{filecontents}
\begin{document}
I'm citing \cite{Brem2002} and \cite{Yvert2003}.
\printbibliography
\end{document}
Responder1
As seguintes redefinições para journal+issuetitle
e volume+number+eid
são copiadas do código para biblatex-ext
. É por isso que eles contêm algumas macros personalizáveis.
Em vez de usar \clearfield
para suprimir meses e dias na data, deveria ser mais simples apenas dizer date=year,
nas opções de tempo de carregamento.
\documentclass{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
maxbibnames=2,
giveninits=true,
date=year,
isbn=false,
doi=false,
]{biblatex}
\DeclareNameAlias{sortname}{family-given/given-family}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\DeclareNameWrapperFormat{sortname}{\mkbibbold{#1}}
\DeclareNameWrapperAlias{author}{sortname}
\DeclareNameWrapperAlias{editor}{sortname}
\DeclareNameWrapperAlias{translator}{sortname}
\renewrobustcmd*{\bibinitdelim}{\,}
\DeclareDelimFormat[biblist,bib]{nametitledelim}{\addcomma\space}
\DeclareFieldFormat*{title}{#1}
\renewbibmacro{in:}{%
\ifentrytype{article}
{}
{\printtext{\bibstring{in}\intitlepunct}}}
\newcommand*{\volnumdelim}{\adddot}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\volnumdelim}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\renewcommand*{\volnumdelim}{}
\DeclareFieldFormat[article, periodical]{number}{\mkbibparens{#1}}
\newcommand*{\jourdatedelim}{\addcomma\space}
\newcommand*{\jourserdelim}{\addcomma\space}
\newcommand*{\datevolnumdelim}{\newunitpunct}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\jourdatedelim}%
\iffieldundef{series}
{}
{\setunit*{\jourserdelim}%
\printfield{series}%
\setunit{\jourdatedelim}}%
\usebibmacro{date}%
\setunit{\datevolnumdelim}%
\usebibmacro{volume+number+eid}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\renewcommand*{\bibpagespunct}{%
\ifentrytype{article}
{\addcolon}
{\addcomma}%
\space
}
\DefineBibliographyStrings{english}{
pages = {p\adddot},
}
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{sigfridsson}
\printbibliography
\end{document}
Como seu .bib
arquivo usa issue
onde number
seria mais apropriado, você pode corrigir isso rapidamente com um mapa de origem do Biber:biblatex - número da revista em data.