Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internacionalizar abntex2cite - "e" e "and" em citações e "Acesso em" e "Disponível em" em Referências #97

Open
GoogleCodeExporter opened this issue Mar 14, 2015 · 12 comments

Comments

@GoogleCodeExporter
Copy link

What is the task?
Adicionar comandos que permitam a integração do abntex2cite com babel.

What is the final product?
Alterações no abntex2cite.sty: inclusão de comandos para abstração de 
strings como "e" (and), "Acessado em ", etc.,
abntex2.cls: adicionar traduções aos comandos criados

Where should it be put?
Repositório do projeto

Additional information:
É importante lembrar que o abntex2cite.sty pode ser usando de forma 
independente do abntex2.cls, ou seja, embora o conteúdo das novas strings 
devam ser definidas na configuração do babel no abntex2.cls, o 
abntex2cite.sty deve criar os comandos caso eles ainda não tenham sido 
definidos (ou seja, caso não se use o abntex2.cls)

Original issue reported on code.google.com by laurocesar on 6 Nov 2013 at 9:52

@GoogleCodeExporter
Copy link
Author

Considerar o tópico no grupo de desenvolvedores: 
https://groups.google.com/forum/#!msg/abntex2/0NV8DnOr4RA/Cdwmyr7YzjMJ

Original comment by laurocesar on 6 Nov 2013 at 9:52

@GoogleCodeExporter
Copy link
Author

Acho que, na ausência de uma ferramenta internacionalizada por definição 
(estilos babelbib ou biblatex), a pessoa interessada poderia modificar e salvar 
o estilo bst nos seguintes moldes (do arquivo abntex2-alf.bst):

