diff options
author | Karl Berry <karl@freefriends.org> | 2024-02-02 21:44:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-02-02 21:44:31 +0000 |
commit | 4dcd28d81de0b8c92ff3f3f6735a47d829c00b08 (patch) | |
tree | 46d2a2acb7c250118e115eae25d563095b0870bd /Master/texmf-dist/bibtex | |
parent | 2324ff648b9b67fc2bff885bbfe4a27985bd3ff6 (diff) |
unbtex (2feb24)
git-svn-id: svn://tug.org/texlive/trunk@69681 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-en.bst | 2158 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-pt.bst | 2156 |
2 files changed, 0 insertions, 4314 deletions
diff --git a/Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-en.bst b/Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-en.bst deleted file mode 100644 index 087aca8fe5f..00000000000 --- a/Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-en.bst +++ /dev/null @@ -1,2158 +0,0 @@ -%% -%% unbtexcite-en.bst bibliography style file is adapted from abntex-alf.bst -%% to format bibliographic references in ABNT style for documents written in -%% English, following sugestions avaliable at -%% -%% https://github.com/abntex/abntex2/issues/97 -%% -%% abntex2-alf.bst, v-1.9.7 laurocesar -%% Copyright 2012-2018 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/ -%% - -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 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."} - -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$ "u" change.case$ - 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$ * "u" change.case$ - 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" = - { " \emph{et al.}" *} - { "; " * 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 #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " \emph{et al.}" * } - { " 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 * "u" change.case$ - 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 {word.in} {"\emph{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 #1 = - { "\url{" * filter.url.html * "}" *} 'skip$ if$ - abnt.url.package #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$ - %{booktitle "booktitle" bibinfo.check "u" change.case$ 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 "u" change.case$ * 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$} % remove : após [s.l.] em book - {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 "u" change.case$ "organization" bibinfo.check output} - if$} - { format.authors output.nonnull } - if$ - compare.authorship -} - -FUNCTION {format.editor.or.organization} -{ editor empty$ - { organization empty$ 'skip$ - { organization "u" change.case$ "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 "u" change.case$ "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 {" \emph{et al.}" *} 'skip$ if$} - {", " * t * } if$ } - { t "others" = - {abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} - {numnames nameptr = %{bbl.and * t *} - {numnames #2 > {", and " * t *} {" and " * t *} if$} % coloca vírgula antes do "and" se houver mais de dois autores - '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$ - % Desabilita caixa alta nas citações do comando \cite ao logo do texto - %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ 't := - abnt.cite.style #0 = {} 'skip$ if$ 't := - nameptr #1 > - {namesleft #1 > - { numnames abnt.etal.cite > - {#0 'namesleft := abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} - {"; " * t * } if$ } - { t "OTHERS" = t "others" = or - {abnt.etal.cite {" \emph{et al.}" *} '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 = {"u" change.case$ * } 'skip$ if$} - abnt.cite.style #0 = { * } 'skip$ if$} - {t bbl.ldots * "}{" * t - %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ * bbl.ldots *} - 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 "u" change.case$ *} - {org-short * "}{" * org-short *} - {organization empty$ not - %{organization * "}{" * organization "u" change.case$ *} - {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 " and " = - {#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 #1 = abnt.thesis.year #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 #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: unbtexcite-en.bst,v $ " extract.cvs.key - % - "unbtexcite-en.bst,v " = 'abnt.alf := % #1 para abnt-alf #0 para abnt-num - "$Revision: v-1.9.7 $" extract.cvs.key 'abnt.bst.revision := - #0 'abnt.and.type := % #0 "and"; #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$ -% Ajusta o espaçamento entre linhas e a indentação nas -% referênciasbibliográficas -"\setlength{\baselineskip}{18pt}" write$ newline$ -"\setlength{\leftskip}{3em}" write$ newline$ -"\setlength{\itemindent}{-\leftskip}" write$ newline$ -"\setlength{\itemsep}{0pt}" 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}
\ No newline at end of file diff --git a/Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-pt.bst b/Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-pt.bst deleted file mode 100644 index 4700374c481..00000000000 --- a/Master/texmf-dist/bibtex/bst/unbtex/unbtexcite-pt.bst +++ /dev/null @@ -1,2156 +0,0 @@ -%% -%% unbtexcite-pt.bst bibliography style file is adapted from abntex-alf.bst -%% to format bibliographic references in ABNT style for documents written in -%% Portuguese, following sugestions avaliable at -%% -%% https://github.com/abntex/abntex2/issues/97 -%% -%% abntex2-alf.bst, v-1.9.7 laurocesar -%% Copyright 2012-2018 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/ -%% - -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 = {" e "} 'skip$ if$ - abnt.and.type #1 = {" \& "} 'skip$ if$} -FUNCTION {bbl.chapter} { "cap." } -FUNCTION {bbl.colon} {": "} -FUNCTION {bbl.editors} { "Ed." } -FUNCTION {bbl.editor} { "Ed." } -FUNCTION {bbl.edby} { "editado por" } -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} { "Mestrado" } -FUNCTION {bbl.missing.year} -{abnt.missing.year - {"[\emph{s.d.}]"} %#1 - {""} %#0 - if$} -FUNCTION {bbl.monography} { "Monografia" } -FUNCTION {bbl.mthesis} { "Disserta\c{c}\~{a}o" } -FUNCTION {bbl.no.address} {"[\emph{S.l.}]"} -FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.: s.n.}]"} -FUNCTION {bbl.no.publisher} {"[\emph{s.n.}]"} -FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ } -FUNCTION {bbl.nr} { "n." } -FUNCTION {bbl.of} { "de" } -FUNCTION {bbl.phd} { "Doutorado" } -FUNCTION {bbl.phdthesis} { "Tese" } -FUNCTION {bbl.pages} - {pagename empty$ - { "p." } - {pagename} - if$ - } -FUNCTION {bbl.page} { bbl.pages } -FUNCTION {bbl.reprint} {"Separata de"} -FUNCTION {bbl.semicolon} { "; "} -FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"} -FUNCTION {bbl.techrep} { "Rel. Tec." } -FUNCTION {bbl.url.accessdate} - {iso.abbreviation { "Cited "} {"Acesso em: "} if$} -FUNCTION {bbl.url.available} -{ iso.abbreviation {"Available from Internet: "} {"Dispon{\'\i}vel em: "} if$} -FUNCTION {bbl.void} {""} -FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ } - -MACRO {jan} {"jan."} -MACRO {feb} {"fev."} -MACRO {mar} {"mar."} -MACRO {apr} {"abr."} -MACRO {may} {"maio"} -MACRO {jun} {"jun."} -MACRO {jul} {"jul."} -MACRO {aug} {"ago."} -MACRO {sep} {"set."} -MACRO {oct} {"out."} -MACRO {nov} {"nov."} -MACRO {dec} {"dez."} - -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$ "u" change.case$ - 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$ * "u" change.case$ - 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" = - { " \emph{et al.}" *} - { "; " * 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" = - { " \emph{et al.}" * } - { 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 * "u" change.case$ - 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 {word.in} {"\emph{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 #1 = - { "\url{" * filter.url.html * "}" *} 'skip$ if$ - abnt.url.package #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$ - %{booktitle "booktitle" bibinfo.check "u" change.case$ 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 "u" change.case$ * 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 "u" change.case$ "organization" bibinfo.check output} - if$} - { format.authors output.nonnull } - if$ - compare.authorship -} - -FUNCTION {format.editor.or.organization} -{ editor empty$ - { organization empty$ 'skip$ - { organization "u" change.case$ "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 "u" change.case$ "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 {" \emph{et al.}" *} 'skip$ if$} - {", " * t * } if$ } - { t "others" = - {abnt.etal.cite {" \emph{et al.}" *} '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$ - % Desabilita caixa alta nas citações do comando \cite ao logo do texto - %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ 't := - abnt.cite.style #0 = {} 'skip$ if$ 't := - nameptr #1 > - {namesleft #1 > - { numnames abnt.etal.cite > - {#0 'namesleft := abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} - {"; " * t * } if$ } - { t "OTHERS" = t "others" = or - {abnt.etal.cite {" \emph{et al.}" *} '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 = {"u" change.case$ * } 'skip$ if$} - abnt.cite.style #0 = { * } 'skip$ if$} - {t bbl.ldots * "}{" * t - %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ * bbl.ldots *} - 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 "u" change.case$ *} - {org-short * "}{" * org-short *} - {organization empty$ not - %{organization * "}{" * organization "u" change.case$ *} - {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 #1 = abnt.thesis.year #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 #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: unbtexcite-pt.bst,v $ " extract.cvs.key - % - "unbtexcite-pt.bst,v " = 'abnt.alf := % #1 para abnt-alf #0 para abnt-num - "$Revision: v-1.9.7 $" 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$ -% Ajusta o espaçamento entre linhas e a indentação nas -% referênciasbibliográficas -"\setlength{\baselineskip}{18pt}" write$ newline$ -"\setlength{\leftskip}{3em}" write$ newline$ -"\setlength{\itemindent}{-\leftskip}" write$ newline$ -"\setlength{\itemsep}{0pt}" 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}
\ No newline at end of file |