summaryrefslogtreecommitdiff
path: root/fonts/yfonts-otf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-07-20 03:00:57 +0000
committerNorbert Preining <norbert@preining.info>2022-07-20 03:00:57 +0000
commit2773132ea593028dafe764f7560fd94ecb827d3d (patch)
tree1ec66117c0fd26fa54a99c69602512a8f96bb9af /fonts/yfonts-otf
parent8ff4930a7a6c0dcfef1066c5537747570c7967b3 (diff)
CTAN sync 202207200300
Diffstat (limited to 'fonts/yfonts-otf')
-rw-r--r--fonts/yfonts-otf/README.md46
-rw-r--r--fonts/yfonts-otf/doc/Erlkonig.ltx122
-rw-r--r--fonts/yfonts-otf/doc/Erlkonig.pdfbin0 -> 79307 bytes
-rw-r--r--fonts/yfonts-otf/doc/yfonts-otf.ltx223
-rw-r--r--fonts/yfonts-otf/doc/yfonts-otf.pdfbin0 -> 64839 bytes
-rw-r--r--fonts/yfonts-otf/fonts/yfrak.otfbin0 -> 40320 bytes
-rw-r--r--fonts/yfonts-otf/fonts/ygoth.otfbin0 -> 47528 bytes
-rw-r--r--fonts/yfonts-otf/fonts/yswab.otfbin0 -> 37220 bytes
-rw-r--r--fonts/yfonts-otf/tex/oldgerm-otf.sty89
9 files changed, 480 insertions, 0 deletions
diff --git a/fonts/yfonts-otf/README.md b/fonts/yfonts-otf/README.md
new file mode 100644
index 0000000000..000b145d77
--- /dev/null
+++ b/fonts/yfonts-otf/README.md
@@ -0,0 +1,46 @@
+yfonts-otf package
+==================
+
+## Description
+
+This bundle provides OpenType versions of the Old German fonts `yfrak’,
+`ygoth’ and `yswab’ designed by Yannis Haralambous in Metafont (1990).
+
+## Contents
+
+* yfrak.otf, ygoth.otf, yswab.otf: the three OpenType fonts
+* oldgerm-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
+* Erlkonig.ltx LaTeX source of Erlkonig.pdf
+* README.md (this file)
+
+## Installation
+
+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/.
+Documentation files and their sources can go to directory
+texmf-local/doc/fonts/public/yfonts-otf/
+
+Don't forget to rebuild the file database (mktexlsr or so) if you install
+under TEXMFLOCAL.
+
+## License
+
+* The three fonts are licensed under the SIL Open Font License,
+Version 1.1. This license is available with a FAQ at:
+http://scripts.sil.org/OFL
+* The other files are distributed under the terms of the LaTeX Project
+Public License from CTAN archives in directory macros/latex/base/lppl.txt.
+Either version 1.3 or, at your option, any later version.
+
+## Changes
+
+* First public version: 0.30
+
+---
+Copyright 2022- Daniel Flipo
+E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/yfonts-otf/doc/Erlkonig.ltx b/fonts/yfonts-otf/doc/Erlkonig.ltx
new file mode 100644
index 0000000000..1aacc668c3
--- /dev/null
+++ b/fonts/yfonts-otf/doc/Erlkonig.ltx
@@ -0,0 +1,122 @@
+\documentclass[12pt,a4paper,german]{article}
+
+\usepackage[top=40mm,left=40mm,right=40mm]{geometry}
+\usepackage{oldgerm-otf}
+\usepackage{babel}
+
+\usepackage{lettrine}
+\renewcommand{\LettrineTextFont}{\relax}
+\renewcommand{\LettrineFontHook}{\fontspec{Yinit.otf}}
+\renewcommand{\DefaultLoversize}{0.25}
+\renewcommand{\DefaultLhang}{0.2}
+\setlength{\DefaultFindent}{0.1em}
+
+\begin{document}
+\pagestyle{empty}
+
+\frakfamily\Large
+\centerline{\Huge Erlkönig}
+
+\vspace{2\baselineskip}
+\lettrine{W}{er} reitet so spät durch Nacht und Wind?\\
+Es ist der Vater mit seinem Kind;\\
+Er hat den Knaben wohl in dem Arm,\\
+Er faßt ihn sicher, er hält ihn warm.
+
+\vspace{\baselineskip}
+\lettrine{M}{ein} Sohn, was birgst du so bang dein Gesicht? --\\
+Siehst, Vater, du den Erlk"onig nicht?\\
+Den Erlenkönig mit Kron und Schweif? --\\
+Mein Sohn, es ist ein Nebelstreif. --
+
+\vspace{\baselineskip}
+\lettrine{D}{u} liebes Kind, komm, geh mit mir!\\
+Gar schöne Spiele spiel ich mit dir;\\
+Manch bunte Blumen sind an dem Strand,\\
+Meine Mutter hat manch gülden Gewand.%''
+
+\vspace{\baselineskip}
+\lettrine{M}{ein} Vater, mein Vater, und hörest du nicht,\\
+Was Erlenkönig mir leise verspricht? --\\
+Sei ruhig, bleibe ruhig, mein Kind;\\
+In dürren Blättern säuselt der Wind. --
+
+\vspace{\baselineskip}
+\begin{flushright}
+ \Large Johann Wolfgang von Goethe
+\end{flushright}
+
+\newpage
+\swabfamily\Large
+\centerline{\Huge Erlkönig}
+
+\vspace{2\baselineskip}
+\lettrine{W}{er} reitet so spät durch Nacht und Wind?\\
+Es ist der Vater mit seinem Kind;\\
+Er hat den Knaben wohl in dem Arm,\\
+Er faßt ihn sicher, er hält ihn warm.
+
+\vspace{\baselineskip}
+\lettrine{M}{ein} Sohn, was birgst du so bang dein Gesicht? --\\
+Siehst, Vater, du den Erlk"onig nicht?\\
+Den Erlenkönig mit Kron und Schweif? --\\
+Mein Sohn, es ist ein Nebelstreif. --
+
+\vspace{\baselineskip}
+\lettrine{D}{u} liebes Kind, komm, geh mit mir!\\
+Gar schöne Spiele spiel ich mit dir;\\
+Manch bunte Blumen sind an dem Strand,\\
+Meine Mutter hat manch gülden Gewand.%''
+
+\vspace{\baselineskip}
+\lettrine{M}{ein} Vater, mein Vater, und hörest du nicht,\\
+Was Erlenkönig mir leise verspricht? --\\
+Sei ruhig, bleibe ruhig, mein Kind;\\
+In dürren Blättern säuselt der Wind. --
+
+\vspace{\baselineskip}
+\begin{flushright}
+ \Large Johann Wolfgang von Goethe
+\end{flushright}
+
+\newpage
+\gothfamily\Large
+\centerline{\Huge Erlkönig}
+
+\vspace{2\baselineskip}
+\lettrine{W}{er} reitet so spät durch Nacht und Wind?\\
+Es ist der Vater mit seinem Kind;\\
+Er hat den Knaben wohl in dem Arm,\\
+Er faßt ihn sicher, er hält ihn warm.
+
+\vspace{\baselineskip}
+\lettrine{M}{ein} Sohn, was birgst du so bang dein Gesicht? --\\
+Siehst, Vater, du den Erlk"onig nicht?\\
+Den Erlenkönig mit Kron und Schweif? --\\
+Mein Sohn, es ist ein Nebelstreif. --
+
+\vspace{\baselineskip}
+\lettrine{D}{u} liebes Kind, komm, geh mit mir!\\
+Gar schöne Spiele spiel ich mit dir;\\
+Manch bunte Blumen sind an dem Strand,\\
+Meine Mutter hat manch gülden Gewand.%''
+
+\vspace{\baselineskip}
+\lettrine{M}{ein} Vater, mein Vater, und hörest du nicht,\\
+Was Erlenkönig mir leise verspricht? --\\
+Sei ruhig, bleibe ruhig, mein Kind;\\
+In dürren Blättern säuselt der Wind. --
+
+\vspace{\baselineskip}
+\begin{flushright}
+ \Large Johann Wolfgang von Goethe
+\end{flushright}
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-engine: luatex
+%%% TeX-master: t
+%%% coding: utf-8
+%%% End:
diff --git a/fonts/yfonts-otf/doc/Erlkonig.pdf b/fonts/yfonts-otf/doc/Erlkonig.pdf
new file mode 100644
index 0000000000..bd64dee2e5
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..09513741ad
--- /dev/null
+++ b/fonts/yfonts-otf/doc/yfonts-otf.ltx
@@ -0,0 +1,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:
diff --git a/fonts/yfonts-otf/doc/yfonts-otf.pdf b/fonts/yfonts-otf/doc/yfonts-otf.pdf
new file mode 100644
index 0000000000..af2fc0a1b3
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..afb7cd6b6e
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..83f9c23bf0
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..fd802c643f
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..e58caaeb90
--- /dev/null
+++ b/fonts/yfonts-otf/tex/oldgerm-otf.sty
@@ -0,0 +1,89 @@
+\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
+\endinput