Te sugerimos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, un saludo.
Solución:
Creo que la única forma es la redefinición del comando cite. En el siguiente ejemplo, definí un nuevo macro nombrada uppercite
que formatea el nombre a través de la redefinición de mkbibnamelast
:
DeclareCiteCommandparencite[mkbibparens]
usebibmacroprenote
usebibmacrociteindex%
usebibmacrouppercite
multicitedelim
usebibmacropostnote
newbibmacro*uppercite%
iffieldundefshorthand
ifthenelseifnameundeflabelnameORiffieldundeflabelyear
usebibmacrocite:label%
setunitaddspace
defmkbibnamelast##1MakeUppercase##1printnameslabelname%
setunitnameyeardelim%
usebibmacrocite:labelyear+extrayear
usebibmacrocite:shorthand
El MWE completo es:
RequirePackagefilecontents
beginfilecontents*jobname.bib
@bookCARNAP1935,
Address = London,
Author = Carnap, Rudolf,
Publisher = Kegan Paul, Trench, Trubner & Co.,
Title = Philosophy and Logical Syntax,
Year = 1935
@bookCARNAP1937,
Address = London,
Author = Carnap, Rudolf,
Note = Transl. Amethe Smeaton (Countess von Zeppelin),
Publisher = Kegan Paul,
Title = The Logical Syntax of Language,
Year = 1937
@bookSCHICKORE2006,
Address = Dordrecht,
Author = SCHICKORE, J. and STEINLE, F.,
Date-Added = 2012-07-19 08:53:43 +0000,
Date-Modified = 2013-03-09 19:03:37 +0000,
Publisher = Kluwer Academic Pub,
Title = Revisiting discovery and justification: historical and philosophical perspectives on the context distinction,
Volume = 14,
Year = 2006
endfilecontents*
documentclass[12pt,a4paper]article
usepackage[T1]fontenc
usepackage[utf8]inputenc
usepackage[citestyle=authoryear,bibstyle=authortitle,labelnumber,natbib=true,firstinits=true,isbn=false,babel=other,language=brazilian,backend=biber]biblatex
addbibresourcejobname.bib
addbibresourcebiblatex-examples.bib
DeclareCiteCommandparencite[mkbibparens]
usebibmacroprenote
usebibmacrociteindex%
usebibmacrouppercite
multicitedelim
usebibmacropostnote
newbibmacro*uppercite%
iffieldundefshorthand
ifthenelseifnameundeflabelnameORiffieldundeflabelyear
usebibmacrocite:label%
setunitaddspace
defmkbibnamelast##1MakeUppercase##1printnameslabelname%
setunitnameyeardelim%
usebibmacrocite:labelyear+extrayear
usebibmacrocite:shorthand
begindocument
verb+textciteCARNAP1937+quadtextciteCARNAP1937
verb+parenciteCARNAP1935+quadparenciteCARNAP1935
verb+parenciteSCHICKORE2006+quadparenciteSCHICKORE2006
verb+parenciteCARNAP1935parenciteSCHICKORE2006+parenciteCARNAP1935parenciteSCHICKORE2006
verb+parenciteCARNAP1935,SCHICKORE2006+parenciteCARNAP1935,SCHICKORE2006
printbibliography
enddocument
Una solución alternativa que funciona con versiones de biblatex
más reciente que 3.4 se basa en averiguar si el ‘contexto delimitador’ actual es parencite
makeatletter
renewcommand*mkbibnamefamily[1]%
ifdefstring[email protected]
parencite
textsc#1
#1
makeatother
(Sí, eso usa textsc
en lugar de lo horrible MakeUppercase
, pero por supuesto que funciona con MakeUppercase
también.)
Véase también Cita capital y no capital
Recuerda mostrar esta crónica si te fue de ayuda.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)