diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:49:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:49:06 +0000 |
commit | 537a62abf2208730c27ee774a90f39a41a8cce70 (patch) | |
tree | 8abd6b01097f0c4ac1a1b3994daebd874d256cf1 /Master | |
parent | 130ca907c302991185d76929e2c56cb21046e137 (diff) |
12many
git-svn-id: svn://tug.org/texlive/trunk@629 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/tex/latex/12many/12many.sty | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/12many/12many.sty b/Master/texmf-dist/tex/latex/12many/12many.sty new file mode 100644 index 00000000000..00b333a41e3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/12many/12many.sty @@ -0,0 +1,130 @@ +%% +%% This is file `12many.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% 12many.dtx (with options: `sty') +%% This is a generated file. +%% +%% This file is part of the `12many' package. +%% The `12many' package has the LPPL maintenance status: maintained. +%% Current Maintainer is Ulrich M. Schwarz, ulmi@users.sarovar.org +%% +%% Copyright (C) 2004,2005 by Ulrich M. Schwarz. +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3a 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 +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{12many}[2005/05/09 v0.3 1, 2, many: numbersets (ums)] + +\RequirePackage{calc, keyval} +\newcommand\newOTMstyle{% + \let\otm@@newcmd\newcommand + \otm@@fooOTMstyle +} +\newcommand\renewOTMstyle{% + \let\otm@@newcmd\renewcommand + \otm@@fooOTMstyle +} +\newcommand*\otm@@fooOTMstyle[2][\relax]{% + \ifx #1\relax\else + \@for\parm:=#1\do{% + \expandafter\otm@@newkvOTMparameter\parm={#2}% + }% + \fi + \expandafter\otm@@newcmd\expandafter*\csname otm@style@#2\endcsname[2]% +} +\def\otm@@newkvOTMparameter#1=#2=#3{% + \newOTMparameter{#3}{#1}{#2}% +} +\newcommand\newOTMparameter[3]{% + \expandafter\providecommand\csname otm@#1@#2\endcsname{#3}% + \define@key{otm@#1}{#2}{\expandafter\renewcommand\csname otm@#1@#2\endcsname{##1}}% +} +\newcommand\setOTMparameter[2]{% + \expandafter\renewcommand\csname otm@#1@#2\endcsname% +} +\newcommand\getOTMparameter[2][\otm@@currentstyle]{% + \csname otm@#1@#2\endcsname% +} +\newcommand*\setOTMstyle[2][]{% + \protected@edef\otm@@currentstyle{#2}% + \PackageInfo{12many}{Using style \otm@@currentstyle[#1]}% + \setkeys{otm@\otm@@currentstyle}{#1}% + \expandafter\let\expandafter\nto\csname otm@style@\otm@@currentstyle\endcsname% +} +\newcommand\nto{% + \PackageWarning{12many}{No style selected. Using dots.}% + \setOTMstyle{dots}% + \nto% +} +\newcommand\oto{\nto{0}} +\newcommand\ito{\nto{1}} + +%% Style "`set"': the "`proper way"': {i\in N: x<=i<=y} +\newOTMstyle[var=i,naturals={\mathrm{N}_0},where=|]{set}{% + \{\getOTMparameter{var}\in\getOTMparameter{naturals}% + \getOTMparameter{where} #1\leq\getOTMparameter{var}\leq#2\}% +} +%% Style "`laue"': 1 to n is n with some sort of rharpoon below. +\newcounter{otm@scratch} + +\newOTMstyle{laue}{% + \ifcase#1\relax + (\{0\}\otm@laue@setplus\otm@@laue@laue{#2})% + \or + \otm@@laue@laue{#2}% + \else + \setcounter{otm@scratch}{#1}% + \addtocounter{otm@scratch}{-1}% + (\otm@@laue@laue{#2}% + \otm@laue@setminus\otm@@laue@laue{\arabic{otm@scratch}})% + \fi +} +\newOTMparameter{laue}{setminus}{\setminus} +\newOTMparameter{laue}{setplus}{\cup} +\newOTMparameter{laue}{ybelow}{0.3ex} +\newOTMparameter{laue}{strokewidth}{0.08ex} +\newOTMparameter{laue}{innersidegap}{0.05em} +\newOTMparameter{laue}{outersidegap}{0.05em} +\newcommand{\otm@@laue@laue}[1]{% + \mathpalette{\let\laue@mathstyle}{\ensuremath{% + \rlap{\hspace*{\otm@laue@innersidegap}$\laue@mathstyle #1$}% + \rule[-\otm@laue@ybelow]% + {\widthof{\ensuremath{\laue@mathstyle #1}}+\otm@laue@innersidegap *2}% + {\otm@laue@strokewidth}% + \rule[-\otm@laue@ybelow]% + {\otm@laue@strokewidth}% + {\otm@laue@ybelow *2}}}} +%% Style "`dots"': variations of the {1,...,n} theme. + +\newOTMstyle[dots={,\ldots,}]{dots}{% + \{#1\getOTMparameter{dots}#2\}% +} +%% Style "`nude"': variations of the 1..n theme. + +\newOTMstyle[dots={\ldotp\ldotp}]{nude}{% + #1\getOTMparameter{dots}#2% +} +%% +%% PART III: Use existing customization file +%% +\InputIfFileExists{12many.cfg}{% + \PackageInfo{12many}{Also using customization file 12many.cfg} +}{% + \PackageInfo{12many}{No customization file used} +} + +%% +%% PART IV: Use package parameter +%% +\DeclareOption*{\setOTMstyle{\CurrentOption}} +\ProcessOptions\relax +\endinput +%% +%% End of file `12many.sty'. |