summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx180
1 files changed, 129 insertions, 51 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx
index 094adc0bb4e..cff248116d2 100644
--- a/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex-abnt/abnt-ibid.cbx
@@ -1,4 +1,4 @@
-%% Copyright 2016 Daniel B. Marques
+%% Copyright 2016 Daniel Ballester Marques
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -10,67 +10,144 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% The Current Maintainer of this work is Daniel B. Marques.
+%% The Current Maintainer of this work is Daniel Ballester Marques.
\ProvidesFile{abnt-ibid.cbx}%
-[2017/07/28\space v3.1\space ABNT BibLaTeX citation style]%
+[2017/11/09\space v3.2\space ABNT BibLaTeX citation style]%
-\newtoggle{sccite}%
+% Init >>>1
+
+\RequirePackage{xparse}%
+\RequirePackage{xpatch}%
+\RequirePackage{expl3}%
+\RequirePackage{l3regex}%
+
+% <<<1
% Format >>>1
-\DeclareFieldFormat{citetitle}{%% >>>2
+\newcommand*{\UpperOrSCCite}[1]{% >>>2
\iftoggle{sccite}{%
- \normalfont\textsc{\MakeLowercase{\FirstWord{#1}}}%
+ \textsc{\MakeLowercase{#1}}%
}{%
- \normalfont\MakeUppercase{\FirstWord{#1}}%
+ \MakeUppercase{#1}%
}%
-}%% <<<2
+}% <<<2
+
+\newcommand*{\NormalOrSCCite}[1]{% >>>2
+ \iftoggle{sccite}{%
+ \textsc{\MakeLowercase{#1}}%
+ }{%
+ #1%
+ }%
+}% <<<2
-\DeclareNameFormat{LAST}{%% >>>2
+% \IfInitial >>>2
+
+\ExplSyntaxOn
+
+\NewDocumentCommand{\IfInitial}{mmm}{%
+ \regex_match:nVTF {\w\.} \namepartgiven {#2} {#3}%
+}
+\cs_generate_variant:Nn \regex_match:nnTF { nV }
+
+\ExplSyntaxOff
+
+% <<<2
+
+\renewbibmacro*{name:family}[4]{% >>>2
+ \ifuseprefix
+ {\usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \ifdefvoid{#3}{}{%
+ \ifcapital{%
+ \iftoggle{sccite}{%
+ \mkbibnameprefix{#3}\isdot%
+ }{%
+ \mkbibnameprefix{\MakeCapital{#3}}\isdot%
+ }
+ }{%
+ \mkbibnameprefix{#3}\isdot%
+ }%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}
+ {\usebibmacro{name:delim}{#1}%
+ \usebibmacro{name:hook}{#1}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}% <<<2
+
+\DeclareNameFormat{labelname}{% >>>2
+ % Use family-given instead of given-family
\ifcase\value{uniquename}%
\usebibmacro{name:family}%
- {\iftoggle{sccite}%
- {\textsc{\MakeLowercase{\namepartfamily}}}%
- {\MakeUppercase{\namepartfamily}}}%
+ {\namepartfamily}%
{\namepartgiven}%
{\namepartprefix}%
{\namepartsuffix}%
\or%
\ifuseprefix%
- {\usebibmacro{name:given-family}%
- {\iftoggle{sccite}%
- {\textsc{\MakeLowercase{\namepartfamily}}}%
- {\MakeUppercase{\namepartfamily}}}%
+ {\usebibmacro{name:family-given}%
+ {\namepartfamily}%
{\namepartgiveni}%
{\namepartprefix}%
{\namepartsuffixi}}%
- {\usebibmacro{name:given-family}%
- {\iftoggle{sccite}%
- {\textsc{\MakeLowercase{\namepartfamily}}}%
- {\MakeUppercase{\namepartfamily}}}%
+ {\usebibmacro{name:family-given}%
+ {\namepartfamily}%
{\namepartgiveni}%
{\namepartprefixi}%
{\namepartsuffixi}}%
\or%
- \usebibmacro{name:given-family}%
- {\iftoggle{sccite}%
- {\textsc{\MakeLowercase{\namepartfamily}}}%
- {\MakeUppercase{\namepartfamily}}}%
+ \usebibmacro{name:family-given}%
+ {\namepartfamily}%
{\namepartgiven}%
{\namepartprefix}%
{\namepartsuffix}%
\fi%
- \usebibmacro{name:andothers}%
+ \usebibmacro{name:andothers}}% <<<2
+
+\let\origmkbibnamefamily\mkbibnamefamily%
+\let\origmkbibnamegiven\mkbibnamegiven%
+\let\origmkbibnameprefix\mkbibnameprefix%
+\let\origmkbibnamesuffix\mkbibnamesuffix%
+
+\renewcommand*{\mkbibnamefamily}[1]{% >>>2
+ \UpperOrSCCite{#1}%
+}% <<<2
+\renewcommand*{\mkbibnamegiven}[1]{% >>>2
+ \ifnumequal{\value{uniquename}}{2}{%
+ \IfInitial{#1}{\NormalOrSCCite{#1}}{#1}%
+ }{%
+ \NormalOrSCCite{#1}%
+ }%
+}% <<<2
+\renewcommand*{\mkbibnameprefix}[1]{% >>>2
+ \ifuseprefix{%
+ \UpperOrSC{#1}%
+ }{%
+ \ifnumequal{\value{uniquename}}{2}{#1}{\NormalOrSCCite{#1}}%
+ }
+}% <<<2
+\renewcommand*{\mkbibnamesuffix}[1]{% >>>2
+ \UpperOrSCCite{#1}%
}% <<<2
-% \DeclareDelimFormat{nameyeardelim}{\addcomma\addspace}%
+\DeclareFieldFormat{firstword}{%% >>>2
+ \iftoggle{sccite}{%
+ \normalfont\textsc{\MakeLowercase{\FirstWord{#1}}}%
+ }{%
+ \normalfont\MakeUppercase{\FirstWord{#1}}%
+ }%
+}%% <<<2
+
\renewcommand*{\nameyeardelim}{\addcomma\addspace}%
% <<<1
% Options >>>1
+\newtoggle{sccite}%
+
\DeclareBibliographyOption{sccite}[true]{
\settoggle{sccite}{#1}%
}
@@ -285,7 +362,7 @@
\newbibmacro*{footcite:short}{%
\ifnameundef{labelname}{%
\printtext[bibhyperref]{%
- \printfield[citetitle]{labeltitle}%
+ \printfield[firstword]{labeltitle}%
}%
}{%
\printnames[LAST]{labelname}%
@@ -295,7 +372,7 @@
}{%
\printtext[bibhyperlink]{%
\printfield{labelyear}%
- \printfield{extrayear}%
+ \printfield{extradate}%
}%
}%
}% <<<2
@@ -303,7 +380,7 @@
\newbibmacro*{footcite:loccit}{% >>>2
\ifnameundef{labelname}{%
\printtext[bibhyperref]{%
- \printfield[citetitle]{labeltitle}%
+ \printfield[firstword]{labeltitle}%
}%
}{%
\printnames[LAST]{labelname}%
@@ -316,7 +393,7 @@
\newbibmacro*{footcite:opcit}{% >>>2
\ifnameundef{labelname}{%
\printtext[bibhyperref]{%
- \printfield[citetitle]{labeltitle}%
+ \printfield[firstword]{labeltitle}%
}%
}{%
\printnames[LAST]{labelname}%
@@ -332,7 +409,7 @@
}{%
\printtext[bibhyperlink]{%
\printfield{labelyear}%
- \printfield{extrayear}%
+ \printfield{extradate}%
}%
}%
}% <<<2
@@ -423,24 +500,16 @@
\space}%
}% <<<2
-\newcommand{\addand}{%% >>>2
- \renewcommand*{\multicitedelim}{%
- \ifnumequal{\value{multicitecount}}{\value{multicitetotal}}%
- {\space\bibstring{and}}%
- {\addsemicolon}%
- \space}%
- \renewcommand*{\textcitedelim}{%
- \ifnumequal{\value{multicitecount}}{\value{multicitetotal}}%
- {\addspace\bibstring{and}}%
- {\addsemicolon}%
- \space}%
-}% <<<2
-
-\DeclareCiteCommand{\@apud}[\mkbibfootnote]% >>>2
- {\iffieldundef{prenote}%
- {}%
- {\printfield[uppercasecite]{prenote}%
- \addspace\bibstring{apud}\addspace}}%
+\DeclareCiteCommand{\@apud}% >>>2
+ {\iffieldundef{prenote}{}{%
+ \ifnumgreater{\value{multicitetotal}}{1}{%
+ \usebibmacro{prenote}%
+ }{%
+ \printfield[uppercasecite]{prenote}%
+ \isdot\addspace\bibstring{apud}\addspace%
+ }%
+ }%
+ }%
{\usebibmacro{citeindex}%
\usebibmacro{footcite:short}}%
{\setunit{\multicitedelim}}%
@@ -455,9 +524,9 @@
% textcite >>>1
-\renewbibmacro*{textcite}{% >>>2
+\newbibmacro*{textcite}{% >>>2
\ifnameundef{labelname}%
- {\printfield[citetitle]{labeltitle}}%
+ {\printfield[firstword]{labeltitle}}%
{\printnames{labelname}}}% <<<2
\newbibmacro*{textcite:init}{% >>>2
@@ -542,6 +611,15 @@
\renewbibmacro{multiprenote}{}%
\renewbibmacro{multipostnote}{}}}{}{}% <<<2
+\xpretobibmacro{textcite}{% >>>3
+ \let\multinamedelim\multinamedelimorig%
+ \let\finalnamedelim\finalnamedelimorig%
+ \let\mkbibnamefamily\origmkbibnamefamily%
+ \let\mkbibnamegiven\origmkbibnamegiven%
+ \let\mkbibnameprefix\origmkbibnameprefix%
+ \let\mkbibnamesuffix\origmkbibnamesuffix%
+}{}{}% <<<3
+
% <<<1
\endinput%