From c97246252f045d55b53d33ed13cb8ab54b22ce0b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 21 Feb 2018 23:33:35 +0000 Subject: authorarchive (21feb18) git-svn-id: svn://tug.org/texlive/trunk@46704 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/authorarchive/authorarchive.sty | 263 +++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/authorarchive/authorarchive.sty (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/authorarchive/authorarchive.sty b/Master/texmf-dist/tex/latex/authorarchive/authorarchive.sty new file mode 100644 index 00000000000..6493c16f37d --- /dev/null +++ b/Master/texmf-dist/tex/latex/authorarchive/authorarchive.sty @@ -0,0 +1,263 @@ +%% Copyright (C) 2008-2018 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 of the License, or any later version. +%% OR +%% The 2-clause BSD-style license. +\NeedsTeXFormat{LaTeX2e}\relax +\ProvidesClass{authorarchive} + [2018/02/21 v1.0.0% + Self-archiving information for scientific publications.] +% +\RequirePackage{ifthen} +\RequirePackage{graphicx} +\RequirePackage{hyperref} +\RequirePackage{eso-pic} +\RequirePackage{embedfile} +\RequirePackage{kvoptions} +\RequirePackage{calc} +\RequirePackage{qrcode} +% +% Option declarations +% ------------------- +\SetupKeyvalOptions{ + family=AA, + prefix=AA@ +} + +\DeclareStringOption[.]{bibtexdir} +\DeclareStringOption[https://duckduckgo.com/?q=]{baseurl} +\DeclareStringOption[.pdf]{suffix} +\DeclareStringOption[UNKOWN PUBLISHER]{publisher}[] +\DeclareStringOption[UNKOWN YEAR]{year}[] +\DeclareStringOption[]{key}[] +\DeclareStringOption[]{doi}[] +\DeclareStringOption[]{doiText}[] +\DeclareStringOption[]{publisherurl}[] +\DeclareStringOption[1]{startpage}[] +\DeclareStringOption[UNKNOWN PUBLICATION]{publication}[] + +\DeclareBoolOption{ACM} +\DeclareBoolOption{IEEE} +\DeclareBoolOption{LNCS} +\DeclareBoolOption{LNI} +\DeclareBoolOption{nocopyright} +\DeclareBoolOption{nourl} +\DeclareBoolOption{nobib} +\DeclareBoolOption{ENTCS} +%\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 + +\newcommand{\authorcrfont}{\footnotesize} +\newcommand{\authorat}[1]{\put(100,100){#1}} +\newcommand{\authorwidth}[1]{\setlength{\AA@width}{#1}} +\setlength{\AA@width}{\textwidth} + +\setcounter{page}{\AA@startpage} + +\ifAA@ACM% + \setkeys{AA}{publisher=ACM} + \global\boilerplate={} + \global\copyrightetc={} + \renewcommand{\conferenceinfo}[2]{} + \renewcommand{\authorcrfont}{\crnotice} + \setlength\AA@x{1in+\hoffset+\oddsidemargin} + \setlength\AA@y{-\textheight+\topmargin+\headheight} % -\voffset-\topmargin-\headheight-\footskip} + \renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},\LenToUnit{\AA@y}){#1}} + \setlength{\AA@width}{\columnwidth} +\fi +%%%% LNCS +\ifAA@LNCS% + \setkeys{AA}{publisher=Springer-Verlag} + \setlength\AA@x{1in+\hoffset+\oddsidemargin} + \renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},27){#1}} + \renewcommand{\authorcrfont}{\scriptsize} + \pdfpagesattr{/CropBox [92 65 523 731]}% LNCS page: 152x235 mm + \setlength{\AA@width}{\textwidth} + \setcounter{tocdepth}{2} +\fi +% +%%%% LNI +\ifAA@LNI% + \setkeys{AA}{publisher=GI} + \setlength\AA@x{1in+\hoffset+\oddsidemargin} + \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} + \setkeys{AA}{publisher=Elsevier Science B.~V.} + \setlength\AA@x{1in+\hoffset+\oddsidemargin} + \renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},-250){#1}} + \renewcommand{\authorcrfont}{\scriptsize} + \def\@oddfoot{} + \def\@evenfoot{} + \def\firstfootline{} + \headsep 8pt + \renewcommand\rightheadline{\ifnum\value{page}=\hypergetpageref{FirstPage}\relax + \else{\hfil\scriptsize\emph{\lastname / \AA@publication} \hfil {\rmfamily\thepage}}\fi} + \renewcommand\leftheadline{\scriptsize{\rmfamily\thepage} \hfil \emph{\lastname / + \AA@publication}\hfil} + % 467.717 x 680.315 pts + % \pdfpagesattr{/CropBox [70 110 535 850]} + \pdfpagesattr{/CropBox [70 95 535 775]} + \setlength{\AA@width}{\textwidth} +\fi +% +%%%% IEEE +\ifAA@IEEE% + \setkeys{AA}{publisher=IEEE Computer Society} + \setlength\AA@x{1in+\hoffset+\oddsidemargin} + \renewcommand{\authorat}[1]{\put(\LenToUnit{\AA@x},12){#1}} + \renewcommand{\authorcrfont}{\scriptsize} + \setlength{\AA@width}{\textwidth} + \setcounter{tocdepth}{2} +\fi +% + +\hypersetup{% + draft = false, + bookmarksopen = true, + bookmarksnumbered= true, + pdfauthor = {\@author}, + pdftitle = {\@title}, +} + +\ifAA@nobib\relax\else% + \AtBeginDocument{% + \IfFileExists{\AA@bibtexdir/\AA@key.bib}{% + \embedfile[filespec=\AA@key.bib,% + desc={BibTeX entry of this paper.},% + stringmethod=escape,% + mimetype=plain/text,% + ]{\AA@bibtexdir/\AA@key.bib}}{ + \typeout{No file \AA@bibtexdir/\AA@key.bib found. Not embedded reference in BibTeX format.} + }% + \IfFileExists{\AA@bibtexdir/\AA@key.enw}{% + \embedfile[filespec=\AA@key.enw,% + desc={Endnote entry of this paper.},% + stringmethod=escape,% + mimetype=plain/text,% + ]{\AA@bibtexdir/\AA@key.enw}}{ + \typeout{No file \AA@bibtexdir/\AA@key.enw found. Not embedded reference in Endnote format.} + }% + \IfFileExists{\AA@bibtexdir/\AA@key.ris}{% + \embedfile[filespec=\AA@key.ris,% + desc={RIS entry of this paper.},% + stringmethod=escape,% + mimetype=plain/text,% + ]{\AA@bibtexdir/\AA@key.ris}}{ + \typeout{No file \AA@bibtexdir/\AA@key.ris found. Not embedded reference in RIS format.} + }% + \IfFileExists{\AA@bibtexdir/\AA@key.word.xml}{% + \embedfile[filespec=\AA@key.word.xml,% + desc={XML entry of this paper (e.g., for Word 2007 and later).},% + stringmethod=escape,% + mimetype=plain/text,% + ]{\AA@bibtexdir/\AA@key.word.xml}}{ + \typeout{No file \AA@bibtexdir/\AA@key.word.xml found. Not embedded reference for Word 2007 and later.} + }% + }% +\fi +\AtEndDocument{\label{LastPage}} + +\AddToShipoutPicture*{% + \setlength{\unitlength}{1mm}% + \authorat{% + \ifAA@nourl\relax\else% + \raisebox{.5cm}[.5cm]{\qrcode[hyperlink,height=1.17cm,padding]{\AA@baseurl/\AA@key\AA@suffix}}% + \fi% + \authorcrfont\parbox[b]{\AA@width-1.4cm}{ + \ifAA@LNCS% + \AA@publication, pp. \thepage--\pageref{LastPage}, \AA@year.\\% + \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. + \ifx\AA@doi\@empty% + \relax + \else + The definitive + version was published with doi: + \ifx\AA@doiText\@empty% + \href{https://doi.org/\AA@doi}{\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}, pp.~\thepage--\pageref{LastPage}, \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 + } + } +} -- cgit v1.2.3