Files
LaTeX_templates/Thesis/macros.sty
2025-11-12 17:13:43 +01:00

192 lines
7.8 KiB
TeX

\ProvidesPackage{macros}
%----------------------------------------------------------------------------------------
% DEFINE BIBLIOGRAPHY STYLE
%----------------------------------------------------------------------------------------
\usepackage{csquotes}
\usepackage{microtype}
\usepackage[backend=biber,natbib=true,style=authoryear,uniquelist=false,uniquename=false,giveninits=true,isbn=false,url=false,doi=false,mincitenames=1,maxcitenames=2,minbibnames=6,maxbibnames=150,sorting=nyvt]{biblatex}
\addbibresource[glob]{papers.bib}
\addbibresource[glob]{biblio.bib}
\BiblatexSplitbibDefernumbersWarningOff
\emergencystretch=1em
\makeatletter
\def\nhblx@bibfile@name{papers-sort.bib}
\newwrite\nhblx@bibfile
\immediate\openout\nhblx@bibfile=\nhblx@bibfile@name
\immediate\write\nhblx@bibfile{%
@comment{Auto-generated file}\blx@nl}
\newcounter{nhblx@name}
\setcounter{nhblx@name}{0}
\newcommand*{\nhblx@writenametobib}[1]{%
\stepcounter{nhblx@name}%
\edef\nhblx@tmp@nocite{%
\noexpand\AfterPreamble{%
\noexpand\setbox0\noexpand\vbox{%
\noexpand\nhblx@getmethehash{nhblx@name@\the\value{nhblx@name}}}}%
}%
\nhblx@tmp@nocite
\immediate\write\nhblx@bibfile{%
@misc{nhblx@name@\the\value{nhblx@name}, author = {\unexpanded{#1}}, %
options = {dataonly=true},}%
}%
}
\AtEndDocument{%
\closeout\nhblx@bibfile}
\addbibresource{\nhblx@bibfile@name}
\newcommand*{\nhblx@boldhashes}{}
\DeclareNameFormat{nhblx@hashextract}{%
\xifinlist{\thefield{hash}}{\nhblx@boldhashes}
{}
{\listxadd{\nhblx@boldhashes}{\thefield{hash}}}}
\DeclareCiteCommand{\nhblx@getmethehash}
{}
{\printnames[nhblx@hashextract][1-999]{author}}
{}
{}
\newcommand*{\nhblx@writefirsttokey}[1]{%
\DeclareSourcemap{
\maps[datatype=bibtex,overwrite=true]{
\map{
\perdatasource{papers.bib}
\step[fieldsource=author, match=\regexp{^{#1}}, final]
\step[fieldset=keywords, fieldvalue={,first},append]
}
\map{
\perdatasource{papers.bib}
\step[fieldsource=author, match=\regexp{^(?>\{[^\}]+\}\,\s[\w\-\.]+\sand\s){1}\{#1\}}, final]
\step[fieldset=keywords, fieldvalue={,main},append]
}
\map{
\perdatasource{papers.bib}
\step[fieldsource=author, match=\regexp{^(?:.+?\sand\s){2}.*?\{#1\}}, final]
\step[fieldset=keywords, fieldvalue={,collab},append]
}
\map{
\perdatasource{papers.bib}
\step[fieldsource=author, match=\regexp{{#1}}, final]
\step[fieldset=keywords, fieldvalue={,self},append]
}
}
}
}
\newcommand*{\addboldnames}{\forcsvlist\nhblx@writenametobib}
\newcommand*{\resetboldnames}{\def\nhblx@boldhashes{}}
\newcommand*{\firstauth}{\forcsvlist\nhblx@writefirsttokey}
\newcommand*{\ifhashinboldlist}{%
\xifinlist{\thefield{hash}}{\nhblx@boldhashes}}
\makeatother
\newcommand*{\mkboldifhashinlist}[1]{%
\ifhashinboldlist
{\mkbibbold{#1}}
{#1}}
\DeclareNameWrapperFormat{boldifhashinlist}{%
\renewcommand*{\mkbibcompletename}{\mkboldifhashinlist}%
#1}
\DeclareNameWrapperAlias{sortname}{default}
\DeclareNameWrapperAlias{default}{boldifhashinlist}
\defbibcheck{noJoPR}{%
\iffieldequalstr{journaltitle}{arXiv e-prints}
{}
{\skipentry}
}
\defbibcheck{JoPR}{%
\iffieldequalstr{journaltitle}{arXiv e-prints}
{\skipentry}
{}
}
%----------------------------------------------------------------------------------------
% DEFINE ADS ACRONYMS
%----------------------------------------------------------------------------------------
\makeatletter
\let\jnl@style=\rm
\def\ref@jnl#1{{\jnl@style#1}}
\def\aj{\ref@jnl{AJ}} % Astronomical Journal
\def\actaa{\ref@jnl{Acta Astron.}} % Acta Astronomica
\def\araa{\ref@jnl{ARA\&A}} % Annual Review of Astron and Astrophys
\def\apj{\ref@jnl{ApJ}} % Astrophysical Journal
\def\apjl{\ref@jnl{ApJ}} % Astrophysical Journal, Letters
\def\apjs{\ref@jnl{ApJS}} % Astrophysical Journal, Supplement
\def\ao{\ref@jnl{Appl.~Opt.}} % Applied Optics
\def\apss{\ref@jnl{Ap\&SS}} % Astrophysics and Space Science
\def\aap{\ref@jnl{A\&A}} % Astronomy and Astrophysics
\def\aapr{\ref@jnl{A\&A~Rev.}} % Astronomy and Astrophysics Reviews
\def\aaps{\ref@jnl{A\&AS}} % Astronomy and Astrophysics, Supplement
\def\azh{\ref@jnl{AZh}} % Astronomicheskii Zhurnal
\def\baas{\ref@jnl{BAAS}} % Bulletin of the AAS
\def\bac{\ref@jnl{Bull. astr. Inst. Czechosl.}}
% Bulletin of the Astronomical Institutes of Czechoslovakia
\def\caa{\ref@jnl{Chinese Astron. Astrophys.}}
% Chinese Astronomy and Astrophysics
\def\cjaa{\ref@jnl{Chinese J. Astron. Astrophys.}}
% Chinese Journal of Astronomy and Astrophysics
\def\icarus{\ref@jnl{Icarus}} % Icarus
\def\jcap{\ref@jnl{J. Cosmology Astropart. Phys.}}
% Journal of Cosmology and Astroparticle Physics
\def\jrasc{\ref@jnl{JRASC}} % Journal of the RAS of Canada
\def\memras{\ref@jnl{MmRAS}} % Memoirs of the RAS
\def\mnras{\ref@jnl{MNRAS}} % Monthly Notices of the RAS
\def\na{\ref@jnl{New A}} % New Astronomy
\def\nar{\ref@jnl{New A Rev.}} % New Astronomy Review
\def\pra{\ref@jnl{Phys.~Rev.~A}} % Physical Review A: General Physics
\def\prb{\ref@jnl{Phys.~Rev.~B}} % Physical Review B: Solid State
\def\prc{\ref@jnl{Phys.~Rev.~C}} % Physical Review C
\def\prd{\ref@jnl{Phys.~Rev.~D}} % Physical Review D
\def\pre{\ref@jnl{Phys.~Rev.~E}} % Physical Review E
\def\prl{\ref@jnl{Phys.~Rev.~Lett.}} % Physical Review Letters
\def\pasa{\ref@jnl{PASA}} % Publications of the Astron. Soc. of Australia
\def\pasp{\ref@jnl{PASP}} % Publications of the ASP
\def\pasj{\ref@jnl{PASJ}} % Publications of the ASJ
\def\rmxaa{\ref@jnl{Rev. Mexicana Astron. Astrofis.}}%
% Revista Mexicana de Astronomia y Astrofisica
\def\qjras{\ref@jnl{QJRAS}} % Quarterly Journal of the RAS
\def\skytel{\ref@jnl{S\&T}} % Sky and Telescope
\def\solphys{\ref@jnl{Sol.~Phys.}} % Solar Physics
\def\sovast{\ref@jnl{Soviet~Ast.}} % Soviet Astronomy
\def\ssr{\ref@jnl{Space~Sci.~Rev.}} % Space Science Reviews
\def\zap{\ref@jnl{ZAp}} % Zeitschrift fuer Astrophysik
\def\nat{\ref@jnl{Nature}} % Nature
\def\iaucirc{\ref@jnl{IAU~Circ.}} % IAU Cirulars
\def\aplett{\ref@jnl{Astrophys.~Lett.}} % Astrophysics Letters
\def\apspr{\ref@jnl{Astrophys.~Space~Phys.~Res.}}
% Astrophysics Space Physics Research
\def\bain{\ref@jnl{Bull.~Astron.~Inst.~Netherlands}}
% Bulletin Astronomical Institute of the Netherlands
\def\fcp{\ref@jnl{Fund.~Cosmic~Phys.}} % Fundamental Cosmic Physics
\def\gca{\ref@jnl{Geochim.~Cosmochim.~Acta}} % Geochimica Cosmochimica Acta
\def\grl{\ref@jnl{Geophys.~Res.~Lett.}} % Geophysics Research Letters
\def\jcp{\ref@jnl{J.~Chem.~Phys.}} % Journal of Chemical Physics
\def\jgr{\ref@jnl{J.~Geophys.~Res.}} % Journal of Geophysics Research
\def\jqsrt{\ref@jnl{J.~Quant.~Spec.~Radiat.~Transf.}}
% Journal of Quantitiative Spectroscopy and Radiative Transfer
\def\memsai{\ref@jnl{Mem.~Soc.~Astron.~Italiana}}
% Mem. Societa Astronomica Italiana
\def\nphysa{\ref@jnl{Nucl.~Phys.~A}} % Nuclear Physics A
\def\physrep{\ref@jnl{Phys.~Rep.}} % Physics Reports
\def\physscr{\ref@jnl{Phys.~Scr}} % Physica Scripta
\def\planss{\ref@jnl{Planet.~Space~Sci.}} % Planetary Space Science
\def\procspie{\ref@jnl{Proc.~SPIE}} % Proceedings of the SPIE
\makeatother
\let\astap=\aap
\let\apjlett=\apjl
\let\apjsupp=\apjs
\let\applopt=\ao