summaryrefslogtreecommitdiff
path: root/fonts/yfonts-otf/doc/yfonts-otf.ltx
blob: 09513741ad0cfe041618b16a7813535f7ebecc48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{pdfstandard=A-2b, lang=en-GB}
\documentclass[paper=a4]{scrartcl}
% Packages
\usepackage{graphics, array}
\usepackage[dvipsnames]{xcolor}
\usepackage[hypcap=false]{caption}
\usepackage{shortvrb}
\usepackage{oldgerm-otf}
\usepackage{fourier-otf}
\usepackage[german,british]{babel}
\babeltags{de=german}
\usepackage[english]{varioref}
\usepackage{realscripts}
\usepackage{microtype}
\usepackage{hyperref}
\hypersetup{pdftitle={yfonts-otf User’s Guide},
            pdfauthor={Daniel FLIPO},
            colorlinks
            }
\newcommand*{\hlabel}[1]{\phantomsection\label{#1}}
%
\MakeShortVerb{\|}

%verbatim : modifier  \verbatim@font
\def\ColorVerb{\color{MidnightBlue}}
\makeatletter
\let\verbatim@fontORI\verbatim@font
\def\verbatim@font{\ColorVerb\verbatim@fontORI}
\makeatother

\newcommand*{\pkg}[1]{\texttt{\ColorVerb #1}}
\newcommand*{\opt}[1]{\texttt{\ColorVerb #1}}
\newcommand*{\file}[1]{\texttt{\ColorVerb #1}}
\newcommand*{\cmd}[1]{\texttt{\ColorVerb \textbackslash #1}}
\newcommand*{\family}[1]{\textit{#1}}
\newcommand*{\MF}{\textsf{Metafont}}
\def\xx{\kern0pt}

\title{OpenType version of yfonts for Old German}
\author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}}
\newcommand*{\version}{0.30}

\begin{document}
\maketitle
\thispagestyle{empty}

\begin{abstract}
  This bundle provides OpenType versions of the Old German fonts \family{yfrak},
  \family{ygoth} and \family{yswab} designed by Yannis Haralambous in \MF{}
  (1990).

  A style file \file{oldgerm-otf.sty} is included to load these fonts easily;
  it is meant as a replacement for LuaLaTeX and XeLaTeX of
  \file{oldgerm.sty}.

  A Type\,1 version of these fonts has been provided by Thorsten Bronger (2002).

  The \family{yinit} font (initials) is already available as in OpenType format,
  thanks to Élie Roux.

  Please beware of the \emph{experimental} status of the current
  version~(\version).

  All three fonts are covered by OFL licence, style file and documentation
  are under LPPL-1.3 licence.
\end{abstract}

\section{Usage}

\pkg{oldgerm-otf.sty} loads \pkg{fontspec} and mimics what the
\pkg{oldgerm} package does for the  Type\,1 version: it defines three font
families |\frakfamily|, |\gothfamily| and |\swabfamily| and the corresponding
font commands with arguments |\textgoth{}|, |\textfrak{}|, and |\textswab{}|.

All three families are loaded with all ligatures activated, an |s| prints
a long~\textfrak{s} (initial and middle form), the final
round~{\frakfamily{s\hspace{1sp}}} can be coded |s:|%
\footnote{See section~\ref{sec:long-s} for details.}.
Coding |"a|, |"e|, |"o|, |"u|, |"s|, produces \textfrak{ä, ë, ö, ü, ß,} as
expected. Nowadays, most keyboards give access to the Unicode characters |ä|,
|ë|, |ö|, |ü| and |ß|, so typing them directly is another possibility.

In the \family{yfrak} family, the command |\etc| prints {\etc}
a variant of the \textfrak{usw} abbreviation while |\Jvar| prints {\Jvar}
a variant of \textfrak{J} (suggestion of Daniel Sanders, mentioned by Yannis).

The OpenType feature |Alternate=0| turns \textfrak{ä, ë, ö, ü} into
{\frakfamily\addfontfeature{Alternate=0} ä, ë, ö, ü}.
It works for the \family{yfrak} and \family{yswab} families but not for
\family{ygoth} (variant not available in the original version).

Those variants {\frakfamily\addfontfeature{Alternate=0} ä, ë, ö, ü}, can
also be accessed by coding |*a|, |*e|, |*o|, |*u| (as in \pkg{oldgerm})
without activating the |Alternate=0| feature.
\addfontfeature{RawFeature=-salt} % back to default.

Used with the \family{ygoth} family, the |Alternate=1| feature provides
variants for the long~s and the derived ligatures:
{\gothfamily s\xx, ss\xx, ssi, st} are turned into
{\gothfamily\addfontfeature{Alternate=1} s\xx, ss\xx, ssi, st}.

These features can be added locally anywhere in the document body, f.i.:\\
|\frakfamily\addfontfeature{Alternate=0}|\\
or using \pkg{oldgerm-otf.sty}’s options |oldumlaut| and
|gothvarlongs|, f.i.:\\
|\usepackage[oldumlaut]{oldgerm-otf}|\\
which applies globally to both \family{yfrak} and \family{yswab} families.

\section{Coding the long/round s}
\label{sec:long-s}

As stated in \cite{YH}, the initial and middle |s| should be long
({\frakfamily s\kern1pt}) while the final form should be round
({\frakfamily s\hspace{1sp}}). The OpenType |calt| feature can deal with
this kind of requirement.

\pkg{oldgerm-otf.sty} enables the |calt| feature by default, so that an |s|
followed by a punctuation mark or a space \emph{character} is automatically
printed as a round one ({\frakfamily s\hspace{1sp}} instead of
{\frakfamily \kern1pt s\kern2pt}).
The problem is that TeX turns spaces into \emph{glues} which are ignored
by the |calt| feature.

Conclusion: the |calt| feature works fine for the final |s|
\emph{only if} it is followed by a punctuation mark (point, comma,
semicolon, etc.). This is true for LuaTeX and XeTeX.

For LuaTeX a workaround has been added in \pkg{oldgerm-otf.sty}. A null space
character (U+200B) is added automatically after every |s| followed by
a \emph{glue} or a \emph{penalty} (unbreakable spaces) or
a \emph{discretionary} (compound words), thus enabling the |calt| feature to
deal also with TeX spaces and compound words.
With LuaTeX, the |s| should always be printed out properly, the |s:| coding
should no longer be required%
\footnote{I am not sure about compound words: is checking
  \emph{discretionaries} correct?}.

Please note that the possibility of coding |s:| to get the round
{\frakfamily s\hspace{1sp}} has been kept for compatibility, this implies that
{\frakfamily aus::} has to be coded |aus::| with a double colon, the first one
being swallowed by the ligature |s:| which prints {\frakfamily s\hspace{1sp}}.

With XeTeX, the |s:| coding is still required inside compound words
and before spaces f.i. |das: Aus:land|.

\newpage
\section{List of optional ligatures}

Some ligatures may be deactivated if necessary with the command\\
|\addfontfeature{RawFeature=-|\textit{\ColorVerb ligname}|}|

\vspace{\baselineskip}
|\frakfamily| : \let\ffam\frakfamily
\begin{tabular}{>\rmfamily l|l| l}
  \hline
  Name & Default ($+$) & Optional ($-$) \\
  \hline
  liga & \ffam ff            &\ffam\addfontfeature{RawFeature=-liga} ff \\
  dlig & \ffam ch, ck    &\ffam\addfontfeature{RawFeature=-dlig} ch, ck \\
  hlig & \ffam sf, ss\xx, st &\ffam\addfontfeature{RawFeature=-hlig} sf, ss\xx, st\\
  \hline
\end{tabular}

\vspace{.5\baselineskip}
|\swabfamily| : \let\ffam\swabfamily
\begin{tabular}{>\rmfamily l|l| l}
  \hline
  Name & Default ($+$) & Optional ($-$) \\
  \hline
  liga & \ffam ff            &\ffam\addfontfeature{RawFeature=-liga} ff \\
  dlig & \ffam ch, ck    &\ffam\addfontfeature{RawFeature=-dlig} ch, ck \\
  hlig & \ffam sf, ss\xx, st &\ffam\addfontfeature{RawFeature=-hlig} sf, ss\xx, st \\
  \hline
\end{tabular}

\vspace{.5\baselineskip}
|\gothfamily| : \let\ffam\gothfamily
\begin{tabular}{>\rmfamily l|l| l}
  \hline
  Name & Default ($+$) & Optional ($-$) \\
  \hline
  liga & \ffam ff, ffi, ffl, fi, fl, ij
       &\ffam\addfontfeature{RawFeature=-liga} ff, ffi, ffl, fi, fl, ij \\
  dlig & \ffam ch, ck, ct, qz, tz
       &\ffam\addfontfeature{RawFeature=-dlig} ch, ck, ct, qz, tz \\
  hlig & \ffam sf, ss\xx, st, ssi
       &\ffam\addfontfeature{RawFeature=-hlig} sf, ss\xx, st, ssi \\
  alig & \ffam ba, be, bo, da, de, do, ha, he, ho, ho,
       &\ffam\addfontfeature{RawFeature=-alig}
         ba, be, bo, da, de, do, ha, he, ho, \\
       &\ffam ll, pa, pe, po, pp, qq, va, ve, vu
       &\ffam\addfontfeature{RawFeature=-alig}
         ll, pa, pe, po, pp, qq, va, ve, vu\\
  \hline
\end{tabular}

\section{Samples}

A practical usage of these fonts can be found in file \file{Erlkonig.ltx} to
be compiled with \pkg{lualatex}.
It shows the beginning of Goethe’s Erlkönig poem typeset with each of them.

\begin{thebibliography}{99}
\bibitem{YH} Typesetting Old German: Fraktur, Schwabacher, Gotish and
  Initials, \\ \textit{Yannis Haralambous},
  \href{https://www.tug.org/TUGboat/tb12-1/tb31hara.pdf}%
  {TUGboat 12\#1 (1991), pages 129–138}.

\bibitem{OG} The \pkg{oldgerm} package for use with \LaTeXe,
  \textit{Frank Mittelbach}, (2020).
\end{thebibliography}

\vspace{3\baselineskip}
\centerline{\Huge\decotwo}
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-engine: luatex
%%% TeX-master: t
%%% coding: utf-8
%%% End: