h3ndrik
13 years ago
1 changed files with 616 additions and 0 deletions
@ -0,0 +1,616 @@ |
|||||
|
%% 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 |
Loading…
Reference in new issue