%%
%% This is file `dcm.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% dcm.dtx  (with options: `package')
%% 
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{dcm}[2010/06/25 v0.3 Dublin Core Metadata]
\DeclareOption{showmeta}{\PassOptionsToPackage{\CurrentOption}{metakeys}}
\ProcessOptions
\RequirePackage{sref}
\addmetakey{dcm@person}{id}
\addmetakey{dcm@person}{birthdate}
\addmetakey{dcm@person}{email}
\addmetakey{dcm@person}{url}
\addmetakey{dcm@person}{affiliation}
\addmetakey{dcm@person}{personaltitle}
\addmetakey{dcm@person}{academictitle}
\addmetakey{dcm@person}{department}
\addmetakey{dcm@person}{workaddress}
\addmetakey{dcm@person}{privaddress}
\addmetakey{dcm@person}{worktel}
\addmetakey{dcm@person}{privtel}
\addmetakey{dcm@person}{workfax}
\addmetakey{dcm@person}{privfax}
\addmetakey{dcm@person}{worktelfax}
\addmetakey{dcm@person}{privtelfax}
\def\dcm@pers@def#1#2{\expandafter\xdef\csname dcm@person@\dcm@person@id @#1\endcsname{#2}}
\def\dcm@pers@ref#1#2{\csname dcm@person@#1@#2\endcsname}
\let\dcm@persons=\relax
\newcommand{\DCMperson}[2][]{\metasetkeys{dcm@person}{#1}
\ifx\dcm@person@id\@empty\@latex@warning{key 'id' undefined in DCMperson}\else
\dcm@pers@def{name}{#2}
\dcm@pers@def{email}{\dcm@person@email}
\dcm@pers@def{birthdate}{\dcm@person@birthdate}
\dcm@pers@def{url}{\dcm@person@url}
\dcm@pers@def{affiliation}{\dcm@person@affiliation}
\dcm@pers@def{workaddress}{\dcm@person@workaddress}
\dcm@pers@def{privaddress}{\dcm@person@privaddress}
\dcm@pers@def{personaltitle}{\dcm@person@personaltitle}
\dcm@pers@def{academictitle}{\dcm@person@academictitle}
\dcm@pers@def{department}{\dcm@person@department}
\dcm@pers@def{workaddress}{\dcm@person@workaddress}
\dcm@pers@def{privaddress}{\dcm@person@privaddress}
\dcm@pers@def{worktel}{\dcm@person@worktel}
\dcm@pers@def{privtel}{\dcm@person@privtel}
\dcm@pers@def{workfax}{\dcm@person@workfax}
\dcm@pers@def{privfax}{\dcm@person@privfax}
\dcm@pers@def{worktelfax}{\dcm@person@worktelfax}
\dcm@pers@def{privtelfax}{\dcm@person@privtelfax}
\@ifundefined{dcm@persons}{\xdef\dcm@persons{\dcm@person@id}}{\xdef\dcm@persons{\dcm@persons,\dcm@person@id}}
\fi}
\newenvironment{DCmetadata}[1][]%
{\def\@style{#1}} % to set the way things are presented.
{\@ifundefined{dcm@\@style @block}{\message{style {\@style} not defined}}{\csname dcm@\@style @block\endcsname}}
\def\dcm@tabline#1#2{\xdef\tab@line{}%
\@for\@p:={#1}\do{\xdef\tab@line{\tab@line&\dcm@pers@ref\@p{#2}}}
\tab@line}
\def\dcm@atabline#1#2#3{\xdef\tab@line{}%
\@for\@p:={#1}\do{\xdef\tab@line{\tab@line&#2: \dcm@pers@ref\@p{#3}}}
\tab@line}
\def\dcm@bitabline#1#2#3#4{\xdef\tab@line{}%
\@for\@p:={#1}\do{\xdef\tab@line{\tab@line&\dcm@pers@ref\@p{#2} #3 \dcm@pers@ref\@p{#4}}}
\tab@line}
\def\DCMcreators#1{\@for\@I:=#1\do{%
\ifx\csname dcm@person@\@I @id\endcsname\@empty% undefined \dcm@person@id
\PackageError{dcm}{reference to undefined DCMperson \@I}%
{you must define a person with id=\@I\MessageBreak%
via the macro \protect\DCMperson, before you can use it in \protect\DCMcreators}\fi}%
\def\dcm@creators{#1}}
\def\DCMcontributors#1{\@for\@I:=#1\do{%
\ifx\csname dcm@person@\@I @id\endcsname\@empty% undefined \dcm@person@id
\PackageError{dcm}{reference to undefined DCMperson \@I}%
{you must define a person with id=\@I\MessageBreak%
via the macro \protect\DCMperson, before you can use it in \protect\DCMcontributors}}%
\else% all \dcm@person@id in the list are defined
\def\dcm@contributors{#1}\fi}
\def\DCMtitle#1{\def\dcm@title{#1}\providecommand{\dcm@shorttitle}{#1}}
\def\dcm@subtitle{}
\def\DCMsubtitle#1{\def\dcm@subtitle{#1}}
\def\dcm@shorttitle{}
\def\DCMshorttitle#1{\def\dcm@shorttitle{#1}}
\def\DCMsubject#1{\def\dcm@subject{#1}}
\long\def\DCMdescription#1{\long\def\dcm@description{#1}}
\def\DCMpublisher#1{\def\dcm@publisher{#1}}
\def\dcm@date{\today}
\def\DCMdate#1{\def\dcm@date{#1}}
\def\DCMtype#1{\def\dcm@type{#1}}
\def\DCMidentifier#1#2{\def\dcm@scheme{#1}\def\dcm@identifier{#2}}
\def\DCMsource#1{\def\dcm@source{#1}}
\def\DCMlanguage#1{\def\dcm@language{#1}}
\def\DCMrelation#1{\def\dcm@relation{#1}}
\def\DCMrights#1{\long\def\dcm@rights{#1}}
\def\DCMlicense#1{\def\dcm@license{#1}}
\def\dcm@license{All rights reserved}
\def\DCMlicensenotice#1{\long\def\dcm@license{\\[1ex]License: #1}}
\def\DCMcopyrightnotice#1#2{\DCMrights{Copyright {\copyright} #1: #2}}
\def\cclicense#1{\def\attribution{\def\dcm@by{yes}}
  \def\noncommercial{\def\dcm@nc{yes}}
  \def\sharealike{\defdcm@sharealike{yes}}
  \def\noderivativeworks{\def\dcm@derivatives{no}}}
\long\def\DCMabstract#1{\long\def\dcm@abstract{#1}}
\def\dcm@authorblock{\newcounter{authors}\stepcounter{authors}
{\let\tabularnewline\relax
  \@for\@I:=\dcm@creators\do{\stepcounter{authors}}
  \def\@authors{}\def\@affs{}\def\@urls{}
  \@for\@I:=\dcm@creators\do
    {\xdef\@authors{\@authors&\csname dcm@person@\@I @name\endcsname}
     \xdef\@affs{\@affs&\csname dcm@person@\@I @affiliation\endcsname}
     \xdef\@urls{\@urls&\csname dcm@person@\@I @url\endcsname}}
  \message{authors: \@authors}}
  \begin{tabular}[t]{l*{\theauthors}{c}}\@authors\\\@affs\\\@urls\end{tabular}}
\def\dcm@titlepage@block{\begin{titlepage}
    \null\vfil\vskip 60\p@
    \begin{center}
      \ifx\dcm@title\@empty
      \PackageWarning{dcm}{No title specified}{\LARGE Add title here\par}
      \else\LARGE \dcm@title \par\fi
      \ifx\dcm@subtitle\@empty
      \vskip 3em\Large \dcm@subtitle \par\vskip 3em
      \else\large\lineskip .75em\dcm@authorblock\vskip 1.5em\fi
      \ifx\dcm@date\@empty
      \PackageWarning{dcm}{No date specified}{\large\today\par}
      \else{\large\dcm@date\par}\vskip 2em\fi
  \end{center}\vskip2em
  \ifx\dcm@abstract\@empty
  \PackageWarning{dcm}{No Abstract specified}\else
  \begin{quote}\textbf\dcm@abstract@heading:\dcm@abstract\end{quote}\fi
  \vskip 2em\par\vfil\noindent
  {\small\noindent\dcm@rights\dcm@license}
  \end{titlepage}}
\def\dcm@maketitle@block{\def\@title{\dcm@title\ifx\dcm@subtitle\empty\else\newline\dcm@subtitle\fi}
\def\@author{\dcm@authorblock}\def\@date{\dcm@date}\maketitle}
\srefaddidkey{dcm@sect}
\addmetakey{dcm@sect}{short}
\addmetakey{dcm@sect}{creators}
\addmetakey{dcm@sect}{contributors}
\def\dcm@section#1#2#3{\def\dcm@sect@type{#1}\metasetkeys{dcm@sect}{#3}\sref@target%
\ifx\dcm@sect@short\@empty\csname #1\endcsname{#2}%
\else\csname #1\endcsname[\dcm@sect@short]{#2}\fi~%
\@ifundefined{sect@style} %
{\dcm@section@default@style{#1}}%
{\csname dcm@section@\sect@style @style\endcsname{#1}}}
\def\dcm@section@default@style#1{%
\ifx\dcm@sect@creators\@empty\else%
\textbf{\dcm@creators@heading}:%
\@for\@I:=\dcm@sect@creators\do{~\csname dcm@person@\@I @name\endcsname}\fi%
\ifx\dcm@sect@contributors\@empty\else% there are contributors
\dcm@contributors@connector%
\@for\@I:=\dcm@sect@contributors\do{~\csname dcm@person@\@I @name\endcsname}\\\fi}
\newcommand{\DCMchapter}[2][]%
{\dcm@section{chapter}{#2}{#1}\sref@label@id{\dcm@chapter@heading\ \thechapter}}
\newcommand{\DCMsection}[2][]%
{\dcm@section{section}{#2}{#1}\sref@label@id{\dcm@section@heading\ \thesection}}
\newcommand{\DCMsubsection}[2][]%
{\dcm@section{subsection}{#2}{#1}\sref@label@id{\dcm@subsection@heading\ \thesubsection}}
\newcommand{\DCMsubsubsection}[2][]%
{\dcm@section{subsubsection}{#2}{#1}\sref@label@id{\dcm@subsubsection@heading\ \thesubsubsection}}
\newcommand{\DCMparagraph}[2][]%
{\dcm@section{paragraph}{#2}{#1}\sref@label@id{this \dcm@paragraph@heading}}
\def\ISOtimestamp{\count1=\time\divide\count1 by 60 % hours
\count2=\count1\multiply\count2 by 60% minutes in \count1 hours
\count3=\time\advance\count3 by -\count2 % minutes
\the\year -\ifnum\month>9\else0\fi\the\month-\ifnum\day>9\else0\fi\the\day
T\ifnum\count1>9\else0\fi\the\count1:\ifnum\count3>9\else0\fi\the\count3:00Z}
\def\dcm@abstract@heading{Abstract}
\def\dcm@creators@heading{Author(s)}
\def\dcm@contributors@connector{with contributions from}
\def\dcm@chapter@heading{Chapter}
\def\dcm@section@heading{Section}
\def\dcm@subsection@heading{Subsection}
\def\dcm@subsubsection@heading{Subsubsection}
\def\dcm@paragraph@heading{Paragraph}
\endinput
%%
%% End of file `dcm.sty'.
