From 8c5c2563a8401e879930dd15ea9ccbdcf087037d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 21 Jun 2009 23:27:03 +0000 Subject: dozenal update (21jun09) git-svn-id: svn://tug.org/texlive/trunk@13863 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/dozenal/dozenal.sty | 76 ++++++++++++++++++++----- 1 file changed, 62 insertions(+), 14 deletions(-) (limited to 'Master/texmf-dist/tex/latex/dozenal') diff --git a/Master/texmf-dist/tex/latex/dozenal/dozenal.sty b/Master/texmf-dist/tex/latex/dozenal/dozenal.sty index 0f8a2caedbd..1bdb6e114f6 100644 --- a/Master/texmf-dist/tex/latex/dozenal/dozenal.sty +++ b/Master/texmf-dist/tex/latex/dozenal/dozenal.sty @@ -93,16 +93,16 @@ % \cs{basexii}\marg{number}\marg{ten symbol}\marg{eleven symbol} % \end{quote} % What the above means is that the command is |\basexii| and -% it takes three mandatory arguments: first, the symbol -% that should be used for ten; second, the symbol that -% should be used for eleven; and third, the number that -% should be converted into dozenal using those two symbols. -% This number should be positive and whole; that is, it -% should be zero or higher, and it should not contain a -% fractional part. \TeX\ is a typesetting program, after -% all; if you want a robust decimal to dozenal converter, -% there are many options that any dozenalists caring enough -% to use this package will already know about. +% it takes three mandatory arguments: first, the number to +% be converted into dozenal; second, the symbol that should +% be used for ten; and third, the symbol that should be used +% for eleven. This number should be positive and whole; +% that is, it should be zero or higher, and it should not +% contain a fractional part. \TeX\ is a typesetting +% program, after all; if you want a robust decimal to +% dozenal converter, there are many options that any +% dozenalists caring enough to use this package will already +% know about. % % This |\basexii| algorithm was produced by David Kastrup, % well known and admired in the \TeX\ world for his many @@ -166,7 +166,8 @@ % \begin{macrocode} \ProvidesPackage{dozenal} % \end{macrocode} -% Now we need to make sure that we have fixltx2e loaded. +% Now we need to make sure that we have fixltx2e loaded, so +% that the |\TextorMath| magic will work. % \begin{macrocode} \RequirePackage{fixltx2e} % \end{macrocode} @@ -176,6 +177,8 @@ % decent use for it except in packages and preambles; it is % then used to define |\x| and |\e|, which provide the ten % and eleven symbols for all the counter redefinitions. +% This includes definitions for both T1 and OT1 encodings, +% so it will work with either. % \begin{macrocode} \DeclareFontFamily{OT1}{dozch}{} \DeclareFontShape{OT1}{dozch}{m}{n}{<-7> dozchars6 <7> dozchars7 <8> dozchars8 <9> dozchars9 <10-11> dozchars10 <12-16> dozchars12 <17-> dozchars17 }{} @@ -185,6 +188,14 @@ \DeclareFontShape{OT1}{dozch}{bx}{sl}{<-> dozchbxsl10 }{} \DeclareFontShape{OT1}{dozch}{m}{it}{<-7> dozchit7 <8> dozchit8 <9> dozchit9 <10-11> dozchit10 <12-> dozchit12 }{} \DeclareFontShape{OT1}{dozch}{bx}{it}{<-> dozchbxi10 }{} +\DeclareFontFamily{T1}{dozch}{} +\DeclareFontShape{T1}{dozch}{m}{n}{<-7> dozchars6 <7> dozchars7 <8> dozchars8 <9> dozchars9 <10-11> dozchars10 <12-16> dozchars12 <17-> dozchars17 }{} +\DeclareFontShape{T1}{dozch}{b}{n}{<-> dozchb10 }{} +\DeclareFontShape{T1}{dozch}{bx}{n}{<-6> dozchbx6 <7> dozchbx7 <8> dozchbx8 <9> dozchbx9 <10-11> dozchbx10 <12-> dozchbx12 }{} +\DeclareFontShape{T1}{dozch}{m}{sl}{<-8> dozchsl8 <9> dozchsl9 <10-11> dozchsl10 <12-> dozchsl12 }{} +\DeclareFontShape{T1}{dozch}{bx}{sl}{<-> dozchbxsl10 }{} +\DeclareFontShape{T1}{dozch}{m}{it}{<-7> dozchit7 <8> dozchit8 <9> dozchit9 <10-11> dozchit10 <12-> dozchit12 }{} +\DeclareFontShape{T1}{dozch}{bx}{it}{<-> dozchbxi10 }{} \newcommand\doz[1]{{\fontfamily{dozch}\selectfont #1}} \newcommand\x{\TextOrMath{\protect\doz{{X}}}{\X}}% \newcommand\e{\TextOrMath{\protect\doz{{E}}}{\E}}% @@ -210,9 +221,45 @@ % covers only those counters included in the basic \LaTeX\ % document classes, however, so if you've written your own, % you'll need to redefine them yourself. +% +% This first bit ensures that the counters are redefined +% even if the command |\mainmatter| is not defined. We have +% to do this outside of the |\g@addto@macro| below; +% otherwise, in documents where |\mainmatter| is defined but +% not used, the counters will not be redefined. This way, +% they're redefined in all cases. +% \begin{macrocode} +\@ifundefined{c@page}{}{\renewcommand\thepage{\basexii{\arabic{page}}{\x}{\e}}} +\@ifundefined{c@footnote}{}{\renewcommand\thefootnote{\basexii{\arabic{footnote}}{\x}{\e}}} +\@ifundefined{c@part}{}{\renewcommand\thepart{\basexii{\arabic{part}}{\x}{\e}}} +\@ifundefined{c@subparagraph}{}{\renewcommand\thesubparagraph{\basexii{\arabic{subparagraph}}{\x}{\e}}} +\@ifundefined{c@paragraph}{}{\renewcommand\theparagraph{\basexii{\arabic{paragraph}}{\x}{\e}}} +\@ifundefined{c@equation}{}{\renewcommand\theequation{\basexii{\arabic{equation}}{\x}{\e}}} +\@ifundefined{c@figure}{}{\renewcommand\thefigure{\basexii{\arabic{figure}}{\x}{\e}}} +\@ifundefined{c@table}{}{\renewcommand\thetable{\basexii{\arabic{table}}{\x}{\e}}} +\@ifundefined{c@table}{}{\renewcommand\thempfootnote{\basexii{\arabic{mpfootnote}}{\x}{\e}}} +\@ifundefined{c@enumi}{}{\renewcommand\theenumi{\basexii{\arabic{enumi}}{\x}{\e}}} +\@ifundefined{c@enumii}{}{\renewcommand\theenumii{\basexii{\arabic{enumii}}{\x}{\e}}} +\@ifundefined{c@enumiii}{}{\renewcommand\theenumiii{\basexii{\arabic{enumiii}}{\x}{\e}}} +\@ifundefined{c@enumiv}{}{\renewcommand\theenumiv{\basexii{\arabic{enumiv}}{\x}{\e}}} +\@ifundefined{c@chapter}{% if it's undefined +\renewcommand\thesection{\basexii{\arabic{section}}{\x}{\e}} +\renewcommand\thesubsection{\thesection.\basexii{\arabic{subsection}}{\x}{\e}} +\renewcommand\thesubsubsection{\thesubsection.\basexii{\arabic{subsubsection}}{\x}{\e}} +} % end undefined +{%if it's defined +\renewcommand\thechapter{\basexii{\arabic{chapter}}{\x}{\e}} +\renewcommand\thesection{\thechapter.\basexii{\arabic{section}}{\x}{\e}} +\renewcommand\thesubsection{\thesection.\basexii{\arabic{subsection}}{\x}{\e}} +\renewcommand\thesubsubsection{\thesubsection.\basexii{\arabic{subsubsection}}{\x}{\e}} +}%end if chapter's defined +% \end{macrocode} +% Finally, if the ``mainmatter'' command is used, we need to +% make sure that it doesn't mess up our numbering scheme. % \begin{macrocode} +\@ifundefined{mainmatter}{}{% +\g@addto@macro\mainmatter{% \@ifundefined{c@page}{}{\renewcommand\thepage{\basexii{\arabic{page}}{\x}{\e}}} -\@ifundefined{c@chapter}{}{\renewcommand\thechapter{\basexii{\arabic{chapter}}{\x}{\e}}} \@ifundefined{c@footnote}{}{\renewcommand\thefootnote{\basexii{\arabic{footnote}}{\x}{\e}}} \@ifundefined{c@part}{}{\renewcommand\thepart{\basexii{\arabic{part}}{\x}{\e}}} \@ifundefined{c@subparagraph}{}{\renewcommand\thesubparagraph{\basexii{\arabic{subparagraph}}{\x}{\e}}} @@ -225,17 +272,18 @@ \@ifundefined{c@enumii}{}{\renewcommand\theenumii{\basexii{\arabic{enumii}}{\x}{\e}}} \@ifundefined{c@enumiii}{}{\renewcommand\theenumiii{\basexii{\arabic{enumiii}}{\x}{\e}}} \@ifundefined{c@enumiv}{}{\renewcommand\theenumiv{\basexii{\arabic{enumiv}}{\x}{\e}}} - -\@ifundefined{chapter}{% if it's undefined +\@ifundefined{c@chapter}{% if it's undefined \renewcommand\thesection{\basexii{\arabic{section}}{\x}{\e}} \renewcommand\thesubsection{\thesection.\basexii{\arabic{subsection}}{\x}{\e}} \renewcommand\thesubsubsection{\thesubsection.\basexii{\arabic{subsubsection}}{\x}{\e}} } % end undefined {%if it's defined +\renewcommand\thechapter{\basexii{\arabic{chapter}}{\x}{\e}} \renewcommand\thesection{\thechapter.\basexii{\arabic{section}}{\x}{\e}} \renewcommand\thesubsection{\thesection.\basexii{\arabic{subsection}}{\x}{\e}} \renewcommand\thesubsubsection{\thesubsection.\basexii{\arabic{subsubsection}}{\x}{\e}} } % end if it's defined +}} % \end{macrocode} % And that's the end. Thanks for reading, % folks; please email me with any suggestions or improvements. -- cgit v1.2.3