%% %% The unbtexcite.sty package for the UnBTeX class is adapted from %% abntex2cite.sty to format bibliographic references in ABNT style. %% %% abntex2cite.sty, v1.9.7 laurocesar %% Copyright 2012-2018 by abnTeX2 group at https://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 %% https://www.abntex.net.br/ %% % How this package is organized: % ------------------------------ % - \AfterTheBibliography{} hook % - Options declaration (search for substring needed here) % alf, num (default) % biblabel-on-margin % no-abnt-option-file (in case one defines its own options file) % other options are considered "\citeoption's" (mechanism includes a % list that stores non defined options, and in \AtBeginDocument, % \citeoption acts over this list) % - Allocing auxiliar variables % - \citeoption % Similar to \nocite, but does not complain about obviously not defined % citations. Intented to access options of abnTeX's bibtex styles. % - \bibliography % Extra care to auto include unbtex-options as bibliography database (if % needed) % - \bibliographystyle % If none is given, the style correspondent to the package style in % use (alf or num) is given. % - Style customization % \authorstyle, \yearstyle, \optionaltextstyle % - \bibitem % Defines action of \bibitem by its subcommands. Compatibility with old % abnt-alf is present. % - \hiddenbibitem % Creates an empty bibliography entry buts creates all labels. % - \abntrefinfo % From the creation of abntcite, options are present as a separated % command. This enables compatibility with any bibtex style. % % - \cite % This command depends on if the style is alf or num % If alf, then \cite produces (, ) % If num, then \cite produces a superscript with [] % - \citeonline % This command depends on if the style is alf or num % If alf, \citeonline produces , () % If num, \citeonline then produces % - \citeyear % Produces % - \citeauthor % Produces % - \citeauthoronline % Produces % - \apud[comments]{First}{Second} % Produces a double citation: (FIRST, YEAR apud SECOND, YEAR<, comments>) % - \apudonline[comments]{First]{Second] % Produces a double citation: First (apud SECOND, YEAR<, comments>) % - \Idem[comments]{Author} % Produces: Id., YEAR<, comments> % - \Ibidem[comments]{Author} % Produces: Ibid.<, comments> % - \opcit[comments]{Author} % Produces: AUTHOR, op. cit.<, comments> % - \cfcite[comments]{Author} % Produces: Cf. AUTHOR, YEAR<, comments> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{unbtexcite}[2026/05/20 v1.6.3 UnBTeX] \RequirePackage{ifthen} \RequirePackage{calc} \RequirePackage{setspace} \RequirePackage{url} %%%%%% Options Declaration %%%%%% % alf, num: main options \newboolean{ABCItextondemand} \DeclareOption{alf}{\def\AbntCitetype{alf}\setboolean{ABCItextondemand}{true}} \DeclareOption{num}{\def\AbntCitetype{num}} \ExecuteOptions{num} % references on page foot \newboolean{ABCIfoot} \DeclareOption{foot}{\setboolean{ABCIfoot}{true}% \setboolean{ABCItextondemand}{false}} \DeclareOption{not-foot}{\setboolean{ABCIfoot}{false}% \setboolean{ABCItextondemand}{true}} \ExecuteOptions{not-foot} % cite text on demand (defaults depends on foot or not-foot) % (also recall that options are executed in order of definition at % \ProcessOptions) \DeclareOption{load-text-on-demand}{\setboolean{ABCItextondemand}{true}} \DeclareOption{load-text}{\setboolean{ABCItextondemand}{false}} % biblabel-on-margin \newboolean{ABCIbibjustif} \DeclareOption{bibjustif}{\setboolean{ABCIbibjustif}{true}} \DeclareOption{bibleftalign}{\setboolean{ABCIbibjustif}{false}} \ExecuteOptions{bibleftalign} % biblabel-on-margin \newboolean{ABCIbiblabelonmargin} \DeclareOption{biblabel-on-margin} {\setboolean{ABCIbiblabelonmargin}{true}} \DeclareOption{biblabel-not-on-margin} {\setboolean{ABCIbiblabelonmargin}{false}} \ExecuteOptions{biblabel-not-on-margin} % indentation: compatibility with old norms \ifx \bibindent\undefined \newlength{\bibindent} \fi \setlength{\bibindent}{\parindent} \newcommand{\citebrackets}[2]{\def\citeopen{#1}\def\citeclose{#2}} \newcommand{\setcitebrackets}{\citebrackets()} % 10520:2002 now defines only two numerical styles \newboolean{ABNTovercite} \DeclareOption{overcite}{\setboolean{ABNTovercite}{true}} \DeclareOption{inlinecite}{\setboolean{ABNTovercite}{false}} % 10520:2002 does not allow (XX) or [XX] for superscript cites \newboolean{ABNTstrictnumformat} % Incorpora o arquivo nbr10520-2002.def do abntex1 % A norma NBR 10520:2002 removeu as opções [] e () para citações % em superscrito \ifx\AbntCitetype\AbntCitetypeALF\else \renewcommand{\setcitebrackets}{ \ifthenelse{\boolean{ABNTovercite}}{\citebrackets{}{}}{\citebrackets()}} \fi % % Allocing variables % % used for \@biblabel in num \newlength{\minimumbiblabelwidth} \newlength{\ABCIauxlen} % Here I define a LaTeX list that will contain all options not defined % before. % A LaTeX list is a command containing a comma separated list of % itens. The list is processed by command \@for, as in \citeoption. \def\citeoptionlist{} % This command adds a string to the list. \newcommand{\addtociteoptionlist}[1]{ \ifthenelse{\equal{\citeoptionlist}{}} {\edef\citeoptionlist{#1}} {\edef\citeoptionlist{\citeoptionlist,#1}} } \DeclareOption*{\addtociteoptionlist{\CurrentOption}} \provideboolean{ABNThyperref} \@ifpackageloaded{hyperref}{% %\addtociteoptionlist{abnt-url-package=hyperref} \setboolean{ABNThyperref}{true} }{\setboolean{ABNThyperref}{false}} \@ifpackageloaded{url}{% \addtociteoptionlist{abnt-url-package=url} \def\UrlLeft{} \def\UrlRight{} \urlstyle{same}} \ProcessOptions % really foot? \ifthenelse{\boolean{ABCIfoot}\and\equal{\AbntCitetype}{num}} {\setboolean{ABCIfoot}{true}} {\setboolean{ABCIfoot}{false}} % Now, after all options are processed, \citeoption process the list of % options given as package options. \ifthenelse{\equal{\citeoptionlist}{}}{} {\AtBeginDocument{\citeoption{\citeoptionlist}}} % \citeoption - equal to \nocite (I copied source from \nocite) % but not complains about this option be obviously undefined \newboolean{ABCIciteoptionwasused} \setboolean{ABCIciteoptionwasused}{false} \def\citeoption#1{\@bsphack \@for\@citekey:=#1\do{% % next line eliminates white space before citation name \edef\@citekey{\expandafter\@firstofone\@citekey}% \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi }% \@esphack% \setboolean{ABCIciteoptionwasused}{true}% } % \bibliography{list of files .bib to be processed by bibTeX} % % I had to redefine this command such that unbtex-options.bib is % automatically used in case that some \citeoption was given as package % option. An entry % \bibliography{unbtex-options,unbtex-options,..} % produces an error in bibTeX. So I had to check if user already % includes unbtex-options by (him/her)self. % % Implementation: % % \citeoption was used? % If YES, (unbtex-options must be given to bibtex!) % checks for unbtex-options into parameter given to \bibliography % if present % user have included, so I don't add it once more % not present % I add necessary unbtex-options % If NO % no changes to \bibliography \def\bibliography#1{% { \ifx \SingleSpacing\undefined \singlespacing \else \SingleSpacing \fi \ifthenelse{\boolean{ABCIciteoptionwasused}} { \if@filesw\immediate\write\@auxout{\string\bibdata{unbtex-options,#1}}\fi } { \if@filesw \immediate\write\@auxout{\string\bibdata{#1}}% \fi } \@input@{\jobname.bbl} } } % The next piece of code looks if bibtexstyle is used or not, and if not, % includes the respective style from the abntcite mode (alf or num) \newboolean{ABCIbibtexstyleused} \setboolean{ABCIbibtexstyleused}{false} \def\bibliographystyle#1{% \ifx\@begindocumenthook\@undefined\else \expandafter\AtBeginDocument \fi {\if@filesw \immediate\write\@auxout{\string\bibstyle{#1}}% \fi} \setboolean{ABCIbibtexstyleused}{true} } %%%%%%%%%%%%%% Style %%%%%%%%%%%%%%%%% \newcommand{\authorstyle}{\relax} \newcommand{\yearstyle}{\relax} \newcommand{\optionaltextstyle}{\relax} \newcommand{\citenumstyle}{\relax} \newlength{\biblabelsep} \setlength{\biblabelsep}{1ex} %%%%%%%%%%%%%%%%%%%%% Implementation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % automatic care for commas inside references \providecommand{\ABCIccomma}{} \newcommand{\ABCIcitecommadefault}{,\penalty\@m\ } \newcommand{\ABCIcitecomma}{\ABCIccomma\let\ABCIccomma\ABCIcitecommadefault} \newcommand{\ABCIinitcitecomma}{\def\ABCIccomma{}} \newcommand{\ABCIcitecolondefault}{; }%{;\penalty\@m\ } \ifthenelse{\boolean{ABCIfoot}} {% foot-num mode \def\@lbibitem[#1]#2{\gdef\abntnextkey{#2}} \def\@bibitem#1{\gdef\abntnextkey{#1}} } { \def\@lbibitem[#1]#2{ \gdef\abntnextkey{#2} \item[\@biblabel{#1}\hfill]% \ifthenelse{\boolean{ABNThyperref}}{% \hyper@anchorstart{cite.#2}\relax\hyper@anchorend}{}% \if@filesw { \let\protect\noexpand \immediate\write\@auxout{\string\bibcite{#2}{#1}} } \fi% \ignorespaces } \def\@bibitem#1{ \gdef\abntnextkey{#1} \item% \ifthenelse{\boolean{ABNThyperref}}{% \hyper@anchorstart{cite.#1}\relax\hyper@anchorend}{}% \if@filesw {\immediate\write\@auxout{\string\bibcite{#1}{\the\value{\@listctr}}}} \fi% \ignorespaces } } \newcommand{\hiddenbibitem}[2][]{\gdef\abntnextkey{#2}} \newcommand{\ABCIgetcitetext}[1]{ \if@filesw {\let\protect\noexpand \immediate\write\@auxout{\string\bibcite{\abntnextkey++TEXT}{#1}}}% \fi} \newcommand{\ABCIgetcitetextecho}[1]{\ABCIgetcitetext{#1}#1} % we are repeating \bibcite command as defined in hyperref.sty % so that we have it all together at one place. \ifthenelse{\boolean{ABNThyperref}}{% %\renewcommand{\bibcite}[2]{% %\@newl@bel{b}{#1}{\hyper@@link[cite]{}{cite.#1}{#2}}}% \newcommand{\bibciteEXPL}[2]{% \@newl@bel{b}{#1++EXPL}{\hyper@@link[cite]{}{cite.#1}{#2}}}% \newcommand{\bibciteIMPL}[2]{% \@newl@bel{b}{#1++IMPL}{\hyper@@link[cite]{}{cite.#1}{#2}}}% \newcommand{\bibciteYEAR}[2]{% \@newl@bel{b}{#1++YEAR}{\hyper@@link[cite]{}{cite.#1}{#2}}}% }{} \newcommand{\abntrefinfo}[3]{% \if@filesw {% \let\protect\noexpand \ifthenelse{\boolean{ABNThyperref}}{% \immediate\write\@auxout{\string\bibciteEXPL{\abntnextkey}{#1}}% \immediate\write\@auxout{\string\bibciteIMPL{\abntnextkey}{#2}}% \immediate\write\@auxout{\string\bibciteYEAR{\abntnextkey}{#3}}}{% \immediate\write\@auxout{\string\bibcite{\abntnextkey++EXPL}{#1}}% \immediate\write\@auxout{\string\bibcite{\abntnextkey++IMPL}{#2}}% \immediate\write\@auxout{\string\bibcite{\abntnextkey++YEAR}{#3}}}% }% \fi \ifthenelse{\boolean{ABCIfoot}} {\ifthenelse{\boolean{ABCItextondemand}} {\@ifundefined{ABCIdemand@\abntnextkey} {\let\ABCIprocesscitetext\@gobble} {\let\ABCIprocesscitetext\ABCIgetcitetext}} {\let\ABCIprocesscitetext\ABCIgetcitetext}} {\ifthenelse{\boolean{ABCItextondemand}} {\@ifundefined{ABCIdemand@\abntnextkey} {\let\ABCIprocesscitetext\relax} {\let\ABCIprocesscitetext\ABCIgetcitetextecho}} {\let\ABCIprocesscitetext\ABCIgetcitetextecho}}% \ABCIprocesscitetext } \newcommand{\ABCIdemand}[1]{\expandafter\gdef\csname ABCIdemand@#1\endcsname{}} \def\AbntCitetypeALF{alf} \let\ABCInewblock\newblock \DeclareRobustCommand{\newblock}{\ABCInewblock} %%%%%%%%%%%%%%%%%%%% abnt-alf %%%%%%%%%%%%%%%%%%%%%%% \setcitebrackets \ifx\AbntCitetype\AbntCitetypeALF % if alf \renewcommand{\@biblabel}[1]{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \cite[optional]{list of keys} % % Implicit citation - author in capital letters and year; % mechanism to deal with repeated names; % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \renewcommand{\@cite}[2]% {\citeopen{#1\ifthenelse{\equal{#2}{}}{}{, {\optionaltextstyle#2}}}\citeclose} \DeclareRobustCommand{\cite}[2][]{% \leavevmode \let\@citeprevious\@empty% \@cite{% \@for\@citekey:=#2\do% \@citekey contains the key {% \edef\@citekey{\expandafter\@firstofone\@citekey\@empty}% % here, a tricky \let\@citename\"b@\@citekey++IMPL" \expandafter\let\expandafter\@citename% \csname b@\@citekey++IMPL\endcsname% \expandafter\let\expandafter\@citeyear% \csname b@\@citekey++YEAR\endcsname% \ifx\@citeprevious\@empty% \else% \ifx\@citename\@citeprevious% \ABCIcitecommadefault% echoing ", " \else% \ABCIcitecolondefault% echoing "; " \fi% \fi% % writing on aux file \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi% % if undefined bibitem \@ifundefined{b@\@citekey++IMPL}% {% if undefined {\bfseries??}% echoing ? \G@refundefinedtrue% \@latex@warning% {Citation `\@citekey' on page \thepage \space undefined}% }% {% if already defined \ifx\@citename\@citeprevious% {\yearstyle\@citeyear\@}\@% \else% {\@citename}, % {\yearstyle\@citeyear\@}% \fi% \let\@citeprevious\@citename% }% \Hy@backout{#2}% }% end for }{#1}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \citeonline[optional]{list of keys} % % Inline (explicit) citation - author in "inline style" and year; % mechanism to deal with repeated names; % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\@citeonline}[2]% {{#1\ifthenelse{\equal{#2}{}}{}{, {\optionaltextstyle#2}}}\citeclose} \DeclareRobustCommand{\citeonline}[2][]{% \leavevmode \let\@citeprevious\@empty% \@citeonline{% \@for\@citekey:=#2\do%\@citekey contains the key {% \edef\@citekey{\expandafter\@firstofone\@citekey\@empty}% % here, a tricky \let\@citename\"b@\@citekey++UP" :-) \expandafter\let\expandafter\@citename% \csname b@\@citekey++EXPL\endcsname% \expandafter\let\expandafter\@citeyear% \csname b@\@citekey++YEAR\endcsname% \ifx\@citeprevious\@empty% \else% \ifx\@citename\@citeprevious% \ABCIcitecommadefault% echoing ", " \else% \citeclose, % echoing "), " \fi% \fi% % writing in aux file \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi% \@ifundefined{b@\@citekey++EXPL}% {% if undefined {\bfseries??}% echoing ? \G@refundefinedtrue% \@latex@warning% {Citation `\@citekey' on page \thepage \space undefined}% }% {% if really defined \ifx\@citename\@citeprevious% \else% {\authorstyle\@citename\@{}} \citeopen% \fi% {\yearstyle\@citeyear\@}% \let\@citeprevious\@citename% }% \Hy@backout{#2}% }% end for }{#1}% } % "overcite" compatibility \let\citen\citeonline \let\citenum\citeonline % end alf % %%%%%%%%%%%%%%%%%%%%%%%%% abnt-num %%%%%%%%%%%%%%%%%%%%%%%%%% % \else % if not alf, \ifABCIfoot \renewenvironment{thebibliography}[1]{}{} \citebrackets{}{} \let\ABCIscriptfont\scriptsize \renewcommand{\newblock}{} \def\ABCI@cite#1#2{\raisebox{.8ex}% {\ABCIscriptfont\citeopen{#1\if@tempswa, #2\fi}\citeclose}} \def\ABCI@citeonline#1#2{{#1\if@tempswa, #2\fi}} \DeclareRobustCommand\cite{% \let\@cite\ABCI@cite% \@ifnextchar[{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \DeclareRobustCommand\citeonline{% \leavevmode\let\@cite\ABCI@citeonline% \@ifnextchar[{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \def\@citex[#1]#2{% \def\@safe@activesfalse{}% \ABCIinitcitecomma% \def\ABCIcitelist{}% \def\ABCIaftercitex{}% to put the footnotes \@cite{% \@for\@citeb:=#2\do% {% \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi% \@ifundefined{b@\@citeb++IMPL}% {% {\bfseries??}% \G@refundefinedtrue% \@latex@warning% {Citation `\@citeb' on page \thepage \space undefined}% }% {% \@ifundefined{b@\@citeb} {% \stepcounter{footnote}% \expandafter\xdef\csname b@\@citeb\endcsname{\thefootnote}% \ABCItoken=\expandafter{\ABCIaftercitex}% \xdef\ABCIaftercitex% {\the\ABCItoken\noexpand\footnotetext% {\noexpand\citetext{\@citeb}}}% } {}% \expandafter\let\expandafter\ABCIcitation% \csname b@\@citeb\endcsname% % test for positive number \ifcat _\ifnum\z@<0\ABCIcitation _\else A\fi \ABCIaddtocitelist{\ABCIcitation}% \else% else \ifcat \ABCIcitecomma\hbox{\ABCIcitation}% \fi% end \ifcat }% }% }{#1}% \ABCIaftercitex% } \newcommand{\citeifnotcited}[1]{% \def\ABCIcitelist{}% \@for\@citeb:=#1\do% {% \@ifundefined{b@\@citeb} {\ABCIaddtocitelist{\@citeb}} {}% }% \expandafter\cite\expandafter{\ABCIcitelist}% } \newcommand{\citeonlineifnotcited}[1]{% \def\ABCIcitelist{}% \@for\@citeb:=#1\do% {% \@ifundefined{b@\@citeb} {\ABCIaddtocitelist{\@citeb}} {}% }% \expandafter\citeonline\expandafter{\ABCIcitelist}% } \newcommand{\ABCIaddtocitelist}[1]{% \ifthenelse{\equal{\ABCIcitelist}{}}% {\edef\ABCIcitelist{#1}} {\edef\ABCIcitelist{\ABCIcitelist,#1}}% }% \newcommand{\ifcited}[3]{\@ifundefined{b@#1}{#3}{#2}} \else % if num and NOT foot % this only works with proper settings in \ABCIthebibliformat \ifthenelse{\boolean{ABCIbiblabelonmargin}} { \renewcommand{\@biblabel}[1]% {\ifthenelse{\equal{#1}{}}{}{{\citenumstyle #1\hspace{\biblabelsep}}}} } { \renewcommand{\@biblabel}[1]% {% \ifthenelse{\equal{#1}{}}{} {% % Para números entre colchetes na lista de referências %\def\biblabeltext{{\citenumstyle #1\hspace{\biblabelsep}}}% \def\biblabeltext{{\citenumstyle[#1]\hspace{\biblabelsep}}}% \settowidth{\ABCIauxlen}{\biblabeltext}% \ifthenelse{\lengthtest{\ABCIauxlen<\minimumbiblabelwidth}} {\setlength{\ABCIauxlen}{\minimumbiblabelwidth-\ABCIauxlen}} {\setlength{\ABCIauxlen}{0cm}}% %{\biblabeltext\hspace{\ABCIauxlen}}% \parbox[t]{\bibindent}{\raggedleft\biblabeltext\hspace{\ABCIauxlen}}% }% }% } \let\ABCIscriptfont\scriptsize \ifthenelse{\boolean{ABNTovercite}}{% \def\ABCI@cite#1#2{\raisebox{1ex}% {\ABCIscriptfont\citeopen{#1\if@tempswa, #2\fi}\citeclose}}}{% \def\ABCI@cite#1#2{\citeopen{#1\if@tempswa, #2\fi}\citeclose}} \def\ABCI@citeonline#1#2{{#1\if@tempswa, #2\fi}} \DeclareRobustCommand\cite{% \let\@cite\ABCI@cite% \@ifnextchar[{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \DeclareRobustCommand\citeonline{% \leavevmode\let\@cite\ABCI@citeonline% \@ifnextchar[{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \def\@citex[#1]#2{% \def\@safe@activesfalse{}% \ABCIinitcitecomma% \def\ABCIcitelist{}% \@cite{% \@for\@citeb:=#2\do% {% \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi% \@ifundefined{b@\@citeb}% {% {\bfseries??}% \G@refundefinedtrue% \@latex@warning% {Citation `\@citeb' on page \thepage \space undefined}% }% {% \expandafter\let\expandafter\ABCIcitation% \csname b@\@citeb\endcsname% % test for positive number \ifcat _\ifnum\z@<0\ABCIcitation _\else A\fi \ABCIaddtocitelist{\ABCIcitation}% \else% else \ifcat \ABCIcitecomma\hbox{\ABCIcitation}% \fi% end \ifcat }% }% }{#1}% } \newcommand{\ABCIaddtocitelist}[1]{% \ifthenelse{\equal{\ABCIcitelist}{}}% {\edef\ABCIcitelist{#1}} {\edef\ABCIcitelist{\ABCIcitelist,#1}}% }% \fi \fi % end if alf \providecommand{\citeifnotcited}[1]{} \providecommand{\citeonlineifnotcited}[1]{} \providecommand{\ifcited}[3]{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \citeyear{list of keys} % % Citation by year % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareRobustCommand{\citeyear}[1]{% \leavevmode \let\@citeprevious\@empty% \@for\@citekey:=#1\do %\@citekey contains the key {% \expandafter\let\expandafter\@citename% \csname b@\@citekey++YEAR\endcsname% % if first use do nothing \ifx\@citeprevious\@empty% \else% , % echoing ", \fi% % writing on aux file \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi% % if undefined bibitem \@ifundefined{b@\@citekey++YEAR}% {% if undefined {\bfseries??}% echoing ? \G@refundefinedtrue% \@latex@warning% {Citation `\@citekey' on page \thepage \space undefined}% }% {% if already defined \ifx\@citename\@citeprevious% \else% {\@citename\@}% \fi% \let\@citeprevious\@citename% }% \Hy@backout{#1}% }% end for } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \citeauthor{list of keys} % % Implicit citation (capital letters) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareRobustCommand{\citeauthor}[1]{% \leavevmode \let\@citeprevious\@empty% \@for\@citekey:=#1\do %\@citekey contains the key {% \expandafter\let\expandafter\@citename\csname b@\@citekey++IMPL\endcsname% % writing on aux file \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi% % if undefined bibitem \@ifundefined{b@\@citekey++IMPL}% {% if undefined {\bfseries??}% \G@refundefinedtrue% \@latex@warning% {Citation `\@citekey' on page \thepage \space undefined}% }% {% if already defined \ifx\@citename\@citeprevious% \else% \ifx\@citeprevious\@empty% \else% ; % echoing "; " \fi% {\@citename\@}% \fi% \let\@citeprevious\@citename% }% \Hy@backout{#1}% }% end for } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \citeauthoronline{list of keys} % % Explicit citation (non capital letter) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareRobustCommand{\citeauthoronline}[1]{% \leavevmode \let\@citeprevious\@empty% \@for\@citekey:=#1\do %\@citekey contains the key {% \expandafter\let\expandafter\@citename\csname b@\@citekey++EXPL\endcsname% % writing on aux file \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi% % if undefined bibitem \@ifundefined{b@\@citekey++EXPL}% {% if undefined {\bfseries??}% \G@refundefinedtrue% \@latex@warning% {Citation `\@citekey' on page \thepage \space undefined}% }% {% if already defined \ifx\@citename\@citeprevious% \else% \ifx\@citeprevious\@empty% \else% ; % echoing "; " \fi% {\authorstyle\@citename\@}% \fi% \let\@citeprevious\@citename% }% \Hy@backout{#1}% }% end for } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \citetext{list of keys} % % Text of the reference % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareRobustCommand{\citetext}[1]{% \leavevmode \let\@citeprevious\@empty% \@for\@citekey:=#1\do %\@citekey contains the key {% \expandafter\let\expandafter\@citename\csname b@\@citekey++TEXT\endcsname% % writing on aux file \if@filesw\immediate\write\@auxout{\string\citation{\@citekey}}\fi% \if@filesw\immediate\write\@auxout{\string\ABCIdemand{\@citekey}}\fi% % if undefined bibitem \@ifundefined{b@\@citekey++TEXT}% {% if undefined {\bfseries??}% \G@refundefinedtrue% \@latex@warning% {Citation `\@citekey' on page \thepage \space undefined}% }% {% if already defined \ifx\@citename\@citeprevious% \else% \relax \ifx\@citeprevious\@empty% \else% ; % echoing "; " \fi% {\@citename}% \fi% \let\@citeprevious\@citename% }% \Hy@backout{#1}% }% end for } % To ensure that the margin settings of this package works, \leftmargin % (inside thebibliography) must be 0cm. \@openbib@code is a hook inside % thebibliography. \let\@openbib@codeBACKUP\@openbib@code \def\@openbib@code{\@openbib@codeBACKUP\setlength{\leftmargin}{0cm}} % adding things after \begin{thebibliography}{} \let\thebibliographyBkUp\thebibliography \def\thebibliography#1{\thebibliographyBkUp{#1}\ABCIthebibliformat} % % \AfterTheBibliography{} hook % \newtoks\ABCItoken \newcommand{\ABCIthebiblihook}{} \newcommand{\AfterTheBibliography}[1]{ \ABCItoken=\expandafter{\ABCIthebiblihook} \expandafter\def\expandafter\ABCIthebiblihook\expandafter{\the\ABCItoken#1} } \ifthenelse{\boolean{ABCIbibjustif}}{} {\AfterTheBibliography{\setlength{\rightskip}{0pt plus 2cm}}} \ifthenelse{\equal{\AbntCitetype}{alf}} {% mode alf \newcommand{\ABCIthebibliformat}{ \setlength{\leftskip}{\bibindent} \setlength{\labelwidth}{0cm} \setlength{\labelsep}{0cm} \setlength{\itemindent}{-\bibindent} \setlength{\listparindent}{0cm} \ABCIthebiblihook } } {% mode num \ifthenelse{\boolean{ABCIbiblabelonmargin}} { \newcommand{\ABCIthebibliformat}{ \setlength{\leftskip}{\bibindent} \setlength{\labelwidth}{10cm} \setlength{\labelsep}{0cm} \setlength{\itemindent}{-\bibindent} \setlength{\listparindent}{0cm} \setlength{\biblabelsep}{1.5ex} \ABCIthebiblihook } } { \newcommand{\ABCIthebibliformat}{ \setlength{\leftskip}{\bibindent} \setlength{\labelwidth}{0cm} \setlength{\labelsep}{0cm} \setlength{\itemindent}{-\bibindent} \setlength{\listparindent}{0cm} \setlength{\minimumbiblabelwidth}{\leftskip} \ABCIthebiblihook } \AfterTheBibliography{ \ifthenelse{\lengthtest{\minimumbiblabelwidth=0pt}} {\setlength{\biblabelsep}{1.8ex}} {\setlength{\biblabelsep}{1ex}} } } } \newcommand{\apudname}{apud} \newcommand{\Idemname}{Id.} \newcommand{\Ibidemname}{Ibid.} \newcommand{\opcitname}{op.\ cit.} \newcommand{\passimname}{passim} \newcommand{\loccitname}{loc.\ cit.} \newcommand{\cfcitename}{Cf.} \newcommand{\etseqname}{et seq.} \DeclareRobustCommand{\footciteref}[1]{% \footnote{\citetext{#1}} } \newcommand{\apud}[3][]{(\citeauthor{#2}, \citeyear{#2} \apudname\ % \citeauthor{#3}, \citeyear{#3}% \ifthenelse{\equal{#1}{\empty}}{}{, #1})} \newcommand{\apudonline}[3][]{\citeauthoronline{#2} (\citeyear{#2} \apudname\ % \citeauthor{#3}, \citeyear{#3}% \ifthenelse{\equal{#1}{\empty}}{}{, #1})} \newcommand{\Idem}[2][]{\Idemname, \citeyear{#2}% \ifthenelse{\equal{#1}{\empty}}{}{, #1}} \newcommand{\Ibidem}[2][]{\Ibidemname% \ifthenelse{\equal{#1}{\empty}}{}{, #1}} \newcommand{\opcit}[2][]{\citeauthor{#2}, \opcitname% \ifthenelse{\equal{#1}{\empty}}{}{, #1}} \newcommand{\passim}[2][]{\citeauthor{#2}, \citeyear{#2}% \ifthenelse{\equal{#1}{\empty}}{}{, #1}, \passimname} \newcommand{\loccit}[2][]{\citeauthor{#2}, \citeyear{#2}% \ifthenelse{\equal{#1}{\empty}}{}{, #1}, \loccitname} \newcommand{\cfcite}[2][]{\cfcitename\ \citeauthor{#2}, \citeyear{#2}% \ifthenelse{\equal{#1}{\empty}}{}{, #1}} \newcommand{\etseq}[2][]{\citeauthor{#2}, \citeyear{#2}% \ifthenelse{\equal{#1}{\empty}}{}{, #1}, \etseqname} \ifthenelse{\equal{\AbntCitetype}{num}}% {\renewcommand{\citeauthor}[1]{\citeauthoronline{#1}\cite{#1}}}{} \endinput