diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/doclicense/doclicense.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/doclicense/doclicense.sty | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/doclicense/doclicense.sty b/Master/texmf-dist/tex/latex/doclicense/doclicense.sty new file mode 100644 index 00000000000..e63c59e191c --- /dev/null +++ b/Master/texmf-dist/tex/latex/doclicense/doclicense.sty @@ -0,0 +1,176 @@ +%% See file 'doclicense.dtx' for copyright and license. +\NeedsTeXFormat{LaTeX2e}[1998/12/01] +\ProvidesPackage{doclicense} + [2015/02/06 v0.8 Set and print the license of a document] + +%% Dependencies {{{ +\RequirePackage{kvoptions} +\RequirePackage{xifthen} +\RequirePackage{etoolbox} %% \ifcsdef +\RequirePackage{xspace} +\AtEndPreamble{% + \@ifpackageloaded{csquotes}{}{\RequirePackage{csquotes}} + \@ifpackageloaded{ccicons}{}{\RequirePackage{ccicons}} + %% For \doclicenseIcon + \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}} + %% For \doclicenseImage + \@ifpackageloaded{hyperref}{}{\RequirePackage{hyperref}} +} +%% }}} + +%% Parameters {{{ +\DeclareStringOption[CC]{type} +\DeclareStringOption[by-sa]{modifier} +\DeclareStringOption{version} +\DeclareStringOption{lang} +\DeclareStringOption[10em]{imagewidth} +%% }}} + +\ProcessLocalKeyvalOptions* +%% Declare variables {{{ +\newcommand{\doclicense@baseUrlCC}{https://creativecommons.org} +\newcommand{\doclicense@versionFallback}{} +\newcommand{\doclicense@versionUsed}{} +\newboolean{doclicense@licenseKnown} +\newlength{\doclicense@hsize} +\newcommand{\doclicense@longName}{% + \csname doclicense@lang@lic@\doclicense@type @\doclicense@modifier @\doclicense@versionUsed\endcsname +} +\newcommand{\doclicense@icon}{% + \PackageError{doclicense}{Icon not defined} + {Please check the documentation of doclicense to see what you can do about it.}% +} +%% }}} + +%% User macros {{{ +\newcommand{\doclicenseType}{\doclicense@type\xspace} +\newcommand{\doclicenseLongType}{} +\newcommand{\doclicenseModifier}{\MakeUppercase{\doclicense@modifier}\xspace} +\newcommand{\doclicenseVersion}{\doclicense@versionUsed\xspace} +\newcommand{\doclicenseName}{\doclicense@type~\doclicense@modifier~\doclicense@versionUsed\xspace} +\newcommand{\doclicenseNameRef}{\href{\doclicenseURL}{\doclicenseName}\xspace} +\newcommand{\doclicenseLongName}{\doclicenseLongType\space\doclicense@longName\xspace} +\newcommand{\doclicenseLongNameRef}{\href{\doclicenseURL}{\doclicenseLongName}} +\newcommand{\doclicenseText}{% + \doclicense@lang@thisDoc\space + \href{\doclicenseURL}{\enquote{\doclicenseName}} \doclicense@lang@word@license.\xspace +} +\newcommand{\doclicenseLongText}{% + \doclicense@lang@thisDoc\space + \href{\doclicenseURL}{\doclicenseLongType\space\enquote{\doclicense@longName}} + \doclicense@lang@word@license.\xspace +} +\newcommand{\doclicenseIcon}{\doclicense@icon\xspace} +\newcommand{\doclicenseImage}[1][]{% + \setkeys{doclicense}{#1} + \href{\doclicenseURL}{% + \includegraphics[width=\doclicense@imagewidth]% + {doclicense-\doclicense@type-\doclicense@modifier}% + } +} + +\newcommand{\doclicenseLicense}{ + \setlength{\doclicense@hsize}{\textwidth-\doclicense@imagewidth-2em} + \ifthenelse{\lengthtest{\hsize > \vsize}}{%% landscape + \setlength{\doclicense@hsize}{\doclicense@hsize-10em} + }{} + \begin{center} + \begin{minipage}{\doclicense@hsize} + \doclicenseLongText% + \end{minipage} + \hfill + \begin{minipage}{\doclicense@imagewidth} + \doclicenseImage% + \end{minipage} + \end{center} +} +%% }}} + +%% Language support {{{ +\ifthenelse{\equal{\doclicense@lang}{}}{% + \renewcommand{\doclicense@lang}{\languagename}}{} +\IfFileExists{doclicense-\doclicense@lang.ldf}{% + \input{doclicense-\doclicense@lang.ldf} +}{% + \PackageWarning{doclicense}{No language definition for \doclicense@lang not found. Please add one and submit a patch. Using English as fallback.} + \renewcommand{\doclicense@lang}{english} + \input{doclicense-\doclicense@lang.ldf} +} + +%% }}} + +%% Set license {{{ +\newcommand{\doclicense@setVersion}[1][]{% + \ifthenelse{\equal{#1}{}}{}{% + \renewcommand{\doclicense@versionFallback}{#1} + } + \ifthenelse{\equal{\doclicense@version}{}}{% + \renewcommand{\doclicense@versionUsed}{\doclicense@versionFallback} + }{% + \renewcommand{\doclicense@versionUsed}{\doclicense@version} + } +} +\newcommand{\doclicense@set}{% + %% CC {{{ + \ifthenelse{\equal{\doclicense@type}{CC}}{% + \renewcommand{\doclicenseLongType}{Creative Commons\xspace} + + \ifthenelse{\equal{\doclicense@lang@lic@CC@code}{}}{% + \edef\doclicense@UrlLangPart{} + }{% + \edef\doclicense@UrlLangPart{/\doclicense@lang@lic@CC@code} + } + \doclicense@setVersion[3.0] + \edef\doclicenseURL{% + \doclicense@baseUrlCC/% + licenses/% + \doclicense@modifier/% + \doclicense@versionUsed\doclicense@UrlLangPart} + \ifthenelse{\equal{\doclicense@modifier}{by-sa}} + {\renewcommand{\doclicense@icon}{\ccbysa}}{} + \ifthenelse{\equal{\doclicense@modifier}{by-nd}} + {\renewcommand{\doclicense@icon}{\ccbynd}}{} + \ifthenelse{\equal{\doclicense@modifier}{by-nc}} + {\renewcommand{\doclicense@icon}{\ccbync}}{} + \ifthenelse{\equal{\doclicense@modifier}{by-nc-sa}} + {\renewcommand{\doclicense@icon}{\ccbync}}{} + \ifthenelse{\equal{\doclicense@modifier}{by-nc-nd}} + {\renewcommand{\doclicense@icon}{\ccbync}}{} + \ifthenelse{\equal{\doclicense@modifier}{zero}}{% + \renewcommand{\doclicense@icon}{\cczero} + \doclicense@setVersion[1.0] + \edef\doclicenseURL{% + \doclicense@baseUrlCC/% + publicdomain/% + \doclicense@modifier/% + \doclicense@versionUsed\doclicense@UrlLangPart} + }{} + \ifthenelse{\equal{\doclicense@modifier}{pd}}{ + \renewcommand{\doclicense@icon}{\ccpd} + \doclicense@setVersion[1.0] + \edef\doclicenseURL{% + \doclicense@baseUrlCC/% + licenses/publicdomain/% + \doclicense@versionUsed\doclicense@UrlLangPart} + }{} + + \ifcsdef{doclicense@lang@lic@\doclicense@type% + @\doclicense@modifier @\doclicense@versionUsed}{}{% + + \PackageError{doclicense}{License long name not defined}% + {Please check the documentation of doclicense to see what you can do about it.}% + } + + \setboolean{doclicense@licenseKnown}{true} + }{}%% }}} + \ifthenelse{\not\boolean{doclicense@licenseKnown}}{% + \PackageError{doclicense}{License unknown}% + {Please check the documentation of doclicense to see what you can do about it.}% + }{}% +} +%% }}} + +\doclicense@set% +\endinput +%% +%% End of file `doclicense.sty'. |