178 lines
7.2 KiB
TeX
178 lines
7.2 KiB
TeX
%%
|
|
%% This is file `workaddress.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% workaddress.dtx (with options: `package')
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
|
|
\ProvidesPackage{workaddress}[2016/07/06 v0.5 WorkAddress]
|
|
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{sref}}
|
|
\ProcessOptions
|
|
\RequirePackage{sref}
|
|
\addmetakey*{wa@person}{id}
|
|
\addmetakey*{wa@person}{birthdate}
|
|
\addmetakey*{wa@person}{email}
|
|
\addmetakey*{wa@person}{url}
|
|
\addmetakey*{wa@person}{affiliation}
|
|
\addmetakey*{wa@person}{personaltitle}
|
|
\addmetakey*{wa@person}{academictitle}
|
|
\addmetakey*{wa@person}{department}
|
|
\addmetakey*{wa@person}{workaddress}
|
|
\addmetakey*{wa@person}{privaddress}
|
|
\addmetakey*{wa@person}{worktel}
|
|
\addmetakey*{wa@person}{privtel}
|
|
\addmetakey*{wa@person}{workfax}
|
|
\addmetakey*{wa@person}{privfax}
|
|
\addmetakey*{wa@person}{worktelfax}
|
|
\addmetakey*{wa@person}{privtelfax}
|
|
\def\wa@def#1#2#3#4{\expandafter\xdef\csname wa@#1@#2@#3\endcsname{#4}}
|
|
\def\wa@ref@test#1#2#3{%
|
|
\@ifundefined{wa@#1@#2@#3}{%
|
|
\PackageError{workaddress}{reference to undefined #3 of #1 #2}%
|
|
{you must define a #1 with #2=#3\MessageBreak%
|
|
via the macro \protect\WA#1, before you can use it!}
|
|
}{}%
|
|
}%
|
|
\newcommand\wa@ref[4]{%
|
|
\@ifundefined{wa@#2@#3@#4}{%
|
|
\ifcase#1 {}\or%
|
|
\PackageWarning{workaddress}{reference to undefined #4 of #2 #3\MessageBreak%
|
|
you must define a #2 with #3=#4\MessageBreak%
|
|
via the macro \protect\WA#2, before you can use it!}%
|
|
\or
|
|
\PackageWarning{workaddress}{reference to undefined #4 of #2 #3\MessageBreak%
|
|
you must define a #2 with #3=#4\MessageBreak%
|
|
via the macro \protect\WA#2, before you can use it!}%
|
|
?#2?#3?#4?
|
|
\or
|
|
\PackageError{workaddress}{reference to undefined #4 of #2 #3}%
|
|
{you must define a #2 with #3=#4\MessageBreak%
|
|
via the macro \protect\WA#2, before you can use it!}
|
|
\else\PackageError{workaddress}{\protect\wa@ref#1 not defined}
|
|
\fi
|
|
}{\csname wa@#2@#3@#4\endcsname}}%
|
|
\let\wa@persons=\relax
|
|
\newcommand\WAperson[2][]{%
|
|
\metasetkeys{wa@person}{#1}%
|
|
\ifx\wa@person@id\@empty%
|
|
\@latex@warning{key 'id' undefined in WAperson}%
|
|
\else%
|
|
\wa@def{person}\wa@person@id{id}{\wa@person@id}% redundant, but useful for checking
|
|
\wa@def{person}\wa@person@id{name}{#2}
|
|
\wa@def{person}\wa@person@id{email}{\wa@person@email}
|
|
\wa@def{person}\wa@person@id{birthdate}{\wa@person@birthdate}
|
|
\wa@def{person}\wa@person@id{url}{\wa@person@url}
|
|
\wa@def{person}\wa@person@id{affiliation}{\wa@person@affiliation}
|
|
\wa@def{person}\wa@person@id{workaddress}{\wa@person@workaddress}
|
|
\wa@def{person}\wa@person@id{privaddress}{\wa@person@privaddress}
|
|
\wa@def{person}\wa@person@id{personaltitle}{\wa@person@personaltitle}
|
|
\wa@def{person}\wa@person@id{academictitle}{\wa@person@academictitle}
|
|
\wa@def{person}\wa@person@id{department}{\wa@person@department}
|
|
\wa@def{person}\wa@person@id{workaddress}{\wa@person@workaddress}
|
|
\wa@def{person}\wa@person@id{privaddress}{\wa@person@privaddress}
|
|
\wa@def{person}\wa@person@id{worktel}{\wa@person@worktel}
|
|
\wa@def{person}\wa@person@id{privtel}{\wa@person@privtel}
|
|
\wa@def{person}\wa@person@id{workfax}{\wa@person@workfax}
|
|
\wa@def{person}\wa@person@id{privfax}{\wa@person@privfax}
|
|
\wa@def{person}\wa@person@id{worktelfax}{\wa@person@worktelfax}
|
|
\wa@def{person}\wa@person@id{privtelfax}{\wa@person@privtelfax}
|
|
\@ifundefined{wa@persons}{%
|
|
\xdef\wa@persons{\wa@person@id}%
|
|
}{%
|
|
\xdef\wa@persons{\wa@persons,\wa@person@id}%
|
|
}%
|
|
\fi%
|
|
}%
|
|
\newcommand\DCMperson[2][]{%
|
|
\WAperson[#1]{#2}%
|
|
\PackageWarning{workaddress}{\protect\DCMperson\space is deprecated, use \protect\WAperson\space instead}
|
|
}%
|
|
\addmetakey*{wa@institution}{id}
|
|
\addmetakey*{wa@institution}{shortname}
|
|
\addmetakey*{wa@institution}{acronym}
|
|
\addmetakey*{wa@institution}{url}
|
|
\addmetakey*{wa@institution}{partof}
|
|
\addmetakey*{wa@institution}{countryshort}
|
|
\addmetakey*{wa@institution}{logo}
|
|
\addmetakey*{wa@institution}{streetaddress}
|
|
\addmetakey*{wa@institution}{townzip}
|
|
\addmetakey*{wa@institution}{type}
|
|
\addmetakey*{wa@institution}{country}
|
|
\let\wa@institutions=\relax
|
|
\newcommand\WAinstitution[2][]{%
|
|
\metasetkeys{wa@institution}{#1}%
|
|
\ifx\wa@institution@id\@empty%
|
|
\@latex@warning{key 'id' undefined in WAinstitution}%
|
|
\else%
|
|
\wa@def{institution}\wa@institution@id{id}{\wa@institution@id}% redundant, but useful for checking
|
|
\wa@def{institution}\wa@institution@id{name}{#2}
|
|
\wa@def{institution}\wa@institution@id{shortname}{\wa@institution@shortname}
|
|
\wa@def{institution}\wa@institution@id{acronym}{\wa@institution@acronym}
|
|
\wa@def{institution}\wa@institution@id{url}{\wa@institution@url}
|
|
\wa@def{institution}\wa@institution@id{partof}{\wa@institution@partof}
|
|
\wa@def{institution}\wa@institution@id{countryshort}{\wa@institution@countryshort}
|
|
\wa@def{institution}\wa@institution@id{logo}{\wa@institution@logo}
|
|
\wa@def{institution}\wa@institution@id{townzip}{\wa@institution@townzip}
|
|
\wa@def{institution}\wa@institution@id{streetaddress}{\wa@institution@streetaddress}
|
|
\wa@def{institution}\wa@institution@id{country}{\wa@institution@country}
|
|
\wa@def{institution}\wa@institution@id{type}{\wa@institution@type}
|
|
\@ifundefined{wa@institutions}{%
|
|
\xdef\wa@institutions{\wa@institution@id}%
|
|
}{%
|
|
\xdef\wa@institutions{\wa@institutions,\wa@institution@id}%
|
|
}%
|
|
\fi%
|
|
}%
|
|
\newcommand\DCMinstitution[2][]{%
|
|
\WAinstitution[#1]{#2}%
|
|
\PackageWarning{workaddress}{\protect\DCMinstitution\space is deprecated, use \protect\WAinstitution\space instead}%
|
|
}%
|
|
\addmetakey[false]{WAauthorblock}{dept}[true]
|
|
\addmetakey[false]{WAauthorblock}{aff}[true]
|
|
\addmetakey[false]{WAauthorblock}{url}[true]
|
|
\def\@true{true}
|
|
\newcounter{authors}
|
|
\newcommand\WAauthorblock[2][]{%
|
|
\metasetkeys{WAauthorblock}{#1}
|
|
{\let\tabularnewline\relax
|
|
\@for\@I:=#2\do{\stepcounter{authors}}
|
|
\def\@authors{}%
|
|
\def\@affs{}%
|
|
\def\@depts{}%
|
|
\def\@urls{}%
|
|
\@for\@I:=#2\do{%
|
|
\xdef\@authors{\@authors&\wa@ref2{person}\@I{name}}
|
|
\xdef\@@dept{\wa@ref1{person}\@I{department}}
|
|
\xdef\@shortname{\csname wa@institution@\@@dept @shortname\endcsname}
|
|
\xdef\@dept{\ifx\@shortname\@empty\wa@ref0{institution}\@@dept{name}\else\@shortname\fi}
|
|
\xdef\@depts{\@depts&\@dept}
|
|
\xdef\@@aff{\wa@ref0{person}\@I{affiliation}}
|
|
\xdef\@shortname{\csname wa@institution@\@@aff @shortname\endcsname}
|
|
\xdef\@aff{\ifx\@shortname\@empty\wa@ref0{institution}\@@aff{name}\else\@shortname\fi}
|
|
\xdef\@affs{\@affs&\@aff}
|
|
\xdef\@urls{\@urls&\wa@ref0{person}\@I{url}}
|
|
}%
|
|
\message{\theauthors authors: \@authors}%
|
|
}%
|
|
\begin{tabular}[t]{l*{\theauthors}{c}}
|
|
\@authors\\
|
|
\ifx\WAauthorblock@dept\@true\@depts\\\fi
|
|
\ifx\WAauthorblock@aff\@true\@affs\\\fi
|
|
\ifx\WAauthorblock@url\@true\@urls\\\fi
|
|
\end{tabular}
|
|
}%
|
|
\newcommand\wapname[1]{\wa@ref3{person}{#1}{name}}
|
|
\newcommand\waptname[1]{\wa@ref3{person}{#1}{personaltitle} \wa@ref3{person}{#1}{name}}
|
|
\newcommand\wa@institution@logo[2][]{%
|
|
\IfFileExists{\wa@ref2{institution}{#2}{logo}}{%
|
|
\includegraphics{\wa@ref2{institution}{#2}{logo}}%
|
|
}{%
|
|
\fbox{#2 logo}\message{still need logo for #2}%
|
|
}%
|
|
}%
|
|
\endinput
|
|
%%
|
|
%% End of file `workaddress.sty'.
|