%% $Id: lucida-otf.sty 751 2018-03-31 17:34:46Z herbert $ %% %% This file is distributed under the terms of the LaTeX Project Public %% License from CTAN archives in directory macros/latex/base/lppl.txt. %% Either version 1.3 or, at your option, any later version. %% % Copyright 2023 Herbert Voss hvoss@tug.org %% \ProvidesPackage{lucida-otf}[% 2023/06/16 v. 0.09 (Herbert Voss) Supports Lucida OpenType for lualatex/xelatex.] % \RequirePackage{ifxetex,ifluatex,xkeyval,textcomp} \RequirePackage{unicode-math} % support opentype math fonts % loads itself fontspec % \newif\ifLucida@usefilenames \Lucida@usefilenamesfalse \DeclareOptionX{usefilenames}[true]{\@nameuse{Lucida@usefilenames#1}} % \providecommand\lucidaRM@features{Scale=0.92}% Roman \providecommand\lucidaSS@features{Scale=0.92}% SansSerif \providecommand\lucidaTT@features{Scale=0.92}% Typewriter \providecommand\lucidaGrandeTT@features{Scale=0.92}% Typewriter \providecommand\lucidaConsoleTT@features{Scale=0.92}% Typewriter \providecommand\lucidaMM@features{}% Math regular \providecommand\lucidaMMbold@features{}% Math bold \providecommand\lucidaBL@features{}% Blackletter \providecommand\lucidaCAL@features{}% Calligraphy \providecommand\lucidaHW@features{}% Handwriting \providecommand\lucida@DefaultFeatures{} \DeclareOptionX{RM}{\renewcommand*{\lucidaRM@features}{#1}} \DeclareOptionX{SS}{\renewcommand*{\lucidaSS@features}{#1}} \DeclareOptionX{TT}{\renewcommand*{\lucidaTT@features}{#1}} \DeclareOptionX{GTT}{\renewcommand*{\lucidaGrandeTT@features}{#1}} \DeclareOptionX{CTT}{\renewcommand*{\lucidaConsoleTT@features}{#1}} \DeclareOptionX{MM}{\renewcommand*{\lucidaMM@features}{#1}} \DeclareOptionX{MMbold}{\renewcommand*{\lucidaMMbold@features}{#1}} \DeclareOptionX{BL}{\renewcommand*{\lucidaBL@features}{#1}} \DeclareOptionX{CAL}{\renewcommand*{\lucidaCAL@features}{#1}} \DeclareOptionX{HW}{\renewcommand*{\lucidaHW@features}{#1}} \DeclareOptionX{DefaultFeatures}{\def\lucida@DefaultFeatures{#1}} \newif\ifLucida@useKerning \Lucida@useKerningtrue \DeclareOptionX{useKerning}[true]{\@nameuse{Lucida@useKerning#1}} \ProcessOptionsX\relax \def\Lucida@RawFeatures{}\def\Lucida@MathRawFeatures{} \ifLucida@useKerning \ifluatex \RequirePackage{luacode} \typeout{loading lucida-otf-kern.tex ... }% \input{lucida-otf-kern.tex}% \def\Lucida@RawFeatures{+lucidaletterkerning,+lucidanumberkerning} \def\Lucida@MathRawFeatures{+lucidanumberkerning} \fi \fi \defaultfontfeatures{Ligatures=TeX,\lucida@DefaultFeatures}% default in fontspec % \ifLucida@usefilenames \typeout {Using file names for the Lucida font}% %----------------------------------------- file names ---------------------------- \setmainfont{LucidaBrightOT}[% main rm Extension = .otf, \lucidaRM@features, ItalicFont = *-Italic, BoldFont = *-Demi, BoldItalicFont = *-DemiItalic, RawFeature = {\Lucida@RawFeatures}, ] % \setsansfont{LucidaSansOT}[% main sans Extension = .otf, \lucidaSS@features, ItalicFont = *-Italic, BoldFont = *-Demi, BoldItalicFont = *-DemiItalic ] % \setmonofont{LucidaSansTypewriterOT}[% main typewriter Extension = .otf, \lucidaTT@features, ItalicFont = *-Oblique, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique ] \newfontfamily\lucidaSLshape{LucidaBrightOT}[ FakeSlant = 0.2, Extension = .otf, \lucidaRM@features, BoldFont = *-Demi, BoldItalicFont = *-DemiItalic ] %\renewcommand\sldefault{\lucidaSLshape} \let\slshape\lucidaSLshape % % Setting math % First we have to expand the feature macros: %\expandafter\setmathfont\expandafter[\lucidaMM@features]{LucidaBrightMathOT} %\expandafter\setmathfont\expandafter[\lucidaMMbold@features,version=bold]{LucidaBrightMathOT-Demibold} \edef\Set@Math{\noexpand\setmathfont{Lucida Bright Math OT}[\lucidaMM@features, RawFeature = {\Lucida@MathRawFeatures}]% \noexpand\setmathfont{Lucida Bright Math OT Demibold}[\lucidaMMbold@features,version=bold]} \Set@Math % % The specialized one-off fonts: \newfontface\LucidaBlackletter{LucidaBlackletterOT}[ Extension = .otf, \lucidaBL@features] \newfontface\LucidaCalligraphy{LucidaCalligraphyOT}[ Extension = .otf, \lucidaCAL@features] \newfontface\LucidaHandwriting{LucidaHandwritingOT}[ Extension = .otf, \lucidaHW@features] % % GrandeMono and Console fonts for an example: \newfontfamily\LucidaGrandeMonoDK{LucidaGrandeMonoDK}[ Extension = .otf, \lucidaGrandeTT@features, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-BoldItalic ] % \newfontfamily\LucidaConsoleDK{LucidaConsoleDK}[% Extension = .otf, \lucidaConsoleTT@features, ItalicFont = *-Italic, BoldFont = *-Bold, BoldItalicFont = *-BoldItalic ] \else \typeout {Using symbolic names for the Lucida font}% %----------------------------------------- symbolic names ---------------------------- \setmainfont{Lucida Bright OT}[% main rm \lucidaRM@features, ItalicFont = * Italic, BoldFont = * Demibold, BoldItalicFont = * Demibold Italic, RawFeature = {\Lucida@RawFeatures} ] % \setsansfont{Lucida Sans OT}[% main sans \lucidaSS@features, ItalicFont = * Italic, BoldFont = * Demibold, BoldItalicFont = * Demibold Italic ] % \setmonofont{Lucida Sans Typewriter OT}[% main typewriter \lucidaTT@features, ] \newfontfamily\lucidaSLshape{Lucida Bright OT}[ FakeSlant = 0.2, % Extension = .otf, \lucidaRM@features, BoldFont = * Demibold, BoldItalicFont = * Demibold Italic ] %\renewcommand\sldefault{\lucidaSLshape} \let\slshape\lucidaSLshape % % Setting math % First we have to expand the feature macros: %\expandafter\setmathfont\expandafter[\lucidaMM@features]{LucidaBright Math OT} %\expandafter\setmathfont\expandafter[\lucidaMMbold@features,version=bold]{LucidaBright Math OT-Demibold} \edef\Set@Math{\noexpand\setmathfont{Lucida Bright Math OT}[\lucidaMM@features, RawFeature = {\Lucida@MathRawFeatures}]% \noexpand\setmathfont{Lucida Bright Math OT Demibold}[\lucidaMMbold@features,version=bold]} \Set@Math % % The specialized one-off fonts: \newfontface\LucidaBlackletter{Lucida Blackletter OT}% [ \lucidaBL@features] \newfontface\LucidaCalligraphy{Lucida Calligraphy OT Italic}[\lucidaCAL@features] \newfontface\LucidaHandwriting{Lucida Handwriting OT Italic}[\lucidaHW@features] % % GrandeMono and Console fonts for an example: \newfontfamily\LucidaGrandeMonoDK{Lucida Grande Mono DK}[ \lucidaGrandeTT@features, ] % \newfontfamily\LucidaConsoleDK{Lucida Console DK}[% \lucidaConsoleTT@features, ] \fi \endinput