FUNCTION {bbl.and}
{ abnt.and.type #0 = {" and "} 'skip$ if$
  abnt.and.type #1 = {" \& "} 'skip$ if$}
FUNCTION {bbl.chapter} { "chap." }
FUNCTION {bbl.colon} {": "}
FUNCTION {bbl.editors} { "Eds." }
FUNCTION {bbl.editor} { "Ed." }
FUNCTION {bbl.edby} { "edited by" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use 
{...}
{abnt.ldots.type
  {abnt.ldots.type #1 = {"\ldots"}   'skip$ if$
   abnt.ldots.type #2 = {"$\ldots$"} 'skip$ if$
   abnt.ldots.type #3 = {"{...}"}    'skip$ if$}
  {""} %for #0 use nothing
if$}
FUNCTION {bbl.master}  { "Master's Thesis" }
FUNCTION {bbl.missing.year}
{abnt.missing.year
  {"[n.d.]"} %#1
  {""}       %#0
 if$}
FUNCTION {bbl.monography} { "Bachelor's Thesis" }
FUNCTION {bbl.mthesis} { "Master's Thesis" }
FUNCTION {bbl.no.address} {"[S.l.]"}
FUNCTION {bbl.no.address.no.publisher} {"[S.l.: s.n.]"}
FUNCTION {bbl.no.publisher} {"[s.n.]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
FUNCTION {bbl.of} { "of" }
FUNCTION {bbl.phd} { "PhD Thesis" }
FUNCTION {bbl.phdthesis} {"Phd Thesis"}
FUNCTION {bbl.pages}
  {pagename empty$
    { "p." }
    {pagename}
   if$
   }
FUNCTION {bbl.page} { bbl.pages }
FUNCTION {bbl.reprint} {"Reprint from"}
FUNCTION {bbl.semicolon} { "; "}
FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"}
FUNCTION {bbl.techrep} { "Technical Report" }
FUNCTION {bbl.url.accessdate}
  {iso.abbreviation { "Cited "} {"Accessed on: "} if$}
FUNCTION {bbl.url.available}
{ iso.abbreviation {"Available from Internet: "} {"Available at: "} if$}
FUNCTION {bbl.void} {""}
FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ }


MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"Jun."}
MACRO {jul} {"Jul."}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sep."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}

Pode ser que ainda haja alguma tradução faltando (ou errada), mas é só ir 
completando no arquivo. Testei aqui com o arquivo abaixo, com 
\usepackage[alf]{abntex2cite}  e   \bibliographystyle{abntexalfenglish}, e 
funcionou.

Original comment by yche...@gmail.com on 8 Nov 2013 at 12:04

Attachments:

@GoogleCodeExporter
Copy link
Author

Youssef

Sei que o biblatex é o mais adequado de se usar hoje em dia. Temos até uma 
issue para isso, a issue 25, mas não teríamos uma forma de integrar o atual 
código bibtex do abntex2cite com as macros do babel?

Original comment by laurocesar on 30 Nov 2013 at 6:06

@GoogleCodeExporter
Copy link
Author

Issue 107 has been merged into this issue.

Original comment by laurocesar on 11 Feb 2014 at 12:19

@GoogleCodeExporter
Copy link
Author

Original comment by laurocesar on 11 Feb 2014 at 12:24

  • Changed title: Internacionalizar abntex2cite - "e" e "and" em citações

@GoogleCodeExporter
Copy link
Author

Original comment by laurocesar on 8 Dec 2014 at 3:42

  • Changed title: Internacionalizar abntex2cite - "e" e "and" em citações e "Acesso em" e "Disponível em" em Referências

@GoogleCodeExporter
Copy link
Author

Original comment by laurocesar on 6 Jan 2015 at 10:11

  • Added labels: Type-Enhancement
  • Removed labels: Type-Task

@renanxcortes
Copy link

Hello. I'm writing my thesis (with 4 manuscripts) and one of my manuscripts is in english and all the rest is written in Brazilian portuguese. Is there a way to establish the 'abnt.and.type' in the bibliography style for a specific chapter? My problem raises because whatever I choose "e" or "and" it applies to the whole document. Thanks!

@rodrigovimieiro
Copy link

Alguma solução que não envolva mexer no "abntex2-alf.bst"? Estou utilizando o Overleaf.

@LuizFilippe1995
Copy link

rodrigovimieiro, conseguiu resolver? Caso não, vc pode criar um file no Overleaf e copiar o código alterado da "abntex2-alf.bst". Nomeie o file da forma que quiser, mas coloque a extensão .bst (por ex.: abntex2-cite-min.bst). Quando vc for colocar a referência, faça assim:

\bibliographystyle{abntex2-cite-min}
\bibliography{dissetacao.bib}

Vou colocar abaixo o código completo, caso não o tenha. Ele está, inclusive, num template do overleaf (https://pt.overleaf.com/latex/templates/abntex-2-template-geral-para-teses-e-dissertacoes-em-ingles/ckzvkmkfbcmz). Vc só precisa alterar as partes conforme falaram acima. No código q envio abaixo, as partes já estão alteradas.

%% abntex2-alf.bst, v<VERSION> laurocesar %% Copyright 2012-2015 by abnTeX2 group at http://www.abntex.net.br/ %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status maintained.
%%
%% The Current Maintainer of this work is the abnTeX2 team, led
%% by Lauro César Araujo. Further information are available on
%% http://www.abntex.net.br/
%%
%% Creator and original mantainer: Gerald Weber gweber@codigolivre.org.br
%% Copyright 2001-2002 by the abnTeX group at http://abntex.codigolivre.org.br
%%
%% This file is an extensive modification from a file generated with the docstrip utility.
%% The original source files were:
%% merlin.mbs (with options: `babel,nm-revf,aunm-semi,nmlm,x3,m3,dt-end,yr-com,xmth,vnum-x,volp-com,jwdpg,jwdvol,num-xser,btit-rm,bt-rm,pg-bk,add-pub,pub-date,pub-xpar,pre-pub,isbn,issn,pp,ed,abr,ednx,nfss')
%% These sourefiles are copyrighted by Patrick W Daly

ENTRY
{ address author
booktitle booksubtitle
chapter conference-number conference-year conference-location
edition editor editortype
dimensions furtherresp
howpublished illustrated institution
isbn issn journal key month note marginnote number organization
org-short pages pagename
publisher reprinted-from reprinted-text school
series subtitle section title type url urlaccessdate
volume year year-presented
abnt-and-type
abnt-doi abnt-dont-use-etal
abnt-etal-cite abnt-etal-list abnt-etal-text abnt-emphasize abnt-experimental
abnt-full-initials
abnt-last-names abnt-ldots-type
abnt-missing-year abnt-cite-style abnt-no-etal-label abnt-note
abnt-repeated-author-omit abnt-repeated-title-omit
abnt-show-options abnt-refinfo abnt-thesis-year abnt-url-package
abnt-title-command
abnt-verbatim-entry
iso-abbreviation iso-author-punctuation iso-date-place
}{}{ label extra.label year.label}

%revision string
STRINGS { abnt.bst.revision }

%general purpose strings
STRINGS { r s t }

%variables needed to implement the various abnt options
STRINGS {abnt.etal.text abnt.emphasize previous.author previous.title}
INTEGERS {abnt.alf abnt.cite.style abnt.doi
abnt.experimental abnt.etal.cite abnt.etal.list
abnt.full.initials
abnt.last.names abnt.ldots.type
abnt.missing.year
abnt.refinfo abnt.repeated.author.omit abnt.repeated.title.omit
abnt.show.options abnt.and.type
abnt.title.command
abnt.thesis.year
abnt.url.package abnt.verbatim.entry
iso.abbreviation iso.author.punctuation iso.date.place
repeated.author}

%needed for title formatting
INTEGERS { title.lenght title.pos first.word no.bracket}
STRINGS { title.char}

%needed for controlling the sentence position
INTEGERS {output.state before.all mid.sentence after.sentence after.block }

%needed for url identification
INTEGERS {url.type}

%static values for options
%values for abnt.doi
FUNCTION {abnt.doi.expand.to.url} {#0} %expands a doi address to its url correspondent
FUNCTION {abnt.doi.link} {#1} %links doi to its url correspondent
FUNCTION {abnt.doi.leave.as.is} {#2} %shows doi as is, external viewer will have
%to know what to do with a "doi:" document

%values for url types
FUNCTION {unknown.url} {#0}
FUNCTION {http.url} {#1}
FUNCTION {file.url} {#2}
FUNCTION {ftp.url} {#3}
FUNCTION {doi.url} {#4}
FUNCTION {mailto.url} {#5}

FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
}

%output.nonnull decides what is written before the argument s, if a comma, period etc.
FUNCTION {output.nonnull}
{ 's := %the argument is written into s
output.state mid.sentence =
{ ", " * write$ } %mid.sentence first write comma
{ output.state after.block =
{ add.period$ write$ newline$ }
{ output.state before.all = 'write$
{ add.period$ " " * write$ }
if$}
if$
mid.sentence 'output.state := }
if$
s %now comes s
}
FUNCTION {output.nonnull.dash}
{ 's := %the argument is written into s
output.state mid.sentence =
{ " --- " * write$ } %mid.sentence first write comma
{ output.state after.block =
{ add.period$ write$ newline$ write$}
{ output.state before.all = 'write$
{ add.period$ " " * write$ }
if$}
if$
mid.sentence 'output.state := }
if$
s %now comes s
}
FUNCTION {output} %does nothing or calls output.nonull
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.dash} %does nothing or calls output.nonull
{ duplicate$ empty$
'pop$
'output.nonnull.dash
if$
}
FUNCTION {output.check} %like ouput, but complains if t empty
{ 't :=
duplicate$ empty$
{ pop$ "campo " t * " vazio em " * cite$ * warning$ }
'output.nonnull
if$
}

FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {add.blank} { " " * before.all 'output.state :=}

FUNCTION {date.block} {new.block}

FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}
FUNCTION {new.sentence.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.sentence
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ abnt.emphasize "{" * swap$ * "}" * }
if$
}

FUNCTION {tie.or.space.prefix} %if text length less than 3 chars. uses a tie
{ duplicate$ text.length$ #5 <
{ "~" }
{ " " }
if$
swap$
}

FUNCTION {no.space} { { "" } swap$ }

FUNCTION {space.word} { " " swap$ * " " * }

FUNCTION {bbl.and}
{ abnt.and.type #0 = {" and "} 'skip$ if$
abnt.and.type #1 = {" & "} 'skip$ if$}
FUNCTION {bbl.chapter} { "chap." }
FUNCTION {bbl.colon} {": "}
FUNCTION {bbl.editors} { "Eds." }
FUNCTION {bbl.editor} { "Ed." }
FUNCTION {bbl.edby} { "edited by" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
{abnt.ldots.type
{abnt.ldots.type #1 = {"\ldots"} 'skip$ if$
abnt.ldots.type #2 = {"$\ldots$"} 'skip$ if$
abnt.ldots.type #3 = {"{...}"} 'skip$ if$}
{""} %for #0 use nothing
if$}
FUNCTION {bbl.master} { "Master's thesis" }
FUNCTION {bbl.missing.year}
{abnt.missing.year
{"[s.d.]"} %#1
{""} %#0
if$}
FUNCTION {bbl.monography} { "Bachelor's Thesis" }
FUNCTION {bbl.mthesis} { "Thesis" }
FUNCTION {bbl.no.address} {"[S.l.]"}
FUNCTION {bbl.no.address.no.publisher} {"[S.l.: s.n.]"}
FUNCTION {bbl.no.publisher} {"[s.n.]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
FUNCTION {bbl.of} { "of" }
FUNCTION {bbl.phd} { "Ph.D. Thesis" }
FUNCTION {bbl.phdthesis} { "Thesis" }
FUNCTION {bbl.pages}
{pagename empty$
{ "p." }
{pagename}
if$
}
FUNCTION {bbl.page} { bbl.pages }
FUNCTION {bbl.reprint} {"Reprint from"}
FUNCTION {bbl.semicolon} { "; "}
FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"}
FUNCTION {bbl.techrep} { "Technical Report" }
FUNCTION {bbl.url.accessdate}
{iso.abbreviation { "Cited "} {"Accessed on: "} if$}
FUNCTION {bbl.url.available}
{ iso.abbreviation {"Available from Internet: "} {"Available at: "} if$}
FUNCTION {bbl.void} {""}
FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ }

MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"Jun."}
MACRO {jul} {"Jul."}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sep."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}

FUNCTION {is.num}
{ chr.to.int$
duplicate$ "0" chr.to.int$ < not
swap$ "9" chr.to.int$ > not and
}
FUNCTION {str.to.int}
{ duplicate$ is.num
{chr.to.int$ #48 -}
'skip$
if$
}
FUNCTION {bibinfo.check} %usage: field "field" bibinfo.check
{ swap$ duplicate$ missing$
{pop$ pop$ ""}
{ duplicate$ empty$
{swap$ pop$}
{swap$ pop$}
if$
}
if$
}
FUNCTION {bibinfo.warn}
{ swap$
duplicate$ missing$
{swap$ "faltando " swap$ * " em " * cite$ * warning$ pop$ ""}
{ duplicate$ empty$
{swap$ "vazio " swap$ * " em " * cite$ * warning$}
{swap$ pop$}
if$
}
if$
}

FUNCTION {write.field.verbatim}
{
duplicate$ missing$
{pop$ pop$}
{
s text.length$ #0 >
{s "," * newline$ write$ "" 's :=}
'skip$
if$
swap$
"={" * swap$ * "}" *
s swap$ * 's :=
}
if$
}

FUNCTION {write.entry.verbatim1}
{
"address" address write.field.verbatim
"author" author write.field.verbatim
"booktitle" booktitle write.field.verbatim
"booksubtitle" booksubtitle write.field.verbatim
"chapter" chapter write.field.verbatim
"conference-number" conference-number write.field.verbatim
"conference-year" conference-year write.field.verbatim
"conference-location" conference-location write.field.verbatim
"edition" edition write.field.verbatim
"editor" editor write.field.verbatim
"editortype" editortype write.field.verbatim
"dimensions" dimensions write.field.verbatim
"furtherresp" furtherresp write.field.verbatim
"howpublished" howpublished write.field.verbatim
"illustrated" illustrated write.field.verbatim
"institution" institution write.field.verbatim
"isbn" isbn write.field.verbatim
"issn" issn write.field.verbatim
"journal" journal write.field.verbatim
}
FUNCTION {write.entry.verbatim2}
{
"key" key write.field.verbatim
"month" month write.field.verbatim
"note" note write.field.verbatim
"marginnote" marginnote write.field.verbatim
"number" number write.field.verbatim
"organization" organization write.field.verbatim
"org-short" org-short write.field.verbatim
"pages" pages write.field.verbatim
"pagename" pagename write.field.verbatim
"publisher" publisher write.field.verbatim
"reprinted-from" reprinted-from write.field.verbatim
"reprinted-text" reprinted-text write.field.verbatim
"school" school write.field.verbatim
"series" series write.field.verbatim
"subtitle" subtitle write.field.verbatim
"section" section write.field.verbatim
"title" title write.field.verbatim
"type" type write.field.verbatim
}
FUNCTION {write.entry.verbatim3}
{
"url" url write.field.verbatim
"urlaccessdate" urlaccessdate write.field.verbatim
"volume" volume write.field.verbatim
"year" year write.field.verbatim
"abnt-emphasize" abnt-emphasize write.field.verbatim
"abnt-experimental" abnt-experimental write.field.verbatim
"abnt-doi" abnt-doi write.field.verbatim
"abnt-dont-use-etal" abnt-dont-use-etal write.field.verbatim
"abnt-full-initials" abnt-full-initials write.field.verbatim
"abnt-ldots-type" abnt-ldots-type write.field.verbatim
"abnt-missing-year" abnt-missing-year write.field.verbatim
"abnt-cite-style" abnt-cite-style write.field.verbatim
"abnt-no-etal-label" abnt-no-etal-label write.field.verbatim
%abnt-note
"abnt-repeated-author-omit" abnt-repeated-author-omit write.field.verbatim
"abnt-repeated-title-omit" abnt-repeated-title-omit write.field.verbatim
"abnt-show-options" abnt-show-options write.field.verbatim
"abnt-refinfo" abnt-refinfo write.field.verbatim
"abnt-thesis-year" abnt-thesis-year write.field.verbatim
"abnt-title-command" abnt-title-command write.field.verbatim
"abnt-url-package" abnt-url-package write.field.verbatim
"abnt-verbatim-entry" abnt-verbatim-entry write.field.verbatim
}

FUNCTION {write.entry.verbatim}
{"" 's := "" 't :=
abnt.verbatim.entry
{"{\footnotesize\begin{verbatim}" newline$ write$
"@" type$ * "{" * cite$ * 's :=
write.entry.verbatim1
write.entry.verbatim2
write.entry.verbatim3
s "" = {"}"} {s "}" *} if$
newline$ write$
"\end{verbatim}}" newline$ write$}
{newline$}
if$}

STRINGS { bibinfo}
INTEGERS { nameptr namesleft numnames }

FUNCTION {get.person} {"{vv }{ll}{, jj}{, ff}" format.name$}
FUNCTION {get.last.name} {#1 "{ll}" format.name$}
FUNCTION {get.first.name} {#1 "{ff}" format.name$}
FUNCTION {get.von} {#1 "{vv}" format.name$}
FUNCTION {get.jr} {#1 "{jj}" format.name$}
FUNCTION {is.composed.von}
{get.person
get.von duplicate$ empty$ {pop$ #0}
{duplicate$
get.first.name empty$ not
swap$ get.last.name empty$ not and
} if$
}

FUNCTION {recompose.name}
{get.person duplicate$ duplicate$ duplicate$
get.von #1 "{ll }" format.name$ swap$
get.last.name *
swap$ #1 "{, ff}" format.name$ *
swap$ get.von #1 "{ ff}" format.name$ *
}

FUNCTION {format.single.name}
{
s nameptr get.person 'r :=
abnt.last.names
{r #1 "{ll}{ jj}" format.name$
abnt.full.initials
{r #1 "{, ff}{ vv}" format.name$ *}
{r #1 "{, f.}{ vv}" format.name$ *}
if$}
{%r #1 is.composed.von {r #1 recompose.name 'r :=} 'skip$ if$
r #1 "{ll}" format.name$
#1 "{ll}" format.name$
r #1 "{ jj}" format.name$ *
abnt.full.initials
{r #1 "{, ff}{ vv}" format.name$ *
r #1 "{ll}" format.name$
#1 "{ ff}{ vv}" format.name$ *}
{iso.author.punctuation
{r #1 "{, f{}}{ vv}" format.name$ *}
{r #1 "{, f.}{ vv}" format.name$ *} if$
r #1 "{ll}" format.name$
#1 "{ f.}{ vv}" format.name$ *}
if$}

if$
}
FUNCTION {format.names}
{ 'bibinfo := duplicate$ empty$ 'skip$
{'s :=
"" 't :=
#1 'nameptr := s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ format.single.name
bibinfo bibinfo.check
't :=
nameptr #1 >
{nameptr #1 #1 + = numnames abnt.etal.list > and
{abnt.etal.list {"others" 't := #1 'namesleft :=} 'skip$ if$ }
'skip$
if$
namesleft #1 >
{ "; " * t * }
{ numnames #2 >
{ "" * }
'skip$
if$
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
{ bbl.etal *}
{ "; " * t *}
if$ }
if$ }
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft := }
while$
} if$
}

%from plain.bst
FUNCTION {format.names.plain}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff }{vv }{ll}{ jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #20 >
{ "," * }
'skip$
if$
t "others" =
{ bbl.etal * }
{ bbl.and * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.names.ed} {format.names}

FUNCTION {format.authors}
{
author "author" format.names
}

FUNCTION {format.authors.plain}
{
author format.names.plain
}

FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }

FUNCTION {format.book.pages}
{ pages "pages" bibinfo.check duplicate$ empty$
'skip$
{ "~" * bbl.pages * }
if$
}
FUNCTION {format.dimensions}
{ dimensions empty$
'skip$
{ dimensions output}
if$
}
FUNCTION {format.furtherresp}
{ furtherresp empty$
'skip$
{ furtherresp output}
if$
}
FUNCTION {format.illustrated}
{ illustrated missing$
'skip$
{illustrated empty$
{"il." output}
{illustrated output}
if$}
if$
}
FUNCTION {format.isbn}
{ isbn "isbn" bibinfo.check duplicate$ empty$
'skip$
{new.block "ISBN " swap$ *}
if$
}

FUNCTION {format.issn}
{ issn "issn" bibinfo.check
duplicate$ empty$ 'skip$
{new.block "ISSN " swap$ *}
if$
}

FUNCTION {format.note}
{ note empty$
{ "" }
{ note #1 #1 substring$
duplicate$ "{" =
'skip$
{ output.state mid.sentence =
{ "l" }
{ "u" }
if$
change.case$ }
if$
note #2 global.max$ substring$ * "note" bibinfo.check }
if$
}

FUNCTION {format.howpublished}
{ howpublished empty$
{ "" }
{ howpublished #1 #1 substring$
duplicate$ "{" =
'skip$
{ output.state mid.sentence =
{ "l" }
{ "u" }
if$
change.case$ }
if$
howpublished #2 global.max$ substring$ * "howpublished" bibinfo.check }
if$
}

%ABNT styles require that the title acts as an author if
%typical author fields are absent. In this case the first
%word is uppercase. Our main problem is to establish what
%the first word actually is since portuguese uses accents.
%For example: Fun{\c c}\ão (Função) is a whole word but contains a
%space, but if we write Fun\c{c}\ão \c is converted to uppercase...
%You get the problem, don't you?
FUNCTION {format.title.as.author}
{ 's := %holds the title
#1 'title.pos := %our position in the title
#1 'first.word := %boolean, true if we already have the first word
#1 'no.bracket := %boolean, false if we are inside a {}
"" 't := %holds the first title.pos characters of the title
{first.word}
{s title.pos #1 substring$ 'title.char :=
%checks if the character is a {
title.char "{" = {#0 'no.bracket :=} 'skip$ if$
%if we are in a bracket
no.bracket 'skip$ {title.char "}" = {#1 'no.bracket :=} 'skip$ if$} if$
type$ "journalpart" =
{title.char "." = title.char ":" = or title.char "!" = or
title.char "," = or title.char ";" = or title.char "?" = or}
{title.char " " =}
if$ s t = or no.bracket and
{#0 'first.word :=
t title.char *
title.pos #1 + 'title.pos :=
s title.pos global.max$ substring$ * 's :=}
{title.pos #1 + 'title.pos := t title.char * 't :=}
if$
}
while$
s
}

%compares current title with the title of the previous entry
FUNCTION {compare.title}
{abnt.repeated.title.omit
{duplicate$ "" = 'skip$
{duplicate$ previous.title = repeated.author and
{duplicate$ 'previous.title := pop$ bbl.same.field}
{duplicate$ 'previous.title :=}
if$}
if$}
'skip$
if$
}

FUNCTION {apply.title.command}
{abnt.title.command
{duplicate$ empty$ 'skip$
{"\bibtextitlecommand{" type$ * "}{" * swap$ * "}" *}
if$}
'skip$ if$
}

FUNCTION {format.title}
{author empty$ editor empty$ and organization empty$ and
{title format.title.as.author}
{title duplicate$ empty$ {pop$ ""} {"t" change.case$} if$}
if$
subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$
apply.title.command
compare.title
}

FUNCTION {n.dashify}
{
't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ "--" *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ "-" = }
{ "-" *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}

FUNCTION {word.in} { bbl.in " " * }

FUNCTION {format.month}
{ month empty$ 'skip$
{month "month" bibinfo.check}
if$
}

FUNCTION {format.date}
{ year empty$
{ month empty$
{ bbl.missing.year }
{ "existe o campo month (mês) mas não o campo year (ano) em " cite$ * warning$ month}
if$}
{ month empty$
{ year n.dashify}
{ month " " * year * }
if$}
if$
}
FUNCTION {format.btitle}
{author empty$ editor empty$ and organization empty$ and
{title format.title.as.author "title" bibinfo.check duplicate$ empty$ 'skip$ {} if$
subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$}
{title "title" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$
subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$}
if$
apply.title.command
compare.title
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ "não posso usar ambos " swap$ * " os campos em " * cite$ * warning$ }
if$
}

FUNCTION {format.volume} %leaves formatted or empty volume on the stack
{volume duplicate$ empty$
'skip$
{volume #1 #1 substring$ is.num
{bbl.volume swap$ tie.or.space.prefix * *}
'skip$
if$}
if$
}

FUNCTION {format.number} %leaves formatted or empty number on the stack
{ number duplicate$ empty$
'skip$
{bbl.number swap$ tie.or.space.prefix * *}
if$
}

FUNCTION {format.patent.number}
{ number
}

FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ format.volume
number empty$ 'skip$ {output format.number} if$
series "series" bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ bbl.of space.word * swap$
emphasize * }
if$
}
if$
}

FUNCTION {format.bvolume.if.no.series}
{ series empty$
{ format.bvolume }
{ "" }
if$
}

FUNCTION {format.number.or.volume}
{number empty$
{format.volume}
{number} %we use the pure number here without leading "n."
if$
}

FUNCTION {format.volume.and.number}
{format.volume output
format.number
}

FUNCTION {format.volume.number.series}
{ number empty$ volume empty$ and
{ series empty$
{ "" }
{" (" series "series" bibinfo.check * ")" *}
if$}
{ series empty$
{""} %{ format.number.or.volume }
{ " (" series "series" bibinfo.check * ", " *
format.number.or.volume * ")" * }
if$ }
if$
}

FUNCTION {extract.num}
{ duplicate$ 't :=
"" 's :=
{ t empty$ not }
{ t #1 #1 substring$
t #2 global.max$ substring$ 't :=
duplicate$ is.num
{ s swap$ * 's := }
{ pop$ "" 't := }
if$ }
while$
s empty$
'skip$
{ pop$ s }
if$
}

FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
{output.state mid.sentence = { "l" } { "t" } if$ change.case$
"edition" bibinfo.check
edition #1 #1 substring$ is.num {". " * bbl.edition * } 'skip$ if$}
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and }
{ t #1 #1 substring$
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ "+" =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$ }
while$
multiresult
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
{ duplicate$ multi.page.check
{ n.dashify bbl.pages swap$}
{ bbl.page swap$ }
if$
tie.or.space.prefix "pages" bibinfo.check * * }
if$
}
FUNCTION {format.journal.pages}
{ pages empty$ {""}
{ pages n.dashify bbl.pages
swap$ tie.or.space.prefix "pages" bibinfo.check * *}
if$
}

FUNCTION {get.url.type}
{s #1 #5 substring$ "http:" = {http.url}
{s #1 #6 substring$ "https:" = {http.url}
{s #1 #5 substring$ "file:" = {file.url}
{s #1 #4 substring$ "ftp:" = {ftp.url}
{s #1 #4 substring$ "doi:" = {doi.url}
{s #1 #7 substring$ "mailto:" = {mailto.url} {unknown.url} if$}
if$}
if$}
if$}
if$}
if$
'url.type :=
}

FUNCTION {expand.doi}
{s
url.type doi.url =
{#5 global.max$ substring$ bbl.doi.url swap$ *}
'skip$ if$
}

INTEGERS {url.pos url.length}
FUNCTION {filter.url.tex}
{s text.length$ #1 + 'url.length :=
#1 'url.pos := "" 't :=
{url.pos url.length <}
{s url.pos #1 substring$
duplicate$ "" = {pop$ "\underline{\ }" } 'skip$ if$
duplicate$ "%" = {pop$ "%" } 'skip$ if$
duplicate$ "&" = {pop$ "&" } 'skip$ if$
duplicate$ "~" = {pop$ "~{}" } 'skip$ if$
duplicate$ "/" = {pop$ "-/" } 'skip$ if$
duplicate$ "." = {pop$ "-." } 'skip$ if$
duplicate$ "" = {pop$ "{\textbackslash}" } 'skip$ if$
duplicate$ "#" = {pop$ "#" } 'skip$ if$
duplicate$ "
" = {pop$ "_" } 'skip$ if$
t swap$ * 't :=
url.pos #1 + 'url.pos :=
}
while$
t
}
FUNCTION {filter.url.html}
{s text.length$ #1 + 'url.length :=
#1 'url.pos := "" 't :=
{url.pos url.length <}
{s url.pos #1 substring$
duplicate$ "%" = {pop$ "%" } 'skip$ if$
duplicate$ "#" = {pop$ "#" } 'skip$ if$
duplicate$ "_" = {pop$ "_" } 'skip$ if$
t swap$ * 't :=
url.pos #1 + 'url.pos :=
}
while$
t
}

FUNCTION {compose.url}
{'s :=
get.url.type
bbl.url.available
abnt.url.package #0 =
{ "$<$" *
abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$

  • "$>$" *} 'skip$ if$
    abnt.url.package Criar logo para o projeto #1 =
    { "\url{" * filter.url.html * "}" *} 'skip$ if$
    abnt.url.package Identificar normas brasileiros sobre trabalhos acadêmicos #2 =
    {url.type http.url =
    {"\htmladdnormallink{$<$" * filter.url.tex * "$>$}{" * filter.url.html * "}" *}
    'skip$ if$
    url.type doi.url = url.type ftp.url = or url.type mailto.url = or
    {"\htmladdnormallink{$<$" *
    abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$
    • "$>$}{" *
      abnt.doi abnt.doi.leave.as.is = {s} 'expand.doi if$
    • "}" * }
      'skip$ if$
      url.type unknown.url =
      {"$<$" * filter.url.tex * "$>$" *}
      'skip$ if$} 'skip$ if$
      }
      FUNCTION {format.url}
      { url empty$ 'skip$
      {url compose.url output new.sentence }
      if$
      urlaccessdate duplicate$ empty$ 'skip$
      { bbl.url.accessdate swap$ *}
      if$
      "urlaccessdate" bibinfo.check output new.sentence
      }

FUNCTION {format.conference.info}
{ conference-number empty$
'skip$
{conference-number "." * output}
if$
conference-year empty$
'skip$
{conference-year output}
if$
conference-location empty$
'skip$
{conference-location output}
if$
new.sentence
}

FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
{ bbl.chapter }
{ type "l" change.case$
"type" bibinfo.check }
if$
chapter tie.or.space.prefix "chapter" bibinfo.check * *
pages empty$
'skip$
{ ", " * format.pages * }
if$ }
if$
}

FUNCTION {format.booktitle}
{author empty$ editor empty$ and organization empty$ and
{booktitle format.title.as.author "booktitle" bibinfo.check duplicate$ empty$ 'skip$ {} if$
booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ *
apply.title.command} if$}
{booktitle "booktitle" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$
booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ *
apply.title.command} if$}
if$
}
FUNCTION {format.editors}
{ editor empty$
{"inbook" type$ = 'bbl.same.field 'skip$ if$}
{author empty$
{editor "editor" format.names " (" *
editortype empty$ {bbl.editor} {editortype} if$
")" * * }
{"inbook" type$ =
{bbl.same.field }
{editor "editor" format.names " (" *
editortype empty$ {bbl.editor} {editortype} if$
")" * *}
if$}
if$}
if$
}
FUNCTION {format.in.ed.booktitle}
{ editor empty$
{organization empty$ not author empty$ not and %if one of two not empty
{word.in organization * output
format.conference.info
booktitle empty$ {""} {new.sentence format.booktitle} if$}
{word.in
organization empty$ author empty$ and 'skip$
{"inbook" type$ = {bbl.same.field * output new.sentence ""}
'skip$ if$ } if$
booktitle empty$ 'skip$ {format.booktitle *} if$}
if$}
{word.in format.editors * output
booktitle empty$ {""} {new.sentence format.booktitle} if$}
if$
output
new.sentence
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
key empty$ not and
{ "todos os campos relevantes estão vazios ou faltando em " cite$ * warning$ }
'skip$
if$
}
FUNCTION {format.type}
{ type "type" bibinfo.check
duplicate$ empty$ 'skip$
{new.block "" swap$ * }
if$
}

FUNCTION {format.year}
{year empty$
{ "campo year vazio ou faltando em " cite$ *
abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$
abnt.missing.year {", " } {""} if$ bbl.missing.year *}
{year n.dashify "year" bibinfo.check}
if$
}

FUNCTION {format.year.presented}
{year-presented empty$
{""}
{year-presented n.dashify}
if$
}

FUNCTION {format.field.address}
{ 't :=
address empty$ organization empty$ and url empty$ and t empty$ and
{bbl.no.address.no.publisher}
{address empty$
%if an url is present we don't give a missing address "[s.l.]" notice
{url empty$ {bbl.no.address ": "} {"" ""} if$}
{address ": "}
if$
t empty$
{%if an organization is present then it is OK not to have a publisher
organization empty$ {* bbl.no.publisher * } 'pop$ if$}
{* t * }
if$}
if$
}

FUNCTION {format.address}
{address empty$
{ bbl.no.address}
{ address}
if$
}

FUNCTION {format.publisher.address}
{ publisher "publisher" bibinfo.check format.field.address}

FUNCTION {format.publisher.address.relax}
{publisher empty$ address empty$ and {""}
{publisher "publisher" bibinfo.check format.field.address}
if$}

FUNCTION {format.organization.address}
{ organization "organization" bibinfo.check format.field.address}

%retains current authorship for future use
FUNCTION {compare.authorship}
{abnt.repeated.author.omit
{duplicate$ "" = 'skip$
{duplicate$ previous.author =
{duplicate$ 'previous.author :=
pop$ bbl.same.field
#1 'repeated.author :=}
{duplicate$ 'previous.author :=
#0 'repeated.author :=}
if$}
if$}
'skip$
if$
}

FUNCTION {format.author.or.organization}
{ author empty$
{ organization empty$ 'skip$
{ organization "organization" bibinfo.check output}
if$}
{ format.authors output.nonnull }
if$
compare.authorship
}

FUNCTION {format.editor.or.organization}
{ editor empty$
{ organization empty$ 'skip$
{ organization "organization" bibinfo.check output}
if$}
{ format.editors output.nonnull }
if$
compare.authorship
}

FUNCTION {format.author.or.editor.or.organization}
{ author empty$
{ editor empty$
{ organization empty$
'skip$
{ organization "organization" bibinfo.check output}
if$}
{ format.editors output.nonnull }
if$}
{ format.authors output.nonnull }
if$
compare.authorship
}

FUNCTION {format.reprint}
{ reprinted-text missing$
{""}
{reprinted-text empty$
{bbl.reprint} {reprinted-text} if$
bbl.colon *}
if$
}

FUNCTION {format.journal}
{
format.reprint
journal emphasize *
}

%generates the first label in \abntrefinfo to be used with \citeonline
FUNCTION {format.names.for.label1} %abnt-alf only
{ 's := "" 't :=
#1 'nameptr := s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{abnt.last.names
{s nameptr "{ll}{ jj}" format.name$}
{s nameptr "{ll}" format.name$ #1 "{ll}" format.name$
s nameptr "{ jj}" format.name$ *}
if$
't :=
nameptr #1 >
{namesleft #1 >
{ numnames abnt.etal.cite > abnt.etal.cite #0 = not and
{#0 'namesleft := abnt.etal.cite {bbl.etal *} 'skip$ if$}
{", " * t * } if$ }
{ t "others" =
{abnt.etal.cite {bbl.etal *} 'skip$ if$}
{numnames nameptr =
{bbl.and * t *}
'skip$ if$}
if$
}
if$ }
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft := }
while$
}

%generates the second label in \abntrefinfo to be used with \cite
FUNCTION {format.names.for.label2} %abnt-alf only
{ 's := "" 't :=
#1 'nameptr := s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{abnt.last.names
{s nameptr "{ll}{ jj}" format.name$}
{s nameptr "{ll}" format.name$ #1 "{ll}" format.name$
s nameptr "{ jj}" format.name$ *}
if$
abnt.cite.style #0 = {} 'skip$ if$ 't :=
nameptr #1 >
{namesleft #1 >
{ numnames abnt.etal.cite >
{#0 'namesleft := abnt.etal.cite {bbl.etal *} 'skip$ if$}
{"; " * t * } if$ }
{ t "OTHERS" = t "others" = or
{abnt.etal.cite {bbl.etal *} 'skip$ if$}
{numnames nameptr = { bbl.semicolon * t *} 'skip$ if$}
if$
}
if$ }
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft := }
while$
}

FUNCTION {format.title.for.label}
{ 's :=
#1 'title.pos := #1 'first.word :=
"" 't :=
{first.word}
{s title.pos #1 substring$ 'title.char :=
title.char "." = title.char ":" = or title.char ";" = or
title.char "," = or title.char " " = or s t = or
{#0 'first.word :=
title.pos #1 + 'title.pos :=}
{title.pos #1 + 'title.pos := t title.char * 't :=}
if$
}
while$
s t = %title equals first word, dont use bbl.ldots
{t "}{" * t
abnt.cite.style #0 = { * } 'skip$ if$}
{t bbl.ldots * "}{" * t
abnt.cite.style #0 = {} 'skip$ if$ * bbl.ldots *}
if$
}

%cvs keys have the general form $key: value $
INTEGERS {key.pos value.pos}
FUNCTION {extract.cvs.key} %we borrow the functionality of format.title.for.label
{ 's := %holds the entire cvs string
#1 'key.pos :=
#0 'value.pos := %0= between first $ and :, 1=between : and second $, 2= at the end
"" 't := %holds the resulting value
{value.pos #0 = value.pos #1 = or}
{ s key.pos #1 substring$ 'title.char :=
value.pos #0 =
{ title.char ":" = {#1 'value.pos := key.pos #1 + 'key.pos :=} 'skip$ if$}
{ title.char "$" =
{#2 'value.pos :=}
{t title.char * 't :=}
if$}
if$
key.pos #1 + 'key.pos :=
}
while$
t
}

%generates and extended label of type {Author}{AUTHOR}{YEAR}
%for abnt.cite.style=1 they will be of type {Author}{Author}{YEAR}
%final result is placed into variable label
FUNCTION {calc.extended.label}
{ "{"
author empty$ not
{author format.names.for.label1 * "}{" * author format.names.for.label2 *}
{editor empty$ not
{editor format.names.for.label1 * "}{" * editor format.names.for.label2 *}
{org-short empty$ not
{org-short * "}{" * org-short *}
{organization empty$ not
{organization * "}{" * organization *}
{title empty$ not
{title format.title.for.label *}
{"nada}{NADA" *}
if$}
if$}
if$}
if$}
if$
"}{" *
year empty$ 'skip$ {year *} if$
'label := %place the stack into label
% final } will be placed in reverse.pass
}
%generates and simple label of type "Author YEAR"
%final result is placed onto the stack
FUNCTION {calc.simple.label}
{ author empty$ not
{author format.names.for.label1}
{editor empty$ not
{editor format.names.for.label1}
{organization empty$ not
{organization}
{title empty$ not
{title}
{""}
if$}
if$}
if$}
if$
year empty$ 'skip$ {" " * year *} if$
}

FUNCTION {output.bibitem}
{ newline$
abnt.alf
{"\bibitem[" write$
calc.simple.label
write$ "]{"}
{"\bibitem{"}
if$
write$ cite$ write$ "}" write$ newline$
abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$
"{" write$
"" before.all 'output.state :=
}
FUNCTION {output.hiddenbibitem}
{ newline$
abnt.alf
{"\hiddenbibitem[" write$
calc.simple.label
write$ "]{"}
{"\bibitem{"}
if$
write$ cite$ write$ "}" write$ newline$
abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$
"{" write$
"" before.all 'output.state :=
}
FUNCTION {fin.entry}
{ add.period$ write$
reprinted-from empty$ 'skip$
{" " reprinted-text empty$
{bbl.reprint} {reprinted-text} if$ * bbl.colon *
"\abntreprintinfo{ " * reprinted-from * "}" * write$}
if$
abnt-note empty$ 'skip$
{"\footnote{" abnt-note * "}" * write$} if$
"}" write$
%newline$
write.entry.verbatim
}

FUNCTION { abnt.display.options}
{ 's := 't :=
abnt.show.options #1 = % "warn"
{"opção " t * " passou para " * s * warning$ } 'skip$ if$

abnt.show.options #2 = % "list"
{"Op\c c~ao selecionada {\tt " t * "=}\verb+" * s * "+" * output new.sentence } 'skip$ if$
}

FUNCTION { abnt-options1 }
{
abnt-show-options empty$
'skip$
{abnt-show-options "no" =
{#0} {abnt-show-options "warn" =
{#1} {abnt-show-options "list" =
{#2 } {#0 } if$} if$} if$
'abnt.show.options :=} % #0 "no"; #1 "warn"; #2 "list"
if$

abnt.show.options #2 =
{output.bibitem "Mudan\c ca de estilo ap\'os este ponto com o comando \verb!\citeoption{"
cite$ * "}! " *
output new.sentence} 'skip$ if$

abnt-show-options empty$
'skip$ {"abnt-show-options" abnt-show-options abnt.display.options} if$

abnt-cite-style empty$
  'skip$
  {abnt-cite-style "(AUTHOR, YEAR)" =
    {#0 'abnt.cite.style :=}
{abnt-cite-style "(Author, YEAR)" =
  {#1 'abnt.cite.style :=}
  {"opção " abnt-cite-style * " desconhecida" * warning$}
 if$}
    if$
   "abnt-cite-style" abnt-cite-style abnt.display.options}if$

abnt-experimental empty$
'skip$ {abnt-experimental "yes" = 'abnt.experimental :=
"abnt-experimental" abnt-experimental abnt.display.options} if$

abnt-emphasize duplicate$ empty$
'pop$ {'abnt.emphasize :=
"abnt-emphasize" abnt.emphasize abnt.display.options
abnt-emphasize "\bf" = abnt-emphasize "\it" = or abnt-emphasize "\em" = or
abnt-emphasize "\bfseries" = or
  {"não use " abnt-emphasize * " para abnt-emphasize em " * cite$ *
  ", isto alterará TODO o texto. Use \textbf ou \emph. Veja a documentação abnt-bibtex-doc para mais detalhes." * warning$}
'skip$ if$
} if$

abnt-doi empty$
  'skip$
  {abnt-doi "expand" =
    {abnt.doi.expand.to.url 'abnt.doi :=}
{abnt-doi "link" =
  {abnt.doi.link 'abnt.doi :=}
  {abnt-doi "doi" =
    {abnt.doi.leave.as.is 'abnt.doi :=}
    {"opção " abnt-doi * " desconhecida" * warning$}
   if$}
 if$}
    if$
   "abnt-doi" abnt-doi abnt.display.options}if$

}
FUNCTION { abnt-options2 }
{
abnt-full-initials empty$
'skip$ {abnt-full-initials "yes" = 'abnt.full.initials :=
"abnt-full-initials" abnt-full-initials abnt.display.options} if$

abnt-last-names empty$
  'skip$
  {abnt-last-names "abnt" =   {#0}
    {abnt-last-names "bibtex" = {#1} {#0} if$} if$
   'abnt.last.names :=
   "abnt-last-names" abnt-last-names abnt.display.options}
if$


abnt-ldots-type empty$
  'skip$
  {abnt-ldots-type "none" =   {#0}
    {abnt-ldots-type "normal" = {#1}
      {abnt-ldots-type "math" =   {#2}
        {abnt-ldots-type "text" =   {#1} {#0}
    if$} if$} if$} if$
   'abnt.ldots.type :=
   "abnt-ldots-type" abnt-ldots-type abnt.display.options}
if$

abnt-missing-year empty$
  'skip$
  {abnt-missing-year "void" = {#0}
{abnt-missing-year "sd" = {#1} {#0} if$}
   if$
   'abnt.missing.year :=
   "abnt-missing-year" abnt-missing-year abnt.display.options}
if$


abnt-and-type empty$
'skip$ {abnt-and-type "e" =
          {#0} {abnt-and-type "&" =
            {#1} {#0} if$} if$
        'abnt.and.type :=
  "abnt-and-type" abnt-and-type abnt.display.options}
if$

abnt-thesis-year empty$
'skip$ {abnt-thesis-year "final" =
          {#0} {abnt-thesis-year "title" =
            {#1} {abnt-thesis-year "both" =
              {#2} {#0} if$} if$} if$
        'abnt.thesis.year :=
  "abnt-thesis-year" abnt-thesis-year abnt.display.options}
if$

abnt-refinfo empty$
'skip$ {abnt-refinfo "yes" = 'abnt.refinfo :=
"abnt-refinfo" abnt-refinfo abnt.display.options} if$

}
FUNCTION { abnt-options3 }
{

abnt-dont-use-etal empty$
'skip$ {abnt-dont-use-etal "yes" = {#0 'abnt.etal.list :=} 'skip$ if$
"Uso da opção abnt-dont-use-etal se tornou obsoleto, usamos abnt-etal-list." warning$
"abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$

abnt-etal-cite empty$
'skip$ {abnt-etal-cite str.to.int 'abnt.etal.cite :=
"abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$

abnt-etal-list empty$
'skip$ {abnt-etal-list str.to.int 'abnt.etal.list :=
"abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$

abnt-etal-text missing$
'skip$ {abnt-etal-text  'abnt.etal.text :=
"abnt-etal-text" abnt.etal.text abnt.display.options} if$

abnt-no-etal-label empty$
'skip$ {abnt-no-etal-label "yes" = {#0 'abnt.etal.cite :=} 'skip$ if$
"Uso da opção abnt-no-etal-label se tornou obsoleto, usamos abnt-etal-cite." warning$
"abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$

abnt-repeated-author-omit empty$
'skip$ {abnt-repeated-author-omit "yes" =
        {#1 'abnt.repeated.author.omit :=}
    {#0 'abnt.repeated.author.omit := "" 'previous.author :=} if$
"abnt-repeated-author-omit" abnt-repeated-author-omit abnt.display.options} if$

abnt-repeated-title-omit empty$ 'skip$
  {abnt-repeated-title-omit "yes" =
    {#1 'abnt.repeated.title.omit :=}
{#0 'abnt.repeated.title.omit := "" 'previous.title :=} if$
    "abnt-repeated-title-omit" abnt-repeated-title-omit abnt.display.options
    abnt.repeated.author.omit not abnt.repeated.title.omit and
      {"Use abnt-repeated-title-omit=yes junto com abnt-repeated-author-omit=yes"
      warning$} 'skip$ if$} if$

abnt-title-command empty$
'skip$ {abnt-title-command "yes" =
        {#1 'abnt.title.command :=}
    {#0 'abnt.title.command :=} if$
"abnt-title-command" abnt-title-command abnt.display.options} if$

abnt-url-package empty$ 'skip$
  {abnt-url-package "url" =
     {#1 'abnt.url.package :=}
     {abnt-url-package "hyperref" = {#2 'abnt.url.package :=} 'skip$ if$}
   if$
   "abnt-url-package" abnt-url-package abnt.display.options}
 if$

abnt-verbatim-entry empty$
'skip$ {abnt-verbatim-entry "yes" = 'abnt.verbatim.entry :=
"abnt-verbatim-entry" abnt-verbatim-entry abnt.display.options} if$

abnt.show.options #2 = 'fin.entry 'skip$ if$
}

%we had to break this function in two parts because of the following message:
%Sorry---you've exceeded BibTeX's single function space 100
%(That was a fatal error)
FUNCTION { iso-options1 }
{
iso-abbreviation empty$
'skip$ {iso-abbreviation "standard" = 'iso.abbreviation :=
"iso-abbreviation" iso-abbreviation abnt.display.options} if$
iso-author-punctuation empty$
'skip$ {iso-author-punctuation "void" = 'iso.author.punctuation :=
"iso-author-punctuation" iso-author-punctuation abnt.display.options} if$
iso-date-place empty$
'skip$ {iso-date-place "ISO" = 'iso.date.place :=
"iso-date-place" iso-date-place abnt.display.options} if$
}

FUNCTION { abnt-options }
{
abnt-options1
abnt-options2
abnt-options3
iso-options1
}

FUNCTION { iso-options } { abnt-options }

FUNCTION { iso.year.label }
{ iso.date.place
{ abnt.alf
{year.label output new.sentence}
'skip$ if$}
'skip$ if$}

FUNCTION { iso.date }
{ iso.date.place
{ abnt.alf
'skip$
{year output new.sentence}
if$}
'skip$ if$}

FUNCTION { non.iso.date }
{iso.date.place 'skip$ {format.date output} if$}

FUNCTION {article}
{ output.bibitem
format.author.or.organization new.sentence
iso.year.label
format.title "title" output.check new.block
format.journal output
iso.date.place {format.year output} 'skip$ if$
%iso.date.place {format.date output} 'skip$ if$
%iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
% {format.year output new.sentence} if$
section "section" bibinfo.check output.dash
publisher "publisher" bibinfo.check output
address "address" bibinfo.check output
format.volume output
format.number output
format.pages output
non.iso.date
format.issn output new.block
format.note output new.block
format.url
fin.entry
}
FUNCTION {book}
{ output.bibitem
format.author.or.editor.or.organization new.sentence
iso.year.label
format.type output new.sentence
format.btitle "title" output.check new.sentence
format.furtherresp new.sentence
format.edition output new.sentence
format.publisher.address output
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.volume output new.sentence
format.book.pages output
format.illustrated
format.dimensions new.sentence
format.howpublished output new.sentence
format.volume.number.series output new.sentence
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
format.url
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.author.or.editor.or.organization new.sentence
iso.year.label
format.type output new.sentence
format.btitle "title" output.check new.sentence
format.edition output new.sentence
address "address" bibinfo.check output
format.bvolume output
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.book.pages output new.sentence
format.volume.number.series output new.sentence
format.note output
format.isbn output new.sentence
format.url
fin.entry
}

FUNCTION {hidden}
{ output.hiddenbibitem
fin.entry}

FUNCTION {inbook}
{ output.bibitem
format.author.or.organization new.sentence
iso.year.label
format.title "title" output.check new.block
format.in.ed.booktitle
format.furtherresp new.sentence
format.edition output new.sentence
format.publisher.address output
%format.year output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.bvolume.if.no.series output
format.volume.number.series output
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
format.url
fin.entry
}

FUNCTION {incollection}
{ output.bibitem
format.author.or.organization new.sentence
iso.year.label
format.title "title" output.check new.sentence
format.in.ed.booktitle
format.edition output new.sentence
format.publisher.address output
%format.year output
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output} if$
format.volume.number.series output new.sentence
format.bvolume.if.no.series output
format.chapter.pages output new.sentence
format.isbn output new.block
format.note output new.block
format.url
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.author.or.organization new.sentence
iso.year.label
format.title "title" output.check new.sentence
format.in.ed.booktitle
format.publisher.address output
%format.year output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.bvolume.if.no.series output
format.volume.number.series output
format.pages output
format.isbn output
format.issn output new.sentence
format.note output new.sentence
format.url
fin.entry
}
FUNCTION {journalpart}
{ output.bibitem
format.author.or.editor.or.organization new.sentence
iso.year.label
format.type output new.sentence
format.btitle "title" output.check new.sentence
format.furtherresp new.sentence
format.edition output new.sentence
format.publisher.address output
format.volume output
format.number output
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.date output new.sentence} if$
format.book.pages output
format.illustrated
format.dimensions new.sentence
format.note output
format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro
format.isbn output new.sentence
format.url
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
format.author.or.editor.or.organization new.sentence
iso.year.label
format.btitle "title" output.check new.block
format.furtherresp new.sentence
format.edition output new.sentence
format.address output
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.bvolume.if.no.series output
format.book.pages output new.sentence
format.volume.number.series output new.sentence
format.note output new.sentence
format.url
fin.entry
}

FUNCTION {misc}
{ output.bibitem
format.author.or.editor.or.organization new.sentence
iso.year.label
format.type output
format.btitle output new.sentence
format.furtherresp new.sentence
format.publisher.address.relax output
%format.date output new.block
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.book.pages output new.sentence
format.illustrated
format.dimensions new.sentence
format.howpublished output new.block
format.volume.number.series output new.sentence
format.note output new.block
format.url
fin.entry
empty.misc.check
}

FUNCTION {patent}
{ output.bibitem
format.editor.or.organization new.sentence
iso.year.label
format.authors.plain output new.sentence
format.btitle output new.sentence
format.furtherresp new.sentence
%format.date output new.block
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.patent.number output
format.howpublished output new.block
format.note output new.block
format.url
fin.entry
empty.misc.check
}

FUNCTION {format.thesis.type}
{ type$ "phdthesis" =
{bbl.phdthesis}
{type$ "mastersthesis" =
{bbl.mthesis}
{type$ "monography" =
{bbl.monography}
{bbl.void}
if$}
if$}
if$
type empty$
{type missing$
{type$ "phdthesis" =
{ " (" bbl.phd * ")" *}
{type$ "mastersthesis" = { " (" bbl.master * ")" *} {pop$ ""} if$}
if$}
{""}
if$}
{type$ "thesis" =
{type}
{" (" type * ")" * "type" bibinfo.check}
if$}
if$

  • %joins first and second part of this function
    }
    FUNCTION {thesis}
    { output.bibitem
    format.authors "author" output.check new.block
    iso.year.label
    format.btitle "title" output.check new.block
    abnt.thesis.year Criar logo para o projeto #1 = abnt.thesis.year Identificar normas brasileiros sobre trabalhos acadêmicos #2 = or
    {format.date "year" output.check new.sentence} 'skip$ if$
    format.year.presented output new.sentence
    format.book.pages output new.sentence
    format.thesis.type output.nonnull
    school "school" bibinfo.warn output.dash
    address "address" bibinfo.check output
    abnt.thesis.year #0 = abnt.thesis.year Identificar normas brasileiros sobre trabalhos acadêmicos #2 = or
    {format.date "year" output.check new.sentence} 'skip$ if$
    format.note output new.block
    format.url
    fin.entry
    }

FUNCTION {phdthesis} { thesis }
FUNCTION {mastersthesis} { thesis }
FUNCTION {monography} { thesis }

FUNCTION {proceedings}
{ output.bibitem
iso.year.label
format.editor.or.organization
format.conference.info
format.btitle "title" output.check
format.bvolume output
format.volume.number.series output
editor empty$
{ publisher empty$
'skip$
{ new.sentence format.publisher.address output format.year output}
if$
}
{ publisher empty$
{ new.sentence
format.organization.address output format.year output}
{ new.sentence
organization "organization" bibinfo.check output
format.publisher.address output format.year output}
if$ }
if$
new.sentence format.book.pages output new.sentence
format.isbn output
format.issn output new.block
format.note output new.block
format.url
fin.entry
}

FUNCTION {techreport} {manual}

FUNCTION {unpublished}
{ output.bibitem
format.author.or.editor.or.organization new.sentence
iso.year.label
format.title "title" output.check new.sentence
format.note "note" output.check new.sentence
%format.date output new.sentence
iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$}
{format.year output new.sentence} if$
format.url
fin.entry
}

FUNCTION {default.type} { misc }
READ
FUNCTION {sortify}
{ purify$
"l" change.case$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
'len :=
s #1 len substring$ =
{ s len #1 + global.max$ substring$ }
's
if$
}
FUNCTION {sort.format.names}
{ 's :=
#1 'nameptr :=
""
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ format.single.name 't :=
nameptr #1 >
{
nameptr #3
#1 + =
numnames #3
> and
{ "others" 't :=
#1 'namesleft := }
'skip$
if$
" " *
namesleft #1 = t "others" = and
{ "zzzzz" * }
{ t sortify * }
if$
}
{ t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}

FUNCTION {sort.format.title}
{ 't :=
"A " #2
"An " #3
"The " #4 t chop.word
chop.word
chop.word
sortify
#1 global.max$ substring$
}
FUNCTION {any.sort}
{ author empty$
{ organization empty$
{ editor empty$
{ title empty$
{ key empty$
{ "para ordenar, precisa dos campos author, organization, editor, title ou key in " cite$ * warning$ ""}
{ key sortify }
if$}
{ title sortify}
if$}
{ editor sort.format.names }
if$}
{ organization sortify }
if$}
{ author sort.format.names }
if$
}

FUNCTION {presort}
{
any.sort
" " * year field.or.null sortify * " " * title field.or.null
sort.format.title * #1 entry.max$ substring$
%for non-alpha style we drop a void sort.key such that SORT has no effect
abnt.alf 'skip$ {pop$ ""} if$ 'sort.key$ :=
year empty$ {""} {year} if$ 'year.label :=
calc.extended.label
}

FUNCTION {set.default.abnt.variables}
{ %if you change abnt-num to abnt-alf by hand you need also to change
%the name of RCSfile by hand, otherwise cvs takes care of it.
%
"$RCSfile: abnt-alf.bst,v $ " extract.cvs.key
%
"abnt-alf.bst,v " = 'abnt.alf := % #1 para abnt-alf #0 para abnt-num
"$Revision: v $" extract.cvs.key 'abnt.bst.revision :=
#0 'abnt.and.type := % #0 "e"; #1 "&"
"\emph" 'abnt.emphasize :=
#0 'abnt.cite.style := %default norm version for NBR10520
%#0 \cite=(AUTHOR, YEAR)
%#1 \cite=(Author, YEAR)
#0 'abnt.experimental :=
abnt.doi.expand.to.url 'abnt.doi :=
#3 'abnt.etal.cite :=
#3 'abnt.etal.list :=
"et al." 'abnt.etal.text :=
#0 'abnt.full.initials :=
#0 'abnt.last.names := %#0 abnt-style, #1 bibtex-style
#1 'abnt.ldots.type := %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
#0 'abnt.missing.year := %#0 "void"; #1 "[s.d.]"
#0 'repeated.author :=
#0 'abnt.repeated.author.omit :=
#0 'abnt.repeated.title.omit :=
#1 'abnt.refinfo :=
#0 'abnt.show.options := % #0 "no"; #1 "warn"; #2 "list"
#0 'abnt.thesis.year := % #0 "final"; #1 "title"; #2 "both"
#0 'abnt.title.command := % #0 "no"; #1 "yes"
#0 'abnt.url.package := % #0 "none"'; #2 "url"; #2 "hyperref"
#0 'abnt.verbatim.entry :=
}
FUNCTION {set.default.iso.variables}
{ #0 'iso.abbreviation := % #0 ABNT-style; #1 ISO-style
#0 'iso.author.punctuation := % #0 ABNT (Smith, A. B.); #1 ISO (Smith, AB)
#0 'iso.date.place := % #0 ABNT-sty; #1 ISO-style
}
EXECUTE {set.default.abnt.variables}
EXECUTE {set.default.iso.variables}
FUNCTION {process.early.abnt.options}
{%here we intercept all entries which need priority handling
%note: we cannot use type$ at this point
abnt-and-type missing$
abnt-experimental missing$ and
abnt-etal-cite missing$ and
abnt-etal-text missing$ and
abnt-ldots-type missing$ and
abnt-cite-style missing$ and
abnt-no-etal-label missing$ and
abnt-title-command missing$ and
'skip$ {call.type$} if$
}
ITERATE {process.early.abnt.options}
FUNCTION {search.reprinted}
{ reprinted-from missing$ 'skip$
{"\nocite{" reprinted-from * "}" * write$ newline$
}
if$
}
ITERATE {search.reprinted}
FUNCTION {abntreprintinfo}
{"\providecommand{\abntreprintinfo}[1]{%" write$ newline$
" \citeonline{#1}}" write$ newline$}
EXECUTE {abntreprintinfo}
ITERATE {presort}
SORT
STRINGS { last.label next.extra}
INTEGERS { last.extra.num }
FUNCTION {forward.pass}
{ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num int.to.chr$ 'extra.label :=
}
{ "a" chr.to.int$ 'last.extra.num :=
"" 'extra.label :=
label 'last.label :=
}
if$
}

FUNCTION {reverse.pass}
{ next.extra "b" =
{ "a" 'extra.label := }
'skip$
if$
label extra.label * 'label :=
year.label extra.label * 'year.label :=
extra.label 'next.extra :=
label "}" * 'label :=
}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {begin.bib}
{
abnt.alf
{"\setlength{\labelsep}{0pt}" write$}
'skip$
if$
"\begin{thebibliography}{}" write$ newline$
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
abnt.refinfo #1 =
{"\providecommand{\abntrefinfo}[3]{}" write$ newline$}
'skip$ if$
"\providecommand{\abntbstabout}[1]{}" write$ newline$
abnt.title.command
{"\providecommand{\bibtextitlecommand}[2]{#2}" write$ newline$}
'skip$ if$
"\abntbstabout{" abnt.bst.revision * "}" * write$ newline$
%Se você não usa abntcite e precisa que a margem direita não
%seja justificada, descomente a linha seguinte
%alternativamente coloque \bibliography{abnt-nrj,...
% "\setlength{\rightskip}{0pt plus 2cm}" write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
FUNCTION {process.entry}{call.type$}
ITERATE {process.entry}
FUNCTION {end.bib}
{ newline$ "\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
FUNCTION {apresentacao}
{ "+---------------------------------------------------------+"
"| http://www.abntex.net.br/ |"
"| Em caso de dúvidas ou problemas com este estilo procure |"
abnt.alf
{"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *}
{"| Estilo bibliográfico abntex2-num.bst versão " abnt.bst.revision * " |" *}
if$
"+---------------------------------------------------------+"
stack$
}
EXECUTE{apresentacao}

`

@rodrigovimieiro
Copy link

Obrigado pela resposta @LuizFilippe1995!! Eu acabei usando um modelo novo da biblioteca da USP que já arrumou esse problema. De qualquer forma, muito obrigado!

Abs.

@skfelix
Copy link

skfelix commented Mar 9, 2021

Para modificar "e" para "and" basta realizar as seguintes substituições onde houver abnt.and.type e abnt-and-type

na linha 245:

FUNCTION {bbl.and}
{ abnt.and.type #0 = {" e "} 'skip$ if$
abnt.and.type #1 = {" \& "} 'skip$ if$}

para

FUNCTION {bbl.and}
{ abnt.and.type #0 = {" and "} 'skip$ if$
abnt.and.type #1 = {" \& "} 'skip$ if$}


[abntex2-alf.zip](https://github.com/abntex/abntex2/files/6110815/abntex2-alf.zip)

na linha 1509, substituí

    abnt-and-type empty$
    'skip$ {abnt-and-type "e" =
              {#0} {abnt-and-type "&" =
                {#1} {#0} if$} if$
            'abnt.and.type :=
      "abnt-and-type" abnt-and-type abnt.display.options}
    if$

por

    abnt-and-type empty$
    'skip$ {abnt-and-type "and" =
              {#0} {abnt-and-type "&" =
                {#1} {#0} if$} if$
            'abnt.and.type :=
      "abnt-and-type" abnt-and-type abnt.display.options}
    if$

na linha 2035, substituí

#0 'abnt.and.type     :=     % #0 "e"; #1 "&"
  "\emph" 'abnt.emphasize :=

por

#0 'abnt.and.type     :=     % #0 "and"; #1 "&"
  "\emph" 'abnt.emphasize :=

Obs.: O arquivo com todas as modificações está anexo.
=================================================================
**Antes de compilar exclua os arquivos ".aux", ".bbl", ".out", ".toc" para que a modificação funcione **
=================================================================

Para mudar o nome de como as coisas são escritas em inglês nas referências bibliográficas como:

  • Dissertação para Dissertation
  • Mestrado para Master of Science
  • Tese para Thesis
  • Doutorado para Doctor of Philosophy
  • entre outros

Basta modificar os seguintes campos a partir da linha 245:

FUNCTION {bbl.and}
{ abnt.and.type #0 = {" and "} 'skip$ if$
abnt.and.type #1 = {" \& "} 'skip$ if$}
FUNCTION {bbl.chapter} { "chap." }
FUNCTION {bbl.colon} {": "}
FUNCTION {bbl.editors} { "Eds." }
FUNCTION {bbl.editor} { "Ed." }
FUNCTION {bbl.edby} { "edited by" }
FUNCTION {bbl.edition} { "ed." }
FUNCTION {bbl.empty} {""}
FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$}
FUNCTION {bbl.doi.url} {"http://dx.doi.org/"}
FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$}
FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...}
{abnt.ldots.type
{abnt.ldots.type #1 = {"\ldots"}   'skip$ if$
abnt.ldots.type #2 = {"$\ldots$"} 'skip$ if$
abnt.ldots.type #3 = {"{...}"}    'skip$ if$}
{""} %for #0 use nothing
if$}
FUNCTION {bbl.master}  { "Master of Science" }
FUNCTION {bbl.missing.year}
{abnt.missing.year
{"[s.d.]"} %#1
{""}       %#0
if$}
FUNCTION {bbl.monography} { "Monography" }
FUNCTION {bbl.mthesis} { "Dissertation" }
FUNCTION {bbl.no.address} {"[S.l.]"}
FUNCTION {bbl.no.address.no.publisher} {"[S.l.: s.n.]"}
FUNCTION {bbl.no.publisher} {"[s.n.]"}
FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ }
FUNCTION {bbl.nr} { "n." }
FUNCTION {bbl.of} { "of" }
FUNCTION {bbl.phd} { "Doctor in Philosophy" }
FUNCTION {bbl.phdthesis} { "Thesis" }
FUNCTION {bbl.pages}
{pagename empty$
{ "p." }
{pagename}
if$
}
FUNCTION {bbl.page} { bbl.pages }
FUNCTION {bbl.reprint} {"Reprint from"}
FUNCTION {bbl.semicolon} { "; "}
FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"}
FUNCTION {bbl.techrep} { "Technical Report" }
FUNCTION {bbl.url.accessdate}
{iso.abbreviation { "Cited "} {"Accessed on: "} if$}
FUNCTION {bbl.url.available}
{ iso.abbreviation {"Available from Internet: "} {"Available at: "} if$}
FUNCTION {bbl.void} {""}
FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ }


MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"Jun."}
MACRO {jul} {"Jul."}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sep."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}

Novamente em qualquer alteração exclua os arquivos auxiliares abaixo:
**Antes de compilar exclua os arquivos ".aux", ".bbl", ".out", ".toc" para que a modificação funcione **
abntex2-alf.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants