Current File : //usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkvview.sty |
%%
%% This is file `xkvview.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xkeyval.dtx (with options: `xkvview')
%%
%% ---------------------------------------
%% Copyright (C) 2004-2020 Hendri Adriaens
%% ---------------------------------------
%%
%% 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 2003/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is Hendri Adriaens.
%%
%% This work consists of the file xkeyval.dtx and derived files
%% keyval.tex, xkvtxhdr.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
%% xkvltxp.sty, xkvutils.tex, pst-xkey.tex, pst-xkey.sty, xkveca.cls,
%% xkvecb.cls, xkvesa.sty, xkvesb.sty, xkvesc.sty, xkvex1.tex,
%% xkvex2.tex, xkvex3.tex and xkvex4.tex.
%%
%% The following files constitute the xkeyval bundle and must be
%% distributed as a whole: readme, xkeyval.pdf, keyval.tex,
%% pst-xkey.sty, pst-xkey.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
%% xkvltxp.sty, xkvtxhdr.tex, xkvutils.tex, pst-xkey.dtx and xkeyval.dtx.
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{xkvview}%
[2008/08/10 v1.5 viewer utility for xkeyval (HA)]
\RequirePackage{xkeyval}
\RequirePackage{longtable}
\DeclareOptionX*{%
\PackageWarning{xkvview}{Unknown option `\CurrentOption'}%
}
\ProcessOptionsX
\newif\ifXKVV@vwkey
\newif\ifXKVV@colii
\newif\ifXKVV@coliii
\newif\ifXKVV@coliv
\newif\ifXKVV@colv
\newwrite\XKVV@out
\let\XKVV@db\@empty
\define@cmdkeys[XKVV]{xkvview}[XKVV@]{%
prefix,family,type,default,file,columns,wcolsep,weol}[\@nil]
\define@boolkeys[XKVV]{xkvview}[XKVV@]{view,vlabels,wlabels}[true]
\presetkeys[XKVV]{xkvview}{prefix,family,type,default,file,%
columns,wcolsep=&,weol=\\,view,vlabels=false,wlabels=false}{}
\def\XKVV@tabulate#1#2#3{%
\def\XKV@tempa{#3}%
\@onelevel@sanitize\XKV@tempa
\XKV@addtolist@x\XKVV@db{#1=\ifx\XKV@prefix\@empty\else\expandafter
\XKVV@t@bulate\XKV@prefix\fi=\XKV@tfam=#2=\XKV@tempa}%
}
\def\XKVV@t@bulate#1@{#1}
\def\XKV@define@key#1{%
\@ifnextchar[{\XKV@d@fine@k@y{#1}}{%
\XKVV@tabulate{#1}{ordinary}{[none]}%
\expandafter\def\csname\XKV@header#1\endcsname####1%
}%
}
\def\XKV@d@fine@k@y#1[#2]{%
\XKVV@tabulate{#1}{ordinary}{#2}%
\XKV@define@default{#1}{#2}%
\expandafter\def\csname\XKV@header#1\endcsname##1%
}
\def\XKV@define@cmdkey#1#2[#3]#4{%
\ifXKV@st
\XKVV@tabulate{#2}{command}{#3}%
\XKV@define@default{#2}{#3}%
\else
\XKVV@tabulate{#2}{command}{[none]}%
\fi
\def\XKV@tempa{\expandafter\def\csname\XKV@header#2\endcsname####1}%
\begingroup\expandafter\endgroup\expandafter\XKV@tempa\expandafter
{\expandafter\def\csname#1#2\endcsname{##1}#4}%
}
\def\XKV@d@fine@ch@icekey#1[#2]{%
\XKVV@tabulate{#1}{choice}{#2}%
\XKV@define@default{#1}{#2}%
\XKV@d@fine@ch@ic@key{#1}%
}
\def\XKV@d@fine@ch@ic@key#1{%
\XKVV@tabulate{#1}{choice}{[none]}%
\ifXKV@pl\XKV@afterelsefi
\expandafter\XKV@d@f@ne@ch@ic@k@y
\else\XKV@afterfi
\expandafter\XKV@d@f@ne@ch@ic@key
\fi
\csname\XKV@header#1\endcsname
}
\def\XKV@d@f@ne@b@olkey#1#2#3#4#5{%
\expandafter\newif\csname if#3\endcsname
\ifXKV@st
\XKVV@tabulate{#2}{boolean}{#4}%
\XKV@define@default{#2}{#4}%
\else
\XKVV@tabulate{#2}{boolean}{[none]}%
\fi
\ifXKV@pl
\def#1##1{\XKV@pltrue\XKV@sttrue
\XKV@checkchoice[\XKV@resa]{##1}{true,false}#5%
}%
\else
\def#1##1{\XKV@plfalse\XKV@sttrue
\XKV@checkchoice[\XKV@resa]{##1}{true,false}#5%
}%
\fi
}
\def\xkvview#1{%
\setkeys[XKVV]{xkvview}{#1}%
\ifx\XKVV@default\@nnil\else\@onelevel@sanitize\XKVV@default\fi
\ifx\XKVV@columns\@nnil
\count@5
\XKVV@coliitrue\XKVV@coliiitrue\XKVV@colivtrue\XKVV@colvtrue
\else
\count@\@ne
\@expandtwoargs\in@{,prefix,}{,\XKVV@columns,}%
\ifin@\advance\count@\@ne\XKVV@coliitrue\else\XKVV@coliifalse\fi
\@expandtwoargs\in@{,family,}{,\XKVV@columns,}%
\ifin@\advance\count@\@ne\XKVV@coliiitrue\else\XKVV@coliiifalse\fi
\@expandtwoargs\in@{,type,}{,\XKVV@columns,}%
\ifin@\advance\count@\@ne\XKVV@colivtrue\else\XKVV@colivfalse\fi
\@expandtwoargs\in@{,default,}{,\XKVV@columns,}%
\ifin@\advance\count@\@ne\XKVV@colvtrue\else\XKVV@colvfalse\fi
\fi
\ifXKVV@view
\protected@edef\XKV@tempa{\noexpand\begin{longtable}[l]{%
*\the\count@ l}\normalfont Key\ifXKVV@colii&\normalfont Prefix%
\fi\ifXKVV@coliii&\normalfont Family\fi\ifXKVV@coliv&\normalfont
Type\fi\ifXKVV@colv&\normalfont Default\fi\\\noexpand\hline
\noexpand\endfirsthead\noexpand\multicolumn{\the\count@}{l}{%
\normalfont\emph{Continued from previous page}}\\\noexpand\hline
\normalfont Key\ifXKVV@colii&\normalfont Prefix\fi\ifXKVV@coliii
&\normalfont Family\fi\ifXKVV@coliv&\normalfont Type\fi
\ifXKVV@colv&\normalfont Default\fi\\\noexpand\hline\noexpand
\endhead\noexpand\hline\noexpand\multicolumn{\the\count@}{r}{%
\normalfont\emph{Continued on next page}}\\\noexpand\endfoot
\noexpand\hline\noexpand\endlastfoot
}%
\XKV@toks\expandafter{\XKV@tempa}%
\fi
\ifx\XKVV@file\@nnil\else\immediate\openout\XKVV@out\XKVV@file\fi
\XKV@for@o\XKVV@db\XKV@tempa{%
\XKVV@vwkeytrue\expandafter\XKVV@xkvview\XKV@tempa\@nil
}%
\ifXKVV@view
\addto@hook\XKV@toks{\end{longtable}}%
\begingroup\ttfamily\the\XKV@toks\endgroup
\fi
\ifx\XKVV@file\@nnil\else\immediate\closeout\XKVV@out\fi
}
\def\XKVV@xkvview#1=#2=#3=#4=#5\@nil{%
\ifx\XKVV@prefix\@nnil\else
\def\XKV@tempa{#2}%
\ifx\XKV@tempa\XKVV@prefix\else\XKVV@vwkeyfalse\fi
\fi
\ifx\XKVV@family\@nnil\else
\def\XKV@tempa{#3}%
\ifx\XKV@tempa\XKVV@family\else\XKVV@vwkeyfalse\fi
\fi
\ifx\XKVV@type\@nnil\else
\def\XKV@tempa{#4}%
\ifx\XKV@tempa\XKVV@type\else\XKVV@vwkeyfalse\fi
\fi
\ifx\XKVV@default\@nnil\else
\def\XKV@tempa{#5}%
\ifx\XKV@tempa\XKVV@default\else\XKVV@vwkeyfalse\fi
\fi
\ifXKVV@vwkey
\ifXKVV@view
\edef\XKV@tempa{%
#1\ifXKVV@colii\fi\ifXKVV@coliii\fi
\ifXKVV@coliv\fi\ifXKVV@colv\fi
\ifXKVV@vlabels\noexpand\label{#2-#3-#1}\fi
}%
\expandafter\addto@hook\expandafter
\XKV@toks\expandafter{\XKV@tempa\\}%
\fi
\ifx\XKVV@file\@nnil\else
\immediate\write\XKVV@out{%
#1\ifXKVV@colii\XKVV@wcolsep#2\fi
\ifXKVV@coliii\XKVV@wcolsep#3\fi
\ifXKVV@coliv\XKVV@wcolsep#4\fi
\ifXKVV@colv\XKVV@wcolsep#5\fi
\ifXKVV@wlabels\string\label{#2-#3-#1}\fi
\expandafter\noexpand\XKVV@weol
}%
\fi
\fi
}
\endinput
%%
%% End of file `xkvview.sty'.