diff options
Diffstat (limited to 'fonts/junicodevf/doc/junicodevf-package.tex')
-rw-r--r-- | fonts/junicodevf/doc/junicodevf-package.tex | 628 |
1 files changed, 628 insertions, 0 deletions
diff --git a/fonts/junicodevf/doc/junicodevf-package.tex b/fonts/junicodevf/doc/junicodevf-package.tex new file mode 100644 index 0000000000..b753aa4fb2 --- /dev/null +++ b/fonts/junicodevf/doc/junicodevf-package.tex @@ -0,0 +1,628 @@ +\documentclass[12pt]{article} + + +\usepackage{microtype} +\usepackage{multicol} +\usepackage{supertabular} +\usepackage[table,dvipsnames]{xcolor} +\definecolor{myLightBlue}{RGB}{203,228,249} +\definecolor{BrickRed}{RGB}{146,18,6} +\definecolor{RViolet}{RGB}{70,18,87} +\definecolor{GunMetalGray}{RGB}{42,52,57} +\definecolor{myRed}{rgb}{0.5,0,0} +\newcommand{\bluerow}{\rowcolor{myLightBlue}} + +\newcommand{\SizeRecord}[3]{{Size={#1},RawFeature={axis={wght=#2,wdth=#3}}}} +\usepackage[semiexpanded,weightadjustment=35,widthadjustment=-5, + MainFeatures={StylisticSet=9} +]{junicodevf} +\setfontface\samplefootnote{JunicodeVF}[ + Renderer = HarfBuzz, + SizeFeatures = {{Size={5-}, RawFeature={axis={wght=490,wdth=115}}}}, +] +\setfontface\sampleheader{JunicodeVF}[ + Renderer = HarfBuzz, + SizeFeatures = {{Size={5-}, RawFeature={axis={wght=350,wdth=90}}}} +] +\usepackage{metalogo} +\usepackage{titlesec} +\titleformat{\section}[hang]{\Large\color{GunMetalGray}}{\thesection.}{1em}{} +\newcommand{\ltech}{Lua\kern-1.5pt\TeX} +\newcommand{\lltech}{Lua\LaTeX} +\setmonofont{Fira Mono}[Scale=MatchLowercase,Numbers=Lowercase] +\setsansfont{Fira Sans}[Scale=MatchLowercase,Numbers=Lowercase] +\usepackage{fancyhdr} +\pagestyle{fancy} +\footskip = 30pt +\headsep = 30pt +\renewcommand{\headrule}{} +\fancyhead[L]{} +\fancyhead[C]{} +\fancyhead[R]{} +\fancyfoot[L]{} +\fancyfoot[C]{} +\fancyfoot[R]{} +\newcommand{\fspec}{{\sffamily fontspec}} +\newcommand{\src}[1]{{\color{BrickRed}\texttt{#1}}} +\newcommand{\option}[1]{{\color{RViolet}\textbf{#1}}} +\linespread{1.1} +\title{Junicode VF} +\author{Peter S. Baker} +\date{\today} +\tolerance=1500 + +\begin{document} + +\maketitle + +\section{Introduction} + +\pagestyle{fancy} +\fancyhead[CE]{\scshape\color{myRed} {\addfontfeatures{Numbers=OldStyle}\thepage}\hspace{10pt}% +\addfontfeature{Letters=UppercaseSmallCaps}\leftmark} +\fancyhead[CO]{\scshape\color{myRed} {junicode}\hspace{10pt}{\addfontfeatures{Numbers=OldStyle}\thepage}} + +This package supports Junicode VF, the variable version of Junicode +(2.204 or higher) for \lltech. + +A variable font is one with glyphs that can change not only their size, but also their +shape. These changes in shape are defined in one or more \textbf{axes}---for example, +\textbf{Weight} (Light, Bold, etc.) and \textbf{Width} (Condensed, Expanded). A traditional +“static” font family also has axes, but as every stylistic variant of a static family +requires a separate font file, +the number of available styles is severely constrained. A variable font, by contrast, +offers a practically limitless number of styles in a single file: you choose a style +by making a selection of number values (usually called “coordinates”) from the axes, +of which Junicode has three: + +\begin{description} + \item[Weight] Possible weights run from Light (300) to ExtraBold (700). By + convention, Regular is 400. + \item[Width] Widths run from 75 (Condensed) to 125 (Expanded). Stroke widths remain + the same as the overall width of the character changes, with the result that + Condensed type looks darker than Regular or Expanded. + \item[Enlarge] This axis is for reproducing the enlarged minuscules of medieval + manuscripts---that is, letters that are lowercase in shape and intermediate between + upper- and lowercase in size, used to introduce various textual units (see section + 5 below). +\end{description} + +\section{Loading Junicode VF} + +Load the package in the usual way, with {\color{BrickRed}\verb|\usepackage{junicodevf}|}, to +set Junicode VF as the main font. +By default, the main font is not a set of static outlines whose proportions +remain the same though they can be scaled, but rather a set of +\emph{variable} outlines that become relatively narrower and lighter as the +text size increases. You can see the difference if we scale a line of footnote +text and a line of header text to the same {\color{BrickRed}\verb|\large|} size:\\[0.5ex] + +\noindent {\large\samplefootnote Here is some sample text for footnotes (usually about 8pt).}\\[0.2ex] +{\large\sampleheader Here is some sample text for headers (18pt or larger).}\\[0.5ex] + +\noindent The letter-shapes are markedly different, but on the page they look +pretty much the same, because the purpose of these changes in +shape, in addition to promoting legibility, +is to allow blocks of text in different sizes (headers, main text, +block quotations, footnotes) to coexist on a page without any of them looking too +dark or too light.\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.} Evenness of texture makes text in +different point sizes \emph{look} the same. + +Junicode VF's package options give you a number of ways to fine-tune the look of +your text: + +\begin{description} + \item[light] The weight of the type for the main text is Light. As with the default + weight, and all weights selectable by options, “Light” is a range of weights that varies + with the size of the type. + \item[medium] The weight of the type for the main text is Medium---that is, darker than + Regular but lighter than Semibold. + \item[semibold] The weight of bold type is somewhat lighter than the usual bold. This may be a + good choice if you have selected the \option{light} option. + \item[weightadjustment] Adjusts the weight of the type by adding this number. + For example, if you choose \option{medium} for your document (weight averaging about 500) + and \option{bold} (weight around 700), and also include the option {\color{BrickRed}\verb|weightadjustment=-25|}, + then the weights of medium and bold text will be lightened by 25 (475, 675). + \item[condensed] The width of the type is narrow---about 85\% of the width of the Regular style. + As with the default + width, and all widths selectable by options, "Condensed" is a range of widths that varies + with the size of the type. + \item[semicondensed] The width of the type is wider than condensed but narrower than the default. + \item[expanded] The width of the type is wide---about 125\% of the width of the Regular style. + \item[semiexpanded] The width of the type is wider than Regular but narrower than Expanded. + \item[widthadjustment] Adjusts the width of the type by adding this number. For example, if you + choose \option{semicondensed} for your document (width averaging 87.5), and you also include + the option {\color{BrickRed}\verb|widthadjustment=5|}, then the average width will be 92.5, between + \option{semicondensed} and \option{regular}. + \item[proportional] Numbers in the document will be proportionally spaced. This is the default. + \item[tabular] Numbers will be tabular (monospaced). + \item[oldstyle] Numbers will be old-style, harmonizing with lowercase letters. This is the default. + \item[lining] Numbers will be lining, harmonizing with uppercase letters. +\end{description} + +\section{Customizing the Main Font} + +If the options listed in the previous section don’t give you the effect you’re looking for, this package’s +more advanced options allow you to choose from an effectively infinite number of styles. Do this by passing +OpenType features for your document’s main text or for one or more of the four main styles (Regular, Italic, +Bold, Bold Italic), and also by supplying custom values for the font’s four axes. + +For example, if you want your document to use the conventions observed by early +English typesetters for the distribution of \option{s} and \option{ſ}, load the +package this way: + +\footnotesize +\begin{verbatim} + \usepackage[MainFeatures={ + Language=English, + StylisticSet=8 + }]{junicodevf} +\end{verbatim} +\normalsize + +\noindent If you want to use these conventions only for italic text, use +\option{MainItalicFeatures} instead of \option{MainFeatures}. All of the +features you pass via these options must be valid for \fspec: in fact, +they are passed straight through to \fspec. + +If you want to customize the four basic styles of the main text, use +\option{MainRegularSizeFeatures}, \option{MainItalicSizeFeatures}, and so on. +Each of these defines a list of associative arrays, in which each array in the +list prescribes axis coordinates for a range of sizes. +For example, here are the \textbf{SizeFeatures} for the \textit{Junicode Manual}: + +\footnotesize +\begin{verbatim} + \usepackage[ + MainRegularSizeFeatures={ + {size=8.6,wght=550,wdth=120}, + {size=10.99,wght=475,wdth=115}, + {size=21.59,wght=400,wdth=112.5}, + {size=21.59,wght=351,wdth=100} + }, + MainItalicSizeFeatures={ + {size=8.6,wght=550,wdth=118}, + {size=10.99,wght=475,wdth=114}, + {size=21.59,wght=450,wdth=111}, + {size=21.59,wght=372,wdth=98} + }, + MainBoldSizeFeatures={ + {size=8.6,wght=700,wdth=120}, + {size=10.99,wght=700,wdth=115}, + {size=21.59,wght=650,wdth=112.5}, + {size=21.59,wght=600,wdth=100} + }, + MainBoldItalicSizeFeatures={ + {size=8.6,wght=700,wdth=118}, + {size=10.99,wght=700,wdth=114}, + {size=21.59,wght=650,wdth=111}, + {size=21.59,wght=600,wdth=98} + } + ]{junicodevf} +\end{verbatim} +\normalsize + +\noindent For each array, a \src{size} key is mandatory: any array without one +is ignored. The arrays should be in order of point size. The first array +prescribes axis coordinates for all sizes up to \src{size}, the last array for all sizes +greater than \src{size}, and any intermediate items a range from the previous to the +current \src{size}.\footnote{% +If you want only one size array, make \src{size} improbably low (e.g. 5) and place +a comma after the closing brace of the array.% +} So the ranges covered in each list above are \src{-8.6}, \src{8.6-10.99}, +\src{10.99-21.59}, +and \src{21.59-}.\footnote{Any modification of the default text size (e.g. in the +\src{\textbackslash documentclass} command) can affect the size definitions in these +arrays, with the result that (for example) +\src{10} no longer means exactly “ten points.” You may have to experiment to get these numbers +right.} + +The keys other than \src{size} are the four-letter tags for the font's axes: \src{wght} +(Weight), \src{wdth} (Width), and \src{ENLA} (Enlarge).\footnote{% +By convention, tags for axes defined in the OpenType standard are lowercase; custom axes +are uppercase. Junicode’s \src{ENLA} is a custom axis.% +} When a key +is omitted, the default value for that axis is used. It is up to the user to make sure the values +given for each axis are valid---the package does no checking (but {\fspec} will do a good bit +of checking for you). When SizeFeatures are given in +this way, they override any other options that set or change axis coordinates +(e.g. \option{weightadjustment}). + + +\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 “jRegular”): + +\begin{multicols}{3} + \jCond\textbackslash jRegular + + \textbackslash jItalic + + \textbackslash jCond + + \textbackslash jSmCond + + \textbackslash jSmExp + + \textbackslash jExp + + \textbackslash jLight + + \textbackslash jCondLight + + \textbackslash jSmCondLight + + \textbackslash jSmExpLight + + \textbackslash jExpLight + + \textbackslash jMedium + + \textbackslash jCondMedium + + \textbackslash jSmCondMedium + + \textbackslash jSmExpMedium + + \textbackslash jExpMedium + + \textbackslash jSmbold + + \textbackslash jCondSmbold + + \textbackslash jSmCondSmbold + + \textbackslash jSmExpSmbold + + \textbackslash jExpSmbold + + \textbackslash jBold + + \textbackslash jCondBold + + \textbackslash jSmCondBold + + \textbackslash jSmExpBold + + \textbackslash jExpBold + +\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.\footnote{% +The purpose of these abbreviations is to keep font names under the character-limit +imposed by some systems.} Use +them to shift temporarily to a style other than that of the main text. +For example, to shift to the Condensed Light style for a short phrase, use +this code: +\begin{center} +{\color{BrickRed}\small\verb|{\jCondLight a short phrase}|}. +\end{center} +The result: {\jCondLight a short phrase}. + +To add features to any of these styles, use the style name +(without the prefixed “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: + +\footnotesize +\begin{verbatim} + \usepackage[ + CondLightFeatures={ + Language=English, + StylisticSet=2 + }, + CondLightSizeFeatures={{size=5,wght=325,wdth=80},} + ]{junicodevf} +\end{verbatim} +\normalsize + +\noindent This will shift text in the Condensed Light 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 four different styles for the Enlarge axis, in four sizes:\\[0.5ex] + +\begin{center} +\begin{supertabular}{ l l l } +Not Enlarged & abc & \textit{abc}\\ +\textbackslash EnlargedOne & {\EnlargedOne abc} & {\EnlargedOneItalic abc}\\ +\textbackslash EnlargedTwo & {\EnlargedTwo abc} & {\EnlargedTwoItalic abc}\\ +\textbackslash EnlargedThree & {\EnlargedThree abc} & {\EnlargedThreeItalic abc}\\ +\textbackslash EnlargedFour & {\EnlargedFour abc} & {\EnlargedFourItalic abc}\\ +\end{supertabular} +\end{center} + +\noindent You can produce an italic version of the enlarged minuscule by appending “Italic” to +the style name. You can also customize these styles with \textbf{SizeFeatures}: + +\footnotesize +\begin{verbatim} + \usepackage[ + ENLAThreeSizeFeatures={{size=5,ENLA=85},} + ]{junicodevf} +\end{verbatim} +\normalsize + +\noindent This example will set all axes except for \src{ENLA} to their default coordinates. +You can, of course, define other axes, and, as with Junicode’s other \textbf{SizeFeatures} options, +as many size arrays as you like. \textbf{Features} options are not available for the Enlarged +styles. + +\section{Other Commands} + +This package's other commands (listed in Table 1) are offered as conveniences, being shorter and more +mnemonic than the {\fspec} commands they invoke (though of course all {\fspec} commands +remain available). Each of these commands +also has a corresponding “text” command that works like +{\color{BrickRed}\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, +{\color{BrickRed}\verb|\textInsularLetterForms{}|} +corresponding to {\color{BrickRed}\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} +\begin{table}[ht] +\centering +\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} +\caption{Stylistic Set and Character Variant Commands} +\end{table} +%\end{center} + +\noindent The syntax of \textbackslash jcv +is {\color{BrickRed}\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 ({\color{BrickRed}\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 {\color{BrickRed}\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} + +\vspace*{\fill} +\begin{center} + \itshape This document is set in 12-point Junicode VF with Weight 435 and Width 107.5.\\ + The font for code is Fira Mono,\\ + and the sans serif font is Fira Sans. +\end{center} +\end{document} |