Merge branch 'koppor-patch-1'

This commit is contained in:
Achim D. Brucker 2018-02-18 16:44:50 +00:00
commit 3c2784dbac
8 changed files with 357 additions and 118 deletions

11
.editorconfig Normal file
View File

@ -0,0 +1,11 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.yaml]
indent_size = 4

163
.gitignore vendored
View File

@ -1,4 +1,36 @@
# ---> TeX
llncs.cls
*.bak?
# Created by https://www.gitignore.io/api/tex,macos,windows
### macOS ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### TeX ###
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
@ -7,34 +39,41 @@
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.brf
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
*Notes.bib
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
@ -47,11 +86,35 @@ acs-*.bib
# beamer
*.nav
*.pre
*.snm
*.vrb
#(e)ledmac/(e)ledpar
# changes
*.soc
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
@ -71,15 +134,21 @@ acs-*.bib
*.glg
*.glo
*.gls
*.glsdefs
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.gtex
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Comment the next line if you want to keep your tikz graphics files
*.tikz
*-tikzDictionary
@ -94,9 +163,12 @@ acs-*.bib
# minitoc
*.maf
*.mtc
*.mtc[0-9]
*.mtc[1-9][0-9]
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
@ -105,22 +177,39 @@ _minted*
# morewrites
*.mw
# mylatexformat
*.fmt
# nomencl
*.nlo
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
@ -129,10 +218,62 @@ sympy-plots-for-*.tex/
# todonotes
*.tdo
# easy-todo
*.lod
# xindy
*.xdy
# xypic precompiled matrices
*.xyc
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# Kile
*.backup
# KBibTeX
*~[0-9]*
# auto folder when using emacs and auctex
/auto/*
# expex forward references with \gathertags
*-tags.tex
### Windows ###
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.gitignore.io/api/tex,macos,windows

View File

@ -1,7 +1,19 @@
# authorarchive
A LaTeX style for producing author self-archiving copies of (academic)
papers.
> A LaTeX style for producing author self-archiving copies of (academic) papers.
<!-- toc -->
- [Installation](#installation)
- [Usage](#usage)
* [Boolean Switches](#boolean-switches)
* [Key/Value Options](#keyvalue-options)
- [Embedding Bibliography Entries](#embedding-bibliography-entries)
- [Development](#development)
- [Alternative Packages](#alternative-packages)
- [License](#license)
<!-- tocstop -->
## Installation
Copy `authorarchive.sty` in a directory that is searched by LaTeX
@ -37,9 +49,60 @@ be adapted easily to other layouts. For example,
\renewcommand{\authorcrfont}{\scriptsize}
\renewcommand{\authorat}[1]{\put(25,56.5){#1}}
```
works nicely for Acta Informatica.
works nicely for Acta Informatica.
### Boolean Switches
| Switch | Meaning |
| -- | -- |
| `nocopyright` | If present, no publisher's copyright notice is printed. Usual case for LNCS. |
| `nourl` | If present, no link to the publication is inserted. |
| `nobib` | If present, no embedding of bibliographic entries is made. |
### Key/Value Options
| Option | Default | Meaning |
| -- | -- | -- |
| `bibtexdir`| `.` | The directory where the bibliography entries are listed. |
| `baseurl` | https://git.logicalhacking.com/adbrucker/authorarchive/src/master | The URL used as prefix for building the links. |
| `suffix` | `.pdf` | The suffix to use at links. |
| `publisher` | `UNKOWN PUBLISHER` | The name of the publisher. Default values are set by the series (`LNCS`, ...). |
| `year` | `UNKOWN YEAR` | The year of the publication. |
| `key` | empty | The basename of the filename. Used also to generate links. |
| `doi` | empty | The DOI of the publication. Used to generate the DOI link. |
| `doiText` | The value of `doi` | In case a DOI contains underscores, the displayed text differs from the DOI. |
| `publisherurl` | empty | In case no DOI is provided, one can provide a link to the publisher. |
| `startpage` | 1 | The pagenumber of the first page of the paper. |
| `publication` | `UNKNOWN PUBLICATION` | Information on the publication. |
The package also defines a command `\authorsetup{}` which allows to
define key value options dynamically. Moreover, if a file
`authorarchive.config` exists in the LaTeX search path, it will be
loaded automatically. This allows for configuring defaults
(e.g., the baseurl) easily.
## Embedding Bibliography Entries
Mostly, it is hard for scientists to find the correct bibtex entry for
a paper. One solution to this issue is to embed the respective `.bib`
(BibTeX, for LaTeX users), `.enw` (Endnote), `.ris`, or `.word.xml`
(Word 2007 or later) file in the PDF directly. In case any of these
file exist in `bibtexdir`, it gets embedded in the PDF.
You can use the
(bibutils)[https://sourceforge.net/p/bibutils/home/bib2xml/] for
converting between these different formats for bibliographic
references easily.
## Alternative Packages
The package [coverpage](https://ctan.org/pkg/coverpage) prepends a separate PDF page before the first page of the paper.
That page contains the bibliographic information as BibTeX entry.
One is forced to have a `.bib` file ready and multiple institutions are not well supported.
With `authorarchive`, the information is printed at the bottom of the first page of the paper and required links to the publisher are generated.
The package [llncsconf](https://github.com/adbrucker/llncsconf) is a light-weight alternative to this package.
It supports [LNCS](http://www.springer.com/de/it-informatik/lncs) only.
In comparison to `authorarchive`, it provides support for the additional publication states "intended-to-submit" and "submitted", but no QR code and links to the author's archive URL.
## License
If not otherwise stated, all sub-projects are dual-licensed under a
2-clause BSD-style license and/or the LPPL version 1 or any later
version.
version.

3
authorarchive.config Normal file
View File

@ -0,0 +1,3 @@
\authorsetup{%
baseurl={https://git.logicalhacking.com/adbrucker/authorarchive/src/master}
}

View File

@ -17,6 +17,7 @@
\RequirePackage{embedfile}
\RequirePackage{kvoptions}
\RequirePackage{calc}
\RequirePackage{qrcode}
%
% Option declarations
% -------------------
@ -26,8 +27,7 @@
}
\DeclareStringOption[.]{bibtexdir}
\DeclareStringOption[.]{qrdir}
\DeclareStringOption[https://git.logicalhacking.com/adbrucker/authorarchive/src/master]{baseurl}
\DeclareStringOption[https://duckduckgo.com/?q=]{baseurl}
\DeclareStringOption[.pdf]{suffix}
\DeclareStringOption[UNKOWN PUBLISHER]{publisher}[]
\DeclareStringOption[UNKOWN YEAR]{year}[]
@ -52,21 +52,28 @@
% 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}%
\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
% 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
@ -79,67 +86,67 @@
\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}
\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}
\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}
\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}
\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}
\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
%
@ -152,48 +159,62 @@
}
\ifAA@nobib\relax\else%
\AtBeginDocument{%
\embedfile[filespec=\AA@key.bib,%
desc={BibTeX entry of this paper.},%
stringmethod=escape,%
mimetype=plain/text,%
]{\AA@bibtexdir/\AA@key.bib}%
\embedfile[filespec=\AA@key.enw,%
desc={Endnote entry of this paper.},%
stringmethod=escape,%
mimetype=plain/text,%
]{\AA@bibtexdir/\AA@key.enw}%
\embedfile[filespec=\AA@key.ris,%
desc={RIS entry of this paper.},%
stringmethod=escape,%
mimetype=plain/text,%
]{\AA@bibtexdir/\AA@key.ris}%
\embedfile[filespec=\AA@key.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}%
}%
\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{%
\includegraphics[width=1.2cm]{\AA@qrdir/\AA@key-qr.pdf}\hspace{.2cm}%
\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
\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} %
at \url{\AA@baseurl/\AA@key\AA@suffix} %
\fi
\ifAA@nocopyright\relax\else
by permission of \AA@publisher{}
by permission of \AA@publisher{}
\fi
for your personal use.
\ifx\AA@doi\@empty%
@ -201,26 +222,26 @@
\else
The definitive
version was published with doi:
\ifx\AA@doiText\@empty%
\href{http://dx.doi.org/\AA@doi}{\AA@doi}.
\ifx\AA@doiText\@empty%
\href{https://doi.org/\AA@doi}{\AA@doi}.
\else
\href{http://dx.doi.org/\AA@doi}{\AA@doiText}.
\fi
\href{https://doi.org/\AA@doi}{\AA@doiText}.
\fi
\fi
\else
\ifAA@nocopyright\relax\else
\textcopyright~\AA@year~\AA@publisher. %
\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} %
at \url{\AA@baseurl/\AA@key\AA@suffix} %
\fi
\ifAA@nocopyright\relax\else
by permission of \AA@publisher{} %
\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%
version was published in \emph{\AA@publication}, pp.~\thepage--\pageref{LastPage}, \AA@year%
\ifx\AA@doi\@empty%
\ifx\AA@publisherurl\@empty%
.%
@ -229,12 +250,12 @@
\fi
\else
\ifx\AA@doiText\@empty%
, doi: \href{http://dx.doi.org/\AA@doi}{\AA@doi}.%
, doi: \href{https://doi.org/\AA@doi}{\AA@doi}.%
\else
, doi: \href{http://dx.doi.org/\AA@doi}{\AA@doiText}.%
\fi
, doi: \href{https://doi.org/\AA@doi}{\AA@doiText}.%
\fi
\fi
\fi
}
}
}
}
}

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
\documentclass[final, runningheads, USenglish, pdftex]{llncs}
\usepackage[T1]{fontenc}
\usepackage[LNCS,
key=brucker-authorarchive-2016,
year=2016,