Saltar al contenido

biblatex: mayúsculas en parencite, pero no en textcite

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

ingrese la descripción de la imagen aquí

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *