diff --git a/TeX/Junicode.sty b/TeX/Junicode.sty index f46b376ba..3df61698b 100644 --- a/TeX/Junicode.sty +++ b/TeX/Junicode.sty @@ -2,7 +2,7 @@ % % fonttype: Choose otf (the default) or ttf % -% lining: Default numbers will be lining (uppecase) +% lining: Default numbers will be lining (uppercase) % oldstyle: Default numbers will be oldstyle (lowercase) % proportional: Default numbers will be proportional % tabular: Default numbers will be tabular (monospaced) @@ -21,6 +21,15 @@ \RequirePackage{ifxetex,ifluatex,xkeyval} +\newif\ifjunicodeokay +\ifxetex + \junicodeokaytrue +\else\ifluatex + \junicodeokaytrue +\else + \PackageError{Junicode}{This package works only with LuaLaTeX or XeLaTeX}{} +\fi + % Choose the type of font: otf or ttf. \newcommand*{\junicode@fonttype}{otf} diff --git a/TeX/JunicodeVF.sty b/TeX/JunicodeVF.sty new file mode 100644 index 000000000..054dca61b --- /dev/null +++ b/TeX/JunicodeVF.sty @@ -0,0 +1,724 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{JunicodeVF}[2023/11/24 (Peter Baker) Supports Junicode VF (2.204 and up) variable fonts for LuaLaTeX.] + +\RequirePackage{ifluatex,xkeyval,fontspec} + +\RequireLuaTeX + +% Figures: default is OldStyle Proportional + +\newif\ifjunicode@lining \junicode@liningfalse +\newif\ifjunicode@tabular \junicode@tabularfalse + +\DeclareOptionX{lining}{\junicode@liningtrue} +\DeclareOptionX{tabular}{\junicode@tabulartrue} +\DeclareOptionX{proportional}{\junicode@tabularfalse} +\DeclareOptionX{oldstyle}{\junicode@liningfalse} + +% Defaults for the four standard styles + +\newcommand{\MainRegDef}{} + +\newcommand{\MainRegSizeDef}{ + SizeFeatures={ + {Size={-8.5}, RawFeature={axis={wght=490,wdth=115}}}, + {Size={8.5-10.99}, RawFeature={axis={wght=440,wdth=107.5}}}, + {Size={10.99-17.99}, RawFeature={axis={wght=390,wdth=100}}}, + {Size={17.99-23.99}, RawFeature={axis={wght=370,wdth=95}}}, + {Size={23.99-}, RawFeature={axis={wght=350,wdth=90}}} + } +} + +\newcommand{\MainItalicDef}{} + +\newcommand{\MainItalicSizeDef}{ + SizeFeatures={ + {Size={-8.5}, RawFeature={axis={wght=525,wdth=115}}}, + {Size={8.5-10.99}, RawFeature={axis={wght=475,wdth=107.5}}}, + {Size={10.99-17.99}, RawFeature={axis={wght=425,wdth=100}}}, + {Size={17.99-23.99}, RawFeature={axis={wght=370,wdth=95}}}, + {Size={23.99-}, RawFeature={axis={wght=350,wdth=90}}} + } +} + +\newcommand{\MainBoldDef}{} + +\newcommand{\MainBoldSizeDef}{ + SizeFeatures={ + {Size={-8.5}, RawFeature={axis={wght=700,wdth=115}}}, + {Size={8.5-10.99}, RawFeature={axis={wght=700,wdth=107.5}}}, + {Size={10.99-17.99}, RawFeature={axis={wght=650,wdth=100}}}, + {Size={17.99-23.99}, RawFeature={axis={wght=650,wdth=95}}}, + {Size={23.99-}, RawFeature={axis={wght=600,wdth=90}}} + } +} + +\newcommand{\MainBoldItalicDef}{} + +\newcommand{\MainBoldItalicSizeDef}{ + SizeFeatures={ + {Size={-8.5}, RawFeature={axis={wght=700,wdth=115}}}, + {Size={8.5-10.99}, RawFeature={axis={wght=700,wdth=107.5}}}, + {Size={10.99-17.99}, RawFeature={axis={wght=650,wdth=100}}}, + {Size={17.99-23.99}, RawFeature={axis={wght=650,wdth=95}}}, + {Size={23.99-}, RawFeature={axis={wght=600,wdth=90}}} + } +} + +% These empty commands are for adding features: \MainDef to the four styles +% of the main text font, the others for the alternate styles. + +\newcommand{\MainDef}{} + +\newcommand{\RegDef}{} + +\newcommand{\CondDef}{} + +\newcommand{\SmCondDef}{} + +\newcommand{\SmExpDef}{} + +\newcommand{\ExpDef}{} + + +\newcommand{\LtDef}{} + +\newcommand{\LtCondDef}{} + +\newcommand{\LtSmCondDef}{} + +\newcommand{\LtSmExpDef}{} + +\newcommand{\LtExpDef}{} + + +\newcommand{\MmDef}{} + +\newcommand{\MmCondDef}{} + +\newcommand{\MmSmCondDef}{} + +\newcommand{\MmSmExpDef}{} + +\newcommand{\MmExpDef}{} + + +\newcommand{\SmBdDef}{} + +\newcommand{\SmBdCondDef}{} + +\newcommand{\SmBdSmCondDef}{} + +\newcommand{\SmBdSmExpDef}{} + +\newcommand{\SmBdExpDef}{} + + +\newcommand{\BdDef}{} + +\newcommand{\BdCondDef}{} + +\newcommand{\BdSmCondDef}{} + +\newcommand{\BdSmExpDef}{} + +\newcommand{\BdExpDef}{} + +% The SizeDef commands store the defaults for each of the alternate styles. + +\newcommand{\RegSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=100}}}}} + +\newcommand{\CondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=75}}}}} + +\newcommand{\SmCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=87.5}}}}} + +\newcommand{\SmExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=112.5}}}}} + +\newcommand{\ExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=125}}}}} + + +\newcommand{\LtSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=300,wdth=100}}}}} + +\newcommand{\LtCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=300,wdth=75}}}}} + +\newcommand{\LtSmCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=300,wdth=87.5}}}}} + +\newcommand{\LtSmExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=300,wdth=112.5}}}}} + +\newcommand{\LtExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=300,wdth=125}}}}} + + +\newcommand{\MmSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=500,wdth=100}}}}} + +\newcommand{\MmCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=500,wdth=75}}}}} + +\newcommand{\MmSmCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=500,wdth=87.5}}}}} + +\newcommand{\MmSmExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=500,wdth=112.5}}}}} + +\newcommand{\MmExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=500,wdth=125}}}}} + + +\newcommand{\SmBdSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=600,wdth=100}}}}} + +\newcommand{\SmBdCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=600,wdth=75}}}}} + +\newcommand{\SmBdSmCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=600,wdth=87.5}}}}} + +\newcommand{\SmBdSmExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=600,wdth=112.5}}}}} + +\newcommand{\SmBdExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=600,wdth=125}}}}} + + +\newcommand{\BdSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=700,wdth=100}}}}} + +\newcommand{\BdCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=700,wdth=75}}}}} + +\newcommand{\BdSmCondSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=700,wdth=87.5}}}}} + +\newcommand{\BdSmExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=700,wdth=112.5}}}}} + +\newcommand{\BdExpSizeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=700,wdth=125}}}}} + + +\newcommand{\ENLAOneDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=100,ENLA=32}}}}} + +\newcommand{\ENLATwoDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=100,ENLA=47}}}}} + +\newcommand{\ENLAThreeDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=100,ENLA=75}}}}} + +\newcommand{\ENLAFourDef}{SizeFeatures={{Size={5-}, RawFeature={axis={wght=400,wdth=100,ENLA=100}}}}} + + +\DeclareOptionX{MainFeatures}{\renewcommand*{\MainDef}{#1}} + +\DeclareOptionX{MainRegularFeatures}{\renewcommand*{\MainRegDef}{#1,}} + +\DeclareOptionX{MainItalicFeatures}{\renewcommand*{\MainItalicDef}{#1,}} + +\DeclareOptionX{MainBoldFeatures}{\renewcommand*{\MainBoldDef}{#1,}} + +\DeclareOptionX{MainBoldItalicFeatures}{\renewcommand*{\MainBoldItalicDef}{#1,}} + + +%\DeclareOptionX{MainRegularFeatures}{\renewcommand*{\MainRegDef}{#1,}} + +%\DeclareOptionX{MainItalicFeatures}{\renewcommand*{\MainItalicDef}{#1,}} + +%\DeclareOptionX{MainBoldFeatures}{\renewcommand*{\MainBoldDef}{#1,}} + +%\DeclareOptionX{MainBoldItalicFeatures}{\renewcommand*{\MainBoldItalicDef}{#1,}} + + +\DeclareOptionX{MainRegularSizeFeatures}{\renewcommand*{\MainRegSizeDef}{#1}} + +\DeclareOptionX{MainItalicSizeFeatures}{\renewcommand*{\MainItalicSizeDef}{#1}} + +\DeclareOptionX{MainBoldSizeFeatures}{\renewcommand*{\MainBoldSizeDef}{#1}} + +\DeclareOptionX{MainBoldItalicSizeFeatures}{\renewcommand*{\MainBoldItalicSizeDef}{#1}} + +% Alternate styles + +\DeclareOptionX{RegularFeatures}{\renewcommand*{\RegDef}{#1,}} + +\DeclareOptionX{CondFeatures}{\renewcommand*{\CondDef}{#1,}} + +\DeclareOptionX{SmCondFeatures}{\renewcommand*{\SmCondDef}{#1,}} + +\DeclareOptionX{SmExpFeatures}{\renewcommand*{\SmExpDef}{#1,}} + +\DeclareOptionX{ExpFeatures}{\renewcommand*{\ExpDef}{#1,}} + + +\DeclareOptionX{LightFeatures}{\renewcommand*{\LtDef}{#1,}} + +\DeclareOptionX{LightCondFeatures}{\renewcommand*{\LtCondDef}{#1,}} + +\DeclareOptionX{LightSmCondFeatures}{\renewcommand*{\LtSmCondDef}{#1,}} + +\DeclareOptionX{LighttSmExpFeatures}{\renewcommand*{\LtSmExpDef}{#1,}} + +\DeclareOptionX{LightExpFeatures}{\renewcommand*{\LtExpDef}{#1,}} + + +\DeclareOptionX{MediumFeatures}{\renewcommand*{\MmDef}{#1,}} + +\DeclareOptionX{MediumCondFeatures}{\renewcommand*{\MmCondDef}{#1,}} + +\DeclareOptionX{MediumSmCondFeatures}MmSmCondDef{\renewcommand*{\MmSmCondDef}{#1,}} + +\DeclareOptionX{MediumSmExpFeatures}{\renewcommand*{\MmSmExpDef}{#1,}} + +\DeclareOptionX{MediumExpFeatures}{\renewcommand*{\MmExpDef}{#1,}} + + +\DeclareOptionX{SmBoldFeatures}{\renewcommand*{\SmBdDef}{#1,}} + +\DeclareOptionX{SmBoldCondFeatures}{\renewcommand*{\SmBdCondDef}{#1,}} + +\DeclareOptionX{SmBoldSmCondFeatures}{\renewcommand*{\SmBdSmCondDef}{#1,}} + +\DeclareOptionX{SmBoldSmExpFeatures}{\renewcommand*{\SmBdSmExpDef}{#1,}} + +\DeclareOptionX{SmBoldExpFeatures}{\renewcommand*{\SmBdExpDef}{#1,}} + + +\DeclareOptionX{BoldFeatures}{\renewcommand*{\BdDef}{#1,}} + +\DeclareOptionX{BoldCondFeatures}{\renewcommand*{\BdCondDef}{#1,}} + +\DeclareOptionX{BoldSmCondFeatures}{\renewcommand*{\BdSmCondDef}{#1,}} + +\DeclareOptionX{BoldSmExpFeatures}{\renewcommand*{\BdSmExpDef}{#1,}} + +\DeclareOptionX{BoldExpFeatures}{\renewcommand*{\BdExpDef}{#1,}} + +% Alternate style size features + +\DeclareOptionX{CondSizeFeatures}{\renewcommand*{\CondSizeDef}{#1}} + +\DeclareOptionX{SmCondSizeFeatures}{\renewcommand*{\SmCondSizeDef}{#1}} + +\DeclareOptionX{SmExpSizeFeatures}{\renewcommand*{\SmExpSizeDef}{#1}} + +\DeclareOptionX{ExpSizeFeatures}{\renewcommand*{\ExpSizeDef}{#1}} + + +\DeclareOptionX{LightSizeFeatures}{\renewcommand*{\LtSizeDef}{#1}} + +\DeclareOptionX{LightCondSizeFeatures}{\renewcommand*{\LtCondSizeDef}{#1}} + +\DeclareOptionX{LightSmCondSizeFeatures}{\renewcommand*{\LtSmCondSizeDef}{#1}} + +\DeclareOptionX{LighttSmExpSizeFeatures}{\renewcommand*{\LtSmExpSizeDef}{#1}} + +\DeclareOptionX{LightExpSizeFeatures}{\renewcommand*{\LtExpSizeDef}{#1}} + + +\DeclareOptionX{MediumSizeFeatures}{\renewcommand*{\MmSizeDef}{#1}} + +\DeclareOptionX{MediumCondSizeFeatures}{\renewcommand*{\MmCondSizeDef}{#1}} + +\DeclareOptionX{MediumSmCondSizeFeatures}{\renewcommand*{\MmSmCondSizeDef}{#1}} + +\DeclareOptionX{MediumSmExpSizeFeatures}{\renewcommand*{\MmSmExpSizeDef}{#1}} + +\DeclareOptionX{MediumExpSizeFeatures}{\renewcommand*{\MmExpSizeDef}{#1}} + + +\DeclareOptionX{SmBoldSizeFeatures}{\renewcommand*{\SmBdSizeDef}{#1}} + +\DeclareOptionX{SmBoldCondSizeFeatures}{\renewcommand*{\SmBdCondSizeDef}{#1}} + +\DeclareOptionX{SmBoldSmCondSizeFeatures}{\renewcommand*{\SmBdSmCondSizeDef}{#1}} + +\DeclareOptionX{SmBoldSmExpSizeFeatures}{\renewcommand*{\SmBdSmExpSizeDef}{#1}} + +\DeclareOptionX{SmBoldExpSizeFeatures}{\renewcommand*{\SmBdExpSizeDef}{#1}} + + +\DeclareOptionX{BoldSizeFeatures}{\renewcommand*{\BdSizeDef}{#1}} + +\DeclareOptionX{BoldCondSizeFeatures}{\renewcommand*{\BdCondSizeDef}{#1}} + +\DeclareOptionX{BoldSmCondSizeFeatures}{\renewcommand*{\BdSmCondSizeDef}{#1}} + +\DeclareOptionX{BoldSmExpSizeFeatures}{\renewcommand*{\BdSmExpSizeDef}{#1}} + +\DeclareOptionX{BoldExpSizeFeatures}{\renewcommand*{\BdExpSizeDef}{#1}} + + + +\DeclareOptionX{ENLAOneFeatures}{\renewcommand*{\ENLAOneDef}{#1}} + +\DeclareOptionX{ENLATwoFeatures}{\renewcommand*{\ENLATwoDef}{#1}} + +\DeclareOptionX{ENLAThreeFeatures}{\renewcommand*{\ENLAThreeDef}{#1}} + +\DeclareOptionX{ENLAFourFeatures}{\renewcommand*{\ENLAThreeDef}{#1}} + + +\DeclareOptionX*{\PackageWarning{JunicodeVF}{Unknown option `\CurrentOption' ignored}} +\ProcessOptionsX\relax + +% Number strings for fontspec. + +\def\junicode@figurestyle{Lowercase} +\ifjunicode@lining\def\junicode@figurestyle{Uppercase}\fi +\def\junicode@figurealign{Proportional} +\ifjunicode@tabular\def\junicode@figurealign{Monospaced}\fi + +% \RequirePackage{fontspec} + +\typeout{\RegDef} + +\setmainfont{Junicode VF}[ + ItalicFont = {*-Italic}, + BoldFont = {*}, + BoldItalicFont = {*-Italic}, + Renderer = HarfBuzz, + Numbers = {\junicode@figurealign,\junicode@figurestyle}, + \MainDef, + UprightFeatures = {\MainRegDef + \MainRegSizeDef}, + BoldFeatures = {\MainBoldDef + \MainBoldSizeDef}, + ItalicFeatures = {\MainItalicDef + \MainItalicSizeDef}, + BoldItalicFeatures = {\MainBoldItalicDef + \MainBoldItalicSizeDef} +] + +\newcommand{\junicodevf@newfont}[4]{ + \setfontface#1{#2}[ + Renderer = HarfBuzz, + Numbers = {\junicode@figurealign,\junicode@figurestyle}, + SmallCapsFont = {*}, + SmallCapsFeatures = {Letters=SmallCaps}, + #3 + #4 + ] +} + +\junicodevf@newfont{\jRegular}{JunicodeVF}{\RegDef}{\RegSizeDef} + +\junicodevf@newfont{\jItalic}{JunicodeVF-Italic}{\RegDef}{\RegSizeDef} + +\junicodevf@newfont{\jCond}{JunicodeVF}{\CondDef}{\CondSizeDef} + +\junicodevf@newfont{\jCondItalic}{JunicodeVF-Italic}{\CondDef}{\CondSizeDef} + +\junicodevf@newfont{\jSmCond}{JunicodeVF}{\SmCondDef}{\SmCondSizeDef} + +\junicodevf@newfont{\jSmCondItalic}{JunicodeVF-Italic}{\SmCondDef}{\SmCondSizeDef} + +\junicodevf@newfont{\jSmExp}{JunicodeVF}{\SmExpDef}{\SmExpSizeDef} + +\junicodevf@newfont{\jSmExpItalic}{JunicodeVF-Italic}{\SmExpDef}{\SmExpSizeDef} + +\junicodevf@newfont{\jExp}{JunicodeVF}{\ExpDef}{\ExpSizeDef} + +\junicodevf@newfont{\jExpItalic}{JunicodeVF-Italic}{\ExpDef}{\ExpSizeDef} + +% Light faces + +\junicodevf@newfont{\jLight}{JunicodeVF}{\LtDef}{\LtSizeDef} + +\junicodevf@newfont{\jLightItalic}{JunicodeVF-Italic}{\LtDef}{\LtSizeDef} + +\junicodevf@newfont{\jLightCond}{JunicodeVF}{\LtCondDef}{\LtCondSizeDef} + +\junicodevf@newfont{\jLightCondItalic}{JunicodeVF-Italic}{\LtCondDef}{\LtCondSizeDef} + +\junicodevf@newfont{\jLightSmCond}{JunicodeVF}{\LtSmCondDef}{\LtSmCondSizeDef} + +\junicodevf@newfont{\jLightSmCondItalic}{JunicodeVF-Italic}{\LtSmCondDef}{\LtSmCondSizeDef} + +\junicodevf@newfont{\jLightSmExp}{JunicodeVF}{\LtSmExpDef}{\LtSmExpSizeDef} + +\junicodevf@newfont{\jLightSmExpItalic}{JunicodeVF-Italic}{\LtSmExpDef}{\LtSmExpSizeDef} + +\junicodevf@newfont{\jLightExp}{JunicodeVF}{\LtExpDef}{\LtExpSizeDef} + +\junicodevf@newfont{\jLightExpItalic}{JunicodeVF-Italic}{\LtExpDef}{\LtExpSizeDef} + +% Medium faces + +\junicodevf@newfont{\jMedium}{JunicodeVF}{\MmDef}{\MmSizeDef} + +\junicodevf@newfont{\jMediumItalic}{JunicodeVF-Italic}{\MmDef}{\MmSizeDef} + +\junicodevf@newfont{\jMediumCond}{JunicodeVF}{\MmCondDef}{\MmCondSizeDef} + +\junicodevf@newfont{\jMediumCond}{JunicodeVF-Italic}{\MmCondDef}{\MmCondSizeDef} + +\junicodevf@newfont{\jMediumSmCond}{JunicodeVF}{\MmSmCondDef}{\MmSmCondSizeDef} + +\junicodevf@newfont{\jMediumSmCondItalic}{JunicodeVF-Italic}{\MmSmCondDef}{\MmSmCondSizeDef} + +\junicodevf@newfont{\jMediumSmExp}{JunicodeVF}{\MmSmExpDef}{\MmSmExpSizeDef} + +\junicodevf@newfont{\jMediumSmExpItalic}{JunicodeVF-Italic}{\MmSmExpDef}{\MmSmExpSizeDef} + +\junicodevf@newfont{\jMediumExp}{JunicodeVF}{\MmExpDef}{\MmExpSizeDef} + +\junicodevf@newfont{\jMediumExpItalic}{JunicodeVF-Italic}{\MmExpDef}{\MmExpSizeDef} + +% Semibold faces + +\junicodevf@newfont{\jSmbold}{JunicodeVF}{\SmBdDef}{\SmBdSizeDef} + +\junicodevf@newfont{\jSmboldItalic}{JunicodeVF-Italic}{\SmBdDef}{\SmBdSizeDef} + +\junicodevf@newfont{\jSmboldCond}{JunicodeVF}{\SmBdCondDef}{\SmBdCondSizeDef} + +\junicodevf@newfont{\jSmboldCondItalic}{JunicodeVF-Italic}{\SmBdCondDef}{\SmBdCondSizeDef} + +\junicodevf@newfont{\jSmboldSmCond}{JunicodeVF}{\SmBdSmCondDef}{\SmBdSmCondSizeDef} + +\junicodevf@newfont{\jSmboldSmCondItalic}{JunicodeVF-Italic}{\SmBdSmCondDef}{\SmBdSmCondSizeDef} + +\junicodevf@newfont{\jSmboldSmExp}{JunicodeVF}{\SmBdSmExpDef}{\SmBdSmExpSizeDef} + +\junicodevf@newfont{\jSmboldSmExpItalic}{JunicodeVF-Italic}{\SmBdSmExpDef}{\SmBdSmExpSizeDef} + +\junicodevf@newfont{\jSmboldExp}{JunicodeVF}{\SmBdExpDef}{\SmBdExpSizeDef} + +\junicodevf@newfont{\jSmboldExpItalic}{JunicodeVF-Italic}{\SmBdExpDef}{\SmBdExpSizeDef} + +% Bold faces + +\junicodevf@newfont{\jBold}{JunicodeVF}{\BdDef}{\BdSizeDef} + +\junicodevf@newfont{\jBoldItalic}{JunicodeVF-Italic}{\BdDef}{\BdSizeDef} + +\junicodevf@newfont{\jBoldCond}{JunicodeVF}{\BdCondDef}{\BdCondSizeDef} + +\junicodevf@newfont{\jBoldCondItalic}{JunicodeVF-Italic}{\BdCondDef}{\BdCondSizeDef} + +\junicodevf@newfont{\jBoldSmCond}{JunicodeVF}{\BdSmCondDef}{\BdSmCondSizeDef} + +\junicodevf@newfont{\jBoldSmCondItalic}{JunicodeVF-Italic}{\BdSmCondDef}{\BdSmCondSizeDef} + +\junicodevf@newfont{\jBoldSmExp}{JunicodeVF}{\BdSmExpDef}{\BdSmExpSizeDef} + +\junicodevf@newfont{\jBoldSmExpItalic}{JunicodeVF-Italic}{\BdSmExpDef}{\BdSmExpSizeDef} + +\junicodevf@newfont{\jBoldExp}{JunicodeVF}{\BdExpDef}{\BdExpSizeDef} + +\junicodevf@newfont{\jBoldExpItalic}{JunicodeVF-Italic}{\BdExpDef}{\BdExpSizeDef} + +% Enlarged faces + +\setfontface\EnlargedOne{JunicodeVF}[ + Renderer = HarfBuzz, + \ENLAOneDef +] + +\setfontface\EnlargedOneItalic{JunicodeVF-Italic}[ + Renderer = HarfBuzz, + \ENLAOneDef +] + +\setfontface\EnlargedTwo{JunicodeVF}[ + Renderer = HarfBuzz, + \ENLATwoDef +] + +\setfontface\EnlargedTwoItalic{JunicodeVF-Italic}[ + Renderer = HarfBuzz, + \ENLATwoDef +] + +\setfontface\EnlargedThree{JunicodeVF}[ + Renderer = HarfBuzz, + \ENLAThreeDef +] + +\setfontface\EnlargedThreeItalic{JunicodeVF-Italic}[ + Renderer = HarfBuzz, + \ENLAThreeDef +] + +%\setfontface\EnlargedFour{JunicodeVF}[ +% Renderer = HarfBuzz, +% \ENLAThreeDef +%] + +%\setfontface\EnlargedFourItalic{JunicodeVF-Italic}[ +% Renderer = HarfBuzz, +% \ENLAThreeDef +%] + + +% Convenience commands for non-verbose access to the cvNN features. +% See also the "jcv" mnemonics below. + +\newcommand{\textcv}[3][0]{{\addfontfeature{CharacterVariant=#2:#1}#3}} + +\newcommand{\jcv}[2][0]{\addfontfeature{CharacterVariant=#2:#1}} + +% Convenience commands for accessing the Stylistic Sets. These are +% intended to be mnemonic. + +\newcommand{\AltThornEth}{\addfontfeature{StylisticSet=1}} % ss01 + +\newcommand{\textAltThornEth}[1]{{\addfontfeature{StylisticSet=1}#1}} + +\newcommand{\InsularLetterForms}{\addfontfeature{StylisticSet=2}} % ss02 + +\newcommand{\textInsularLetterForms}[1]{{\addfontfeature{StylisticSet=2}#1}} + +\newcommand{\IPAAlternates}{\addfontfeature{StylisticSet=3}} % ss03 + +\newcommand{\textIPAAlternates}[1]{{\addfontfeature{StylisticSet=3}#1}} + +\newcommand{\HighOverline}{\addfontfeature{StylisticSet=4}} % ss04 + +\newcommand{\textHighOverline}[1]{{\addfontfeature{StylisticSet=4}#1}} + +\newcommand{\MediumHighOverline}{\addfontfeature{StylisticSet=5}} % ss05 + +\newcommand{\textMediumHighOverline}[1]{{\addfontfeature{StylisticSet=5}#1}} + +\newcommand{\EnlargedMinuscules}{\addfontfeature{StylisticSet=6}} % ss06 + +\newcommand{\textEnlargedMinuscules}[1]{\addfontfeature{{StylisticSet=6}#1}} + +\newcommand{\Underdotted}{\addfontfeature{StylisticSet=7}} % ss07 + +\newcommand{\textUnderdotted}[1]{{\addfontfeature{StylisticSet=7}#1}} + +\newcommand{\ContextualLongS}{\addfontfeature{StylisticSet=8}} % ss08 + +\newcommand{\textContextualLongS}[1]{{\addfontfeature{StylisticSet=8}#1}} + +\newcommand{\AlternateFigures}{\addfontfeature{StylisticSet=9}} % ss09 + +\newcommand{\textAlternateFigures}[1]{{\addfontfeature{StylisticSet=9}#1}} + +\newcommand{\EntitiesAndTags}{\addfontfeature{StylisticSet=10}} % ss10 + +\newcommand{\textEntitiesAndTags}[1]{{\addfontfeature{StylisticSet=10}#1}} + +% \newcommand{\}{} % ss11 not yet used + +\newcommand{\EarlyEnglishFuthorc}{\addfontfeature{StylisticSet=12}} % ss12 + +\newcommand{\textEarlyEnglishFuthorc}[1]{{\addfontfeature{StylisticSet=12}#1}} + +\newcommand{\ElderFuthark}{\addfontfeature{StylisticSet=13}} % ss13 + +\newcommand{\textElderFuthark}[1]{{\addfontfeature{StylisticSet=13}#1}} + +\newcommand{\YoungerFuthark}{\addfontfeature{StylisticSet=14}} % ss14 + +\newcommand{\textYoungerFuthark}[1]{{\addfontfeature{StylisticSet=14}#1}} + +\newcommand{\LongBranchToShortTwig}{\addfontfeature{StylisticSet=15}} % ss15 + +\newcommand{\textLongBranchToShortTwig}[1]{{\addfontfeature{StylisticSet=15}#1}} + +\newcommand{\ContextualRRotunda}{\addfontfeature{StylisticSet=16}} % ss16 + +\newcommand{\textContextualRRotunda}[1]{{\addfontfeature{StylisticSet=16}#1}} + +\newcommand{\RareDigraphs}{\addfontfeature{StylisticSet=17}} % ss17 + +\newcommand{\textRareDigraphs}[1]{{\addfontfeature{StylisticSet=17}#1}} + +\newcommand{\OldStylePunctuation}{\addfontfeature{StylisticSet=18}} % ss18 + +\newcommand{\textOldStylePunctuation}[1]{{\addfontfeature{StylisticSet=18}#1}} + +\newcommand{\LatinToGothic}{\addfontfeature{StylisticSet=19}} % ss19 + +\newcommand{\textLatinToGothic}[1]{{\addfontfeature{StylisticSet=19}#1}} + +\newcommand{\LowDiacritics}{\addfontfeature{StylisticSet=20}} % ss20 + +\newcommand{\textLowDiacritics}[1]{{\addfontfeature{StylisticSet=20}#1}} + +% Tiny macros for providing mnemonic access to the cvNN features. + +\def\jcvA{1} +\def\jcva{2} +\def\jcvB{3} +\def\jcvb{4} +\def\jcvC{5} +\def\jcvc{6} +\def\jcvD{7} +\def\jcvd{8} +\def\jcvE{9} +\def\jcve{10} +\def\jcvF{11} +\def\jcvf{12} +\def\jcvG{13} +\def\jcvg{14} +\def\jcvH{15} +\def\jcvh{16} +\def\jcvI{17} +\def\jcvi{18} +\def\jcvJ{19} +\def\jcvj{20} +\def\jcvK{21} +\def\jcvk{22} +\def\jcvL{23} +\def\jcvl{24} +\def\jcvM{25} +\def\jcvm{26} +\def\jcvN{27} +\def\jcvn{28} +\def\jcvO{29} +\def\jcvo{30} +\def\jcvP{31} +\def\jcvp{32} +\def\jcvQ{33} +\def\jcvq{34} +\def\jcvR{35} +\def\jcvr{36} +\def\jcvS{37} +\def\jcvs{38} +\def\jcvT{39} +\def\jcvt{40} +\def\jcvU{41} +\def\jcvu{42} +\def\jcvV{43} +\def\jcvv{44} +\def\jcvW{45} +\def\jcvw{46} +\def\jcvX{47} +\def\jcvx{48} +\def\jcvY{49} +\def\jcvy{50} +\def\jcvZ{51} +\def\jcvz{52} +\def\jcvAogonek{53} +\def\jcvaogonek{54} +\def\jcvaa{55} +\def\jcvAE{56} +\def\jcvae{57} +\def\jcvAO{58} +\def\jcvao{59} +\def\jcvav{60} +\def\jcvdbar{61} +\def\jcvdcroat{61} +\def\jcvEogonek{62} +\def\jcvYogh{63} +\def\jcvlhighstroke{64} %somehow escaped the documentation +\def\jcvoPolish{65} +\def\jcvthorncrossed{66} +\def\jcvspacingzigzag{67} +\def\jcvglottal{68} +\def\jcvTironianEt{69} +\def\jcvperiod{70} +\def\jcvmiddot{71} +\def\jcvcomma{72} +\def\jcvsemicolon{73} +\def\jcvpunctuselevatus{74} +\def\jcvexclam{75} +\def\jcvquestion{76} +\def\jcvASCIItilde{77} +\def\jcvasterisk{78} +\def\jcvslash{79} +\def\jcvrum{80} +\def\jcvcombiningzigzag{81} +\def\jcvspacingusabbrev{82} +\def\jcvetabbrev{83} +\def\jcvmacron{84} +\def\jcvcombiningopena{85} +\def\jcvcombininginsulard{86} +\def\jcvcombiningrrotunda{87} +\def\jcvcombiningdieresis{88} +\def\jcvcombiningoverline{89} +\def\jcvHcombiningdoublemacron{90} +\def\jcvEng{91} +\def\jcvbrevebelow{92} +\def\jcvcurrency{93} +\def\jcvlb{94} +\def\jcvsterling{95} +\def\jcvGermanpenny{96} +\def\jcvflorin{97} +\def\jcvounce{98} +%\def\notyetused{99} diff --git a/TeX/junicode-package.pdf b/TeX/junicode-package.pdf index 43635a047..3e572814e 100644 Binary files a/TeX/junicode-package.pdf and b/TeX/junicode-package.pdf differ diff --git a/TeX/junicode-package.tex b/TeX/junicode-package.tex index bc0eab467..9ee35d317 100644 --- a/TeX/junicode-package.tex +++ b/TeX/junicode-package.tex @@ -42,6 +42,10 @@ \section{Loading Junicode} \item[semiexpanded] The width of the type is wider than the default but narrower than expanded. Note that light type cannot be semiexpanded: using both the light and the semiexpanded options will produce an error. +\item[proportional] Numbers in the document will be proportionally spaced. This is the default. +\item[tabular] Numbers will be tabular or monospaced. +\item[oldstyle] Numbers will be old-style, harmonizing with lowercase letters. +\item[lining] Numbers will be lining, harmonizing with uppercase letters. \end{description} \section{Selecting Alternate Styles} diff --git a/TeX/junicodevf-package.pdf b/TeX/junicodevf-package.pdf new file mode 100644 index 000000000..86627e763 Binary files /dev/null and b/TeX/junicodevf-package.pdf differ diff --git a/TeX/junicodevf-package.tex b/TeX/junicodevf-package.tex new file mode 100644 index 000000000..4cad39973 --- /dev/null +++ b/TeX/junicodevf-package.tex @@ -0,0 +1,588 @@ +\documentclass[12pt]{article} + + +%\usepackage{microtype} +\usepackage{multicol} +\usepackage{supertabular} +\usepackage[table,dvipsnames]{xcolor} +%\usepackage{metalogo} +%\newcommand{\ltech}{Lua\kern-1.5pt\TeX} +%\newcommand{\lltech}{Lua\LaTeX} +\newcommand{\ltech}{LuaTeX} +\newcommand{\lltech}{LuaLaTeX} +\definecolor{myLightBlue}{RGB}{203,228,249} +\newcommand{\bluerow}{\rowcolor{myLightBlue}} + +\newcommand{\SizeRecord}[3]{{Size={#1},RawFeature={axis={wght=#2,wdth=#3}}}} +\usepackage[ + MainFeatures={StylisticSet=9} +]{JunicodeVF} +\linespread{1.1} +\title{Junicode VF} +\author{Peter S. Baker} +\date{\today} + +\tolerance=1500 + +\begin{document} +\maketitle + +\section{Introduction} + +This package supports Junicode VF, the variable \textbf{version} of Junicode +(2.204 or higher) for \lltech. Junicode VF is not yet in CTAN, so you must +install the font in your system in order to use it. This package loads +fontspec, so it is not necessary to load that package separately, even if you are using +other fonts alongside Junicode VF. + +\section{Loading JunicodeVF} + +Load the package in the usual way, with {\small\verb|\usepackage{JunicodeVF}|}. +By default, the main font is not a set of fixed outlines that can change only +by being scaled, but rather a set of +\emph{variable} outlines where glyphs sized for footnotes (typically about 8 points) are a +little heavier and wider than glyphs sized for block quotations (10 points), +those are heavier and wider than glyphs for the main +text (11 or 12 points), and those are heavier and wider +than glyphs for headers (18 points and higher):\\[0.5ex] + +\noindent {\footnotesize This text is for footnotes,}\\ +{\small this is for block quotations,}\\ +this is for main text,\\[0.2ex] +{\Large and this is for headers.}\\[0.5ex] + +\noindent It's not easy to see the difference between sizes in a brief example +like this one, but the effect is to promote legibility at small +sizes and prevent text blocks from looking +either darker or lighter than the main text on a page.\footnote{% +For example, on a typical LaTeX page a footnote like this, looked at as a block +of gray, is usually a little lighter than the main text. But on this page, the +“color” of the footnote matches that of the main text. The variation in glyph +shape responsible for this effect approximates the way letters in metal type were +typically wider and heavier at small sizes.} If the package's default settings +don't work for you, you can substitute your own, as explained below. + +The {\small\verb|\usepackage|} command for this package can take many options, +which will be discussed in the appropriate sections below. However, the +package will work perfectly well with no options at all. + +\section{Customizing Numbers} + +Junicode's default numbers are \textbf{oldstyle proportional} (1234). You can change this +default for the entire document with either or both of the options \textbf{lining} and +\textbf{tabular}: + +\begin{center} + {\small\verb|\usepackage[lining,tabular]{JunicodeVF}|} +\end{center} + +\noindent You can pass other options affecting the numbers of the four standard +styles (Regular, Italic, Bold, Bold Italic) of the main text font via the +\textbf{MainFeatures} option: + +\begin{center} + {\small\verb|\usepackage[MainFeatures={StylisticSet=9}]{JunicodeVF}|} +\end{center} + +\noindent Like most of this package's options, \textbf{MainFeatures} is a way of passing +features to fontspec's various font-setting commands. In this case, Stylistic +Set 9 is Junicode's "Alternate Figures" feature, which substitutes more +modern shapes for certain oldstyle numbers (it is used in this document). + +\section{Customizing the Main Font} + +The main font is organized into the four traditional styles (Regular, Italic, +Bold, Bold Italic), which can be invoked in the usual ways +({\small\verb|\textit{}|}, etc.). As explained above, however, each of these +styles varies with the font size, so that the actual number of styles is +potentially very large. + +This package's default styles stay fairly close to what you would get with +Junicode's static fonts. But you can customize these styles in a number of ways. +For example, the style used for the body text of the \textit{Junicode Manual} +is wider than the default, giving the text a lighter and more open look. You +can get that look (or any other) by passing a \textbf{SizeFeatures} option for +each of the four styles: + +\footnotesize +\begin{verbatim} +\usepackage[ + MainFeatures={StylisticSet=9}, + MainRegularSizeFeatures={ + SizeFeatures={ + {Size={-8.6}, RawFeature={axis={wght=550,wdth=120}}}, + {Size={8.6-10.99}, RawFeature={axis={wght=475,wdth=115}}}, + {Size={10.99-21.59}, RawFeature={axis={wght=400,wdth=112.5}}}, + {Size={21.59-}, RawFeature={axis={wght=351,wdth=100}}} + } + }, + MainItalicSizeFeatures={ + SizeFeatures={ + {Size={-8.6}, RawFeature={axis={wght=550,wdth=118}}}, + {Size={8.6-10.99}, RawFeature={axis={wght=475,wdth=114}}}, + {Size={10.99-21.59}, RawFeature={axis={wght=450,wdth=111}}}, + {Size={21.59-}, RawFeature={axis={wght=372,wdth=98}}} + } + }, + MainBoldSizeFeatures={ + SizeFeatures={ + {Size={-8.6}, RawFeature={axis={wght=700,wdth=120}}}, + {Size={8.6-10.99}, RawFeature={axis={wght=700,wdth=115}}}, + {Size={10.99-21.59}, RawFeature={axis={wght=650,wdth=112.5}}}, + {Size={21.59-}, RawFeature={axis={wght=600,wdth=100}}} + } + }, + MainBoldItalicSizeFeatures={ + SizeFeatures={ + {Size={-8.6}, RawFeature={axis={wght=700,wdth=118}}}, + {Size={8.6-10.99}, RawFeature={axis={wght=700,wdth=114}}}, + {Size={10.99-21.59}, RawFeature={axis={wght=650,wdth=111}}}, + {Size={21.59-}, RawFeature={axis={wght=600,wdth=98}}} + } + } +]{JunicodeVF} +\end{verbatim} +\normalsize + +\noindent This is less intimidating than it looks. With +\textbf{MainRegularSizeFeatures} and the other options for font styles, we pass \textbf{SizeFeatures} +to fontspec’s {\small\verb|\setmainfont|} command---precisely the same options +we would use if we were addressing fontspec directly. +For each size-range, \textbf{RawFeature} defines values for the font’s \textbf{wght} (Weight) +and \textbf{wdth} (Width) axes.\footnote{There is also a third axis, Enlarged (ENLA), +but this is highly specialized and won't be useful in most documents. It is +discussed separately below.} Possible values for \textbf{wght} are +300–700 (400 is the default), and possible values for \textbf{wdth} are 75–125 +(100 is the default). + +If you like, you can simplify these options by defining a new command: + +\footnotesize +\begin{verbatim} +\newcommand{\SizeRecord}[3]{ + {Size={#1},RawFeature={axis={wght=#2,wdth=#3}}} +} +\usepackage[ + MainFeatures={StylisticSet=10}, + MainRegularSizeFeatures={ + SizeFeatures={ + \SizeRecord{-8.59}{550}{120}, + \SizeRecord{8.59-10.99}{475}{115}, + \SizeRecord{10.99-21.59}{400}{112.5}, + \SizeRecord{21.59-}{475}{115} + } + }, + . . . +]{JunicodeVF} +\end{verbatim} +\normalsize + +\noindent In addition to options like \textbf{MainRegularSizeFeatures}, +you can pass options for features other than \textbf{SizeFeatures}. +These are \textbf{MainRegularFeatures}, \textbf{MainItalicFeatures}, +and so on---named like the other options, but without \textbf{Size}. +For example, if you want Discretionary Ligatures to be on only for the +Regular style, simply add a \textbf{MainRegularFeatures} option: + +\footnotesize +\begin{verbatim} +\newcommand{\SizeRecord}[3]{ + {Size={#1},RawFeature={axis={wght=#2,wdth=#3}}} +} +\usepackage[ + MainFeatures={StylisticSet=10}, + MainRegularFeatures={Ligatures=Discretionary}, + MainRegularSizeFeatures={ + SizeFeatures={ + \SizeRecord{-8.59}{550}{120}, + \SizeRecord{8.59-10.99}{475}{115}, + \SizeRecord{10.99-21.59}{400}{112.5}, + \SizeRecord{21.59-}{475}{115} + } + }, + . . . +]{JunicodeVF} +\end{verbatim} +\normalsize + +\section{Selecting Alternate Styles} + +In addition to the document's main font, you can choose from fifty +predefined styles. These match the thirty-eight styles supplied by the +static version of Junicode, plus twelve more. The commands for shifting to these +styles are as follows (of the italic styles, only the base “jItalic” is listed; +append “Italic” to any of the others, except “Regular”): + +\begin{multicols}{3} + \jCond\textbackslash jRegular + + \textbackslash jItalic + + \textbackslash jCond + + \textbackslash jSmCond + + \textbackslash jSmExp + + \textbackslash jExp + + \textbackslash jLight + + \textbackslash jLightCond + + \textbackslash jLightSmCond + + \textbackslash jLightSmExp + + \textbackslash jLightExp + + \textbackslash jMedium + + \textbackslash jMediumCond + + \textbackslash jMediumSmCond + + \textbackslash jMediumSmExp + + \textbackslash jMediumExp + + \textbackslash jSmbold + + \textbackslash jSmboldCond + + \textbackslash jSmboldSmCond + + \textbackslash jSmboldSmExp + + \textbackslash jSmboldExp + + \textbackslash jBold + + \textbackslash jBoldCond + + \textbackslash jBoldSmCond + + \textbackslash jBoldSmExp + + \textbackslash jBoldExp + +\end{multicols} + +\noindent These commands will be self-explanatory if you bear in mind Junicode's +abbreviations for style names: Cond=Condensed, Exp=Expanded, Sm=Semi. Use +them to shift temporarily to a style other than that of the main text. +For example, to shift briefly to the Light Condensed style for a short phrase, use +this code: +\begin{center} +{\small\verb|{\jLightCond a short phrase}|}. +\end{center} +The result: {\jLightCond a short phrase}. + +To add features to any of these styles, use the style name +(without the prefixed \textbf{j} and with \textbf{Features} appended) +as a package option. To change the size features for the style, +do the same, but with \textbf{SizeFeatures} instead of \textbf{Features} +appended. For example: + +\footnotesize +\begin{verbatim} + \usepackage[ + LightCondFeatures={ + Language=English, + StylisticSet=2 + }, + LightCondSizeFeatures={ + SizeFeatures={ + Size={5-},RawFeature={axis={wght=325,wdth=85}} + } + } + ]{JunicodeVF} +\end{verbatim} +\normalsize + +\noindent This will shift text in the Light Condensed style from default to insular +letter-shapes and slightly increase the weight and width of all glyphs in that style. +Here the \textbf{SizeFeatures} section is very simple (as in the package file itself), +but you can have as many size ranges as you want, just as you can for the main font. + +\section{The Enlarge Axis} + +Junicode's Enlarge axis is for a special purpose: to represent the enlarged +minuscule letters that often begin sentences and other textual units in medieval manuscripts. +Thus it should normally be applied only to single letters, not to runs of text. + +This package defines three different styles for the Enlarge axis, in three sizes:\\[0.5ex] + +\noindent\textbackslash EnlargedOne {\EnlargedOne b}\\ +\textbackslash EnlargedTwo {\EnlargedTwo b}\\ +\textbackslash EnlargedThree {\EnlargedThree b}\\[0.5ex] + +\noindent You can produce an italic version of the enlarged minuscule by appending “Italic” to +the style name. You can also customize these styles just as you can the other alternate +styles. The only difference is that you need to supply a value for the Enlarge axis (ENLA) +as well as the others. Again, a command for this purpose may help: + +\footnotesize +\begin{verbatim} +\newcommand{\ENLASizeRecord}[4]{ + {Size={#1},RawFeature={axis={wght=#2,wdth=#3,ENLA=#4}}} +} +\usepackage[ENLAOneFeatures={ + SizeFeatures={ + \ENLASizeRecord{5-}{600}{100}{65} + } +}]{JunicodeVF} +\end{verbatim} +\normalsize + +\section{Other Commands} + +This package's other commands are offered as conveniences---shorter and more +mnemonic than the fontspec commands they invoke (though of course all fonspec commands +remain available). Each of these commands +also has a corresponding “text” command that works like +{\small\verb|\textit{}|}—that is, it takes +as its sole argument the text to which the command will be applied. Each “text” command +consists of the main command with “text” prefixed—for example, +{\small\verb|\textInsularLetterForms{}|} +corresponding to {\small\verb|\InsularLetterForms|}. For a fuller account of the OpenType features +applied by these commands, see Chapter 4 of the \textit{Junicode Manual}, “Feature Reference.” + +\begin{center} +\tablehead{\hline} +\tabletail{\hline} +\begin{supertabular}{| l | p{2.75in} |} +\bluerow\textbackslash AltThornEth & Applies ss01, Alternate thorn and eth.\\ +\textbackslash InsularLetterForms & Applies ss02, Insular letter-forms.\\ +\bluerow\textbackslash IPAAlternates & Applies ss03, IPA alternates.\\ +\textbackslash HighOverline & Applies ss04, High Overline.\\ +\bluerow\textbackslash MediumHighOverline & Applies ss05, Medium-high Overline.\\ +\textbackslash EnlargedMinuscules & Applies ss06, Enlarged minuscules.\\ +\bluerow\textbackslash Underdotted & Applies ss07, Underdotted.\\ +\textbackslash ContextualLongS & Applies ss08, Contextual long s.\\ +\bluerow\textbackslash AlternateFigures & Applies ss09, Alternate Figures.\\ +\textbackslash EntitiesAndTags & Applies ss10, Entities and Tags.\\ +\bluerow\textbackslash EarlyEnglishFuthorc & Applies ss12, Early English Futhorc.\\ +\textbackslash ElderFuthark & Applies ss13, Elder Futhark.\\ +\bluerow\textbackslash YoungerFuthark & Applies ss14, Younger Futhark.\\ +\textbackslash LongBranchToShortTwig & Applies ss15, Long Branch to Short Twig.\\ +\bluerow\textbackslash ContextualRRotunda & Applies ss16, Contextual r rotunda.\\ +\textbackslash RareDigraphs & Applies ss17, Rare Digraphs.\\ +\bluerow\textbackslash OldStylePunctuation & Applies ss18, Old-style Punctuation.\\ +\textbackslash LatinToGothic & Applies ss19, Latin to Gothic.\\ +\bluerow\textbackslash LowDiacritics & Applies ss20, Low Diacritics.\\ +\textbackslash jcv, \textbackslash textcv & Applies any Character Variant feature (see below).\\ +\end{supertabular} +\end{center} + +\noindent The syntax of \textbackslash jcv +is {\small\verb|\jcv[num]{num}|}, where the second (required) argument is the number of the Character Variant feature, +and the first (optional) argument is an index into the variants provided by that feature (starting with zero, the default). +\textbackslash textcv takes an additional required argument ({\small\verb|\textcv[num]{num}{text}|}—the text to which the +feature should be applied. + +Character Variant features can also be selected with mnemonics, listed below. For example, a feature for +lowercase \textbf{a} can be expressed as {\small\verb|\textcv[2]{\jcva}{a}|}, yielding \textbf{\textcv[2]{\jcva}{a}}. + +\begin{multicols}{3} +\small\jCond\textbackslash jcvA + +\textbackslash jcva + +\textbackslash jcvB + +\textbackslash jcvb + +\textbackslash jcvC + +\textbackslash jcvc + +\textbackslash jcvD + +\textbackslash jcvd + +\textbackslash jcvE + +\textbackslash jcve + +\textbackslash jcvF + +\textbackslash jcvf + +\textbackslash jcvG + +\textbackslash jcvg + +\textbackslash jcvH + +\textbackslash jcvh + +\textbackslash jcvI + +\textbackslash jcvi + +\textbackslash jcvJ + +\textbackslash jcvj + +\textbackslash jcvK + +\textbackslash jcvk + +\textbackslash jcvL + +\textbackslash jcvl + +\textbackslash jcvM + +\textbackslash jcvm + +\textbackslash jcvN + +\textbackslash jcvn + +\textbackslash jcvO + +\textbackslash jcvo + +\textbackslash jcvP + +\textbackslash jcvp + +\textbackslash jcvQ + +\textbackslash jcvq + +\textbackslash jcvR + +\textbackslash jcvr + +\textbackslash jcvS + +\textbackslash jcvs + +\textbackslash jcvT + +\textbackslash jcvt + +\textbackslash jcvU + +\textbackslash jcvu + +\textbackslash jcvV + +\textbackslash jcvv + +\textbackslash jcvW + +\textbackslash jcvw + +\textbackslash jcvX + +\textbackslash jcvx + +\textbackslash jcvY + +\textbackslash jcvy + +\textbackslash jcvZ + +\textbackslash jcvz + +\textbackslash jcvaa + +\textbackslash jcvAE + +\textbackslash jcvae + +\textbackslash jcvAO + +\textbackslash jcvao + +\textbackslash jcvAogonek + +\textbackslash jcvaogonek + +\textbackslash jcvASCIItilde + +\textbackslash jcvasterisk + +\textbackslash jcvav + +\textbackslash jcvbrevebelow + +\textbackslash jcvcombiningdieresis + +\textbackslash jcvcombiningdoublemacron + +\textbackslash jcvcombininginsulard + +\textbackslash jcvcombiningopena + +\textbackslash jcvcombiningoverline + +\textbackslash jcvcombiningrrotunda + +\textbackslash jcvcombiningzigzag + +\textbackslash jcvcomma + +\textbackslash jcvcurrency + +\textbackslash jcvdbar + +\textbackslash jcvdcroat + +\textbackslash jcvEng + +\textbackslash jcvEogonek + +\textbackslash jcvetabbrev + +\textbackslash jcvexclam + +\textbackslash jcvflorin + +\textbackslash jcvGermanpenny + +\textbackslash jcvglottal + +\textbackslash jcvlb + +\textbackslash jcvlhighstroke %somehow escaped the documentation + +\textbackslash jcvmacron + +\textbackslash jcvmiddot + +\textbackslash jcvoPolish + +\textbackslash jcvounce + +\textbackslash jcvperiod + +\textbackslash jcvpunctuselevatus + +\textbackslash jcvquestion + +\textbackslash jcvrum + +\textbackslash jcvsemicolon + +\textbackslash jcvslash + +\textbackslash jcvspacingusabbrev + +\textbackslash jcvspacingzigzag + +\textbackslash jcvsterling + +\textbackslash jcvthorncrossed + +\textbackslash jcvTironianEt + +\textbackslash jcvYogh +\end{multicols} + + +\end{document} \ No newline at end of file