summaryrefslogtreecommitdiff
path: root/fonts/junicodevf/doc/junicodevf-package.tex
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/junicodevf/doc/junicodevf-package.tex')
-rw-r--r--fonts/junicodevf/doc/junicodevf-package.tex628
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}