summaryrefslogtreecommitdiff
path: root/fonts/yfonts-otf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-08-09 03:00:57 +0000
committerNorbert Preining <norbert@preining.info>2022-08-09 03:00:57 +0000
commit3265c6cdfdfcda19c6ad32ae0469761357ce65c2 (patch)
tree89fcc52f99d27f51250d04aa264ca289b09c7fe0 /fonts/yfonts-otf
parentf1e79c3669f68804c471699badc56a4a33a23246 (diff)
CTAN sync 202208090300
Diffstat (limited to 'fonts/yfonts-otf')
-rw-r--r--fonts/yfonts-otf/README.md15
-rw-r--r--fonts/yfonts-otf/doc/Erlkonig.ltx2
-rw-r--r--fonts/yfonts-otf/doc/Erlkonig.pdfbin79307 -> 79385 bytes
-rw-r--r--fonts/yfonts-otf/doc/yfonts-otf.ltx162
-rw-r--r--fonts/yfonts-otf/doc/yfonts-otf.pdfbin64839 -> 68546 bytes
-rw-r--r--fonts/yfonts-otf/fonts/yfrak.otfbin40320 -> 42296 bytes
-rw-r--r--fonts/yfonts-otf/fonts/ygoth.otfbin47528 -> 48156 bytes
-rw-r--r--fonts/yfonts-otf/fonts/yswab.otfbin37220 -> 39256 bytes
-rw-r--r--fonts/yfonts-otf/tex/oldgerm-otf.sty93
-rw-r--r--fonts/yfonts-otf/tex/yfonts-otf.sty54
10 files changed, 157 insertions, 169 deletions
diff --git a/fonts/yfonts-otf/README.md b/fonts/yfonts-otf/README.md
index 000b145d77..5c6a3d1a6b 100644
--- a/fonts/yfonts-otf/README.md
+++ b/fonts/yfonts-otf/README.md
@@ -9,7 +9,7 @@ This bundle provides OpenType versions of the Old German fonts `yfrak’,
## Contents
* yfrak.otf, ygoth.otf, yswab.otf: the three OpenType fonts
-* oldgerm-otf.sty LaTeX style file defining the three font families
+* yfonts-otf.sty LaTeX style file defining the three font families
* yfonts-otf.pdf Documentation in PDF format
* yfonts-otf.ltx LaTeX source of yfonts-otf.pdf
* Erlkonig.pdf Example: Goethe's poem typeset with these fonts
@@ -21,7 +21,7 @@ This bundle provides OpenType versions of the Old German fonts `yfrak’,
This package is meant to be installed automatically by TeXLive, MikTeX, etc.
Otherwise, the package can be installed under TEXMFHOME or TEXMFLOCAL, f.i.
yfonts-otf in directory texmf-local/fonts/opentype/public/yfonts-otf/
-and oldgerm-otf.sty in directory texmf-local/tex/latex/yfonts-otf/.
+and oldgerm-otf.sty in directory texmf-local/tex/latex/yfonts-otf/.
Documentation files and their sources can go to directory
texmf-local/doc/fonts/public/yfonts-otf/
@@ -40,6 +40,17 @@ Either version 1.3 or, at your option, any later version.
## Changes
* First public version: 0.30
+
+* v0.40:
+ Substantial changes following suggestions by Keno Wehr:
+ - oldgerm-otf.sty has been renamed to yfonts-otf.sty, oldgerm-otf.sty
+ is kept for compatibility; it inputs yfonts-otf.sty.
+ - Ligatures features reorganised: dlig and alig features deleted,
+ only rlig, liga (and hlig for ygoth only) are used.
+ - Ligature tz was missing in yswab.otf, added now.
+ - Hungarian Umlaut was missing in yfrak.otf and yswab.otf, added now.
+ - The s variant (long/short) is chosen automatically (code borrowed from
+ Unifraktur Maguntia).
---
Copyright 2022- Daniel Flipo
diff --git a/fonts/yfonts-otf/doc/Erlkonig.ltx b/fonts/yfonts-otf/doc/Erlkonig.ltx
index 1aacc668c3..4ccc0f9208 100644
--- a/fonts/yfonts-otf/doc/Erlkonig.ltx
+++ b/fonts/yfonts-otf/doc/Erlkonig.ltx
@@ -1,7 +1,7 @@
\documentclass[12pt,a4paper,german]{article}
\usepackage[top=40mm,left=40mm,right=40mm]{geometry}
-\usepackage{oldgerm-otf}
+\usepackage{yfonts-otf}
\usepackage{babel}
\usepackage{lettrine}
diff --git a/fonts/yfonts-otf/doc/Erlkonig.pdf b/fonts/yfonts-otf/doc/Erlkonig.pdf
index bd64dee2e5..4668104f15 100644
--- a/fonts/yfonts-otf/doc/Erlkonig.pdf
+++ b/fonts/yfonts-otf/doc/Erlkonig.pdf
Binary files differ
diff --git a/fonts/yfonts-otf/doc/yfonts-otf.ltx b/fonts/yfonts-otf/doc/yfonts-otf.ltx
index 09513741ad..4e51eed442 100644
--- a/fonts/yfonts-otf/doc/yfonts-otf.ltx
+++ b/fonts/yfonts-otf/doc/yfonts-otf.ltx
@@ -6,7 +6,7 @@
\usepackage[dvipsnames]{xcolor}
\usepackage[hypcap=false]{caption}
\usepackage{shortvrb}
-\usepackage{oldgerm-otf}
+\usepackage{yfonts-otf}
\usepackage{fourier-otf}
\usepackage[german,british]{babel}
\babeltags{de=german}
@@ -35,11 +35,10 @@
\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}
+\newcommand*{\version}{0.40}
\begin{document}
\maketitle
@@ -50,9 +49,9 @@
\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;
+ A style file \file{yfonts-otf.sty} is included to load these fonts easily;
it is meant as a replacement for LuaLaTeX and XeLaTeX of
- \file{oldgerm.sty}.
+ \file{yfonts.sty}.
A Type\,1 version of these fonts has been provided by Thorsten Bronger (2002).
@@ -68,18 +67,19 @@
\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
+\pkg{yfonts-otf.sty} loads \pkg{fontspec} and mimics what the
+\pkg{yfonts} 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{}|.
+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:|%
+All three families are loaded with all ligatures activated, an |s|
+automatically prints a long~\textfrak{s} (initial and middle form) or a
+round~{\frakfamily{s\hspace{1sp}}} (final form)%
\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.
+Coding |"a|, |"e|, |"o|, |"u|, |"s| is only supported through Babel’s
+German shorthands to produce \textfrak{ä, ë, ö, ü, ß}.
+Nowadays, most keyboards give access to the Unicode characters |ä|,
+|ë|, |ö|, |ü| and |ß|, so typing them directly is a better alternative.
In the \family{yfrak} family, the command |\etc| prints {\etc}
a variant of the \textfrak{usw} abbreviation while |\Jvar| prints {\Jvar}
@@ -90,61 +90,52 @@ The OpenType feature |Alternate=0| turns \textfrak{ä, ë, ö, ü} into
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}.
+{\gothfamily \longs, s\longs, ssi, st} are turned into
+{\gothfamily\addfontfeature{Alternate=1} \longs, s\longs, ssi, st}.
+\pagebreak[4]
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
+or using \pkg{yfonts-otf.sty}’s options |varumlaut| and
|gothvarlongs|, f.i.:\\
-|\usepackage[oldumlaut]{oldgerm-otf}|\\
+|\usepackage[varumlaut]{yfonts-otf}|\\
which applies globally to both \family{yfrak} and \family{yswab} families.
+It is also possible to use these fonts without loading \pkg{yfonts-otf.sty},
+then I recommend to call them by \emph{file name}, as XeTeX cannot find fonts in
+the texmf tree by \emph{font name}%
+\footnote{Unless they have been declared as \emph{System} fonts…}, f.i.:\\
+|\setmainfont{yfrak.otf}[|\texttt{\ColorVerb<\textit{options}>}|]|
+or |\fontspec{yswab.otf}[|\texttt{\ColorVerb<\textit{options}>}|]| this
+\linebreak[4] will work with both LuaTeX and XeTeX.
+
\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
+The traditional German rules for long ({\frakfamily\longs\kern1pt}) and
+round ({\frakfamily\shorts}) are somewhat complex,
+a summary can be found in the Unifraktur Maguntia Manual
+(\file{Dokumentation\_en\_fraktur.pdf}, \cite{UF}).
+
+\pkg{yfonts-otf} borrows the automatic choice from the Unifraktur Maguntia
+fonts. It uses OpenType features (|ss11|), according to the authors it fails
+in less than 1~\% of the occurences.
+When the algorithm fails, it can be corrected by typing |\shorts| or
+|\longs| instead of {\ColorVerb s}.
+
+An alias is provided for this feature:
+|Style=longs| is the same as |StylisticSet=11| or |RawFeature=+ss11|.
+
+Experts might want to type {\ColorVerb\longs} (U+17F) or {\ColorVerb s}
+(U+073) to keep the full control of the {\ColorVerb s} form; this requires
+either to deactivate the |ss11| feature after loading the \pkg{yfonts-otf}
+package, or to use a direct
+|\setmainfont{}[]| or |\fontspec{}[]| call.
+
+
+%\newpage
\section{List of optional ligatures}
Some ligatures may be deactivated if necessary with the command\\
@@ -156,9 +147,10 @@ Some ligatures may be deactivated if necessary with the command\\
\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\\
+ rlig & \ffam ch, ck, st, tz
+ &\ffam\addfontfeature{RawFeature=-rlig} ch, ck, st, tz \\
+ liga &\ffam ff, sf, \longs\longs
+ &\ffam\addfontfeature{RawFeature=-liga} ff, sf, \longs\longs \\
\hline
\end{tabular}
@@ -168,9 +160,10 @@ Some ligatures may be deactivated if necessary with the command\\
\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 \\
+ rlig &\ffam ch, ck, st, tz
+ &\ffam\addfontfeature{RawFeature=-rlig} ch, ck, st, tz \\
+ liga &\ffam ff, sf, \longs\longs
+ &\ffam\addfontfeature{RawFeature=-liga} ff, sf, \longs\longs \\
\hline
\end{tabular}
@@ -180,18 +173,21 @@ Some ligatures may be deactivated if necessary with the command\\
\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\\
+ rlig &\ffam ch, ck, st, {\addfontfeature{Alternate=1} st}, tz
+ &\ffam\addfontfeature{RawFeature=-rlig}
+ ch, ck, st, {\addfontfeature{Alternate=1} st}, tz\\
+ liga &\ffam ct, ff, ffi, ffl, fi, fl, ij, ll,
+ &\ffam\addfontfeature{RawFeature=-liga}
+ ct, ff, ffi, ffl, fi, fl, ij, ll,\\
+ &\ffam \longs\longs, ssi, \addfontfeature{Alternate=1} \longs\longs, ssi,
+ &\ffam\addfontfeature{RawFeature=-liga}
+ \longs\longs, ssi, \addfontfeature{Alternate=1} \longs\longs, ssi,\\
+ hlig &\ffam ba, be, bo, da, de, do, ha, he, ho,
+ &\ffam\addfontfeature{RawFeature=-hlig}
+ ba, be, bo, da, de, do, ha, he, ho, \\
+ &\ffam pa, pe, po, pp, qq, va, ve, vu
+ &\ffam\addfontfeature{RawFeature=-hlig}
+ pa, pe, po, pp, qq, va, ve, vu\\
\hline
\end{tabular}
@@ -201,14 +197,22 @@ 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.
+\section{Acknowledgements}
+
+Great thanks to Keno Wehr for carefully testing the initial version and
+making valuable suggestions for improvements.
+
\begin{thebibliography}{99}
-\bibitem{YH} Typesetting Old German: Fraktur, Schwabacher, Gotish and
+\bibitem{YH} Typesetting Old German: Fraktur, Schwabacher, Gotisch 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).
+\bibitem{WS} The \pkg{yfonts} package for use with \LaTeXe,
+ \textit{Walter Schmidt}, (2019).
+
+\bibitem{UF} The \href{https://sourceforge.net/projects/unifraktur/}%
+ {Unifraktur Maguntia} TrueType fonts (2017).
\end{thebibliography}
\vspace{3\baselineskip}
diff --git a/fonts/yfonts-otf/doc/yfonts-otf.pdf b/fonts/yfonts-otf/doc/yfonts-otf.pdf
index af2fc0a1b3..4b1f6c78e4 100644
--- a/fonts/yfonts-otf/doc/yfonts-otf.pdf
+++ b/fonts/yfonts-otf/doc/yfonts-otf.pdf
Binary files differ
diff --git a/fonts/yfonts-otf/fonts/yfrak.otf b/fonts/yfonts-otf/fonts/yfrak.otf
index afb7cd6b6e..696d55a520 100644
--- a/fonts/yfonts-otf/fonts/yfrak.otf
+++ b/fonts/yfonts-otf/fonts/yfrak.otf
Binary files differ
diff --git a/fonts/yfonts-otf/fonts/ygoth.otf b/fonts/yfonts-otf/fonts/ygoth.otf
index 83f9c23bf0..f032b71ac1 100644
--- a/fonts/yfonts-otf/fonts/ygoth.otf
+++ b/fonts/yfonts-otf/fonts/ygoth.otf
Binary files differ
diff --git a/fonts/yfonts-otf/fonts/yswab.otf b/fonts/yfonts-otf/fonts/yswab.otf
index fd802c643f..d56fbf1e1d 100644
--- a/fonts/yfonts-otf/fonts/yswab.otf
+++ b/fonts/yfonts-otf/fonts/yswab.otf
Binary files differ
diff --git a/fonts/yfonts-otf/tex/oldgerm-otf.sty b/fonts/yfonts-otf/tex/oldgerm-otf.sty
index e58caaeb90..57a513f88b 100644
--- a/fonts/yfonts-otf/tex/oldgerm-otf.sty
+++ b/fonts/yfonts-otf/tex/oldgerm-otf.sty
@@ -1,89 +1,8 @@
\NeedsTeXFormat{LaTeX2e}[2019-01-01]
-\def\fileversion{0.30}
-\def\filedate{2022-07-18}
-\ProvidesPackage{oldgerm-otf}[\filedate\space\fileversion]
-\RequirePackage{iftex}[2019-10-24]
-\newif\ifOGotf@oldumlaut
-\newif\ifOGotf@gothlongs
-\DeclareOption{oldumlaut}{\OGotf@oldumlauttrue}
-\DeclareOption{gothvarlongs}{\OGotf@gothlongstrue}
-\ProcessOptions
-\iftutex
- \RequirePackage{fontspec}
- \ifOGotf@gothlongs
- \newfontfamily\gothfamily{ygoth.otf}%
- [Alternate=1, RawFeature=+hist;+rlig;+liga;+dlig;+hlig;+alig;+calt]
- \else
- \newfontfamily\gothfamily{ygoth.otf}%
- [RawFeature=+hist;+rlig;+liga;+dlig;+hlig;+alig;+calt]
- \fi
- \ifOGotf@oldumlaut
- \newfontfamily\swabfamily{yswab.otf}%
- [Alternate=0, RawFeature=+hist;+rlig;+liga;+dlig;+hlig;+calt]
- \newfontfamily\frakfamily{yfrak.otf}%
- [Alternate=0, RawFeature=+hist;+rlig;+liga;+dlig;+hlig;+calt]
- \else
- \newfontfamily\swabfamily{yswab.otf}%
- [RawFeature=+hist;+rlig;+liga;+dlig;+hlig;+calt]
- \newfontfamily\frakfamily{yfrak.otf}%
- [RawFeature=+hist;+rlig;+liga;+dlig;+hlig;+calt]
- \fi
- \DeclareTextFontCommand{\textgoth}{\gothfamily}
- \DeclareTextFontCommand{\textswab}{\swabfamily}
- \DeclareTextFontCommand{\textfrak}{\frakfamily}
- \DeclareTextCommand{\Jvar}{TU}{\textfrak{\char"E960}}
- \DeclareTextCommand{\etc}{TU}{\textfrak{\char"E961}}
- \ifluatex
- % This function adds character U+200B (zero width space) when an "s"
- % is followed by a TeX space (glue or penalty or a disc)
- % so that it is not turned into a long "s" by the "calt" feature.
- \directlua{%
- function add_eow_char (head)
- local eow = 0x200B
- local GLUE = node.id("glue")
- local GLYPH = node.id("glyph")
- local PENALTY = node.id("penalty")
- local DISC = node.id("disc")
- local Longs =
- {[string.byte("s")] = true}
- local new_node = node.new
- local copy_node = node.copy
- local insert_node_after = node.insert_after
- % Perserve TeX's kerning
- head = node.kerning(head)
- % wordbd is the zero width node to add
- local wordbd = new_node(GLYPH)
- for item in node.traverse_id(GLYPH, head) do
- if Longs[item.char] then
- local fid = item.font
- % Check if char U+200B is available in the current font:
- % code borrowed from file "luaotfload-auxiliary.lua".
- local fontdata = fonts.hashes.identifiers[fid]
- if fontdata and fontdata.characters[eow] then
- local nxt = item.next
- if not nxt or nxt.id == GLUE or nxt.id == PENALTY
- or nxt.id == DISC then
- wordbd.font = fid
- wordbd.char = eow
- wordbd.attr = item.attr
- insert_node_after(head,item,copy_node(wordbd))
- end
- end
- end
- end
- end
- }
- % Register in callback "kerning".
- \AtBeginDocument{%
- \directlua{
- luatexbase.add_to_callback("kerning", add_eow_char,
- "add_end_of_word_boundary");
- }%
- }
- \fi
-\else
- \PackageWarning{oldgerm-otf}%
- {This package requires LuaTeX or XeTeX engines.
- With other engines, consider using `oldgerm.sty', reported}
-\fi
+\PackageWarning{yfonts-otf}{%
+ The "oldgerm-otf.sty" file has been renamed\MessageBreak
+ to "yfonts-otf.sty". Please consider using\MessageBreak
+ this name instead. Reported}
+%
+\input{yfonts-otf.sty}
\endinput
diff --git a/fonts/yfonts-otf/tex/yfonts-otf.sty b/fonts/yfonts-otf/tex/yfonts-otf.sty
new file mode 100644
index 0000000000..b283dd5d9c
--- /dev/null
+++ b/fonts/yfonts-otf/tex/yfonts-otf.sty
@@ -0,0 +1,54 @@
+\NeedsTeXFormat{LaTeX2e}[2019-01-01]
+\def\fileversion{0.40}
+\def\filedate{2022-08-08}
+\ProvidesPackage{yfonts-otf}[\filedate\space\fileversion]
+\RequirePackage{iftex}[2019-10-24]
+\newif\ifYHf@oldumlaut
+\newif\ifYHf@gothlongs
+\DeclareOption{oldumlaut}{\YHf@oldumlauttrue}
+\DeclareOption{varumlaut}{\YHf@oldumlauttrue}
+\DeclareOption{gothvarlongs}{\YHf@gothlongstrue}
+\ProcessOptions
+\iftutex
+ \RequirePackage{fontspec}
+ \newopentypefeature{Style}{longs}{+ss11}
+ \ifYHf@gothlongs
+ \newfontfamily\gothfamily{ygoth.otf}%
+ [Extension = .otf,
+ Alternate=1,
+ Ligatures=TeX, RawFeature=+ss11;+rlig;+liga;+hlig]
+ \else
+ \newfontfamily\gothfamily{ygoth.otf}%
+ [Extension = .otf,
+ Ligatures=TeX, RawFeature=+ss11;+rlig;+liga;+hlig]
+ \fi
+ \ifYHf@oldumlaut
+ \newfontfamily\swabfamily{yswab.otf}%
+ [Extension = .otf,
+ Alternate=0,
+ Ligatures=TeX, RawFeature=+ss11;+rlig;+liga]
+ \newfontfamily\frakfamily{yfrak}%
+ [Extension = .otf,
+ Alternate=0,
+ Ligatures=TeX, RawFeature=+ss11;+rlig;+liga]
+ \else
+ \newfontfamily\swabfamily{yswab.otf}%
+ [Extension = .otf,
+ Ligatures=TeX, RawFeature=+ss11;+rlig;+liga]
+ \newfontfamily\frakfamily{yfrak.otf}%
+ [Extension = .otf,
+ Ligatures=TeX, RawFeature=+ss11;+rlig;+liga]
+ \fi
+ \DeclareTextFontCommand{\textgoth}{\gothfamily}
+ \DeclareTextFontCommand{\textswab}{\swabfamily}
+ \DeclareTextFontCommand{\textfrak}{\frakfamily}
+ \DeclareTextCommand{\Jvar}{TU}{\textfrak{\char"E960}}
+ \DeclareTextCommand{\etc}{TU}{\textfrak{\char"E961}}
+ \DeclareTextCommand{\longs}{TU}{\char"200C\char"17F}
+ \DeclareTextCommand{\shorts}{TU}{s\char"200C}
+\else
+ \PackageWarning{yfonts-otf}%
+ {This package requires LuaTeX or XeTeX engines.
+ With other engines, consider using `yfonts.sty', reported}
+\fi
+\endinput