You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
202 lines
6.8 KiB
202 lines
6.8 KiB
%%
|
|
%% This is file `xkvview.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% xkeyval.dtx (with options: `xkvview')
|
|
%%
|
|
%% ---------------------------------------
|
|
%% Copyright (C) 2004-2014 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'.
|
|
|