You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
616 lines
21 KiB
616 lines
21 KiB
%% nfssext-cfr.sty
|
|
%% Additions and changes are copyright 2008 Clea F. Rees
|
|
%% Code from nfssext.sty copyright 2003 Philipp Lehman (see below)
|
|
%
|
|
% This work may be distributed and/or modified under the
|
|
% conditions of the LaTeX Project Public License, either version 1.3
|
|
% 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 Clea F. Rees.
|
|
%
|
|
% This work consists of the file nfssext-cfr.sty.
|
|
%
|
|
% The file nfssext-cfr.sty is a derived work under the terms of the
|
|
% LPPL. It is based on version 1.2 of nfssext.sty which is part of The
|
|
% Font Installation Guide by Philipp Lehman. A copy of the The Font
|
|
% Installation Guide, including the unmodified version of nfssext.sty
|
|
% is available from
|
|
% http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=fontinstallationguide.
|
|
% nfssext.sty is part of the included archive figuide-examples.tar.gz
|
|
% which consists of examples and templates released under the LPPL.
|
|
% nfssext.sty is included in the files for tutorials 3, 5 and 6.
|
|
%
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesPackage{nfssext-cfr}[2008/11/08 specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
|
|
%:cfr-added
|
|
\RequirePackage{ifthen}
|
|
%:end-added
|
|
\newcommand*{\exfs@tempa}{}
|
|
\newcommand*{\exfs@tempb}{}
|
|
%:cfr-added
|
|
\newcommand*{\exfs@tempf}{}
|
|
%:end-added
|
|
\newcommand*{\exfs@try@family}[2][]{%
|
|
\let\exfs@tempa\relax
|
|
\begingroup
|
|
\fontfamily{#2}\try@load@fontshape
|
|
\expandafter\ifx\csname\curr@fontshape\endcsname\relax
|
|
\edef\exfs@tempa{#1}%
|
|
\ifx\exfs@tempa\@empty
|
|
\PackageWarning{nfssext}{%
|
|
Font family '\f@encoding/#2' not available\MessageBreak
|
|
Ignoring font switch}%
|
|
\else
|
|
\PackageInfo{nfssext}{%
|
|
Font family '\f@encoding/#2' not available\MessageBreak
|
|
Font family '\f@encoding/#1' tried instead}%
|
|
\exfs@try@family{#1}%
|
|
\fi
|
|
\else
|
|
\gdef\exfs@tempa{\fontfamily{#2}\selectfont}%
|
|
\fi
|
|
\endgroup
|
|
\exfs@tempa}
|
|
%:cfr-added exfs@try@series
|
|
\newcommand*{\exfs@try@series}[2][]{%
|
|
\let\exfs@tempa\relax
|
|
\begingroup
|
|
\fontseries{#2}\try@load@fontshape
|
|
\expandafter\ifx\csname\curr@fontshape\endcsname\relax
|
|
\edef\exfs@tempa{#1}%
|
|
\ifx\exfs@tempa\@empty
|
|
\PackageWarning{nfssext-cfr}{%
|
|
Font series '\f@encoding/\f@family/#2' not available\MessageBreak
|
|
Ignoring font switch}%
|
|
\else
|
|
\PackageInfo{nfssext-cfr}{%
|
|
Font family '\f@encoding/\f@family/#2' not available\MessageBreak
|
|
Font family '\f@encoding/\f@family/#1' tried instead}%
|
|
\exfs@try@series{#1}%
|
|
\fi
|
|
\else
|
|
\gdef\exfs@tempa{\fontseries{#2}\selectfont}%
|
|
\fi
|
|
\endgroup
|
|
\exfs@tempa}
|
|
%:end-added
|
|
\def\exfs@get@base#1#2#3#4\@nil{#1#2#3}
|
|
%:cfr-added
|
|
\def\exfs@get@variants#1#2#3#4\@nil{#4}
|
|
\def\exfs@next#1#2\@nil{#1}
|
|
\def\exfs@shift#1#2\@nil{#2}
|
|
\def\exfs@first#1#2\@nil{#1}
|
|
\def\exfs@part#1#2\@nil{#2}
|
|
\def\exfs@second#1#2#3\@nil{#2}
|
|
%:end-added
|
|
\DeclareRobustCommand{\lnstyle}{%
|
|
\not@math@alphabet\lnstyle\relax
|
|
\exfs@try@family[\expandafter\exfs@get@base\f@family\@nil]%
|
|
{\expandafter\exfs@get@base\f@family\@nil x}}
|
|
\DeclareRobustCommand{\osstyle}{%
|
|
\not@math@alphabet\osstyle\relax
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil j}}
|
|
\DeclareRobustCommand{\instyle}{%
|
|
\not@math@alphabet\instyle\relax
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 0}}
|
|
\DeclareRobustCommand{\sustyle}{%
|
|
\not@math@alphabet\sustyle\relax
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil 1}}
|
|
\DeclareRobustCommand{\swstyle}{%
|
|
\not@math@alphabet\swstyle\relax
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil w}}
|
|
%:cfr-added - merge families
|
|
\newcommand*\exfs@merge@families[1]{%
|
|
\edef\exfs@tempf{#1}%
|
|
\edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
|
|
\edef\tempo{2j}%
|
|
\let\exfs@tempq\@empty
|
|
\def\exfs@tempg{}%
|
|
\newif\ifadded
|
|
\addedfalse
|
|
% check whether there are variants - if not just use the requested addition
|
|
\ifx\tempa\@empty
|
|
\edef\exfs@tempq{\exfs@tempf}%
|
|
\addedtrue
|
|
\else
|
|
\gdef\set{0,1,2,a,d,e,f,h,j,l,p,q,s,t,v,w}%
|
|
\ifx\tempo\exfs@tempf
|
|
\@for \xx:=\set \do {%
|
|
% check whether there are variants left - if not set the ``next variant'' to empty
|
|
\ifx\tempa\@empty
|
|
\let\exfs@tempn\@empty
|
|
\else
|
|
% o/w get the next variant
|
|
\edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
|
|
\fi
|
|
\edef\tempt{2}%
|
|
\edef\tempj{j}%
|
|
% if the next variant is 2 or j, ignore it
|
|
\ifx\exfs@tempn\tempt
|
|
\edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
|
|
\fi
|
|
\ifx\exfs@tempn\tempj % if the next variant is j, ignore it
|
|
\edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
|
|
\fi
|
|
% see if the current value is either 2 or j and add it if so and if needed
|
|
\ifx\tempt\xx
|
|
\edef\exfs@tempg{\exfs@tempg\xx}%
|
|
\else
|
|
\ifx\tempj\xx % if the current value is j, we're done
|
|
\edef\exfs@tempq{\exfs@tempg\xx\tempa}%
|
|
\let\tempa\@empty
|
|
\addedtrue
|
|
\else
|
|
% o/w see if the current value matches the next variant
|
|
\ifx\xx\exfs@tempn
|
|
\edef\exfs@tempg{\exfs@tempg\xx}%
|
|
\edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}%
|
|
\else
|
|
\@for \xx:=\set \do {%
|
|
% check whether there are variants left and, if not, add the addition if needed
|
|
\ifx\tempa\@empty
|
|
\ifadded
|
|
\else
|
|
\edef\exfs@tempq{\exfs@tempg\exfs@tempf}%
|
|
\addedtrue
|
|
\fi
|
|
\else
|
|
% o/w get the next variant
|
|
\edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
|
|
% if the new token equals the next variant, combine whatever is saved in \exfs@tempg with whatever remains in \tempa
|
|
\ifx\exfs@tempn\exfs@tempf
|
|
\edef\exfs@tempq{\exfs@tempg\tempa}%
|
|
\addedtrue
|
|
\let\tempa\@empty
|
|
\else
|
|
% o/w, if the current value matches the requested addition, add it in
|
|
\ifx\exfs@tempf\xx
|
|
\edef\exfs@tempq{\exfs@tempg\xx\tempa}%
|
|
\addedtrue
|
|
\let\tempa\@empty
|
|
\else
|
|
% o/w, if the current value matches the next variant, shift
|
|
\ifx\exfs@tempn\xx
|
|
\edef\exfs@tempg{\exfs@tempg\xx}%
|
|
\edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}%
|
|
\fi
|
|
\fi
|
|
\ifx\exfs@tempq\@empty
|
|
\PackageError{nfssext-cfr}{Something is wrong here. Ignoring font switching command.}{}%
|
|
\else
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}%
|
|
\fi}
|
|
\DeclareRobustCommand{\pstyle}{% proportional figures
|
|
\not@math@alphabet\pstyle\relax
|
|
\exfs@merge@families{2}}
|
|
\DeclareRobustCommand{\tistyle}{% titling/display
|
|
\not@math@alphabet\tistyle\relax
|
|
\exfs@merge@families{d}}
|
|
\DeclareRobustCommand{\ostyle}{% oldstyle figures (cf. original osstyle above)
|
|
\not@math@alphabet\ostyle\relax
|
|
\exfs@merge@families{j}}
|
|
% combined command for proportional oldstyle
|
|
\DeclareRobustCommand{\postyle}{%
|
|
\not@math@alphabet\postyle\relax
|
|
\exfs@merge@families{2j}}
|
|
%note that this command is for use when the light version is a separate family rather than a weight variant (e.g. when you've got light, light bold etc. as well as regular weights)
|
|
\DeclareRobustCommand{\ltstyle}{%
|
|
\not@math@alphabet\ltstyle\relax
|
|
\exfs@merge@families{l}}
|
|
\DeclareRobustCommand{\altstyle}{% alternative style
|
|
\not@math@alphabet\altstyle\relax
|
|
\exfs@merge@families{a}}
|
|
\DeclareRobustCommand{\regstyle}{% ``regular'' style
|
|
\not@math@alphabet\regstyle\relax
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil}}
|
|
\DeclareRobustCommand{\embossstyle}{%
|
|
\not@math@alphabet\embossstyle\relax
|
|
\exfs@merge@families{e}}
|
|
\DeclareRobustCommand{\ornamentalstyle}{% intended primarily for decorative initial fonts etc.
|
|
\not@math@alphabet\ornamentalstyle\relax
|
|
\exfs@merge@families{p}}
|
|
\DeclareRobustCommand{\qtstyle}{% quotation style (assumes sans)
|
|
\not@math@alphabet\qtstyle\relax
|
|
\sffamily
|
|
\exfs@merge@families{q}}
|
|
\DeclareRobustCommand{\shstyle}{%
|
|
\not@math@alphabet\shstyle\relax
|
|
\exfs@merge@families{h}}
|
|
\DeclareRobustCommand{\swashstyle}{% an attempt to improve on \swstyle
|
|
\not@math@alphabet\swashstyle\relax
|
|
\exfs@merge@families{w}}
|
|
\DeclareRobustCommand{\tmstyle}{% monowidth typewriter
|
|
\not@math@alphabet\tmstyle\relax
|
|
\exfs@merge@families{t}}
|
|
\DeclareRobustCommand{\tvstyle}{% variable width typewriter
|
|
\not@math@alphabet\tvstyle\relax
|
|
\exfs@merge@families{v}}
|
|
%:cfr-added - unmerge families
|
|
\newcounter{taken}%
|
|
\newcommand*\exfs@unmerge@families[1]{%
|
|
\edef\exfs@tempf{#1}%
|
|
\edef\tempa{\expandafter\exfs@get@variants\f@family\@nil}%
|
|
\let\exfs@tempq\@empty
|
|
\edef\exfs@tempg{}%
|
|
\setcounter{taken}{0}%
|
|
% check whether there are variants - if not do nothing
|
|
\ifx\tempa\@empty
|
|
\edef\exfs@tempq{}%
|
|
\else
|
|
% o/w go through the variants to find the one to delete
|
|
\whiledo{\value{taken}<1}{%
|
|
% get the next variant
|
|
\edef\exfs@tempn{\expandafter\exfs@next\tempa\@nil}%
|
|
% see if the next variant is the thing we seek and, if so, eliminate it
|
|
\ifx\exfs@tempf\exfs@tempn
|
|
\edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
|
|
\edef\exfs@tempq{\exfs@tempg\tempa}%
|
|
\stepcounter{taken}%
|
|
% o/w save the next variant and move on if any variants remain
|
|
\else
|
|
\edef\exfs@tempg{\exfs@tempg\exfs@tempn}%
|
|
\edef\tempa{\expandafter\exfs@shift\tempa\@nil}%
|
|
\ifx\tempa\@empty% if there are no variants left, we're done
|
|
\edef\exfs@tempq{\exfs@tempg}%
|
|
\stepcounter{taken}%
|
|
\fi
|
|
\fi
|
|
}%
|
|
\fi
|
|
\exfs@try@family{\expandafter\exfs@get@base\f@family\@nil \exfs@tempq}}
|
|
\DeclareRobustCommand{\tstyle}{% tabular figures
|
|
\not@math@alphabet\tstyle\relax
|
|
\exfs@unmerge@families{2}}
|
|
\DeclareRobustCommand{\lstyle}{% lining figures (cf. command above)
|
|
\not@math@alphabet\lstyle\relax
|
|
\exfs@unmerge@families{j}}
|
|
% make a combined command for tabular lining
|
|
\DeclareRobustCommand{\tlstyle}{%
|
|
\lstyle\tstyle}
|
|
% proportional lining
|
|
\DeclareRobustCommand{\plstyle}{%
|
|
\lstyle\pstyle}
|
|
% tabular oldstyle {?!}
|
|
\DeclareRobustCommand{\tostyle}{%
|
|
\ostyle\tstyle}
|
|
%:end-added % si is italic sc
|
|
\newcommand*{\sidefault}{si}
|
|
\DeclareRobustCommand{\sishape}{%
|
|
\not@math@alphabet\sishape\relax
|
|
\fontshape\sidefault\selectfont}
|
|
%:cfr-added - is this how outline shapes should be handled?
|
|
\newcommand*{\oldefault}{ol}
|
|
\DeclareRobustCommand{\olshape}{%
|
|
\not@math@alphabet\olshape\relax
|
|
\fontshape\oldefault\selectfont}
|
|
\newcommand*{\scoldefault}{scol}
|
|
\DeclareRobustCommand{\scolshape}{%
|
|
\not@math@alphabet\scolshape\relax
|
|
\fontshape\scoldefault\selectfont}
|
|
%\DeclareRobustCommand{\olshape}{%
|
|
% \not@math@alphabet\olshape\relax
|
|
% \exfs@merge@shape{\oldefault}{\scdefault}{\scoldefault}}
|
|
%:fudge
|
|
\newcommand*{\udefault}{u}
|
|
\DeclareRobustCommand{\ushape}{%
|
|
\not@math@alphabet\ushape\relax
|
|
\fontshape\udefault\selectfont}
|
|
\newcommand*{\scudefault}{su}
|
|
\DeclareRobustCommand{\scushape}{%
|
|
\not@math@alphabet\scushape\relax
|
|
\fontshape\scudefault\selectfont}
|
|
%:upright italic
|
|
\newcommand*{\uidefault}{ui}
|
|
\DeclareRobustCommand{\uishape}{%
|
|
\not@math@alphabet\uishape\relax
|
|
\fontshape\uidefault\selectfont}
|
|
%:can i do this for reverse italic?
|
|
\newcommand*{\ridefault}{ri}
|
|
\DeclareRobustCommand{\rishape}{%
|
|
\not@math@alphabet\rishape\relax
|
|
\fontshape\ridefault\selectfont}
|
|
%:end-added
|
|
\newcommand*{\exfs@merge@shape}[3]{%
|
|
\edef\exfs@tempa{#1}%
|
|
\edef\exfs@tempb{#2}%
|
|
\ifx\f@shape\exfs@tempb
|
|
\expandafter\ifx\csname\f@encoding/\f@family/\f@series/#3\endcsname\relax
|
|
\else
|
|
\edef\exfs@tempa{#3}%
|
|
\fi
|
|
\fi
|
|
\fontshape{\exfs@tempa}\selectfont}
|
|
%:cfr-added - merge width changes into series
|
|
\newcommand*{\exfs@font@width}{%
|
|
\edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
|
|
\edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
|
|
\ifx\exfs@temppart\@empty
|
|
\def\exfs@width{}
|
|
\else
|
|
\edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
|
|
\ifx\exfs@temps{b}
|
|
\edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
|
|
\else
|
|
\ifx\exfs@temps{l}
|
|
\edef\exfs@width{\expandafter\exfs@part\exfs@temps\@nil }%
|
|
\else
|
|
\edef\exfs@width{\exfs@temppart}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\exfs@width
|
|
}
|
|
\newcommand*{\exfs@merge@width}[1]{%
|
|
\edef\exfs@temph{#1}%
|
|
\edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
|
|
\edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
|
|
\def\tempb{b}%
|
|
\def\templ{l}%
|
|
\ifx\exfs@temppart\@empty
|
|
\def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
|
|
\else
|
|
\edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
|
|
\ifx\exfs@temps\tempb
|
|
\def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
|
|
\else
|
|
\ifx\exfs@temps\templ
|
|
\def\exfs@series{\expandafter\exfs@tempf\exfs@temps\exfs@temph}%
|
|
\else
|
|
\def\exfs@series{\expandafter\exfs@tempf\exfs@temph}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\exfs@try@series{\exfs@series}}
|
|
% \fontseries\exfs@series\selectfont}
|
|
\newcommand*{\exfs@unmerge@width}{%
|
|
\edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
|
|
\edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
|
|
\def\tempb{b}%
|
|
\def\templ{l}%
|
|
\ifx\exfs@temppart\@empty
|
|
\def\exfs@series{\expandafter\exfs@tempf}%
|
|
\else
|
|
\edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
|
|
\ifx\exfs@temps\tempb
|
|
\def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
|
|
\else
|
|
\ifx\exfs@temps\templ
|
|
\def\exfs@series{\expandafter\exfs@tempf\exfs@temps}%
|
|
\else
|
|
\def\exfs@series{\expandafter\exfs@tempf}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\exfs@try@series{\exfs@series}}
|
|
\DeclareRobustCommand{\regwidth}{%
|
|
\not@math@alphabet\regwidth\relax
|
|
\exfs@unmerge@width}
|
|
\newcommand*{\nwdefault}{c}
|
|
\DeclareRobustCommand{\nwwidth}{%
|
|
\not@math@alphabet\nwwidth\relax
|
|
\exfs@merge@width{\nwdefault}}
|
|
\newcommand*{\cddefault}{c}
|
|
\DeclareRobustCommand{\cdwidth}{%
|
|
\not@math@alphabet\cdwidth\relax
|
|
\exfs@merge@width{\cddefault}}
|
|
\newcommand*{\ecdefault}{ec}
|
|
\DeclareRobustCommand{\ecwidth}{%
|
|
\not@math@alphabet\ecwidth\relax
|
|
\exfs@merge@width{\ecdefault}}
|
|
\newcommand*{\ucdefault}{uc}
|
|
\DeclareRobustCommand{\ucwidth}{%
|
|
\not@math@alphabet\ucwidth\relax
|
|
\exfs@merge@width{\ucdefault}}
|
|
\newcommand*{\etdefault}{x}
|
|
\DeclareRobustCommand{\etwidth}{%
|
|
\not@math@alphabet\etwidth\relax
|
|
\exfs@merge@width{\etdefault}}
|
|
\newcommand*{\epdefault}{x}
|
|
\DeclareRobustCommand{\epwidth}{%
|
|
\not@math@alphabet\epwidth\relax
|
|
\exfs@merge@width{\epdefault}}
|
|
\newcommand*{\exdefault}{ex}
|
|
\DeclareRobustCommand{\exwidth}{%
|
|
\not@math@alphabet\exwidth\relax
|
|
\exfs@merge@width{\exdefault}}
|
|
\newcommand*{\uxdefault}{ux}
|
|
\DeclareRobustCommand{\uxwidth}{%
|
|
\not@math@alphabet\uxwidth\relax
|
|
\exfs@merge@width{\uxdefault}}
|
|
%:cfr-added merge weight changes into series
|
|
\newcommand*{\exfs@merge@weight}[1]{%
|
|
\edef\exfs@tempg{#1}%
|
|
\edef\exfs@tempf{\expandafter\exfs@first\f@series\@nil }%
|
|
\edef\exfs@temppart{\expandafter\exfs@part\f@series\@nil }%
|
|
\def\templ{l}%
|
|
\def\tempb{b}%
|
|
%:case when there's no second part, so the single character must be the weight and should be replaced
|
|
\ifx\exfs@temppart\@empty
|
|
\def\exfs@series{\expandafter\exfs@tempg}%
|
|
%:case when there's a second part
|
|
\else
|
|
%:get first character of second part
|
|
\edef\exfs@temps{\expandafter\exfs@second\f@series\@nil }%
|
|
\edef\exfs@tempw{\expandafter\exfs@part\exfs@temps\@nil }%
|
|
%:is the first character b? if so, it is part of the weight and should be replaced
|
|
\ifx\exfs@temps\tempb
|
|
\def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
|
|
\else
|
|
%:is the first character l? if so, it is part of the weight and should be replaced
|
|
\ifx\exfs@temps\templ
|
|
\def\exfs@series{\expandafter\exfs@tempg\exfs@tempw}%
|
|
\else
|
|
%:o/w the first character is part of the width and should be retained
|
|
\def\exfs@series{\expandafter\exfs@tempg\exfs@temppart}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
%\fontseries\exfs@series\selectfont}
|
|
\ifx\exfs@tempg\exfs@series
|
|
\exfs@try@series{\exfs@series}%
|
|
\else
|
|
\exfs@try@series[\exfs@tempg]{\exfs@series}% assume user wants to change weight even if this changes back to the default width
|
|
\fi}
|
|
\newcommand*{\mbdefault}{mb}
|
|
\DeclareRobustCommand{\mbweight}{%
|
|
\not@math@alphabet\mbweight\relax
|
|
\exfs@merge@weight{\mbdefault}}
|
|
\newcommand*{\dbdefault}{db}
|
|
\DeclareRobustCommand{\dbweight}{%
|
|
\not@math@alphabet\dbweight\relax
|
|
\exfs@merge@weight{\dbdefault}}
|
|
\newcommand*{\sbdefault}{sb}
|
|
\DeclareRobustCommand{\sbweight}{%
|
|
\not@math@alphabet\sbweight\relax
|
|
\exfs@merge@weight{\sbdefault}}
|
|
\newcommand*{\ebdefault}{eb}
|
|
\DeclareRobustCommand{\ebweight}{%
|
|
\not@math@alphabet\ebweight\relax
|
|
\exfs@merge@weight{\ebdefault}}
|
|
\newcommand*{\ubdefault}{ub}
|
|
\DeclareRobustCommand{\ubweight}{%
|
|
\not@math@alphabet\ubweight\relax
|
|
\exfs@merge@weight{\ubdefault}}
|
|
\newcommand*{\lgdefault}{l}
|
|
%note - use this if light is a variant weight, rather than a separate family
|
|
\DeclareRobustCommand{\lgweight}{%
|
|
\not@math@alphabet\lgweight\relax
|
|
\exfs@merge@weight{\lgdefault}}
|
|
\newcommand*{\eldefault}{el}
|
|
\DeclareRobustCommand{\elweight}{%
|
|
\not@math@alphabet\elweight\relax
|
|
\exfs@merge@weight{\eldefault}}
|
|
\newcommand*{\uldefault}{ul}
|
|
\DeclareRobustCommand{\ulweight}{%
|
|
\not@math@alphabet\ulweight\relax
|
|
\exfs@merge@weight{\uldefault}}
|
|
%:end-added
|
|
\DeclareRobustCommand{\itshape}{%
|
|
\not@math@alphabet\itshape\mathit
|
|
\exfs@merge@shape{\itdefault}{\scdefault}{\sidefault}}
|
|
% original
|
|
%\DeclareRobustCommand{\scshape}{%
|
|
% \not@math@alphabet\scshape\relax
|
|
% \exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}}
|
|
%:cfr-altered
|
|
\DeclareRobustCommand{\scshape}{%
|
|
\not@math@alphabet\scshape\relax
|
|
\def\tempu{u}%
|
|
\def\tempo{ol}%
|
|
\ifx\f@shape\tempu
|
|
\exfs@merge@shape{\scdefault}{\udefault}{\scudefault}%
|
|
\else
|
|
\ifx\f@shape\tempo
|
|
\exfs@merge@shape{\scdefault}{\oldefault}{\scoldefault}%
|
|
\else
|
|
\exfs@merge@shape{\scdefault}{\itdefault}{\sidefault}%
|
|
\fi
|
|
\fi}
|
|
%:end-altered
|
|
\DeclareRobustCommand{\upshape}{%
|
|
\not@math@alphabet\upshape\relax
|
|
\exfs@merge@shape{\updefault}{\sidefault}{\scdefault}}
|
|
\DeclareRobustCommand{\dfshape}{%
|
|
\not@math@alphabet\dfshape\relax
|
|
\fontshape\shapedefault\selectfont}
|
|
\newcommand*{\swshapedefault}{\itdefault}
|
|
\DeclareRobustCommand{\swshape}{%
|
|
\not@math@alphabet\swshape\relax
|
|
\swstyle\fontshape\swshapedefault\selectfont}
|
|
\DeclareTextFontCommand{\textln}{\lnstyle}
|
|
\DeclareTextFontCommand{\textos}{\osstyle}
|
|
\DeclareTextFontCommand{\textin}{\instyle}
|
|
\DeclareTextFontCommand{\textsu}{\sustyle}
|
|
\DeclareTextFontCommand{\textsi}{\sishape}
|
|
\DeclareTextFontCommand{\textdf}{\dfshape}
|
|
\DeclareTextFontCommand{\textsw}{\swshape}
|
|
%:cfr-added
|
|
%:families
|
|
\DeclareTextFontCommand{\textti}{\tistyle}
|
|
\DeclareTextFontCommand{\textlt}{\ltstyle}
|
|
\DeclareTextFontCommand{\textalt}{\altstyle} % alternative style
|
|
\DeclareTextFontCommand{\textreg}{\regstyle} % ``regular'' style
|
|
\DeclareTextFontCommand{\emboss}{\embossstyle}
|
|
\DeclareTextFontCommand{\textorn}{\ornamentalstyle} % intended primarily for decorative initials etc.
|
|
\DeclareTextFontCommand{\textqt}{\qtstyle}
|
|
\DeclareTextFontCommand{\textsh}{\shstyle} % shadowed style
|
|
\DeclareTextFontCommand{\texttm}{\tmstyle}
|
|
\DeclareTextFontCommand{\texttv}{\tvstyle}
|
|
%:families - figures
|
|
\DeclareTextFontCommand{\textl}{\lstyle}
|
|
\DeclareTextFontCommand{\texto}{\ostyle}
|
|
\DeclareTextFontCommand{\textp}{\pstyle}
|
|
\DeclareTextFontCommand{\textt}{\tstyle}
|
|
\DeclareTextFontCommand{\textpl}{\plstyle}
|
|
\DeclareTextFontCommand{\textpo}{\postyle}
|
|
\DeclareTextFontCommand{\texttl}{\tlstyle}
|
|
\DeclareTextFontCommand{\textto}{\tostyle}
|
|
%:shapes
|
|
\DeclareTextFontCommand{\textol}{\olshape} % outline
|
|
\DeclareTextFontCommand{\textswash}{\swashstyle} % an attempt to improve on \textsw
|
|
\DeclareTextFontCommand{\textu}{\ushape}
|
|
\DeclareTextFontCommand{\textscu}{\scushape}
|
|
\DeclareTextFontCommand{\textui}{\uishape} % upright italic
|
|
\DeclareTextFontCommand{\textri}{\rishape} % reverse italic
|
|
%:widths
|
|
\DeclareTextFontCommand{\textnw}{\nwwidth}
|
|
\DeclareTextFontCommand{\textcd}{\cdwidth}
|
|
\DeclareTextFontCommand{\textec}{\ecwidth}
|
|
\DeclareTextFontCommand{\textuc}{\ucwidth}
|
|
\DeclareTextFontCommand{\textet}{\etwidth}
|
|
\DeclareTextFontCommand{\textep}{\epwidth}
|
|
\DeclareTextFontCommand{\textex}{\exwidth}
|
|
\DeclareTextFontCommand{\textux}{\uxwidth}
|
|
\DeclareTextFontCommand{\textrw}{\regwidth}
|
|
%:weights
|
|
\DeclareTextFontCommand{\textmb}{\mbweight}
|
|
\DeclareTextFontCommand{\textdb}{\dbweight}
|
|
\DeclareTextFontCommand{\textsb}{\sbweight}
|
|
\DeclareTextFontCommand{\texteb}{\ebweight}
|
|
\DeclareTextFontCommand{\textub}{\ubweight}
|
|
\DeclareTextFontCommand{\textlg}{\lgweight}
|
|
\DeclareTextFontCommand{\textel}{\elweight}
|
|
\DeclareTextFontCommand{\textul}{\ulweight}
|
|
%end-added
|
|
\newcommand*{\DeclareTextOrnament}[7]{%
|
|
\expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
|
|
\begingroup
|
|
\catcode`\/=12
|
|
\gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
|
|
\def\f@encoding{#1}%
|
|
\def\f@family{#2}%
|
|
\def\f@series{#3}%
|
|
\def\f@shape{#4}%
|
|
\def\exfs@tempa{#5}}
|
|
\endgroup
|
|
\def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
|
|
\DeclareRobustCommand{\ornament}[1]{%
|
|
\expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
|
|
\PackageWarning{nfssext}{%
|
|
Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
|
|
Setting debug mark}%
|
|
\rule{1ex}{1ex}%
|
|
\else
|
|
\begingroup
|
|
\edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
|
|
\expandafter\expandafter\expandafter\exfs@split@orndef
|
|
\expandafter\string\exfs@tempb\@nil
|
|
\selectfont\char\exfs@tempa
|
|
\endgroup
|
|
\fi}
|
|
\endinput
|
|
|