Cita directa con la primera letra del autor en mayúscula

Cita directa con la primera letra del autor en mayúscula

Estoy tratando de hacer una cita directa en mi texto, donde solo necesito que la primera letra del nombre del autor esté en mayúscula.

Por alguna razón, Natbib\Citet(con C mayúscula) no escribe en mayúscula la primera letra de la cita en el texto, por lo tanto \citet y \Citet tienen exactamente el mismo resultado:

Escenario actual

\citet[p. 32]{Christensen1997} --> CHRISTENSEN (1997, p. 32)    
\Citet[p. 32]{Christensen1997} --> CHRISTENSEN (2013, p. 32)

Salida prevista

\Citet[p.32]{Christensen1997} --> Christensen (1997, p. 32)

Tenga en cuenta que esto también debe ser cierto cuando no agrego el número de página:

\Citet{Christensen1997} --> Christensen (1997)

Aquí está la entrada en mi archivo .bib

@book{Christensen1997,
address = {Boston},
author = {Christensen, Clayton M},
booktitle = {The management of innovation and change series},
publisher = {Harvard Business School Press},
title = {{The Innovator's Dilemma: When New Technologies Cause Great Firms to Fail}},
year = {1997}
}

El estilo de bibliografía que estoy usando es ABNT (enlace)

por favor déjeme saber si usted necesita mas información. ¡Gracias!

Respuesta1

Puedes cambiar la línea 383 de abnt.bst, dentro de la función format.family.names, desde

        "u" change.case$

a

        "t" change.case$

Esto cambiará la cadena utilizada en los comandos de citas, pero no afectará la impresión en la bibliografía. La "u" hizo que el aguijón estuviera en mayúscula; "t" lo convertirá en título en mayúsculas.

Salida de muestra

\documentclass{article}

\usepackage{natbib}
\bibliographystyle{abnt}

\begin{document}

\citet{Christensen1997}

\Citet{Christensen1997}

\bibliography{\jobname.bib}

\end{document}

Si usa el \citeauthor*comando, debe realizar un cambio similar en la función format.family.names.all.

Dependiendo de sus requisitos reales, es posible que prefiera poner la cadena en minúsculas usando "l"en lugar de "t". Luego \citetdará el nombre en minúscula y \Citettendrá la primera letra en mayúscula.

Respuesta2

Hay un par de comandos de formato de nombres en las líneas 319-419

%==============================================================================
% Formata uma lista de nomes.
%
% Parm:
%    os nomes a serem formatados
%==============================================================================
FUNCTION {format.names}
{
    duplicate$ num.names$ 'n :=
    #1 'i :=
    "" 'names :=

    {i n #1 + <}
    {
        duplicate$ duplicate$ i "{ll}{~jj}" format.name$
        duplicate$ "others" =
        n #3 >
        i #2 =
        and
        or
        {
            pop$ pop$ names " et~al." *
            n 'i :=
        }{
            "u" change.case$ swap$
            i "{, f.}{~vv}" format.name$ *
            names swap$ add.to.namelist
        } if$ 'names :=
        #1 i + 'i :=
    } while$
    pop$
    names
    duplicate$ #-1 #1 substring$ "." = {
        #-2 global.max$ substring$
        "\@." *
    }
        'skip$
    if$
}

%==============================================================================
% Formata uma lista de sobrenomes.
%
% Parm:
%    os nomes a serem formatados
%==============================================================================
FUNCTION {format.family.names}
{
    duplicate$ num.names$ 'n :=
    #1 'i :=
    "" 'names :=

    {i n #1 + <}
    {
        duplicate$ i "{ll}{~jj}" format.name$
        duplicate$ "others" =
        n #3 >
        i #2 =
        and
        or
        {
            pop$ names " et~al." *
            n 'i :=
        }{
            "u" change.case$
            names swap$ add.to.namelist
        } if$ 'names :=
        #1 i + 'i :=
    } while$
    pop$
    names
}

%==============================================================================
% Formata uma lista de sobrenomes com todos os autores.
%
% Parm:
%    os nomes a serem formatados
%==============================================================================
FUNCTION {format.family.names.all}
{
    duplicate$ num.names$ 'n :=
    #1 'i :=
    "" 'names :=

    {i n #1 + <}
    {
        duplicate$ i "{ll}{~jj}" format.name$
        duplicate$ "others" =
        {
            pop$ names " et~al." *
            n 'i :=
        }{
            "u" change.case$
            names swap$ add.to.namelist
        } if$ 'names :=
        #1 i + 'i :=
    } while$
    pop$
    names
}

Realmente no conozco el idioma .bst, pero creo que simplemente eliminar los change.case$comandos puede resolver tu problema.

información relacionada