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 corporate
autor 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}
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 \ifitemannotation
en 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 editor
campo 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}