Modifica file BST: “et al.” in corsivo

  • Creatore
    Topic
  • #9386
    Up
    0
    Down
    ::


    Ciao a tutti, nel darmi con orgoglio il benvenuto nel forum del GuIT, vi sottopongo il seguente problema (non mi sembra sia stato già trattato, d’altronde è molto specifico):

    ho scritto la tesi con LaTeX (TeXnicCenter su winXP), e la devo consegnare la settimana prossima. Ho utilizzato il file aer.bst (è lo stile dell’American Economic Review, reperibile su http://tug.ctan.org/tex-archive/biblio/bibtex/contrib/economic/).

    Sono già riuscito a modificarlo con successo per fargli dire “e” invece di “and” e per fargli mettere un punto al posto di una virgola. Ma adesso si pone un problema più arduo: fargli mettere “et al.” in corsivo. Ci ho provato, ma con risultati deludenti (o meglio:senza risultati).

    Penso di avere individuato le porzioni di codice da andare a smanettare:
    `FUNCTION {format.lab.names.abbr}
    { 'name.list :=
    name.list num.names$ 'numnames :=
    numnames #1 >
    { numnames #2 >
    { name.list #1 “{vv~}{ll}” format.name$ ” et al.” * }
    { name.list #2 “{ff }{vv }{ll}{ jj}” format.name$ “others” =
    { name.list #1 “{vv~}{ll}” format.name$ ” et al.” * }
    { name.list #1 “{vv~}{ll}” format.name$ ” e ” *
    name.list #2 “{vv~}{ll}” format.name$ *
    }
    if$
    }
    if$
    field.used editor.field = {“, eds” *} {} if$
    }
    {
    name.list #1 “{vv~}{ll}” format.name$
    field.used editor.field = {“, ed” *} {} if$
    }
    if$
    }

    FUNCTION {format.lab.names.full}
    { 'name.list :=
    #1 'nameptr :=
    name.list num.names$ 'numnames :=
    numnames 'namesleft :=
    { namesleft #0 > }
    { name.list nameptr “{vv~}{ll}” format.name$ 'temp :=
    nameptr #1 >
    { namesleft #1 >
    { “, ” * temp * }
    { temp “others” =
    { ” et~al.” * }
    { ” e ” * temp * }
    if$
    }
    if$
    }
    'temp
    if$
    nameptr #1 + 'nameptr :=
    namesleft #1 – 'namesleft :=
    }
    while$
    numnames #1 > field.used editor.field = and {“, eds” *} {} if$
    numnames #1 = field.used editor.field = and {“, ed” *} {} if$
    }`

    però questa reverse polish notation mi fa impazzire. Qualcuno mi sa dire come fare?

    Vi ringrazio di cuore,
    Marco MS

    PS: so che potrei usare makebst per rifarmi un file bst da capo, però sarebbe uno sbattimento notevole rifarlo come l’aer. (E’ incredibile come la nozione di sbattimento sia relativa, vero?). Beh, insomma, preferirei modificare il bst… è una questione di feeling!
    Ancora saluti, e scusate il –verbose attivato.

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #9387
      Up
      0
      Down
      ::


      se non ricordo male natbib lo mette in corsivo, magari confrontando i due codici trovi la risposta alla tua domanda…
      ciao
      f

    • #9388
      lorenzo.pantieri
      Partecipante
        Up
        0
        Down
        ::


        Ciao, anche se non è la risposta che vuoi, ti consiglio vivamente di usare makebst. E’ veramente facile: per crearti uno stile personalizzato ci metti tre minuti, rispondendo a semplici domande, anziché editando a mano oscure linee di codice…

        Buon lavoro,
        L.

      • #9389
        Up
        0
        Down
        ::

        Ciao a tutti, nel darmi con orgoglio il benvenuto nel forum del GuIT, vi sottopongo il seguente problema (non mi sembra sia stato già trattato, d’altronde è molto specifico):

        ho scritto la tesi con LaTeX (TeXnicCenter su winXP), e la devo consegnare la settimana prossima. Ho utilizzato il file aer.bst (è lo stile dell’American Economic Review, reperibile su http://tug.ctan.org/tex-archive/biblio/bibtex/contrib/economic/).

        Sono già riuscito a modificarlo con successo per fargli dire “e” invece di “and” e per fargli mettere un punto al posto di una virgola. Ma adesso si pone un problema più arduo: fargli mettere “et al.” in corsivo. Ci ho provato, ma con risultati deludenti (o meglio:senza risultati).

        Penso di avere individuato le porzioni di codice da andare a smanettare:

        Le hai indovinate. Basta mettere \emph{}.
        `FUNCTION {format.lab.names.abbr}
        { 'name.list :=
        name.list num.names$ 'numnames :=
        numnames #1 >
        { numnames #2 >
        { name.list #1 “{vv~}{ll}” format.name$ ” et al.” * }
        { name.list #2 “{ff }{vv }{ll}{ jj}” format.name$ “others” =
        { name.list #1 “{vv~}{ll}” format.name$ ” \emph{et al.}” * }
        { name.list #1 “{vv~}{ll}” format.name$ ” e ” *
        name.list #2 “{vv~}{ll}” format.name$ *
        }
        if$
        }
        if$
        field.used editor.field = {“, eds” *} {} if$
        }
        {
        name.list #1 “{vv~}{ll}” format.name$
        field.used editor.field = {“, ed” *} {} if$
        }
        if$
        }

        FUNCTION {format.lab.names.full}
        { 'name.list :=
        #1 'nameptr :=
        name.list num.names$ 'numnames :=
        numnames 'namesleft :=
        { namesleft #0 > }
        { name.list nameptr “{vv~}{ll}” format.name$ 'temp :=
        nameptr #1 >
        { namesleft #1 >
        { “, ” * temp * }
        { temp “others” =
        { ” \emph{et~al.}” * }
        …`
        Cambierei anche altre cose, come l’abbreviazione per il curatore (ed. in inglese); ma se non hai libri con curatore nella tua bibliografia, fa’ pure a meno. 🙂

        Ciao
        Enrico

      • #9390
        Up
        0
        Down
        ::


        una curiosità vagamente OT: perché nella prima funzione c’è scritto “et al” e nella seconda “et~al”? è una svista? in tal caso andrebbe corretto no?
        ciao
        f

      • #9391
        Up
        0
        Down
        ::

        una curiosità vagamente OT: perché nella prima funzione c’è scritto “et al” e nella seconda “et~al”? è una svista? in tal caso andrebbe corretto no?

        Non l’avevo notato. Se lo sono dimenticati, è chiaro.

        Ciao
        Enrico

      • #9392
        Up
        0
        Down
        ::

        Le hai indovinate. Basta mettere \emph{}.

        MITICO!
        Grazie mille!

        Marco MS

    Visualizzazione 5 filoni di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top