BibLaTeX: evite letras maiúsculas para alguns autores

BibLaTeX: evite letras maiúsculas para alguns autores

Estou usando este comando:

\renewcommand*{\mkbibnamefamily}[1]{\textsc{#1}}

para imprimir todos os nomes dos autores em maiúsculas. (se forem citados no texto e também na bibliografia). Estou usando o biblatex com o estilo authoryear-icomp.

Agora quero aplicar algum tipo de filtro, para evitar instituições que estejam entre chaves duplas assim

author = {{Regionalverband Ruhr}}

de serem impressos em maiúsculas (novamente tanto no texto quanto na bibliografia). Como conseguir isso?

Então

SELLE, K. (2005): Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land. Dortmund (=Edição Stadt-Entwicklung).

mas

Ruhr Tourismus GmbH (2017): Estratégia de Marketing 2017-2022 der Ruhr Tourismus GmbH. Oberhausen.

Responder1

Eu sugiro que você useo sofisticado recurso de anotação para campos. Se você tiver um autor corporativo, basta adicionar author+an = {=corporate}. Com

\renewcommand*{\mkbibnamefamily}[1]{%
  \iffieldannotation{corporate}
    {#1}
    {\textsc{#1}}}

então verificamos se temos um corporateautor ou não. Versaletes são usados ​​somente se o autor não for pessoa jurídica.

MWE

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}      
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage{csquotes}
\usepackage[ngerman]{babel}    

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{ruhr,
  author    = {{Regionalverband Ruhr}},
  author+an = {=corporate},
  title     = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
  year      = {2017},
}
\end{filecontents*}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\renewcommand*{\mkbibnamefamily}[1]{%
  \iffieldannotation{corporate}
    {#1}
    {\textsc{#1}}}

\begin{document}
\cite{sigfridsson,ruhr},

\printbibliography
\end{document}

saída de exemplo


As vantagens da anotação realmente entram em ação quando percebemos que podemos adicionar anotações a nomes específicos. Com author+an = {1=corporate},apenas o primeiro nome é corporate. Precisamos então usar

\renewcommand*{\mkbibnamefamily}[1]{%
  \ifitemannotation{corporate}
    {#1}
    {\textsc{#1}}}

Observe \ifitemannotationem vez de \iffieldannotation.

Em

@misc{ruhr,
  author    = {{Regionalverband Ruhr} and Anne Elk},
  author+an = {1=corporate},
  title     = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
  year      = {2017},
}

então, "Anne Elk" fica com versalete, mas "Regionalverband Ruhr" não.

É claro que você terá que contar o número de autores e fornecer o número correto, mesmo que haja apenas um autor

  author    = {{Regionalverband Ruhr}},
  author+an = {1=corporate},

e

  author    = {Anne Elk and {Regionalverband Ruhr}},
  author+an = {2=corporate},

Naturalmente, isso também funcionará para o editorcampo e qualquer outro campo de nome.

Responder2

Você também pode filtrar com um keyword, digamos nosc:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage{csquotes}
\usepackage[ngerman]{babel}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{ruhr,
  author = {{Regionalverband Ruhr}},
  title = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
  year = {2017},
  keywords = {nosc}
}
@book{selle05,
author = {Selle, K},
title = {Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land},
year = {2005},
publisher = {Edition Stadt-Entwicklung},
location = {Dortmund}
}
    \end{filecontents*}

\addbibresource{\jobname.bib}

\renewcommand*{\mkbibnamefamily}[1]{%
  \ifkeyword{nosc}
    {#1}
    {\textsc{#1}}}

\begin{document}
Siehe \cite{ruhr, selle05}. 

\printbibliography

\end{document}

insira a descrição da imagem aqui

informação relacionada