%% 
%%  Ein Beispiel der DANTE-Edition
%%  
%%  2. Auflage
%% 
%%  Beispiel 17-05-1 auf Seite 847.
%% 
%%  Copyright (C) 2016 Herbert Voss
%% 
%%  It 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.
%% 
%%  See http://www.latex-project.org/lppl.txt for details.
%% 
%% 
%% ==== 
% Show page(s) 1
%% 
%% 
\documentclass[]{exaarticle}
\pagestyle{empty}
\setlength\textwidth{352.81416pt}
\setlength\parindent{0pt}
%StartShownPreambleCommands
\usepackage{filecontents}
\begin{filecontents*}{l3keysdemo.sty}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{ l3keys2e, xparse }
\ExplSyntaxOn%  wegen \tl_ ..., sonst automatisch mit \ProvidesExplPackage
\tl_new:N  \l_keydemo_version \tl_set:Nn \l_keydemo_version{0.01}
\ProvidesExplPackage {l3keysdemo} {2013/08/20}
                     {\l_keydemo_version} {2013/08/20 Key/Value Demo}
\msg_set:nnn { keydemo } { version } { Version \l_keydemo_version }
\bool_new:N \g_keydemo_tf_bool
\bool_set_true:N \g_keydemo_tf_bool           %  Vorgabe ist true
\bool_new:N \l_keydemo_printversion_bool
\bool_set_false:N \l_keydemo_printversion_bool%  Vorgabe ist false

\keys_define:nn {keydemo}{%                      Paketoptionen
  tf .bool_set:N = \g_keydemo_tf_bool,%          global definiert
  tf .default:n  = false,%                       für tf ohne ANgabe
  version .code:n  = % TerminalAusgabe und im Dokument
    { \msg_warning:nn {keydemo} {version}
      \bool_set_true:N \l_keydemo_printversion_bool
    }}
\ProcessKeysOptions{keydemo}
\NewDocumentCommand\Test{}{ \bool_if:NTF \g_keydemo_tf_bool{wahr}{falsch} }
\AtBeginDocument { Das~Paket~hat~die~Version~
    \bool_if:NT \l_keydemo_printversion_bool { \l_keydemo_version } \par}
\end{filecontents*}
\usepackage[tf=true,version]{l3keysdemo}
%StopShownPreambleCommands
\begin{document}
Die Option \texttt{tf} ist \Test!
\end{document}
