BibLaTeX: evita mayúsculas para algunos autores

BibLaTeX: evita mayúsculas para algunos autores

Estoy usando este comando:

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

para imprimir todos los nombres de los autores en mayúsculas. (si están citados tanto en el texto como en la bibliografía). Estoy usando biblatex con el estilo Authoryear-icomp.

Ahora quiero aplicar algún tipo de filtro, para evitar instituciones que están encerradas entre llaves dobles como esa.

author = {{Regionalverband Ruhr}}

de ser impreso en mayúsculas (nuevamente tanto en el texto como en la bibliografía). ¿Cómo podría lograrse esto?

Entonces

SELLE, K. (2005): Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land. Dortmund (=Edición Stadt-Entwicklung).

pero

Ruhr Tourismus GmbH (2017): Estrategia de marketing 2017-2022 der Ruhr Tourismus GmbH. Oberhausen.

Respuesta1

te sugiero que usesla elegante función de anotación para campos. Si tiene un autor corporativo, simplemente agregue author+an = {=corporate}. Con

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

Luego comprobamos si tenemos corporateautor o no. Las versales se utilizan sólo si el autor no es una empresa.

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}

salida de ejemplo


Las ventajas de la anotación realmente entran en juego una vez que nos damos cuenta de que podemos agregar anotaciones a nombres específicos. Con author+an = {1=corporate},solo el nombre es corporate. Entonces necesitamos usar

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

Nota \ifitemannotationen lugar de \iffieldannotation.

En

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

luego, "Anne Elk" obtiene versalitas, pero "regionalverband Ruhr" no.

Por supuesto, tendrás que contar el número de autores y dar el número correcto incluso si solo hay un autor.

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

y

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

Naturalmente, esto también funcionará para el editorcampo y cualquier otro campo de nombre.

Respuesta2

También puedes filtrar con un keyword, por ejemplo 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}

ingrese la descripción de la imagen aquí

información relacionada