Files
dehaeze26_nass/paper/iucrjournals.cls
2025-11-27 18:41:23 +01:00

386 lines
11 KiB
TeX

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is the IUCr LaTeX2e class macro file iucrjournals.cls
% This work has been dedicated to the public domain
% License: CC0 1.0 Universal
% https://creativecommons.org/publicdomain/zero/1.0/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Usage:
% \documentclass{iucrjournals}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{iucrjournals}
\date{}
\LoadClass[11pt]{article}
\RequirePackage{lineno}
\linenumbers
\RequirePackage[parfill]{parskip}
\RequirePackage{setspace}
\onehalfspacing
\RequirePackage[margin=1in]{geometry}
\RequirePackage{float}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
\RequirePackage{hyperref}
\hypersetup{colorlinks = true, allcolors = blue}
\RequirePackage{authblk}
\RequirePackage{booktabs}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% bibtex:
\RequirePackage{harvard}
% The following hack addresses a problem with bibtex failing when
% there is whitespace in a comma-separated list of labels passed as
% an argument to \cite - see
% http://tex.stackexchange.com/questions/4517/cite-that-tolerates-whitespace
%
\let\OLDcite\cite
\def\tok@scan#1{%
\ifx#1\relax
\let\tok@next\relax
\else
\edef\my@list{\my@list#1}%
\let\tok@next\tok@scan
\fi
\tok@next
}
\newcommand{\@strip}[2]{%
\def\my@list{}\tok@scan#2\relax\let#1\my@list}
\renewcommand{\cite}[1]{\@strip\@args{#1}\OLDcite\@args}
% The iucr.bst BibTeX bibliography style requires the harvard.sty package.
% IUCr citations are similar to the "dcu" style within harvard.sty, but
% require the conjunction to be changed to '&'; also abbreviated citations
% ('et al.') are always used.
\citationstyle{dcu} % (Doe, 1990; Soape, 1991)
\renewcommand{\harvardand}{\&} % (Doe & Soape, 1990)
\citationmode{abbr} % (Doe et al., 1990)
\bibliographystyle{iucr}
\renewcommand{\harvardurl}{\relax} % incompatibility with hyperref
% \newblock is output by BibTeX to separate logical sections of a reference
% listing. It serves no useful purpose, and can cause extra spacing to
% intrude
\let\newblock\relax
% A complication of the preferred style of citation of IUCr journals
% is that the volume number for Acta includes the section label,
% which is NOT printed in bold; to accommodate this, \volbf is defined
% and generated by iucr.bst. \volbf needs to test just the first character
% of the volume number
\gdef\@A@{A}%
\gdef\@B@{B}%
\gdef\@C@{C}%
\gdef\@D@{D}%
\gdef\@E@{E}%
\gdef\@F@{F}%
\gdef\@J@{J}%
\gdef\@M@{M}%
\gdef\@S@{S}%
\newif\iffirst\firsttrue
\def\volbf#1{%
{\firsttrue\v@lbf#1\end}%
}
\def\v@lbf#1{%
\ifx#1\end
\let\next=\relax%
\else
\let\next=\v@lbf\iffirst
\def\t@st{#1}
\if\t@st\@A@{\rmfamily{#1}}\else
\if\t@st\@B@{\rmfamily{#1}}\else
\if\t@st\@C@{\rmfamily{#1}}\else
\if\t@st\@D@{\rmfamily{#1}}\else
\if\t@st\@E@{\rmfamily{#1}}\else
\if\t@st\@F@{\rmfamily{#1}}\else
\textbf{#1}%
\fi
\fi
\fi
\fi
\fi
\fi%
\firstfalse%
\else
{\textbf #1}%
\fi%
\fi
\next%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% nice orcid links for use in author block:
\RequirePackage{tikz}
\usetikzlibrary{svg.path}
\IfFileExists{orcidlink.sty}%
{\RequirePackage{orcidlink}}%
{% orcidlink is post 2020, so include full code if sty file not available
\definecolor{orcidlogocol}{HTML}{A6CE39}
\tikzset{
orcidlogo/.pic={
\fill[orcidlogocol] svg{M256,128c0,70.7-57.3,128-128,128C57.3,256,0,198.7,0,128C0,57.3,57.3,0,128,0C198.7,0,256,57.3,256,128z};
\fill[white] svg{M86.3,186.2H70.9V79.1h15.4v48.4V186.2z}
svg{M108.9,79.1h41.6c39.6,0,57,28.3,57,53.6c0,27.5-21.5,53.6-56.8,53.6h-41.8V79.1z M124.3,172.4h24.5c34.9,0,42.9-26.5,42.9-39.7c0-21.5-13.7-39.7-43.7-39.7h-23.7V172.4z}
svg{M88.7,56.8c0,5.5-4.5,10.1-10.1,10.1c-5.6,0-10.1-4.6-10.1-10.1c0-5.6,4.5-10.1,10.1-10.1C84.2,46.7,88.7,51.3,88.7,56.8z};
}
}
%% Reciprocal of the height of the svg whose source is above. The
%% original generates a 256pt high graphic; this macro holds 1/256.
\newcommand{\@OrigHeightRecip}{0.00390625}
%% We will compute the current X height to make the logo the right height
\newlength{\@curXheight}
%% Prevent externalization of the ORCiD logo.
\newcommand{\@preventExternalization}{%
\ifcsname tikz@library@external@loaded\endcsname%
\tikzset{external/export next=false}\else\fi%
}
\newcommand{\orcidlogo}{%
\texorpdfstring{%
\setlength{\@curXheight}{\fontcharht\font`X}%
\XeTeXLinkBox{%
\@preventExternalization%
\begin{tikzpicture}[yscale=-\@OrigHeightRecip*\@curXheight,
xscale=\@OrigHeightRecip*\@curXheight,transform shape]
\pic{orcidlogo};
\end{tikzpicture}%
}}{}}
\DeclareRobustCommand\orcidlinkX[1]{\href{https://orcid.org/##1}{%
\orcidlogo}}
\newcommand{\orcidlink}[1]{\orcidlinkX{##1}}
}
\newcommand{\IUCrOrcidlink}[1]{\orcidlink{#1}\,}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% nice email links for use in author block (based on orcidlink):
\definecolor{IUCr@emaillogocol}{HTML}{AAAAAA}
\tikzset{
IUCr@emaillogo/.pic={
\fill[IUCr@emaillogocol]
svg{M 0 11.755 v 66.489 h 90 V 11.755 H 0 z M 45 50.49 L 7.138 15.755 h 75.724 L 45 50.49 z M 33.099 45 L 4 71.695 V 18.304 L 33.099 45 z M 36.058 47.714 L 45 55.918 l 8.943 -8.204 l 28.919 26.53 H 7.138 L 36.058 47.714 z M 56.901 45 L 86 18.304 v 53.392 L 56.901 45 z};
}
}
\definecolor{IUCr@cemaillogocol}{HTML}{0000FF}
\tikzset{
IUCr@cemaillogo/.pic={
\fill[IUCr@cemaillogocol]
svg{M 0 11.755 v 66.489 h 90 V 11.755 H 0 z M 45 50.49 L 7.138 15.755 h 75.724 L 45 50.49 z M 33.099 45 L 4 71.695 V 18.304 L 33.099 45 z M 36.058 47.714 L 45 55.918 l 8.943 -8.204 l 28.919 26.53 H 7.138 L 36.058 47.714 z M 56.901 45 L 86 18.304 v 53.392 L 56.901 45 z};
}
}
\newcommand{\IUCr@OrigHeightRecipE}{0.01400625}
\newlength{\IUCr@curXheightE}
\newcommand{\IUCr@preventExternalizationE}{%
\ifcsname tikz@library@external@loaded\endcsname%
\tikzset{external/export next=false}\else\fi%
}
\newcommand{\IUCr@emaillogo}{%
\texorpdfstring{%
\setlength{\IUCr@curXheightE}{\fontcharht\font`X}%
\XeTeXLinkBox{%
\IUCr@preventExternalizationE%
\begin{tikzpicture}[yscale=-\IUCr@OrigHeightRecipE*\IUCr@curXheightE,
xscale=\IUCr@OrigHeightRecipE*\IUCr@curXheightE,transform shape]
\pic{IUCr@emaillogo};
\end{tikzpicture}%
}}{}}
\newcommand{\IUCr@cemaillogo}{%
\texorpdfstring{%
\setlength{\IUCr@curXheightE}{\fontcharht\font`X}%
\XeTeXLinkBox{%
\IUCr@preventExternalizationE%
\begin{tikzpicture}[yscale=-\IUCr@OrigHeightRecipE*\IUCr@curXheightE,
xscale=\IUCr@OrigHeightRecipE*\IUCr@curXheightE,transform shape]
\pic{IUCr@cemaillogo};
\end{tikzpicture}%
}}{}}
\DeclareRobustCommand\IUCr@emaillinkX[1]{\href{mailto:#1}{%
\IUCr@emaillogo}}
\DeclareRobustCommand\IUCr@cemaillinkX[1]{\href{mailto:#1}{%
\IUCr@cemaillogo}}
\newcommand{\IUCrEmaillink}[1]{\,\IUCr@emaillinkX{#1}\,}
\newcommand{\IUCrCemaillink}[1]{\,\IUCr@cemaillinkX{#1}\,}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% author footnotes for use in author block
% (alternative to using \thanks or \footnote)
\newcounter{IUCr@aufnc}
\setcounter{IUCr@aufnc}{0}
\newcommand{\IUCr@storeaufn}[1]{\stepcounter{IUCr@aufnc}\global\expandafter\def\csname aufnX\theIUCr@aufnc\endcsname{#1}}
\newcommand{\IUCr@printaufn}[1]{\footnotesize\IUCr@fnsymbol{#1}\csname aufnX#1\endcsname\\}
\newcommand{\IUCr@printauthornotes}{%
\ifnum\theIUCr@aufnc>0
\begin{center}
\vskip-22pt
\newcounter{tmpIUCr@aufnc}
\setcounter{tmpIUCr@aufnc}{0}
\loop
\stepcounter{tmpIUCr@aufnc}
%\thetmpIUCr@aufnc
\IUCr@printaufn{\thetmpIUCr@aufnc}%
\addtocounter{IUCr@aufnc}{-1}
\ifnum\theIUCr@aufnc>0
\repeat
\end{center}
\bigskip
\fi
}
\newcommand{\IUCrAufn}[2][0]{%
% store the note as a new macro for later output using \IUCr@printauthornotes
\if0#1%
\IUCr@storeaufn{#2}%
%$^\theIUCr@aufnc$%
\IUCr@fnsymbol{\theIUCr@aufnc}\,%
\else% allows multiple footnote markers pointing to same text
% if the number is greater than \theIUCr@aufnc count, store as new?
\ifnum#1>\theIUCr@aufnc%
\IUCr@storeaufn{#2}%
\fi%
\IUCr@fnsymbol{\theIUCr@aufnc}\,%
\fi%
}
\newcommand{\IUCr@fnsymbol}[1]{%
\ifnum#1<6%
$^\IUCr@fnsymbolsingle{#1}$%
\else%
\newcount\@lrepeat
\@lrepeat=#1
\divide\@lrepeat by 5
%\the\@lrepeat
%modulo gives symbol number:
\newcount\@modsym
\@modsym=#1
\divide\@modsym by 5
\multiply\@modsym by 5
\multiply\@modsym by -1
\advance\@modsym by #1\relax
%\the\@modsym
$^{%
\IUCr@fnsymbolsingle{\@modsym}%
\loop
\IUCr@fnsymbolsingle{\@modsym}%
\advance\@lrepeat by -1
\ifnum\@lrepeat>0
\repeat
}$%
\fi%
}
\newcommand{\IUCr@fnsymbolsingle}[1]{%
\ensuremath{%
\ifcase#1% 0
\or % 1
\dagger
\or % 2
\ddagger
\or % 3
\mathsection
\or % 4
\mathparagraph
\or \|
\else % >= 6
#1
\fi
}%
}
% print author notes after maketitle
\let\IUCr@maketitle=\maketitle
\def\maketitle{%
\IUCr@maketitle
\IUCr@printauthornotes
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% commands and formatting tweaks:
\let\origtitle\title
\renewcommand{\title}[1]{\origtitle{\textbf{#1}}}
\renewenvironment{abstract}
{%\small
\begin{center}
\bfseries \abstractname\vspace{-.5em}\vspace{0pt}
\end{center}
\list{}{
\setlength{\leftmargin}{1cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax}
{\endlist\bigskip}
\newenvironment{synopsis}%
{%\small
\begin{center}
\bfseries Synopsis\vspace{-.5em}\vspace{0pt}
\end{center}
\list{}{
\setlength{\leftmargin}{1cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax}
{\endlist\bigskip}
\newcommand{\keywords}[1]{
\begin{center}
\small
\list{}{
\setlength{\leftmargin}{1cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax\textbf{Keywords:} #1\endlist\end{center}\bigskip}
\let\origaffil\affil
\def\affil#1#{\origaffilA{#1}}
\def\origaffilA#1#2{\origaffil#1{\footnotesize #2}}
\newenvironment{acknowledgements}%
{%\small
\bigskip
%\begin{center}
{\bfseries\Large Acknowledgements}\vspace{-.5em}\vspace{0pt}
%\end{center}
\list{}{
\setlength{\leftmargin}{0cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax}
{\endlist\medskip}
\newenvironment{funding}%
{%\small
\medskip
%\begin{center}
{\bfseries\Large Funding}\vspace{-.5em}\vspace{0pt}
%\end{center}
\list{}{
\setlength{\leftmargin}{0cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax}
{\endlist\medskip}
\newcommand{\ConflictsOfInterest}[1]{
\begin{center}
\small
\list{}{
\setlength{\leftmargin}{0cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax\textbf{Conflicts of interest:} #1\endlist\end{center}\medskip}
\newcommand{\DataAvailability}[1]{
\begin{center}
\small
\list{}{
\setlength{\leftmargin}{0cm}%
\setlength{\rightmargin}{\leftmargin}%
}%
\item\relax\textbf{Data availability:} #1\endlist\end{center}\medskip}