%% %% This is file `quantumview.cls', %% it provides the quantumview class for typesetting perspective articles in %% Quantum - the open journal for quantum science %% %% Copyright 2020, 2021 %% Verein zur Förderung des Open Access Publizierens in den Quantenwissenschaften %% (https://quantum-journal.org/about/) %% %% It is derived from `quantumarticle.cls' available from Quantum. %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c %% 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.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] \def\quantumviewversion{5.1} \ProvidesClass{quantumview} [2020/10/27 v\quantumviewversion class for Quantum - the open journal for quantum science (https://quantum-journal.org)] \RequirePackage{xkeyval} \RequirePackage{etoolbox} \newcommand*\@ptsize{} \newtoggle{@restonecol} \newtoggle{@html} \togglefalse{@html} \DeclareOptionX{html}{\toggletrue{@html}} \setlength\paperheight{297mm}% \setlength\paperwidth{210mm} \renewcommand*\@ptsize{1} \ProcessOptionsX \input{size1\@ptsize.clo} \newcommand{\@tag}[2]{<#1>#2} \RequirePackage{soul} \newcommand{\corr}[2]{\textcolor{red}{\st{#1}}\textcolor{blue}{#2}} \newcommand{\ins}[1]{\textcolor{red}{#1}} \iftoggle{@html}{\renewcommand*\familydefault{\ttdefault}}{} \AtBeginDocument{ % avoid bitmap fonts by loading lmodern or at least checking for cm-super \IfFileExists{lmodern.sty}{ \RequirePackage{lmodern} }{} % Define a revtex-style openone symbol \IfFileExists{bbm.sty}{ \RequirePackage{bbm} \DeclareRobustCommand\openone{\mathbbm{1}} }{ \IfFileExists{dsfont.sty}{ \RequirePackage{dsfont} \DeclareRobustCommand\openone{\mathds{1}} }{ % This uses a similar technique to {revtex4-1}'s openone, % namely two overstruck numeral 1s, but implemented using mboxes % and math kerning as suggested by The Comprehensive LaTeX Symbol List. \DeclareRobustCommand\openone{{\mbox{\small1}\mkern-5.5mu1}} } } \RequirePackage{xcolor} \definecolor{quantumviolet}{HTML}{53257F} %Quantum violet \definecolor{quantumgray}{HTML}{555555} %Quantum gray \iftoggle{@html}{ \RequirePackage{verbatim} \RequirePackage[draft]{graphicx} }{} } \AfterEndPreamble{ \iftoggle{@html}{ % remove stry hyphens in HTML \righthyphenmin=62 \lefthyphenmin=62 % convert other commands \renewcommand{\emph}[1]{\@tag{em}{#1}} \renewcommand{\textit}[1]{\@tag{i}{#1}} \renewcommand{\textbf}[1]{\@tag{b}{#1}} \renewcommand{\texttt}[1]{\@tag{tt}{#1}} \renewcommand{\textsuperscript}[1]{\@tag{sup}{#1}} \renewcommand{\textsubscript}[1]{\@tag{sub}{#1}} \renewcommand{\cite}[1]{{\textbackslash}cite\{\detokenize{#1}\}} \renewcommand{\label}[1]{{\textbackslash}label\{\detokenize{#1}\}} \renewcommand{\ref}[1]{{\textbackslash}ref\{\detokenize{#1}\}} \renewcommand{\section}[1]{\noindent\@tag{h2}{#1}\\ } \renewcommand{\subsection}[1]{\noindent\@tag{h3}{#1}\\ } \renewcommand{\subsubsection}[1]{\noindent\@tag{h4}{#1}\\ } \renewcommand{\paragraph}[1]{\par ~\\\noindent
\@tag{b}{#1}} \renewenvironment{equation} {\endgraf \noindent {\textbackslash}begin\{equation\} \verbatim} {\endverbatim {\textbackslash}end\{equation\} \endgraf} \renewenvironment{align} {\endgraf \noindent {\textbackslash}begin\{align\} \verbatim} {\endverbatim {\textbackslash}end\{align\} \endgraf} \renewenvironment{eqnarray} {\endgraf \noindent {\textbackslash}begin\{eqnarray\} \verbatim} {\endverbatim {\textbackslash}end\{eqnarray\} \endgraf} % This solution for itemize and enumerate is due to David Carlisle from tex.stackexchange \def\itemize{% \par\noindent \par \let\item\olditem} \def\enumerate{% \par\noindent
    \let\zz\relax \let\olditem\item \def\item{\zz\par\indent
  1. \def\zz{\ifhmode\unskip\fi
  2. \par}} } \def\endenumerate{\zz\endgraf\noindent
\par \let\item\olditem} \def\@@addnewlinebetween#1{#1 \\ \noindent } \def\@affiliationsonly{\forlistloop{\@@addnewlinebetween}{\affiliations}} \renewcommand{\@maketitle}{% \noindent {\footnotesize Title:} \\ \noindent {\@title} \\ \noindent {\footnotesize Author:} \\ \noindent \@authorsonly \\ \noindent {\footnotesize Affiliations:} \\ \noindent \@affiliationsonly \par\noindent\rule{\textwidth}{0.4pt} \vspace{1.5em} } \renewcommand{\bibliography}[1]{~} % convert links \renewcommand{\href}[2]{#2} }{} } \setcounter{topnumber}{2} \renewcommand*\topfraction{.7} \setcounter{bottomnumber}{1} \renewcommand*\bottomfraction{.3} \setcounter{totalnumber}{3} \renewcommand*\textfraction{.2} \renewcommand*\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \renewcommand*\dbltopfraction{.7} \renewcommand*\dblfloatpagefraction{.5} \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% \let\@mkboth\markboth \def\sectionmark##1{% \markright {\MakeUppercase{% \ifnumgreater{\c@secnumdepth}{\m@ne} {\thesection\quad} {} ##1}}% }% }% \def\ps@myheadings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\slshape\leftmark}% \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% \let\@mkboth\@gobbletwo \let\sectionmark\@gobble \let\subsectionmark\@gobble } \newcommand\maketitle{\par \begingroup \renewcommand\thefootnote{\@fnsymbol\c@footnote}% \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% \long\def\@makefntext##1{\parindent 1em\noindent \hb@xt@1.8em{% \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% \global\@topnum\z@ % Prevents figures from going at top of page. \@maketitle \thispagestyle{fancy}%\@thanks \endgroup \setcounter{footnote}{0}% \global\let\thanks\relax \global\let\maketitle\relax \global\let\@maketitle\relax % \global\let\@thanks\@empty % \global\let\@author\@empty % \global\let\@date\@empty % \global\let\@title\@empty \global\let\title\relax \global\let\author\relax \global\let\date\relax \global\let\and\relax } \def\@maketitle{% \sffamily \null \let \footnote \thanks \noindent% \begin{minipage}{\textwidth}% \noindent{\huge\hyphenpenalty=5000 \@printtitle\par}% \end{minipage}% \vskip 1.5em% \begin{flushleft}% \noindent \@printauthors \end{flushleft}% \vskip 1em% \noindent\@printaffiliations \vskip 0em% \ifdefempty{\@date}{}{\noindent{\footnotesize\color{quantumgray}\@date}}% \par \vskip 1.5em \makeatletter% \begingroup \hypersetup{% pdftitle={\detokenize\expandafter{\@title}}, pdfauthor={\@authorsonly}, pdfkeywords={\@keywords}, pdfcreator={LaTeX with hyperref package and class quantumview \csname ver@quantumview.cls\endcsname}, }% \endgroup \makeatother% } \setcounter{secnumdepth}{3} \newcounter {part} \newcounter {section} \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] \renewcommand*\thepart {\@Roman\c@part} \renewcommand*\thesection {\@arabic\c@section} \renewcommand*\thesubsection {\thesection.\@arabic\c@subsection} \renewcommand*\thesubsubsection{\thesubsection.\@arabic\c@subsubsection} \renewcommand*\theparagraph {\thesubsubsection.\@arabic\c@paragraph} \renewcommand*\thesubparagraph {\theparagraph.\@arabic\c@subparagraph} \newcommand\part{% \ifbool{@noskipsec}{\leavevmode}{} \par \addvspace{4ex}% \boolfalse{@afterindent} \secdef\@part\@spart} \def\@part[#1]#2{% \ifnumgreater{\c@secnumdepth}{\m@ne} {\refstepcounter{part}\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}} {\addcontentsline{toc}{part}{#1}} {\parindent \z@ \raggedright \interlinepenalty \@M \normalfont \ifnumgreater{\c@secnumdepth}{\m@ne}{\Large\bfseries \partname\nobreakspace\thepart\par\nobreak}{} \huge \bfseries #2% \markboth{}{}\par}% \nobreak \vskip 3ex \@afterheading% } \def\@spart#1{% {\parindent \z@ \raggedright \interlinepenalty \@M \normalfont \huge \bfseries #1\par}% \nobreak \vskip 3ex \@afterheading} \newcommand*\section{\@startsection {section}{1}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% {\normalfont\Large\sffamily}} \newcommand*\subsection{\@startsection{subsection}{2}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% {\normalfont\large\sffamily}} \newcommand*\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% {\normalfont\normalsize\sffamily}} \newcommand*\paragraph{\@startsection{paragraph}{4}{\z@}% {3.25ex \@plus1ex \@minus.2ex}% {-1em}% {\normalfont\normalsize\bfseries}} \newcommand*\subparagraph{\@startsection{subparagraph}{5}{\parindent}% {3.25ex \@plus1ex \@minus .2ex}% {-1em}% {\normalfont\normalsize\bfseries}} \setlength\leftmargini{2.5em} \leftmargin \leftmargini \setlength\leftmarginii {2.2em} \setlength\leftmarginiii {1.87em} \setlength\leftmarginiv {1.7em} \setlength\leftmarginv {1em} \setlength\leftmarginvi {1em} \setlength \labelsep {.5em} \setlength \labelwidth{\leftmargini} \addtolength\labelwidth{-\labelsep} \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \renewcommand*\theenumi{\@arabic\c@enumi} \renewcommand*\theenumii{\@alph\c@enumii} \renewcommand*\theenumiii{\@roman\c@enumiii} \renewcommand*\theenumiv{\@Alph\c@enumiv} \newcommand*\labelenumi{\theenumi.} \newcommand*\labelenumii{(\theenumii)} \newcommand*\labelenumiii{\theenumiii.} \newcommand*\labelenumiv{\theenumiv.} \renewcommand*\p@enumii{\theenumi} \renewcommand*\p@enumiii{\theenumi(\theenumii)} \renewcommand*\p@enumiv{\p@enumiii\theenumiii} \newcommand*\labelitemi{\textbullet} \newcommand*\labelitemii{\normalfont\bfseries \textendash} \newcommand*\labelitemiii{\textasteriskcentered} \newcommand*\labelitemiv{\textperiodcentered} \newenvironment{description} {\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} {\endlist} \newcommand*\descriptionlabel[1]{\hspace\labelsep \normalfont\bfseries #1} \newenvironment{abstract}{% \ifdefempty{\maketitle}{\relax{}}{\maketitle} \vskip 1em \quotation% } { \endquotation\vskip 2em% } \newenvironment{verse} {\let\\\@centercr \list{}{\itemsep \z@ \itemindent -1.5em% \listparindent\itemindent \rightmargin \leftmargin \advance\leftmargin 1.5em}% \item\relax} {\endlist} \newenvironment{quotation} {\list{}{\listparindent 1.5em% \itemindent \listparindent \rightmargin \leftmargin \parsep \z@ \@plus\p@}% \item\relax} {\endlist} \newenvironment{quote} {\list{}{\rightmargin\leftmargin}% \item\relax} {\endlist} \newcommand*\appendix{\par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@Alph\c@section}} \setlength\arraycolsep{5\p@} \setlength\tabcolsep{6\p@} \setlength\arrayrulewidth{.4\p@} \setlength\doublerulesep{2\p@} \setlength\tabbingsep{\labelsep} \skip\@mpfootins = \skip\footins \setlength\fboxsep{3\p@} \setlength\fboxrule{.4\p@} \renewcommand*\theequation {\@arabic\c@equation} \newcounter{figure} \renewcommand*\thefigure {\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename\nobreakspace\thefigure} \newenvironment{figure} {\@float{figure}} {\end@float} \newenvironment{figure*} {\@dblfloat{figure}} {\end@dblfloat} \newcounter{table} \renewcommand*\thetable{\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename\nobreakspace\thetable} \newenvironment{table} {\@float{table}} {\end@float} \newenvironment{table*} {\@dblfloat{table}} {\end@dblfloat} \newlength\abovecaptionskip \newlength\belowcaptionskip \setlength\abovecaptionskip{10\p@} \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{#1: #2}% \ifdimgreater{\wd\@tempboxa}{\hsize} {#1: #2\par} {\global\boolfalse{@minipage} \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}}% \vskip\belowcaptionskip} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\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} \DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} \DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} \newcommand*\@pnumwidth{1.55em} \newcommand*\@tocrmarg{2.55em} \newcommand*\@dotsep{4.5} \setcounter{tocdepth}{3} % We use a trick from Ivan Andrus (https://stackoverflow.com/a/2785740) % to hide the "\section*{Contents}" command from the table of contents % to avoid getting an ugly duplication of the Contents header inside % the table itself. % % This trick consists of temporarily redefining \addcontentsline to % do nothing during the expansion of the arguments to \tocless. \newcommand{\nocontentsline}[3]{} \newcommand{\tocless}[2]{\bgroup\let\addcontentsline=\nocontentsline#1{#2}\egroup} \newcommand\tableofcontents{% \tocless{\section*}{\contentsname \@mkboth{% \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% \@starttoc{toc}% } \newcommand*\l@part[2]{% \ifnumgreater{\c@tocdepth}{-2}{\relax \addpenalty\@secpenalty \addvspace{2.25em \@plus\p@}% \setlength\@tempdima{3em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth {\leavevmode \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par \nobreak \endgroup }{}% } \newcommand*\l@section[2]{% \ifnumgreater{\c@tocdepth}{\z@}{ \addpenalty\@secpenalty \addvspace{1.0em \@plus\p@}% \setlength\@tempdima{1.5em}% \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \leavevmode \bfseries \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \endgroup }{}% } \newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} \newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} \newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} \newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}} \newcommand\listoffigures{% \section*{\listfigurename}% \@mkboth{\MakeUppercase\listfigurename}% {\MakeUppercase\listfigurename}% \@starttoc{lof}% } \newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} \newcommand\listoftables{% \section*{\listtablename}% \@mkboth{% \MakeUppercase\listtablename}% {\MakeUppercase\listtablename}% \@starttoc{lot}% } \let\l@table\l@figure % Declare a new \acknowledgements command for {revtex4-1} % compatability. \newcommand*{\acknowledgmentsname}{Acknowledgments} \newcommand{\acknowledgments}[1]{% \section*{\acknowledgmentsname}% #1% } \newdimen\bibindent \setlength\bibindent{1.5em} \newenvironment{thebibliography}[1] {% \section*{\refname}% \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}% \list{\@biblabel{\@arabic\c@enumiv}}% {\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \@openbib@code \usecounter{enumiv}% \let\p@enumiv\@empty \renewcommand*\theenumiv{\@arabic\c@enumiv}}% \sloppy \clubpenalty4000 \@clubpenalty \clubpenalty \widowpenalty4000% \sfcode`\.\@m \setlength{\itemsep}{0pt plus 0.3ex} } {\def\@noitemerr {\@latex@warning{Empty `thebibliography' environment}}% \endlist} \newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} \let\@openbib@code\@empty \newenvironment{theindex}{% \toggletrue{@restonecol} \twocolumn[\section*{\indexname}]% \@mkboth{\MakeUppercase\indexname}% {\MakeUppercase\indexname}% \thispagestyle{fancy}\parindent\z@ \parskip\z@ \@plus .3\p@\relax \columnseprule \z@ \columnsep 35\p@ \let\item\@idxitem% } { \iftoggle{@restonecol} {\onecolumn} {\clearpage} } \newcommand\@idxitem{\par\hangindent 40\p@} \newcommand\subitem{\@idxitem \hspace*{20\p@}} \newcommand\subsubitem{\@idxitem \hspace*{30\p@}} \newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} \renewcommand*\footnoterule{% \kern-3\p@ \hrule\@width.4\columnwidth \kern2.6\p@} \newcommand*\@makefntext[1]{% \parindent 1em% \noindent \hb@xt@1.8em{\hss\@makefnmark}#1} \newcommand*\contentsname{Contents} \newcommand*\listfigurename{List of Figures} \newcommand*\listtablename{List of Tables} \newcommand*\refname{References} \newcommand*\indexname{Index} \newcommand*\figurename{Figure} \newcommand*\tablename{Table} \newcommand*\partname{Part} \newcommand*\appendixname{Appendix} \newcommand*\abstractname{Abstract} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \setlength\columnsep{20\p@} \setlength\columnseprule{0\p@} \setlength{\footnotesep}{\baselineskip} \RequirePackage{fancyhdr} \pagestyle{fancy} \renewcommand{\headrule}{} \renewcommand{\footrule}{\vbox to 0pt{\hbox to\headwidth{\color{quantumgray}\leaders\hrule\hfil}\vss}} \fancyhf{} \pagenumbering{arabic} \raggedbottom \onecolumn %title \def\@printtitle{% {% \edef\@titleexpanded{\detokenize\expandafter{\@title}}% \iftoggle{@xstring}% {\saveexploremode\exploregroups\StrSubstitute{\@titleexpanded}{ }{\%20}[\@titleforurl]\restoreexploremode}% {\gdef\@titleforurl{\@titleexpanded}}% \href{https://quantum-journal.org/?s=\@titleforurl\&reason=title-click}{% \color{quantumviolet}{% \@printtitletextwithappropriatefontsize\unskip% }% }% }% } % In the macro below we compute the appropriate font size of the title. % We use \Huge if the title fits on one line and \huge if it extends over more % than one line in font size \Huge \def\@titleatfontsize#1{% #1% \begingroup% \raggedright% \def\selectfont{\ClassError{quantumview}{When submitting to Quantum, you are not supposed to use \string\textbf{}, \string\bf, \string\textit{} or other font formating commands inside \string\title{}. Please remove all such commands from your \string\title{}. If you really have to change the font for some part of the title you can turn off this error by giving the option allowfontchangeintitle}{}}%solution from https://tex.stackexchange.com/questions/347596/disallowing-textbf-it-sffamily-in-argument-of-macro-or-environment \@title% \endgroup% }% \def\@printtitletextwithappropriatefontsize{% \newsavebox{\@titelsaveboxHuge}% \savebox{\@titelsaveboxHuge}{% \parbox[b]{\linewidth}{% \@titleatfontsize{\Huge}% }% }% \newsavebox{\@titelsaveboxHugeoneline}% \savebox{\@titelsaveboxHugeoneline}{% \@titleatfontsize{\Huge}% }% \newsavebox{\@titelsaveboxhhuge}% \savebox{\@titelsaveboxhhuge}{% \parbox[b]{\linewidth}{% \@titleatfontsize{\huge}% }% }% \ifdimgreater{\ht\@titelsaveboxHuge}{\ht\@titelsaveboxHugeoneline} {\@titleatfontsize{\huge}%\usebox{\@titelsaveboxhhuge}% using huge because \the\ht\@titelsaveboxHuge{} is larger than \the\ht\@titelsaveboxHugeoneline{} } {\@titleatfontsize{\Huge}% using Huge because \the\ht\@titelsaveboxHuge{} is not larger than \the\ht\@titelsaveboxHugeoneline{} } } %renew \title to allow for and ignore an optional argument \renewcommand{\title}[2][]{\gdef\@title{#2}} % author handling \newcounter{@authorcounter} \csdef{@authors}{} \renewcommand{\author}[2][]{% \ifstrempty{#1}{% \internal@author{#2}% }{% \internal@elseauthor{#1}{#2} }% \csdef{@authorname\the@authorcounter}{#2}% \def\@currentauthornumber{\the@authorcounter}% }% \def\addauthortolabel#1#2{% \ifcsdef{authorswithlabel#2}{}{\csdef{authorswithlabel#2}{}}% \listcsxadd{authorswithlabel#2}{#1}}% \def\internal@elseauthor#1#2{% \stepcounter{@authorcounter} \ifcsdef{@authors}{}{\csdef{@authors}{}}% \listadd{\@authors}{#2}% \forcsvlist{\addauthortolabel{\the@authorcounter}}{#1}% \ifbool{@startnewauthorgroup}{\csundef{@authorgroup}}{}% \ifcsdef{@authorgroup}{}{\csdef{@authorgroup}{}}% \listxadd{\@authorgroup}{\the@authorcounter}% \boolfalse{@startnewauthorgroup}% }% \def\internal@author#1{% \stepcounter{@authorcounter} \ifcsdef{@authors}{}{\csdef{@authors}{}}% \listadd{\@authors}{#1}% \ifbool{@startnewauthorgroup}{\csundef{@authorgroup}}{} \ifcsdef{@authorgroup}{}{\csdef{@authorgroup}{}}% \listxadd{\@authorgroup}{\the@authorcounter} \boolfalse{@startnewauthorgroup} } \def\@@spaceafter#1{#1 } \def\@@@comma{\def\@@@comma{,}} \def\@@commaspacebefore#1{\@@@comma{}#1} \def\@printauthor#1#2{\def\footnote{\ClassError{quantumview}{You must not put a \string\footnote{} command inside the argument of \string\author}{}}\mbox{\ifcsdef{author#1orcid}{\href{https://orcid.org/\csname author#1orcid\endcsname}{\color{black}#2}}{#2}}\ifnumcomp{\the@affiliationcounter}{>}{1}{\textsuperscript{\forlistcsloop{\@@commaspacebefore}{author#1affiliations}\unskip}}{}\ifnumcomp{#1}{<}{\the@authorcounter-1}{, }{\ifnumcomp{#1}{=}{\the@authorcounter-1}{\ifnumcomp{#1}{=}{1}{ and }{, and }}{}}} \def\@printauthors{% \newcounter{@authornum}% \large\forlistloop{\stepcounter{@authornum}% \ifcsdef{author\the@authornum hasextras}{% \insert\footins{\footnotesize% % \interlinepenalty\interfootnotelinepenalty % \splittopskip\footnotesep % \splitmaxdepth \dp\strutbox \floatingpenalty \@MM \hsize\dimexpr \linewidth\relax \@parboxrestore% % \flushleft% % \baselineskip=0pt% \@printauthorextrainfo{\the@authornum}\vspace{0.5\baselineskip}% }}{}% \@printauthor\the@authornum}{\@authors}% } \def\@@addcommabetween#1{#1, }%this adds an ugly extra comma at the end but the variant below is not expandable and therefore leads to ugly warnings: https://tex.stackexchange.com/questions/50978/macro-to-extract-typeset-plain-text-from-a-command %\def\@@addcommabetween#1{\ifdef{\firstauthoronly}{, }{\def\firstauthoronly{\empty}}#1} \def\@authorsonly{\forlistloop{\@@addcommabetween}{\@authors}} % affiliation handling \newbool{@startnewauthorgroup} \newcounter{@affiliationcounter} \def\@addaffiliation#1#2{ \ifcsdef{author#2affiliations}{}{\csdef{author#2affiliations}{}}% \listcsgadd{author#2affiliations}{#1} } \newcommand{\address}[2][]{\affiliation[#1]{#2}} %for compatibility with authblk \newcommand{\affil}[2][]{ \affiliation[#1]{#2}} \newcommand{\affiliation}[2][]{% \ifstrempty{#1}{% \internal@affiliation{#2}% }{% \elseinternal@affiliation{#1}{#2} }}% \def\elseinternal@affiliation#1#2{% \booltrue{@startnewauthorgroup} \ifcsdef{affiliations}{}{\csdef{affiliations}{}}% \expandafter\def\csname\detokenize{#2}\endcsname{#2}% \stepcounter{@affiliationcounter}% \listxadd{\affiliations}{\iftoggle{@html}{#2}{\detokenize{#2}}}% \csxdef{affiliation\detokenize{#2}number}{\the@affiliationcounter{}}% \ifcsdef{authorswithlabel#1}{% \forlistcsloop{\@addaffiliation{\csname affiliation\detokenize{#2}number\endcsname}}{authorswithlabel#1}% }{}% } \def\internal@affiliation#1{% \booltrue{@startnewauthorgroup} \ifcsdef{affiliations}{}{\csdef{affiliations}{}}% \expandafter\def\csname\detokenize{#1}\endcsname{#1} %to handle special characters such as \'a and \l we create a macro whose name is the detokenized version of #1 and that expands to #1 and later call it in \@printaffiliation \xifinlist{\detokenize{#1}}{\affiliations}{}{\stepcounter{@affiliationcounter}\listxadd{\affiliations}{\iftoggle{@html}{#1}{\detokenize{#1}}}\csxdef{affiliation\detokenize{#1}number}{\the@affiliationcounter{}}}% \forlistloop{\@addaffiliation{\csname affiliation\detokenize{#1}number\endcsname}}{\@authorgroup}% } \def\@printaffiliation#1#2{\ifnumcomp{\the@affiliationcounter}{>}{1}{\llap{\textsuperscript{#1}}}{}\csname #2\endcsname\ifnumcomp{#1}{<}{\the@affiliationcounter}{\newline}{}} \def\@printaffiliations{% \ifcsdef{affiliations}{}{\csdef{affiliations}{}}% \newcounter{@affiliationnum}% \ifnumcomp{\the@affiliationcounter}{>}{1}{% \settowidth{\leftskip}{\footnotesize\textsuperscript{\the@affiliationcounter}}% }{}% {\footnotesize\color{quantumgray}% \forlistloop{\stepcounter{@affiliationnum}\@printaffiliation\the@affiliationnum}{\affiliations}}% } %collaboration and altaffiliation \newcommand{\collaboration}[1]{\author{#1}} \newcommand{\altaffiliation}[2][]{\affiliation{#1#2}} % email, homepage, and thanks handling % be careful - this section is highly sensitive to the positioning of the % marks \def\@printauthorextrainfo#1{ \csname @authorname#1\endcsname: \ifcsdef{author#1emails} {% \forlistcsloop{\@@spaceafter}{author#1emails}% } {}% \ifcsdef{author#1homepages} {% \ifcsdef{author#1emails} {\unskip, } {}% \forlistcsloop{\@@spaceafter}{author#1homepages}% } {}% \ifcsdef{author#1thanks} {% \ifcsdef{author#1emails} {% \ifcsdef{author#1homepages} {\unskip, } {\unskip, }% } {% \ifcsdef{author#1homepages} {\unskip, } {}% }% \forlistcsloop{\@@spaceafter}{author#1thanks}% } {}% } \newcommand{\email}[2][]{% \ifcsdef{@currentauthornumber}{}{\ClassError{quantumview}{\string\email{} may only appear after the first \string\author{} command}{}} \@email{#1}{\href{mailto:#2}{#2}}} \newcommand{\homepage}[2][]{% \ifcsdef{@currentauthornumber}{}{\ClassError{quantumview}{\string\homepage{} may only appear after the first \string\author{} command}{}} \@homepage{#1}{\href{#2}{#2}}} \renewcommand{\thanks}[2][]{% \ifcsdef{@currentauthornumber}{}{\ClassError{quantumview}{\string\thanks{} may only appear after the first \string\author{} command}{}} \@thanks{#1}{#2}} \newcommand{\orcid}[2][]{% \ifcsdef{@currentauthornumber}{}{\ClassError{quantumview}{\string\orcid{} may only appear after the first \string\author{} command}{}} \@orcid{#1}{#2}} \def\@email#1#2{%} \@addemail{#1#2}{\@currentauthornumber} \csdef{author\@currentauthornumber hasextras}{} } \def\@homepage#1#2{% \ifcsdef{@currentauthornumber}{}{\def\@currentauthornumber{0}}%in case \homepage is called before the first author \@addhomepage{#1#2}{\@currentauthornumber} \csdef{author\@currentauthornumber hasextras}{} } \def\@thanks#1#2{% \ifcsdef{@currentauthornumber}{}{\def\@currentauthornumber{0}}%in case \thanks is called before the first author \@addthanks{#1#2}{\@currentauthornumber} \csdef{author\@currentauthornumber hasextras}{} } \def\@orcid#1#2{% \ifcsdef{@currentauthornumber}{}{\def\@currentauthornumber{0}}%in case \orcid is called before the first author \@addorcid{#1#2}{\@currentauthornumber} } \def\@addemail#1#2{ \ifcsdef{author#2emails}{}{\csdef{author#2emails}{}}% \listcsgadd{author#2emails}{#1} } \def\@addhomepage#1#2{ \ifcsdef{author#2homepages}{}{\csdef{author#2homepages}{}}% \listcsgadd{author#2homepages}{#1} } \def\@addthanks#1#2{ \ifcsdef{author#2thanks}{}{\csdef{author#2thanks}{}}% \listcsgadd{author#2thanks}{#1} } \def\@addorcid#1#2{ \csdef{author#2orcid}{#1}% } \newtoggle{@tikz} \IfFileExists{tikz.sty}{\toggletrue{@tikz}}{\togglefalse{@tikz}} \newtoggle{@xstring} \IfFileExists{xstring.sty}{\toggletrue{@xstring}}{\togglefalse{@xstring}} \AtBeginDocument{ \iftoggle{@xstring} {\RequirePackage{xstring}} {} \iftoggle{@tikz} {% \RequirePackage{tikz} \usetikzlibrary{calc} \newlength{\@eQ}%Capital Q height \newlength{\@w}%line width \newlength{\@rl}%rounding length \newlength{\@cw}%character width \newlength{\@ch}%lower case character height \newlength{\@cr}%corner radius \newlength{\@sl}%<> slant \newlength{\@xt}%<> x thickeness \DeclareRobustCommand{\Quantum}{% {\sffamily%\color{quantumviolet}% \setlength{\@eQ}{\dimexpr\fontcharht\font`Q\relax}% \setlength{\@w}{0.088\@eQ}% \setlength{\@rl}{0.2\@eQ}% \setlength{\@cw}{0.5\@eQ}% \setlength{\@ch}{0.65\@eQ}% \setlength{\@cr}{0.3\@w}% \setlength{\@sl}{0.22\@eQ}% \setlength{\@xt}{1.113588507968435\@w}%=math.sqrt(1/(1-pow(22./50.,2)))*\@w \tikz[baseline,x=\@eQ,y=\@eQ,every node/.append style={fill=none,inner sep=0pt,outer sep=0pt,node distance=0},rounded corners=\@cr]{% % <> leg in back % \fill[] (0,0.5) -- ++(\@sl,0.5) -- ++(\@xt,0) -- ++(-\@sl,-0.5) -- ++(\@sl,-0.5) -- ++(-\@xt,0) -- cycle; % \fill[xshift=.95\@eQ] (0,0.5) node (eastend) {} -- ++(-\@sl,0.5) -- ++(-\@xt,0) -- ++(\@sl,-0.5) -- ++(-\@sl,-0.5) -- ++(\@xt,0) -- cycle; % \begin{scope} % \clip[xshift=.95\@eQ,overlay] (0.5\@xt,0.5) -- ++(-\@sl,-0.5) -- (0,0) -- (0.5\@xt,0.5) ++(-2\@xt,0) -- ++(-\@sl,-0.5) -- ($(-2*\@sl,0)$) -- ++(\@sl,0.5) --cycle; % \fill[xshift=.95\@eQ] (0,0) -- ++(-\@sl,0.5) -- ++(-\@xt,0) -- ++(\@sl,-0.5) -- cycle; % \end{scope} \node[overlay,anchor=base west,opacity=0] {Q}; % <> leg in front \fill[] (0,0.5) -- ++(\@sl,0.5) -- ++(\@xt,0) -- ++(-\@sl,-0.5) -- ++(\@sl,-0.5) -- ++(-\@xt,0) -- cycle; \begin{scope}[xshift=\@eQ] \fill (0,0) -- ++(-\@sl,0.5) -- ++(-\@xt,0) -- ++(\@sl,-0.5) -- cycle; \clip[overlay,rounded corners=0] (-1.34\@xt,0) -- ++(-\@sl,0.5) -- ++(0,-0.5) -- cycle (0.34\@xt,0) -- ++($2*(-\@sl,0.5)$) -- (0.5\@xt,1) --cycle; \fill (0,0.5) node (eastend) {} -- ++(-\@sl,0.5) -- ++(-\@xt,0) -- ++(\@sl,-0.5) -- ++(-\@sl,-0.5) -- ++(\@xt,0) -- cycle; \end{scope} % u \def\@u##1{% \fill[##1] (0,\@ch) -- (0,1.06\@rl) to[out=-90,in=184,looseness=1.2,overlay] ($(\@cw-\@w,0)$) -- ($(\@cw,0)$) -- ++(0,\@ch) -- ++(-\@w,0) -- ++($(0,-\@ch) + (0,\@w)$) -- ($(\@cw-\@w,\@w)$) to[out=184,in=-90,looseness=1.1] ($(\@w,1.06\@rl)$) -- (\@w,\@ch) --cycle;} \@u{shift={($(current bounding box.south east)+(0.172\@eQ,0)$)}} \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {u}; % a \fill[shift={($(current bounding box.south east)+(0.110\@eQ,0)$)}] (\@cw,0) -- ++($(0,\@ch)-(0,\@rl)$) to[out=90,in=0,looseness=1.22] ++($(-1.22\@rl,\@rl)$) -- ($(\@w,\@ch)$) -- ++(0,-\@w) -- ($(1.22\@rl,\@ch-\@w)$) to[out=0,in=90,looseness=1.3,rounded corners=0] ($(\@cw,\@ch)-(\@w,\@rl)$) -- ($(\@cw,0)-(\@w,-\@w)$) -- ($(\@rl,\@w)$) to[out=180,in=-100,looseness=0.95,rounded corners=0] ($(1.05\@w,0.33\@ch)$) to[out=80,in=176,looseness=1.0] ($(\@cw-\@w,0.47\@ch)$) to[rounded corners=0] ++(0,-\@cr) to[rounded corners=0] ++($(0,\@cr+\@w)$) to[out=176,in=0] ($(1.2\@rl,0.48\@ch)+(0,\@w)$) to[out=180,in=90,rounded corners=0] ($(0.05\@w,0.33\@ch)$) to[out=-90,in=180,looseness=1.1,rounded corners=0] ($(\@rl,0)$) -- cycle; \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {a}; % \fill[shift={($(current bounding box.south east)+(0.110\@eQ,0)$)}] (\@cw,0) -- ++($(0,\@ch)-(0,\@rl)$) to[out=90,in=0,looseness=1.22] ++($(-1.22\@rl,\@rl)$) -- ($(\@w,\@ch-0.1\@w)$) -- ++(0.1\@w,-\@w) -- ($(1.22\@rl,\@ch-\@w)$) to[out=0,in=90,looseness=1.3,rounded corners=0] ($(\@cw,\@ch)-(\@w,\@rl)$) -- ($(\@cw,0)-(\@w,-\@w)$) -- % ($(\@rl,\@w)$) to[out=180,in=-100,looseness=0.95,rounded corners=0] ($(1.05\@w,0.33\@ch)$) to[out=80,in=176,looseness=1.0] ($(\@cw-\@w,0.47\@ch)$) to[rounded corners=0] ++(0,-\@cr) to[rounded corners=0] ++($(0,\@cr+\@w)$) to[out=176,in=0] ($(1.2\@rl,0.48\@ch)+(0,\@w)$) to[out=180,in=90,rounded corners=0] ($(0.05\@w,0.33\@ch)$) to[out=-90,in=180,looseness=1.1,rounded corners=0] ($(\@rl,0)$) -- cycle; % \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {a}; %n \fill[shift={($(current bounding box.south east)+(0.181\@eQ+\@cw,\@ch)$)},rotate=180] (0,\@ch) -- (0,\@rl) to[out=-90,in=180,looseness=1.22] ($(1.2\@rl,0)$) -- (\@cw,0) -- ++(0,\@ch) -- ++(-\@w,0) -- ++($(0,-\@ch) + (0,1.05\@w)$) to[out=182,in=-90,looseness=1.04] ($(\@w,\@rl)$) -- (\@w,\@ch) --cycle; \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {n}; % t \fill[shift={($(current bounding box.south east)+(0.111\@eQ,0)$)}] (\@w,0.9) [rounded corners=0] -- (\@w,\@ch) [rounded corners=\@cr] -- (0,\@ch) -- ++(0,-\@w) to[rounded corners=0] ++(\@w,0) -- (\@w,\@rl) to[out=-90,in=180,looseness=1.3,overlay] ($(\@w+\@rl,-0.07\@w)$) to[overlay] ++($(0.64\@cw-\@w-\@rl,0)$) -- ++(0,\@w) -- ++($(\@w+\@rl-0.64\@cw,0)$) to[out=180,in=-90,looseness=1.4] ($(2\@w,\@rl)$) -- ++($(0,\@ch-\@rl-\@w)$) -- ($(0.64\@cw,\@ch-\@w)$) -- ++(0,\@w) to[rounded corners=0] (2\@w,\@ch) -- ($(2\@w,0.9)$) --cycle; \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {t}; % u \@u{shift={($(current bounding box.south east)+(0.125\@eQ,0)$)}} % \fill[shift={($(current bounding box.south east)+(0.125\@eQ,0)$)}] (0,\@ch) -- (0,\@rl) to[out=-90,in=180] ($(\@rl,0)$) -- (\@cw,0) -- ++(0,\@ch) -- ++(-\@w,0) -- ++($(0,-\@ch) + (0,\@w)$) -- ($(\@rl,\@w)$) to[out=180,in=-90] ($(\@w,\@rl)$) -- (\@w,\@ch) --cycle; \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {u}; % m \fill[shift={($(current bounding box.south east)+(0.16\@eQ+1.93*\@cw-\@w,\@ch)$)},rotate=180] (0,\@ch) -- (0,\@rl) to[out=-90,in=180,looseness=1.2] ($(1.2\@rl,0)$) -- ($(1.93\@cw,0)-(\@w,0)$) -- ++(0,\@ch) -- ++(-\@w,0) -- ++($(0,-\@ch) + (0,1.05\@w)$) to[out=184,in=-4] ($(0.97\@cw,1.05\@w)+(0,0)$) -- ++($(0,-1.05\@w)+(0,\@ch)$) -- ++($(-\@w,0)$) -- ++($(0,-\@ch)+(0,1.05\@w)$) to[out=182,in=-90,looseness=1.04] ($(\@w,\@rl)$) -- (\@w,\@ch) --cycle; \node[overlay,anchor=base east,opacity=0] at (current bounding box.south east) {m}; }}} } {% \ClassWarning{quantumview}{The tikz package could not be found and the \string\Quantum command will not produce the Quantum logo, but fall back to outputting simply the text Quantum.} \DeclareRobustCommand{\Quantum}{Quantum} } } %elsearticle style extra header information \newcommand{\ead}[2][]{ \ifstrempty{#1}{ \email{#2} }{ \iftoggle{@xstring} {\IfStrEq{#1}{url}{\homepage{#2}}{\email{#2}}} {email{#2}} } } \AtEndPreamble{ \providecommand{\@elsearticlecommandsnotsupportederror}{\ClassError{quantumview}{The elsearticle style \string\cortext{}, \string\corref{}, \string\fntext{}, \string\fnref{}, \string\tnotetext{}, and \string\tnoteref{} commands are not supported by quantumview. Please refrain from using footnotes in the title part of your document and use the \string\tahnks{} command for author footnotes instead.}{}} \providecommand{\cortext}[2][]{\@elsearticlecommandsnotsupportederror} %corresponding author information \providecommand{\corref}[1]{\@elsearticlecommandsnotsupportederror} %corresponding author information reference \providecommand{\fntext}[2][]{\@elsearticlecommandsnotsupportederror} %author footnote \providecommand{\fnref}[1]{\@elsearticlecommandsnotsupportederror} %author footnot reference \providecommand{\tnotetext}[2][]{\@elsearticlecommandsnotsupportederror} %title footnote \providecommand{\tnoteref}[1]{\@elsearticlecommandsnotsupportederror} %title footnote reference } % set default options for hyperref to make links more pretty \PassOptionsToPackage{colorlinks=true,hyperindex}{hyperref} \PassOptionsToPackage{allcolors=quantumviolet}{hyperref} %enable DOIs if biblatex is used by default \PassOptionsToPackage{doi=true}{biblatex} \AtBeginDocument{% \RequirePackage{hyperref}% \@ifpackageloaded{natbib}{% \setlength{\bibsep}{0pt plus 0.3ex} \@ifpackageloaded{doi}{}{% \providecommand{\doi}[1]{} \renewcommand{\doi}[1]{\href{https://doi.org/\detokenize{#1}}{DOI: \detokenize{#1}}}% }% }{% \@ifpackageloaded{biblatex}{ \DeclareFieldFormat{doi}{\mkbibacro{DOI}\addcolon\space\href{https://doi.org/\detokenize{#1}}{\detokenize{#1}}} \setcounter{biburllcpenalty}{1000} \setcounter{biburlucpenalty}{1000} \setcounter{biburlnumpenalty}{1000} }{}% } } \def\@keywords{} \providecommand{\keywords}{} \renewcommand{\keywords}[1]{\def\@keywords{#1}} \newenvironment{acknowledgements}{\section*{Acknowledgements}}{} \AtBeginDocument{% \providecommand\text[1]{ \ClassError{quantumview}{To use the \string\text{} command please load the mathtools package}{} } } \PassOptionsToPackage{font={small,sf}}{caption} \AtEndPreamble{ \RequirePackage{caption} } \begingroup \catcode`\$=\active \protected\gdef$#1${\$\detokenize{#1}\$} \endgroup \iftoggle{@html}{ \AtBeginDocument{\catcode`\$=\active} }{} \endinput %% %% End of file `quantumview.cls'.