forked from Isabelle_DOF/Isabelle_DOF
340 lines
11 KiB
Plaintext
340 lines
11 KiB
Plaintext
|
%% Copyright (C) 2008-2019 Achim D. Brucker, https://www.brucker.ch
|
||
|
%%
|
||
|
%% License:
|
||
|
%% This program can be redistributed and/or modified under the terms
|
||
|
%% of the LaTeX Project Public License Distributed from CTAN
|
||
|
%% archives in directory macros/latex/base/lppl.txt; either
|
||
|
%% version 1.3c of the License, or (at your option) any later version.
|
||
|
%% OR
|
||
|
%% The 2-clause BSD-style license.
|
||
|
%%
|
||
|
%% SPDX-License-Identifier: LPPL-1.3c+ OR BSD-2-Clause
|
||
|
\NeedsTeXFormat{LaTeX2e}\relax
|
||
|
\ProvidesPackage{authorarchive}
|
||
|
[0000/00/00 Unreleased v1.1.1+%
|
||
|
Self-archiving information for scientific publications.]
|
||
|
%
|
||
|
\PassOptionsToPackage{hyphens}{url}
|
||
|
%
|
||
|
\RequirePackage{ifthen}
|
||
|
\RequirePackage[inline]{enumitem}
|
||
|
\RequirePackage{graphicx}
|
||
|
\RequirePackage{eso-pic}
|
||
|
\RequirePackage{intopdf}
|
||
|
\RequirePackage{kvoptions}
|
||
|
\RequirePackage{hyperref}
|
||
|
\RequirePackage{calc}
|
||
|
\RequirePackage{qrcode}
|
||
|
\RequirePackage{hvlogos}
|
||
|
%
|
||
|
%Better url breaking
|
||
|
\g@addto@macro{\UrlBreaks}{\UrlOrds}
|
||
|
%
|
||
|
% Option declarations
|
||
|
% -------------------
|
||
|
\SetupKeyvalOptions{
|
||
|
family=AA,
|
||
|
prefix=AA@
|
||
|
}
|
||
|
%
|
||
|
\DeclareStringOption[.]{bibtexdir}
|
||
|
\DeclareStringOption[https://duckduckgo.com/?q=]{baseurl}
|
||
|
\DeclareStringOption[.pdf]{suffix}
|
||
|
\DeclareStringOption[UNKNOWN PUBLISHER]{publisher}[]
|
||
|
\DeclareStringOption[UNKNOWN YEAR]{year}[]
|
||
|
\DeclareStringOption[]{key}[]
|
||
|
\DeclareStringOption[]{doi}[]
|
||
|
\DeclareStringOption[]{doiText}[]
|
||
|
\DeclareStringOption[]{publisherurl}[]
|
||
|
\DeclareStringOption[UNKNOWN START PAGE]{startpage}[]
|
||
|
\DeclareStringOption[UNKNOWN PUBLICATION]{publication}[]
|
||
|
|
||
|
\DeclareBoolOption{ACM}
|
||
|
\DeclareBoolOption{acmart}
|
||
|
\DeclareBoolOption{ENTCS}
|
||
|
\DeclareBoolOption{IEEE}
|
||
|
\DeclareBoolOption{LNCS}
|
||
|
\DeclareBoolOption{LNI}
|
||
|
\DeclareBoolOption{nocopyright}
|
||
|
\DeclareBoolOption{nourl}
|
||
|
\DeclareBoolOption{nobib}
|
||
|
\DeclareBoolOption{orcidicon}
|
||
|
%\ProcessOptions\relax
|
||
|
|
||
|
|
||
|
% Default option rule
|
||
|
\DeclareDefaultOption{%
|
||
|
\ifx\CurrentOptionValue\relax
|
||
|
\PackageWarningNoLine{\@currname}{%
|
||
|
Unknown option `\CurrentOption'\MessageBreak
|
||
|
is passed to package `authorarchive'%
|
||
|
}%
|
||
|
% Pass the option to package color.
|
||
|
% Again it is better to expand \CurrentOption.
|
||
|
\expandafter\PassOptionsToPackage\expandafter{\CurrentOption}{color}%
|
||
|
\else
|
||
|
% Package color does not take options with values.
|
||
|
% We provide the standard LaTeX error.
|
||
|
\@unknownoptionerror
|
||
|
\fi
|
||
|
}
|
||
|
\ProcessKeyvalOptions*
|
||
|
|
||
|
% Provide command for dynamic configuration seutp
|
||
|
\def\authorsetup{\kvsetkeys{AA}}
|
||
|
|
||
|
% Load local configuration
|
||
|
\InputIfFileExists{authorarchive.config}{}{}
|
||
|
|
||
|
|
||
|
\newlength\AA@x
|
||
|
\newlength\AA@y
|
||
|
\newlength\AA@width
|
||
|
|
||
|
\def\AA@bibBibTeX{\AA@bibtexdir/\AA@key.bib}
|
||
|
\def\AA@bibBibTeXLong{\AA@bibtexdir/\AA@key.bibtex}
|
||
|
\def\AA@bibWord{\AA@bibtexdir/\AA@key.word.xml}
|
||
|
\def\AA@bibEndnote{\AA@bibtexdir/\AA@key.enw}
|
||
|
\def\AA@bibRIS{\AA@bibtexdir/\AA@key.ris}
|
||
|
|
||
|
\newboolean{AA@bibExists}
|
||
|
\setboolean{AA@bibExists}{false}
|
||
|
\IfFileExists{\AA@bibBibTeX}{\setboolean{AA@bibExists}{true}}{}
|
||
|
\IfFileExists{\AA@bibBibTeXLong}{\setboolean{AA@bibExists}{true}}{}
|
||
|
\IfFileExists{\AA@bibWord}{\setboolean{AA@bibExists}{true}}{}
|
||
|
\IfFileExists{\AA@bibEndnote}{\setboolean{AA@bibExists}{true}}{}
|
||
|
\IfFileExists{\AA@bibRIS}{\setboolean{AA@bibExists}{true}}{}
|
||
|
|
||
|
\setlength\AA@x{1in+\hoffset+\oddsidemargin}
|
||
|
|
||
|
\newcommand{\authorcrfont}{\footnotesize}
|
||
|
\newcommand{\authorat}[1]{\AtPageUpperLeft{\put(\LenToUnit{\AA@x},\LenToUnit{.2cm-\paperheight}){#1}}}
|
||
|
\newcommand{\authorwidth}[1]{\setlength{\AA@width}{#1}}
|
||
|
\setlength{\AA@width}{\textwidth}
|
||
|
|
||
|
\def\AA@pageinfo{}
|
||
|
\ifthenelse{\equal{\AA@startpage}{UNKNOWN START PAGE}}{%
|
||
|
}{%
|
||
|
\setcounter{page}{\AA@startpage}%
|
||
|
\def\AA@pageinfo{pp. \thepage--\pageref{\aa@lastpage}, }
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
%%%% sig-alternate.cls
|
||
|
\ifAA@ACM%
|
||
|
\ifthenelse{\equal{\AA@publisher}{UNKNOWN PUBLISHER}}{%
|
||
|
\setkeys{AA}{publisher=ACM}
|
||
|
}{}
|
||
|
\global\boilerplate={}
|
||
|
\global\copyrightetc={}
|
||
|
\renewcommand{\conferenceinfo}[2]{}
|
||
|
\renewcommand{\authorcrfont}{\scriptsize}
|
||
|
\setlength\AA@x{1in+\hoffset+\oddsidemargin}
|
||
|
\setlength\AA@y{-\textheight+\topmargin+\headheight-\footskip} % -\voffset-\topmargin-\headheight-\footskip}
|
||
|
\renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},\LenToUnit{\AA@y}){#1}}
|
||
|
\setlength{\AA@width}{\columnwidth}
|
||
|
\fi
|
||
|
%
|
||
|
%%%% acmart.cls
|
||
|
\ifAA@acmart%
|
||
|
\ifthenelse{\equal{\AA@publisher}{UNKNOWN PUBLISHER}}{%
|
||
|
\setkeys{AA}{publisher=ACM}
|
||
|
}{}
|
||
|
\renewcommand{\authorat}[1]{\AtPageUpperLeft{\put(\LenToUnit{\AA@x},\LenToUnit{0.2cm-\paperheight}){#1}}}
|
||
|
\setlength{\AA@width}{\textwidth}
|
||
|
\fi
|
||
|
%
|
||
|
%%%% LNCS
|
||
|
\ifAA@LNCS%
|
||
|
\ifAA@orcidicon%
|
||
|
\renewcommand{\orcidID}[1]{\href{https://orcid.org/#1}{%
|
||
|
\textsuperscript{\,\includegraphics[height=2\fontcharht\font`A]{vector_iD_icon}}}}
|
||
|
\else\relax\fi%
|
||
|
%
|
||
|
\ifthenelse{\equal{\AA@publisher}{UNKNOWN PUBLISHER}}{%
|
||
|
\setkeys{AA}{publisher=Springer-Verlag}
|
||
|
}{}
|
||
|
\renewcommand{\authorcrfont}{\scriptsize}
|
||
|
\@ifclasswith{llncs}{a4paper}{%
|
||
|
\ExplSyntaxOn
|
||
|
\@ifundefined{pdfmanagement_add:nnn}{%
|
||
|
\pdfpagesattr{/CropBox [92 114 523 780]}%
|
||
|
}{%
|
||
|
\pdfmanagement_add:nnn {Pages}{CropBox}{[92~114~523~780]}
|
||
|
}%
|
||
|
\ExplSyntaxOff
|
||
|
\renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},40){#1}}%
|
||
|
}{%
|
||
|
\ExplSyntaxOn
|
||
|
\@ifundefined{pdfmanagement_add:nnn}{%
|
||
|
\pdfpagesattr{/CropBox [92 65 523 731]}% LNCS page: 152x235 mm
|
||
|
}{%
|
||
|
\pdfmanagement_add:nnn {Pages}{CropBox}{[92~62~523~731]}
|
||
|
}%
|
||
|
\ExplSyntaxOff
|
||
|
\renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},23){#1}}
|
||
|
}
|
||
|
\setlength{\AA@width}{\textwidth}
|
||
|
\setcounter{tocdepth}{2}
|
||
|
\fi
|
||
|
%
|
||
|
%%%% LNI
|
||
|
\ifAA@LNI%
|
||
|
\ifthenelse{\equal{\AA@publisher}{UNKNOWN PUBLISHER}}{%
|
||
|
\setkeys{AA}{publisher=GI}
|
||
|
}{}
|
||
|
\renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},35){#1}}
|
||
|
\renewcommand{\authorcrfont}{\scriptsize}
|
||
|
\pdfpagesattr{/CropBox [70 65 526.378 748.15]} % TODO
|
||
|
\setlength{\AA@width}{\textwidth}
|
||
|
\setcounter{tocdepth}{2}
|
||
|
\fi
|
||
|
%
|
||
|
%%%% ENTCS
|
||
|
\ifAA@ENTCS%
|
||
|
\addtolength{\voffset}{1cm}
|
||
|
\ifthenelse{\equal{\AA@publisher}{UNKNOWN PUBLISHER}}{%
|
||
|
\setkeys{AA}{publisher=Elsevier Science B.~V.}
|
||
|
}{}
|
||
|
\renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},\LenToUnit{-.5cm-\the\ht\AA@authoratBox}){#1}}
|
||
|
\renewcommand{\authorcrfont}{\scriptsize}
|
||
|
\setlength{\AA@width}{\textwidth}
|
||
|
\fi
|
||
|
%
|
||
|
%%%% IEEE
|
||
|
\ifAA@IEEE%
|
||
|
\ifthenelse{\equal{\AA@publisher}{UNKNOWN PUBLISHER}}{%
|
||
|
\setkeys{AA}{publisher=IEEE}
|
||
|
}{}
|
||
|
\renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},6){#1}}
|
||
|
\renewcommand{\authorcrfont}{\scriptsize}
|
||
|
\setlength{\AA@width}{\textwidth}
|
||
|
\setcounter{tocdepth}{2}
|
||
|
\fi
|
||
|
%
|
||
|
|
||
|
\hypersetup{%
|
||
|
draft = false,
|
||
|
bookmarksopen = true,
|
||
|
bookmarksnumbered= true,
|
||
|
pdfauthor = {\@author},
|
||
|
pdftitle = {\@title},
|
||
|
}
|
||
|
|
||
|
\@ifpackageloaded{totpages}{%
|
||
|
\def\aa@lastpage{TotPages}
|
||
|
}{%
|
||
|
\RequirePackage{lastpage}
|
||
|
\def\aa@lastpage{LastPage}
|
||
|
}
|
||
|
\newsavebox{\AA@authoratBox}
|
||
|
|
||
|
\AddToShipoutPicture*{%
|
||
|
\setlength{\unitlength}{1mm}%
|
||
|
\savebox{\AA@authoratBox}{%
|
||
|
\parbox{1.4cm}{%
|
||
|
\bgroup%
|
||
|
\normallineskiplimit=0pt%
|
||
|
\ifAA@nourl%
|
||
|
\ifx\AA@doi\@empty\relax%
|
||
|
\else%
|
||
|
\qrcode[hyperlink,height=1.17cm,padding]{https://doi.org/\AA@doi}%
|
||
|
\fi%
|
||
|
\else%
|
||
|
\qrcode[hyperlink,height=1.17cm,padding]{\AA@baseurl/\AA@key\AA@suffix}%
|
||
|
\fi%
|
||
|
\egroup%
|
||
|
}%
|
||
|
\ifAA@nourl\ifx\AA@doi\@empty\addtolength{\AA@width}{1.4cm}\fi\fi
|
||
|
\parbox{\AA@width-1.4cm}{\authorcrfont%
|
||
|
\ifAA@LNCS%
|
||
|
\AA@publication, \AA@pageinfo \AA@year. %
|
||
|
\ifAA@nocopyright\else
|
||
|
\textcopyright~\AA@year~\AA@publisher.
|
||
|
\fi
|
||
|
This is the author's
|
||
|
version of the work. It is posted
|
||
|
\ifAA@nourl\relax\else%
|
||
|
at \url{\AA@baseurl/\AA@key\AA@suffix} %
|
||
|
\fi
|
||
|
\ifAA@nocopyright\relax\else
|
||
|
by permission of \AA@publisher{}
|
||
|
\fi
|
||
|
for your personal use.
|
||
|
\ifx\AA@doi\@empty%
|
||
|
\relax
|
||
|
\else
|
||
|
The final publication is available at Springer via
|
||
|
\ifx\AA@doiText\@empty%
|
||
|
\url{https://doi.org/\AA@doi}.
|
||
|
\else
|
||
|
\href{https://doi.org/\AA@doi}{\AA@doiText}.
|
||
|
\fi
|
||
|
\fi
|
||
|
\else
|
||
|
\ifAA@nocopyright\relax\else
|
||
|
\textcopyright~\AA@year~\AA@publisher. %
|
||
|
\fi%
|
||
|
This is the author's
|
||
|
version of the work. It is posted
|
||
|
\ifAA@nourl\relax\else%
|
||
|
at \url{\AA@baseurl/\AA@key\AA@suffix} %
|
||
|
\fi
|
||
|
\ifAA@nocopyright\relax\else
|
||
|
by permission of \AA@publisher{} %
|
||
|
\fi
|
||
|
for your personal use. Not for redistribution. The definitive
|
||
|
version was published in \emph{\AA@publication}, \AA@pageinfo \AA@year%
|
||
|
\ifx\AA@doi\@empty%
|
||
|
\ifx\AA@publisherurl\@empty%
|
||
|
.%
|
||
|
\else
|
||
|
\url{\AA@publisherurl}.%
|
||
|
\fi
|
||
|
\else
|
||
|
\ifx\AA@doiText\@empty%
|
||
|
, doi: \href{https://doi.org/\AA@doi}{\AA@doi}.%
|
||
|
\else
|
||
|
, doi: \href{https://doi.org/\AA@doi}{\AA@doiText}.%
|
||
|
\fi
|
||
|
\fi
|
||
|
\fi
|
||
|
\ifAA@nobib\relax\else%
|
||
|
\ifthenelse{\boolean{AA@bibExists}}{%
|
||
|
\hfill
|
||
|
\begin{itemize*}[label={}, itemjoin={,}]
|
||
|
\IfFileExists{\AA@bibBibTeX}{%
|
||
|
\item \attachandlink{\AA@bibBibTeX}[application/x-bibtex]{BibTeX entry of this paper}{\BibTeX}%
|
||
|
}{%
|
||
|
\IfFileExists{\AA@bibBibTeXLong}{%
|
||
|
\item \attachandlink[\AA@key.bib]{\AA@bibBibTeXLong}[application/x-bibtex]{BibTeX entry of this paper}{\BibTeX}%
|
||
|
}{%
|
||
|
\typeout{No file \AA@bibBibTeX{} (and no \AA@bibBibTeXLong) found. Not embedded reference in BibTeX format.}%
|
||
|
}%
|
||
|
}%
|
||
|
\IfFileExists{\AA@bibWord}{%
|
||
|
\item \attachandlink{\AA@bibWord}[application/xml]{XML entry of this paper (e.g., for Word 2007 and later)}{Word}%
|
||
|
}{%
|
||
|
\typeout{No file \AA@bibWord{} found. Not embedded reference for Word 2007 and later.}%
|
||
|
}%
|
||
|
\IfFileExists{\AA@bibEndnote}{%
|
||
|
\item \attachandlink{\AA@bibEndnote}[application/x-endnote-refer]{Endnote entry of this paper}{EndNote}%
|
||
|
}{%
|
||
|
\typeout{No file \AA@bibEndnote{} found. Not embedded reference in Endnote format.}%
|
||
|
}%
|
||
|
\IfFileExists{\AA@bibRIS}{%
|
||
|
\item \attachandlink{\AA@bibRIS}[application/x-research-info-systems]{RIS entry of this paper}{RIS}%
|
||
|
}{%
|
||
|
\typeout{No file \AA@bibRIS{} found. Not embedded reference in RIS format.}%
|
||
|
}%
|
||
|
\end{itemize*}\\
|
||
|
}{%
|
||
|
\PackageError{authorarchive}{No bibliographic files found. Specify option 'nobib' if this is intended.}
|
||
|
}
|
||
|
\fi
|
||
|
}
|
||
|
}
|
||
|
\authorat{\raisebox{\the\ht\AA@authoratBox}{\usebox{\AA@authoratBox}}}
|
||
|
}
|