From d66ed734a09bdcce47a9a744d84c7b963d128657 Mon Sep 17 00:00:00 2001 From: Thomas Vuillaume Date: Wed, 28 Jan 2026 13:42:19 +0100 Subject: [PATCH 1/5] use paper.tex from publication --- paper/model_to_latex.py | 47 ++++++--- paper/paper.tex | 226 ++++++++++++++++++++++++++++++++++++++-- pixi.toml | 14 ++- 3 files changed, 257 insertions(+), 30 deletions(-) diff --git a/paper/model_to_latex.py b/paper/model_to_latex.py index 7a9250a..9ac7f42 100644 --- a/paper/model_to_latex.py +++ b/paper/model_to_latex.py @@ -11,33 +11,52 @@ def write_line(f, s="", indent=0): f.write(f"{indent}{s}\n") -def write_model(f, model): +def write_all_models(f, models_list): write_line(f, r"\begin{table}") - caption = f"Best-fit parameters of the {model['name']} model." write_line(f, r"\centering") - write_line(f, rf"\caption{{{caption}}}") + write_line(f, r"\caption{Best-fit parameters for all models.}") write_line(f, r"\vspace{0.5\baselineskip}") - write_line(f, r"\begin{tblr}{") - write_line(f, "colspec = {l r},", indent=2) - write_line(f, "}") + + # Calculate number of columns: Model name + parameters for each model + num_models = len(models_list) + col_spec = "l" + " r" * num_models + write_line(f, rf"\begin{{tabular}}{{@{{\extracolsep\fill}} {col_spec} @{{\extracolsep\fill}}}}") write_line(f, r"\toprule", indent=2) - write_line(f, r"Name & Value \\", indent=2) + + # Header row with model names + header = "Parameter" + for model in models_list: + header += f" & {model['name']}" + header += r" \\" + write_line(f, header, indent=2) write_line(f, r"\midrule", indent=2) - for name, value in model["params"].items(): - name = escape_latex(name) - write_line(f, rf"{name} & {value:.4g} \\", indent=2) + # Collect all parameter names across all models + all_params = set() + for model in models_list: + all_params.update(model["params"].keys()) + all_params = sorted(all_params) + + # Write parameter rows + for param in all_params: + param_escaped = escape_latex(param) + row = param_escaped + for model in models_list: + if param in model["params"]: + row += f" & {model['params'][param]:.4g}" + else: + row += " & ---" + row += r" \\" + write_line(f, row, indent=2) write_line(f, r"\bottomrule", indent=2) - write_line(f, r"\end{tblr}") + write_line(f, r"\end{tabular}") write_line(f, r"\end{table}") write_line(f) - with Path("build/model.json").open() as f: models = json.load(f) with Path("build/model.tex").open("w") as f: - for model in models["Models"]: - write_model(f, model) + write_all_models(f, models["Models"]) diff --git a/paper/paper.tex b/paper/paper.tex index d3160af..2f6952f 100644 --- a/paper/paper.tex +++ b/paper/paper.tex @@ -1,24 +1,228 @@ -\documentclass{article} - -\usepackage[american]{babel} -\usepackage{graphicx} +\documentclass[numbers,webpdf]{ima-authoring-template} +\usepackage{booktabs} \usepackage{tabularray} -\UseTblrLibrary{booktabs} - -\title{Does Coffee enhance Productivity?} +\graphicspath{{Fig/}{../build/}} +\numberwithin{equation}{section} \begin{document} +\DOI{10.6084/m9.figshare.31049104} +\copyrightyear{2025} +\vol{00} +\pubyear{2025} +\access{Advance Access Publication Date: 15 October 2025} +\appnotes{Paper} +\firstpage{1} + +\title[Coffee and Developer Productivity]{Quantifying the Relationship Between Coffee Consumption and Developer Productivity: An Observational Study in a Software Engineering Laboratory} + +\author{Jean Dupont* +\address{\orgdiv{Laboratory for Human-Centred Computing}, +\orgname{Université de Montclair}, +\orgaddress{\street{12 Rue des Sciences}, \postcode{75000}, \country{Fictionland}}}} +\authormark{Dupont} + +\corresp[*]{Corresponding author: \href{mailto:jean.dupont@umontclair.edu}{jean.dupont@umontclair.edu}} + +\received{12}{06}{2025} +\revised{03}{09}{2025} +\accepted{21}{09}{2025} + +%------------------------------------------------ + +\abstract{ +We report an observational study conducted in a university software engineering laboratory investigating the relationship between daily coffee consumption and developer productivity. Over a 12-week project-based course, we collected $N=200{,}000$ time-stamped records combining self-reported coffee intake with automatically extracted development activity (Git commits) and issue-tracker events. Productivity is operationalised as the ratio between commits and defect-related events. Five parametric models were fitted to the observed data, including quadratic, saturating, logistic, and peaked functional forms. Model comparison using the coefficient of determination ($R^{2}$) shows that a logistic model provides the best numerical fit ($R^{2}=0.305$), although all models explain less than 35\% of the variance. The results reveal a robust unimodal relationship with a maximum around 2--3 cups per session and a clear regime of performance degradation beyond six cups. +} + +\keywords{coffee consumption; software productivity; observational study; nonlinear regression; empirical software engineering} + \maketitle +%------------------------------------------------ + +\section{Introduction} + +Coffee is a ubiquitous stimulant in software engineering environments and is frequently associated—often anecdotally—with improved concentration and productivity. Despite its cultural prominence, the empirical relationship between caffeine intake and measurable development output remains poorly characterised, particularly in naturalistic academic settings. + +Measuring developer productivity is itself a longstanding challenge in empirical software engineering, as productivity is multi-dimensional and influenced by task complexity, collaboration, experience, circadian rhythms, and organisational context. Consequently, observational studies of behavioural factors such as caffeine intake must be interpreted with caution. + +This paper presents a large-scale observational analysis conducted in a project-based software engineering laboratory. Students self-reported their coffee consumption during development sessions, while their development activity and defect-related events were instrumented automatically. The study serves both as an empirical investigation and as a pedagogical case study illustrating data collection, preprocessing, model fitting, and the interpretation of noisy behavioural data. + +%------------------------------------------------ + +\section{Data Collection and Preprocessing} + +\subsection{Laboratory Setting and Participants} + +The study was conducted during the Autumn software engineering project course at the Université de Montclair. The course involved 240 master's-level students working in teams on medium-scale software projects over a 12-week period. + +Students logged the number of cups of coffee consumed during each development session using a lightweight web form integrated into the course infrastructure. Each entry was time-stamped and associated with a pseudonymous identifier. + +\subsection{Automated Extraction of Development Events} + +Development activity was harvested automatically from institutional Git repositories and the associated issue-tracking system: + +\begin{itemize} +\item \textbf{Commits ($C$)}: the number of Git commits attributed to a participant within a given logging interval. +\item \textbf{Bugs ($B$)}: defect-related events extracted from issue labels and commit messages using a rule-based classifier. Labels such as \texttt{bug}, \texttt{fix}, and \texttt{hotfix} were aggregated. A random subset of 1,000 records was manually audited, yielding an estimated precision of 0.87. +\end{itemize} + +\subsection{Outcome Measure: Productivity} + +We define a pragmatic productivity metric as +\begin{equation} +P = \frac{C}{1 + B}, +\end{equation} +which trades off development activity against observed defect signals. + +The final dataset contains $N = 200{,}000$ matched records $(x, C, B)$, where $x$ is the integer number of cups of coffee reported for a given session, with $x \in [0,12]$. + +%------------------------------------------------ + +\section{Candidate Models and Fitting Procedure} + +We fitted five parametric models commonly used to represent dose--response and saturation effects: + +\begin{enumerate} +\item Quadratic: +\[ +f(x) = a_0 + a_1 x + a_2 x^2 +\] + +\item Saturating (Michaelis--Menten): +\[ +f(x) = y_0 + V_{\max}\frac{x}{K+x} +\] + +\item Logistic: +\[ +f(x) = y_0 + \frac{L}{1+\exp(-k(x-x_0))} +\] + +\item Peak: +\[ +f(x) = a x \exp(-x/b) +\] + +\item Peak2: +\[ +f(x) = a x^2 \exp(-x/b) +\] +\end{enumerate} + +Models were fitted using nonlinear least squares with bounded optimisation. Model performance was evaluated using the coefficient of determination + +\begin{equation} +R^2 = 1 - \frac{\sum_i (P_i - \hat{P}_i)^2}{\sum_i (P_i - \bar{P})^2}. +\end{equation} + +%------------------------------------------------ + +\section{Visualisation} + +To visualise both distributional structure and model trends, we constructed grouped violin plots of productivity by integer coffee intake and overlaid fitted curves evaluated on a dense grid $x \in [0,12]$. + +\begin{figure}[!t] +\centering +\includegraphics[width=0.95\linewidth]{build/plot.png} +\caption{Observed productivity distributions per coffee-intake level with fitted model curves overlaid.} +\label{fig:fit} +\end{figure} + +%------------------------------------------------ + \section{Results} -\includegraphics[width=\textwidth]{build/plot.pdf} +Figure~\ref{fig:fit} reveals three distinct regimes. + +For low intake (0--1 cups), productivity exhibits a broad distribution with a low median and long upper tails. A second regime emerges between 2 and 4 cups, where productivity reaches its maximum with a median around $P \approx 2.2$ and reduced variance. Beyond 5 cups, productivity decreases monotonically and converges towards low values, with median productivity falling below $P=1$ for $x \geq 6$. + +\begin{table}[!t] +\caption{Model performance measured by $R^2$.} +\label{tab:r2} +\begin{tabular*}{\columnwidth}{@{\extracolsep\fill}lc@{\extracolsep\fill}} +\toprule +Model & $R^2$ \\ +\midrule +Logistic & 0.305 \\ +Quadratic & 0.282 \\ +Saturating (Michaelis--Menten) & 0.278 \\ +Peak ($ax e^{-x/b}$) & 0.171 \\ +Peak2 ($ax^2 e^{-x/b}$) & 0.147 \\ +\botrule +\end{tabular*} +\end{table} + +Although the logistic model achieves the highest numerical fit, all models explain less than 35\% of the variance. + +\subsection{Best-fit parameters} + +The best-fit parameters for all five models are presented in the following tables: + +\input{build/model.tex} + +%------------------------------------------------ + +\section{Discussion} + +\subsection{Unimodal structure and optimal intake} + +The empirical distributions and fitted curves consistently reveal a unimodal relationship between coffee consumption and developer productivity. Productivity increases from zero to moderate intake, reaches a maximum between 2 and 3 cups per session, and then decreases steadily for larger intakes. + +This behaviour is well approximated by peaked functional forms of the type +\[ +P(x) \sim x^\alpha \exp(-x/b), +\] +which correspond to classical arousal--fatigue models in cognitive psychology. + +The observed optimum is stable across all fitted families: +\[ +x^* \approx 2.5 \pm 0.5. +\] + +\subsection{Model comparison} + +Although the logistic model achieves the highest numerical $R^2$, it is conceptually monotonic and does not explicitly encode a degradation regime. In contrast, peaked models directly capture both stimulation and fatigue effects, making them more consistent with the observed empirical structure. + +\subsection{Performance degradation} + +Beyond approximately six cups per session, productivity decreases monotonically and stabilises at a low level. The reduced variance observed in this regime suggests a saturation effect in which excessive caffeine intake systematically degrades performance across individuals. + +\subsection{Limitations} + +\begin{itemize} +\item Coffee intake is self-reported and subject to rounding and recall bias. +\item Defect detection relies on heuristic label extraction. +\item Confounding variables (sleep, stress, workload) remain uncontrolled. +\item Commit counts are a coarse proxy for semantic productivity. +\end{itemize} + +%------------------------------------------------ + +\section{Conclusion} + +Using a large-scale observational dataset collected in a software engineering laboratory, this study identifies a weak but robust unimodal relationship between coffee consumption and developer productivity. Productivity peaks at approximately 2--3 cups per session and decreases steadily for higher intake, with a clear regime of performance degradation beyond six cups. + +While logistic regression provides the best numerical fit, peaked models better capture the underlying physiological structure of the phenomenon. The primary contribution of this work is pedagogical, providing a realistic case study for empirical modelling and behavioural data analysis. + +%------------------------------------------------ + +\section*{Funding} + +The OSCARS project has received funding from the European Commission’s Horizon Europe Research and Innovation programme under grant agreement No. 101129751. This project has received funding from the European Union’s Horizon Europe Programme under GA 101129744 — EVERSE — HORIZON-INFRA-2023-EOSC-01-02. + +\section*{Disclaimer} + +This article is a fictional work created for educational purposes. +The study, data, results, and conclusions presented in this paper are entirely synthetic. + +The manuscript was generated with the assistance of ChatGPT (OpenAI) as part of a pedagogical exercise for the S3 School and does not represent real research, real experiments, or real participants. + +This document is intended solely for training, illustration, and teaching purposes. -\includegraphics[width=\textwidth]{build/comparison.pdf} +More information about the S3 School can be found at: +\url{https://indico.in2p3.fr/event/36319/} -\section{Appendix} -\input{./build/model.tex} \end{document} diff --git a/pixi.toml b/pixi.toml index 977ba24..c552401 100644 --- a/pixi.toml +++ b/pixi.toml @@ -111,7 +111,6 @@ build-package = "python -m build" [feature.paper.tasks] outdir = { cmd = ["mkdir", "-p", "build"], outputs = ["build"] } -model-tex = { cmd = ["python", "paper/model_to_latex.py"], inputs = ["build/model.json", "model_to_latex.py"], depends-on = ["analyze"], outputs = ["build/model.tex"]} [feature.paper.tasks.analyze] cmd = ["pkoffee", "analyze", "-d", "analysis/coffee_productivity.csv", "-o", "build/model.json"] @@ -119,16 +118,22 @@ inputs = ["analysis/coffee_productivity.csv"] depends-on = ["outdir"] outputs = ["build/model.json"] +[feature.paper.tasks.model-tex] +cmd = ["python", "paper/model_to_latex.py"] +inputs = ["build/model.json", "paper/model_to_latex.py"] +depends-on = ["analyze"] +outputs = ["build/model.tex"] + [feature.paper.tasks.plots] cmd = [ "pkoffee", "plot", "-d", "analysis/coffee_productivity.csv", "-m", "build/model.json", - "-o", "build/plot.pdf", - "--comparison", "build/comparison.pdf", + "-o", "build/plot.png", + "--comparison", "build/comparison.png", ] inputs = ["analysis/coffee_productivity.csv", "build/model.json"] -outputs = ["build/plot.pdf", "build/comparison.pdf"] +outputs = ["build/plot.png", "build/comparison.png"] depends-on = ["analyze"] [feature.paper.tasks.paper] @@ -140,7 +145,6 @@ env = {TEXINPUTS = "paper:", BIBINPUTS="paper:"} prod = { features = ["py313", "paper"], solve-group = "prod" } test = { features = ["test", "py313"], solve-group = "prod" } # use default for the dev environment so tasks are resolved in this environment (avoids having to specify env) -# no need to include doc: pixi will figure the environment to use from the task if it is unique default = { features = ["dev", "test", "py313"], solve-group = "prod" } build = { solve-group = "prod" } From 00969df3bfcbfa1886c771dacbc749e544eb30da Mon Sep 17 00:00:00 2001 From: Thomas Vuillaume Date: Wed, 28 Jan 2026 13:44:43 +0100 Subject: [PATCH 2/5] paper included in doc --- docs/conf.py | 3 +++ docs/index.rst | 1 + pixi.toml | 6 +++--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 40a26a2..33bd9cc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -44,6 +44,9 @@ html_theme = "sphinx_rtd_theme" html_static_path = ["_static"] +# Copy additional files (paper PDF) to the build directory +html_extra_path = ["../build/paper.pdf"] + # nbsphinx configuration - execute notebooks during documentation build nbsphinx_execute = "always" nbsphinx_kernel_name = "python3" diff --git a/docs/index.rst b/docs/index.rst index a62eb1d..09ff13e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,4 +8,5 @@ readme analysis + paper modules \ No newline at end of file diff --git a/pixi.toml b/pixi.toml index c552401..62df900 100644 --- a/pixi.toml +++ b/pixi.toml @@ -103,7 +103,7 @@ ipykernel = ">=6.0.0,<7" sphinx-rtd-theme = ">=3.1.0, <4" [feature.sphinx-doc.tasks] -sphinx-html = { cmd = "sphinx-build -b html docs build_docs", cwd = "." } +sphinx-html = { cmd = "sphinx-build -b html docs build_docs", cwd = ".", depends-on = ["paper"] } sphinx-clean = "rm -rf build_docs" [tasks] @@ -156,8 +156,8 @@ testpy314 = { features = ["test", "py314"] } prod312 = { features = ["py312"], solve-group = "prod312" } testpy312 = {features = ["test", "py312"] } -# Doc environment only contains documentation tools, not the package dependencies -sphinx-doc = { features = ["sphinx-doc", "py313"], solve-group = "prod" } +# Doc environment includes both documentation tools and paper feature +sphinx-doc = { features = ["sphinx-doc", "paper", "py313"], solve-group = "prod" } [pypi-dependencies] build = ">=1.4.0, <2" From a68b769179f9f140b1c012d978e872efb80753bd Mon Sep 17 00:00:00 2001 From: Thomas Vuillaume Date: Wed, 28 Jan 2026 13:45:15 +0100 Subject: [PATCH 3/5] online doc with paper --- .github/workflows/docs.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 906d1a6..c4d24bd 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -29,6 +29,12 @@ jobs: with: pixi-version: v0.63.1 + - name: Install texlive + run: | + pixi run pip install install-texlive + pixi run install_texlive -p $HOME/.local/texlive -t 2024 --collections="-a" --package-file=paper/tex-packages.txt --update + echo "$HOME/.local/texlive/2024/bin/x86_64-linux" >> $GITHUB_PATH + - name: Build documentation with Sphinx run: pixi run -e sphinx-doc sphinx-html From 28497a91dc66bae5ab64cdb18ea210c6a5b71f8e Mon Sep 17 00:00:00 2001 From: Thomas Vuillaume Date: Wed, 28 Jan 2026 13:50:42 +0100 Subject: [PATCH 4/5] missing files to compile paper and doc --- docs/paper.rst | 21 + paper/ima-authoring-template.cls | 1647 ++++++++++++++++++++++++++++++ 2 files changed, 1668 insertions(+) create mode 100644 docs/paper.rst create mode 100644 paper/ima-authoring-template.cls diff --git a/docs/paper.rst b/docs/paper.rst new file mode 100644 index 0000000..581205e --- /dev/null +++ b/docs/paper.rst @@ -0,0 +1,21 @@ +Paper +===== + +The research paper describing the PKoffee project and its findings is available for download: + +* :download:`Download PDF <../build/paper.pdf>` + +Abstract +-------- + +Coffee consumption is often associated with productivity gains in software +engineering, as productivity is multi-dimensional and influenced by task complexity, +individual differences, and environmental factors. This study investigates the +relationship between coffee consumption and developer productivity through a controlled +observational study conducted over six months in a software engineering laboratory +with 40 participants. + +Developer participants self-reported coffee consumption data throughout their +development sessions, while their development activity and defect-related events were +automatically logged via instrumented IDEs. Results indicate a complex, nonlinear +relationship between coffee intake and productivity metrics. diff --git a/paper/ima-authoring-template.cls b/paper/ima-authoring-template.cls new file mode 100644 index 0000000..1cddb43 --- /dev/null +++ b/paper/ima-authoring-template.cls @@ -0,0 +1,1647 @@ +%% +%% Copyright 2024 OXFORD UNIVERSITY PRESS +%% +%% This file is part of the 'ima-authoring-template Bundle'. +%% --------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'ima-authoring-template Bundle' is +%% given in the file `manifest.txt'. +%% +%% Template article for OXFORD UNIVERSITY PRESS's document class `ima-authoring-template' +%% with bibliographic references +%% + +\newcommand\classname{ima-authoring-template} +\newcommand\lastmodifieddate{2024/05/16} +\newcommand\versionnumber{1.01} + +\NeedsTeXFormat{LaTeX2e}[2001/06/01] +\ProvidesClass{\classname}[\lastmodifieddate\space\versionnumber] + +% Are we printing crop marks? +\newif\if@cropmarkson \@cropmarksontrue +% +\newif\if@imaiai\global\@imaiaifalse +\newif\if@imaman\global\@imamanfalse +\newif\if@imamat\global\@imamatfalse +\newif\if@imamci\global\@imamcifalse +\newif\if@imammb\global\@imammbfalse +\newif\if@imanum\global\@imanumfalse +\newif\if@imatrm\global\@imatrmfalse + +\newif\if@unnumsec\global\@unnumsecfalse +\newif\if@final\global\@finalfalse +\newif\if@weblink\@weblinkfalse +\newif\if@proof\global\@prooffalse% + +\if@compatibility\else +\DeclareOption{namedate}{\PassOptionsToPackage{authoryear,round}{natbib}} +\DeclareOption{numbers}{\PassOptionsToPackage{numbers,sort}{natbib}} +\DeclareOption{draft}{\PassOptionsToPackage{draft}{graphicx}} +\DeclareOption{b4paper}{\PassOptionsToPackage{b4}{crop}} +\DeclareOption{centre}{\PassOptionsToPackage{center}{crop}} +\DeclareOption{crop}{\PassOptionsToPackage{cam}{crop}\global\@cropmarksontrue} +\DeclareOption{nocrop}{\PassOptionsToPackage{off}{crop}\global\@cropmarksonfalse} +\DeclareOption{info}{\PassOptionsToPackage{info}{crop}} +\DeclareOption{noinfo}{\PassOptionsToPackage{noinfo}{crop}} +\DeclareOption{final}{\global\@finaltrue} +\DeclareOption{unnumsec}{\global\@unnumsectrue} +% +\DeclareOption{webpdf}{\@weblinktrue} +% +\DeclareOption{imaiai}{\global\@imaiaitrue} +\DeclareOption{imaman}{\global\@imamantrue} +\DeclareOption{imamat}{\global\@imamattrue} +\DeclareOption{imamci}{\global\@imamcitrue} +\DeclareOption{imammb}{\global\@imammbtrue} +\DeclareOption{imanum}{\global\@imanumtrue} +\DeclareOption{imatrm}{\global\@imatrmtrue} + +\def\newsymbols#1{ +\let\symb=#1 +} + +\DeclareOption{mathptmx}{\AtEndOfClass{\RequirePackage[subscriptcorrection,nofontinfo]{mathptmx}} +\DeclareMathSymbol\Gamma {\mathord}{letters}{48} +\ifx Y\symb +\DeclareMathSymbol\Delta {\mathord}{letters}{49} +\fi +\DeclareMathSymbol\Theta {\mathord}{letters}{50} +\DeclareMathSymbol\Lambda {\mathord}{letters}{51} +\DeclareMathSymbol\Xi {\mathord}{letters}{52} +\DeclareMathSymbol\Pi {\mathord}{letters}{53} +\DeclareMathSymbol\Sigma {\mathord}{letters}{54} +\DeclareMathSymbol\Upsilon{\mathord}{letters}{55} +\DeclareMathSymbol\Phi {\mathord}{letters}{56} +\DeclareMathSymbol\Psi {\mathord}{letters}{57} +\DeclareMathSymbol\Omega {\mathord}{letters}{127} +} +\DeclareOption{mathptmx}{% + \g@addto@macro{\@greeksetup}{% + \DeclareMathSymbol\varGamma {\mathord}{letters}{0} + \ifx Y\symb + \DeclareMathSymbol\varDelta {\mathord}{letters}{1} + \fi + \DeclareMathSymbol\varTheta {\mathord}{letters}{2} + \DeclareMathSymbol\varLambda {\mathord}{letters}{3} + \DeclareMathSymbol\varXi {\mathord}{letters}{4} + \DeclareMathSymbol\varPi {\mathord}{letters}{5} + \DeclareMathSymbol\varSigma {\mathord}{letters}{6} + \DeclareMathSymbol\varUpsilon {\mathord}{letters}{7} + \DeclareMathSymbol\varPhi {\mathord}{letters}{8} + \DeclareMathSymbol\varPsi {\mathord}{letters}{9} + \DeclareMathSymbol\varOmega {\mathord}{letters}{10} + } +} +\DeclareOption{slantedgreek}{\def\@greeksetup{\AtBeginDocument{% +\renewcommand{\Gamma}{{\mit\varGamma}} +\ifx Y\symb +\renewcommand{\Delta}{{\mit\varDelta}} +\fi +\renewcommand{\Theta}{{\mit\varTheta}} +\renewcommand{\Lambda}{{\mit\varLambda}} +\renewcommand{\Xi}{{\mit\varXi}} +\renewcommand{\Pi}{{\mit\varPi}} +\renewcommand{\Sigma}{{\mit\varSigma}} +\renewcommand{\Upsilon}{{\mit\varUpsilon}} +\renewcommand{\Phi}{{\mit\varPhi}} +\renewcommand{\Psi}{{\mit\varPsi}} +\renewcommand{\Omega}{{\mit\varOmega}} +}}} +\newsymbols{Y} + +\DeclareOption{uprightgreek}{\def\@greeksetup{}} + +\fi +\ExecuteOptions{b4paper,centre,info,slantedgreek,times,mathptmx}% +\ProcessOptions + +\setlength{\paperheight}{245.96truemm} +\setlength{\paperwidth}{188.88truemm} + +% Load all necessary packages +\RequirePackage{crop} +\RequirePackage{graphicx} +\RequirePackage{caption} +\RequirePackage{amsmath} +\RequirePackage{array} +\RequirePackage{color} +\RequirePackage{xcolor} +\RequirePackage{amssymb} +\RequirePackage{flushend} +\RequirePackage{stfloats} +\RequirePackage[figuresright]{rotating} +\RequirePackage{chngpage} +\RequirePackage{totcount} +\RequirePackage{fix-cm} +\RequirePackage{times} +\RequirePackage{mathptmx} + +%\RequirePackage[LY1,mtbold]{mathtime}2015 +\def\sffamilyfont{\sffamily} +\def\sffamilyfontitalic{\sffamily\itshape\selectfont} +\def\sffamilyfontbold{\sffamily\bfseries\selectfont} +\def\sffamilyfontbolditalic{\sffamily\bfseries\itshape\selectfont} +\def\sffamilyfontcn{\sffamily\fontseries{m}\fontshape{n}\selectfont} +\def\sffamilyfontcnitalic{\sffamily\fontseries{m}\fontshape{it}\selectfont} +\def\sffamilyfontcnbold{\sffamily\bfseries\selectfont} +\def\sffamilyfontcnbolditalic{\sffamily\fontseries{b}\fontshape{it}\selectfont} + +% Not sure if needed. +\newcommand\@ptsize{0} + +% Set twoside printing +\@twosidetrue + +% Marginal notes are on the outside edge +\@mparswitchfalse + +\reversemarginpar + + \renewcommand\normalsize{% + \@setfontsize\normalsize{10bp}{12pt}% + \abovedisplayskip 11\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\let\@bls\baselineskip + +\newcommand\small{% + \@setfontsize\small{7}{10}% + \abovedisplayskip 10\p@ minus 3\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip \z@ plus 2\p@ + \belowdisplayshortskip 4\p@ plus 2\p@ minus2\p@ + \def\@listi{\topsep 4.5\p@ plus 2\p@ minus 1\p@ + \itemsep \parsep + \topsep 4\p@ plus 2\p@ minus 2\p@}} + +\newcommand\footnotesize{% + \@setfontsize\footnotesize{8}{10}% + \abovedisplayskip 6\p@ minus 3\p@ + \belowdisplayskip\abovedisplayskip + \abovedisplayshortskip \z@ plus 3\p@ + \belowdisplayshortskip 6\p@ plus 3\p@ minus 3\p@ + \def\@listi{\topsep 3\p@ plus 1\p@ minus 1\p@ + \parsep 2\p@ plus 1\p@ minus 1\p@\itemsep \parsep}} + +\def\scriptsize{\@setfontsize\scriptsize{6.5pt}{9.5pt}} +\def\tiny{\@setfontsize\tiny{5pt}{7pt}} +\def\large{\@setfontsize\large{11.5pt}{12pt}} +\def\Large{\@setfontsize\Large{14pt}{16}} +\def\LARGE{\@setfontsize\LARGE{15pt}{17pt}} +\def\huge{\@setfontsize\huge{22pt}{22pt}} +\def\Huge{\@setfontsize\Huge{30pt}{30pt}} + +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamilyfont}{\mathsf} +\DeclareOldFontCommand{\sfit}{\normalfont\sffamily\itshape}{\mathsf} +\DeclareOldFontCommand{\sfb}{\normalfont\sffamilyfontbold}{\mathsf} +\DeclareOldFontCommand{\sfbi}{\normalfont\sffamily\bfseries\itshape}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} + +% Crop Here +\def\oddsideskip{48pt}% +\def\evensideskip{56pt}% + +\newdimen\croppaperwidth +\newdimen\croppaperheight +\setlength{\croppaperwidth}{\paperwidth} +\setlength{\croppaperheight}{\paperheight} +\if@weblink%% +\else% + \addtolength{\croppaperwidth}{28truemm}% + \addtolength{\croppaperheight}{28truemm}% +\fi% + \CROP@size{\croppaperwidth}{\croppaperheight}% +% +\if@weblink%% +\else +\renewcommand*\CROP@@ulc{% + \begin{picture}(0,0) + \unitlength\p@\thinlines + \put(-40,0){\line(1,0){30.65}} + \put(0,42){\line(0,-1){30.65}} + \end{picture}% +} +\renewcommand*\CROP@@urc{% + \begin{picture}(0,0) + \unitlength\p@\thinlines + \put(41,0){\line(-1,0){30.65}} + \put(0,42){\line(0,-1){30.65}} + \end{picture}% +} +\renewcommand*\CROP@@llc{% + \begin{picture}(0,0) + \unitlength\p@\thinlines + \put(-40,0){\line(1,0){30.65}} + \put(0,-40){\line(0,1){30.65}} + \end{picture}% +} +\renewcommand*\CROP@@lrc{% + \begin{picture}(0,0) + \unitlength\p@\thinlines + \put(41,0){\line(-1,0){30.65}} + \put(0,-40){\line(0,1){30.65}} + \end{picture}% +} +% +\renewcommand*\CROP@@info{{% + \global\advance\CROP@index\@ne + \def\x{\discretionary{}{}{\hbox{\kern.5em--\kern.5em}}}% + \advance\paperwidth-20\p@ + \dimen@10pt + \ifx\CROP@pagecolor\@empty + \else + \advance\dimen@\CROP@overlap + \fi + \hb@xt@\z@{% + \hss + \vbox to\z@{% + %\centering + \hsize\paperwidth + \vss + \normalfont + \normalsize + \expandafter\csname\CROP@font\endcsname{\ifodd\c@page\hfill\else\hspace*{\evensideskip}\fi\if@proof\noindent\fboxsep1\p@\fbox{\fboxsep2\p@\fbox{\@oupdraftcopy}}\else\fi\ifodd\c@page\hspace*{\oddsideskip}\else\fi}%\noindent\fbox{\fboxsep2\p@\fbox{\@oupdraftcopy}} + \vskip\dimen@ + }% + \hss + }% +}} +% +\crop[cam]% +\fi% +% +\newdimen\Croppdfwidth +\newdimen\Croppdfheight +\newdimen\Trimpdfwidth +\newdimen\Trimpdfheight +\Croppdfwidth=\croppaperwidth +\Croppdfheight=\croppaperheight +\advance\Croppdfwidth by -0.71mm +\advance\Croppdfheight by -0.92mm +\Trimpdfwidth=\paperwidth +\Trimpdfheight=\paperheight +\advance\Trimpdfwidth by -0.59mm +\advance\Trimpdfheight by -0.88mm +% +\newdimen\CP@toff@wd +\newdimen\CP@toff@ht +% +\newdimen\CP@boff@wd +\newdimen\CP@boff@ht +% +\newdimen\CP@crop@wd +\newdimen\CP@crop@ht +% +\newdimen\CP@bled@wd +\newdimen\CP@bled@ht +% +\newdimen\CP@trim@wd +\newdimen\CP@trim@ht +% +\def\str@yes{yes} +\def\SetCrop#1#2{% + \gdef\IsCropSet{yes} + \global\CP@crop@wd=#1\relax + \global\CP@crop@ht=#2\relax} +\def\SetTrim#1#2{% + \gdef\IsTrimSet{yes} + \global\CP@trim@wd=#1\relax + \global\CP@trim@ht=#2\relax} +\def\SetBleed#1#2{% + \gdef\IsBleedSet{yes} + \global\CP@bled@wd=#1\relax + \global\CP@bled@ht=#2\relax} +% +\everyjob\expandafter{% + \the\everyjob + \typeout{% + \filename\space <\filedate>^^J + Version: v\fileversion^^J + LaTeX macros for setting Page Box parameters + }% + \IfFileExists{\filename.cfg}{% + \begingroup\@@input\@filef@und\endgroup + }{% + \typeout{No File: \filename.cfg}% + }% + \IfFileExists{\jobname.cfg}{% + \begingroup\@@input\@filef@und\endgroup + }{% + \typeout{No File: \jobname.cfg}% + }% +} +% +\if@weblink%%% + \SetCrop{\Trimpdfwidth}{\Trimpdfheight}% + \SetTrim{\Trimpdfwidth}{\Trimpdfheight}% + \SetBleed{0mm}{0mm}% +\else% + \SetCrop{\Croppdfwidth}{\Croppdfheight}% + \SetTrim{\Trimpdfwidth}{\Trimpdfheight}% + \SetBleed{3mm}{3mm}% +\fi +% +% +\def\do@pagebox@calc{% + \CP@toff@wd=\CP@crop@wd + \advance\CP@toff@wd by -\CP@trim@wd + \divide\CP@toff@wd by \tw@ +% + \CP@toff@ht=\CP@crop@ht + \advance\CP@toff@ht by -\CP@trim@ht + \divide\CP@toff@ht by \tw@ +% + \advance\CP@trim@wd by \CP@toff@wd + \advance\CP@trim@ht by \CP@toff@ht +% + \CP@boff@wd=\CP@toff@wd + \advance\CP@boff@wd by -\CP@bled@wd +% + \CP@boff@ht=\CP@toff@ht + \advance\CP@boff@ht by -\CP@bled@ht +% + \advance\CP@bled@wd by \CP@trim@wd + \advance\CP@bled@ht by \CP@trim@ht +} +% +\def\pdf@page@parameters{% + \ifx\IsCropSet\str@yes + [{ThisPage} << /CropBox [0 0 \strip@pt\CP@crop@wd\space \strip@pt\CP@crop@ht] >> /PUT pdfmark + [{ThisPage} << /MediaBox[0 0 \strip@pt\CP@crop@wd\space \strip@pt\CP@crop@ht] >> /PUT pdfmark + \fi + \ifx\IsTrimSet\str@yes + [{ThisPage} << /TrimBox [\strip@pt\CP@toff@wd\space \strip@pt\CP@toff@ht\space \strip@pt\CP@trim@wd\space \strip@pt\CP@trim@ht] >> /PUT pdfmark + \fi + \ifx\IsBleedSet\str@yes + [{ThisPage} << /BleedBox[\strip@pt\CP@boff@wd\space \strip@pt\CP@boff@ht\space \strip@pt\CP@bled@wd\space \strip@pt\CP@bled@ht] >> /PUT pdfmark + \fi +} +% +\def\shipout@PageObjects{% + \special{ps: \pdf@page@parameters}% +} +%% +\AtBeginDocument{% + \do@pagebox@calc + \let\org@begindvi\@begindvi + \def\@begindvi{% + \shipout@PageObjects + \org@begindvi + \global\let\@begindvi\rest@dvi@pages + }% +} +\let\rest@dvi@pages\shipout@PageObjects +% Crop End here + +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand\baselinestretch{} +\setlength\parskip{0\p@} +\setlength\parindent{15pt} +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\clubpenalty 10000 +\widowpenalty 10000 +\displaywidowpenalty 100 +\predisplaypenalty 10000 +\postdisplaypenalty 2500 +\interlinepenalty 0 +\brokenpenalty 10000 +\lefthyphenmin=3 +\righthyphenmin=3 + +\setlength\headheight{16\p@} +\setlength\topmargin{2.44pc} +\addtolength\topmargin{-1in} +\addtolength\topmargin{14.7pt} +\setlength\topskip{10\p@} +\setlength\headsep{17.6\p@} +\setlength\footskip{0\p@} +\setlength\maxdepth{.5\topskip} +\setlength\textwidth{145mm} +\setlength\textheight{45\baselineskip} +\setlength\marginparsep{3\p@} +\setlength\marginparpush{3\p@} +\setlength\marginparwidth{35\p@} +\setlength\oddsidemargin{5.72pc} +\addtolength\oddsidemargin{-1in} +\setlength\@tempdima{\paperwidth} +\addtolength\@tempdima{-\textwidth} +\addtolength\@tempdima{-6.35pc} +\setlength\evensidemargin{\@tempdima} +\addtolength\evensidemargin{-.89in} +\setlength\columnsep{14.5pt} +\setlength\columnseprule{0\p@} + +\addtolength\textheight{\topskip} +\setlength\footnotesep{7\p@} +\setlength{\skip\footins}{12\p@ \@plus 6\p@ \@minus 1\p@} +\setcounter{totalnumber}{10} +\setcounter{topnumber}{5} +\setcounter{bottomnumber}{5} +\renewcommand\topfraction{.9} +\renewcommand\bottomfraction{.9} +\renewcommand\textfraction{.06} +\renewcommand\floatpagefraction{.94} +\renewcommand\dbltopfraction{.9} +\renewcommand\dblfloatpagefraction{.9} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {18\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} + +\setlength\@fptop{0\p@} +\setlength\@fpsep{12\p@ \@plus 1fil} +\setlength\@fpbot{0\p@} + +\setlength\@dblfptop{0\p@} +\setlength\@dblfpsep{12\p@ \@plus 1fil} +\setlength\@dblfpbot{0\p@} + +\DeclareMathSizes{5} {5} {5} {5} +\DeclareMathSizes{6} {6} {5} {5} +\DeclareMathSizes{7} {7} {5} {5} +\DeclareMathSizes{8} {8} {6} {5} +\DeclareMathSizes{9} {9} {6.5} {5} +\DeclareMathSizes{10} {10} {7.5} {5} +\DeclareMathSizes{12} {12} {9} {7} + +\def\ps@headings + {% + \let\@oddfoot\@empty% + \let\@evenfoot\@empty% + \def\@evenhead{\vbox{\hbox to \textwidth{\fontsize{8bp}{10}\selectfont + {\fontsize{10bp}{10}\selectfont\thepage}\hfil\MakeUppercase{\strut\leftmark}\hfil}}}% + \def\@oddhead{\vbox{\hbox to \textwidth{\hfil\fontsize{8bp}{10}\selectfont + {\MakeUppercase{\strut\rightmark}}\hfil{\fontsize{10bp}{10}\selectfont\thepage}}% + }}% + \def\titlemark##1{\markboth{##1}{##1}}% + \def\authormark##1{\gdef\leftmark{##1}}% + } + +\def\@copyrightstatement{} +\def\copyrightstatement#1{\gdef\@copyrightstatement{#1}} + +\def\ps@opening + {% + \def\@oddfoot{{% + \hbox to \textwidth{\parbox{\textwidth}{\hspace*{1pt}\vspace*{20pt}\newline% + \fontsize{7bp}{8}\fontshape{n}\selectfont\raggedleft \copyright\space The Author(s) \@copyrightyear. \@copyrightstatement% + }}% + }}% + \def\@evenfoot{{% + \hbox to \textwidth{\parbox{\textwidth}{\hspace*{1pt}\vspace*{20pt}\newline% + \fontsize{7bp}{8}\fontshape{n}\selectfont\raggedleft \copyright\space The Author(s) \@copyrightyear. \@copyrightstatement% + }}% + }}% + \let\@evenhead\relax + \let\@oddhead\relax} + +% Page range +\newif\iflastpagegiven \lastpagegivenfalse +\newcommand\firstpage[1]{% + \gdef\@firstpage{#1}% + \ifnum\@firstpage>\c@page + \setcounter{page}{#1}% + \ClassWarning{BIO}{Increasing pagenumber to \@firstpage}% + \else \ifnum\@firstpage<\c@page + \ClassWarning{BIO}{Firstpage lower than pagenumber}\fi\fi + \xdef\@firstpage{\the\c@page}% + } +\def\@firstpage{1} +\def\pagenumbering#1{% + \global\c@page \@ne + \gdef\thepage{\csname @#1\endcsname \c@page}% + \gdef\thefirstpage{% + \csname @#1\endcsname \@firstpage}% + \gdef\thelastpage{% + \csname @#1\endcsname \@lastpage}% + } + +\newcommand\lastpage[1]{\xdef\@lastpage{#1}% + \global\lastpagegiventrue} +\def\@lastpage{0} +\def\setlastpage{\iflastpagegiven\else + \edef\@tempa{@lastpage@}% + \expandafter + \ifx \csname \@tempa \endcsname \relax + \gdef\@lastpage{0}% + \else + \xdef\@lastpage{\@nameuse{@lastpage@}}% + \fi + \fi } +\def\writelastpage{% + \iflastpagegiven \else + \immediate\write\@auxout% + {\string\global\string\@namedef{@lastpage@}{\the\c@page}}% + \fi + } +\def\thepagerange{% + \ifnum\@lastpage =0 {\ \bf ???} \else + \ifnum\@lastpage = \@firstpage \ \thefirstpage\else + \thefirstpage--\thelastpage \fi\fi} + +\AtBeginDocument{\setlastpage + \pagenumbering{arabic}% + } +\AtEndDocument{% + \writelastpage + \if@final + \clearemptydoublepage + \else + \clearpage + \fi} + +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\newcounter{figure} +\newcounter{table} + +\newenvironment{tablenotes}{\fontsize{8bp}{10}\selectfont\list{}{\setlength{\labelsep}{0pt}% +\setlength{\labelwidth}{0pt}% +\setlength{\leftmargin}{0pt}% +\setlength{\rightmargin}{0pt}% +\setlength{\topsep}{-6pt}% +\setlength{\itemsep}{0pt}% +\setlength{\partopsep}{0pt}% +\setlength{\listparindent}{0em}% +\setlength{\parsep}{0pt}}% +\item\relax% +}{\endlist\addvspace{0pt}}% + +\newcommand\thepage{\arabic{page}} +\renewcommand\thesection{\arabic{section}} +\renewcommand\thesubsection{{\thesection.\arabic{subsection}}} +\renewcommand\thesubsubsection{{\thesubsection.\arabic{subsubsection}}} +\renewcommand\theparagraph{\thesubsubsection.\arabic{paragraph}} +\renewcommand\thesubparagraph{\theparagraph.\arabic{subparagraph}} +\renewcommand\theequation{\arabic{equation}} + +\newcommand\contentsname{Contents} +\newcommand\listfigurename{List of Figures} +\newcommand\listtablename{List of Tables} +\newcommand\partname{Part} +\newcommand\appendixname{Appendix} +\newcommand\abstractname{Abstract} +\newcommand\keywordsname{Keywords:} +\newcommand\refname{References} +\newcommand\bibname{References} +\newcommand\indexname{Index} +\newcommand\figurename{\textsc{Fig.}} +\newcommand\tablename{Table} + +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} + +\newif\if@mainmatter \@mainmattertrue + +\newcommand\frontmatter{% + \clearpage + \@mainmatterfalse + \pagenumbering{roman}} + +\newcommand\mainmatter{% + \clearpage + \@mainmattertrue + \pagenumbering{arabic}} + +\newcommand\backmatter{% + \clearpage + \@mainmatterfalse} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TITLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newlength{\dropfromtop} +\setlength{\dropfromtop}{\z@} + +\newif\if@appnotes +\newcommand{\application}{% + \global\@appnotestrue} + +\long\def\title{\@ifnextchar[{\short@title}{\@@title}} +\def\short@title[#1]{\titlemark{#1}\@@@title} +\def\@@title#1{\authormark{#1}\@@@title{#1}} +\long\def\@@@title#1{\gdef\@title{#1}} +\def\@subtitle{} +\long\def\subtitle#1{\gdef\@subtitle{#1}} +%\subtitle{Genome analysis} + +\newcounter{myauthcount} +\setcounter{myauthcount}{0} +\regtotcounter{myauthcount} + +\def\authorandsep{\ifnum\arabic{myauthcount@totc}=\arabic{myauthcount}\ifnum\arabic{myauthcount@totc}=1\else \textsc{and}\par\addvspace{6pt} \fi\else\fi} +\def\authorcommasep{\ifnum\arabic{myauthcount@totc}=\arabic{myauthcount}\else\ifnum\arabic{myauthcount@totc}=200\ifnum\arabic{myauthcount}<199,\else\fi\else\ifnum\arabic{myauthcount@totc}=199\ifnum\arabic{myauthcount}<198,\else\fi\else\ifnum\arabic{myauthcount@totc}=198\ifnum\arabic{myauthcount}<197,\else\fi\else\ifnum\arabic{myauthcount@totc}=197\ifnum\arabic{myauthcount}<196,\else\fi\else\ifnum\arabic{myauthcount@totc}=196\ifnum\arabic{myauthcount}<195,\else\fi\else\ifnum\arabic{myauthcount@totc}=195\ifnum\arabic{myauthcount}<194,\else\fi\else\ifnum\arabic{myauthcount@totc}=194\ifnum\arabic{myauthcount}<193,\else\fi\else\ifnum\arabic{myauthcount@totc}=193\ifnum\arabic{myauthcount}<192,\else\fi\else\ifnum\arabic{myauthcount@totc}=192\ifnum\arabic{myauthcount}<191,\else\fi\else\ifnum\arabic{myauthcount@totc}=191\ifnum\arabic{myauthcount}<190,\else\fi\else\ifnum\arabic{myauthcount@totc}=190\ifnum\arabic{myauthcount}<189,\else\fi\else\ifnum\arabic{myauthcount@totc}=189\ifnum\arabic{myauthcount}<188,\else\fi\else\ifnum\arabic{myauthcount@totc}=188\ifnum\arabic{myauthcount}<187,\else\fi\else\ifnum\arabic{myauthcount@totc}=187\ifnum\arabic{myauthcount}<186,\else\fi\else\ifnum\arabic{myauthcount@totc}=186\ifnum\arabic{myauthcount}<185,\else\fi\else\ifnum\arabic{myauthcount@totc}=185\ifnum\arabic{myauthcount}<184,\else\fi\else\ifnum\arabic{myauthcount@totc}=184\ifnum\arabic{myauthcount}<183,\else\fi\else\ifnum\arabic{myauthcount@totc}=183\ifnum\arabic{myauthcount}<182,\else\fi\else\ifnum\arabic{myauthcount@totc}=182\ifnum\arabic{myauthcount}<181,\else\fi\else\ifnum\arabic{myauthcount@totc}=181\ifnum\arabic{myauthcount}<180,\else\fi\else\ifnum\arabic{myauthcount@totc}=180\ifnum\arabic{myauthcount}<179,\else\fi\else\ifnum\arabic{myauthcount@totc}=179\ifnum\arabic{myauthcount}<178,\else\fi\else\ifnum\arabic{myauthcount@totc}=178\ifnum\arabic{myauthcount}<177,\else\fi\else\ifnum\arabic{myauthcount@totc}=177\ifnum\arabic{myauthcount}<176,\else\fi\else\ifnum\arabic{myauthcount@totc}=176\ifnum\arabic{myauthcount}<175,\else\fi\else\ifnum\arabic{myauthcount@totc}=175\ifnum\arabic{myauthcount}<174,\else\fi\else\ifnum\arabic{myauthcount@totc}=174\ifnum\arabic{myauthcount}<173,\else\fi\else\ifnum\arabic{myauthcount@totc}=173\ifnum\arabic{myauthcount}<172,\else\fi\else\ifnum\arabic{myauthcount@totc}=172\ifnum\arabic{myauthcount}<171,\else\fi\else\ifnum\arabic{myauthcount@totc}=171\ifnum\arabic{myauthcount}<170,\else\fi\else\ifnum\arabic{myauthcount@totc}=170\ifnum\arabic{myauthcount}<169,\else\fi\else\ifnum\arabic{myauthcount@totc}=169\ifnum\arabic{myauthcount}<168,\else\fi\else\ifnum\arabic{myauthcount@totc}=168\ifnum\arabic{myauthcount}<167,\else\fi\else\ifnum\arabic{myauthcount@totc}=167\ifnum\arabic{myauthcount}<166,\else\fi\else\ifnum\arabic{myauthcount@totc}=166\ifnum\arabic{myauthcount}<165,\else\fi\else\ifnum\arabic{myauthcount@totc}=165\ifnum\arabic{myauthcount}<164,\else\fi\else\ifnum\arabic{myauthcount@totc}=164\ifnum\arabic{myauthcount}<163,\else\fi\else\ifnum\arabic{myauthcount@totc}=163\ifnum\arabic{myauthcount}<162,\else\fi\else\ifnum\arabic{myauthcount@totc}=162\ifnum\arabic{myauthcount}<161,\else\fi\else\ifnum\arabic{myauthcount@totc}=161\ifnum\arabic{myauthcount}<160,\else\fi\else\ifnum\arabic{myauthcount@totc}=160\ifnum\arabic{myauthcount}<159,\else\fi\else\ifnum\arabic{myauthcount@totc}=159\ifnum\arabic{myauthcount}<158,\else\fi\else\ifnum\arabic{myauthcount@totc}=158\ifnum\arabic{myauthcount}<157,\else\fi\else\ifnum\arabic{myauthcount@totc}=157\ifnum\arabic{myauthcount}<156,\else\fi\else\ifnum\arabic{myauthcount@totc}=156\ifnum\arabic{myauthcount}<155,\else\fi\else\ifnum\arabic{myauthcount@totc}=155\ifnum\arabic{myauthcount}<154,\else\fi\else\ifnum\arabic{myauthcount@totc}=154\ifnum\arabic{myauthcount}<153,\else\fi\else\ifnum\arabic{myauthcount@totc}=153\ifnum\arabic{myauthcount}<152,\else\fi\else\ifnum\arabic{myauthcount@totc}=152\ifnum\arabic{myauthcount}<151,\else\fi\else\ifnum\arabic{myauthcount@totc}=151\ifnum\arabic{myauthcount}<150,\else\fi\else\ifnum\arabic{myauthcount@totc}=150\ifnum\arabic{myauthcount}<149,\else\fi\else\ifnum\arabic{myauthcount@totc}=149\ifnum\arabic{myauthcount}<148,\else\fi\else\ifnum\arabic{myauthcount@totc}=148\ifnum\arabic{myauthcount}<147,\else\fi\else\ifnum\arabic{myauthcount@totc}=147\ifnum\arabic{myauthcount}<146,\else\fi\else\ifnum\arabic{myauthcount@totc}=146\ifnum\arabic{myauthcount}<145,\else\fi\else\ifnum\arabic{myauthcount@totc}=145\ifnum\arabic{myauthcount}<144,\else\fi\else\ifnum\arabic{myauthcount@totc}=144\ifnum\arabic{myauthcount}<143,\else\fi\else\ifnum\arabic{myauthcount@totc}=143\ifnum\arabic{myauthcount}<142,\else\fi\else\ifnum\arabic{myauthcount@totc}=142\ifnum\arabic{myauthcount}<141,\else\fi\else\ifnum\arabic{myauthcount@totc}=141\ifnum\arabic{myauthcount}<140,\else\fi\else\ifnum\arabic{myauthcount@totc}=140\ifnum\arabic{myauthcount}<139,\else\fi\else\ifnum\arabic{myauthcount@totc}=139\ifnum\arabic{myauthcount}<138,\else\fi\else\ifnum\arabic{myauthcount@totc}=138\ifnum\arabic{myauthcount}<137,\else\fi\else\ifnum\arabic{myauthcount@totc}=137\ifnum\arabic{myauthcount}<136,\else\fi\else\ifnum\arabic{myauthcount@totc}=136\ifnum\arabic{myauthcount}<135,\else\fi\else\ifnum\arabic{myauthcount@totc}=135\ifnum\arabic{myauthcount}<134,\else\fi\else\ifnum\arabic{myauthcount@totc}=134\ifnum\arabic{myauthcount}<133,\else\fi\else\ifnum\arabic{myauthcount@totc}=133\ifnum\arabic{myauthcount}<132,\else\fi\else\ifnum\arabic{myauthcount@totc}=132\ifnum\arabic{myauthcount}<131,\else\fi\else\ifnum\arabic{myauthcount@totc}=131\ifnum\arabic{myauthcount}<130,\else\fi\else\ifnum\arabic{myauthcount@totc}=130\ifnum\arabic{myauthcount}<129,\else\fi\else\ifnum\arabic{myauthcount@totc}=129\ifnum\arabic{myauthcount}<128,\else\fi\else\ifnum\arabic{myauthcount@totc}=128\ifnum\arabic{myauthcount}<127,\else\fi\else\ifnum\arabic{myauthcount@totc}=127\ifnum\arabic{myauthcount}<126,\else\fi\else\ifnum\arabic{myauthcount@totc}=126\ifnum\arabic{myauthcount}<125,\else\fi\else\ifnum\arabic{myauthcount@totc}=125\ifnum\arabic{myauthcount}<124,\else\fi\else\ifnum\arabic{myauthcount@totc}=124\ifnum\arabic{myauthcount}<123,\else\fi\else\ifnum\arabic{myauthcount@totc}=123\ifnum\arabic{myauthcount}<122,\else\fi\else\ifnum\arabic{myauthcount@totc}=122\ifnum\arabic{myauthcount}<121,\else\fi\else\ifnum\arabic{myauthcount@totc}=121\ifnum\arabic{myauthcount}<120,\else\fi\else\ifnum\arabic{myauthcount@totc}=120\ifnum\arabic{myauthcount}<119,\else\fi\else\ifnum\arabic{myauthcount@totc}=119\ifnum\arabic{myauthcount}<118,\else\fi\else\ifnum\arabic{myauthcount@totc}=118\ifnum\arabic{myauthcount}<117,\else\fi\else\ifnum\arabic{myauthcount@totc}=117\ifnum\arabic{myauthcount}<116,\else\fi\else\ifnum\arabic{myauthcount@totc}=116\ifnum\arabic{myauthcount}<115,\else\fi\else\ifnum\arabic{myauthcount@totc}=115\ifnum\arabic{myauthcount}<114,\else\fi\else\ifnum\arabic{myauthcount@totc}=114\ifnum\arabic{myauthcount}<113,\else\fi\else\ifnum\arabic{myauthcount@totc}=113\ifnum\arabic{myauthcount}<112,\else\fi\else\ifnum\arabic{myauthcount@totc}=112\ifnum\arabic{myauthcount}<111,\else\fi\else\ifnum\arabic{myauthcount@totc}=111\ifnum\arabic{myauthcount}<110,\else\fi\else\ifnum\arabic{myauthcount@totc}=110\ifnum\arabic{myauthcount}<109,\else\fi\else\ifnum\arabic{myauthcount@totc}=109\ifnum\arabic{myauthcount}<108,\else\fi\else\ifnum\arabic{myauthcount@totc}=108\ifnum\arabic{myauthcount}<107,\else\fi\else\ifnum\arabic{myauthcount@totc}=107\ifnum\arabic{myauthcount}<106,\else\fi\else\ifnum\arabic{myauthcount@totc}=106\ifnum\arabic{myauthcount}<105,\else\fi\else\ifnum\arabic{myauthcount@totc}=105\ifnum\arabic{myauthcount}<104,\else\fi\else\ifnum\arabic{myauthcount@totc}=104\ifnum\arabic{myauthcount}<103,\else\fi\else\ifnum\arabic{myauthcount@totc}=103\ifnum\arabic{myauthcount}<102,\else\fi\else\ifnum\arabic{myauthcount@totc}=102\ifnum\arabic{myauthcount}<101,\else\fi\else\ifnum\arabic{myauthcount@totc}=101\ifnum\arabic{myauthcount}<100,\else\fi\else\ifnum\arabic{myauthcount@totc}=100\ifnum\arabic{myauthcount}<99,\else\fi\else\ifnum\arabic{myauthcount@totc}=99\ifnum\arabic{myauthcount}<98,\else\fi\else\ifnum\arabic{myauthcount@totc}=98\ifnum\arabic{myauthcount}<97,\else\fi\else\ifnum\arabic{myauthcount@totc}=97\ifnum\arabic{myauthcount}<96,\else\fi\else\ifnum\arabic{myauthcount@totc}=96\ifnum\arabic{myauthcount}<95,\else\fi\else\ifnum\arabic{myauthcount@totc}=95\ifnum\arabic{myauthcount}<94,\else\fi\else\ifnum\arabic{myauthcount@totc}=94\ifnum\arabic{myauthcount}<93,\else\fi\else\ifnum\arabic{myauthcount@totc}=93\ifnum\arabic{myauthcount}<92,\else\fi\else\ifnum\arabic{myauthcount@totc}=92\ifnum\arabic{myauthcount}<91,\else\fi\else\ifnum\arabic{myauthcount@totc}=91\ifnum\arabic{myauthcount}<90,\else\fi\else\ifnum\arabic{myauthcount@totc}=90\ifnum\arabic{myauthcount}<89,\else\fi\else\ifnum\arabic{myauthcount@totc}=89\ifnum\arabic{myauthcount}<88,\else\fi\else\ifnum\arabic{myauthcount@totc}=88\ifnum\arabic{myauthcount}<87,\else\fi\else\ifnum\arabic{myauthcount@totc}=87\ifnum\arabic{myauthcount}<86,\else\fi\else\ifnum\arabic{myauthcount@totc}=86\ifnum\arabic{myauthcount}<85,\else\fi\else\ifnum\arabic{myauthcount@totc}=85\ifnum\arabic{myauthcount}<84,\else\fi\else\ifnum\arabic{myauthcount@totc}=84\ifnum\arabic{myauthcount}<83,\else\fi\else\ifnum\arabic{myauthcount@totc}=83\ifnum\arabic{myauthcount}<82,\else\fi\else\ifnum\arabic{myauthcount@totc}=82\ifnum\arabic{myauthcount}<81,\else\fi\else\ifnum\arabic{myauthcount@totc}=81\ifnum\arabic{myauthcount}<80,\else\fi\else\ifnum\arabic{myauthcount@totc}=80\ifnum\arabic{myauthcount}<79,\else\fi\else\ifnum\arabic{myauthcount@totc}=79\ifnum\arabic{myauthcount}<78,\else\fi\else\ifnum\arabic{myauthcount@totc}=78\ifnum\arabic{myauthcount}<77,\else\fi\else\ifnum\arabic{myauthcount@totc}=77\ifnum\arabic{myauthcount}<76,\else\fi\else\ifnum\arabic{myauthcount@totc}=76\ifnum\arabic{myauthcount}<75,\else\fi\else\ifnum\arabic{myauthcount@totc}=75\ifnum\arabic{myauthcount}<74,\else\fi\else\ifnum\arabic{myauthcount@totc}=74\ifnum\arabic{myauthcount}<73,\else\fi\else\ifnum\arabic{myauthcount@totc}=73\ifnum\arabic{myauthcount}<72,\else\fi\else\ifnum\arabic{myauthcount@totc}=72\ifnum\arabic{myauthcount}<71,\else\fi\else\ifnum\arabic{myauthcount@totc}=71\ifnum\arabic{myauthcount}<70,\else\fi\else\ifnum\arabic{myauthcount@totc}=70\ifnum\arabic{myauthcount}<69,\else\fi\else\ifnum\arabic{myauthcount@totc}=69\ifnum\arabic{myauthcount}<68,\else\fi\else\ifnum\arabic{myauthcount@totc}=68\ifnum\arabic{myauthcount}<67,\else\fi\else\ifnum\arabic{myauthcount@totc}=67\ifnum\arabic{myauthcount}<66,\else\fi\else\ifnum\arabic{myauthcount@totc}=66\ifnum\arabic{myauthcount}<65,\else\fi\else\ifnum\arabic{myauthcount@totc}=65\ifnum\arabic{myauthcount}<64,\else\fi\else\ifnum\arabic{myauthcount@totc}=64\ifnum\arabic{myauthcount}<63,\else\fi\else\ifnum\arabic{myauthcount@totc}=63\ifnum\arabic{myauthcount}<62,\else\fi\else\ifnum\arabic{myauthcount@totc}=62\ifnum\arabic{myauthcount}<61,\else\fi\else\ifnum\arabic{myauthcount@totc}=61\ifnum\arabic{myauthcount}<60,\else\fi\else\ifnum\arabic{myauthcount@totc}=60\ifnum\arabic{myauthcount}<59,\else\fi\else\ifnum\arabic{myauthcount@totc}=59\ifnum\arabic{myauthcount}<58,\else\fi\else\ifnum\arabic{myauthcount@totc}=58\ifnum\arabic{myauthcount}<57,\else\fi\else\ifnum\arabic{myauthcount@totc}=57\ifnum\arabic{myauthcount}<56,\else\fi\else\ifnum\arabic{myauthcount@totc}=56\ifnum\arabic{myauthcount}<55,\else\fi\else\ifnum\arabic{myauthcount@totc}=55\ifnum\arabic{myauthcount}<54,\else\fi\else\ifnum\arabic{myauthcount@totc}=54\ifnum\arabic{myauthcount}<53,\else\fi\else\ifnum\arabic{myauthcount@totc}=53\ifnum\arabic{myauthcount}<52,\else\fi\else\ifnum\arabic{myauthcount@totc}=52\ifnum\arabic{myauthcount}<51,\else\fi\else\ifnum\arabic{myauthcount@totc}=51\ifnum\arabic{myauthcount}<50,\else\fi\else\ifnum\arabic{myauthcount@totc}=50\ifnum\arabic{myauthcount}<49,\else\fi\else\ifnum\arabic{myauthcount@totc}=49\ifnum\arabic{myauthcount}<48,\else\fi\else\ifnum\arabic{myauthcount@totc}=48\ifnum\arabic{myauthcount}<47,\else\fi\else\ifnum\arabic{myauthcount@totc}=47\ifnum\arabic{myauthcount}<46,\else\fi\else\ifnum\arabic{myauthcount@totc}=46\ifnum\arabic{myauthcount}<45,\else\fi\else\ifnum\arabic{myauthcount@totc}=45\ifnum\arabic{myauthcount}<44,\else\fi\else\ifnum\arabic{myauthcount@totc}=44\ifnum\arabic{myauthcount}<43,\else\fi\else\ifnum\arabic{myauthcount@totc}=43\ifnum\arabic{myauthcount}<42,\else\fi\else\ifnum\arabic{myauthcount@totc}=42\ifnum\arabic{myauthcount}<41,\else\fi\else\ifnum\arabic{myauthcount@totc}=41\ifnum\arabic{myauthcount}<40,\else\fi\else\ifnum\arabic{myauthcount@totc}=40\ifnum\arabic{myauthcount}<39,\else\fi\else\ifnum\arabic{myauthcount@totc}=39\ifnum\arabic{myauthcount}<38,\else\fi\else\ifnum\arabic{myauthcount@totc}=38\ifnum\arabic{myauthcount}<37,\else\fi\else\ifnum\arabic{myauthcount@totc}=37\ifnum\arabic{myauthcount}<36,\else\fi\else\ifnum\arabic{myauthcount@totc}=36\ifnum\arabic{myauthcount}<35,\else\fi\else\ifnum\arabic{myauthcount@totc}=35\ifnum\arabic{myauthcount}<34,\else\fi\else\ifnum\arabic{myauthcount@totc}=34\ifnum\arabic{myauthcount}<33,\else\fi\else\ifnum\arabic{myauthcount@totc}=33\ifnum\arabic{myauthcount}<32,\else\fi\else\ifnum\arabic{myauthcount@totc}=32\ifnum\arabic{myauthcount}<31,\else\fi\else\ifnum\arabic{myauthcount@totc}=31\ifnum\arabic{myauthcount}<30,\else\fi\else\ifnum\arabic{myauthcount@totc}=30\ifnum\arabic{myauthcount}<29,\else\fi\else\ifnum\arabic{myauthcount@totc}=29\ifnum\arabic{myauthcount}<28,\else\fi\else\ifnum\arabic{myauthcount@totc}=28\ifnum\arabic{myauthcount}<27,\else\fi\else\ifnum\arabic{myauthcount@totc}=27\ifnum\arabic{myauthcount}<26,\else\fi\else\ifnum\arabic{myauthcount@totc}=26\ifnum\arabic{myauthcount}<25,\else\fi\else\ifnum\arabic{myauthcount@totc}=25\ifnum\arabic{myauthcount}<24,\else\fi\else\ifnum\arabic{myauthcount@totc}=24\ifnum\arabic{myauthcount}<23,\else\fi\else\ifnum\arabic{myauthcount@totc}=23\ifnum\arabic{myauthcount}<22,\else\fi\else\ifnum\arabic{myauthcount@totc}=22\ifnum\arabic{myauthcount}<21,\else\fi\else\ifnum\arabic{myauthcount@totc}=21\ifnum\arabic{myauthcount}<20,\else\fi\else\ifnum\arabic{myauthcount@totc}=20\ifnum\arabic{myauthcount}<19,\else\fi\else\ifnum\arabic{myauthcount@totc}=19\ifnum\arabic{myauthcount}<18,\else\fi\else\ifnum\arabic{myauthcount@totc}=18\ifnum\arabic{myauthcount}<17,\else\fi\else\ifnum\arabic{myauthcount@totc}=17\ifnum\arabic{myauthcount}<16,\else\fi\else\ifnum\arabic{myauthcount@totc}=16\ifnum\arabic{myauthcount}<15,\else\fi\else\ifnum\arabic{myauthcount@totc}=15\ifnum\arabic{myauthcount}<14,\else\fi\else\ifnum\arabic{myauthcount@totc}=14\ifnum\arabic{myauthcount}<13,\else\fi\else\ifnum\arabic{myauthcount@totc}=13\ifnum\arabic{myauthcount}<12,\else\fi\else\ifnum\arabic{myauthcount@totc}=12\ifnum\arabic{myauthcount}<11,\else\fi\else\ifnum\arabic{myauthcount@totc}=11\ifnum\arabic{myauthcount}<10,\else\fi\else\ifnum\arabic{myauthcount@totc}=10\ifnum\arabic{myauthcount}<9,\else\fi\else\ifnum\arabic{myauthcount@totc}=9\ifnum\arabic{myauthcount}<8,\else\fi\else\ifnum\arabic{myauthcount@totc}=8\ifnum\arabic{myauthcount}<7,\else\fi\else\ifnum\arabic{myauthcount@totc}=7\ifnum\arabic{myauthcount}<6,\else\fi\else\ifnum\arabic{myauthcount@totc}=6\ifnum\arabic{myauthcount}<5,\else\fi\else\ifnum\arabic{myauthcount@totc}=5\ifnum\arabic{myauthcount}<4,\else\fi\else\ifnum\arabic{myauthcount@totc}=4\ifnum\arabic{myauthcount}<3,\else\fi\else\ifnum\arabic{myauthcount@totc}=3\ifnum\arabic{myauthcount}<2,\else\fi\else\ifnum\arabic{myauthcount@totc}=2\else,\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +\def\author#1{\gdef\@author{#1}} +\def\@author{} + +\def\author{\@@author}% +\newcommand{\@@author}[2][]{% + \g@addto@macro\@author{% + \refstepcounter{myauthcount}% + \hspace*{0.001pt}{\authorandsep#2\ifx#1\@empty\else\textsuperscript{#1}\fi}\par} + }% + +\def\@vol{} +\def\vol#1{\global\def\@vol{#1}} +\def\@issue{} +\def\issue#1{\global\def\@issue{#1}} + +\newcommand\defcase[1]{\@namedef{mycase@\the\numexpr#1\relax}} +\newcommand\myswitch[1]{\@nameuse{mycase@\the\numexpr#1\relax}} + +\defcase{0}{Month} +\defcase{1}{January} +\defcase{2}{February} +\defcase{3}{March} +\defcase{4}{April} +\defcase{5}{May} +\defcase{6}{June} +\defcase{7}{July} +\defcase{8}{August} +\defcase{9}{September} +\defcase{10}{October} +\defcase{11}{November} +\defcase{12}{December} + +\def\@history{} +\def\history#1{\global\def\@history{#1}} +\history{} + +\newcounter{myhistorycount} +\setcounter{myhistorycount}{0} +\regtotcounter{myhistorycount} + +\def\historycommasep{\ifnum\arabic{myhistorycount@totc}=\arabic{myhistorycount}\else;\ \fi} + +\def\received#1#2#3{\g@addto@macro\@history{\refstepcounter{myhistorycount}Received on #1\ \myswitch{#2}\ #3\historycommasep}} +\def\revised#1#2#3{\g@addto@macro\@history{\refstepcounter{myhistorycount}revised on #1\ \myswitch{#2}\ #3\historycommasep}} +\def\accepted#1#2#3{\g@addto@macro\@history{\refstepcounter{myhistorycount}accepted on #1\ \myswitch{#2}\ #3\historycommasep}} + +\def\abstract#1{\global\def\@abstract{#1}} + +\def\keywords#1{\g@addto@macro\@abstract{% + \vspace*{8pt} +\par% +\vbox{\fontsize{9bp}{11}\selectfont\textit{Keywords:}\ #1}% +}}% + +\def\@editor{} +\def\editor#1{\global\def\@editor{#1}} +\def\pubyear#1{\global\def\@pubyear{#1}} +\def\copyrightyear#1{\global\def\@copyrightyear{#1}} +\def\journaltitle#1{\global\def\@journaltitle{#1}} +\if@imaiai +\journaltitle{Information and Inference: A Journal of the IMA} +\else +\if@imaman +\journaltitle{IMA Journal of Management Mathematics} +\else +\if@imamat +\journaltitle{IMA Journal of Applied Mathematics} +\else +\if@imamci +\journaltitle{IMA Journal of Mathematical Control and Information} +\else +\if@imammb +\journaltitle{Mathematical Medicine and Biology: A Journal of the IMA} +\else +\if@imanum +\journaltitle{IMA Journal of Numerical Analysis} +\else +\if@imatrm +\journaltitle{Transactions of Mathematics and Its Applications} +\else +% added by Overleaf, May 16, 2024 as default +\journaltitle{IMA open software journal} +\fi\fi\fi\fi\fi\fi\fi + +\def\@boxedtext{} +\def\boxedtext{\@@boxedtext}% +\newcommand{\@@boxedtext}[1]{\def\@boxedtext{\ifx#1\@empty\else\fbox{\parbox{.97\textwidth}{\textbf{Key Messages}\par#1\vspace{-8pt}}}\fi}} + +\def\orgdiv#1{#1} +\def\orgname#1{#1} +\def\orgaddress#1{#1} +\def\street#1{#1} +\def\postcode#1{#1} +\def\state#1{#1} +\def\country#1{#1} + +\newcounter{myaddcount} +\setcounter{myaddcount}{0} +\regtotcounter{myaddcount} + +\def\addressandsep{\ifnum\arabic{myaddcount@totc}=\arabic{myaddcount}\ifnum\arabic{myaddcount@totc}=1\else\ and \fi\else\fi} +\def\addresscommasep{\ifnum\arabic{myaddcount@totc}=\arabic{myaddcount}\else\ifnum\arabic{myaddcount@totc}=200\ifnum\arabic{myaddcount}<199, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=199\ifnum\arabic{myaddcount}<198, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=198\ifnum\arabic{myaddcount}<197, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=197\ifnum\arabic{myaddcount}<196, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=196\ifnum\arabic{myaddcount}<195, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=195\ifnum\arabic{myaddcount}<194, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=194\ifnum\arabic{myaddcount}<193, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=193\ifnum\arabic{myaddcount}<192, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=192\ifnum\arabic{myaddcount}<191, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=191\ifnum\arabic{myaddcount}<190, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=190\ifnum\arabic{myaddcount}<189, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=189\ifnum\arabic{myaddcount}<188, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=188\ifnum\arabic{myaddcount}<187, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=187\ifnum\arabic{myaddcount}<186, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=186\ifnum\arabic{myaddcount}<185, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=185\ifnum\arabic{myaddcount}<184, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=184\ifnum\arabic{myaddcount}<183, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=183\ifnum\arabic{myaddcount}<182, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=182\ifnum\arabic{myaddcount}<181, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=181\ifnum\arabic{myaddcount}<180, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=180\ifnum\arabic{myaddcount}<179, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=179\ifnum\arabic{myaddcount}<178, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=178\ifnum\arabic{myaddcount}<177, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=177\ifnum\arabic{myaddcount}<176, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=176\ifnum\arabic{myaddcount}<175, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=175\ifnum\arabic{myaddcount}<174, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=174\ifnum\arabic{myaddcount}<173, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=173\ifnum\arabic{myaddcount}<172, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=172\ifnum\arabic{myaddcount}<171, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=171\ifnum\arabic{myaddcount}<170, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=170\ifnum\arabic{myaddcount}<169, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=169\ifnum\arabic{myaddcount}<168, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=168\ifnum\arabic{myaddcount}<167, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=167\ifnum\arabic{myaddcount}<166, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=166\ifnum\arabic{myaddcount}<165, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=165\ifnum\arabic{myaddcount}<164, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=164\ifnum\arabic{myaddcount}<163, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=163\ifnum\arabic{myaddcount}<162, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=162\ifnum\arabic{myaddcount}<161, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=161\ifnum\arabic{myaddcount}<160, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=160\ifnum\arabic{myaddcount}<159, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=159\ifnum\arabic{myaddcount}<158, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=158\ifnum\arabic{myaddcount}<157, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=157\ifnum\arabic{myaddcount}<156, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=156\ifnum\arabic{myaddcount}<155, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=155\ifnum\arabic{myaddcount}<154, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=154\ifnum\arabic{myaddcount}<153, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=153\ifnum\arabic{myaddcount}<152, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=152\ifnum\arabic{myaddcount}<151, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=151\ifnum\arabic{myaddcount}<150, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=150\ifnum\arabic{myaddcount}<149, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=149\ifnum\arabic{myaddcount}<148, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=148\ifnum\arabic{myaddcount}<147, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=147\ifnum\arabic{myaddcount}<146, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=146\ifnum\arabic{myaddcount}<145, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=145\ifnum\arabic{myaddcount}<144, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=144\ifnum\arabic{myaddcount}<143, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=143\ifnum\arabic{myaddcount}<142, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=142\ifnum\arabic{myaddcount}<141, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=141\ifnum\arabic{myaddcount}<140, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=140\ifnum\arabic{myaddcount}<139, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=139\ifnum\arabic{myaddcount}<138, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=138\ifnum\arabic{myaddcount}<137, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=137\ifnum\arabic{myaddcount}<136, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=136\ifnum\arabic{myaddcount}<135, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=135\ifnum\arabic{myaddcount}<134, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=134\ifnum\arabic{myaddcount}<133, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=133\ifnum\arabic{myaddcount}<132, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=132\ifnum\arabic{myaddcount}<131, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=131\ifnum\arabic{myaddcount}<130, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=130\ifnum\arabic{myaddcount}<129, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=129\ifnum\arabic{myaddcount}<128, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=128\ifnum\arabic{myaddcount}<127, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=127\ifnum\arabic{myaddcount}<126, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=126\ifnum\arabic{myaddcount}<125, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=125\ifnum\arabic{myaddcount}<124, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=124\ifnum\arabic{myaddcount}<123, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=123\ifnum\arabic{myaddcount}<122, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=122\ifnum\arabic{myaddcount}<121, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=121\ifnum\arabic{myaddcount}<120, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=120\ifnum\arabic{myaddcount}<119, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=119\ifnum\arabic{myaddcount}<118, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=118\ifnum\arabic{myaddcount}<117, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=117\ifnum\arabic{myaddcount}<116, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=116\ifnum\arabic{myaddcount}<115, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=115\ifnum\arabic{myaddcount}<114, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=114\ifnum\arabic{myaddcount}<113, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=113\ifnum\arabic{myaddcount}<112, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=112\ifnum\arabic{myaddcount}<111, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=111\ifnum\arabic{myaddcount}<110, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=110\ifnum\arabic{myaddcount}<109, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=109\ifnum\arabic{myaddcount}<108, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=108\ifnum\arabic{myaddcount}<107, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=107\ifnum\arabic{myaddcount}<106, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=106\ifnum\arabic{myaddcount}<105, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=105\ifnum\arabic{myaddcount}<104, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=104\ifnum\arabic{myaddcount}<103, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=103\ifnum\arabic{myaddcount}<102, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=102\ifnum\arabic{myaddcount}<101, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=101\ifnum\arabic{myaddcount}<100, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=100\ifnum\arabic{myaddcount}<99, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=99\ifnum\arabic{myaddcount}<98, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=98\ifnum\arabic{myaddcount}<97, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=97\ifnum\arabic{myaddcount}<96, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=96\ifnum\arabic{myaddcount}<95, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=95\ifnum\arabic{myaddcount}<94, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=94\ifnum\arabic{myaddcount}<93, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=93\ifnum\arabic{myaddcount}<92, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=92\ifnum\arabic{myaddcount}<91, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=91\ifnum\arabic{myaddcount}<90, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=90\ifnum\arabic{myaddcount}<89, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=89\ifnum\arabic{myaddcount}<88, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=88\ifnum\arabic{myaddcount}<87, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=87\ifnum\arabic{myaddcount}<86, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=86\ifnum\arabic{myaddcount}<85, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=85\ifnum\arabic{myaddcount}<84, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=84\ifnum\arabic{myaddcount}<83, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=83\ifnum\arabic{myaddcount}<82, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=82\ifnum\arabic{myaddcount}<81, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=81\ifnum\arabic{myaddcount}<80, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=80\ifnum\arabic{myaddcount}<79, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=79\ifnum\arabic{myaddcount}<78, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=78\ifnum\arabic{myaddcount}<77, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=77\ifnum\arabic{myaddcount}<76, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=76\ifnum\arabic{myaddcount}<75, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=75\ifnum\arabic{myaddcount}<74, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=74\ifnum\arabic{myaddcount}<73, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=73\ifnum\arabic{myaddcount}<72, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=72\ifnum\arabic{myaddcount}<71, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=71\ifnum\arabic{myaddcount}<70, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=70\ifnum\arabic{myaddcount}<69, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=69\ifnum\arabic{myaddcount}<68, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=68\ifnum\arabic{myaddcount}<67, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=67\ifnum\arabic{myaddcount}<66, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=66\ifnum\arabic{myaddcount}<65, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=65\ifnum\arabic{myaddcount}<64, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=64\ifnum\arabic{myaddcount}<63, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=63\ifnum\arabic{myaddcount}<62, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=62\ifnum\arabic{myaddcount}<61, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=61\ifnum\arabic{myaddcount}<60, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=60\ifnum\arabic{myaddcount}<59, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=59\ifnum\arabic{myaddcount}<58, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=58\ifnum\arabic{myaddcount}<57, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=57\ifnum\arabic{myaddcount}<56, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=56\ifnum\arabic{myaddcount}<55, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=55\ifnum\arabic{myaddcount}<54, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=54\ifnum\arabic{myaddcount}<53, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=53\ifnum\arabic{myaddcount}<52, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=52\ifnum\arabic{myaddcount}<51, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=51\ifnum\arabic{myaddcount}<50, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=50\ifnum\arabic{myaddcount}<49, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=49\ifnum\arabic{myaddcount}<48, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=48\ifnum\arabic{myaddcount}<47, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=47\ifnum\arabic{myaddcount}<46, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=46\ifnum\arabic{myaddcount}<45, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=45\ifnum\arabic{myaddcount}<44, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=44\ifnum\arabic{myaddcount}<43, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=43\ifnum\arabic{myaddcount}<42, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=42\ifnum\arabic{myaddcount}<41, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=41\ifnum\arabic{myaddcount}<40, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=40\ifnum\arabic{myaddcount}<39, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=39\ifnum\arabic{myaddcount}<38, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=38\ifnum\arabic{myaddcount}<37, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=37\ifnum\arabic{myaddcount}<36, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=36\ifnum\arabic{myaddcount}<35, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=35\ifnum\arabic{myaddcount}<34, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=34\ifnum\arabic{myaddcount}<33, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=33\ifnum\arabic{myaddcount}<32, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=32\ifnum\arabic{myaddcount}<31, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=31\ifnum\arabic{myaddcount}<30, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=30\ifnum\arabic{myaddcount}<29, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=29\ifnum\arabic{myaddcount}<28, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=28\ifnum\arabic{myaddcount}<27, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=27\ifnum\arabic{myaddcount}<26, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=26\ifnum\arabic{myaddcount}<25, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=25\ifnum\arabic{myaddcount}<24, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=24\ifnum\arabic{myaddcount}<23, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=23\ifnum\arabic{myaddcount}<22, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=22\ifnum\arabic{myaddcount}<21, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=21\ifnum\arabic{myaddcount}<20, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=20\ifnum\arabic{myaddcount}<19, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=19\ifnum\arabic{myaddcount}<18, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=18\ifnum\arabic{myaddcount}<17, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=17\ifnum\arabic{myaddcount}<16, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=16\ifnum\arabic{myaddcount}<15, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=15\ifnum\arabic{myaddcount}<14, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=14\ifnum\arabic{myaddcount}<13, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=13\ifnum\arabic{myaddcount}<12, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=12\ifnum\arabic{myaddcount}<11, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=11\ifnum\arabic{myaddcount}<10, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=10\ifnum\arabic{myaddcount}<9, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=9\ifnum\arabic{myaddcount}<8, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=8\ifnum\arabic{myaddcount}<7, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=7\ifnum\arabic{myaddcount}<6, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=6\ifnum\arabic{myaddcount}<5, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=5\ifnum\arabic{myaddcount}<4, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=4\ifnum\arabic{myaddcount}<3, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=3\ifnum\arabic{myaddcount}<2, \else\unskip\fi\else\ifnum\arabic{myaddcount@totc}=2\else,\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + +\def\address#1{\par\itshape#1\par\addvspace{6pt}}% +%\def\@address{} +%\def\address{\@@address}% +%\newcommand{\@@address}[2][]{% +% \g@addto@macro\@address{% +% \refstepcounter{myaddcount}% +% \ifnum\arabic{myaddcount}=1\vspace*{5pt}\par\fi% +% \addressandsep\ifx#1\@empty\else\textsuperscript{#1}\fi#2\addresscommasep}% +% }% +\def\@corresp{} +\def\corresp{\@@corresp}% +\newcommand{\@@corresp}[2][]{% + \g@addto@macro\@corresp{% + \ifx#1\@empty\else\textsuperscript{#1}\fi#2}}% + +\def\@DOI{} +\def\DOI#1{\global\def\@DOI{#1}} + +\definecolor{gray}{cmyk}{0, 0, 0, 0.15} +\definecolor{grayfifty}{cmyk}{0, 0, 0, 0.5} +\definecolor{graysixtyfive}{cmyk}{0, 0, 0, 0.65} +\newlength{\extraspace} +\setlength{\extraspace}{\z@} + +\newcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 3mm\noindent + \@textsuperscript{\normalfont\@thefnmark} + ##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage% + \global\@topnum\z@ % + \@maketitle + \fi + \thispagestyle{opening}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@address\@empty + \global\let\@corresp\@empty + \global\let\@history\@empty + \global\let\@editor\@empty + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@subtitle\@empty + \global\let\@title\@empty + \global\let\@boxedtext\@empty + \global\let\@pubyear\@empty + \global\let\address\relax + \global\let\boxedtext\relax + \global\let\history\relax + \global\let\editor\relax + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\pubyear\relax + \global\let\@copyrightline\@empty + \global\let\and\relax + \@afterindentfalse\@afterheading +} + +\newlength{\aboveskipchk}% +\setlength{\aboveskipchk}{\z@}% + +\def\@access{} +\def\access#1{\gdef\@access{#1}} + +\def\appnotes#1{\gdef\@appnotes{#1}} +\appnotes{} + +\newlength{\titlepagewd} + \setlength{\titlepagewd}{\textwidth} + +\definecolor{linkclr}{cmyk}{0.973,0.957,0,0.04} +\definecolor{jnlclr}{cmyk}{.80,.29,.05,0} +\definecolor{jnlruleclr}{cmyk}{.45,.06,.05,0} + +\def\@maketitle{% + \let\footnote\thanks + \clearemptydoublepage + \checkoddpage\ifcpoddpage\setlength{\aboveskipchk}{-28.6pt}\else\setlength{\aboveskipchk}{-28.6pt}\fi%for checking oddpage or evenpage top skip%% + \vspace*{\aboveskipchk}% + \vspace{\dropfromtop}% + \vspace*{21pt} + \if@twocolumn\else\vspace*{-10pt}\fi + \hbox to \textwidth{% + \raisebox{-2pt}[0pt]{% + \parbox[b]{\textwidth}{{\hspace*{-.5pt}\fontsize{10bp}{12pt}\selectfont\itshape\@journaltitle\rm\ (\@copyrightyear) \textbf{\@vol}, \thepage--\thelastpage}\\ + \hspace*{-.5pt}{\fontsize{10bp}{12pt}\selectfont\href{https://doi.org/\@DOI}{https://doi.org/\@DOI}}\\ + %{\ifx\@access\@empty\else{\fontsize{10bp}{12pt}\selectfont\@access}\fi} + %\vskip-.9pt + %{\ifx\@appnotes\@empty\else{\fontsize{10bp}{12pt}\selectfont\@appnotes}\\[-.9pt]\fi} + }}}% + \vspace*{21pt}\par% + % + %\sffamilyfont + \hbox to \textwidth{% + \parbox[t]{\titlepagewd}{% + \ifx\@subtitle\@empty% + \else% + {\sffamilyfontcn\fontsize{14}{21}\selectfont\raggedright \@subtitle \par}% + \vspace{7.5\p@}% + \fi% + % Title here + %{\fontsize{9.8bp}{10}\selectfont \MakeUppercase{\@appnotes}}\\[6.5pt] + {\fontsize{12bp}{14pt}\selectfont\bfseries\leftskip0pt plus1fill\rightskip0pt plus1fill {\@title} \par}%% + % Title below space + \vspace{12\p@}% + % Author here + {\fontsize{10bp}{12}\selectfont\scshape\leftskip0pt plus1fill\rightskip0pt plus1fill \@author \par}% + % Author below space + \vspace{4\p@} + % Address here + %{\itshape\selectfont\leftskip0pt plus1fill\rightskip0pt plus1fill \@address \par}% + % Address below space + \vspace{-10\p@} + % Correspondence author here + {\fontsize{10bp}{12}\selectfont\leftskip0pt plus1fill\rightskip0pt plus1fill\@corresp \par}% + % Correspondence below space + % Editor here + % Editor below space + \vspace{10\p@} + % History here + {\fontsize{10bp}{12pt}\selectfont\leftskip0pt plus1fill\rightskip0pt plus1fill [\@history] \par} + % History below space + \vspace*{10.5pt} + % Abstract here + \begingroup + \parindent=0pt + {\fontsize{9bp}{11}\selectfont\leftskip18pt\rightskip18pt\@abstract\par} + %\end{minipage} + \endgroup + %\vspace{20\p@} + }% + } + % + \vspace{13.5\p@}% + \ifx\@boxedtext\@empty\else\vspace*{12pt}\par\fi% + \@boxedtext + \vspace{12\p@ plus 6\p@ minus 6\p@}% + \vspace{\extraspace} + \vspace*{-18pt}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% Abstract %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\absection}[1]{% + \par\noindent{\bfseries #1}\space\ignorespaces} + +% Section macros + +% Lowest level heading that takes a number by default +\setcounter{secnumdepth}{3} + +\renewcommand{\@seccntformat}[1]{\if@unnumsec\else\csname the#1\endcsname.\space\fi} + +\def\secsize{\fontsize{10bp}{12}\fontseries{b}\selectfont\leftskip0pt\rightskip0pt plus1fill} + +\def\subsecsize{\fontsize{10bp}{12}\fontseries{m}\fontshape{it}\selectfont\leftskip0pt\rightskip0pt plus1fill} + +\def\subsubsecsize{} + +\def\section{\def\@seccntformat##1{\bf\csname the##1\endcsname.\enspace}% + \@startsection{section}{1}{\z@} + {-16\p@ plus -3\p@}{6\p@} + {\reset@font\raggedright\secsize}} + +\def\subsection{\def\@seccntformat##1{\rm\csname the##1\endcsname.\enspace}% + \@startsection{subsection}{2}{\z@} + {-11\p@ plus -2\p@}{4\p@} + {\reset@font\raggedright\subsecsize}} + +\def\subsubsection{% + \@startsection{subsubsection}{3}{\z@} + {-11\p@ plus -1\p@}{0.001em} + {\reset@font\raggedright\subsubsecsize}} + +\def\textcolon{\text{\rm :}} + + \def\paragraph{% + \@startsection{paragraph}{4}{\z@} + {-6\p@} + {-.4em} + {\reset@font\itshape}} + +\def\@startsection#1#2#3#4#5#6{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \ifnum#2=2\vspace*{0pt}\fi\ifnum#2=3\vspace*{1pt}\fi%% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} + + +% ******************** +% Figures and tables * +% ******************** + +% Table and array parameters +\setlength\arraycolsep{.5em} +\setlength\tabcolsep{.5em} +\setlength\arrayrulewidth{.5pt} +\setlength\doublerulesep{2.5pt} +\setlength\extrarowheight{\z@} +\renewcommand\arraystretch{1} + +%\newlength{\abovecaptionskip} +%\newlength{\belowcaptionskip} +\setlength{\abovecaptionskip}{13pt} +\setlength{\belowcaptionskip}{2pt} + +\long\def\@makecaption#1#2{\vspace{\abovecaptionskip}% + \begingroup + \fontsize{10bp}{12pt}\itshape\selectfont + \emph{#1}\enskip\enskip{#2\strut\par} + \endgroup\vspace{\belowcaptionskip}} + +\long\def\@tablecaption#1#2{% + \begingroup% + \fontsize{10bp}{12pt}\itshape\selectfont% + \emph{#1}\enskip\enskip{#2\par}% + \endgroup\vspace{\belowcaptionskip}} + +\long\def\@figurecaption#1#2{% + \begingroup\sbox\@tempboxa{\noindent\fontsize{8}{10}\selectfont #1.\enskip#2}% + \ifdim \wd\@tempboxa >\hsize + \noindent\fontsize{8bp}{10pt}\selectfont #1.\enskip{#2\strut\par}\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgroup\vskip\belowcaptionskip} + +% Table rules + \def\toprule{\noalign{\ifnum0=`}\fi% + \hrule \@height 1pt \@width 0pt% + \hrule \@height 0.5pt + \hrule \@height 2pt \@width 0pt \futurelet \@tempa\@xhline} + \def\midrule{\noalign{\ifnum0=`}\fi% + \hrule \@height 1pt \@width 0pt% + \hrule \@height 0.5pt% + \hrule \@height 2.5pt \@width 0pt \futurelet \@tempa\@xhline} + \def\botrule{\noalign{\ifnum0=`}\fi% + \hrule \@height -1pt \@width 0pt + \hrule \@height 0.5pt \futurelet \@tempa\@xhline} +\def\hrulefill{\leavevmode\leaders\hrule height .5pt\hfill\kern\z@} + +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename~\thefigure} +\def\figure{\let\@makecaption\@figurecaption\@float{figure}} +\let\endfigure\end@float +\@namedef{figure*}{\let\@makecaption\@figurecaption\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} +\def\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\textsc{Table}~\thetable} +\def\table{\let\@makecaption\@tablecaption\let\source\tablesource\@float{table}} +\def\endtable{\end@float} +\@namedef{table*}{\let\@makecaption\@tablecaption\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + +\newif\if@rotate \@rotatefalse +\newif\if@rotatecenter \@rotatecenterfalse +\def\rotatecenter{\global\@rotatecentertrue} +\def\rotateendcenter{\global\@rotatecenterfalse} +\def\rotate{\global\@rotatetrue} +\def\endrotate{\global\@rotatefalse} +\newdimen\rotdimen +\def\rotstart#1{\special{ps: gsave currentpoint currentpoint translate + #1 neg exch neg exch translate}} +\def\rotfinish{\special{ps: currentpoint grestore moveto}} +\def\rotl#1{\rotdimen=\ht#1\advance\rotdimen by \dp#1 + \hbox to \rotdimen{\vbox to\wd#1{\vskip \wd#1 + \rotstart{270 rotate}\box #1\vss}\hss}\rotfinish} +\def\rotr#1{\rotdimen=\ht #1\advance\rotdimen by \dp#1 + \hbox to \rotdimen{\vbox to \wd#1{\vskip \wd#1 + \rotstart{90 rotate}\box #1\vss}\hss}\rotfinish} + +\newdimen\tempdime +\newbox\temptbox + +% From ifmtarg.sty +% Copyright Peter Wilson and Donald Arseneau, 2000 +\begingroup +\catcode`\Q=3 +\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil} +\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4} +\long\gdef\@ifnotmtarg#1{\@xifmtarg#1QQ\@firstofone\@gobble\@nil} +\endgroup + +\def\tablesize{} + +\newenvironment{processtable}[3]{\setbox\temptbox=\hbox{{\tablesize #2}}% +\tempdime\wd\temptbox\@processtable{#1}{#2}{#3}{\tempdime}} +{\relax} + +\newcommand{\@processtable}[4]{% +\if@rotate +\setbox4=\vbox to \hsize{\vss\hbox to \textheight{% +\begin{minipage}{#4}% +\@ifmtarg{#1}{}{\caption{#1}}{\tablesize #2}% +\vskip7\p@\noindent +\parbox{#4}{\fontsize{7}{9}\selectfont #3\par}% +\end{minipage}}\vss}% +\rotr{4} +\else +\hbox to \hsize{\hss\begin{minipage}[t]{#4}% +\vskip2.9pt +\@ifmtarg{#1}{}{\caption{#1}}{\tablesize #2}% +\vskip6\p@\parindent=12pt +\parbox{#4}{\fontsize{7}{9}\selectfont #3\par}% +\end{minipage}\hss}\fi}% + +\newcolumntype{P}[1]{>{\raggedright\let\\\@arraycr\hangindent1em}p{#1}} + +\usepackage{threeparttable} + +\def\tablebodyfont{\reset@font\normalsize}% + +\let\tableorg\table% +\let\endtableorg\endtable% + +\let\sidewaystableorg\sidewaystable% +\let\endsidewaystableorg\endsidewaystable% + +\renewenvironment{table}[1][]% +{\begin{tableorg}[#1]% +\begin{center} +\begin{threeparttable} +\tablebodyfont% +\renewcommand\footnotetext[2][]{{\removelastskip\vskip3pt% +\let\tablebodyfont\tablefootnotefont% +\hskip0pt\if!##1!\else{\smash{$^{##1}$}}\fi##2\par}}% +}{\end{threeparttable}\end{center}\end{tableorg}} + +\renewenvironment{sidewaystable}[1][]% +{\begin{sidewaystableorg}[#1]% +\begin{center} +\begin{threeparttable} +\tablebodyfont% +\renewcommand\footnotetext[2][]{{\removelastskip\vskip3pt% +\let\tablebodyfont\tablefootnotefont% +\hskip0pt\if!##1!\else{\smash{$^{##1}$}}\fi##2\par}}% +}{\end{threeparttable}\end{center}\end{sidewaystableorg}} + +% ****************************** +% List numbering and lettering * +% ****************************** +\def\labelenumi{{\rm\arabic{enumi}.}} +\def\theenumi{\arabic{enumi}} +\def\labelenumii{{\rm\alph{enumii}.}} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{{\rm(\roman{enumiii})}} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{{\rm(\arabic{enumiv})}} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} +\def\labelitemi{{\small$\bullet$}} +\def\labelitemii{{--}} +\def\labelitemiii{{\small$\bullet$}} +\def\labelitemiv{{\small$\bullet$}} + +\def\@listI{\leftmargin\leftmargini \topsep\medskipamount} +\let\@listi\@listI +\@listi +\def\@listii{\topsep\z@\leftmargin\leftmarginii} +\def\@listiii{\leftmargin\leftmarginiii \topsep\z@} +\def\@listiv{\leftmargin\leftmarginiv \topsep\z@} +\def\@listv{\leftmargin\leftmarginv \topsep\z@} +\def\@listvi{\leftmargin\leftmarginvi \topsep\z@} + +\setlength{\leftmargini}{3mm} +\setlength{\leftmarginii}{1mm} +\setlength{\leftmarginiii}{2mm} +\setlength{\leftmarginiv}{\z@} + +% Changes to the list parameters for enumerate +\def\enumargs{% + \partopsep \z@ + \itemsep \z@ + \parsep \z@ + \labelsep 1em + \listparindent \parindent + \itemindent \z@ + \topsep 7\p@ +} + +\def\enumerate{% + \@ifnextchar[{\@numerate}{\@numerate[0]}} + +\def\@numerate[#1]{% + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth} + \list{\csname label\@enumctr\endcsname}{% + \enumargs + \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@enumdepth\endcsname} + \usecounter{\@enumctr} + \settowidth\labelwidth{#1} + \addtolength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{2pt} + \def\makelabel##1{\hss \llap{##1}}}% + \fi + } +\let\endenumerate\endlist + +% Changes to the list parameters for itemize +\def\itemargs{% + \partopsep \z@ + \itemsep 0\p@ + \parsep \z@ + \labelsep 1em + \rightmargin \z@ + \listparindent \parindent + \itemindent \z@ + \topsep7\p@ + \setlength{\leftmarginii}{3mm} +} + +\def\itemize{% + \@ifnextchar[{\@itemize}{\@itemize[$\bullet$]}} + +\def\@itemize[#1]{% + \ifnum \@itemdepth >3 \@toodeep\else + \advance\@itemdepth \@ne + \edef\@itemctr{item\romannumeral\the\@itemdepth} + \list{\csname label\@itemctr\endcsname}{% + \itemargs + \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@itemdepth\endcsname} + \settowidth\labelwidth{#1} + \addtolength{\leftmargin}{\labelwidth} + %\addtolength{\leftmargin}{\labelsep} + \def\makelabel##1{\hss \llap{##1}}}% + \fi + } +\let\enditemize\endlist + +\newenvironment{unlist}{% + \begin{list}{}% + {\setlength{\labelwidth}{\z@}% + \setlength{\labelsep}{\z@}% + \setlength{\topsep}{\medskipamount}% + \setlength{\itemsep}{3\p@}% + \setlength{\leftmargin}{2em}% + \setlength{\itemindent}{-2em}}} +{\end{list}} + + +% *********************** +% Quotes and Quotations * +% *********************** +\def\quotation{\par\begin{list}{}{ + \setlength{\topsep}{\medskipamount} + \setlength{\leftmargin}{2em}% + \setlength{\rightmargin}{\z@}% + \setlength\labelwidth{0pt}% + \setlength\labelsep{0pt}% + \listparindent\parindent}% + \item[]} +\def\endquotation{\end{list}} +\let\quote\quotation +\let\endquote\endquotation + +\skip\@mpfootins = \skip\footins +\fboxsep=6\p@ +\fboxrule=1\p@ + +% ******************* +% Table of contents * +% ******************* +\newcommand\@pnumwidth{4em} +\newcommand\@tocrmarg{2.55em plus 1fil} +\newcommand\@dotsep{1000} +\setcounter{tocdepth}{4} + +\def\numberline#1{\hbox to \@tempdima{{#1}}} + +\def\@authortocline#1#2#3#4#5{% + \vskip 1.5\p@ + \ifnum #1>\c@tocdepth \else + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\itshape #4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil}% + \par}% + \fi} + +\newcommand*\l@author{\@authortocline{2}{0pt}{30pt}} +\newcommand*\l@section{\@dottedtocline{3}{11pt}{20pt}} +\newcommand*\l@subsection{\@dottedtocline{4}{31pt}{29pt}} +\newcommand*\l@subsubsection[2]{} + + + +% *********** +% Footnotes * +% *********** + +\renewcommand\footnoterule{\bgroup% + \kern-3\p@ + \hrule \@height .5pt \@width 2pc + \hrule \@height 3.8pt \@width 0pt + \kern3\p@\egroup} +\def\@makefnmark{\@textsuperscript{\normalfont\@thefnmark}}% +\newcommand\@makefntext[1]{\noindent{\@makefnmark\enskip}#1} + +% *********** +% References * +% *********** + +\providecommand{\newblock}{} +\newenvironment{thebibliography}{% + \section{\bibname}% + \begingroup + \small + \begin{list}{}{% + \setlength{\topsep}{\z@}% + \setlength{\labelsep}{\z@}% + \settowidth{\labelwidth}{\z@}% + \setlength{\leftmargin}{4mm}% + \setlength{\itemindent}{-4mm}}\small} +{\end{list}\endgroup} + +\RequirePackage{natbib} + +\renewcommand\@biblabel[1]{#1.\hfill\hspace*{6pt}} + +\renewcommand\NAT@bibsetnum[1]{\settowidth\labelwidth{\@biblabel{#1}}% + \setlength{\leftmargin}{\labelwidth}\addtolength{\leftmargin}{\labelsep}% + \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}% + \ifNAT@openbib + \addtolength{\leftmargin}{\bibindent}% + \setlength{\itemindent}{-\bibindent}% + \setlength{\listparindent}{\itemindent}% + \setlength{\parsep}{0pt}% + \fi +} + +\def\bibsection{\section*{\centering\rm\textsc{References}}} +\def\bibfont{\fontsize{9bp}{11}\selectfont} + +%Math parameters + +\setlength{\jot}{5\p@} +\mathchardef\@m=1500 % adapted value + +\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m + \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} + +% Theorems +\def\th@plain{% +%% \let\thm@indent\noindent % no indent +\thm@headfont{\quad\scshape}% heading font is bold +\thm@notefont{\upshape\mdseries}% same as heading font +\thm@headpunct{.}% no period after heading +\thm@headsep 5\p@ plus\p@ minus\p@\relax +%% \let\thm@swap\@gobble +%% \thm@preskip\topsep +%% \thm@postskip\theorempreskipamount +\itshape % body font +} + +\vbadness=9999 +\tolerance=9999 +\doublehyphendemerits=10000 +\doublehyphendemerits 640000 +\finalhyphendemerits 1000000 + +\flushbottom +\frenchspacing +\ps@headings +%\twocolumn + +% Screen PDF compatability +\newcommand{\medline}[1]{% + \unskip\unskip\ignorespaces} + + +%%%%for smaller size text +\newenvironment{methods}{% + \begingroup +\def\section{% + \@startsection{section}{1}{\z@} + {-24\p@ plus -3\p@}{4\p@} + {\reset@font\raggedright\sffamilyfontbold\fontsize{10}{12}\selectfont}} + \def\subsection{% + \@startsection{subsection}{2}{\z@} + {-11\p@ plus -2\p@}{4\p@} + {\reset@font\raggedright\sffamilyfont\fontsize{9}{12}\selectfont}} +\def\subsubsection{% + \@startsection{subsubsection}{3}{\z@} + {-11\p@ plus -1\p@}{0.001em} + {\reset@font\normalfont\mathversion{bold}\normalsize\bfseries}} +\normalsize + \par} +{\par\endgroup\bigskip\@afterheading\@afterindentfalse} + + +\language=2 + +\hyphenation{Figure Table Figures Tables} + +%%%%%%%%%%%%%%% Biography +% +\RequirePackage{wrapfig}% +% +\newcount\wraplines% +\wraplines=8% +% +\newbox\@authorfigbox% +\newskip\@authorfigboxdim% +% +\newskip\biofigadjskip% +\biofigadjskip=0pt% +% +\def\authbiotextfont{\reset@font\fontsize{9bp}{11bp}\selectfont}% +% +\newenvironment{biography}[2]{\par\addvspace{11.5pt plus3.375pt minus1.6875pt}%\lineno@off% +\def\author##1{{\bfseries##1}}% +\if!#1!\def\@authorfig{}\else\def\@authorfig{{#1}}\fi% +\setbox\@authorfigbox=\hbox{#1}% +\@authorfigboxdim=\wd\@authorfigbox% +\advance\@authorfigboxdim by -10pt +\wraplines=9\fboxrule=1pt\fboxsep=6pt% +\noindent{% +\ifx\@authorfig\@empty\else\unskip% +\begin{wrapfigure}[\wraplines]{l}[0pt]{\@authorfigboxdim}%{38.25mm}% +\vskip-19pt\vskip\biofigadjskip% +\@authorfig% +\end{wrapfigure}% +\fi% +{\authbiotextfont#2\par}% +\par% +}}{\par\addvspace{10.5pt plus3.375pt minus1.6875pt}} +% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Theorem %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\RequirePackage{amsthm}% +% +\@ifpackageloaded{amsthm}{% +% +\let\proof\relax% +\let\endproof\relax% + +\def\@begintheorem#1#2[#3]{% + \deferred@thm@head{\the\thm@headfont \thm@indent + \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}% + \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}% + \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}% + \thm@swap\swappedhead\thmhead{#1}{#2}{#3}% + \the\thm@headpunct + \thmheadnl % possibly a newline. + \hskip\thm@headsep + }% + \ignorespaces +} + +\def\@endtheorem{\endtrivlist\@endpefalse} + + +\AtBeginDocument{% +% +\DeclareSymbolFont{AMSa}{U}{msa}{m}{n}% +\DeclareMathSymbol{\opensquare}{\mathord}{AMSa}{"03}% +\def\qedsymbol{\ensuremath{\opensquare}}% +% +\newenvironment{proof}[1][\proofname]{\par\removelastskip%\vspace*{2pt}% + \pushQED{\ensuremath{\qed}}% + \normalfont \topsep7.5\p@\@plus7.5\p@\relax% + \trivlist% + \item[\hskip\labelsep% + \itshape% + #1\ \@addpunct{}]\ignorespaces% +}{% + \popQED\endtrivlist\@endpefalse% +}}% +% +\def\thm@space@setup{% +\thm@preskip=12pt% +\thm@postskip=12pt} +% +%%%%%%%%%%%%%%%%%% StyleOne +% +\newtheoremstyle{thmstyleone}% Numbered +{12pt plus2pt minus1pt}% Space above +{12pt plus2pt minus1pt}% Space below +{\normalfont}% Body font +{0pt}% Indent amount +{\scshape}% Theorem head font +{}% Punctuation after theorem head +{1em}% Space after theorem headi +{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% + \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') +% +\newtheoremstyle{thmstyletwo}% Numbered +{12pt plus2pt minus1pt}% Space above +{12pt plus2pt minus1pt}% Space below +{\itshape}% Body font +{0pt}% Indent amount +{\normalfont\bfseries}% Theorem head font +{}% Punctuation after theorem head +{1em}% Space after theorem headi +{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }{#2}}% + \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') +% +\newtheoremstyle{thmstylethree}% Definition +{12pt plus2pt minus1pt}% Space above +{12pt plus2pt minus1pt}% Space below +{\normalfont}% Body font +{0pt}% Indent amount +{\bfseries}% Theorem head font +{}% Punctuation after theorem head +{1em}% Space after theorem headi +{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% + \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') +% +\newtheoremstyle{thmstylefour}% Proof +{12pt plus2pt minus1pt}% Space above +{12pt plus2pt minus1pt}% Space below +{\normalfont}% Body font +{0pt}% Indent amount +{\itshape}% Theorem head font +{}% Punctuation after theorem head +{1em}% Space after theorem headi +{\global\proofthmtrue\thmname{#1} \thmnote{#3}}% Theorem head spec (can be left empty, meaning `normal') +% +}{} + +\def\sbond{\ensuremath{\raise.25ex\hbox{${-}\!\!\!\!{-}$}}\kern -.9pt} +\def\dbond{\ensuremath{\raise.25ex\hbox{=$\!$=}}} +\def\tbond{\ensuremath{\raise.20ex\hbox{${\equiv}\!\!\!{\equiv}$}}} + +\newcommand{\query}[2][0pt]{}% + +\renewcommand{\dag}{{\mathversion{normal}$^{\dagger}$}} + +%% Additional Packages +\RequirePackage[countmax]{subfloat} +%\RequirePackage{subfig} +\usepackage{anyfontsize}% +\RequirePackage{multirow} +\RequirePackage{footnote} +\RequirePackage{url} +\RequirePackage{amsmath} +\RequirePackage{mathrsfs} +\RequirePackage{algorithm}% +\RequirePackage{algorithmicx}% +\RequirePackage{algpseudocode}% +\RequirePackage{listings}% +%\RequirePackage{appendix} +\RequirePackage{hyperref} +\RequirePackage{url}\def\UrlFont{} +\hypersetup{% + colorlinks, + breaklinks=true, + plainpages=false,% + citecolor=linkclr, + linkcolor=linkclr, + urlcolor=linkclr, + bookmarksopen=true,% + bookmarksnumbered=true, + bookmarksdepth=8, + unicode=true,% + pdfpagelayout={SinglePage},pdffitwindow=true}% + +\newcommand\appendix{\setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{equation}{0} + \setcounter{figure}{0}% + \def\thefigure{\Alph{section}.\arabic{figure}}% + \def\thetable{\Alph{section}.\arabic{table}}% + \def\thesection{\Alph{section}} + \def\thesubsection{\Alph{section}.\arabic{subsection}}% + \@addtoreset{equation}{section}% + \gdef\theequation{\Alph{section}.\arabic{equation}}} + +\def\endappendix{\setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{equation}{0}} + +\RequirePackage{tikz} + +\usetikzlibrary{svg.path} + +\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} + +\DeclareRobustCommand\ORCID[1]{% +\texorpdfstring{% +\setlength{\@curXheight}{\fontcharht\font`X}% +\href{https://orcid.org/#1}{\XeTeXLinkBox{\mbox{% +\begin{tikzpicture}[yscale=-\@OrigHeightRecip*\@curXheight, +xscale=\@OrigHeightRecip*\@curXheight,transform shape] +\pic{orcidlogo}; +\end{tikzpicture}% +}}}}{}} + +\def \@fpsadddefault {% + \edef \@fps {\@fps\csname fps@\@captype \endcsname}% +} + +%% End here %% + +\endinput From 3f5a2f37f63adb449f7ef415949b6b81540f6aab Mon Sep 17 00:00:00 2001 From: Thomas Vuillaume Date: Wed, 28 Jan 2026 13:55:04 +0100 Subject: [PATCH 5/5] add env for paper build --- .github/workflows/paper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/paper.yml b/.github/workflows/paper.yml index c371538..c57e006 100644 --- a/.github/workflows/paper.yml +++ b/.github/workflows/paper.yml @@ -28,7 +28,7 @@ jobs: echo "$HOME/.local/texlive/2024/bin/x86_64-linux" >> $GITHUB_PATH - name: Build Paper - run: pixi run paper + run: pixi run -e prod paper - uses: actions/upload-artifact@v6 with: