diff options
author | Karl Berry <karl@freefriends.org> | 2012-10-17 22:50:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-10-17 22:50:05 +0000 |
commit | df2ce83ed9a6a3beca08c07cc656611e26d220d7 (patch) | |
tree | 086e2f15b6585eb8151e83f7852eb858db2f4b80 /Master/texmf-dist/doc/latex/skeyval/skeyval-testclass.cls | |
parent | 468e15f0c59bbedcccfaa606c1f72d3b6d3a8f9a (diff) |
skeyval
git-svn-id: svn://tug.org/texlive/trunk@28005 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/skeyval/skeyval-testclass.cls')
-rw-r--r-- | Master/texmf-dist/doc/latex/skeyval/skeyval-testclass.cls | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/skeyval/skeyval-testclass.cls b/Master/texmf-dist/doc/latex/skeyval/skeyval-testclass.cls new file mode 100644 index 00000000000..02de214caa0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/skeyval/skeyval-testclass.cls @@ -0,0 +1,311 @@ +%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++% +% This is file 'skeyval-testclass.cls', version 1.1, 2012/10/15. % +% % +% This package and accompanying files may be distributed and/or % +% modified under the conditions of the LaTeX Project Public License, % +% either version 1.3 of this license or 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. % +% % +% The LPPL maintenance status of this software is 'author-maintained'. % +% % +% This software is provided 'as it is', without warranty of any kind, % +% either expressed or implied, including, but not limited to, the % +% implied warranties of merchantability and fitness for a particular % +% purpose. % +% % +% The following files constitute the skeyval bundle and must be % +% distributed as a whole: % +% % +% readme, skeyval.sty, skeyval-core.tex, skeyval-for.tex, % +% skeyval-view.sty, skeyval-ltxpatch.sty, skeyval-ltxcmds.tex, % +% skeyval-pstkey.sty, skeyval-pstkey.tex, skeyval-testclass.cls, % +% and skeyval-testpkg.sty. % +% % +% Copyright (c) 2010-2012 Ahmed Musa (amusa22@gmail.com). % +%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++% + +\ProvidesClass{skeyval-testclass} + [2012/10/15 v1.1 skeyval test class (AM)] +\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\@ifpackageloaded{skeyval}{}{\RequirePackage{skeyval}} +\@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}} +\@ifpackageloaded{pifont}{}{\RequirePackage{pifont}} +\@ifpackageloaded{tikz}{}{\RequirePackage{tikz}} + +\skvAtBeginEveryPage{\skvcl@maybewm} +\let\skvcl@maybewm\relax +\def\skvcl@watermark{% + \tikz[overlay,remember picture]{% + \node [\skvcl@watermarkcolor,inner sep=0pt,rotate=45,align=center, + scale=\skvcl@watermarkscale,font=\fontseries{b}\fontfamily{bch}% + \fontsize{\skvcl@fontsize@a}{\skvcl@fontsize@b}\selectfont] at + ([shift={(\skvcl@watermarkxshift,-\skvcl@watermarkyshift)}]% + current page.north west){% + \skvcl@watermarktext + }; + }% +} + +\skvrobustdef*\skvcl@titlecmds{% + \setcounter{footnote}{0}% + \def\do##1{\global\let##1\@empty}% + \do\@thanks\do\@author\do\@date\do\@title + \def\do##1{\global\let##1\relax}% + \do\thanks\do\maketitle\do\@maketitle\do\title\do\author\do + \date\do\and\let\do\relax + \let\@fnsymbol\orig@fnsymbol +} +\let\orig@fnsymbol\@fnsymbol + +\skvrobustredef*\skv@fnsymbol#1{% + \unskip\ifcase#1\or\ding{'106}\or\ding{'110}\or\ding{'111}\or + \ding{'112}\or\ding{'113}\or\ding{'114}\or\ding{'121}\or + \ding{'122}\else\@ctrerr\fi +} +\skvrobustdef*\skvcl@newfootnotestyle{% + \def\@makefnmark{% + \rlap{\@textsuperscript{\normalfont\skv@fnsymbol\@thefnmark}}% + }% + \long\def\@makefntext##1{% + \parindent1em\relax\noindent + \hb@xt@1.8em{\hss\@textsuperscript{% + \normalfont\skv@fnsymbol\@thefnmark}% + }% + ##1% + }% +} +\skvnewlet\skv@sav@footnote\footnote +\skvnewlet\skv@sav@thanks\thanks +\AtEndOfPackage{% + \skvdisablekeys[SKVC]{title}{% + insertwatermark + }% +} +\AtBeginDocument{% + \def\footnote{\unskip\skv@sav@footnote}% + \def\thanks{\unskip\skv@sav@thanks}% + \skvdisablekeys[SKVC]{textemphasis}{dummy-option}% + \skvdisablekeys[SKVC]{title}{% + maketitlepage,firstpagenumber,pagenumberstyle + }% +} +\let\skvcl@settitlepageno\@gobble + +% LaTeX will zap spaces in key name, anyway. So our options don't have +% spaces within themselves. + +\directkeys*{% + .every unknown option={ + \PassOptionsToClass{\CurrentOption}{article} + }, + .message type when disabled option is invoked=error, + .prefix=SKVC, + % Extended text emphasis: + .family=textemphasis, + .hp=xem@, + .new options={ + .bool/useitalic/true, + .bool/usebold/true, + .bool/usecolor/true, + .cmd/color/red, + .bool/make-textemphasis-inactive/true/ + \ifskvindef\else + \skvifbooltrue xem@make-textemphasis-inactive\then + \PackageInfo{skeyval-testclass} + {Extended text emphasis has been made inactive} + \let\xem\emph + \fi + \fi + , + .ord/dummy-option/\@nil, + }, + .links={ + useitalics/useitalic, + usecolour/usecolor, + colour/color, + }, + % Modifying the article title: + .change family=title, + .hp=skvcl@, + .new options={ + .bool/putdate/true, + .cmd/datefont/\large, + .bool/clearpage/true, + .bool/maketitlepage/true/ + \skvifbooltrue skvcl@maketitlepage\then + \ifskvindef\else + \PassOptionsToClass{titlepage}{article} + \fi + \fi + , + .cmd/firstpagenumber/\@nil/ + \ifx\skvcl@firstpagenumber\@nnil\else + \skvensureinteger{page number}\skvcl@firstpagenumber + \AtBeginDocument{% + \gdef\pagenumbering##1{% + \global\c@page\skvcl@firstpagenumber\relax + \gdef\thepage{\csname @##1\endcsname\c@page}% + }% + % Default: + \pagenumbering{arabic}% + \let\skvcl@settitlepageno\@iden + }% + \fi + , + .cmd/pagenumberstyle/\@nil/ + \ifx\skvcl@pagenumberstyle\@nnil\else + \skvAfterBeginDocument{\pagenumbering{#1}}% + \fi + , + .cmd/pretitleskip/10pt, + .cmd/posttitleskip/10pt, + .cmd/authorfont/\large, + .cmd/titlefont/\huge, + .bool/insertwatermark/true/ + \skvifbooltrue skvcl@insertwatermark\then + \ifskvindef\else + \let\skvcl@maybewm\skvcl@watermark + \fi + \fi + , + .cmd/watermarkxshift/.5\paperwidth, + .cmd/watermarkyshift/.5\paperheight, + .cmd/watermarktext/DRAFT/ + \skvstripouterbraces{2}\skvcl@watermarktext + , + .cmd/fontsize/{14.4,17}/ + \def\skvcl@fontsize@a{#1}\def\skvcl@fontsize@b{#2} + , + .args/fontsize/{#1,#2}, + .cmd/watermarkscale/5, + .cmd/watermarkcolor/gray!55, + }, + .styles={ + showdate/putdate=#1, + first-page-number/firstpagenumber=#1, + titlepage/maketitlepage=#1, + }, + % Options execution & processing: + .families = {textemphasis,title}, + .execute options+={ + useitalic,usebold,usecolor,color, + make-textemphasis-inactive=false,putdate,datefont, + clearpage=false,pretitleskip,posttitleskip, + authorfont,titlefont,watermarkscale,firstpagenumber, + insertwatermark=false,watermarkxshift,watermarkyshift, + watermarktext,fontsize + }, +% .mega process options*={ +% prefix=SKVC, +% families={textemphasis,title}, +% }, + .copy class options and process options in all families, +} + +\skvrobustdef*\setskeyvaltestclass{% + \skvsetkeys*+[SKVC]{textemphasis,title}% +} + +% Setting up extended text emphasis: +\skvrobustdef*\setuptextemphasis#1{\skvsetkeys[SKVC]{textemphasis}{#1}} +\newcommand*\xem[1]{\xem@emph{\xem@bold{\xem@colortext{\xem@color}{#1}}}} +\newcommand*\xem@emph{% + \skvifbooltrue xem@useitalic\then + \expandafter\emph + \else + \expandafter\@firstofone + \fi +} +\newcommand*\xem@bold{% + \skvifbooltrue xem@usebold\then + \expandafter\textbf + \else + \expandafter\@firstofone + \fi +} +\newcommand*\xem@colortext{% + \skvifbooltrue xem@usecolor\then + \expandafter\textcolor + \else + \expandafter\@secondoftwo + \fi +} + +\LoadClass{article} + +\if@titlepage + \renewcommand\maketitle{% + \ifskvcl@clearpage + \clearpage + \fi + \begin{titlepage}% + \skvcl@newfootnotestyle + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \null\vfil + \vskip\skvcl@pretitleskip\relax + \begin{center}% + {\skvcl@titlefont\@title\par}% + \vskip\skvcl@posttitleskip\relax + {% + \skvcl@authorfont + \lineskip.75em\relax + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par + }% + \vskip1.5em\relax + \skvifbooltrue skvcl@putdate\then{{\skvcl@datefont\@date}}\fi + \end{center}\par + \@thanks + \vfil\null + \end{titlepage}% + \skvcl@settitlepageno{\c@page\skvcl@firstpagenumber\relax}% + \skvcl@titlecmds + } +\else + \renewcommand\maketitle{% + \par + \begingroup + \skvcl@newfootnotestyle + \if@twocolumn + \ifnum\col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \skvcl@titlecmds + } + \def\@maketitle{% + \newpage + \null + \vskip\skvcl@pretitleskip\relax + \begin{center}% + \let\footnote\thanks + {\skvcl@titlefont\@title\par}% + \vskip\skvcl@posttitleskip\relax + {\skvcl@authorfont + \lineskip.5em\relax + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par + }% + \vskip1em\relax + \skvifbooltrue skvcl@putdate\then{\skvcl@datefont\@date}\fi + \end{center}% + \par + \vskip1.5em\relax + } +\fi + +\endinput |