%% %% This is file `yagusylo.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% yagusylo.dtx (with options: `package,en') %% This is a generated file. %% %% Copyright (C) 2009 Y. Henel alias le TeXnicien de surface %% %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version %% 1999/12/01 or later. \NeedsTeXFormat{LaTeX2e}[1999/12/01] \def\fileversion{v1.2} \def\filedate{2009/02/26} \def\docdate{2009/02/26} \def\fileinfo{Yet Another Grand Unified Symbols Loader par Le TeXnicien de surface} \ProvidesPackage{yagusylo} [\filedate\space\fileversion\space\fileinfo] \RequirePackage{xifthen} \RequirePackage{suffix} \RequirePackage{xargs} \newcommand*{\Y@GINFO}[2][]{} \newcommand*{\Y@GWARNING}[3]{} \define@choicekey*+[Y@G]{yagusylo.sty}{symfam}[\Y@G@SymFamChoice\nr]% {marvosym,fourier,wasysym,bbding,dingbat,ark,ifsym,ifsymgeo,% ifsymgeonarrow,ifsymgeowide,ifsymclock,ifsymweather,pifont}% [pifont]% {\Y@GINFO{You choose \Y@G@SymFamChoice}}% {\PackageError{yagusylo}% {The symbols family ``\Y@G@SymFamChoice'' is not yet known.} {I don't know the family you required.\MessageBreak If it's not a typo you may consider to contact me (TdS)\MessageBreak to obtain support for it.}} \define@boolkey[Y@G]{yagusylo.sty}[Y@G@]{color}[false]{} \define@boolkey[Y@G]{yagusylo.sty}[Y@G@]{configfile}[false]{} \define@choicekey*+[Y@G]{yagusylo.sty}{info}[\Y@G@Info\nr]% {mute,normal,verbose}[normal]{}{} \define@choicekey*+[Y@G]{yagusylo.sty}{onerror}[\Y@G@OnError\nr]% {nice,tough}[tough]{}{} \define@key[Y@G]{yagusylo.sty}{XcolorOptions}[!Y@G!]% {\def\Y@GXcolorOptions{#1}} \ExecuteOptionsX[Y@G]{symfam,color,XcolorOptions,info,onerror,configfile} \ProcessOptionsX[Y@G]\relax \let\nr\relax \ifY@G@color \ifthenelse{\equal{\Y@GXcolorOptions}{!Y@G!}} {\RequirePackage{xcolor}} {\RequirePackage[\Y@GXcolorOptions]{xcolor} \PackageInfo{yagusylo}{Package xcolor loaded with options: \Y@GXcolorOptions}} \define@key[Y@G]{yagusylo.sty}{symcolor}[red]{\def\Y@GSymColor{#1}} \setkeys[Y@G]{yagusylo.sty}{symcolor} \newcommand\Y@G@Couleur[1]{\color{#1}} \else \define@key[Y@G]{yagusylo.sty}{symcolor}[]{} \newcommand\Y@G@Couleur[1]{\relax} \def\Y@GSymColor{\relax} \fi \disable@keys[Y@G]{yagusylo.sty}{color,onerror,info} \newcommand\setyagusylokeys[1]{% \ifthenelse{\equal{#1}{*}}% {\setkeys[Y@G]{yagusylo.sty}{% symfam,symcolor,% leadtype,symplace,sympos,boxwidth,before,after,% head,tail}}% {\setkeys[Y@G]{yagusylo.sty}{#1}}} \AtEndOfPackage{% \PackageInfo{yagusylo}{^^J% ============================================================^^J% ^^J% ****************** YAGUSYLO GLOBAL SETUPS ******************^^J% ^^J% ===================== GENERAL OPTIONS ======================^^J% ^^J% option ``info'' ......... is ``\Y@G@Info''^^J% option ``onerror'' ...... is ``\Y@G@OnError''^^J% option ``color'' ........ is \ifY@G@color``true''\else``false''\fi^^J% option ``configfile'' ... is \ifY@G@configfile``true''\else``false''\fi^^J% ^^J% -------------------- CHANGEABLE OPTIONS --------------------^^J% ^^J% \ifY@G@color option ``symcolor'' ....... is ``\Y@GSymColor''^^J\fi option ``symfam'' ......... is ``\Y@G@SymFamChoice''^^J% option ``leadtype'' ....... is ``\Y@Gyagfillleadtype''^^J% option ``symplace'' ....... is ``\Y@Gyagfillsymplace''^^J% option ``sympos'' ......... is ``\Y@Gyagfillsympos''^^J% option ``boxwidth'' ....... is ``\Y@Gyagfillboxwidth''^^J% option ``before'' ......... is ``\Y@Gyagfillbefore''^^J% option ``after'' .......... is ``\Y@Gyagfillafter''^^J% option ``head'' ........... is ``\the\Y@Glinehead''^^J% option ``tail'' ........... is ``\the\Y@Glinetail''^^J% ::::::::::::::::: OPTIONS FOR YAGENUMERATE :::::::::::::::::^^J% option ``firstitemnum'' ... is ``\number\Y@GEnumFirstItemNum''^^J% option ``enumlength'' ..... is ``\number\Y@GEnumLength''^^J% \ifY@G@color option ``symcolor'' ....... is ``\Y@GEnumSymColor''^^J\fi option ``symfam'' ......... is ``\Y@G@EnumSymFamChoice''^^J% ------------------------------------------------------------^^J% ^^J% The known patterns for environment ``yagenumerate'' are:^^J% ``piwcr'' (default), ``piwcs'', ``pibcr'', and ``pibcs''.^^J% ^^J% ============================================================% \@gobbletwo}% \ifthenelse{\equal{\Y@G@Info}{verbose}} {\renewcommand*{\Y@GINFO}[2][0]{\PackageInfo{yagusylo}{#2}}}{}% \ifthenelse{\equal{\Y@G@Info}{normal}} {\renewcommand*{\Y@GINFO}[2][0]{% \ifthenelse{#1>0}{\PackageInfo{yagusylo}{#2}}}{}}{}% \ifthenelse{\equal{\Y@G@OnError}{tough}} {\renewcommand*{\Y@GWARNING}[3]{\PackageError{yagusylo}{#1}{#3}}}{} \ifthenelse{\equal{\Y@G@OnError}{normal}} {\renewcommand*{\Y@GWARNING}[3]{\PackageError{yagusylo}{#1}{#3}}}{} \ifthenelse{\equal{\Y@G@OnError}{nice}} {\renewcommand*{\Y@GWARNING}[3]{\PackageWarning{yagusylo}{#1#2}}}{}} \newcommand\Y@G@U@FamilyDef[1]{\fontencoding{U}\fontfamily{#1}} \newcommand\Y@Gif[3]{% \ifthenelse{\equal{#1}{#2}}{\Y@G@U@FamilyDef{#3}}{}} \newcommand\Y@GifE[4]{% \ifthenelse{\equal{#1}{#2}}{\Y@G@U@FamilyDef{#3}#4}{}} \newcommand\Y@Gyagding[3]{{% \Y@G@GetSymb{#1}\selectfont\Y@G@Couleur{#3}\char#2}} \newcommandx\yagding[3][1=\Y@G@SymFamChoice,3=\Y@GSymColor]{{% \Y@G@GetSymb{#1}\selectfont\Y@G@Couleur{#3}\char#2}} \newcommand\Y@G@GetSymb[1]{% \Y@GifE{#1}{marvosym}{mvs}{\fontseries{m}\fontshape{n}}% \Y@Gif{#1}{fourier}{futs}% \Y@Gif{#1}{wasysym}{wasy}% \Y@Gif{#1}{bbding}{ding}% \Y@Gif{#1}{dingbat}{dingbat}% \Y@Gif{#1}{ark}{ark}% \Y@Gif{#1}{ifsym}{ifsym}% \Y@Gif{#1}{ifsymgeo}{ifgeo}% \Y@GifE{#1}{ifsymgeonarrow}{ifgeo}{\fontshape{na}}% \Y@GifE{#1}{ifsymgeowide}{ifgeo}{\fontshape{w}}% \Y@Gif{#1}{ifsymclock}{ifclk}% \Y@Gif{#1}{ifsymweather}{ifwea}% \Y@Gif{#1}{pifont}{pzd}} \newcommandx\defdingname[5][1=*,2=local,5=\Y@GSymColor]{% \Y@GINFO{You define ``#4'' with symbols family ``#1'' and color ``#5''}% \ifthenelse{\equal{#1}{*}} {\ifthenelse{\equal{#2}{local}} {\ifthenelse{\equal{#5}{*}} {\expandafter\edef\csname Y@G@@ #4\endcsname {\yagding[\Y@G@SymFamChoice]{#3}[\noexpand\Y@GSymColor]}} {\expandafter\edef\csname Y@G@@ #4\endcsname {\yagding[\Y@G@SymFamChoice]{#3}[#5]}}}% {\ifthenelse{\equal{#2}{global}} {\ifthenelse{\equal{#5}{*}} {\expandafter\xdef\csname Y@G@@ #4\endcsname {\yagding[\Y@G@SymFamChoice]{#3}[\noexpand\Y@GSymColor]}} {\expandafter\xdef\csname Y@G@@ #4\endcsname {\yagding[\Y@G@SymFamChoice]{#3}[#5]}}}% {\Y@GWARNING{Value #2 not recognised} {.\MessageBreak The possible values are ``local'' (default) and ``global''.\MessageBreak I will assume you wanted ``local''} {The possible values are ``local'' (default) and ``global''}}}}% {\ifthenelse{\equal{#2}{local}} {\ifthenelse{\equal{#5}{*}} {\expandafter\edef\csname Y@G@@ #4\endcsname {\yagding[#1]{#3}[\noexpand\Y@GSymColor]}} {\expandafter\edef\csname Y@G@@ #4\endcsname {\yagding[#1]{#3}[#5]}}}% {\ifthenelse{\equal{#2}{global}} {\ifthenelse{\equal{#5}{*}} {\expandafter\xdef\csname Y@G@@ #4\endcsname {\yagding[#1]{#3}[\noexpand\Y@GSymColor]}} {\expandafter\xdef\csname Y@G@@ #4\endcsname {\yagding[#1]{#3}[#5]}}}% {\Y@GWARNING{Value #2 not recognised} {.\MessageBreak The possible values are ``local'' (default) and ``global''.\MessageBreak I will assume you wanted ``local''} {The possible values are ``local'' (default) and ``global''}}}}} \WithSuffix\newcommandx\yagding+[6][1=U,6=\Y@GSymColor]{{% \fontencoding{#1}\fontfamily{#2}% \ifthenelse{\equal{#3}{*}}{}{\fontseries{#3}}% \ifthenelse{\equal{#4}{*}}{}{\fontshape{#4}}% \selectfont\Y@G@Couleur{#6}\char#5}} \WithSuffix\newcommand\yagding*[1]{% \ifthenelse{\isnamedefined{Y@G@@ #1}} {\csname Y@G@@ #1\endcsname} {[\string? #1 \string?]% \Y@GWARNING{The name #1 is not defined} {.\MessageBreak Or you forgot to define it\MessageBreak or you defined it inside an alien group.\MessageBreak In any case you used it}{}}} \WithSuffix\newcommandx\defdingname+[8] [1=U,2=local,8=\Y@GSymColor]{% \ifthenelse{\equal{#2}{local}}% {\ifthenelse{\equal{#8}{*}}% {\expandafter\edef\csname Y@G@@ #7\endcsname {\yagding+[#1]{#3}{#4}{#5}{#6}[\noexpand\Y@GSymColor]}}% {\expandafter\edef\csname Y@G@@ #7\endcsname {\yagding+[#1]{#3}{#4}{#5}{#6}[#8]}}}% {\ifthenelse{\equal{#2}{global}}% {\ifthenelse{\equal{#8}{*}}% {\expandafter\xdef\csname Y@G@@ #7\endcsname {\yagding+[#1]{#3}{#4}{#5}{#6}[\noexpand\Y@GSymColor]}}% {\expandafter\xdef\csname Y@G@@ #7\endcsname {\yagding+[#1]{#3}{#4}{#5}{#6}[#8]}}}% {\Y@GWARNING{Value #2 not recognised} {.\MessageBreak The possible values are ``local'' (default) and ``global''.\MessageBreak I will assume you wanted ``local''} {The possible values are ``local'' (default) and ``global''}}}} \newcommand{\Y@Gfill}[7]% {{\leavevmode \dimendef\Y@Glongi=255\relax \dimendef\Y@GBoxActualWidth=254\relax \ifthenelse{\equal{#2}{l}}{\let\Leaders=\leaders}{}% \ifthenelse{\equal{#2}{x}}{\let\Leaders=\xleaders}{}% \ifthenelse{\equal{#2}{c}}{\let\Leaders=\cleaders}{}% \ifthenelse{\equal{#3}{a}} {\def\LaBoite{\hbox{\makebox{\hspace{#6}#1\hspace{#7}}}}} {% \settowidth{\Y@Glongi}{#1}% \ifdim#5>\Y@Glongi% \setlength{\Y@GBoxActualWidth}{#5}% \else \setlength{\Y@GBoxActualWidth}{\Y@Glongi}% \Y@GINFO{The choosen value for ``boxwidth'' is too short,\MessageBreak I will use the natural width of the symbol: \the\Y@GBoxActualWidth}\fi \ifthenelse{\equal{#3}{n}} {\ifthenelse{\(#4<0\)\or\(#4>1000\)} {\Y@GWARNING{I don't understand what you want} {.\MessageBreak I assume the default} {You should read the documentation [[SECyagfillboxwidth]].}% \def\LaBoite{\hbox{\makebox[\Y@GBoxActualWidth][c]{#1}}}}% {\setlength{\Y@Glongi}{\Y@GBoxActualWidth-\Y@Glongi}% \setlength{\Y@Glongi}{\Y@Glongi/1000*#4}% \def\LaBoite{\hbox{\makebox% [\Y@GBoxActualWidth][l]{\hspace*{\Y@Glongi}#1\hfill}}}}}% {\def\LaBoite{\hbox{\makebox[\Y@GBoxActualWidth][#3]{#1}}}}}% \Leaders\LaBoite\hfill\kern\z@}} \define@choicekey*+[Y@G]{yagusylo.sty}{leadtype}[\Y@Gyagfillleadtype\nr]% {l,c,x}[l]% {\Y@GINFO{Key ``leadtype'' is ``\Y@Gyagfillleadtype''}}% {\PackageError{yagusylo}% {Possible choices for key ``leadtype'': l (default), c or x} {I don't know the type you required.\MessageBreak Read the doc, please}} \define@choicekey*+[Y@G]{yagusylo.sty}{symplace}[\Y@Gyagfillsymplace\nr]% {c,r,l,a,n}[c]% {\Y@GINFO{Key ``symplace'' is ``\Y@Gyagfillsymplace''}}% {\PackageError{yagusylo}% {Possible choices for key ``symplace'': c (default), l, r, a or n} {I don't know the place you required.\MessageBreak Read the doc, please}} \define@key[Y@G]{yagusylo.sty}{sympos}[0]{% \ifthenelse{\(#1<0\)\or\(#1>1000\)} {\PackageError{yagusylo} {Your choice ``#1'' for key ``sympos'' is out of bound} {You should chose a interger between 0 and 1000.\MessageBreak You should read the documentation}} {\Y@GINFO{Keys ``sympos'' is ``#1''}% \def\Y@Gyagfillsympos{#1}}} \define@key[Y@G]{yagusylo.sty}{boxwidth}[0.2in]{% \ifthenelse{\dimtest{#1}<{0pt} \or \dimtest{#1}={0pt}} {\PackageError{yagusylo} {Your choice ``#1'' for key ``boxwidth'' is out of bound} {You should chose a positive length.\MessageBreak You should read the documentation}} {\Y@GINFO {You've asked for ``#1'' as box width.\MessageBreak In any case the box will be at least\MessageBreak as large as the symbol itself}}% \def\Y@Gyagfillboxwidth{#1}} \define@key[Y@G]{yagusylo.sty}{before}[0pt]{% \ifthenelse{\dimtest{#1}<{0pt}} {\PackageError{yagusylo} {Your choice ``#1'' for key ``before'' is out of bound} {You should chose a non-negative length.\MessageBreak You should read the documentation}} {\Y@GINFO{Key ``before'' is ``#1''}}% \def\Y@Gyagfillbefore{#1}} \define@key[Y@G]{yagusylo.sty}{after}[!Y@G!]{% \ifthenelse{\equal{#1}{!Y@G!}}% {\def\Y@Gyagfillafter{\Y@Gyagfillbefore}}% {\ifthenelse{\dimtest{#1}<{0pt}} {\PackageError{yagusylo} {Your choice ``#1'' for key ``after'' is out of bound} {You should chose a non-negative length.\MessageBreak You should read the documentation}} {\Y@GINFO{Key ``after'' is ``#1''}}% \def\Y@Gyagfillafter{#1}}} \setkeys[Y@G]{yagusylo.sty}{leadtype,symplace,sympos,boxwidth,before,after} \newcommand\yagfill[2][!Y@G!]{% \begingroup \ifthenelse{\equal{#1}{!Y@G!}}{}% {\setkeys[Y@G]{yagusylo.sty}{#1}}% \Y@Gfill{\yagding{#2}}% {\Y@Gyagfillleadtype}{\Y@Gyagfillsymplace}% {\Y@Gyagfillsympos}{\Y@Gyagfillboxwidth}% {\Y@Gyagfillbefore}{\Y@Gyagfillafter}% \endgroup} \WithSuffix\newcommand\yagfill*[2][!Y@G!]{% \begingroup \ifthenelse{\equal{#1}{!Y@G!}}% {}% {\setkeys[Y@G]{yagusylo.sty}{#1}}% \Y@Gfill{\yagding*{#2}}% {\Y@Gyagfillleadtype}{\Y@Gyagfillsymplace}% {\Y@Gyagfillsympos}{\Y@Gyagfillboxwidth}% {\Y@Gyagfillbefore}{\Y@Gyagfillafter}% \endgroup} \WithSuffix\newcommand\yagfill+[2][!Y@G!]{% \begingroup \ifthenelse{\equal{#1}{!Y@G!}}{}% {\setkeys[Y@G]{yagusylo.sty}{#1}}% \Y@Gfill{#2}% {\Y@Gyagfillleadtype}{\Y@Gyagfillsymplace}% {\Y@Gyagfillsympos}{\Y@Gyagfillboxwidth}% {\Y@Gyagfillbefore}{\Y@Gyagfillafter}% \endgroup} \newlength{\Y@Glinehead} \newlength{\Y@Glinetail} \define@key[Y@G]{yagusylo.sty}{head}[0.5in]{% \setlength{\Y@Glinehead}{#1}} \define@key[Y@G]{yagusylo.sty}{tail}[0.5in]{% \setlength{\Y@Glinetail}{#1}} \setkeys[Y@G]{yagusylo.sty}{head,tail} \newcommandx\setyagline[2][2=!Y@G!]{% \ifthenelse{\equal{#2}{!Y@G!}}% {\setkeys[Y@G]{yagusylo.sty}{head=#1,tail=#1}}% {\setkeys[Y@G]{yagusylo.sty}{head=#1,tail=#2}}} \newcommand{\yagline}[2][!Y@G!]% {\begingroup \ifthenelse{\equal{#1}{!Y@G!}}{}% {\setkeys[Y@G]{yagusylo.sty}{#1}}% \par\noindent\hspace{\Y@Glinehead}% \Y@Gfill{\yagding[\Y@G@SymFamChoice]{#2}}% {\Y@Gyagfillleadtype}{\Y@Gyagfillsymplace}% {\Y@Gyagfillsympos}{\Y@Gyagfillboxwidth}% {\Y@Gyagfillbefore}{\Y@Gyagfillafter}% \hspace{\Y@Glinetail}\kern\z@\par \endgroup} \WithSuffix\newcommand\yagline*[2][!Y@G!]% {\begingroup \ifthenelse{\equal{#1}{!Y@G!}}{}% {\setkeys[Y@G]{yagusylo.sty}{#1}}% \par\noindent\hspace{\Y@Glinehead}% \Y@Gfill{\yagding*{#2}}% {\Y@Gyagfillleadtype}{\Y@Gyagfillsymplace}% {\Y@Gyagfillsympos}{\Y@Gyagfillboxwidth}% {\Y@Gyagfillbefore}{\Y@Gyagfillafter}% \hspace{\Y@Glinetail}\kern\z@\par \endgroup} \WithSuffix\newcommand\yagline+[2][!Y@G!]% {\begingroup \ifthenelse{\equal{#1}{!Y@G!}}{}% {\setkeys[Y@G]{yagusylo.sty}{#1}}% \par\noindent\hspace{\Y@Glinehead}% \Y@Gfill{#2}% {\Y@Gyagfillleadtype}{\Y@Gyagfillsymplace}% {\Y@Gyagfillsympos}{\Y@Gyagfillboxwidth}% {\Y@Gyagfillbefore}{\Y@Gyagfillafter}% \hspace{\Y@Glinetail}\kern\z@\par \endgroup} \newcommand{\Y@GLevelTest}[6]{% \ifthenelse% {\cnttest{\value{Y@G#1}}<{\value{Y@G#2}}}% {\setcounter{Y@G#3}{\value{Y@G#1}}}% {\setcounter{Y@G#3}{\value{Y@G#2}}% \ifthenelse{\cnttest{\value{Y@G#1}}={\value{Y@G#2}}} {\Y@GWARNING{Too deeply nested for your setup} {.\MessageBreak I keep on using the last symbol.\MessageBreak You could have a look at your last\MessageBreak ``#4''\MessageBreak First ``#5'' too many}% {You could have a look at your last\MessageBreak ``#4''\MessageBreak First ``#5'' too many.\MessageBreak You should read the documentation [[#6]].}}{}}} \newcounter{Y@GItemLevel} \newcounter{Y@GItemMark} \newcounter{Y@GYagitemizeMaxDepth} \newenvironmentx{yagitemize}[3][1=\Y@G@SymFamChoice,3=\Y@GSymColor] {\stepcounter{Y@GItemLevel}% \ifthenelse{\equal{#2}{*}} {\Y@GLevelTest{ItemLevel}{YagitemizeMaxDepth}{ItemMark} {setyagitemize}{yagitemize}{5.1.2}% \edef\numero{\roman{Y@GItemMark}}% \begin{list}{% \yagding% [\csname Y@G@symfam@niveau\numero\endcsname]% {\csname Y@G@symfam@numero\numero\endcsname}% [\csname Y@G@symfam@couleur\numero\endcsname]}{}} {\begin{list}{\yagding[#1]{#2}[#3]}{}}}% {\end{list}\addtocounter{Y@GItemLevel}{-1}} \newcommand{\setyagitemize}[1]{% \setcounter{Y@GYagitemizeMaxDepth}{0}% \Y@Gsetyagitemize #1.Y@G@.\@nil} \def\Y@Gsetyagitemizeaux #1\fi{% \fi \Y@Gsetyagitemize #1}% \def\Y@Gsetyagitemize #1.#2{% \def\Y@Gfairemotif ##1,##2,##3\@Y@Gnil{% \edef\Y@Gpremier{##1}\edef\Y@Gdeuxieme{##2}\edef\Y@Gtroisieme{##3}% } \ifx#2\@nil\relax \else \Y@Gfairemotif#1\@Y@Gnil \stepcounter{Y@GYagitemizeMaxDepth}% \edef\numero{\roman{Y@GYagitemizeMaxDepth}}% \expandafter\edef\csname Y@G@symfam@niveau\numero\endcsname{\Y@Gpremier} \expandafter\edef\csname Y@G@symfam@numero\numero\endcsname{\Y@Gdeuxieme} \expandafter\edef\csname Y@G@symfam@couleur\numero\endcsname{\Y@Gtroisieme} \Y@Gsetyagitemizeaux #2\fi} \newcounter{Y@GYagitemizeStarMaxDepth} \WithSuffix\newcommand\setyagitemize*[1]{% \setcounter{Y@GYagitemizeStarMaxDepth}{0}% \Y@Gsetyagitemizestar #1.Y@G@.\@nil} \def\Y@Gsetyagitemizestaraux #1\fi{% \fi \Y@Gsetyagitemizestar #1}% \def\Y@Gsetyagitemizestar #1.#2{% \ifx#2\@nil% \relax \else \def\motif{#1}% \stepcounter{Y@GYagitemizeStarMaxDepth}% \edef\numero{\roman{Y@GYagitemizeStarMaxDepth}}% \expandafter\edef% \csname Y@Gsymbol@listdepth\numero\endcsname{% \yagding*{\motif}}% \Y@Gsetyagitemizestaraux #2\fi} \newcounter{Y@GItemStarLevel} \newenvironment{yagitemize*}[1][!Y@G!]% {\stepcounter{Y@GItemStarLevel} \ifthenelse{\equal{#1}{!Y@G!}} {\Y@GLevelTest{ItemStarLevel}{YagitemizeStarMaxDepth}{ItemMark} {setyagitemize*}{yagitemize*}{5.2.2}% \edef\Y@GActualSymbol{\csname Y@Gsymbol@listdepth\roman{Y@GItemMark}\endcsname}} {\edef\Y@GActualSymbol{\yagding*{#1}}}% \begin{list}{\Y@GActualSymbol}{}} {\end{list}\addtocounter{Y@GItemStarLevel}{-1}} \newcommand\yagnumber[3]{\protect\Y@Gyagding{#1}{\arabic{#2}}{#3}} \newboolean{Y@GitemRedefined} \define@choicekey*+[Y@G]{y@genum}{symfam}[\Y@G@EnumSymFamChoice\nr]% {marvosym,fourier,wasysym,bbding,dingbat,ark,ifsym,ifsymgeo,% ifsymgeonarrow,ifsymgeowide,ifsymclock,ifsymweather,pifont}% [pifont]% {\Y@GINFO{You choose \Y@G@EnumSymFamChoice}}% {\PackageError{yagusylo}% {The symbols family ``\Y@G@EnumSymFamChoice'' is not yet known.} {I don't know the family you required.\MessageBreak If it's not a typo you may consider to contact me (TdS)\MessageBreak to obtain support for it.}} \define@key[Y@G]{y@genum}{symcolor}[blue]{\def\Y@GEnumSymColor{#1}} \define@key[Y@G]{y@genum}{firstitemnum}['254]{% \ifthenelse{\(#1<0\)\or \(#1>255\)} {\PackageError{yagusylo} {``#1'' is out of bound or not a number} {``firstitemnum'' requires a natural number\MessageBreak between 0 and 255}}% {\def\Y@GEnumFirstItemNum{#1}% \Y@GINFO{Key ``firstitemnum'' is ``\number\Y@GEnumFirstItemNum''}}} \define@key[Y@G]{y@genum}{enumlength}[10]{% \ifthenelse{\(#1<1\)\or \(#1>255\)} {\PackageError{yagusylo} {``#1'' is out of bound or not a number} {``enumlength'' requires a natural number\MessageBreak between 1 and 255}}% {\def\Y@GEnumLength{#1}% \Y@GINFO{Key ``enumlength'' is ``\number\Y@GEnumLength''}}} \newcommand*\newenumpattern[2]{% \ifthenelse{\isnamedefined{Y@GEnumPattern@#1}} {\PackageError{yagusylo}{Pattern ``#1'' already defined}{% You should choose another name\MessageBreak this version does NOT provide a ``renewenumpattern'' macro}} {{\renewcommand*{\Y@GINFO}[1]{} \expandafter\gdef\csname Y@GEnumPattern@#1\endcsname{% \setkeys[Y@G]{y@genum}{#2}}} \Y@GINFO[1]{Pattern ``#1'' defined with\MessageBreak symfam=\Y@G@EnumSymFamChoice\MessageBreak symcolor=\Y@GEnumSymColor\MessageBreak firstitetemnum=\number\Y@GEnumFirstItemNum\MessageBreak enumlength=\Y@GEnumLength\MessageBreak}}} \newenumpattern{piwcr}{symfam=pifont,firstitemnum='254,enumlength=10} \newenumpattern{piwcs}{symfam=pifont,firstitemnum='300,enumlength=10} \newenumpattern{pibcr}{symfam=pifont,firstitemnum='266,enumlength=10} \newenumpattern{pibcs}{symfam=pifont,firstitemnum='312,enumlength=10} \newcommand{\Y@GSetYagEnumerate}[1]{% \ifthenelse{\isnamedefined{Y@GEnumPattern@#1}}% {\csname Y@GEnumPattern@#1\endcsname}% {\Y@GWARNING{The pattern ``#1'' is not know} {.\MessageBreak I select ``piwcr'' instead} {You should read the documentation [[SECyagpattern]].}% \csname Y@GEnumPattern@piwcr\endcsname}} \define@key[Y@G]{y@genum}{enumpattern}[piwcr]{% \edef\Y@GEnumPatternChoice{#1}% \Y@GSetYagEnumerate{#1}} \setkeys[Y@G]{y@genum}{symfam,symcolor,firstitemnum,enumlength} \newcommand\setyagenumeratekeys[1]{% \ifthenelse{\equal{#1}{*}}% {\setkeys[Y@G]{y@genum} {symfam,symcolor,firstitemnum,enumlength,enumpattern}}% {\setkeys[Y@G]{y@genum}{#1}}} \newcounter{Y@Gmaxitem} \newcounter{Y@Gcitem} \newenvironment{yagenumerate}[1][!Y@G!] {% \ifthenelse{\equal{#1}{!Y@G!}} {\setkeys[Y@G]{y@genum}{symfam,symcolor,firstitemnum,enumlength}} {\ifthenelse{\equal{#1}{*}} {\setkeys[Y@G]{y@genum}{enumpattern=\Y@GEnumPatternChoice}} {\setkeys[Y@G]{y@genum}{#1}}}% \ifnum\@enumdepth>\thr@@\@toodeep\else \advance\@enumdepth \@ne \def\STOP{\PackageError{yagusylo} {at least one item too many} {you can't use more than ``\number\Y@GEnumLength'' items}}% \setcounter{Y@Gmaxitem}{\Y@GEnumFirstItemNum} \addtocounter{Y@Gmaxitem}{\Y@GEnumLength} \setcounter{Y@Gcitem}{\Y@GEnumFirstItemNum} \ifthenelse{\boolean{Y@GitemRedefined}}{} {\let\Y@Golditem\item \def\item{\stepcounter{Y@Gcitem} \ifnum\theY@Gcitem>\theY@Gmaxitem\expandafter\STOP \else\expandafter\Y@Golditem\fi} \setboolean{Y@GitemRedefined}{true}} \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \expandafter\def\csname p@enum\romannumeral\the\@enumdepth\endcsname{}% \expandafter\def\csname labelenum\romannumeral\the\@enumdepth\endcsname{% \csname theenum\romannumeral\the\@enumdepth\endcsname}% \expandafter\def\csname theenum\romannumeral\the\@enumdepth\endcsname{% \yagnumber{\Y@G@EnumSymFamChoice}% {enum\romannumeral\the\@enumdepth}{\Y@GEnumSymColor}}% \list{\csname label\@enumctr\endcsname}{% \@nmbrlisttrue \def\@listctr{\@enumctr}% \setcounter{\@enumctr}{\Y@GEnumFirstItemNum}% \addtocounter{\@enumctr}{-1}% \def\makelabel##1{\hss\llap{##1}}} \fi}{\endlist} \newenvironment{notyagenum} {\let\item\Y@Golditem \setboolean{Y@GitemRedefined}{false}}{} \AtBeginDocument{% \ifY@G@configfile \InputIfFileExists{yagusylo.cfg}% {\PackageInfo{yagusylo}{Configuration file found and read\@gobble}}% {\PackageErrorNoLine{yagusylo} {No configuration file found} {Or yagusylo.cfg does not exist\MessageBreak or it is in some place unknown of TeX.}}% \fi} \endinput %% %% End of file `yagusylo.sty'.