tl;dr
There are some ways to influence which (bit of a) name is displayed in which way in citations and the bibliography, but usually this only works properly if the name is specified correctly (according to the BibTeX rules) in the .bib
file.
There is little point in trying to fix incorrect input in the .bib
file by ad hoc modifications of the name format. And there is probably very little to be gained there anyway.
Braces only really help with what you want to do if they enclosing something containing a space.
The full picture
How should I type author names in a bib file? explains how BibTeX and Biber parse names. Roughly speaking a name is separated into family name, given name, prefix ("von part") and suffix ("junior part"). You can choose how these name parts are arranged in the bibliography and citations, but if you stick to the normal name input, you have only limited influence as to what bit of the name gets parsed as which name part.
With biblatex
there are ways to override the names shown in the citations by means of the shortauthor
field. shortautor
is again parsed as a normal name field. So in
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{elk,
author = {Anne Elk},
shortauthor = {Barbara Zelk},
title = {A Theory on Brontosauruses},
year = {1972},
publisher = {Monthy \& Co.},
location = {London},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem \autocite{elk}
\printbibliography
\end{document}

the actual author name is family=Elk, given=Anne,
but in citations biblatex
uses family=Zelk, given=Barbara,
and behaves accordingly. Of course this can be used with 'less' diverging examples than Elk/Zelk to force a particular output in citations for a complex name, see Make biblatex treat different author names as same author in text citations or Peerage titles in the author field in BibTeX. Another common usage for this field is abbreviation of long corporate-type author names (Biblatex: Abbreviating authoring organisations in citations).
If you use biblatex
with Biber, you can use the extended name format to explicitly specify each bit of a name. This is useful if you want to override the normal parsing rules locally (see e.g. Use only the last name as namepartfamily instead of everything after prefix and Two or three letter initials in bibliography with Biblatex (again)), but unless you declare new name parts and use them (Bibliography according to icelandic system, Bibtex/Biber: how to cite an author using Ethiopian conventions?, CJK Bibliography Problem, Biblatex-Chicago author-date style) things will still have to fit into the four name part scheme, so you usually don't gain a lot over specifying the name in <prefix> <family>, <suffix>, <given>
format.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear, giveninits]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{book1,
author = {family=Doe Roe, given=Charles, given-i={Ch}},
title = {An Important Book},
publisher = {Publisher},
date = {2012},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem \autocite{book1}
\printbibliography
\end{document}

How should I type author names in a bib file? does not mention it explicitly, but curly braces around a bit of a name that is separated with spaces from other bits does not make a relevant difference for the name parsing you are interested in. Curly braces are particularly relevant if you want to 'protect' names (or name parts) with spaces in them from being broken apart (see Using a 'corporate author' in the "author" field of a bibliographic entry (spelling out the name in full)).
So
Fulano Ciclano da {Silva}
is pretty much the same as
Fulano Ciclano da Silva
when it comes to breaking up the name into different parts.
The difference is only the additional curly braces in the name part
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=fa2fe34e8e6f02735fb558279b21902f}{%
family={{Silva}},
familyi={S\bibinitperiod},
given={Fulano\bibnamedelima Ciclano},
giveni={F\bibinitperiod\bibinitdelim C\bibinitperiod},
givenun=0,
prefix={da},
prefixi={d\bibinitperiod},
prefixun=0}}%
}
(there were some issues with initials generation with the excessive braces: ! Paragraph ended before \name was complete) vs
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=fa2fe34e8e6f02735fb558279b21902f}{%
family={Silva},
familyi={S\bibinitperiod},
given={Fulano\bibnamedelima Ciclano},
giveni={F\bibinitperiod\bibinitdelim C\bibinitperiod},
givenun=0,
prefix={da},
prefixi={d\bibinitperiod},
prefixun=0}}%
}
Assuming in Fulano Ciclano da Silva the Fulano Ciclano bit is the given name, the da the name prefix and Silva the family name, the input
Fulano Ciclano da Silva
is correct.
Hispanic names with two family names are not so simple, however, because BibTeX and Biber assume a person has one family name and not two. So if the name is actually family=Ciclano da Silva, given=Fulano,
but is only cited as Silva
, things are more tricky and you will probably have to resort to shortauthor
or define new name parts that account for hispanic name customs.
For names with a junior or senior part, the only correct input is
von Last, Jr, First
so
Jonathan Lee Kriggs Junior
will not be parsed as expected, it must be given as
Kriggs, Junior, Jonathan Lee
I understand that it is annoying to go through your database to change this, but I'm afraid you will have to stick with the correct format if you want the names to be parsed correctly. In theory you could try some of the workarounds suggested above to force the desired output, but that is probably just as much (if not more) work and definitely not recommended.
I cannot reproduce the Costa Silva issue.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[
backend = biber,
citestyle = authoryear,
sorting = none,
uniquename=mininit,
maxnames=3, minnames=3,
maxbibnames=5, minbibnames=3,
]{biblatex}
\begin{filecontents}{\jobname.bib}
@Article{article1,
title = {Title of the Article Number 1},
author = {John Smith {Doe} and Fulano Ciclano da {Silva}},
year = {1966},
}
@Article{article2,
title = {Awesome Title of Article Number 2},
author = {Jonathan Lee {Kriggs} Junior and Someone {Else}
and Pedro Paulo Costa {Silva}},
year = {2016},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text is written about some article \parencite{article1}
and some newer article \parencite{article2}.
\printbibliography
\end{document}
gives

for me, which is expected.
In general when first names pop up citations the option uniquename
(biblatex, authoryear style: In-text citations display first name initials for certain bibliography entries) is relevant. (A related option is uniquelist
, which is usually the next thing people who don't like uniquename
ask about: Set limit to one author when using "et al." in biblatex). But you evidently already know about this option and I don't think this option could explain Costa Silva popping up in the citation, because it would add given name initials or given names, which for Pedro Paulo Costa {Silva}
would be Pedro Paulo Costa and not just Costa.
Jonathan Lee {Kriggs} Junior
is pretty much the same asJonathan Lee {Kriggs} Junior
. Curly braces stop Biber (and BibTeX) from breaking up names into given and family names (etc.), this is usually relevant for corporate (non-person) names: tex.stackexchange.com/q/10808/35864