diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-abnt/abnt-numeric.cbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-abnt/abnt-numeric.cbx | 386 |
1 files changed, 301 insertions, 85 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-numeric.cbx b/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-numeric.cbx index 4cf86a0cc19..1fb33a3be65 100644 --- a/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-numeric.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-numeric.cbx @@ -13,89 +13,336 @@ %% The Current Maintainer of this work is Daniel Ballester Marques. \ProvidesFile{abnt-numeric.cbx}% -[2017/11/09\space v3.2\space ABNT BibLaTeX citation style]% +[2018/04/04\space v3.3\space ABNT BibLaTeX citation style]% -\RequireCitationStyle{numeric} +% Init >>>1 + +\RequireCitationStyle{numeric}% + +\newtoggle{comp}% +\DeclareBibliographyOption{comp}[true]{% + \settoggle{comp}{#1}% +}% + +% <<<1 + +% Comp >>>1 + +\providebool{bbx:subentry}% +% \newbool{cbx:parens}% + +\newcounter{cbx@tempcnta}% +\newcounter{cbx@tempcntb}% + +\DeclareFieldFormat{entrysetcount}{\mknumalph{#1}}% + +\newbibmacro*{cite:init}{% + \iftoggle{comp}{% + \global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash% + \global\undef\cbx@lastnumber% + \global\undef\cbx@lastprefix% + \setcounter{cbx@tempcnta}{0}% + \setcounter{cbx@tempcntb}{-2}% + }{}% +}% + +\newbibmacro*{cite:comp}{% + \iftoggle{comp}{% + \addtocounter{cbx@tempcntb}{1}% + \iffieldundef{shorthand}% + {\ifbool{bbx:subentry}% + {\iffieldundef{entrysetcount}% + {\usebibmacro{cite:comp:comp}}% + {\usebibmacro{cite:comp:inset}}}% + {\usebibmacro{cite:comp:comp}}}% + {\usebibmacro{cite:comp:shand}}% + }{% + \usebibmacro{cite}% + }% +}% + +\newbibmacro*{cite:comp:comp}{% + \ifboolexpr{% + ( test {\iffieldundef{labelprefix}} and test {\ifundef\cbx@lastprefix} )% + or% + test {\iffieldequals{labelprefix}{\cbx@lastprefix}}% + }% + {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}}% + {\savefield{entrykey}{\cbx@lastkey}% + \savefield{labelnumber}{\cbx@lastnumber}% + \addtocounter{cbx@tempcnta}{1}}% + {\ifnumequal{\thefield{labelnumber}}{\value{cbx@tempcntb}-1}% + {}% + {\usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1}% + {\multicitedelim}% + {}% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}}}}}% + {\usebibmacro{cite:comp:end}}% + \setcounter{cbx@tempcntb}{\thefield{labelnumber}}% + \savefield{labelprefix}{\cbx@lastprefix}}% + +\newbibmacro*{cite:comp:end}{% + \usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1}% + {\multicitedelim}% + {}% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}}}% + +\newbibmacro*{cite:comp:inset}{% + \usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1}% + {\multicitedelim}% + {}% + \printtext[bibhyperref]{% + \printfield{labelprefix}% + \printfield{labelnumber}% + \printfield{entrysetcount}}% + \setcounter{cbx@tempcntb}{-1}}% + +\newbibmacro*{cite:comp:shand}{% + \usebibmacro{cite:dump}% + \ifnumgreater{\value{cbx@tempcntb}}{-1}% + {\multicitedelim}% + {}% + \printtext[bibhyperref]{\printfield{shorthand}}% + \setcounter{cbx@tempcntb}{-1}}% + +\newbibmacro*{cite:dump}{% + \iftoggle{comp}{% + \ifnumgreater{\value{cbx@tempcnta}}{0}% + {\ifnumgreater{\value{cbx@tempcnta}}{1}% + {\bibrangedash}% + {\multicitedelim}% + \bibhyperref[\cbx@lastkey]{% + \ifdef\cbx@lastprefix% + {\printtext[labelprefix]{\cbx@lastprefix}}% + {}% + \printtext[labelnumber]{\cbx@lastnumber}}}% + {}% + \setcounter{cbx@tempcnta}{0}% + \global\undef\cbx@lastprefix% + }{}% +}% + +% <<<1 \renewbibmacro*{name:family}[4]{% >>>1 - \ifuseprefix + \ifuseprefix% {\usebibmacro{name:delim}{#3#1}% \usebibmacro{name:hook}{#3#1}% \ifdefvoid{#3}{}{% - \ifcapital - {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + \ifcapital% + {\mkbibnameprefix{\MakeCapital{#3}}\isdot}% {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% - \mkbibnamefamily{#1}\isdot - \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} + \mkbibnamefamily{#1}\isdot% + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% - \mkbibnamefamily{#1}\isdot + \mkbibnamefamily{#1}\isdot% \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}% <<<1 % Cite commands >>>1 \DeclareCiteCommand{\cite}[\mkbibparens]% >>>2 - {\usebibmacro{prenote}} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}}% {\usebibmacro{citeindex}% - \usebibmacro{cite}} - {\multicitedelim} - {\usebibmacro{postnote}}% <<<2 + \usebibmacro{cite:comp}}% + {\iftoggle{comp}{}{\multicitedelim}}% + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}}% <<<2 \DeclareCiteCommand{\parencite}[\mkbibparens]% >>>2 - {\usebibmacro{prenote}} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}}% + {\iftoggle{comp}{}{\multicitedelim}}% + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}}% <<<2 + +\DeclareCiteCommand{\footcite}[\mkbibfootnote]% >>>2 + {\usebibmacro{cite:init}% + \usebibmacro{prenote}}% {\usebibmacro{citeindex}% - \usebibmacro{cite}} - {\multicitedelim} - {\usebibmacro{postnote}}% <<<2 + \usebibmacro{cite:comp}}% + {\iftoggle{comp}{}{\multicitedelim}}% + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}}% <<<2 + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]% >>>2 + {\usebibmacro{cite:init}% + \usebibmacro{prenote}}% + {\usebibmacro{citeindex}% + \usebibmacro{cite:comp}}% + {\iftoggle{comp}{}{\multicitedelim}}% + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}}% <<<2 \DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]% >>>2 - {\usebibmacro{prenote}} + {\usebibmacro{cite:init}% + \usebibmacro{prenote}}% {\usebibmacro{citeindex}% - \usebibmacro{cite}} - {\multicitedelim} - {\usebibmacro{postnote}}% <<<2 - -\DeclareCiteCommand{\cbx@textcite}% >>>2 - {\usebibmacro{textcite:init}% Mudar \multinamedelim e \finalnamedelim. - \boolfalse{cbx:parens}% - \renewcommand*{\finalnamedelim}{\addspace\bibstring{and}\addspace}% - \renewcommand*{\multinamedelim}{\addcomma\addspace}}% + \usebibmacro{cite:comp}}% + {\iftoggle{comp}{}{\multicitedelim}}% + {\usebibmacro{cite:dump}% + \usebibmacro{postnote}}% <<<2 + +\DeclareCiteCommand{\supercite}[\mkbibsuperscript]% >>>2 + {\usebibmacro{cite:init}% + \let\multicitedelim=\supercitedelim% + \iffieldundef{prenote}% + {}% + {\BibliographyWarning{Ignoring prenote argument}}% + \iffieldundef{postnote}% + {}% + {\BibliographyWarning{Ignoring postnote argument}}}% {\usebibmacro{citeindex}% - \usebibmacro{textcite}} - {} - {\usebibmacro{textcite:postnote}}% <<<2 + \usebibmacro{cite:comp}}% + {}% + {\usebibmacro{cite:dump}}% <<<2 -\DeclareMultiCiteCommand{\cites}[\mkbibparens]{\cite}{\multicitedelim} +% \textcite >>>2 -\DeclareMultiCiteCommand{\parencites}% - [\mkbibparens]{\parencite}{\multicitedelim} + \renewcommand*{\iffinalcitedelim}{% + \ifnumequal{\value{textcitecount}}{\value{textcitetotal}-1}}% -\DeclareMultiCiteCommand{\smartcites}% - [\iffootnote\mkbibparens\mkbibfootnote]{\smartcite}{\multicitedelim} + \renewbibmacro*{textcite}{% >>>3 + \iftoggle{comp}{% + \iffieldequals{namehash}{\cbx@lasthash}% + {\usebibmacro{cite:comp}}% + {\usebibmacro{cite:dump}% + \ifbool{cbx:parens}% + {\printtext{\bibcloseparen}\global\boolfalse{cbx:parens}}% + {}% + \iffirstcitekey% + {}% + {\textcitedelim}% + \usebibmacro{cite:init}% + \printtext[bibhyperref]{% + \ifnameundef{labelname}% + {\printfield[citetitle]{labeltitle}}% + {\printnames{labelname}}% + } + \setunit*{\printdelim{namelabeldelim}}% + \printtext{\bibopenparen}\global\booltrue{cbx:parens}% + \ifnumequal{\value{citecount}}{1}% + {\usebibmacro{prenote}}% + {}% + \usebibmacro{cite:comp}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + }{% + \iffieldequals{namehash}{\cbx@lasthash}% + {\setunit{\multicitedelim}}% + {\printtext[bibhyperref]{% + \ifnameundef{labelname}% + {\printfield[citetitle]{labeltitle}}% + {\printnames{labelname} + }}% + \setunit*{\printdelim{namelabeldelim}}% + \printtext{\bibopenparen}\global\booltrue{cbx:parens}% + \stepcounter{textcitecount}% + \savefield{namehash}{\cbx@lasthash}}% + \ifnumequal{\value{citecount}}{1}% + {\usebibmacro{prenote}}% + {}% + \usebibmacro{cite}% + \setunit{% + \ifbool{cbx:parens}% + {\bibcloseparen\global\boolfalse{cbx:parens}}% + {}% + \textcitedelim}% + }% + }% <<<3 -% <<<1 + \renewbibmacro*{textcite:init}{% >>>3 + \ifnumless{\value{multicitecount}}{2}% + {\global\boolfalse{cbx:parens}% + \global\undef\cbx@lasthash}% + {\global\undef\cbx@lasthash}}% <<<3 + + \renewbibmacro*{textcite:postnote}{% >>>3 + \usebibmacro{postnote}% + \ifthenelse{\value{multicitecount}=\value{multicitetotal}}% + {\setunit{}% + \printtext{% + \ifbool{cbx:parens}% + {\bibcloseparen\global\boolfalse{cbx:parens}}% + {}}}% + {\setunit{% + \ifbool{cbx:parens}% + {\bibcloseparen\global\boolfalse{cbx:parens}}% + {}% + \textcitedelim}}}% <<<3 -\renewbibmacro*{textcite}{%% >>>1 - \iffieldequals{namehash}{\cbx@lasthash} - {\setunit{\multicitedelim}} - {\ifnameundef{labelname} - {\printfield[citetitle]{labeltitle}} - {\printnames{labelname}}% - \setunit{% - \global\booltrue{cbx:parens}% - \printdelim{namelabeldelim}\bibopenparen}% - \stepcounter{textcitecount}% - \savefield{namehash}{\cbx@lasthash}}% - \ifnumequal{\value{citecount}}{1} - {\usebibmacro{prenote}} + \DeclareCiteCommand{\cbx@textcite}% >>>3 + {\iftoggle{comp}{\usebibmacro{cite:init}}{\usebibmacro{textcite:init}}}% + {\usebibmacro{citeindex}% + \usebibmacro{textcite}}% {}% - \usebibmacro{cite}% - \setunit{% - \ifbool{cbx:parens} - {\bibcloseparen\global\boolfalse{cbx:parens}} + {\iftoggle{comp}{% + \usebibmacro{cite:dump}% + \usebibmacro{postnote}% + \ifbool{cbx:parens}% + {\bibcloseparen\global\boolfalse{cbx:parens}}% + {}% + }{% + \usebibmacro{textcite:postnote}% + }}% <<<3 + + \DeclareCiteCommand{\textcite}[\cbx@textcite@init\cbx@textcite]% >>>3 + {\gdef\cbx@savedkeys{}% + \citetrackerfalse% + \pagetrackerfalse% + \DeferNextCitekeyHook% + \iftoggle{comp}{\usebibmacro{cite:init}}{\usebibmacro{textcite:init}}}% + {\ifthenelse{\iffirstcitekey\AND\value{multicitetotal}>0}% + {\protected@xappto\cbx@savedcites{()(\thefield{multipostnote})}% + \global\clearfield{multipostnote}}% {}% - \textcitedelim}}% <<<1 + \xappto\cbx@savedkeys{\thefield{entrykey},}% + \iffieldequals{namehash}{\cbx@lasthash}% + {}% + {\stepcounter{textcitetotal}% + \savefield{namehash}{\cbx@lasthash}}}% + {}% + {\protected@xappto\cbx@savedcites{% + [\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}% <<<3 + + % textcite has nested \DeclareCiteCommand definitions for textcite and we want to use + % the normal textcite context + \DeclareDelimcontextAlias{cbx@textcite}{textcite}% + + \renewrobustcmd{\cbx@textcite@init}[2]{% + \setcounter{textcitetotal}{0}% + \setcounter{textcitecount}{0}% + \def\cbx@savedcites{#1}#2\cbx@savedcites\empty}% + + \DeclareMultiCiteCommand{\cbx@textcites}{\cbx@textcite}{}% + \DeclareMultiCiteCommand{\textcites}[\cbx@textcites@init\cbx@textcites]{\textcite}{}% + + \let\cbx@textcites@init\cbx@textcite@init% + \pretocmd{\cbx@textcites@init}{\UseNextMultiCiteHook}{}{}% + +% <<<2 + +\DeclareMultiCiteCommand{\cites}[\mkbibparens]{\cite}{\multicitedelim}% + +\DeclareMultiCiteCommand{\parencites}% + [\mkbibparens]{\parencite}{\multicitedelim}% + +\DeclareMultiCiteCommand{\smartcites}% + [\iffootnote\mkbibparens\mkbibfootnote]{\smartcite}{\multicitedelim}% + +% <<<1 % bibhyperref >>>1 @@ -104,17 +351,7 @@ \bibhyperref{#1}% }% <<<2 -\DeclareFieldFormat{textcitehyperref}{%% >>>2 - \DeclareFieldAlias{bibhyperref}{noformat}% Avoid nested links - \bibhyperref{% - #1% - \ifbool{cbx:parens}% - {\bibcloseparen\global\boolfalse{cbx:parens}}% - {}}% -}% <<<2 - \savebibmacro{cite}% -\savebibmacro{textcite}% \renewbibmacro*{cite}{%% >>>2 \printtext[citehyperref]{% @@ -122,30 +359,9 @@ \usebibmacro{cite}}% }% <<<2 -\renewbibmacro*{textcite}{%% >>>2 - \ifboolexpr{% - (% - not test {\iffieldundef{prenote}}% - and% - test {\ifnumequal{\value{citecount}}{1}}% - )% - or% - (% - not test {\iffieldundef{postnote}}% - and% - test {\ifnumequal{\value{citecount}}{\value{citetotal}}}% - )% - }% - {\DeclareFieldAlias{textcitehyperref}{noformat}}% - {}% - \printtext[textcitehyperref]{% - \restorebibmacro{textcite}% - \usebibmacro{textcite}}% -}% <<<2 - % <<<1 -\endinput +\endinput% % vim: set foldmarker=\ >>>,\ <<< : |