summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/doclicense
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-02-06 23:29:07 +0000
committerKarl Berry <karl@freefriends.org>2015-02-06 23:29:07 +0000
commit62a844580979e6895e4bb224b769e6178fafa88e (patch)
tree4de71f2891a39bb432b0f55196f7da273cbda59c /Master/texmf-dist/source/latex/doclicense
parent970ab76da64fc81430c87913150c65dad35e7665 (diff)
doclicense (6feb15)
git-svn-id: svn://tug.org/texlive/trunk@36224 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/doclicense')
-rw-r--r--Master/texmf-dist/source/latex/doclicense/doclicense.dtx467
-rw-r--r--Master/texmf-dist/source/latex/doclicense/doclicense.ins23
2 files changed, 490 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/doclicense/doclicense.dtx b/Master/texmf-dist/source/latex/doclicense/doclicense.dtx
new file mode 100644
index 00000000000..b65058b2678
--- /dev/null
+++ b/Master/texmf-dist/source/latex/doclicense/doclicense.dtx
@@ -0,0 +1,467 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2015 by Robin Schneider <ypid23@aol.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Robin Schneider.
+%
+% This work consists of the files doclicense.dtx and doclicense.ins
+% and the derived files doclicense.sty and doclicense.pdf.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{doclicense.dtx}
+%</driver>
+%<package>%% See file 'doclicense.dtx' for copyright and license.
+%<package>\NeedsTeXFormat{LaTeX2e}[1998/12/01]
+%<package>\ProvidesPackage{doclicense}
+%<*package>
+ [2015/02/06 v0.8 Set and print the license of a document]
+%</package>
+%
+%<*driver>
+\documentclass[english]{ltxdoc}
+\newcommand{\PackageURL}{https://github.com/ypid/latex-packages/tree/master/doclicense}
+\newcommand{\PackageCTANURL}{https://www.ctan.org/pkg/doclicense}
+\newcommand{\PackageAuthor}{Robin Schneider}
+\newcommand{\PackageAuthorEmail}{ypid@riseup.net}
+\newcommand{\PackageName}{\PrintPackage{doclicense}\xspace}
+\newcommand{\PrintPackage}[1]{\textsf{#1}}
+\newcommand{\PrintOptionF}[1]{\emph{#1}} %% ^^A This macro is used for
+%% ^^A explaining any parameter when they first come up in the documentation.
+\newcommand{\DescribePara}[1]{\marginpar{\raggedleft\strut\MacroFont\string#1}}
+\usepackage{doclicense}
+\usepackage{
+ babel,
+ csquotes,
+ xcolor,
+ url,
+ hypdoc,
+ nameref,
+ xspace,
+}
+\GetFileInfo{doclicense.dtx}
+\hypersetup{
+ pdftitle={A manual for \PackageName},
+ pdfauthor={\PackageAuthor{} <\PackageAuthorEmail>},
+ pdfsubject={\fileinfo},
+ baseurl={\PackageURL},
+ pdfkeywords={This document corresponds to \PackageName~\fileversion,
+ dated \filedate}
+}
+
+\title{The \PackageName{} package\thanks{This document
+corresponds to \PackageName~\fileversion, dated \filedate.}}
+\author{\PackageAuthor\\
+ \texttt{\href{mailto:\PackageAuthorEmail?subject=LaTeX package doclicense%
+ \&body=Dear Robin Schneider,}%
+ {\PackageAuthorEmail}%
+ }%
+}
+
+\EnableCrossrefs%
+\CodelineIndex%
+\RecordChanges%
+\begin{document}
+ \DocInput{doclicense.dtx}
+ \PrintChanges%
+ \PrintIndex%
+\end{document}
+%</driver>
+% \fi
+%
+% ^^A \CheckSum{0}
+% ^^A I use version control and so on which has much better checksums :)
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \changes{0.7}{2015/02/05}{Initial version}
+% \changes{0.8}{2015/02/06}{Added support for CC-zero and CC-pd and small improvements}
+%
+% \DoNotIndex{\RequirePackage, \DeclareOption, \ProcessOptions}
+% \DoNotIndex{\PackageWarning, \MessageBreak}
+% \DoNotIndex{\DeclareRobustCommand, \newcommand, \renewcommand, \def, \edef}
+% \DoNotIndex{\DeclareStringOption, \ProcessLocalKeyvalOptions}
+% \DoNotIndex{\ProcessKeyvalOptions, \SetupKeyvalOptions, \DeclareBoolOption}
+% \DoNotIndex{\newenvironment}
+% \DoNotIndex{\if, \else, \fi, \ifcase, \or, \ifthenelse, \AND, \OR, \value, \relax}
+% \DoNotIndex{\loop, \repeat, \the, \ifnum}
+% \DoNotIndex{\equal, \boolean, \@currname, \newcounter, \setcounter}
+% \DoNotIndex{\stepcounter, \addtocounter}
+% \DoNotIndex{\endinput, \begin, \end}
+% \DoNotIndex{\not}
+%
+% \maketitle
+%
+% \phantomsection
+% \addcontentsline{toc}{section}{\abstractname}
+% \begin{abstract}
+% The \PackageName{} package can calculate the age in years. \\
+% Information site on CTAN: \url{\PackageCTANURL} \\
+% Example on Stackexchange: \url{https://tex.stackexchange.com/a/226788/32320} \\
+% Fork me on GitHub: \url{\PackageURL} \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+% Make it easy to set your documents under a certain license.
+%
+% The \PrintPackage{doclicense} package allows you to put your document under a
+% license and include a link to read about the license or include an icon or
+% image of the license. Currently, only \doclicenseLongType is supported but this
+% package is designed to handle all kinds of licenses. See \nameref{sec:contributing}.
+%
+% \section{Usage}
+% Just load the package placing
+% \begin{quote}
+% |\usepackage{doclicense}|
+% \end{quote}
+% in the preamble of your \LaTeXe{} source file. This will select the default
+% license which is \doclicenseNameRef, currently. Please always set your
+% license explicitly as package options like so:
+%
+% \begin{quote}
+% |\usepackage[| \\
+% | type={CC},| \\
+% | modifier={by-sa},| \\
+% | version={3.0},| \\
+% |]{doclicense}|
+% \end{quote}
+%
+% This will explicitly set the license to \doclicenseNameRef.
+% \bigskip
+%
+% The first parameter is \enquote{\PrintOptionF{type}}. \DescribePara{type}
+% This sets the license type. Like in this example, the type can be
+% \enquote{CC} to cover all the \doclicenseLongType licenses.
+%
+% The \DescribePara{modifier} next parameter is \enquote{\PrintOptionF{modifier}} which allows to
+% select different subclasses of a license. In this
+% example it is \enquote{by-sa}.
+%
+% As \DescribePara{version} there can be more than one version of a license, the version can also be set.
+%
+% This package can output some texts like the long license name.
+% \DescribePara{lang}
+% Because of this, there needs to be a way to specify the language to use.
+% If this parameter is omitted, then this package will default to
+% \cmd{\languagename} which is normally set by packages like
+% \PrintPackage{babel} or \PrintPackage{polyglossia}.
+% Currently only English and German are supported.
+%
+% Default image width for the license image.
+% \DescribePara{imagewidth}
+%
+% \section{Macros}
+% \DescribeMacro{\doclicenseType}
+% Expands to the type as set in the package options. For this document this
+% macro expands to: \enquote{\doclicenseType{}}
+%
+% \DescribeMacro{\doclicenseLongType}
+% Same as \cmd{\doclicenseType} expect that it expands to the long license
+% type. For this document, it looks like this: \enquote{\doclicenseLongType{}}
+%
+% \DescribeMacro{\doclicenseModifier}
+% Expands to the modifier as set in the package options. For this document this
+% macro expands to: \enquote{\doclicenseModifier{}}
+%
+% \DescribeMacro{\doclicenseVersion}
+% Expands to the version as set in the package options. For this document this
+% macro expands to: \enquote{\doclicenseVersion{}}
+%
+% \DescribeMacro{\doclicenseName}
+% Expands to the short name of the license. For this document this macro
+% expands to: \enquote{\doclicenseName{}}
+%
+% \DescribeMacro{\doclicenseLongName}
+% Expands to the long name of the license. For this document this macro expands
+% to: \enquote{\doclicenseLongName{}}
+%
+% \DescribeMacro{\doclicenseNameRef}
+% Same as \cmd{\doclicenseName} expect that it links to the URL of the license.
+% For this document, it looks like this: \enquote{\doclicenseNameRef{}}
+%
+% \DescribeMacro{\doclicenseLongNameRef}
+% Same as \cmd{\doclicenseLongName} expect that it links to the URL of the
+% license. For this document, it looks like this:
+% \enquote{\doclicenseLongNameRef{}}
+%
+% \DescribeMacro{\doclicenseURL}
+% Expands to the official URL about the license. Note that it expands to the
+% raw URL string without the use of \cmd{\href} or similar. If you want the
+% link to be clickable then you can use \cmd{\href} or \cmd{\url} from the
+% \PrintPackage{hyperref} package. For this document the macro expands to:
+% \enquote{\doclicenseURL{}}
+%
+% \DescribeMacro{\doclicenseText}
+% Expands to a localized text which states that this document is licensed under
+% the license. For this document this macro expands to:
+% \enquote{\doclicenseText{}}
+%
+% \DescribeMacro{\doclicenseIcon}
+% Expands to a icon of the license. For this document this macro expands to:
+% \enquote{\doclicenseIcon{}}. This macro is based on the
+% \PrintPackage{ccicons} package.
+%
+% \DescribeMacro{\doclicenseImage}
+% This is kind of similar with \cmd{\doclicenseIcon} but it will typeset an
+% bigger pictogram of the license. For this document this macro expands to:
+% \enquote{\doclicenseImage}
+%
+% Note that you can change the image size with the \oarg{imagewidth} parameter
+% like this:
+% \enquote{\doclicenseImage[imagewidth=2em]}
+%
+% The images are bundled with the \PackageName package.
+%
+% \DescribeMacro{\doclicenseLicense}
+% And last but not least there is the \cmd{\doclicenseLicense} macro which will
+% typeset the \cmd{\doclicenseText} next to the \cmd{\doclicenseImage} in a
+% \enquote{minipage} environment. This will look like the following.
+%
+% \doclicenseLicense
+%
+% \section{Contributing}
+% \label{sec:contributing}
+% This package is being developed on GitHub: \url{\PackageURL}. When you want
+% to modify the .sty file, make sure that you make your changes in the .dtx
+% file instead, as the .sty file is automatically generated.
+%
+% \StopEventually{}
+%
+% \newpage
+% \section{Implementation}
+% \iffalse
+%<*package>
+% \fi
+% This package depends on these packages.
+% \begin{macrocode}
+
+%% 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}}
+}
+%% }}}
+
+% \end{macrocode}
+% \subsection{Declaring the options}
+% \begin{macrocode}
+%% Parameters {{{
+\DeclareStringOption[CC]{type}
+\DeclareStringOption[by-sa]{modifier}
+\DeclareStringOption{version}
+\DeclareStringOption{lang}
+\DeclareStringOption[10em]{imagewidth}
+%% }}}
+
+% \end{macrocode}
+% To test if all parameters are valid the macro |\ProcessLocalKeyvalOptions*|
+% is expanded to ensure this before leaving the preamble. This is the only
+% purpose for the |\ProcessLocalKeyvalOptions*| macro in this case.
+% \begin{macrocode}
+\ProcessLocalKeyvalOptions*
+% \end{macrocode}
+% \subsection{Declare variables and macros}
+% \begin{macrocode}
+%% 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.}%
+}
+%% }}}
+
+% \end{macrocode}
+% \subsection{Macro user macros}
+% \begin{macrocode}
+%% 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}
+}
+%% }}}
+
+% \end{macrocode}
+% \subsection{Language selection}
+% The following lines include the ldf files. All language dependent things
+% should be stored there or can be changed there. Note that one could redefine
+% macros like \cmd{\doclicenseLongText} if necessary.
+% \begin{macrocode}
+%% 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}
+}
+
+%% }}}
+
+% \end{macrocode}
+% \subsection{Internals}
+% \begin{macrocode}
+%% 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%
+% \end{macrocode}
+% That's it.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/doclicense/doclicense.ins b/Master/texmf-dist/source/latex/doclicense/doclicense.ins
new file mode 100644
index 00000000000..8e98df8faba
--- /dev/null
+++ b/Master/texmf-dist/source/latex/doclicense/doclicense.ins
@@ -0,0 +1,23 @@
+%% See file 'doclicense.dtx' for copyright and license.
+\input docstrip.tex
+
+\keepsilent
+\usedir{tex/latex/doclicense}
+\usepreamble\mypreamble
+\askforoverwritefalse
+\generate{\nopreamble\file{doclicense.sty}{\from{doclicense.dtx}{package}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space doclicense.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files}
+\Msg{* `doclicense.dtx' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+\endbatchfile