From a911d39178540078c8ff5bc880418478d7433c40 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 27 Feb 2022 03:01:13 +0000 Subject: CTAN sync 202202270301 --- fonts/xcharter/tex/XCharter.sty | 814 +++++++++++++++++++++++++++++++--------- 1 file changed, 633 insertions(+), 181 deletions(-) (limited to 'fonts/xcharter/tex/XCharter.sty') diff --git a/fonts/xcharter/tex/XCharter.sty b/fonts/xcharter/tex/XCharter.sty index 3165479cc4..e4106b5b8a 100644 --- a/fonts/xcharter/tex/XCharter.sty +++ b/fonts/xcharter/tex/XCharter.sty @@ -1,24 +1,228 @@ %% XCharter is an extension of the Bitstream Charter fonts, adding osf, -% small caps and superior figures. Generated 2017/06/25 by Michael Sharpe. +% small caps and superior figures. Generated 2022/02/20 by Michael Sharpe. %% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{1.225} -\def\filedate{2022/01/31} +\def\fileversion{1.22} +\def\filedate{2022/02/25} \ProvidesPackage{XCharter}[\filedate\space v\fileversion] \message{`XCharter' v\fileversion, \filedate\space Text macros for XCharter, an extension of Charter (msharpe)} -\RequirePackage[T2A,LY1,T1]{fontenc} +\RequirePackage[T1]{fontenc} \RequirePackage{textcomp} -\RequirePackage{scalefnt} % for \textruble and \textcircled \DeclareEncodingSubset{TS1}{XCharter-*}{0} -\IfFileExists{mweights.sty}{\RequirePackage{mweights}}{} -\RequirePackage{etoolbox} %etoolbox loads etex.sty -\RequirePackage{xstring,ifthen} % for \textfrac -\IfFileExists{fontaxes.sty}{ - \RequirePackage{fontaxes} +\RequirePackage{iftex,xkeyval,etoolbox,textcomp} +\RequirePackage{xstring,ifthen,scalefnt} % for \textfrac +\RequirePackage{mweights,xkeyval} + +%KOMA check +\newif\ifxch@KOMA +\@ifundefined{KOMAClassName}{}{\xch@KOMAtrue} +\@ifundefined{ver@scrextend.sty}{}{\xch@KOMAtrue} + +% Engine check +\newif\ifxch@otftext +\iftutex\xch@otftexttrue\fi +\newif\ifxch@nofontspec + +% newtx check +\newif\ifntx@newtx +\@ifundefined{ntx@otftexttrue}{% not run from newtx.sty + %\newif\ifntx@otftext% + %\newif\ifntx@otfmath % default is type1 math + %iftex's \iftutex returns true for LuaTeX and XeTeX, not [pdf]latex + %\iftutex\ntx@otftexttrue\fi % default is otf text for unicode latex + %\newif\ifntx@nofontspec % default is to load fontspec iftutex + % might have been defined in newtx.sty + \def\ntx@id{12} % make it appear that newtxtext was chosen in newtx +}{% run from newtx.sty + \ntx@newtxtrue% +} + +%%%%%%%%%% Start Options +\def\XCharter@altone{1}% default is to use 1, not I +\def\XCharter@figurestyle{LF} +\def\XCharter@figurealign{T} +\newif\ifxch@lining\xch@liningtrue +\newif\ifxch@tabular\xch@tabulartrue % default is tabular lining figures +\DeclareOptionX{type1text}[true]{% use type1 packages for text +\@nameuse{if#1}\xch@otftextfalse\fi +} +\DeclareOptionX{type1}[true]{% use type1 packages for text +\@nameuse{if#1}\xch@otftextfalse\fi +} +\DeclareOptionX{nofontspec}[true]{% type1 + don't load fontspec +\@nameuse{if#1}\xch@nofontspectrue\fi +} +\def\xch@defaultfeatures{} +\DeclareOptionX{defaultfeatures}{\def\xch@defaultfeatures{#1}} + +%Figure style options +\def\xch@dfltfigurestyle{lf} +\def\xch@dfltfigurealign{t} + +\DeclareOptionX{lining}[true]{% +\@nameuse{xch@lining#1} +} +\DeclareOptionX{lf}[true]{% +\@nameuse{xch@lining#1} +} +\DeclareOptionX{oldstyle}[true]{% +\@nameuse{if#1}% + \xch@liningfalse +\else + \xch@liningtrue +\fi +} +\DeclareOptionX{osf}[true]{% +\@nameuse{if#1}% + \xch@liningfalse + \else + \xch@liningtrue +\fi +} + +\DeclareOptionX{oldstyleI}[true]{% +\@nameuse{if#1}% + \xch@liningfalse + \def\XCharter@altone{} +\else + \xch@liningtrue +\fi +} +\DeclareOptionX{osfI}[true]{% +\@nameuse{if#1}% + \xch@liningfalse + \def\XCharter@altone{} +\else + \xch@liningtrue +\fi +} + +\DeclareOptionX{tabular}[true]{% +\@nameuse{xch@tabular#1} +} +\DeclareOptionX{t}[true]{% +\@nameuse{xch@tabular#1} +} +\DeclareOptionX{proportional}[true]{% +\@nameuse{if#1}% + \xch@tabularfalse +\else + \xch@tabulartrue +\fi +} +\DeclareOptionX{p}[true]{% +\@nameuse{if#1}% + \xch@tabularfalse +\else + \xch@tabulartrue +\fi +} + +%Scale +\providecommand*{\XCharter@scale}{1}% Might have been defined in newtx +\DeclareOptionX{scale}{\renewcommand*{\XCharter@scale}{#1}} +\DeclareOptionX{scaled}{\renewcommand*{\XCharter@scale}{#1}} + +%\newif\ifxch@defaultsups +\newif\ifxch@scosf +%\newif\ifxch@largesc % we don't use this exc. in fd, but may in future +%\newif\ifxch@helv \xch@helvtrue % default is to load helvetica as sans serif font +%\newif\ifxch@sl + + +\let\orig@footnote=\thefootnote +\let\orig@makefnmark=\@makefnmark +\def\bfseries@rm{b} +\def\mdseries@rm{m} + +\def\xch@thmtab{} % default is to not change to tabular +\def\xch@thmlin{X} % default is to not change to lining +\def\XCharter@foresolidus{0em} +\def\XCharter@aftsolidus{0em} +\newif\ifxch@thrm +\newif\ifxch@sups +%\newif\if@XCharter@scosf +%\newif\ifxch@altQ +%\newif\ifxch@altJ +%\newif\ifxch@oldSS +\def\xch@defaultfeatures{} +\newcount\xch@cnt \xch@cnt=0 + + +%\DeclareOptionX{lining}{\edef\XCharter@figurestyle{LF}} +%\DeclareOptionX{lf}{\edef\XCharter@figurestyle{LF}} +%\DeclareOptionX{oldstyle}{\edef\XCharter@figurestyle{OsF}} +%\DeclareOptionX{osf}{\edef\XCharter@figurestyle{OsF}} +%\DeclareOptionX{tabular}{\edef\XCharter@figurealign{T}} +%\DeclareOptionX{p}{\useproportional} +%\DeclareOptionX{proportional}{\useproportional} +%\def\xch@fnmark{} +%\DeclareOptionX{fnmarkerfont}{\def\xch@fnmark{#1}} +\DeclareOptionX{defaultfeatures}{\def\xch@defaultfeatures{#1}} +\DeclareOptionX{oldSS}{\advance\xch@cnt\@ne} +\DeclareOptionX{theoremfont}{\xch@thrmtrue} +%\DeclareOptionX{thmtabular}{\def\xch@thmtab{t}} +\DeclareOptionX{thmlining}{\def\xch@thmlin{l}} +\DeclareOptionX{sups}{\xch@supstrue} +\DeclareOptionX{scosf}{\xch@scosftrue} +\DeclareOptionX{foresolidus}{\gdef\XCharter@foresolidus{#1}} +\DeclareOptionX{aftsolidus}{\gdef\XCharter@aftsolidus{#1}} +\ExecuteOptionsX{lining,tabular} +\ProcessOptionsX\relax + +% Check for conflict between nofontspec and others +\ifxch@nofontspec + \iftutex + \xch@otftextfalse + \fi +\fi +%\edef\xch@scaled{s*[\xch@scale]}% used in fd files + +\iftutex + \ifxch@nofontspec % do nothing + \else + \RequirePackage[no-math]{fontspec} + \fi +\fi + +\ifxch@otftext% + \ifxetex\XeTeXtracingfonts=1\fi + \ifluatex % avoid possibly uncorrected "system" fonts + \directlua{fonts.names.set_location_precedence{ + "local", "texmf", "system" }} + \fi + \def\xch@base{XCharter} + \newcommand{\textfrac}[3][]{{% + \mbox{% + \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1] + {\textlf{#1}\kern.03em}{}% + \textsu{#2\char"2044}% numerator +\textde{\kern-.159em{\addfontfeature{RawFeature=+ss02}\char"2044}#3}% denominator +}}} + \def\xch@dflt{} + %\xch@cnt will be 0..7 + \def\xch@lst{} + \ifnum\xch@cnt>3 \edef\xch@lst{3}\advance\xch@cnt -4 \fi + \ifnum\xch@cnt>1 \edef\xch@lst{2,\xch@lst}\advance\xch@cnt -2 \fi + \ifnum\xch@cnt>0 \edef\xch@lst{2,\xch@lst}\fi + \ifthenelse{\not\equal{\xch@lst}{}} + {\edef\xch@dflt{\xch@dflt StylisticSet={\xch@lst} , + }}{} + \defaultfontfeatures{ + Ligatures = TeX , + Extension = .otf , + SmallCapsFeatures={Letters=SmallCaps} , + \xch@dflt , + \xch@defaultfeatures + } + +\else % type1 + \RequirePackage{fontaxes} + \fa@naming@exception{figures}{{superior}{proportional}}{Sup} \fa@naming@exception{figures}{{superior}{tabular}}{Sup} \def\sufigures{\@nomath\sufigures @@ -32,187 +236,195 @@ \fontfigurestyle{inferior}\selectfont} \DeclareTextFontCommand{\textinf}{\infigures} \let\textinferior\textinf - + \fa@naming@exception{figures}{{numerators}{proportional}}{Numr} \fa@naming@exception{figures}{{numerators}{tabular}}{Numr} \def\nufigures{\@nomath\nufigures% \fontfigurestyle{numerators}\selectfont} \DeclareTextFontCommand{\textnu}{\nufigures} \let\textnumerator\textnu - \let\nustyle\nufigures - + \fa@naming@exception{figures}{{denominators}{proportional}}{Dnom} \fa@naming@exception{figures}{{denominators}{tabular}}{Dnom} \def\defigures{\@nomath\defigures% \fontfigurestyle{denominators}\selectfont} \DeclareTextFontCommand{\textde}{\defigures} \let\textdenominator\textde - \let\destyle\defigures - -}{} -\newcommand{\textfrac}[3][]{% like \textfrac[1]{7}{8} - \mbox{% - \ifthenelse{\not\equal{#1}{}}%Test for integer portion [optional #1] - {\textlf{#1}\kern.05em}{}% - \textsu{#2}% numerator - \StrRight{#2}{1}[\@digit@]% - % look for 1, 2, 3, 4, 7 - \ifcase\@digit@% 0 - \or% 1 - \or\kern.03em% 2 - \or\kern-.01em% 3 - \or%\kern-.01em% 4 - \or%\kern.01em% 5 - \or\kern.01em% 6 - \or\kern-.09em% 7 - \fi% - \kern\XCh@foresolidus\textfractionsolidus\kern\XCh@aftsolidus% - \StrLeft{#3}{1}[\@digit@]% - % look for 1, 4, 5, 7 - \ifcase\@digit@% 0 - \or\kern -.02em% 1 - \or\kern .01em% 2 - \or\kern -.02em% 3 - \or\kern -.08em% 4 - \or\kern -.01em% 5 - \or\kern -.03em% 6 - \or\kern .02em% 7 - \fi% - \textde{#3}% denominator [#3] - }% + + \newcommand{\textfrac}[3][]{% like \textfrac[1]{7}{8} + \mbox{%Test for integer portion [optional #1] + \ifthenelse{\not\equal{#1}{}}% + {\textlf{#1}\kern.05em}{}% + \textsu{#2}% numerator + \StrRight{#2}{1}[\@digit@]% + % look for 1, 2, 3, 4, 7 + \ifcase\@digit@% 0 + \or% 1 + \or\kern.03em% 2 + \or\kern-.01em% 3 + \or%\kern-.01em% 4 + \or%\kern.01em% 5 + \or\kern.01em% 6 + \or\kern-.09em% 7 + \fi% +\kern\XCharter@foresolidus\textfractionsolidus\kern\XCharter@aftsolidus% + \StrLeft{#3}{1}[\@digit@]% + % look for 1, 4, 5, 7 + \ifcase\@digit@% 0 + \or\kern -.02em% 1 + \or\kern .01em% 2 + \or\kern -.02em% 3 + \or\kern -.08em% 4 + \or\kern -.01em% 5 + \or\kern -.03em% 6 + \or\kern .02em% 7 + \fi% +\textde{#3}% denominator [#3] +}% } +\DeclareRobustCommand{\tlfstyle}{% + \not@math@alphabet\tlfstyle\relax + \fontfamily{XCharter-TLF}\selectfont } \DeclareRobustCommand{\lfstyle}{% \not@math@alphabet\lfstyle\relax - \fontfamily{XCharter-TLF}\selectfont } + \fontfamily{XCharter-LF}\selectfont } +\DeclareRobustCommand{\tosfstyle}{% + \not@math@alphabet\tosfstyle\relax + \fontfamily{XCharter-TOsF}\selectfont } \DeclareRobustCommand{\osfstyle}{% \not@math@alphabet\osfstyle\relax - \fontfamily{XCharter-TOsF}\selectfont } -\def\textlf#1{{\lfstyle #1}} -%\def\textosf#1{{\osfstyle #1}} -\edef\XCh@dfltfigurestyle{TLF} - -\newcommand*{\XCharter@scale}{1} -\IfFileExists{xkeyval.sty}{ - \RequirePackage{xkeyval} - \DeclareOptionX{scale}{\renewcommand*{\XCharter@scale}{##1}} - \DeclareOptionX{scaled}{\renewcommand*{\XCharter@scale}{##1}} -}{ - \let\DeclareOptionX\DeclareOption - \let\ExecuteOptionsX\ExecuteOptions - \let\ProcessOptionsX\ProcessOptions -} -\let\orig@footnote=\thefootnote -\let\orig@makefnmark=\@makefnmark -\def\XCh@foresolidus{-.02em} -\def\XCh@aftsolidus{-.02em} -%\newif\ifXCh@babel -%\ifdefined\bbl@tempa \XCh@babeltrue\fi -\newif\if@XCh@scosf -\newif\if@XCh@srb -\newif\ifXCh@thrm + \fontfamily{XCharter-OsF}\selectfont } +\fi % type1 -\def\XCharter@altone{1}% default is to use 1, not I -\newif\if@XCh@sups -\DeclareOptionX{foresolidus}{\gdef\XCh@foresolidus{#1}} -\DeclareOptionX{aftsolidus}{\gdef\XCh@aftsolidus{#1}} -\DeclareOptionX{lf}{\edef\XCharter@figurestyle{TLF}} -\DeclareOptionX{lining}{\edef\XCharter@figurestyle{TLF}} -\DeclareOptionX{oldstyle}{\edef\XCharter@figurestyle{TOsF}% -\edef\XCharter@altone{1}} -\DeclareOptionX{oldstyleI}{\edef\XCharter@figurestyle{TOsF}% -\edef\XCharter@altone{}} -\DeclareOptionX{theoremfont}{\XCh@thrmtrue} -\DeclareOptionX{osf}{\edef\XCharter@figurestyle{TOsF}\edef\XCharter@altone{1}} -\DeclareOptionX{osfI}{\edef\XCharter@figurestyle{TOsF}\edef\XCharter@altone{}} -\DeclareOptionX{sups}{\@XCh@supstrue} -\DeclareOptionX{scosf}{\@XCh@scosftrue} -\DeclareOptionX{serbianc}{\@XCh@srbtrue} - -\edef\bfseries@rm{b} -\edef\mdseries@rm{m} -\ExecuteOptionsX{lining} -\ProcessOptionsX\relax +%\DeclareRobustCommand{\textlf}[1]{% +% {\lfstyle #1}% +%}% to get lf +%\DeclareRobustCommand{\texttlf}[1]{% +% {\tlfstyle #1}% +%}% to get tlf +%\DeclareRobustCommand{\textosf}[1]{% +% {\osfstyle #1}% +%}% to get osf +%\DeclareRobustCommand{\texttosf}[1]{% +% {\tosfstyle #1}% +%}% to get tosf + +%\newcommand*{\XCharter@scale}{1} +%\RequirePackage{xkeyval} +%\DeclareOptionX{scale}{\renewcommand*{\XCharter@scale}{##1}} +%\DeclareOptionX{scaled}{\renewcommand*{\XCharter@scale}{##1}} +%\let\orig@footnote=\thefootnote +%\let\orig@makefnmark=\@makefnmark +%\def\XCh@foresolidus{-.02em} +%\def\XCh@aftsolidus{-.02em} +% +%\newif\if@XCh@scosf +%\newif\if@XCh@srb +%\def\XCharter@altone{1}% default is to use 1, not I +%%\newif\if@XCh@sups +%%\DeclareOptionX{foresolidus}{\gdef\XCh@foresolidus{#1}} +%%\DeclareOptionX{aftsolidus}{\gdef\XCh@aftsolidus{#1}} +%%\DeclareOptionX{tabular}{\def\XCharter@figurealign{T}} +%%\DeclareOptionX{lf}{\def\XCharter@figurestyle{LF}} +%%\DeclareOptionX{lining}{\edef\XCharter@figurestyle{LF}} +%%\DeclareOptionX{oldstyle}{\def\XCharter@figurestyle{OsF}%\def\XCharter@figurealign{}\def\XCharter@altone{1}} +%\DeclareOptionX{oldstyleI}{\def\XCharter@figurestyle{OsF}\def\XCharter@figurealign{}\def\XCharter@altone{}} +%%\DeclareOptionX{osf}{\def\XCharter@figurestyle{OsF}\def\XCharter@figurealign{}\def\XCharter@altone{1}} +%\DeclareOptionX{osfI}{\def\XCharter@figurestyle{OsF}\def\XCharter@figurealign{}\def\XCharter@altone{}} +%\DeclareOptionX{sups}{\@XCh@supstrue} +%\DeclareOptionX{scosf}{\@XCh@scosftrue} +%\DeclareOptionX{serbianc}{\@XCh@srbtrue} +% +%\edef\bfseries@rm{b} +%\edef\mdseries@rm{m} +%\ExecuteOptionsX{lining,tabular} +%\ProcessOptionsX\relax -\def\useosf{\edef\XCharter@figurestyle{TOsF}\def\XCharter@altone{1}} -\def\useosfI{\edef\XCharter@figurestyle{TOsF}\def\XCharter@altone{}} +\def\useosf{\xch@liningfalse\def\XCharter@altone{1}} +\def\useosfI{\xch@liningfalse\def\XCharter@altone{}} \@onlypreamble\useosf \@onlypreamble\useosfI +\def\useproportional{\xch@tabularfalse} +\@onlypreamble\useproportional %\newcommand{\textosfI}[1]{\oldstylenums{#1}}% to get XCharter osfI -\newcommand{\textosf}[1]{{\fontencoding{T1}\fontfamily{XCharterx}\selectfont #1}}% to get XCharter osf -\newcommand{\textosfI}[1]{{\fontencoding{T1}\fontfamily{XChartery}\selectfont #1}}% to get XCharter osfI - -\ifXCh@thrm - %\RequirePackage{amsmath,amsthm} % in case of theoremfont - \ifdefined\newtheoremstyle %amsthm and ntheorem, not theorem.sty - \@ifpackageloaded{ntheorem}\relax{% - \newtheoremstyle{plain} - {\medskipamount} % ABOVESPACE, was \topsep - {\medskipamount} % BELOWSPACE, was \topsep - {\thfamily} % BODYFONT--\thfamily is italic with upright figures and punctuation - {} % INDENT (empty value is the same as 0pt) - {\bfseries} % HEADFONT--you may want to add \tlfstyle so the number is tab lining, regardless of text figure selection - {.} % HEADPUNCT - {5pt plus 1pt minus 1pt} % HEADSPACE - {} % CUSTOM-HEAD-SPEC\newtheorem{thm}{Theorem}[section] - } % end @ifpackageloaded - \fi% -\fi%} +%\newcommand{\textosf}[1]{{\fontencoding{T1}\fontfamily{XCharterx}\selectfont #1}}% to get XCharter osf +%\newcommand{\textosfI}[1]{{\fontencoding{T1}\fontfamily{XChartery}\selectfont #1}}% to get XCharter osfI \renewcommand*{\bfdefault}{b} \renewcommand*{\scdefault}{sc}% for better compatibility with mathdesign % The following are provided so that we may access osf in any mode % osfx corresponds to small 1 rather than small I -\DeclareFontFamily{T1}{XCharterx}{} - -\DeclareFontShape{T1}{XCharterx}{m}{n}{ - <-> s*[\XCharter@scale] XCharter1-Roman-tosf-t1 -}{} -\DeclareFontShape{T1}{XCharterx}{m}{it}{ - <-> s*[\XCharter@scale] XCharter1-Italic-tosf-t1 -}{} -\DeclareFontShape{T1}{XCharterx}{b}{n}{ - <-> s*[\XCharter@scale] XCharter1-Bold-tosf-t1 -}{} -\DeclareFontShape{T1}{XCharterx}{b}{it}{ - <-> s*[\XCharter@scale] XCharter1-BoldItalic-tosf-t1 -}{} -% osfy corresponds to small I rather than small 1 -\DeclareFontFamily{T1}{XChartery}{} - -\DeclareFontShape{T1}{XChartery}{m}{n}{ - <-> s*[\XCharter@scale] XCharter-Roman-tosf-t1 -}{} -\DeclareFontShape{T1}{XChartery}{m}{it}{ - <-> s*[\XCharter@scale] XCharter-Italic-tosf-t1 -}{} -\DeclareFontShape{T1}{XChartery}{b}{n}{ - <-> s*[\XCharter@scale] XCharter-Bold-tosf-t1 -}{} -\DeclareFontShape{T1}{XChartery}{b}{it}{ - <-> s*[\XCharter@scale] XCharter-BoldItalic-tosf-t1 -}{} +%\DeclareFontFamily{T1}{XCharterx}{} +% +%\DeclareFontShape{T1}{XCharterx}{m}{n}{ +% <-> s*[\XCharter@scale] XCharter1-Roman-osf-t1 +%}{} +%\DeclareFontShape{T1}{XCharterx}{m}{it}{ +% <-> s*[\XCharter@scale] XCharter1-Italic-osf-t1 +%}{} +%\DeclareFontShape{T1}{XCharterx}{m}{sl}{ +% <-> s*[\XCharter@scale] XCharter1-Slanted-osf-t1 +%}{} +%\DeclareFontShape{T1}{XCharterx}{b}{n}{ +% <-> s*[\XCharter@scale] XCharter1-Bold-osf-t1 +%}{} +%\DeclareFontShape{T1}{XCharterx}{b}{it}{ +% <-> s*[\XCharter@scale] XCharter1-BoldItalic-osf-t1 +%}{} +%\DeclareFontShape{T1}{XCharterx}{b}{sl}{ +% <-> s*[\XCharter@scale] XCharter1-BoldSlanted-osf-t1 +%}{} +%% osfy corresponds to small I rather than small 1 +%\DeclareFontFamily{T1}{XChartery}{} +% +%\DeclareFontShape{T1}{XChartery}{m}{n}{ +% <-> s*[\XCharter@scale] XCharter-Roman-osf-t1 +%}{} +%\DeclareFontShape{T1}{XChartery}{m}{it}{ +% <-> s*[\XCharter@scale] XCharter-Italic-osf-t1 +%}{} +%DeclareFontShape{T1}{XChartery}{m}{sl}{ +% <-> s*[\XCharter@scale] XCharter-Slanted-osf-t1 +%}{} +%\DeclareFontShape{T1}{XChartery}{b}{n}{ +% <-> s*[\XCharter@scale] XCharter-Bold-osf-t1 +%}{} +%\DeclareFontShape{T1}{XChartery}{b}{it}{ +% <-> s*[\XCharter@scale] XCharter-BoldItalic-osf-t1 +%}{} +%\DeclareFontShape{T1}{XChartery}{b}{sl}{ +% <-> s*[\XCharter@scale] XCharter-BoldSlanted-osf-t1 +%}{} \renewcommand*{\rmdefault}{XCharter-TLF} \renewcommand*{\familydefault}{\rmdefault} -\if@XCh@scosf % +\ifxch@scosf % \DeclareRobustCommand{\textsc}[1]{% -{\fontfamily{XCharter-TOsF}\fontshape{sc}\selectfont #1}% +{\fontfamily{XCharter-OsF}\fontshape{sc}\selectfont #1}% }\fi% use OsF in small caps \DeclareRobustCommand{\textruble}{\rlap{\kern.03em\rule[.258em]{.1em}{.032em}}\rlap{\kern.03em\rule[.173em]{.41em}{.032em}}{\scalefont{.966}P}} - -\DeclareTextCommand{\textcircled}{TS1}[1]{% -\hmode@bgroup - \ooalign{% - \hfil \raise .32ex\hbox {\fontencoding{T1}\fontfamily{XCharter-TOsF}\fontseries{m}\fontshape{sc}\selectfont\scalefont{.75}\lowercase{#1}}\hfil \crcr - \char 79 %\textbigcircle - }% - \egroup} +\let\textcircled\@nil +%\let\csname TS1\textcircled\@nil +\DeclareRobustCommand{\textcircled}[1]{% +\hmode@bgroup% +\ifnum`#1>`9\relax% +\def\y{.3ex}\def\x{\scshape\lowercase{#1}}% +\else% +\def\y{.19ex}\def\x{\liningnums#1}% +\fi% +\mbox{% +\ooalign{% +\hfil\raise\y\hbox{\scalefont{.78}\x}\hfil\crcr% +{\usefont{TS1}{XCharter-TLF}{m}{n}\char79}%\textbigcircle +}}% +\egroup} +%\expandafter\show\csname textcircled \endcsname %\DeclareTextCommand{\textcircled}{TS1}[1]{\hmode@bgroup % \ooalign{% @@ -221,7 +433,7 @@ % }% % \egroup} -\if@XCh@sups % +\ifxch@sups % \ifdefined\sufigures \def\f@@tn@te{footnote} \def\@makefnmark{% @@ -237,41 +449,281 @@ \fi% \fi -%\AtEndPreamble{% -%\renewcommand*{\rmdefault}{XCharter-\XCharter@figurestyle} -%\normalfont} +%%%% set the style for theoremfont---either osf or tlf +\def\xch@thfigurestyle{\XCharter@figurestyle} +\ifx\XCharter@figurestyle\xch@dfltfigurestyle + \def\xch@thfigurestyle{tlf} +\else + \def\xch@thfigurestyle{osf} +\fi +\if l\xch@thmlin \def\xch@thfigurestyle{tlf}\fi% force lining -%\ifXCh@babel -% \renewcommand*{\rmdefault}{XCharter-\XCharter@figurestyle} -% \normalfont -%\else +\ifxch@otftext + \ifthenelse{\equal{\xch@thfigurestyle}{tlf}}{% + \def\xch@fa{Monospaced}\def\xch@sty{Lining}}{% + \def\xch@fa{Proportional}\def\xch@sty{OldStyle}} +% \DeclareTextFontCommand{% +% \slshape}{\addfontfeatures{Numbers = {\xch@nft,\xch@sty}, RawFeature=+salt}\itshape} % for theorems + \DeclareTextFontCommand{\textsl}{\slshape} + + \DeclareRobustCommand{\lfstyle}{% + \not@math@alphabet\lfstyle\relax + \addfontfeatures{Numbers={Proportional,Lining}}% + } + \DeclareRobustCommand{\tlfstyle}{% + \not@math@alphabet\tlfstyle\relax + \addfontfeatures{Numbers={Monospaced,Lining}}% + } + \DeclareRobustCommand{\osfstyle}{% + \not@math@alphabet\osfstyle\relax + \addfontfeatures{Numbers={Proportional,OldStyle}}% + } + \DeclareRobustCommand{\tosfstyle}{% + \not@math@alphabet\tosfstyle\relax + \addfontfeatures{Numbers={Monospaced,OldStyle}}% + } + \DeclareRobustCommand{\oldstylenums}{% + \not@math@alphabet\oldstylenums\relax + \addfontfeatures{Numbers=OldStyle}% + } + \DeclareRobustCommand{\liningnums}{% + \not@math@alphabet\liningnums\relax + \addfontfeatures{Numbers=Lining}% + } + \DeclareRobustCommand{\tabularnums}{% + \not@math@alphabet\tabularnums\relax + \addfontfeatures{Numbers=Monospaced}% + } + \DeclareRobustCommand{\proportionalnums}{% + \not@math@alphabet\proportionalnums\relax + \addfontfeatures{Numbers=Proportional}% + } -\DeclareRobustCommand\thfamily % new family for theorem font +%% \newfontfamily\xchTLF +% [ %IgnoreFontspecFile , +% Numbers = {Monospaced,Lining}, +% Scale = \XCharter@scale , +% UprightFont = *-Roman , +% ItalicFont = *-Italic , +% %SlantedFont = *-Slanted , +% BoldFont = *-Bold , +% BoldItalicFont = *-BoldItalic , +% % BoldSlantedFont= *-BoldSlanted , +% ] {\xch@base} +% \newfontfamily\xchTOsF +% [ %IgnoreFontspecFile , +% Numbers = {Monospaced,OldStyle} , +% Scale = \XCharter@scale , +% UprightFont = *-Roman , +% ItalicFont = *-Italic , +% %SlantedFont = *-Slanted , +% BoldFont = *-Bold , +% BoldItalicFont = *-BoldItalic , +% %BoldSlantedFont= *-BoldSlanted , +% ] {\xch@base} +% \newfontfamily\xchOsF +% [ %IgnoreFontspecFile , +% Numbers = {Proportional,OldStyle} , +% Scale = \XCharter@scale , +% UprightFont = *-Roman , +% ItalicFont = *-Italic , +% %SlantedFont = *-Slanted , +% BoldFont = *-Bold , +% BoldItalicFont = *-BoldItalic , +% %BoldSlantedFont= *-BoldSlanted , +% ] {\xch@base} +% \newfontfamily\xchLF +% [ %IgnoreFontspecFile , +% Numbers = {Proportional,Lining} , +% Scale = \XCharter@scale , +% UprightFont = *-Roman , +% ItalicFont = *-Italic , +% %SlantedFont = *-Slanted , +% BoldFont = *-Bold , +% BoldItalicFont = *-BoldItalic , +% %BoldSlantedFont= *-BoldSlanted , +% ] {\xch@base} + \providecommand\nufigures{\addfontfeatures{RawFeature=+numr}} + \providecommand\sufigures{\addfontfeatures{VerticalPosition=Superior}} + \providecommand\defigures{\addfontfeatures{RawFeature=+dnom}} +\providecommand\infigures{\addfontfeatures{VerticalPosition=Inferior}} + \let\nustyle\nufigures + \DeclareTextFontCommand{\textnu}{\nufigures} + \let\destyle\defigures + \DeclareTextFontCommand{\textsu}{\sufigures} + \let\textsuperior\textsu + \DeclareTextFontCommand{\textde}{\defigures} + \let\textdenominator\textde + \DeclareTextFontCommand{\textinf}{\infigures} + \let\textinferior\textinf + + \ifxch@sups % + \usepackage{realscripts} + %\newfontfamily\Timessu{TeXGyreTermesX} + + \ifxch@KOMA + \setkomafont{footnotelabel}{\normalfont} + \else + \renewcommand*{\footnotemarkfont}{\normalfont} + \fi + \fi +% \newcommand{\thfamily}%{\@nameuse{ntx\ntx@figurestyle}% +% {\itshape\addfontfeatures{% +% Numbers={\XCharter@figurealign,\xch@sty} , +% RawFeature=+ss05} + %} % for theorems +\else % type1 + \DeclareRobustCommand{\thfamily} % new family for theorem font {\not@math@alphabet\thfamily\relax - \fontfamily\thdefault\fontshape{it}\selectfont} -\DeclareRobustCommand{\textth}[1]{% - {\thfamily #1}% -} + \fontfamily\thdefault\selectfont} +% \DeclareRobustCommand{\textth}[1]{% +% {\thfamily #1}% +%} +%\let\textthit\textth + \renewcommand*{\rmdefault}{XCharter-TLF} % always TLF in math + \renewcommand*{\familydefault}{\rmdefault} + + \ifxch@sups % + \ifxch@KOMA % + \else % not KOMA + \ifdefined\sufigures + \def\f@@tn@te{footnote} + \def\@makefnmark{% + \ifx\@mpfn\f@@tn@te% + \ifx\thefootnote\orig@footnote% + \hbox{\sufigures\hspace*{.04em}\@thefnmark\hspace*{.04em}}% + \else% + \orig@makefnmark% + \fi + \else% + \orig@makefnmark% + \fi}% + \fi% + \fi + \fi +\fi % type1 + +\ifxch@otftext +% \AtEndPreamble{% + \ifxch@lining + \def\xch@figurestyle{Lining} + \else + \def\xch@figurestyle{OldStyle} + \fi + \ifxch@tabular + \def\xch@figurealign{Monospaced} + \else + \def\xch@figurealign{Proportional} + \fi + + \setmainfont + [%IgnoreFontspecFile , + Extension = .otf , + %Path = ./ , + Numbers = {\xch@figurealign,\xch@figurestyle}, + Scale = \XCharter@scale , + UprightFont = *-Roman , + ItalicFont = *-Italic , + SlantedFont = *-Slanted , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic , + BoldSlantedFont= *-BoldSlanted , + SmallCapsFeatures={Letters=SmallCaps} , + ] {\xch@base} +\def\xch@sty{\xch@figurestyle}\def\xch@fa{\xch@figurealign} + \if l\xch@thmlin\def\xch@sty{Lining}\def\xch@fa{Tabular}\fi + \newcommand{\thfamily}%{\@nameuse{ntx\ntx@figurestyle}% + {\itshape\addfontfeatures{% + Numbers={\xch@fa,\xch@sty} , + RawFeature=+ss05} + } % for theorems +\newfontface\circledtxt{\xch@base-Roman} + [%IgnoreFontspecFile , + Scale = \XCharter@scale , + %Numbers = {Monospaced,OldStyle} , + SmallCapsFeatures={Letters=SmallCaps} , + ] + \ifxch@scosf% + \edef\xch@fnt{\expandafter\csname xch\ifxch@tabular T\fi OsF\endcsname} + \DeclareRobustCommand{\textsc}[1]{% + {\xch@fnt \addfontfeatures{RawFeature=+smcp}#1}}% +%\show\xch@fnt + \fi +\let\textthit\textth +%} +\else % type1 + \AtEndPreamble{% + \ifxch@tabular + \def\XCharter@figurealign{T} + \else + \def\XCharter@figurealign{} + \fi + \ifxch@lining + \def\XCharter@figurestyle{LF} + \else + \def\XCharter@figurestyle{OsF} + \fi + \DeclareRobustCommand{\oldstylenums}{% + \not@math@alphabet\oldstylenums\relax + \fontfamily{XCharter-\XCharter@figurealign OsF}\selectfont } + \DeclareRobustCommand{\liningnums}{% + \not@math@alphabet\liningnums\relax + \fontfamily{XCharter-\XCharter@figurealign LF}\selectfont } + \DeclareRobustCommand{\tabularnums}{% + \not@math@alphabet\tabularnums\relax + \fontfamily{XCharter-T\XCharter@figurestyle}\selectfont } + \DeclareRobustCommand{\proportionalnums}{% + \not@math@alphabet\proportionalnums\relax + \fontfamily{XCharter-\XCharter@figurestyle}\selectfont } +% \DeclareRobustCommand{\textosfI}[1]{% +%{\fontfamily{XCharter-OsF}\fontshape{sc}\selectfont #1}% +%} + \ifxch@scosf % + \DeclareRobustCommand{\textsc}[1]{% + {\fontfamily{XCharter-\XCharter@figurealign% + OsF}\fontshape{sc}\selectfont #1}% + }\fi% use OsF in small caps + \renewcommand*{\rmdefault}{XCharter-\XCharter@figurealign% + \XCharter@figurestyle} + + \newcommand*{\thdefault}{XCharterTH-\xch@thfigurestyle} + \normalfont + \renewcommand*{\familydefault}{\rmdefault} \let\textthit\textth + } +\fi -\AtEndPreamble{% -\renewcommand*{\rmdefault}{XCharter-\XCharter@figurestyle} -%\def\XCharter@thfigurestyle{\XCharter@figurestyle} -\ifx\XCharter@figurestyle\XCh@dfltfigurestyle - \def\XCharter@thfigurestyle{tlf} -\else - \def\XCharter@thfigurestyle{osf} -\fi % there just two possible figure styles for the theorem font +%both +\DeclareTextFontCommand{\textosf}{\osfstyle} +\DeclareTextFontCommand{\texttosf}{\tosfstyle} +\DeclareTextFontCommand{\texttlf}{\tlfstyle} +\DeclareTextFontCommand{\textlf}{\lfstyle} -\newcommand*{\thdefault}{XCharterTH-\XCharter@thfigurestyle} -\ifXCh@thrm - \@ifundefined{theoremstyle}{}{% +\ifxch@thrm + \@ifundefined{theoremstyle}{}{% \theoremstyle{plain} - \patchcmd{\th@plain}{\itshape}{\thfamily}{\message{Replaced itshape by thfamily in theorem style plain.}}{\message{Unable to replace itshape by thfamily in theorem style plain.}} -} + \patchcmd{\th@plain}{\itshape}{\thfamily}{% + %\message{Replaced itshape by thfamily in theorem style plain.} + }{% + %\message{Unable to replace itshape by thfamily in theorem style plain.} + }} + \ifdefined\newtheoremstyle %amsthm and ntheorem, not theorem.sty + \@ifpackageloaded{ntheorem}\relax{% + \newtheoremstyle{plain} + {\medskipamount} % ABOVESPACE, was \topsep + {\medskipamount} % BELOWSPACE, was \topsep + {\thfamily} % BODYFONT--\thfamily is italic with upright figures and punctuation + {} % INDENT (empty value is the same as 0pt) + {\bfseries} % HEADFONT--you may want to add \tlfstyle so the number is tab lining, regardless of text figure selection + {.} % HEADPUNCT + {5pt plus 1pt minus 1pt} % HEADSPACE + {} % CUSTOM-HEAD-SPEC\newtheorem{thm}{Theorem}[section] + } % end @ifpackageloaded + \fi% \fi -\normalfont} -%\fi - +\DeclareRobustCommand{\textth}[1]{% + {\thfamily #1}% +} +% \endinput -- cgit v1.2.3