From 1148f4718708f720f250d1e258b9cc429bf30168 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 19 Jan 2012 22:49:40 +0000 Subject: l3packages 3209 (19jan12) git-svn-id: svn://tug.org/texlive/trunk@25159 c570f23f-e606-0410-a88d-b1316a301751 --- .../latex/l3packages/l3keys2e/l3keys2e-demo.tex | 43 ++++++++++++++++++++++ .../source/latex/l3packages/l3keys2e/l3keys2e.dtx | 33 ++++++++--------- 2 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e-demo.tex (limited to 'Master/texmf-dist/source/latex/l3packages/l3keys2e') diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e-demo.tex b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e-demo.tex new file mode 100644 index 00000000000..96d007999ac --- /dev/null +++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e-demo.tex @@ -0,0 +1,43 @@ +% This file demonstrates the use of the l3keys2e module to allow +% LaTeX3 keyvals (created using l3keys) to be used as LaTeX2e +% package or class options. +% + +% First, create a class +\begin{filecontents}{l3keys2e-class.cls} + \LoadClass{article} + \RequirePackage{l3keys2e} + \ProvidesExplClass{l3keys2e-class}{0000/00/00}{0.0}{test} + \keys_define:nn { test1 } { + option1 .code:n = {\wlog{You~gave~`#1'~for~option1}} + } + \ProcessKeysOptions { test1 } +\end{filecontents} + +% Load the class with some options. +% The class itself recognises `option1', leaving `option2' and +% `option3' as global optons which are not yet used. +\documentclass[option1=check,option2=more stuff,option3=unused] + {l3keys2e-class} + +%Now create a package +\begin{filecontents}{l3keys2e-package.sty} + \RequirePackage{l3keys2e} + \ProvidesExplPackage{l3keys2e-package}{0000/00/00}{0.0}{test} + \keys_define:nn { test2 } { + option1 .code:n = {\wlog{You~gave~`#1'~for~option1~(again)}}, + option2 .code:n = {\wlog{You~gave~`#1'~for~option2}}, + option4 .code:n = {\wlog{You~gave~`#1'~for~option4}}, + } + \ProcessKeysOptions { test2 } +\end{filecontents} + +% Load the package. +\usepackage[option4={extra stuff},option5=undefined!] + {l3keys2e-package} + +\begin{document} +% The log should show that option3 is an unused global option, and that +% option5 is not known by the l3keys2e-demo package. Everything else +% should simply be listed in the log. +\end{document} diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx index 240b7f2ceb2..23904106533 100644 --- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx +++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3keys2e.dtx (C) Copyright 2009,2011 The LaTeX3 Project +%% File: l3keys2e.dtx (C) Copyright 2009,2011,2012 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -35,8 +35,22 @@ %% % %<*driver|package> +% The version of expl3 required is tested as early as possible, as +% some really old versions do not define \ProvidesExplPackage. +\RequirePackage{expl3}[2012/01/19] +%\@ifpackagelater{expl3}{2012/01/19} +% {} +% { +% \PackageError{l3keys2e}{Support package l3kernel too old.} +% { +% Please install an up to date~version of l3kernel +% using your TeX package manager or from CTAN.\\ \\ +% Loading l3keys2e will abort! +% } +% \endinput +% } \RequirePackage{xparse} -\GetIdInfo$Id: l3keys2e.dtx 3109 2011-12-29 10:42:27Z joseph $ +\GetIdInfo$Id: l3keys2e.dtx 3207 2012-01-19 08:50:24Z joseph $ {LaTeX2e option processing using LaTeX3 keys} % %<*driver> @@ -134,21 +148,6 @@ \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} % \end{macrocode} -% -% A check to make sure that \pkg{expl3} is not too old -% \begin{macrocode} -\@ifpackagelater { expl3 } { 2011/12/29 } - { } - { - \PackageError { l3keys2e } { Support~package~l3kernel~too~old. } - { - Please~install~an~up~to~date~version~of~l3kernel~ - using~your~TeX~package~manager~or~from~CTAN.\\ \\ - Loading~l3keys2e~will~abort! - } - \tex_endinput:D - } -% \end{macrocode} % % \begin{macro}{\keys_latexe_options_clist} % A single list is used for all options, into which they are collected -- cgit v1.2.3