|
@@ -0,0 +1,147 @@
|
|
|
|
|
+\ProvidesPackage{authorbold}
|
|
|
|
|
+
|
|
|
|
|
+\RequirePackage{etoolbox} % Ensure etoolbox is loaded for toggle commands
|
|
|
|
|
+
|
|
|
|
|
+\newtoggle{boldauthor} % Define a toggle for controlling bolding
|
|
|
|
|
+\togglefalse{boldauthor}
|
|
|
|
|
+
|
|
|
|
|
+\def\makenamesetup{%
|
|
|
|
|
+ \def\bibnamedelima{~}%
|
|
|
|
|
+ \def\bibnamedelimb{ }%
|
|
|
|
|
+ \def\bibnamedelimc{ }%
|
|
|
|
|
+ \def\bibnamedelimd{ }%
|
|
|
|
|
+ \def\bibnamedelimi{ }%
|
|
|
|
|
+ \def\bibinitperiod{.}%
|
|
|
|
|
+ \def\bibinitdelim{~}%
|
|
|
|
|
+ \def\bibinithyphendelim{.-}}
|
|
|
|
|
+\newcommand*{\makename}[2]{\begingroup\makenamesetup\xdef#1{#2}\endgroup}
|
|
|
|
|
+
|
|
|
|
|
+\newcommand*{\boldname}[3]{%
|
|
|
|
|
+ \def\lastname{#1}%
|
|
|
|
|
+ \def\firstname{#2}%
|
|
|
|
|
+ \def\firstinit{#3}}
|
|
|
|
|
+\boldname{}{}{}
|
|
|
|
|
+
|
|
|
|
|
+% Patch new definitions
|
|
|
|
|
+\renewcommand{\mkbibnamegiven}[1]{%
|
|
|
|
|
+ \ifboolexpr{ ( test {\ifdefequal{\firstname}{\namepartgiven}} or test {\ifdefequal{\firstinit}{\namepartgiven}} ) and test {\ifdefequal{\lastname}{\namepartfamily}} }
|
|
|
|
|
+ {\iftoggle{boldauthor}{\textbf{#1}}{#1}}{#1}%
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+\renewcommand{\mkbibnamefamily}[1]{%
|
|
|
|
|
+ \ifboolexpr{ ( test {\ifdefequal{\firstname}{\namepartgiven}} or test {\ifdefequal{\firstinit}{\namepartgiven}} ) and test {\ifdefequal{\lastname}{\namepartfamily}} }
|
|
|
|
|
+ {\iftoggle{boldauthor}{\textbf{#1}}{#1}}{#1}%
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+\edef\dothesourcemap{
|
|
|
|
|
+ \noexpand\DeclareSourcemap{
|
|
|
|
|
+ \noexpand\maps[datatype=bibtex]{
|
|
|
|
|
+ \noexpand\map{
|
|
|
|
|
+ \noexpand\pertype{article}
|
|
|
|
|
+ \noexpand\step[fieldsource=author, match=\noexpand\regexp{.* and .*\thesisnameregex.*}, final]
|
|
|
|
|
+ \noexpand\step[fieldset=keywords, fieldvalue={mine_other}, append]
|
|
|
|
|
+ }
|
|
|
|
|
+ \noexpand\map{
|
|
|
|
|
+ \noexpand\pertype{inproceedings}
|
|
|
|
|
+ \noexpand\step[fieldsource=author, match=\noexpand\regexp{.* and .*\thesisnameregex.*}, final]
|
|
|
|
|
+ \noexpand\step[fieldset=keywords, fieldvalue={mine_other}, append]
|
|
|
|
|
+ }
|
|
|
|
|
+ \noexpand\map{
|
|
|
|
|
+ \noexpand\pertype{article}
|
|
|
|
|
+ \noexpand\step[fieldsource=author, match=\noexpand\regexp{.*\thesisnameregex.*}, final]
|
|
|
|
|
+ \noexpand\step[fieldsource=author, notmatch=\noexpand\regexp{.* and .*\thesisnameregex.*}, final]
|
|
|
|
|
+ \noexpand\step[fieldset=keywords, fieldvalue={mine}, append]
|
|
|
|
|
+ }
|
|
|
|
|
+ \noexpand\map{
|
|
|
|
|
+ \noexpand\pertype{inproceedings}
|
|
|
|
|
+ \noexpand\step[fieldsource=author, match=\noexpand\regexp{.*\thesisnameregex.*}, final]
|
|
|
|
|
+ \noexpand\step[fieldsource=author, notmatch=\noexpand\regexp{.* and .*\thesisnameregex.*}, final]
|
|
|
|
|
+ \noexpand\step[fieldset=keywords, fieldvalue={mine}, append]
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+\dothesourcemap
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+% Commands to enable or disable bolding as needed in the document
|
|
|
|
|
+\newcommand{\enableboldauthor}{\toggletrue{boldauthor}}
|
|
|
|
|
+\newcommand{\disableboldauthor}{\togglefalse{boldauthor}}
|
|
|
|
|
+
|
|
|
|
|
+% You can comment in the following code to also make the labels bold
|
|
|
|
|
+
|
|
|
|
|
+% \DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{\ifkeyword{mine}{\mkbibbold{#1}}{#1}}}
|
|
|
|
|
+% \DeclareFieldFormat{boldmine}{\ifkeyword{mine}{\mkbibbold{#1}}{#1}}
|
|
|
|
|
+
|
|
|
|
|
+% \makeatletter
|
|
|
|
|
+% \renewbibmacro*{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]{%
|
|
|
|
|
+% \printtext[boldmine]{%
|
|
|
|
|
+% \printfield{labelprefix}%
|
|
|
|
|
+% \printfield{labelnumber}}}}}}
|
|
|
|
|
+% {\usebibmacro{cite:comp:end}}%
|
|
|
|
|
+% \setcounter{cbx@tempcntb}{\thefield{labelnumber}}%
|
|
|
|
|
+% \savefield{labelprefix}{\cbx@lastprefix}}
|
|
|
|
|
+
|
|
|
|
|
+% \renewbibmacro*{cite:comp:end}{%
|
|
|
|
|
+% \usebibmacro{cite:dump}%
|
|
|
|
|
+% \ifnumgreater{\value{cbx@tempcntb}}{-1}
|
|
|
|
|
+% {\multicitedelim}
|
|
|
|
|
+% {}%
|
|
|
|
|
+% \printtext[bibhyperref]{%
|
|
|
|
|
+% \printtext[boldmine]{%
|
|
|
|
|
+% \printfield{labelprefix}%
|
|
|
|
|
+% \printfield{labelnumber}}}}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+% \renewbibmacro*{cite:comp:inset}{%
|
|
|
|
|
+% \usebibmacro{cite:dump}%
|
|
|
|
|
+% \ifnumgreater{\value{cbx@tempcntb}}{-1}
|
|
|
|
|
+% {\multicitedelim}
|
|
|
|
|
+% {}%
|
|
|
|
|
+% \printtext[bibhyperref]{%
|
|
|
|
|
+% \printtext[boldmine]{%
|
|
|
|
|
+% \printfield{labelprefix}%
|
|
|
|
|
+% \printfield{labelnumber}%
|
|
|
|
|
+% \printfield{entrysetcount}}}%
|
|
|
|
|
+% \setcounter{cbx@tempcntb}{-1}}
|
|
|
|
|
+
|
|
|
|
|
+% \renewbibmacro*{cite:comp:shand}{%
|
|
|
|
|
+% \usebibmacro{cite:dump}%
|
|
|
|
|
+% \ifnumgreater{\value{cbx@tempcntb}}{-1}
|
|
|
|
|
+% {\multicitedelim}
|
|
|
|
|
+% {}%
|
|
|
|
|
+% \printtext[bibhyperref]{\printtext[boldmine]{\printfield{shorthand}}}%
|
|
|
|
|
+% \setcounter{cbx@tempcntb}{-1}}
|
|
|
|
|
+
|
|
|
|
|
+% \newbibmacro*{cite:dump}{%
|
|
|
|
|
+% \ifnumgreater{\value{cbx@tempcnta}}{0}
|
|
|
|
|
+% {\ifnumgreater{\value{cbx@tempcnta}}{1}
|
|
|
|
|
+% {\bibrangedash}
|
|
|
|
|
+% {\multicitedelim}%
|
|
|
|
|
+% \bibhyperref[\cbx@lastkey]{\printtext[boldmine]{%
|
|
|
|
|
+% \ifdef\cbx@lastprefix
|
|
|
|
|
+% {\printtext[labelprefix]{\cbx@lastprefix}}
|
|
|
|
|
+% {}%
|
|
|
|
|
+% \printtext[labelnumber]{\cbx@lastnumber}}}}
|
|
|
|
|
+% {}%
|
|
|
|
|
+% \setcounter{cbx@tempcnta}{0}%
|
|
|
|
|
+% \global\undef\cbx@lastprefix}
|
|
|
|
|
+
|
|
|
|
|
+% \makeatother
|
|
|
|
|
+
|