diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-19 23:46:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-19 23:46:08 +0000 |
commit | 4d169ca66f8bd4cfb4257a94e49edbfdcdc84ce8 (patch) | |
tree | fa6cb3f6085c6495059caccad40be5b76754b838 /Master/texmf-dist/tex/latex/fontaxes/fontaxes.sty | |
parent | 92d4b04fa1e31cfc4d0c314aa84d75d0a239db62 (diff) |
new latex package fontaxes (19sep11)
git-svn-id: svn://tug.org/texlive/trunk@24024 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fontaxes/fontaxes.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/fontaxes/fontaxes.sty | 377 |
1 files changed, 377 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/fontaxes/fontaxes.sty b/Master/texmf-dist/tex/latex/fontaxes/fontaxes.sty new file mode 100644 index 00000000000..269212d6e97 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fontaxes/fontaxes.sty @@ -0,0 +1,377 @@ +%% +%% This is file `fontaxes.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fontaxes.dtx (with options: `package') +%% +%% Copyright (c) 2007 by Andreas Buehmann +%% Copyright (c) 2011 by Michael Ummels <michael.ummels@rwth-aachen.de> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Michael Ummels. +%% +%% This work consists of the files fontaxes.dtx, fontaxes.ins and +%% the derived files fontaxes.sty, test-fontaxes.tex and fontaxes.pdf. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fontaxes}[2011/09/16 v1.0 Font selection axes] +\DeclareRobustCommand\upshape{\not@math@alphabet\upshape\relax + \fontprimaryshape\updefault\selectfont} +\DeclareRobustCommand\itshape{\not@math@alphabet\itshape\mathit + \fontprimaryshape\itdefault\selectfont} +\DeclareRobustCommand\slshape{\not@math@alphabet\slshape\relax + \fontprimaryshape\sldefault\selectfont} +\DeclareRobustCommand\swshape{\not@math@alphabet\swshape\relax + \fontprimaryshape\swdefault\selectfont} +\DeclareRobustCommand\scshape{\not@math@alphabet\scshape\relax + \fontsecondaryshape\scdefault\selectfont} +\DeclareRobustCommand\sscshape{\not@math@alphabet\sscshape\relax + \fontsecondaryshape\sscdefault\selectfont} +\DeclareRobustCommand\ulcshape{\not@math@alphabet\ulcshape\relax + \fontsecondaryshape\ulcdefault\selectfont} +\let\noscshape\ulcshape +\providecommand\swdefault{sw} +\providecommand\ulcdefault{ulc} +\providecommand\sscdefault{ssc} +\DeclareTextFontCommand{\textsw}{\swshape} +\DeclareTextFontCommand{\textssc}{\sscshape} +\DeclareTextFontCommand{\textulc}{\ulcshape} +\def\txfigures{\@nomath\txfigures + \fontfigurestyle{text}\selectfont} +\def\lnfigures{\@nomath\lnfigures + \fontfigurestyle{lining}\selectfont} +\def\tbfigures{\@nomath\tbfigures + \fontfigurealignment{tabular}\selectfont} +\def\prfigures{\@nomath\prfigures + \fontfigurealignment{proportional}\selectfont} +\newcommand\fontaxes@fv@prefix{fontaxes@fv@switch@} +\newcommand*\fontaxes@fv@newoption[1] + {\expandafter\newcommand\csname\fontaxes@fv@prefix #1\endcsname} +\fontaxes@fv@newoption{text} {\txfigures} +\fontaxes@fv@newoption{osf} {\txfigures} +\fontaxes@fv@newoption{lining} {\lnfigures} +\fontaxes@fv@newoption{lf} {\lnfigures} +\fontaxes@fv@newoption{tabular} {\tbfigures\tabularmath} +\fontaxes@fv@newoption{tab} {\tbfigures\tabularmath} +\fontaxes@fv@newoption{proportional}{\prfigures\proportionalmath} +\fontaxes@fv@newoption{prop} {\prfigures\proportionalmath} +\newcommand\fontaxes@fv@list{} +\newcommand\fontaxes@fv{} +\DeclareRobustCommand*\figureversion[1]{% + \edef\fontaxes@fv@list{\zap@space#1 \@empty}% + \@for\fontaxes@fv:=\fontaxes@fv@list\do{% + \@ifundefined{\fontaxes@fv@prefix\fontaxes@fv}{% + \PackageWarning{fontaxes}% + {Unknown figure style `\fontaxes@fv'\MessageBreak + specified as the argument to \string\figureversion.\MessageBreak + Figure style not changed}% + }{% + \@nameuse{\fontaxes@fv@prefix\fontaxes@fv}% + }% + }% +} +\AtBeginDocument{ + \@ifpackageloaded{hyperref}{% + \pdfstringdefDisableCommands{% + \let\figureversion\@gobble + \let\textfigures\@firstofone + \let\liningfigures\@firstofone + \let\tabularfigures\@firstofone + \let\proportionalfigures\@firstofone + \let\textsw\@firstofone + \let\textssc\@firstofone + \let\textulc\@firstofone + }% + }{}% +} +\DeclareTextFontCommand{\textfigures}{\txfigures} +\DeclareTextFontCommand{\liningfigures}{\lnfigures} +\DeclareTextFontCommand{\tabularfigures}{\tbfigures\tabularmath} +\DeclareTextFontCommand{\proportionalfigures} + {\prfigures\proportionalmath} +\def\boldmath{\@nomath\boldmath + \mathweight{bold}} +\def\unboldmath{\@nomath\unboldmath + \mathweight{normal}} +\def\tabularmath{\@nomath\tabularmath + \mathfigurealignment{tabular}} +\def\proportionalmath{\@nomath\proportionalmath + \mathfigurealignment{proportional}} +\DeclareRobustCommand\mathweight[1]{% + \fontaxes@get@math \edef\fontaxes@math@weight{#1}\fontaxes@set@math} +\DeclareRobustCommand\mathfigurealignment[1]{% + \fontaxes@get@math \edef\fontaxes@math@align{#1}\fontaxes@set@math} +\DeclareRobustCommand\fontfigurestyle[1]{% + \fontaxes@get@family \edef\fontaxes@figure@style{#1}\fontaxes@set@family} +\DeclareRobustCommand\fontfigurealignment[1]{% + \fontaxes@get@family \edef\fontaxes@figure@align{#1}\fontaxes@set@family} +\DeclareRobustCommand\fontbasefamily[1]{% + \fontaxes@get@family \edef\fontaxes@family@base{#1}\fontaxes@set@family} +\DeclareRobustCommand\fontprimaryshape[1]{% + \fontaxes@get@shape \edef\fontaxes@shape@one{#1}\fontaxes@set@shape} +\DeclareRobustCommand\fontsecondaryshape[1]{% + \fontaxes@get@shape \edef\fontaxes@shape@two{#1}\fontaxes@set@shape} +\newcommand*\fontaxes@math@weight{normal} +\newcommand*\fontaxes@math@align{proportional} +\newcommand*\fontaxes@family@base{MinionPro} +\newcommand*\fontaxes@figure@style{text} +\newcommand*\fontaxes@figure@align{proportional} +\newcommand*\fontaxes@shape@one{n} +\newcommand*\fontaxes@shape@two{ulc} +\newcommand*\fontaxes@set@math{% + \fontaxes@encode@math + \mathversion{\fontaxes@code}% + \fontaxes@save\math@version} +\newcommand*\fontaxes@set@family{% + \fontaxes@encode@family + \fontfamily{\fontaxes@code}% + \fontaxes@save\f@family} +\newcommand*\fontaxes@set@shape{% + \fontaxes@encode@shape + \fontshape{\fontaxes@code}% + \fontaxes@save\f@shape} +\newcommand*\fontaxes@get@math{% + \iffontaxes@changed\math@version{% + \fontaxes@decode@{math}{\math@version}% + \ifx\fontaxes@edoc\relax\else + \edef\fontaxes@math@weight{\expandafter\@firstoftwo\fontaxes@edoc}% + \edef\fontaxes@math@align{\expandafter\@secondoftwo\fontaxes@edoc}% + \fi + \fontaxes@save\math@version + }{}% +} +\newcommand*\fontaxes@get@family{% + \iffontaxes@changed\f@family{% + \let\fontaxes@edoc\relax + \expandafter\fontaxes@split@family\f@family--\@nnil + \ifx\fontaxes@split@suffix\relax\else + \fontaxes@decode@{figures}{\fontaxes@split@suffix}% + \fi + \ifx\fontaxes@edoc\relax + \expandafter\fontaxes@split@familyalt\f@family + \@empty\@empty\@empty\@empty\@nnil + \ifx\fontaxes@split@suffix\relax\else + \fontaxes@decode@{figuresalt}{\fontaxes@split@suffix}% + \fi + \ifx\fontaxes@edoc\relax + \fontaxes@warn@undecodable{family `\f@family'}% + \edef\fontaxes@family@base{\f@family}% + \else + \edef\fontaxes@family@base{\fontaxes@split@prefix}% + \edef\fontaxes@figure@style{\expandafter\@firstoftwo\fontaxes@edoc}% + \fi + \else + \edef\fontaxes@family@base{\fontaxes@split@prefix}% + \edef\fontaxes@figure@style{\expandafter\@firstoftwo\fontaxes@edoc}% + \edef\fontaxes@figure@align{\expandafter\@secondoftwo\fontaxes@edoc}% + \fi + }{}% +} +\newcommand*\fontaxes@get@shape{% + \iffontaxes@changed\f@shape{% + \fontaxes@decode@{shape}{\f@shape}% + \ifx\fontaxes@edoc\relax\else + \edef\fontaxes@shape@one{\expandafter\@firstoftwo\fontaxes@edoc}% + \edef\fontaxes@shape@two{\expandafter\@secondoftwo\fontaxes@edoc}% + \fi + \fontaxes@save\f@shape + }{}% +} +\newcommand*\fontaxes@encode@math{% + \fontaxes@encode@{math}{{\fontaxes@math@weight}{\fontaxes@math@align}}% +} +\newcommand*\fontaxes@encode@math@default{% + \edef\fontaxes@code{\fontaxes@math@weight\fontaxes@math@align}} +\newcommand*\fontaxes@encode@family{% + \fontaxes@encode@{family} + {{\fontaxes@family@base}{\fontaxes@figure@style}{\fontaxes@figure@align}}% +} +\newcommand*\fontaxes@encode@family@default{% + \fontaxes@encode@figures + \edef\fontaxes@code{\fontaxes@family@base-\fontaxes@code}% + \fontaxes@check@family\fontaxes@code + \iffontaxes@exists\else + \fontaxes@encode@figuresalt + \edef\fontaxes@code{\fontaxes@family@base\fontaxes@code}% + \fontaxes@check@family\fontaxes@code + \iffontaxes@exists\else + \edef\fontaxes@code{\fontaxes@family@base}% + \fi + \fi +} +\newcommand*\fontaxes@encode@figures{% + \fontaxes@encode@{figures}{{\fontaxes@figure@style}{\fontaxes@figure@align}}% +} +\newcommand*\fontaxes@encode@figures@default{% + \edef\fontaxes@code{OsF}% + \PackageWarning{fontaxes}{Unknown figure version + `\fontaxes@figure@style\space + \fontaxes@figure@align'\MessageBreak + Encoding to `\fontaxes@code'}% +} +\newcommand*\fontaxes@encode@figuresalt{% + \fontaxes@encode@{figuresalt}{{\fontaxes@figure@style}{\fontaxes@figure@align}}% +} +\newcommand*\fontaxes@encode@figuresalt@default{% + \PackageWarning{fontaxes}{Unknown figure version + `\fontaxes@figure@style\space + \fontaxes@figure@align'\MessageBreak + Encoding to `\fontaxes@code'}% + \edef\fontaxes@code{j}% +} +\newcommand*\fontaxes@encode@shape{% + \fontaxes@encode@{shape}{{\fontaxes@shape@one}{\fontaxes@shape@two}}% +} +\newcommand*\fontaxes@encode@shape@default{% + \edef\fontaxes@code{\fontaxes@shape@two\fontaxes@shape@one}% +} +\newcommand*\fontaxes@encode@[2]{% + \@ifundefined{fontaxes@encode@#1#2} + {\@nameuse{fontaxes@encode@#1@default}} + {\edef\fontaxes@code{\@nameuse{fontaxes@encode@#1#2}}}% +} +\newcommand*\fontaxes@naming@exception[3]{% + \expandafter\edef\csname fontaxes@encode@#1#2\endcsname{#3}% +} +\fontaxes@naming@exception{shape}{{n}{ulc}}{n} +\fontaxes@naming@exception{shape}{{n}{sc}}{sc} +\fontaxes@naming@exception{shape}{{n}{ssc}}{ssc} +\fontaxes@naming@exception{shape}{{it}{ulc}}{it} +\fontaxes@naming@exception{shape}{{sl}{ulc}}{sl} +\fontaxes@naming@exception{shape}{{sw}{ulc}}{sw} +\fontaxes@naming@exception{math}{{normal}{proportional}}{normal} +\fontaxes@naming@exception{math}{{normal}{tabular}}{tabular} +\fontaxes@naming@exception{math}{{bold}{proportional}}{bold} +\fontaxes@naming@exception{figures}{{text}{proportional}}{OsF} +\fontaxes@naming@exception{figures}{{text}{tabular}}{TOsF} +\fontaxes@naming@exception{figures}{{lining}{proportional}}{LF} +\fontaxes@naming@exception{figures}{{lining}{tabular}}{TLF} +\fontaxes@naming@exception{figuresalt}{{text}{proportional}}{j} +\fontaxes@naming@exception{figuresalt}{{text}{tabular}}{j} +\fontaxes@naming@exception{figuresalt}{{lining}{proportional}}{x} +\fontaxes@naming@exception{figuresalt}{{lining}{tabular}}{x} +\newcommand*\fontaxes@figure@style@domain{text,lining} +\newcommand*\fontaxes@figure@align@domain{proportional,tabular} +\newcommand*\fontaxes@shape@one@domain{n,it,sl,sw} +\newcommand*\fontaxes@shape@two@domain{ulc,sc,ssc} +\newcommand*\fontaxes@math@weight@domain{normal,bold} +\newcommand*\fontaxes@math@align@domain{proportional,tabular} +\newcommand*\fontaxes@create@decode@table[2]{% + \begingroup + \fontaxes@foreach{#2}{% + \@nameuse{fontaxes@encode@#1}% + \global\expandafter + \edef\csname fontaxes@decode@#1{\fontaxes@code}\endcsname{#2}% + }% + \endgroup +} +\AtEndOfPackage{ + \fontaxes@create@decode@table{figures} + {{\fontaxes@figure@style}{\fontaxes@figure@align}} + \fontaxes@create@decode@table{figuresalt} + {{\fontaxes@figure@style}{\fontaxes@figure@align}} + \fontaxes@create@decode@table{shape} + {{\fontaxes@shape@one}{\fontaxes@shape@two}} + \fontaxes@create@decode@table{math} + {{\fontaxes@math@weight}{\fontaxes@math@align}} +} +\newcommand*\fontaxes@warn@undecodable[1]{% + \PackageWarning{fontaxes}{I don't know how to decode\MessageBreak #1}} +\newcommand*\fontaxes@decode@[2]{% + \@ifundefined{fontaxes@decode@#1{#2}}{% + \let\fontaxes@edoc\relax + \fontaxes@warn@undecodable{#1 `#2'}% + }{\edef\fontaxes@edoc{\@nameuse{fontaxes@decode@#1{#2}}}}% +} +\newcommand*\iffontaxes@changed[1]{% + \expandafter\ifx\csname fontaxes@last@\string#1\endcsname#1% + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} +\newcommand*\fontaxes@save[1]{% + \expandafter\let\csname fontaxes@last@\string#1\endcsname#1% +} +\AtBeginDocument{% + \fontaxes@provide@mv@copy{tabular}{normal}% + \fontaxes@provide@mv@copy{boldtabular}{bold}% +} +\newcommand*\fontaxes@provide@mv@copy[2]{% + \@ifundefined{mv@#1}{% + \DeclareMathVersion{#1}% + \expandafter\let\csname mv@#1\expandafter\endcsname + \csname mv@#2\endcsname + }{}% +} +\newif\iffontaxes@exists +\newcommand*\fontaxes@check@family[1]{% + \begingroup + \fontfamily{#1}\try@load@fontshape + \expandafter + \ifx\csname\curr@fontshape\endcsname\relax + \aftergroup\fontaxes@existsfalse + \else + \aftergroup\fontaxes@existstrue + \fi + \endgroup +} +\newcommand*\fontaxes@split@prefix{} +\newcommand*\fontaxes@split@suffix{} +\newcommand*\fontaxes@split@family{} +\def\fontaxes@split@family#1-#2-#3\@nnil{% + \let\fontaxes@split@prefix\relax + \let\fontaxes@split@suffix\relax + \def\@tempa{#3}% + \ifx\@tempa\@empty\else + \def\fontaxes@split@suffix{#2}% + \ifx\fontaxes@split@suffix\@empty + \let\fontaxes@split@suffix\relax + \else + \def\fontaxes@split@prefix{#1}% + \fi + \fi +} +\newcommand*\fontaxes@split@familyalt{} +\def\fontaxes@split@familyalt#1#2#3#4#5\@nnil{% + \let\fontaxes@split@prefix\relax + \let\fontaxes@split@suffix\relax + \edef\@tempa{#5}% + \ifx\@tempa\@empty + \ifx\@empty#4\else + \def\fontaxes@split@prefix{#1#2#3}% + \def\fontaxes@split@suffix{#4}% + \fi + \fi +} +\newcommand\fontaxes@foreach[2]{% + \begingroup + \def\fontaxes@foreach@{#2}% + \@tfor\@tempa:=#1\do{% + \@temptokena\expandafter{\fontaxes@foreach@}% + \edef\fontaxes@foreach@{% + \noexpand\@for + \expandafter\noexpand\@tempa:=% + \expandafter\noexpand\csname + \expandafter\expandafter + \expandafter\@gobble + \expandafter\string\@tempa + @domain% + \endcsname + \noexpand\do{\the\@temptokena}% + }% + }% + \expandafter\endgroup\fontaxes@foreach@ +} +%% +%% +%% End of file `fontaxes.sty'. |