summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-28 00:15:30 +0000
committerKarl Berry <karl@freefriends.org>2013-05-28 00:15:30 +0000
commit1c6157c57b3a33d9b44027ccc44ef1e02f98d51c (patch)
treeac53f3e7e929f9120e3b8773c84dc5fd2d041e6d
parentdbdbad08ea450f135cc574f9dc001088b0d042de (diff)
selnolig
git-svn-id: svn://tug.org/texlive/trunk@30745 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/README7
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/gpp-ft.fea22
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-bugreport.tex35
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.pdfbin0 -> 78883 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.tex104
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-wordlist.tex664
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.pdfbin0 -> 125806 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.tex61
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-wordlist.tex986
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig.pdfbin0 -> 321952 bytes
-rw-r--r--Master/texmf-dist/doc/lualatex/selnolig/selnolig.tex808
-rw-r--r--Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-hyphex.sty206
-rw-r--r--Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-patterns.sty1092
-rw-r--r--Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-hyphex.sty501
-rw-r--r--Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-patterns.sty1957
-rw-r--r--Master/texmf-dist/tex/lualatex/selnolig/selnolig.lua197
-rw-r--r--Master/texmf-dist/tex/lualatex/selnolig/selnolig.sty251
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds8
-rw-r--r--Master/tlpkg/tlpsrc/collection-luatex.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/selnolig.tlpsrc0
21 files changed, 6899 insertions, 3 deletions
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/README b/Master/texmf-dist/doc/lualatex/selnolig/README
new file mode 100644
index 00000000000..d0f703409f1
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/README
@@ -0,0 +1,7 @@
+The selnolig package suppresses typographic ligatures selectively, i.e., based on predefined search patterns. The search patterns focus on ligatures deemed inappropriate because they span morpheme boundaries. For example, the word shelfful, which is mentioned in the TeXbook as a word for which the ff ligature might be inappropriate, is automatically typeset as shelf\/ful rather than as shel{ff}ul.
+
+For English and German language documents, the selnolig package provides extensive rules for the selective suppression of so-called "common" ligatures. These comprise the ff, fi, fl, ffi, and ffl ligatures as well as the ft and~fft ligatures. Other f-ligatures, such as fb, fh, fj and fk, are suppressed globally, while making exceptions for names and words of non-English/German origin, such as Kafka and fjord.
+
+For English language documents, the package further provides ligature suppression macros for a number of so-called "discretionary" or "rare" ligatures such as ct, st, and sp.
+
+The selnolig package requires use of the LuaLaTeX format provided by a recent TeX distribution such as TeXLive2012 or 2013 and MiKTeX2.9. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/gpp-ft.fea b/Master/texmf-dist/doc/lualatex/selnolig/gpp-ft.fea
new file mode 100644
index 00000000000..c2cbeab607f
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/gpp-ft.fea
@@ -0,0 +1,22 @@
+# OpenType feature file to suppress the f_t.alt ligature
+# provided by the font "Garamond Premier Pro". This
+# feature file is employed by selnolig.tex, the user guide
+# for the 'selnolig' package.
+# Created by Mico Loretan, January 2013, based on
+# important (crucial!) help from Khaled Hosny.
+
+# Scripts and languages
+# If the font use others, they should be defined here too
+languagesystem DFLT dflt;
+languagesystem latn dflt;
+
+# Undo the "f_t.alt" discretionary ligature
+feature dlig {
+ sub f_t.alt by f t;
+} dlig;
+
+# Apply the regular ligatures for ft and fft
+feature liga {
+ sub f f t by f_f_t;
+ sub f t by f_t;
+} liga; \ No newline at end of file
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-bugreport.tex b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-bugreport.tex
new file mode 100644
index 00000000000..e274b179de8
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-bugreport.tex
@@ -0,0 +1,35 @@
+% !TEX TS-program = lualatex
+% selnolig-bugreport.tex, 2013/05/25
+
+\documentclass{article}
+\usepackage[margin=1in]{geometry}
+\usepackage{fontspec}
+% Choose a different font if desired:
+\setmainfont{EB Garamond 12 Regular}
+
+% Comment out the next instruction if you don't use babel;
+% and set the language version that meets your needs.
+\usepackage[ngerman]{babel}
+
+% Choose either ngerman or english as the language option
+\usepackage[ngerman]{selnolig}
+
+\begin{document}
+\paragraph*{Version of selnolig package used:}
+\selnoligpackageversion, \selnoligpackagedate
+ % these macros are defined in selnolig.sty
+
+\subsection*{Type-I errors: Words that contain ligatures that should be suppressed}
+
+[List words here]
+
+\subsection*{Type-II errors: Words for which ligatures are being suppressed improperly}
+
+[List words here]
+
+\subsection*{Other issues}
+
+Examples: problems with user guide; problems caused by the package's lua code
+
+(and, please, suggestions for bug fixes)
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.pdf b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.pdf
new file mode 100644
index 00000000000..b138d314f6a
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.tex b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.tex
new file mode 100644
index 00000000000..a057a0e6fe3
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-test.tex
@@ -0,0 +1,104 @@
+% !TEX TS-program = lualatex
+\documentclass{article}
+
+% Test program: Apply the 'selnolig' package, with
+% 'english' language option set, to a list of English
+% words which contain various character pairs that
+% should not be ligated. The list of English words is
+% in the companion file 'selnolig-english-wordlist.tex'.
+%
+% Author: Mico Loretan (loretan dot mico at gmail dot com)
+% Date: 2013/05/25
+
+% Check first that we're running Lua(La)TeX.
+\usepackage{ifluatex}
+\ifluatex\else
+ \typeout{===============================================}
+ \typeout{The file selnolig-english-test.tex must be }
+ \typeout{compile using lualatex. Exiting immediately. }
+ \typeout{===============================================}
+ \endinput
+\fi
+
+\usepackage[margin=1in]{geometry}
+
+\righthyphenmin=2 % set this to either 3 (normal) or 2
+
+\usepackage{fancyvrb}
+
+\usepackage{fontspec}
+
+\defaultfontfeatures{%
+ Ligatures={TeX,Common,Rare},
+ Numbers = OldStyle}
+
+\setmainfont[ FeatureFile= gpp-ft.fea,
+ ItalicFont = {Garamond Premier Pro Italic},
+ BoldFont = {Garamond Premier Pro}]
+ {Garamond Premier Pro}
+
+\setmonofont[Scale=MatchLowercase,
+ Ligatures=NoCommon]
+ {Consolas}
+
+\newfontfamily\ebg[
+ Ligatures = {TeX,Common,Rare,Historic},
+ ItalicFont = {EB Garamond 12 Italic}]
+ {EB Garamond 12 Regular}
+
+\usepackage[document]{ragged2e}
+\usepackage[english,hdlig,broadf]{selnolig}
+
+\usepackage{showhyphens}
+
+\setlength\parindent{0pt}
+\parskip=0.3\baselineskip
+\usepackage{multicol}
+ \setlength\columnseprule{.4pt}
+\title{selnolig-english-test}
+\author{\null}
+\date{}
+
+\begin{document}
+\maketitle
+
+\begin{tabular}{@{}*{10}{l}}
+Appearance of f-ligatures
+ &ff &fi &fl &ffi &ffl &ft & \mbox{fj} & {\ebg\mbox{fk}}
+ & \emph{fr}\\
+Sample words with these ligatures
+ &off &fit &fly &office &baffle &often & fjord
+ &{\ebg Kafka} &\emph{from}\\
+\end{tabular}
+
+\bigskip
+
+\begin{tabular}{@{}*{13}{l}}
+Appearance of other ligatures
+ & st & ct & sp
+ & \emph{as} & \emph{is, th, us}
+ & \emph{at} & \emph{et} & {\ebg\emph{sk}}& \emph{ll}\\
+Sample words with these ligatures
+ & stay & act & spy
+ & \emph{was} & \emph{\mbox{is}thmus} & \emph{cat} & \emph{net}
+ & {\ebg\emph{ask}} & \emph{ill}\\
+\end{tabular}
+
+
+\bigskip
+
+\makeatletter
+\begin{tabular}{@{}ll}
+Options and other parameters:\\
+Value of \texttt{\textbackslash righthyphenmin} parameter & \the\righthyphenmin\\
+Extent of suppressing f-ligatures: basic or broadf? & \if@broadfset broadf \else basic \fi \\
+
+\end{tabular}
+\makeatother
+
+\bigskip
+
+\begin{multicols}{2}
+\input selnolig-english-wordlist
+\end{multicols}
+\end{document}
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-wordlist.tex b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-wordlist.tex
new file mode 100644
index 00000000000..fef41e9583b
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-english-wordlist.tex
@@ -0,0 +1,664 @@
+% !TeX root = selnolig-english-test.tex
+% !TEX TS-program = lualatex
+
+% Last updated: 2013/05/25
+% For use with the 'selnolig' package and the
+% driver program 'selnolig-english-test.tex'.
+
+
+\section*{Part 1: f-ligatures suppressed in any case}
+
+
+\begin{itemize}
+
+\item ff to f\hspace{0pt}f
+
+shelfful shelffuls bookshelfful selffulfilling
+
+
+\item fi to f\hspace{0pt}i
+
+(None in basic set)
+
+\item fl to f\hspace{0pt}l
+
+beefless briefless hoofless leafless roofless selfless turfless selflessly selflessness
+
+calflike dwarflike elflike gulflike hooflike leaflike rooflike serflike sheaflike shelflike surflike turflike waiflike wolflike
+
+halflife shelflife
+halflives shelflives
+
+halfline roofline
+halflines rooflines
+
+leaflet leaflets leafleted leafleting leafletting leafletted leafleteer
+
+pdflatex (even better: pdfLaTeX or pdf\LaTeX\ldots)
+
+
+\item ffi to ff\hspace{0pt}i
+
+Pfaffian Wolffian Wulffian
+
+
+\item ffl to ff\hspace{0pt}l
+
+cuffless stuffless cufflessly stufflessness
+
+scofflaw scofflaws cufflink cufflinks
+
+offline
+
+offload offloads offloading offloaded
+
+rufflike clifflike
+
+
+\item ffi to f\hspace{0pt}fi
+
+chaffinch chaffinches wolffish wolffishly
+
+\item ffl to f\hspace{0pt}fl
+
+safflower
+
+
+
+\item ft to f\hspace{0pt}t
+
+chieftain chieftaincy chieftaincies chieftainship chieftainships
+
+halftime halftone halftimes halftones
+
+rooftop rooftops rooftree rooftrees
+
+wolftrap calftrap leaftrap offtrack
+
+fifth fifths fifthly twelfth twelfths
+
+
+
+\item \emph{fr} to \emph{f\hspace{0pt}r} (italic font shape only)
+
+\emph{proofread proofreader proofroom}
+
+
+\item \bgroup \ebg \mbox{fb}, \mbox{fh}, \mbox{fj}, and \mbox{fk} ligatures \egroup
+
+halfback golfball goofball wolfberry halfbeak hoofbeat surfbird surfboard surfboarder surfboat
+
+halfhearted selfheal leafhopper selfhood serfhood wolfhound
+
+offbeat puffball snuffbox
+
+cliffhanger offhand offhanded offhandedly
+
+cliffjumper
+
+offkey
+
+\emph{but:} {\ebg Kafka, Sognefjord, Dovrefjell}
+
+
+
+
+\end{itemize}
+
+\section*{Part 2: Further f-ligatures suppressed if ``broadf'' option is set}
+
+\begin{itemize}
+
+\item ff to f\hspace{0pt}f
+
+(No extra cases in broadf set)
+
+
+\item fi to f\hspace{0pt}i
+
+elfin
+
+chafing leafing loafing sheafing strafing vouchsafing
+beefing reefing briefing debriefing
+coifing fifing jackknifing knifing midwifing waifing wifing
+
+airproofing childproofing fireproofing flameproofing mothproofing rustproofing soundproofing waterproofing weatherproofing proofing
+
+goofing hoofing reroofing roofing spoofing whoofing woofing
+
+begulfing engulfing ingulfing gulfing golfing rolfing selfing wolfing
+barfing
+
+bedwarfing dwarfing enserfing kerfing scarfing snarfing
+surfing turfing wharfing windsurfing
+
+deafish dwarfish elfish oafish selfish serfish unselfish wolfish
+
+deafishly dwarfishly elfishly oafishly selfishly serfishly unselfishly wolfishly
+
+deafishness dwarfishness elfishness oafishness selfishness serfishness unselfishness wolfishness
+
+beefier comfier goofier gulfier leafier surfier turfier
+
+beefiest comfiest goofiest gulfiest leafiest surfiest turfiest
+
+beefily goofily goofiness
+
+
+\item fl to f\hspace{0pt}l
+
+aloofly briefly chiefly deafly liefly
+
+
+\item ffi to ff\hspace{0pt}i
+
+baffing biffing outbluffing bluffing boffing buffing chaffing cheffing chuffing coffing coiffing handcuffing uncuffing cuffing daffing doffing enfeoffing infeoffing feoffing fluffing gaffing gruffing huffing luffing miffing muffing offing piaffing puffing quaffing rebuffing reffing restaffing restuffing riffing crossruffing overruffing underruffing ruffing sclaffing scoffing scuffing shroffing sluffing sniffing snuffing spiffing overstaffing understaffing staffing stiffing overstuffing stuffing tariffing tiffing waffing whiffing yaffing
+
+draffish giraffish gruffish offish raffish sniffish standoffish stiffish toffish
+
+draffishly giraffishly raffishly
+
+buffier chaffier chuffier cliffier daffier fluffier gruffier huffier iffier miffier puffier scruffier sniffier snuffier spiffier stuffier
+
+buffiest chaffiest chuffiest cliffiest daffiest fluffiest gruffiest huffiest iffiest miffiest puffiest scruffiest sniffiest snuffiest spiffiest stuffiest
+
+daffily fluffily gruffily huffily puffily scruffily sniffily snuffily spiffily stuffily
+
+fluffiness huffiness iffiness puffiness scruffiness sniffiness spiffiness stuffiness
+
+baffies biffies jiffies stuffies taffies toffies waffie waffies
+
+
+\item ffl to ff\hspace{0pt}l
+
+bluffly gruffly ruffly snuffly stiffly
+
+
+\item ffi to f\hspace{0pt}fi
+
+(No extra cases in broadf set)
+
+
+\item ffl to f\hspace{0pt}fl
+
+(No extra cases in broadf set)
+
+
+\item ft to f\hspace{0pt}t
+
+fifty fiftyish
+
+fifties fiftieth fiftieths
+
+fifteen fifteens fifteenth fifteenths
+
+
+
+\end{itemize}
+
+
+\section*{Part 3: Ligatures suppressed if ``hdlig'' option is set}
+
+\begin{itemize}
+
+\item ct to c\hspace{0pt}t
+
+arctangent coarctation
+
+
+\item st to s\hspace{0pt}t
+
+First, some words with ``th'' (from $\theta$ or $\vartheta$) after ``s'':
+
+asthma isthmus aesthetic
+
+
+\medskip
+Other reasons for suppressing st ligature:
+
+painstaker painstaking dogstail crosstalk gastight
+
+distant distasteful distillation distemperate distended distort distract distraught distribute distributed distribution district distrust disturb
+
+Maastricht
+
+
+
+
+\emph{But}, do not suppress the st ligature for distelfink, castle forecastle, nestle wrestle, bristle bristletail epistle glisten gristle listen mistletoe thistle whistle, apostle jostle, bustle hustle rustle
+
+
+
+
+\item sp to s\hspace{0pt}p
+
+First, some words with ``ph'' (from $\phi$ or $\varphi$) after ``s'':
+
+asphalt asphodel asphyxiate blaspheme blasphemy
+
+dysphagia dysphonia dysphoria sphagnum sphinx
+
+atmosphere bathysphere biosphere blogosphere ecosphere exosphere hemisphere hydrosphere ionosphere magnetosphere stratosphere
+
+spherical sphericity spheroid
+
+phosphorous phosphates phosphorescent
+
+\medskip
+Words with other reasons for suppressing sp ligature:
+
+clothespin clothespress
+
+businesspeople congresspeople craftspeople dispeople newspeople salespeople spokespeople townspeople tradespeople tribespeople
+
+businessperson congressperson craftsperson draftsperson newsperson salesperson spokesperson
+
+transpacific transparent transpersonal transpierce transplant transplacental transpolar transport transpose transposon
+
+(but: transpicuous transpire transponder)
+
+(also: respond despondent corespond correspond)
+
+trespass trespassing
+
+cisplatin
+
+disparage disparaged disparagement disparagements disparager disparagers disparages disparaging disparagingly
+
+disparate disparately disparateness disparatenesses
+
+disparities disparity dispart disparted disparting disparts
+
+dispassion dispassionate dispassionately dispassionateness dispassionatenesses dispassions
+
+dispatch dispatched dispatcher dispatchers dispatches dispatching
+
+dispel dispelled dispelling dispels
+
+dispend dispended dispending dispends dispensabilities dispensability dispensable dispensaries dispensary dispensation dispensational dispensations dispensatories dispensatory dispense dispensed dispenser dispensers dispenses dispensing
+
+dispeople dispeopled dispeoples dispeopling
+
+dispersal dispersals dispersant dispersants disperse dispersed dispersedly disperser dispersers disperses dispersible dispersing dispersion dispersions dispersive dispersively dispersiveness dispersivenesses
+
+dispersoid dispersoids
+
+dispirit dispirited dispiritedly dispiritedness dispiritednesses dispiriting dispirits
+
+dispiteous
+
+displace displaceable displaced displacement displacements displaces displacing
+
+displant displanted displanting displants
+
+display displayable displayed displaying displays
+
+displease displeased displeases displeasing displeasure displeasures
+
+displode disploded displodes disploding displosion displosions
+
+displume displumed displumes displuming
+
+disport disported disporting disportment disportments disports
+
+disposabilities disposability disposable disposables disposal disposals dispose disposed disposer disposers disposes disposing
+
+disposition dispositional dispositions dispositive
+
+dispossess dispossessed dispossesses dispossessing dispossession dispossessions dispossessor dispossessors
+
+disposure disposures
+
+dispraise dispraised dispraiser dispraisers dispraises dispraising dispraisingly
+
+dispread dispreading dispreads
+
+disprize disprized disprizes disprizing
+
+disproof disproofs
+
+disproportion disproportional disproportionate disproportionated disproportionately disproportionates disproportionating disproportionation disproportionations disproportioned disproportioning disproportions
+
+disprovable disprove disproved disproven disproves disproving
+
+disputable disputably disputant disputants disputation disputations disputatious disputatiously disputatiousness disputatiousnesses dispute disputed disputer disputers disputes disputing
+
+indispensabilities indispensability indispensable indispensableness indispensablenesses indispensables indispensably
+
+indispose indisposed indisposes indisposing indisposition indispositions
+
+indisputable indisputableness indisputablenesses indisputably
+
+misperception misphrase misplace misplant misplay misprice misprint mispronounce
+
+monodisperse nondispersive
+
+polydisperse polydispersities polydispersity
+
+predispose predisposed predisposes predisposing predisposition predispositions
+
+redisplay redisplayed redisplaying redisplays
+
+redispose redisposed redisposes redisposing redisposition redispositions
+
+undisputable undisputed
+
+suspend suspended suspends suspension
+
+
+\end{itemize}
+
+
+
+\bigskip
+
+Note: The test words in the remainder of this document are generally set in \emph{italics} because the text font that's used by the ``driver'' program, \emph{selnolig-english-test.tex}, does not feature the applicable ligatures in the upright font shape.
+
+
+\begin{itemize}
+
+\item \emph{th} to \emph{t\hspace{0pt}h}
+
+\bgroup \em
+
+bathouse boathouse cathouse courthouse hothouse lighthouse nuthouse outhouse penthouse pilothouse pothouse
+
+guesthouse oasthouse pesthouse
+
+bolthead cathead fathead flathead gilthead hothead lightheaded masthead meathead pithead pothead printhead softhead softheaded
+
+fainthearted greathearted lighthearted softhearted stouthearted sweetheart sweethearts
+
+adulthood aunthood knighthood parenthood priesthood prophethood sainthood servanthood
+
+bolthole knothole porthole posthole pesthole pothole rathole
+
+boathook meathook pothook
+
+foothold potholder roothold
+
+anthill foothill
+
+goatherd neatherd
+
+outhaul outhear outhit outhomer outhowl outhumor outhunt outhustle
+
+shorthair shorthanded shorthorn % a breed of sheep...
+
+antiapartheid apartheid dustheap firsthand nighthawk
+
+posthumous posthumously pothunt warthog watthour kilowatthour
+
+
+
+
+\egroup
+
+
+\item \emph{at} to \emph{a\hspace{0pt}t}
+
+\bgroup \em
+
+anathema aromatherapy intrathoracic metathesis ultrathin ultrathick
+\egroup
+
+\item \emph{et} to \emph{e\hspace{0pt}t}
+
+\bgroup \em
+ninetieth ninetieths ninety nineteen
+
+nametag
+
+betake betatter betray betroth
+
+detach detain detail
+
+detect undetectable detective
+
+detent detention detest
+
+detract detrain detribalize detriment detritus
+
+bristletail dovetail horsetail
+
+cheetah chetah caretaker
+
+foretell fortunetelling
+
+detergent deteriorate determent determinant
+
+preterm pretext
+
+retext teletext
+
+bluetick detick
+
+betide yuletide
+
+betime beforetime lifetime peacetime sometime
+
+detrain drivetrain housetrain pretrain retrain
+
+firetrap livetrap mousetrap
+
+axletree saddletree shoetree
+
+timetable
+
+preteen pretend pretence pretense pretentious pretest pretext pretitling
+
+pretreat pretrim pretrial
+
+retag retape retake reteach retie retile retime retint retire retiring retitle retrace retrack retract retrans retransmit retread retreat retrench retrieve retribution retries retrim retune
+
+return unreturnable
+
+entirety entireties surety sureties safety safeties
+
+archetype archetypal
+
+subtlety teletype teletypewriter
+
+\egroup
+
+
+\item \emph{as} to \emph{a\hspace{0pt}s}
+
+\bgroup \em
+
+teaspoon infrastructure seastrand
+
+infraspecific intraspecies intraspecific
+
+\egroup
+
+
+\item \emph{is} to \emph{i\hspace{0pt}s}
+
+\bgroup \em
+
+antisag antisatellite antiscience antisecrecy antisense antiseptic antishark antiship antishock antiskid antislavery antislip antismog antismoke antismuggling antismut antisocial antisolar antispasmodic antispeculative antistatic antistick antistress antistrike antisubmarine antisubversion antisymmetric antisyphilitics
+
+(but: mantissa, gigantism, sycophantism, sycophantish)
+
+\egroup
+
+\item {\ebg\emph{\mbox{sk}}} to {\ebg{\emph{s\hspace{0pt}k}}} (EB Garamond)
+
+\bgroup \ebg \em
+greenskeeper groundskeeper
+
+triskaidekaphobia rathskeller
+
+miskeep miskept miskick misknow
+
+Catskills Peekskill
+
+\egroup
+
+
+
+\item \emph{ll} to \emph{l\hspace{0pt}}
+
+\bgroup \em
+animallike bowllike eellike jewellike owllike petallike seallike snaillike soullike taillike tunnellike veillike woollike
+
+bowelless coalless goalless heelless idealless keelless mailless mealless recoilless skilless skillessness skillessnesses soilless soulless soullessly soullessness soullessnesses tailless toolless trailless wheelless
+
+\egroup
+\end{itemize}
+
+
+
+\section*{Part 4: Cases where one ligature pre-empts the use of a subsequent ligature}
+
+\subsection*{Cases of \emph{as}, \emph{is}, and \emph{us} ligatures pre-empting use of \emph{st} ligature}
+
+\bgroup \em
+
+\begin{itemize}
+\item as \emph{pre-empting} st
+
+abreast aghast alabaster antipasto astern astir astonish astound astride astringent astronomy astute avast
+
+bastard baste beast blast boast breakfast breast
+
+cast caste coast catastrophe chaste coast contrast
+
+devastate disaster drastic dynasty
+
+east ecclesiastic fast fasten feast forecast
+
+ghastly gastronomy gymnastics haste lambast last least
+
+mast master megastar metastable nasty oast oasthouse
+
+past pasta pastel pastor pasteurize plastic roast
+
+scholastic spastic steadfast stochastic toast upcoast waste yeast
+
+\item is \emph{pre-empting} st
+
+fist gist grist heist list mist
+
+administer statistics statistically
+
+\emph{plus, \emph{hundreds} of words ending in -ist:}
+
+activist agronomist biologist \emph{etc.}
+
+\ \ \ \emph{but:} misthink misthrow calisthenic
+
+
+
+\item us \emph{pre-empting} st
+
+bust crust disgust dust exhaust joust just lust must oust rust thrust wanderlust
+
+
+\end{itemize}
+\egroup
+
+
+\subsection*{Cases of \emph{at} and \emph{et} ligatures pre-empting a \emph{th} ligature}
+
+\begin{itemize}
+\item \emph{at} ligature preempting the \emph{th} ligature
+
+\bgroup \em
+
+bath math lath lathe path
+
+atheism athlete
+
+beneath bequeath blather breath
+
+catharsis catheter cathode catholic catholicism
+
+death empathy father fathom feather
+
+gather heath heathen loath
+
+marathon oath pathetic pathology
+
+rather rathskeller
+
+scathe sheath slather strath swath
+
+triathlon triathlete weather wrath wreath
+
+
+\egroup
+\medskip
+Words for which the \emph{at} ligature need \emph{not} be suppressed in favor of the \emph{th} ligature:
+\emph{bathouse boathouse cathouse boathook meathook goatherd neatherd cathead fathead flathead meathead rathole greathearted}
+
+
+\item \emph{et} ligature preempting the \emph{th} ligature
+
+\bgroup \em
+bethank bethink bethorn bethought bethump
+
+dethrone doublethink firethorn flamethrower forethought freethinker methinks nonetheless nonethical
+
+rethink rethread something whitethroat
+
+twentieth thirtieth fortieth fiftieth sixtieth seventieth eightieth ninetieth hundreth
+
+amethyst bellwether brethren ethical ethane ether ethnic ethyl lethal lethargic methadone method plethora seethe teeth teethe tether together urethane
+
+\egroup
+\medskip
+Words for which the \emph{et}-ligature need \emph{not} be suppressed:
+\emph{Beethoven prophethood sweetheart sweethearts }
+
+\end{itemize}
+
+
+\subsection*{Cases of \emph{as}-, \emph{is}-, and \emph{us}-ligatures pre-empting use an \emph{sp}-ligature}
+
+\bgroup \em
+asparagus aspect aspire Casper Caspar clasp gasp grasp hasp Jasper rasp raspberry wasp \emph{(but what to do about } asp?\emph{)}
+
+megaspores tetraspore
+
+crisp lisp whisper wisp
+
+
+\emph{but:} disparity dispart mispackage misplace
+
+auspicious cusp suspicious tricuspid \emph{but:} suspect suspend
+
+\egroup
+
+
+\subsection*{Cases of an \emph{et} ligature pre-empting a \emph{ta} ligature}
+
+Note: It would appear that in all cases where an \emph{et} ligature should be suppressed in favor of a subsequent \emph{ta} ligature, the \emph{et} ligature spans a morpheme boundary and hence shouldn't be used anyway. Some examples:
+
+\bgroup \em
+betake betatter bristletail caretaker cheetah
+detach detail detain dovetail
+foretaste horsetail nametag pretake
+pretape pretaste pretax retable retack
+retag retape retake retaliate retard retarget
+whitetail wiretap
+
+\egroup
+\medskip
+Note that the \emph{et}-ligature should not be suppressed \emph{globally} in favor of a subsequent \emph{ta} ligature, because of the following groups of words:
+
+\bgroup \em
+\begin{itemize}
+\item \emph{Words ending in -et-ary:}
+budgetary dietary monetary planetary proprietary secretary
+
+\item \emph{Words ending in -et-able :}
+covetable depletable getable interpretable marketable pocketable vegetable (but: retable, timetable)
+
+\item \emph{Words ending in -et-al:} centripetal
+metal petal skeletal societal varietal vegetal
+
+\item \emph{Words containing metal:} metal metallic metallurgy
+\end{itemize}
+\egroup
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.pdf b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.pdf
new file mode 100644
index 00000000000..d36f872fbaf
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.tex b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.tex
new file mode 100644
index 00000000000..da4027136ae
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-test.tex
@@ -0,0 +1,61 @@
+% !TEX TS-program = lualatex
+\documentclass[ngerman]{article}
+
+% Test program: Apply the 'selnolig' package, with
+% 'german' language option set, to a list of German words
+% which contain one or more non-ligation points. The list
+% of test words is in 'selnolig-german-wordlist.tex'.
+%
+% Author: Mico Loretan (loretan dot mico at gmail dot com)
+% Date: 2013/05/25
+
+% Check first that we're running lua(la)tex.
+\usepackage{ifluatex}
+\ifluatex\else
+ \typeout{==============================================}
+ \typeout{ The file selnolig-german-test.tex must be }
+ \typeout{compiled using LuaLaTeX. Exiting immediately. }
+ \typeout{==============================================}
+ \endinput
+\fi
+
+\usepackage[vmargin=1in,hmargin=0.75in]{geometry}
+
+\usepackage{fontspec}
+\defaultfontfeatures{%
+ Ligatures={TeX,Common},
+ Numbers = OldStyle}
+\setmainfont{EB Garamond 12 Regular}
+\newfontfamily\gpp{Garamond Premier Pro}
+\newfontfamily\ebg{EB Garamond 12 Regular}
+
+\usepackage[document]{ragged2e}
+\setlength\parindent{0pt}
+\parskip=0.3\baselineskip
+
+\usepackage{babel}
+\usepackage{selnolig}
+
+\usepackage{showhyphens}
+\usepackage{multicol}
+ \setlength\columnseprule{.4pt}
+\title{selnolig-german-test}
+\author{\null}
+\date{}
+\begin{document}
+\gpp
+\maketitle
+
+\begin{tabular}{@{} *{9}{l} }
+Erscheinungsbild der f-Ligaturen
+ &ff &fi &fl &ffi &ffl &ft & \mbox{fj} &\mbox{fk}\\
+Beispiele
+ &Affe &finden &flink &offiziell &soufflieren & Luft & Sognefjord &Kafka\\
+\end{tabular}
+
+\bigskip
+
+\begin{multicols}{2}
+\input selnolig-german-wordlist
+\end{multicols}
+\end{document}
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-wordlist.tex b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-wordlist.tex
new file mode 100644
index 00000000000..1b42f5d21a0
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig-german-wordlist.tex
@@ -0,0 +1,986 @@
+% !TeX root = selnolig-german-test.tex
+% !TEX TS-program = lualatex
+
+% Last updated: 2013/05/25
+% For use with the 'selnolig' package and the
+% driver program 'selnolig-german-test.tex'.
+
+\section*{Wörter, für welche man ff-, fi-, fl-, ffi- und ffl-Ligaturen vermeiden sollte}
+
+Auflaufform Auflaufformen (weder fl- noch ff-Ligatur!)
+
+\medskip
+Ablauffolge Ablauffolgen
+
+ablauffähig ablauffähige ablauffähigem ablauffähigen ablauffähiger ablauffähiges Ablauffähigkeit Ablauffähigkeiten
+
+Ablaufleitung Ablaufleitungen
+
+Ablaufliste Ablauflisten
+
+Abruffunktion Abruffunktionen
+
+Anruffalle Anruffallen
+
+Anruffunktion Anruffunktionen
+
+Anzweiflung Anzweiflungen
+
+auffahrbar auffahrbare auffahrbarem auffahrbaren auffahrbarer auffahrbares auffahre auffahren auffahrend auffahrende auffahrendem auffahrenden auffahrender auffahrendes auffahrt Auffahrten Auffahrtsweg Auffahrunfall Auffahrunfalls Auffahrunfälle Auffahrunfällen
+
+auffalle auffallen auffallend auffallende auffallendem auffallenden auffallender auffallendere auffallenderem auffallenderen auffallenderer auffallenderes auffallenderweise auffallendes auffallendst auffallendste auffallendstem auffallendsten auffallendster auffallendstes auffallt
+
+auffaltbar Auffaltungen
+
+auffand auffanden auffandest auffandet auffandst
+
+auffangbar auffangbare auffangbarem auffangbaren auffangbarer auffangbares auffange auffangen auffangend auffangende auffangendem auffangenden auffangender auffangendes
+
+Auffangbecken Auffangbeckens Auffanglager Auffanglagern Auffanglagers Auffangregister Auffangregistern Auffangregisters Auffangt Auffangvorrichtung Auffangvorrichtungen Auffangwanne Auffangwannen Auffangweiche Auffangweichen
+
+auffassbar auffassbare auffassbarem auffassbaren auffassbarer auffassbares auffasse auffassen auffassend auffassende auffassendem auffassenden auffassender auffassendes auffassens auffassest auffasst auffasste auffassten auffasstest auffasstet
+
+Auffassbarkeit Auffassbarkeiten Auffassung Auffassungen Auffassungsgabe Auffassungsgaben Auffassungsvermögen Auffassungsvermögens
+
+auffasst auffasste auffassten auffasstest auffasstet
+
+auffaßt auffaßte auffaßten auffaßtest auffaßtet
+
+auffiel auffiele auffielen auffielst auffielt
+
+auffindbar auffindbare auffindbarem auffindbaren auffindbarer auffindbares Auffindbarkeit Auffindbarkeiten auffinde auffinden auffindend auffindende auffindendem auffindenden auffindender auffindendes auffindens auffindest auffindet Auffindung Auffindungen
+
+auffing auffinge auffingen auffingst auffingt
+
+auffische auffischen auffischend auffischende auffischendem auffischenden auffischender auffischendes auffischest auffischst auffischt auffischte auffischten auffischtest auffischtet
+
+aufflackern Aufflackerns
+
+aufflamme aufflammen aufflammend aufflammende aufflammendem aufflammenden aufflammender aufflammendes aufflammst aufflammt aufflammte aufflammten aufflammtest aufflammtet
+
+auffliege auffliegen auffliegend auffliegende auffliegendem auffliegenden auffliegender auffliegendes auffliegst auffliegt
+
+auffloge aufflogen aufflogest auffloget
+
+aufflöge aufflögen aufflögest aufflöget
+
+auffordere auffordern auffordernd auffordernde aufforderndem auffordernden auffordernder aufforderndes aufforderns aufforderst auffordert aufforderte aufforderten auffordertest auffordertet Aufforderung Aufforderungen auffordre
+
+aufforstbar aufforstbare aufforstbarem aufforstbaren aufforstbarer aufforstbares aufforste aufforsten aufforstend aufforstende aufforstendem aufforstenden aufforstender aufforstendes aufforstens aufforstest aufforstet aufforstete aufforsteten aufforstetest aufforstetet Aufforstung Aufforstungen
+
+auffrass auffrassen auffrassest auffrasst
+
+auffraß auffraßen auffraßest auffraßt
+
+auffresse auffressen auffressend auffressende auffressendem auffressenden auffressender auffressendes
+
+auffresst
+
+auffreßt
+
+auffrischbar auffrischbare auffrischbarem auffrischbaren auffrischbarer auffrischbares auffrische auffrischen auffrischend auffrischende auffrischendem auffrischenden auffrischender auffrischendes auffrischens auffrischest auffrischst auffrischt auffrischte auffrischten auffrischtest auffrischtet Auffrischung Auffrischungen
+
+auffrisiere auffrisieren auffrisierend auffrisierende auffrisierendem auffrisierenden auffrisierender auffrisierendes auffrisierst auffrisiert auffrisierte auffrisiertem auffrisierten auffrisierter auffrisiertes auffrisiertest auffrisiertet
+
+auffrisst
+
+auffrißt
+
+auffräse auffräsen auffräsest auffräset
+
+auffrässe auffrässen auffrässest auffrässet
+
+auffräße auffräßen auffräßest auffräßet
+
+auffuhr auffuhren auffuhrst auffuhrt
+
+auffächerbar auffächerbare auffächerbarem auffächerbaren auffächerbarer auffächerbares auffächere auffächern auffächernd auffächernde auffächerndem auffächernden auffächernder auffächerndes auffächerns auffächerst auffächert auffächerte auffächerten auffächertest auffächertet Auffächerung Auffächerungen auffächre
+
+auffährst auffährt hinauffährt
+
+arbeitskampffähig hoffähig Kampffähigkeit kampffähig lauffähig prüffähige straffähig tariffähig Tariffähigkeit Umlauffähigkeit wettkampffähiges
+
+auffällig auffällige auffälligem auffälligen auffälliger auffälligere auffälligerem auffälligeren auffälligerer auffälligeres auffälliges auffälligkeit auffälligkeiten auffälligst auffälligste auffälligstem auffälligsten auffälligster auffälligstes auffällst auffällt
+
+auffängst auffängt
+
+aufführbar aufführbare aufführbarem aufführbaren aufführbarer aufführbares aufführe aufführen aufführend aufführende aufführendem aufführenden aufführender aufführendes aufführens aufführst aufführt aufführte aufführten aufführtest aufführtet Aufführung Aufführungen Aufführungsstatistik Aufführungsstil Aufführungsstile Aufführungsstilen Aufführungsstils
+
+auffüllbar auffüllbare auffüllbarem auffüllbaren auffüllbarer auffüllbares auffülle auffüllen auffüllend auffüllende auffüllendem auffüllenden auffüllender auffüllendes auffüllens auffüllst auffüllt auffüllte auffüllten auffülltest auffülltet Auffüllung Auffüllungen
+
+aufisst
+
+auflache auflachen auflachend auflachende auflachendem auflachenden auflachender auflachendes
+
+auflachst
+
+auflacht auflachte auflachten auflachtest auflachtet
+
+aufladbar aufladbare aufladbarem aufladbaren aufladbarer aufladbares
+
+auflade aufladen aufladend aufladende aufladendem aufladenden aufladender aufladendes aufladens Auflader Aufladerin Aufladerinnen Aufladern Aufladers Aufladet Aufladevorgang Aufladevorgangs
+
+Aufladung Aufladungen
+
+Auflage Auflagefläche Auflageflächen Auflagen Auflagenerhöhung Auflagenerhöhungen Auflagenstark Auflagenstarke Auflagenstarkem Auflagenstarken Auflagenstarker Auflagenstarkes Auflagenstärke Auflagenzahl Auflagenzahlen Auflagenziffer Auflagenziffern
+
+auflandig auflandige auflandigem auflandigen auflandiger auflandiges
+
+auflasse auflassen auflassend auflassende auflassendem auflassenden auflassender auflassendes auflassens auflasst Auflassung Auflassungen
+
+auflauere auflauern auflauernd auflauernde auflauerndem auflauernden auflauernder auflauerndes auflauerst auflauert auflauerte auflauerten auflauertest auflauertet
+
+Auflauf auflaufe auflaufen auflaufend auflaufende auflaufendem auflaufenden auflaufender auflaufendes Auflaufs auflauft
+
+auflaure
+
+auflaßt
+
+auflebe aufleben auflebend auflebende auflebendem auflebenden auflebender auflebendes
+
+auflebst
+
+auflebt auflebte auflebten auflebtest auflebtet
+
+auflege auflegen auflegend auflegende auflegendem auflegenden auflegender auflegendes
+
+auflegst
+
+auflegt auflegte auflegten auflegtest auflegtet
+
+auflehne auflehnen auflehnend auflehnende auflehnendem auflehnenden auflehnender auflehnendes auflehnens auflehnst auflehnt auflehnte auflehnten auflehntest auflehntet Auflehnung Auflehnungen
+
+auflese auflesen auflesend auflesende auflesendem auflesenden auflesender auflesendes
+
+auflest
+
+aufleuchte aufleuchten aufleuchtend aufleuchtende aufleuchtendem aufleuchtenden aufleuchtender aufleuchtendes aufleuchtest aufleuchtet aufleuchtete aufleuchteten aufleuchtetest aufleuchtetet
+
+aufliege aufliegen aufliegend aufliegende aufliegendem aufliegenden aufliegender aufliegendes Aufliegeschema aufliegst aufliegt
+
+aufliesse aufliessen aufliessest aufliesset
+
+aufließe aufließen aufließest aufließet
+
+auflistbar auflistbare auflistbarem auflistbaren auflistbarer auflistbares
+
+aufliste auflisten auflistend auflistende auflistendem auflistenden auflistender auflistendes auflistens auflistest auflistet auflistete auflisteten auflistetest auflistetet Auflistung Auflistungen
+
+auflockere auflockern auflockernd auflockernde auflockerndem auflockernden auflockernder auflockerndes auflockerns auflockerst auflockert auflockerte auflockerten auflockertest auflockertet Auflockerung Auflockerungen Auflockerungstendenz Auflockerungstendenzen auflockre
+
+auflodere auflodern auflodernd auflodernde aufloderndem auflodernden auflodernder aufloderndes aufloderns aufloderst auflodert aufloderte aufloderten auflodertest auflodertet auflodre
+
+auflädst auflädt
+
+Aufläufe Aufläufen aufläuft
+
+auflösbar auflösbare auflösbarem auflösbaren auflösbarer auflösbares auflöse auflösen auflösend auflösende auflösendem auflösenden auflösender auflösendes auflösens auflösest auflöst auflöste auflösten auflöstest auflöstet Auflösung Auflösungen Auflösungsbeschluss Auflösungsbeschlusses Auflösungsbeschluß Auflösungsbeschlüsse Auflösungsbeschlüssen Auflösungserscheinung Auflösungserscheinungen Auflösungsprozess Auflösungsprozesse Auflösungsprozessen Auflösungsprozeß
+
+auflüde auflüden auflüdest auflüdet
+
+Autobahnauffahrt
+
+Bauauflage Bauauflagen
+
+Baustoffindustrie Baustoffindustrien
+
+Baustoffingenieur Baustoffingenieure
+
+begreiflich begreifliche begreiflichem begreiflichen begreiflicher begreiflichere begreiflicherem begreiflicheren begreiflicherer begreiflicheres begreiflicherweise begreifliches begreiflichst begreiflichste begreiflichstem begreiflichsten begreiflichster begreiflichstes
+
+begrifflich begriffliche begrifflichem begrifflichen begrifflicher begriffliches
+
+behilflich behilfliche behilflichem behilflichen behilflicher behilfliches
+
+beruflich berufliche beruflichem beruflichen beruflicher berufliches
+
+Bettauflage Bettauflagen
+
+bezweifle bezweiflete bezweifleten
+
+Bezweiflung
+
+Bildschirmauflösung Bildschirmauflösungen
+
+Biohofladen
+
+bischöflich bischöfliche bischöflichem bischöflichen bischöflicher bischöfliches
+
+Bischoffinger
+
+Brieffach
+
+Briefform
+
+Brieffächer
+
+Briefintrige
+
+Brieflaufzeiten
+
+brieflich briefliche brieflichem brieflichen brieflicher briefliches
+
+Büffler Büfflerin Büfflerinnen
+
+Chefflugleiter
+
+Cheffunktion
+
+Chefideologe
+
+Dampfleistung
+
+Dampflokomotiven
+
+darauffolge darauffolgen darauffolgend darauffolgende darauffolgendem darauffolgenden darauffolgender darauffolgendes darauffolgst darauffolgt darauffolgte darauffolgten darauffolgtest darauffolgtet
+
+Darstellungsauffassung Darstellungsauffassungen
+
+Dauertropfflasche
+
+Dorffeuerwehr
+
+Dorfladen
+
+drauflege drauflegen drauflegend drauflegende drauflegendem drauflegenden drauflegender drauflegendes drauflegst drauflegt drauflegte drauflegten drauflegtest drauflegtet
+
+drauflos drauflosgegangen drauflosgegangene drauflosgegangenem drauflosgegangenen drauflosgegangener drauflosgegangenes drauflosgehe drauflosgehen drauflosgehend drauflosgehende drauflosgehendem drauflosgehenden drauflosgehender drauflosgehendes drauflosgehst drauflosgeht drauflosging drauflosginge drauflosgingen drauflosgingst drauflosgingt
+
+dörflich dörfliche dörflichem dörflichen dörflicher dörfliches
+
+Düsenkampfflugzeug
+
+Eingabeaufforderung
+
+Einwurffächer
+
+Einzelhandelskaufleute Einzelhandelskaufleuten
+
+elffach elffache elffachem elffachen elffacher elffaches
+
+elffingrig elffingrige
+
+Erstaufführung
+
+Erstauflage
+Erstauflagen
+
+erzbischöflich erzbischöfliche erzbischöflichem erzbischöflichen erzbischöflicher erzbischöfliches
+
+Freiberufler Freiberuflerin Freiberuflerinnen Freiberuflern Freiberuflers
+
+freiberuflich freiberufliche freiberuflichem freiberuflichen freiberuflicher freiberufliches
+
+Freilichtaufführung Freilichtaufführungen
+
+fünffach fünffache fünffachem fünffachen fünffacher fünffaches
+
+fünffingerig fünffingerige fünffingerigem fünffingerigen fünffingeriger fünffingeriges
+
+Fünflinge Fünflingen
+
+Gastspielaufführung
+
+Gebirgsauffaltung
+
+glimpflich glimpfliche glimpflichem glimpflichen glimpflicher glimpfliches
+
+Grafikauflösung Grafikauflösungen Grafikkartenauflösung Grafikkartenauflösungen
+
+grifffest grifffeste grifffestem grifffesten grifffester grifffestes
+
+Großkaufleute Großkaufleuten % Buddenbrooks
+
+Grundauffassung Grundauffassungen
+
+Gugelhupfform
+
+handgreiflich handgreifliche handgreiflichem handgreiflichen handgreiflicher handgreifliches Handgreiflichkeit Handgreiflichkeiten
+
+hauptberuflich hauptberufliche hauptberuflichem hauptberuflichen hauptberuflicher hauptberufliches
+
+hilflos hilflose hilflosem hilflosen hilfloser hilflosere hilfloserem hilfloseren hilfloserer hilfloseres hilfloses hilflosest hilfloseste hilflosestem hilflosesten hilflosester hilflosestes
+
+hinauffahre hinauffahren hinauffahrend hinauffahrende hinauffahrendem hinauffahrenden hinauffahrender hinauffahrendes hinauffahrt
+
+hinauffuhr hinauffuhren hinauffuhrst hinauffuhrt
+
+hinaufführe hinaufführen hinaufführend hinaufführende hinaufführendem hinaufführenden hinaufführender hinaufführendes hinaufführst hinaufführt hinaufführte hinaufführten hinaufführtest hinaufführtet
+
+hochauflösend hochauflösende hochauflösendem hochauflösenden hochauflösender hochauflösendes
+
+hoffähig
+
+Hofladen
+
+Hoflandwirtschaft
+
+Hofleben
+
+Hufform
+
+Häuflein Häufleins
+
+höflich höfliche höflichem höflichen höflicher höflichere höflicherem höflicheren höflicherer höflicheres höfliches höflichkeit höflichkeiten höflichkeitsbesuche höflichkeitsbesuches höflichkeitsformeln höflichst höflichste höflichstem höflichsten höflichster höflichstes
+
+Impffolgen
+
+Impfforschung
+
+Impfflüssigkeit
+
+inbegriffleitend
+
+Kampfflieger Kampffliegers
+
+Kampfflugzeug Kampfflugzeuge Kampfflugzeuges
+
+Kampffront
+
+kampffähig kampffähige kampffähigem kampffähigen kampffähiger kampffähiges Kampffähigkeit
+
+Kampfführung
+
+Kampflaune
+
+Kampflied Kampflieder Kampfliedern
+
+kampflos kampflose kampflosem kampflosen kampfloser kampfloses
+
+kampflustig kampflustige kampflustigem kampflustigen kampflustiger kampflustigere kampflustigerem kampflustigeren kampflustigerer kampflustigeres kampflustiges kampflustigst kampflustigste kampflustigstem kampflustigsten kampflustigster kampflustigstes
+
+Kauffahrer Kauffahrerin Kauffahrerinnen Kauffahrern Kauffahrers
+Kauffahrt
+
+Kauffrau Kauffrauen
+
+Kaufindex Kaufindizes
+
+Kaufinteresse Kaufinteressenten
+
+Kaufladen Kaufladens
+
+Kauflaune
+
+Kaufleidenschaft
+
+Kaufleitung
+
+Kaufleute Kaufleuten
+
+Kauflust kauflustig kauflustige kauflustiger kauflustigste kauflustigsten
+
+Kaufläden
+
+Kettensträfling Kettensträflinge Kettensträflingen Kettensträflings
+
+Kleiderstoffindustrie
+
+knifflig knifflige kniffligem kniffligen kniffliger kniffligere kniffligerem kniffligeren kniffligerer kniffligeres kniffliges kniffligst kniffligste kniffligstem kniffligsten kniffligster kniffligstes
+
+Knopfloch
+
+Knopflöcher
+
+Knoepffler
+
+Kontoauflösung
+
+Kopfform Menschenkopfform
+
+kopflastig kopflastige kopflastigem kopflastigen kopflastiger kopflastiges
+
+Kopfleiste
+
+kopflos kopflose kopflosem kopflosen kopfloser kopflosere kopfloserem kopfloseren kopfloserer kopfloseres kopfloses kopflosest kopfloseste kopflosestem kopflosesten kopflosester kopflosestes
+
+Kreislauffunktion
+
+Kreislaufleiden
+
+Kunststoffindustrie
+
+käuflich käufliche käuflichem käuflichen käuflicher käufliches Käuflichkeit
+
+Köpflein
+
+Lagerauffüllung
+
+Lagerauflösung
+
+Lauffeuer Lauffeuern Lauffeuers
+
+Lauffolgen
+
+lauffähig lauffähige lauffähigem lauffähigen lauffähiger lauffähiges Lauffähigkeit
+
+Laufindex Laufindexe Laufindexen Laufindexes Laufindices
+
+Laufleine Laufleinen
+
+Lauflernhilfen
+
+Lebensauffassung Lebensauffassungen
+
+Liebhaberaufführung
+
+Löffler
+
+markgräflich markgräfliche markgräflichem markgräflichen markgräflicher markgräfliches
+
+Mindestreserveauflagen
+
+Monitorauflösung Monitorauflösungen
+
+nebenberuflich nebenberufliche nebenberuflichem nebenberuflichen nebenberuflicher nebenberufliches
+
+Neuauflage Neuauflagen
+
+Oberstufler
+
+offline
+
+Opernaufführung Opernaufführungen
+
+Parlamentsauflösung
+
+Politikauffassung Politikauffassungen
+
+Produktionsauflagen
+
+Prüffach
+
+Prüffeld
+
+Prüffächer
+
+Prüfingenieur
+
+Prüfling Prüflinge Prüflingen Prüflings
+
+Prüfliste Prüflisten
+
+rauflustig rauflustige rauflustigem rauflustigen rauflustiger rauflustiges
+
+Reichstagsauflösung
+
+reiflich reifliche reiflichem reiflichen reiflicher reiflichere reiflicherem reiflicheren reiflicherer reiflicheres reifliches reiflichst reiflichste reiflichstem reiflichsten reiflichster reiflichstes
+
+Restauflage Restauflagen
+
+Rinder-Kopffleisch
+
+Rohstoffindex Rohstoffindexe Rohstoffindices Rohstoffindustrie
+
+Rohstoffingenieur Rohstoffingenieure
+
+Schaffell Schaffelle Schaffellen Schaffells
+
+Schafleder Schafledern Schafleders
+
+Scherflein Scherfleins
+
+schieflache schieflachen schieflachend schieflachende schieflachendem schieflachenden schieflachender schieflachendes schieflachst schieflacht schieflachte schieflachten schieflachtest schieflachtet
+
+schieflag Schieflage Schieflagen schieflagst schieflagt
+
+Schieflaufen
+
+schiefliege schiefliegen schiefliegend schiefliegende schiefliegendem schiefliegenden schiefliegender schiefliegendes schiefliegst schiefliegt
+
+schiefläuft
+
+Schilffeld Schilffelder % Th. Mann's "Tod in Venedig"
+
+Schilfinsel Schilfinseln
+
+schimpflich schimpfliche schimpflichem schimpflichen schimpflicher schimpfliches
+
+Schlafforscher Schlafforschung
+
+Schlaffrisur
+
+Schlaflied Schlaflieder Schlafliedern Schlafliedes Schlaflieds
+
+schlaflos schlaflose schlaflosem schlaflosen schlafloser schlafloses Schlaflosigkeit Schlaflosigkeiten
+
+Schlupfloch Schlupfloches Schlupflochs
+
+Schlupflöcher Schlupflöchern
+
+Schnüffler Schnüfflerin Schnüfflerinnen Schnüfflern Schnüfflers
+
+schweflig schweflige schwefligem schwefligen schwefliger schwefliges
+
+Schöpflöffel Schöpflöffeln Schöpflöffels
+
+selbstauffaltend
+
+Selbstauflösung
+
+Serienbrieffunktion
+
+Sprengstofffallen
+
+steckbrieflich
+
+Steuerschnüffler Steuerschnüfflern Steuerschnüfflers
+
+Straffall Straffalls
+
+straffrisch
+
+Straffälle straffällig straffällige straffälligem straffälligen straffälliger straffälliges
+
+Strafforderung
+
+straffähig
+
+Straflager Straflagern Straflagers
+
+straflos straflose straflosem straflosen strafloser strafloses
+
+Streiflicht Streiflichter Streiflichtern Streiflichts
+
+sträflich sträfliche sträflichem sträflichen sträflicher sträfliches
+
+Sträfling Sträflinge Sträflingen Sträflings
+
+Sturzkampfflugzeug Sturzkampfflugzeuge Sturzkampfflugzeugen Sturzkampfflugzeugs
+
+Sumpffieber
+
+Sumpffliege Sumpffliegen
+
+Sumpfland Sumpflandes Sumpflands
+
+Sumpflicht Sumpflichter
+
+Sumpfländer Sumpfländern
+
+Surfladen
+
+tariflich tarifliche tariflichem tariflichen tariflicher tarifliches
+
+Tariffalle Tariffallen
+
+Tarifforderung
+
+Tariffront
+
+Tariflohn Tariflohns
+
+Tariflöhne Tariflöhnen
+
+teuflisch teuflische teuflischem teuflischen teuflischer teuflischere teuflischerem teuflischeren teuflischerer teuflischeres teuflisches teuflischst teuflischste teuflischstem teuflischsten teuflischster teuflischstes
+
+Theateraufführung Theateraufführungen
+
+tieffliege tieffliegen tieffliegend tieffliegende tieffliegendem tieffliegenden tieffliegender tieffliegendes Tiefflieger Tieffliegern Tieffliegers tieffliegst tieffliegt
+
+tiefflog tiefflogen tiefflogst tiefflogt
+
+Tiefflug Tieffluges Tiefflugs
+
+Tiefflüge Tiefflügen
+
+tiefladbar tiefladbare tiefladbarem tiefladbaren tiefladbarer tiefladbares tieflade tiefladen Tieflader Tiefladeprogramm
+
+Tieflage Tieflagen
+
+Tiefland Tieflandes Tieflands
+
+tiefliege tiefliegen tiefliegend tiefliegende tiefliegendem tiefliegenden tiefliegender tiefliegendes tiefliegst tiefliegt
+
+Tiefländer Tiefländern
+
+Tieflöffel Tieflöffelbagger Tieflöffelbaggern tieflöffeln Tieflöffels
+
+Torffeuer
+
+Totenkopfflagge
+
+trefflich treffliche trefflichem trefflichen trefflicher trefflichere trefflicherem trefflicheren trefflicherer trefflicheres treffliches trefflichkeit trefflichst trefflichste trefflichstem trefflichsten trefflichster trefflichstes
+
+Täufling Täuflinge Täuflingen Täuflings
+
+Tüpflischeißer Tüpflischiesser
+
+unauffindbar unauffindbare unauffindbarem unauffindbaren unauffindbarer unauffindbares Unauffindbarkeit Unauffindbarkeiten
+
+unauffällig unauffällige unauffälligem unauffälligen unauffälliger unauffälligere unauffälligerem unauffälligeren unauffälligerer unauffälligeres unauffälliges unauffälligkeit unauffälligkeiten unauffälligst unauffälligste unauffälligstem unauffälligsten unauffälligster unauffälligstes
+
+unauflösbar unauflösbare unauflösbarem unauflösbaren unauflösbarer unauflösbares
+
+unauflöslich unauflösliche unauflöslichem unauflöslichen unauflöslicher unauflösliches
+
+unbegreiflich unbegreifliche unbegreiflichem unbegreiflichen unbegreiflicher unbegreiflichere unbegreiflicherem unbegreiflicheren unbegreiflicherer unbegreiflicheres unbegreifliches unbegreiflichkeit unbegreiflichst unbegreiflichste unbegreiflichstem unbegreiflichsten unbegreiflichster unbegreiflichstes
+
+unerschöpflich unerschöpfliche unerschöpflichem unerschöpflichen unerschöpflicher unerschöpflichere unerschöpflicherem unerschöpflicheren unerschöpflicherer unerschöpflicheres unerschöpfliches unerschöpflichst unerschöpflichste unerschöpflichstem unerschöpflichsten unerschöpflichster unerschöpflichstes
+
+unglimpflich unglimpfliche unglimpflichem unglimpflichen unglimpflicher unglimpfliches
+
+unhöflich unhöfliche unhöflichem unhöflichen unhöflicher unhöflichere unhöflicherem unhöflicheren unhöflicherer unhöflicheres unhöfliches unhöflichkeit unhöflichkeiten unhöflichst unhöflichste unhöflichstem unhöflichsten unhöflichster unhöflichstes
+
+unverkäuflich unverkäufliche unverkäuflichem unverkäuflichen unverkäuflicher unverkäufliches Unverkäuflichkeit
+
+unwiderruflich unwiderrufliche unwiderruflichem unwiderruflichen unwiderruflicher unwiderrufliches
+
+unübertrefflich
+
+uraufführe uraufführen uraufführend uraufführende uraufführendem uraufführenden uraufführender uraufführendes uraufführst uraufführt uraufführte uraufführten uraufführtest uraufführtet Uraufführung Uraufführungen
+
+übertariflich übertarifliche übertariflichem übertariflichen übertariflicher übertarifliches
+
+verelffache verelffachen verelffachend verelffachende verelffachendem verelffachenden verelffachender verelffachendes verelffachst verelffacht verelffachte verelffachtem verelffachten verelffachter verelffachtes verelffachtest verelffachtet
+
+verfünffache verfünffachen verfünffachend verfünffachende verfünffachendem verfünffachenden verfünffachender verfünffachendes verfünffachst verfünffacht verfünffachte verfünffachtem verfünffachten verfünffachter verfünffachtes verfünffachtest verfünffachtet
+
+verkäuflich verkäufliche verkäuflichem verkäuflichen verkäuflicher verkäufliches Verkäuflichkeit
+
+verwerflich verwerfliche verwerflichem verwerflichen verwerflicher verwerflichere verwerflicherem verwerflicheren verwerflicherer verwerflicheres verwerfliches verwerflichst verwerflichste verwerflichstem verwerflichsten verwerflichster verwerflichstes
+
+Verzweiflung Verzweiflungsschritt Verzweiflungstat
+
+verzwölffache verzwölffachen verzwölffachend verzwölffachende verzwölffachendem verzwölffachenden verzwölffachender verzwölffachendes verzwölffachst verzwölffacht verzwölffachte verzwölffachtem verzwölffachten verzwölffachter verzwölffachtes verzwölffachtest verzwölffachtet
+
+Voraufführung Voraufführungen
+
+vorberuflich vorberufliche vorberuflichem vorberuflichen vorberuflicher vorberufliches
+
+Vorlaufindikator Vorlaufindikatoren
+
+vortrefflich vortreffliche vortrefflichem vortrefflichen vortrefflicher vortreffliches
+
+Wahlkampffieber Wahlkampfflyer Wahlkampfflamme Wahlkampffloskeln
+
+Waldorflehrer Waldorflehrerin Waldorflehrerinnen Waldorflehrern Waldorflehrers
+
+Wegwerfformat
+
+Wettkampffieber Wettkampffläche Wettkampfflair
+
+widerruflich widerrufliche widerruflichem widerruflichen widerruflicher widerrufliches
+
+wiederaufführung wiederaufführungen
+
+wiederaufladbar wiederaufladbare wiederaufladbarem wiederaufladbaren wiederaufladbarer wiederaufladbares
+
+wiederauflade wiederaufladen wiederaufladend wiederaufladende wiederaufladendem wiederaufladenden wiederaufladender wiederaufladendes wiederaufladet Wiederaufladung
+
+wiederauflebe wiederaufleben wiederauflebend wiederauflebende wiederauflebendem wiederauflebenden wiederauflebender wiederauflebendes wiederauflebst wiederauflebt wiederauflebte wiederauflebten wiederauflebtest wiederauflebtet
+
+Wirtschaftsauffassung
+
+
+würflig würflige würfligem würfligen würfliger würfliges
+
+Wölflein
+
+Wölfling
+
+Wurflaune
+
+Zahlungsaufforderung Zahlungsaufforderungen
+
+Zeitauflösung
+
+Zöpflein
+
+Zupfinstrument Zupfinstrumente Zupfinstrumenten Zupfinstrumentes Zupfinstruments
+
+zweifle
+
+Zweifler Zweiflerin Zweiflerinnen Zweiflern Zweiflers
+
+Zweitauflage Zweitauflagen
+
+zwölffach zwölffache zwölffachem zwölffachen zwölffacher zwölffaches
+
+Zwölffingerdarm Zwölffingerdarmes Zwölffingerdarms
+
+
+
+
+\section*{Wörter, für welche man die ft- und fft-Ligaturen vermeiden sollte}
+
+Auftakt
+
+auftanken auftasten auftat
+auftauen auftaute
+auftauchen auftauchte
+aufteilen Aufteilung Aufteilungen
+auftischen auftischte auftoupieren
+auftraben
+Auftrag, auftragen, Auftraggeber
+auftrat
+auftreiben
+auftreten
+Auftritt
+Aufträge
+auftun auftürmen
+
+Sauftrottel
+
+kauftüchtig
+
+Lauftherapie
+
+Golftheorie Kampftheorien Auflauftheorien Kreislauftheorie
+
+Tauftag Fünftagewoche
+
+Treibstofftank
+
+fünftausend Fünftausender
+
+fünftürig Senftüte
+
+Hoftür
+
+elftausend zwölftausend Golftasche
+
+Ruftaste Vorlauftaste
+
+Ruftaxi
+
+Wettkampftag Kampftaktik
+wahlkampftauglich Schnupftabak
+%kämpfte schimpfte schrumpfte
+%klopfte schöpften
+Schimpftiraden Mehrkampftitel Stapftiefe
+Dampftopf Sumpftour
+Kampftruppe Wettkampftrubel
+Kopftreffer Zopfträger
+Kopftuch Schnupftuch
+Kampftätigkeit Kampftänzer
+Herzklopftöne Wahlkampftöne
+Kopftücher Kopftüchlein Schnupftücher
+
+Stofftasche Stofftapete Sauerstofftank
+%schaffte hoffte klaffte verpuffte
+Stofftheorie
+Stofftier Stofftiger Stofftischtuch
+Auspufftopf Kunststofftonne
+Stofftradition Stofftrennung
+Kunststofftube Stoffturnschuhe
+Stofftäschchen
+Auspufftöpfe Kunststofftöpfe
+Kunststofftüten
+
+
+Schlaftablette Schlafteddy Schlaftee Schlaftemperatur
+Schlaftherapeut Schlaftherapie Schlaftier Schlaftod
+Schlaftrank schlaftrunken
+
+Straftarif Strafteam Straftechnisch Straftendenz
+Straftermin Straftheologisch Straftilgung
+Straftor Straftribunal
+
+\ \ \ aber: bestraft, vorbestraft
+
+Brieftasche Brieftaube
+
+Cheftheoretiker Cheftestpilot Cheftrainer
+
+Dorftrottel Dorftratsch Dorftradition Dorftölpel
+
+Wurftraining Surftrip Freiwurftreffer
+
+Wurftuch Dorftümpel
+
+Lauftrainer
+
+Eingreiftruppe Nadelstreifträger
+
+Pfeifton Zwölftonmusik Rufton
+
+Wurftalent Auswurftaste Surftalent
+
+%Hälfte
+
+Schifftyp Stofftyp waldorftypisch Dorftyrann Hoftyrann
+
+Stieftochter Tiefton
+
+Stieftöchter tieftönend
+
+fünfte fünfter elfte elfter zwölfte zwölfter
+
+\ \ \ aber: zu fünft, zu elft, zu zwölft
+
+zwölftönend
+
+Zwölftonmusik Elftonner Golftour
+
+Senftopf Senftöpfchen
+
+Freiwurftor Surftour Dorftourismus
+
+\bgroup\ebg
+\section*{Wörter, für welche man \mbox{fb}-, \mbox{fh}-, \mbox{fj}- und \mbox{fk}-Ligaturen vermeiden sollte}
+\egroup
+
+(Einige wenige Beispiele genügen\ldots)
+
+\begin{itemize}
+
+\bgroup\ebg
+\item \mbox{fb} und \mbox{ffb}
+\egroup
+
+abrufbar
+Anrufbeantworter
+
+aufbahren aufbauen aufbegehren aufbereiten aufbessern aufbewahren aufbefördern aufbieten aufblasen aufblicken Aufblick aufblitzen aufblähen aufblühen aufbrauchen aufbrausen aufbrechen aufbringen Aufbruch aufbäumen aufbürden
+
+Aufbauspieler
+
+Briefbombe Briefbogen
+
+Chefberater
+
+Dampfbad Dorfbewohner Dorfbevölkerung
+
+greifbar angreifbar unangreifbar griffbereit Golfball
+
+Griffbrett
+
+Briefbeschwerer Hofbräuhaus
+
+Kopfbewegung Kopfball Kopfbedeckung Kaufbeleg kampfbetont
+
+Laufbahn Laufband Laufbereitschaft Laufbursche
+
+Raufbold Rohstoffboom Regenüberlaufbecken
+
+Schadstoffbelastung Schlafbedürfnis Scharfblick
+
+schiffbar Schiffbau Schiffbruch
+
+steifbeinig Stoffbahnen
+
+Sauerstoffbedarf Stiefbruder
+
+Strafbestimmungen strafbar Strafbefehl
+
+Surfbretter
+
+Tarifbezirk Tarifbindung
+
+Tiefbau tiefbelustigt tiefblau
+
+Umlaufbahn überprüfbar
+
+(un)widerrufbar
+
+Wasserstoffbombe
+
+Wiederaufbau
+
+\bgroup\ebg
+\item \mbox{fh} und \mbox{ffh}
+\egroup
+
+aufhaben aufhacken aufhalsen aufhalten aufhatte aufheben aufheitern aufheizen aufhelfen aufhellen aufhetzen aufheulen aufholen aufhorchen aufhängen aufhören aufhübschen
+
+Chefhändler
+
+daraufhin draufhat draufhauen
+
+Dorfhaus
+
+Eislaufhalle
+
+fünfhundert
+
+Hofherr
+
+Kampfhandlung Kampfhubschrauber Kampfhunde Kampfhähne
+
+Kopfhaar Kopfhaltung Kopfhaube Kopfhaut Kopfhörer
+
+Kaufhalle Kaufhaus Kaufherr Kaufhold
+
+krampfhaft
+
+Schafhaltung Schafherde Schafhirte
+
+Schilfhütte
+
+Steifheit Schlaffheit
+
+Strafhaft
+
+Strumpfhose Stumpfheit
+
+Topfhaarschnitt
+
+unaufhaltsam unaufhörlich
+
+Wahlkampfhelfer
+
+Impfstoffhersteller
+
+Luftschiffhafen
+
+Pfaffhausen Schaffhausen
+
+Riffhai
+
+Stoffhändler
+
+Werkstoffhof
+
+
+\bgroup\ebg
+\item \mbox{fj} und \mbox{ffj}
+\egroup
+
+aufjagen aufjaulen aufjauchzen aufjohlt
+
+Dorfjunge Dorfjustiz Dorfjugend Dorfjäger Dorfjubiläum
+
+Fünfjahresplan Fünfjahresfeier Knefjahr Tarifjahr Strafjahr
+
+fünfjährig elfjährig zwölfjährig
+
+Kopfjäger Kopfjucken Kopfjagd
+
+Strafjustiz Strafjurist Chefjurist
+
+Laufjunge Laufjahr Laufjacke
+
+Wahlkampfjahr Wettkampfjahr Kampfjet
+
+Stoffjacke
+
+Kampfjagd Kampfjodeln
+
+Hofjäger
+
+Golfjahr Golfjunge Golfjunioren Golfjuniorinnen
+
+\ \ \ aber: Sognefjord Dovrefjell
+
+
+\bgroup\ebg
+\item \mbox{fk} und \mbox{ffk}
+\egroup
+
+aufkam aufkaufen aufkeimen aufkehren aufklaffen aufkläffen aufklappen aufklatschen aufklauben aufkleben aufklären aufklingen aufklopfen aufknacken aufknöpfen aufknüpfen aufkochen aufkommen aufkreischen aufkrempeln aufkreuzen aufkriegen aufkurbeln aufkündigen
+
+Napfkuchen Stopfkugel Briefkasten Briefkästen Kopfkissen
+ Kehlkopfknoten Kaufkraft
+
+Pfeifkonzert Trumpfkarte
+
+Tarifkonflikt Tarifkommission
+
+Stoffkissen Stoffkatze Treibstroffkosten Kliffkante Auspuffklang
+
+\end{itemize}
+
+
+
+
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig.pdf b/Master/texmf-dist/doc/lualatex/selnolig/selnolig.pdf
new file mode 100644
index 00000000000..7f8bad5dbb4
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/lualatex/selnolig/selnolig.tex b/Master/texmf-dist/doc/lualatex/selnolig/selnolig.tex
new file mode 100644
index 00000000000..c346f6875c6
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/selnolig/selnolig.tex
@@ -0,0 +1,808 @@
+% !TEX TS-program = lualatex
+% arara: lualatex
+% arara: lualatex
+\documentclass[11pt]{article}
+
+% This entire package is placed under the terms of the
+% LaTeX Project Public License, version 1.3 or later
+% (http://www.latex-project.org/lppl.txt).
+% It has the status "maintained".
+%
+% Author: Mico Loretan (loretan dot mico at gmail dot com)
+% Date: 2013/05/25
+
+% Check first that we're running lua(la)tex.
+\usepackage{ifluatex}
+\ifluatex\else
+ \typeout{ =========================================}
+ \typeout{ The file selnolig.tex must be compiled }
+ \typeout{ using LuaLaTeX. Exiting immediately. }
+ \typeout{ =========================================}
+ \endinput
+\fi
+
+% Load fontspec and some font families
+\usepackage{fontspec}
+
+\setmainfont[ FeatureFile= gpp-ft.fea,
+ Numbers = OldStyle,
+ Ligatures = {TeX, Common, Rare},
+ BoldFont = {Garamond Premier Pro},
+ ItalicFont = {Garamond Premier Pro Italic} ]
+ {Garamond Premier Pro}
+
+\setsansfont[Scale=MatchLowercase,
+ Ligatures = NoCommon]
+ {Myriad Pro}
+\setmonofont[Scale=0.81,
+ Ligatures = NoCommon]
+ {Consolas}
+
+\newfontfamily\ebg[ Numbers = OldStyle,
+ Ligatures = {TeX, Common, Discretionary, Historic},
+ ItalicFeatures = {Scale = MatchLowercase},
+ ItalicFont = {EB Garamond 12 Italic}]
+ {EB Garamond 12 Regular}
+\newfontfamily\sabon[Ligatures={Common,Rare,TeX},
+ Scale=MatchLowercase]
+ {Sabon Next LT Pro}
+\newfontfamily\blackletterfont[Ligatures=NoCommon]
+ {UnifrakturMaguntia}
+
+
+% Load some more packages
+\usepackage{geometry}
+\usepackage[english=american]{csquotes}
+\usepackage[ngerman,english]{babel}
+
+\usepackage[ngerman,english,hdlig,broadf]{selnolig}
+\debugon
+
+\hyphenation{ver-werf-lich kunst-stoff-lei-tung}
+
+% Suppress st-ligature in some German words
+% that occur in this document
+\nolig{Kunststo}{Kuns|ts|to} % Kunststoff
+\nolig{Bausto}{Baus|to} % Baustoff
+\nolig{streif}{s|treif} % streifte
+\nolig{instru}{ins|tru} % Zupfinstrument
+\nolig{justiz}{jus|tiz} % Strafjustiz
+\nolig{Konstanz}{Kons|tanz}
+\nolig{Institut}{Ins|titut}
+\nolig{Wasserstoff}{Wassers|toff}
+\nolig{stiefl}{s|tiefl} % stiefle
+\nolig{straff}{s|traff}
+
+
+% Load still more packages...
+\usepackage{microtype}
+ \LoadMicrotypeFile{pad}
+\usepackage{multicol}
+\usepackage[bottom,splitrule]{footmisc}
+
+\usepackage{sectsty}
+\allsectionsfont{\mdseries}
+
+\usepackage{tocloft}
+\cftsetindents{sec}{0em}{1.75em}
+\cftsetindents{subsec}{1.75em}{2em}
+\cftsetindents{subsubsec}{3.75em}{3em}
+\setlength\cftbeforesecskip{1ex}
+\renewcommand{\cfttoctitlefont}{\large}
+\renewcommand{\cftsecfont}{\mdseries}
+\renewcommand{\cftsubsecfont}{\mdseries}
+\renewcommand{\cftsecpagefont}{\mdseries}
+\renewcommand{\cftsubsecpagefont}{\mdseries}
+\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}
+
+\usepackage{fancyvrb}
+\DefineShortVerb{\|}
+
+% Set up logos for LuaLaTeX and XeLaTeX
+\usepackage{metalogo}
+ \makeatletter
+ \def\xl@drop@TeX@e{0.34ex} % default: 0.5ex
+ \def\xl@drop@Xe@e{0.34ex} % default: 0.5ex
+ \def\xl@kern@La@La{-.33em} % default: -0.36ex
+ \def\xl@kern@LaTeX@aT{-.16em} % default: -0.15ex
+ \makeatother
+
+% some frequently-used commands
+\newcommand{\pkg}[1]{\textsf{#1}}
+\newcommand{\opt}[1]{\texttt{#1}}
+\newcommand{\cmmd}[1]{\texttt{\textbackslash #1}}
+
+\newcommand\utf{\textsc{utf-8}}
+
+% Redefine the \appendix command
+\let\oldappendix\appendix
+\renewcommand\appendix{%
+ %\clearpage
+ \addtocontents{toc}{\protect{\vspace{1\baselineskip}}}
+ \addtocontents{toc}{\protect{\mdseries Appendices\par}}
+ \noindent
+ {\Large Appendices}
+ \oldappendix}
+
+\frenchspacing
+\clubpenalty10000
+\widowpenalty10000
+
+\usepackage[svgnames]{xcolor}
+\usepackage[colorlinks=true,linktocpage,
+ allcolors=DarkBlue]{hyperref}
+\usepackage[capitalize,nameinlink,noabbrev]{cleveref}
+
+
+% The macros \selnoligpackagename,
+% \selnoligpackageversion, and \selnoligpackagedate
+% used below are defined in 'selnolig.sty'.
+
+\title{The \selnoligpackagename\ package: \\
+Selective suppression of typographic ligatures\thanks{
+Current version: \selnoligpackageversion. Features of the \pkg{selnolig} package are subject to change without prior notice.
+\newline\hspace*{\parindent}
+The main text font used in this document is \enquote{Garamond Premier Pro}. \enquote{\ebg EB Garamond} is used for words that involve the \emph{\mbox{\ebg sk}}, {\ebg \mbox{fb}, \mbox{fh}, \mbox{fj}, \mbox{fk}, \mbox{ffb}, \mbox{ffh}, \mbox{ffj}, and \mbox{ffk}} glyphs. Both \enquote{common} and \enquote{discretionary} typographic ligatures are enabled for these fonts\textemdash \emph{and} are suppressed selectively using \pkg{selnolig}'s macros.}}
+
+\author{Mico Loretan\thanks{
+\href{mailto:loretan.mico@gmail.com}{loretan dot mico at gmail dot com}.}}
+
+\date{\selnoligpackagedate}
+
+\begin{document}
+
+\VerbatimFootnotes
+\pagenumbering{roman}
+\maketitle
+
+
+\begin{abstract}
+
+The \pkg{selnolig} package suppresses typographic ligatures selectively, i.e., based on predefined search patterns. The search patterns focus on ligatures deemed inappropriate because they span morpheme boundaries. For example, the word \opt{shelfful}, which is mentioned in the \TeX book as a word for which the \enquote{ff} ligature might be inappropriate, is automatically typeset as shelfful rather than as shel\mbox{ff}ul.
+\newline\hspace*{\parindent}
+For English and German language documents, the \pkg{selnolig} package provides extensive rules for the selective suppression of so-called \enquote{common} ligatures. These comprise the ff, fi, fl, ffi, and~ffl ligatures as well as the ft and~fft ligatures. Other f-ligatures, such as {\ebg\mbox{fb}, \mbox{fh}, \mbox{fj}} and {\ebg\mbox{fk}}, are suppressed globally, while making exceptions for names and words of non-English/German origin, such as {\ebg Kafka} and {\ebg fjord}.
+\newline\hspace*{\parindent}
+For English language documents, the package further provides ligature suppression macros for a number of so-called \enquote{discretionary} or \enquote{rare} ligatures such as~ct, st, and~sp.
+\newline\hspace*{\parindent}
+The \pkg{selnolig} package requires use of the \LuaLaTeX\ format provided by a recent \TeX\ distribution such as \TeX Live\,2012 or~2013 and MiK\TeX\,2.9.
+\end{abstract}
+
+\tocloftpagestyle{empty}
+\tableofcontents
+
+\clearpage
+\pagenumbering{arabic}
+
+\section{Introduction}
+
+The ability of \TeX\ and Friends to use typographic ligatures has long been cherished by its users. Indeed, the automated and transparent use of typographic ligatures by \TeX\ and Friends is often offered up as one of the reasons for using these programs to obtain high-quality typeset output.
+
+However, even though the automatic use of typographic ligatures is highly desirable in general, there are words for which the use of certain typographic ligatures may not be appropriate. The \TeX book observes, on page~19, that the word |shelfful| may look better if it is typeset as \enquote{shelfful}, i.e., \emph{without} the ff-ligature, rather than as \enquote{\mbox{shelfful}}. Some other English-language words that would generally be considered to be good candidates for non-use of ligatures are \mbox{cufflink} and \mbox{offload}; compare their appearance with that of cufflink and offload. Observe that all three of these words are composed of two \emph{morphemes}: the first morpheme ends in an~\enquote{f\,} or~\enquote{ff\,} while the second morpheme starts with either an~\enquote{f\,} (in the case of shelfful) or an~\enquote{l} (in the cases of cufflink and offload). A \href{http://en.wikipedia.org/wiki/Morpheme}{morpheme}, briefly stated, is the smallest linguistic unit within a word that bears distinct meaning; all words\textemdash other than nonsense words, I suppose\textemdash contain at least one morpheme. The words apple and orange contain one morpheme each, and the words apples, oranges, shelfful, cufflink, and offload each contain \emph{two} morphemes. Stated formally, the main purpose of the \pkg{selnolig} package is to provide methods and rules for automated yet selective (rather than global) suppression of typographic ligatures that span morpheme boundaries.
+
+For English language documents, the need to suppress typographic ligatures that span morpheme boundaries does not appear to be a hugely pressing typographic concern, possibly because English doesn't feature composite words that frequently. However, in other languages, such as German, composite words are much more common. In these languages, there is naturally a much greater potential for composite words to feature instances of |ff|, |fi|, |fl| etc.\ across morpheme boundaries. In German typography, a ligature that spans a morpheme boundary appears to be something that should be avoided at (nearly) all cost, presumably because these ligatures have the potential to impair seriously the intelligibility of composite words.\footnote{For German texts, I believe that the \emph{Duden} provides authoritative backing for questions related to selective ligature suppression. For English texts, I'm not aware of the existence of a document issued by an official or quasi-official body that prescribes whether ligatures that span morpheme boundaries should be suppressed. If anybody can provide such a reference, I would be happy to list it.}
+
+\TeX\ and Friends offer several methods for suppressing ligatures on a case-by-case basis.\footnote{In \LaTeX, there are three basic methods for suppressing ligature within a character pair: (i)~insertion of an \enquote{empty atom}, |{}| between the characters, (ii)~insertion of an explicit italic correction, |\/|, and (iii)~insertion of an explicit \enquote{kern}, e.g., |\kern0pt| or \Verb/\hspace{0pt}/. The \pkg{babel} package, when used with the \opt{ngerman} option, offers the \enquote{shortcut} macro \Verb/"|/ for this purpose. Note, though, that the first ligature suppression method, \Verb/{}/, does \emph{not} work if the document is compiled with \LuaLaTeX.} However, these methods must be applied separately to each and every occurrence of all words that contain unwanted ligatures. As such, these case-by-case methods are both time-intensive and tedious. Moreover, there's always a residual risk that some words for which certain ligatures should be suppressed will be overlooked in the editing process.
+
+What has \emph{not} been available so far is a \LaTeX\ package that (a) provides a list of word patterns and entire words for which ligatures should be suppressed and (b) systematically discovers all instances of these patterns in a document and applies the non-ligation rules automatically to all words for which one or more pattern matches obtain. The \pkg{selnolig} package is meant to address this need. The package is currently set up to handle non-ligation issues for English and German language documents by providing extensive lists of ligature suppression rules tailored to the respective languages. Of course, I make no claim as to the completeness of either list. The package therefore makes it straightforward for users to provide their own supplemental ligature suppression rules to treat words not already covered by the package.\footnote{If you come up with such words, please email them to me so that I can augment and update the package's ligature suppression rules. A suggested template for reporting such cases is provided in \cref{sec:template}.}
+
+For both English and German language documents, the \pkg{selnolig} package provides macros to suppress \emph{selectively} the following f-ligatures: ff, fi, fl, ffi, and ffl\textemdash the \enquote{standard} f-ligatures that should be familiar to most users of Computer Modern fonts\textemdash as well as the~ft and~fft ligatures. The latter two ligatures, while not provided by the Computer Modern and Latin Modern font families, are frequently available in \href{http://en.wikipedia.org/wiki/Serif#Old_Style}{oldstyle} (also known as \enquote{Garalde}) font families.\footnote{In some oldstyle font families, the \enquote{ft} and \enquote{fft} ligatures are rendered as \enquote{\sabon ft} and \enquote{\sabon fft}, respectively.} Oldstyle-type font families generally feature a great variety of typographic ligatures. Given the popularity of these font families for typesetting documents, it seems useful on the \pkg{selnolig} package to provide ligature suppression rules for the ligatures provided by these font families.
+
+For both English and German language documents, the {\ebg \mbox{fb}, \mbox{fh}, \mbox{fj}, and \mbox{fk}} ligatures are suppressed \emph{globally}; see also \cref{sec:global-nolig}. However, exceptions are provided in order not to suppress these ligatures for selected words of \emph{non-English\slash German} origin, such as {\ebg fjord, fjell, Prokofjew, and Kafka}.
+
+For English language documents, the \pkg{selnolig} package recognizes an option called \opt{broadf}; if it is set, additional f-ligatures will be suppressed selectively. The package also features an option called \opt{hdlig} to provide selective ligature suppression for discretionary (aka rare) ligatures such as~ct, st, sp, {\ebg\emph{sk}}, \emph{th}, \emph{at}, \emph{et}, \emph{ll}, \emph{as}, \emph{is}, and~\emph{us}. No rules are currently provided to suppress historic\slash discretionary ligatures for German documents.\footnote{A remark on the classification of various forms of typographic ligatures in OpenType fonts: There appears to little terminological standardization as to which typographic ligatures are labelled \enquote{historic} and which ones are labelled \enquote{discretionary}. To wit, the fonts Latin Modern Roman, Garamond Premier Pro, and Hoefler Text report having \enquote{only} discretionary ligatures, whereas Junicode, Cardo, EB Garamond, and Palatino Linotype report having both historic and discretionary ligatures. Interestingly, none of these fonts report having ligatures classified as either \enquote{contextual} or \enquote{required}. }
+
+The \pkg{selnolig} package also provides supplemental hyphenation exception lists for both English and German language words. The words in these lists are generally composite and contain one or more typographic ligatures that should be suppressed.
+
+
+
+\section{I'm in a hurry! How do I start using this package?}
+
+\subsection[How do I load the selnolig package?]{How do I load the \pkg{selnolig} package?}
+
+%\enlargethispage{0.5\baselineskip}
+
+\begin{itemize}
+\item If your document is in English and you want to enable a \enquote{basic} set of rules to suppress f-ligatures selectively, load the package by issuing the following instruction in the preamble of your document:
+\begin{Verbatim}
+ \usepackage[english]{selnolig}
+\end{Verbatim}
+Synonymous options are \opt{UKenglish}, \opt{british}, \opt{USenglish}, \opt{american}, \opt{cana\-dian}, \opt{australian}, and \opt{new\-zea\-land}.
+
+If you want to load a broader set of f-ligature suppression rules than the set that's enabled by default, be sure to also specify the option \opt{broadf}; see \cref{sec:eng-opt}.
+If you enable \enquote{historic} and/or \enquote{discretionary} ligatures (e.g., ct, st, sp, \emph{th}, \emph{as}, \emph{is}, and~\emph{us}) for your document's text font(s), be sure to specify the option~\opt{hdlig} as well. The options \opt{hdlig} and \opt{broadf} may be specified independently.
+
+\item If your document is written in German, load the package as follows:
+\begin{Verbatim}
+ \usepackage[ngerman]{selnolig}
+\end{Verbatim}
+Synonymous options: \opt{german}, \opt{austrian}, \opt{naustrian}, \opt{swissgerman}, and \opt{swiss}.
+
+\item If you load the package \emph{without} an explicit language option, i.e., as
+\begin{Verbatim}
+ \usepackage{selnolig}
+\end{Verbatim}
+but if one or more of the language options noted above are specified as options in the \cmmd{documentclass} instruction, \LaTeX\ will pass these options on to the \pkg{selnolig} package.
+
+\item If no language options are set, either when the package is loaded or as options in the \cmmd{documentclass} instruction, you will need to specify various \cmmd{nolig} macros yourself in order to suppress typographic ligatures. This approach may be called for if you write in a language other than German or English.
+
+\end{itemize}
+
+
+\subsection{Any hints on how to get started with \LuaLaTeX?}
+
+\begingroup
+\renewcommand\theenumi{(\roman{enumi})}
+\renewcommand\labelenumi\theenumi
+
+The ligature suppression macros of the \pkg{selnolig} package \emph{require} the use of \LuaLaTeX; they will not work under either pdf\LaTeX\ or \XeLaTeX.\footnote{If the \pkg{selnolig} package is not run under \LuaLaTeX, a warning message will be issued and only the package's supplemental hyphenation rules will be available to the user.}
+If you've been using pdf\LaTeX\ until now, the requirement to use \LuaLaTeX\ will likely force you to make some changes to your existing documents. Fortunately, these changes should be minor and straightforward to implement, because \LuaLaTeX\ is (for the most part) a strict superset of pdf\LaTeX. Almost all documents that compile correctly under pdf\LaTeX\ should also compile correctly under \LuaLaTeX. Two required changes are:
+\begin{enumerate}
+\item Do not load the |inputenc| and |fontenc| packages. \item Insert the instruction |\usepackage{fontspec}|
+in the preamble.\footnote{If the \pkg{selnolig} package is run under \LuaLaTeX\ but the \pkg{fontspec} package isn't loaded by the time the \Verb+\begin{document}+ statement is encountered, \pkg{selnolig} will terminate with an error message.} Then, use commands such as \cmmd{setmainfont} and \cmmd{setsansfont} to load the fonts you wish to use.
+\end{enumerate}
+\endgroup
+
+
+Depending on your \TeX\ distribution, the default font family used by \LuaLaTeX\ will be either Computer Modern or Latin Modern. If you wish to use a different font family, further font-related instructions will be required. \emph{How} to specify fonts and font families and set up various font-related options in \LuaLaTeX\ are topics that go far beyond the scope of this user guide. I urge you to become familiar with the very well-written
+ \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fontspec/fontspec.pdf}{user guide} of the \pkg{fontspec} package.
+
+You will also need to use a \TeX\ distribution that features a fairly recent version of \LuaLaTeX. \TeX Live 2013, \TeX Live\,2012, and MiK\TeX\,2.9 satisfy this requirement; versions of \TeX Live before 2011 probably do not. If you use a command-line interface to compile a document named, say, |myfile.tex|, type
+\begin{Verbatim}
+ lualatex myfile
+\end{Verbatim}
+rather than either |latex myfile| or |pdflatex myfile|. If you use a text editing program with pull-down menus or buttons to invoke a suitable compiler, be sure to select |LuaLaTeX|.
+
+The first time one runs \LuaLaTeX\ on a document with a new set of fonts, the compilation speed will likely be quite slow, because \LuaLaTeX\ has to create various cache files to store font-related information. Subsequent compilation runs should be much faster.
+
+The answers to the questions \href{http://tex.stackexchange.com/q/28642/5001}{Frequently loaded packages: Differences between pdf\LaTeX\ and \LuaLaTeX?} and \href{http://tex.stackexchange.com/q/32295/5001}{Using Lua\TeX\ as a replacement for pdf\TeX}, both posted to \href{http://tex.stackexchange.com/}{tex.stackexchange.com}, provide very useful information for people who are new to \LuaLaTeX\ and at least somewhat familiar with pdf\LaTeX\'s ways of getting things done. Another great resource for people who wish to become more more familiar with \LuaLaTeX\ is \href{http://mirror.ctan.org/info/luatex/lualatex-doc/lualatex-doc.pdf}{A Guide to \LuaLaTeX} by Manuel Pégourié-Gonnard.
+
+
+\subsection{Anything else I need to do or know?} \label{sec:anythingelse}
+
+For multilingual support, \LuaLaTeX\ and the \pkg{selnolig} package work well with the \href{http://www.ctan.org/pkg/babel}{\pkg{babel}} package. If your document loads the \pkg{babel} package, be sure to load the \pkg{selnolig} package \emph{after} the \pkg{babel} package, so that the supplemental hyphenation patterns provided by the \pkg{selnolig} package won't get clobbered by \pkg{babel}'s hyphenation settings.\footnote{The \pkg{selnolig} package is also compatible with the \href{http://www.ctan.org/pkg/hyphsubst}{\pkg{hyphsubst}} package (which, if used, should be loaded with a \Verb+\RequirePackage+ statement \emph{before} the \Verb+\documentclass+ instruction). With \TeX Live2013, it may also be possible to use the \pkg{polyglossia} package with \LuaLaTeX\ and hence with \pkg{selnolig}, but I haven't verified that this is the case.}
+
+\LuaLaTeX\ natively supports the so-called \utf\ input encoding scheme; in fact, it is also the \emph{only} input encoding scheme that \LuaLaTeX\ knows about. The \pkg{selnolig} package assumes that that the \TeX\ files it operates on conform to this input encoding method. Nowadays, many modern \TeX-aware editors support \utf\ directly; \pkg{selnolig} should have no problems with \TeX\ files produced by these editors. Legacy files, however, may use other input encoding systems. If your input files currently use a different input encoding scheme, such as \textsc{latin1}, you must first convert them to \utf. Several methods exist for changing a file's input encoding scheme; see the question \href{http://tex.stackexchange.com/q/87406/5001}{How to change a .tex file's input encoding system (preferably to \utf)?} and the associated answers on \url{tex.stackexchage.com} for some possibilities.
+
+If your document is written in German, it is assumed that all vowels with diereses (Umlaute) are entered as \Verb|ä|, \Verb|ö|, \Verb|ü|, etc.\ rather than, say, as \Verb|\"{a}|, \Verb|\"{o}|, and~\Verb|\"{u}| or (if you tend to use the \pkg{babel} \enquote{shortcuts}) as \Verb|"a|, \Verb|"o|, and~\Verb|"u|. Likewise, it's assumed that you enter the \enquote{eszett} (\enquote{scharfes~s}) character as~|ß| rather than as~|\ss|.
+It is also assumed that you use the triple-f (modern) spelling of words such as \texttt{Schifffahrt}, \texttt{Stofffarbe}, and \texttt{grifffest} as well as the double-t (modern) spelling of words such as |Mannschafttest|.
+
+Finally, all \pkg{babel}-style ``\Verb+"|+'' ligature-suppressing shortcuts should either be removed entirely or be replaced with |\breaklig| instructions; the \pkg{selnolig} package's |\breaklig| macro is explained in \cref{sec:breaklig} below.\footnote{On my \LuaLaTeX\ system, whenever a \Verb+"|+ command is encountered, I either get a bad crash that requires a reboot of the computer (under Mac\TeX\,2012) or I get a stern error message about \enquote{Forbidden control sequence found while scanning use of \cmmd{FancyVerbGetVerb}} (under Mac\TeX\,2013).}
+
+
+
+
+
+\section[The selnolig package's approach to breaking up ligatures]{The \pkg{selnolig} package's approach to breaking up ligatures}
+
+\subsection[Free, derivational, and inflectional morphemes]{Free, derivational, and inflectional morphemes: What's their relationship to ligature suppression?!}
+
+
+Good typography supports and enhances the readability of the typeset text. There are, obviously, a great many facets to what constitutes good readability. One of them is the ease with which readers can discern the \emph{meaning} of words, including composite words that contain two or more morphemes. Typographic ligatures serve to \enquote{group} characters into composite glyphs, and they are generally thought to contribute to the text's readability \emph{if} they do not span morpheme boundaries. Ligatures that do span morpheme boundaries within a word \emph{may} impair its readability, in part because the reader's brain often uses the grouping performed by these composite glyphs to help detect the morphemes within each word.
+
+What exactly are morphemes? Briefly put, morphemes are the smallest linguistic units within a word that carry \emph{meaning}. Because words are, by definition, standalone units of text, each word contains at least one morpheme.\footnote{Please don't try to get me involved in a discussion of what it may mean to have words without meaning\dots} Morphemes are classified as \emph{free} morphemes if they can stand alone as words (e.g., cat, dog, sea, see), and as \emph{bound} morphemes if they can not. E.g., the letter~|s| in the words cats, dogs, and rivers indicates the plural forms of the associated nouns, but the |s| particle cannot stand alone as a (meaningful) word. A bound morpheme must therefore be associated with a free morpheme.
+
+Bound morphemes can be divided further into derivational and inflectional morphemes. A \emph{derivational} morpheme changes the meaning of the associated free morpheme in a fundamental way. E.g., the \enquote{un} in \enquote{untrue} reverses the meaning of the associated free morpheme \enquote{true}, and the \enquote{ful} in \enquote{shelfful} changes the word's meaning from a noun to a quantity measure (two shelffuls of books on typography). An \emph{inflectional} morpheme, in contrast, signifies a less fundamental change in meaning: in nouns (and, depending on the language, adjectives as well), inflectional morphemes indicate plural forms (child vs. children, cat vs. cats) and other forms of declination.\footnote{In English, the virtually sole type of declension is to indicate plural status. In other languages, declination can occur to indicate nominative, genitive, dative, accusative, etc. forms\textemdash of nouns \emph{and} adjectives. E.g., in German one says das schöne Kind, des schönen Kindes, dem schönen Kinde, etc. the particles |en|/|es| and |en|/|e| represent inflectional morphemes associated with the genitive and accusative forms.} In verbs, inflectional morphemes indicate conjugation, such as a change in tense or of the subject performing the action implied by the verb. E.g., call vs. called, walk vs. walked, but also \enquote{I~swim} vs. \enquote{she swims}, etc.
+
+Words containing more than one morpheme can contain either \enquote{just} free morphemes\textemdash rooftop, newspaper, etc.\textemdash or free and bound morphemes joined together\textemdash untrue, shelfful, sel\mbox{fi}sh, etc. The bound morphemes in a word generally occur either as a prefix or a suffix to the word's \enquote{main part} or \enquote{stem} (the free morpheme). Prefixes almost invariably represent derivational morphemes (e.g., true vs. untrue; do vs. redo and undo). Suffixes, in contrast, can represent either derivational or inflectional morphemes. For instance, the suffixes |like| and |less| in dwarflike and leafless are derivational morphemes, whereas the suffix |ed| in hounded and bounded is an inflectional morpheme.
+
+It is important to realize that not all ligatures that span morpheme boundaries are equally inimical to good readability. Consider, say, the word \emph{umbrellas}, which contains the ligature~\emph{as}. Note that this ligature crosses a morpheme boundary, between the free morpheme \emph{umbrella} and the suffix~\emph{s}. Nevertheless, I'm quite confident that few will claim that the presence of the \emph{as} ligature detracts from the readability of the word \emph{umbrellas}. I believe there are two reasons why the word's readability is not impaired by the presence of a ligature that spans a morpheme boundary. First, the suffix~\emph{s} is an inflectional morpheme: it \emph{merely} serves to change the noun's state from singular to plural. Hence, \enquote{most} of the composite word's meaning is conveyed by the free morpheme \emph{umbrella}. Second, the ligature occurs at the very \emph{end} of the word rather than, say, closer to the beginning or middle of the word.
+
+The \pkg{selnolig} package adopts the following broad principles: First, ligatures that cross the boundaries of two free morphemes are suppressed. Second, ligatures that that cross the boundary between a free morpheme and a derivational morpheme are also suppressed\textemdash with certain exceptions. Third, ligatures that span the boundary between a free morpheme and an inflectional morpheme are not suppressed. As will be shown below, this distinction is particularly relevant for decisions related to the suppression (and non-suppression) of ft and fft ligatures in German texts.
+
+Finally, observe that morphemes (which convey meaning) need not coincide with \emph{syllables} (which convey pronunciation and sound). Indeed, a word can contain several syllables but consist of only one morpheme (e.g., apple, orange, banana), or it can consist of only one syllable but contain more than one morpheme (e.g., cats, dogs, reads, reeds, seas, and sees). The fact that a ligature may span a syllable boundary within a word (and, possibly, a hyphenation point as well) does not, by itself, imply that this ligature should be suppressed. To wit, consider the German adjective \enquote{straff} and its associated forms straffe, straffer, straffen, etc.: the free morpheme in all of these words is |straff|, while the suffixes |e|, |er|, and |en| represent inflectional morphemes. Even though there's a syllable boundary between the two |f|s for all modified forms of the adjective straff, the ff-ligature is used for all forms because it doesn't span a \emph{morpheme} boundary. If TeX's hyphenation algorithm decides it needs to hyphenate the word straffen as s\kern0pt traf-fen to get a good line break, it can do so\textemdash and break up the ligature in the process. There's no need, though, to break up a ligature pre-emptively just because it might get hyphenated.
+
+
+
+\subsection{Ligature suppression rules: English language case}
+
+
+Typographic ligatures are suppressed selectively in the following cases:
+\begin{itemize}
+\item if two free morphemes are joined: \mbox{halfline} $\to$ halfline, \mbox{shelflife} $\to$ shelflife, \mbox{rooftop}~$\to$ rooftop, \mbox{halftone} $\to$ halftone, \mbox{wolftrap} $\to$ wolftrap, \mbox{houndstooth} $\to$ houndstooth, \mbox{arctan}\-gent~$\to$ arctangent, \mbox{newspaper}~$\to$ newspaper, \mbox{clothespin} $\to$ clothespin, \emph{se\mbox{as}trand} $\to$ \emph{seastrand}, etc.
+
+\item if a prefix (usually either a free or a derivational morpheme) and main word are joined: \mbox{offload} $\to$ offload, mi\mbox{st}rust~$\to$ mistrust, di\mbox{sp}lay~$\to$ display, etc.
+
+\item if a main word and a suffix are joined, \emph{if} the suffix is a derivational morpheme that begins with an~f or an~l (other than \enquote{ly}): \mbox{shelfful}~$\to$ shelfful, \mbox{leafless} $\to$ leafless, \mbox{dwarflike}~$\to$ dwarflike, etc.
+
+\item The ft ligature is also suppressed in words that end in |fth|: \mbox{fifth}~$\to$ fifth, \mbox{twelfth}~$\to$ twelfth. Note that the particle |th| is a derivational morpheme. Moreover, in English the~|th| character pair is pronounced in a distinctive way. It thus seems inadvisable to obscure its presence with an ft ligature.
+\end{itemize}
+
+In addition, if the \opt{broadf} option is set, the \pkg{selnolig} package will suppress ligatures that arise if the main word ends in~f and the suffix starts with an~i, regardless of whether the suffix is a derivational or an inflectional morpheme: elfin, selfish, golfing, surfing, beefier, fluffily, goofiness, standoffish, jiffies, buffiest. Setting the \opt{broadf} option also instructs \pkg{selnolig} to split up ffi ligatures in words such as fluffiness and fluffily. Note that the option \opt{broadf} is \emph{not} enabled by default. This is because I believe that any slight gain in readability that could result from breaking up the fi and ffi ligatures between word stems and suffixes of this type would be more than outweighed by the visual clashes created between the unligated~f (ff) and~i glyphs. Finally, setting the \opt{broadf} option also instructs \pkg{selnolig} to suppress fl ligatures in words such as chiefly, briefly, and gruffly and ft ligatures in words such as fifty and fiftieth.
+
+
+
+\subsection{Ligature suppression rules: German language case}
+
+For German words, the following principles (with various exceptions and adjustments) apply when it comes to decide which ligatures to break up and which ones to allow. These rules are built mainly from statements found in the \emph{Duden} and various websites that have taken an interest in this subject, with adaptations for the ft and fft ligatures.
+\begin{itemize}
+\item Case 1: Joining of two free morphemes. Ligatures are suppressed if they span two \emph{free} morphemes. Examples: Schil\mbox{fi}nsel $\to$ Schilfinsel, Zup\mbox{fi}nstrument $\to$ Zupfinstrument, Bausto\mbox{ffi}ngenieur $\to$ Baustoffingenieur, Wassersto\mbox{ffi}onen $\to$ Wasserstoffionen; Imp\mbox{ff}urcht $\to$ Impffurcht, Sen\mbox{ff}abrik $\to$ Senffabrik, Schor\mbox{ffl}ecken $\to$ Schorfflecken; Ablau\mbox{fl}ogik $\to$ Ablauflogik, fün\mbox{ffi}ngrig $\to$ fünf\mbox{fi}ngrig; Brie\mbox{ft}aube $\to$ Brieftaube, Sto\mbox{fft}eil $\to$ Stoffteil, el\mbox{ft}eilig $\to$ elfteilig, etc.
+
+% in preceding item, we need to use an \mbox in
+% fünf\mbox{fi}ngrig
+% to suppress application of the English-language
+% rule \nolig{ffing}{ff|ing}
+
+\item Case 2: Joining of a prefix (whether a free or a derivational morpheme) ending in~|f| and a main word (free morpheme). Ligatures are suppressed in this case as well. In German, by far the most common prefix that gives rise to the need to suppress various f-ligatures is the word \enquote{auf}, as in aufbrechen, auffassen, Aufführung, auffliegen, auffischen, auf\breaklig iss\breaklig t, aufjaulen, aufklingen, Auflage, Auftrag, auftreten, etc.
+
+\item Case 3: Joining of a main word (free morpheme) ending in \enquote{f} or \enquote{ff} and a suffix (either a derivational or an inflectional morpheme) starting with \enquote{f}, \enquote{i}, \enquote{l}, or~\enquote{t}.
+
+\begin{itemize}
+\item Case 3a: Suffixes that start with an \enquote{f}, e.g., |-fach| and |-faltig|; these are generally derivational morphemes. Examples: fünffach and zwölffaltig. The ff-ligature should be suppressed.
+
+\item Case 3b: Suffixes that start with an \enquote{i}, such |-ig|, |-in|, and |-isch|; these suffixes can be either derivational or inflectional morphemes. Examples: streifig, äffisch, Chefin, Chefinnen. The fi and ffi ligatures should \emph{not} be suppressed.
+
+I haven't found a clear justification for this rule so far. I assume it is there because unligated f\breaklig i pairs may be sufficiently unsightly as to constitute an infraction against good typography that's even more grievous than having fi and ffi ligatures span the boundary between a main word and a suffix.
+
+
+\item Case 3c: Suffixes (bound morphemes) that start with an \enquote{l}, e.g., |-lich|, |-ling|, |-lein| and |-los|. Example words: trefflich, höflich, Prüfling, Köpflein, and s\breaklig traflos. The fl-ligature is suppressed in all of these instances.
+
+\item Interlude I: In ambiguous cases that could give rise to fl-ligatures that involve certain suffixes, preference should be given\textemdash according to \emph{Duden}\textemdash to \enquote{how the syllables are pronounced and how a word would be hyphenated}, leading to a suppression of the fl-ligature. For instance, the fl-ligature is suppressed in Verzweif\-lung, Bezweifler, schweflig, and würflig; note that the \enquote{true} suffixes in these words are |-ung|, |-er|, and |-ig|, respectively, rather than |-lung|, |-ler|, and |-lig|.\footnote{%
+In my opinion, the rationale given for the suppression of the fl-ligature in these cases\textemdash relyiance on how the syllables are divided and how the composite words are hyphenated\textemdash is not entirely satisfactory because, morphologically speaking, the words Schwefel, Würfel, Zweifel, etc.\ contain two morphemes: a stem and the \emph{derivational} morpheme~|el|: \Verb+Schwef|el+, \Verb+Würf|el+, and \Verb+Zweif|el+, etc. It is therefore not necessary, in my opinion, to create a separate rule to justify the (non-)use of the fl-ligature in these cases. One could, instead, rely on the presence of two morphemes to motivate the suppression of the fl-ligature for words such as schweflig, teuflisch, würfle, and Verzweiflung, as their components are \Verb+schwef|[e]l|ig+, etc. However, I believe it's fair to say that most modern German speakers would barely be aware of the fact that the |el| particle constitutes a separate morpheme in words such as Würfel and Griffel, and that they would be entirely unaware of its presence in words such as Schwefel and Zweifel. At any rate, the typographical convention \emph{not} to use the fl-ligature for words such as schweflig, Verzweiflung, and würflig does \emph{not} appear to be based on the fact that letters~f and~l in these words belong to different morphemes.}
+
+This convention may also be applied to justify the non-use of the fl-ligature in words such as knifflig and mufflig as well as in the present-tense/first-person-singular forms of verbs such as büffeln, löffeln, schaufeln, stiefeln, verteufeln, and zweifeln: they are typeset \emph{without} the fl-ligature, i.e., as büffle, löffle, schaufle, stiefle, verteufle, and zweifle, respectively.
+
+\item Interlude II: If a word \emph{ends} with an |fl| character pair because an abbreviation is in effect, \emph{Duden} says it's OK to use the fl ligature even if the~f and~l characters belong to different morphemes. E.g., in the abbreviation \enquote{Aufl.}, the fl-ligature \emph{is} employed even though the ligature should not be used for the full, unabbreviated form of the word (\emph{viz.}, Auflage).
+
+Although not mentioned explicitly by \emph{Duden}, I believe this convention may be extended to justify the use of the ff-ligature at the end of the abbreviation \enquote{Auff.} (full form: Aufführung\textemdash no ff ligature) and of the ft-ligature at the end of the abbreviated form \enquote{Auft.} (full form: Auftrag\textemdash no ft ligature either).
+
+This convention further suggests (implies?!) that it's permissible (a) to use the ff ligature in surnames that end in ff, such as Orff and Hausdorff, and (b) to use the ffi- and ffl-ligatures in abbreviated names such as Steffi and Steffl.
+
+\item Case 3d: Word stem (free morpheme) ending in~|f| and derivational or inflectional morphemes starting with~|t|. Unfortunately, not much official wisdom seems to exist to guide this case, possibly because in German ft and~fft ligatures are not (yet?) used as widely as are the other f-ligatures. The following rules should thus be understood to be somewhat provisional.
+
+\begin{itemize}
+\item The convention mentioned in \enquote{Interlude II} above, about not breaking up an fl-ligature if it occurs at the very end of a word, may be adapted to the case of~ft and~fft ligatures: these ligatures are allowed \emph{if} they occur at the very ends of words (and at the ends syllables), as in verschärft, gestreift, gerafft, Dahingerafftsein, unbedarft, and Unbedarftheit. Note that in these cases, the ft and fft ligatures do span a morpheme boundary: the letter~|t| is an \emph{inflectional} morpheme that indicates a form of conjugation of the associated verb (viz., past tense and/or past particple).
+
+\item Should ft and fft ligatures be broken up in the past-tense and past-participle forms of verbs that do not end in~ft but, rather, in -fte, -ften, -ftes, -ftest, etc? Example words: |streifte|, |schlürftest|, and |rafften|. Because these suffixes are merely \emph{inflectional} rather than derivational morphemes, the \pkg{selnolig} package takes the approach of \emph{not} breaking up the~ft and~fft ligatures in these cases; thus, the words will be typset as streifte, schlürftes\kern0pt t, and rafften rather than as streif\breaklig te, schlürf\breaklig tes\kern0pt t, and raff\breaklig ten.\footnote{I will concede, again, that I haven't yet come across any kind of authoritative discussion of this issue. Should someone be able to furnish a good counterargument to the setting proposed here, I would be happy to change it.}
+
+\item It would also seem OK to use the ft-ligature in expressions such as \enquote{zu fünft} and \enquote{die zwölftschnells\kern0pt te Sprinterin Bayerns}: even though the |t| character now represents a derivational morpheme, the ligature occurs at end of the word or word fragment. In the case of the word \enquote{zwölftschnells\breaklig te}, the argument for keeping the ft ligature is based on the observation that the fragment \enquote{zwölft} serves a prefix to \enquote{schnells\kern0pt te}.
+
+In contrast, the ft-ligature should \emph{not} be used in \enquote{Beethoven's Fünfte Synphonie} and \enquote{zum elften Mal}. Observe that the argument in favor of breaking up the ft-ligature in the words \enquote{Fünfte} and \enquote{elften} is \emph{not} related to the fact that the words happen to have two syllables and that the syllables are divided between the letters~\enquote{f} and~\enquote{t}.
+
+\end{itemize}
+
+\item Case 4: A free morpheme ends in~\enquote{ft} (e.g., Saft, Duft, Luft, Kraft, Haft, and Vernunft) and is joined either to another free morpheme or to a suffix (representing either a derivational or an inflectional morpheme). Example words: \opt{Saftladen}, \opt{duftend}, \opt{luftig}, \opt{Kraftfahrzeug}, \opt{verkraften}, \opt{bekräftigen}, \opt{Haftung}, and \opt{ver\-nünftig}. The \pkg{selnolig} package does \emph{not} break up the ft-ligatures in these cases as they don't cross morpheme boundaries. Thus, these words are typeset as Saftladen, duftend, luftig, Kraftfahrzeug, verkraften, bekräftigen, Haftung, and ver\-nünftig, respectively. Given that no morpheme boundary crossings occur, the fact that there's a syllable boundary between |f| and~|t| in some cases should be irrelevant to the question of whether not to employ the ft and fft ligatures.
+
+\end{itemize}
+\end{itemize}
+
+
+\section[Structure of the selnolig package]{Structure of the \pkg{selnolig} package}
+
+\subsection{Components of the package}
+
+The \pkg{selnolig} package has the following components:
+\begin{itemize}
+\item The main \enquote{driver} file is called \pkg{selnolig.sty}. It loads several other files and sets up the the package's main user macros, \cmmd{nolig}, \cmmd{keeplig}, and \cmmd{breaklig}. These macros are explained in more detail in the following subsection.
+\item The package's user macros rely on lua code contained in the file \pkg{selnolig.lua}.
+\item The ligature suppression rules for English and German language documents are contained in the files \pkg{selnolig-english-patterns.sty} and \pkg{selnolig-english-patterns.sty}.
+\item Supplemental hyphenation exception patterns, mostly for composite words that involve one or more ligatures that are to be suppressed, are contained in the files \pkg{selnolig-english-hyphex.sty} and \pkg{selnolig-english-hyphex.sty}.
+\item A user guide (the document you're reading right now); the source code of the user guide is available in the file \pkg{selnolig.tex}.
+
+\item Ancillary files: the files \pkg{selnolig-english-test.tex} and \pkg{selnolig-german-test.tex} load the \pkg{selnolig} package as well as either \pkg{selnolig-english-wordlist.tex} or \pkg{selnolig-german-wordlist.tex}. They serve to demonstrate the output of the \pkg{selnolig} package when run on lists of English or German words that are candidates for non-use of ligatures. The files \pkg{selnolig-english-test.pdf} and \pkg{selnolig-german-test.pdf} contain the results of compiling the test programs.\footnote{The two \enquote{test} files also load the package \pkg{showhyphens} to indicate automatically all instances where \LuaLaTeX\ might insert hyphenation points.}
+
+\end{itemize}
+
+
+\subsection{The package's user commands} \label{sec:syntax}
+
+The file \pkg{selnolig.sty} should be loaded with a \cmmd{usepackage} statement, generally with one or more options; see \cref{sec:options} for a discussion of the available options.
+
+After setting up several Boolean switches to structure the processing of options, the package next loads the file \pkg{selnolig.lua}, which contains the package's lua code. The package then sets up several user macros. The three main user macros are \cmmd{nolig}, \cmmd{keeplig}, and \cmmd{breaklig}.
+
+
+
+\subsubsection{The \cmmd{nolig} macro}
+\label{sec:nolig}
+
+\enlargethispage{0.3\baselineskip}
+
+The package's main user macro is called \cmmd{nolig}. Each \cmmd{nolig} instruction takes two arguments: a search string and a string that indicates the insertion point for the non-ligation \enquote{whatsit}. For example, the macro
+\begin{Verbatim}
+ \nolig{lfful}{lf|ful}
+\end{Verbatim}
+instructs \LuaLaTeX\ to suppress automatically the ff-ligature in words such as \enquote{shelfful}, \enquote{bookshelfful}, and \enquote{selffulfilling}.
+
+More than one ligature suppression point may be provided in the second argument of a \cmmd{nolig} instruction. For instance, one \emph{could} specify \Verb+\nolig{Auflaufform}{Auf|lauf|form}+ to suppress both the fl- and the ff-ligatures in the words Auflaufform and Auflaufformen. For added flexibility, the \pkg{selnolig} package actually uses two separate \cmmd{nolig} commands to suppress the two ligatures in this word; see also \cref{sec:debugon}.
+
+
+It is possible to use Lua-style wildcard characters in the search string, as long as these characters occur \emph{after} the non-ligation point. For example, the file \pkg{selnolig-german-patterns.sty} employs the rules
+\begin{Verbatim}
+ \nolig{Dorff[aäeiloöruü]}{Dorf|f}
+ \nolig{dorff[aäeiloöruü]}{dorf|f}
+\end{Verbatim}
+to search for words that contain the strings \opt{Dorff} and \opt{dorff} followed by a letter in the set |aäeiloöruü|.\footnote{These particular search strings are used so as not to suppress the ff-ligatures in words that \emph{end} in either \opt{Dorff} or \opt{dorff}, such as is the case with the surnames Dorff and Hausdorff.} Incidentally, it is not absolutely necessary, in the second argument of the \cmmd{nolig} command, to provide any material \emph{after} the vertical bar that indicates the non-ligation point. However, the readability of your \cmmd{nolig} instructions may suffer if you suppress that material.
+
+If you examine the \cmmd{nolig} instructions provided in the files \pkg{selnolig-german-patterns.sty} and \pkg{selnolig-english-patterns.sty}, you'll notice quickly that there's some redundancy built into the package's ligature suppression rules. For instance, the need to suppress the ff-ligature in the word \enquote{auffallen} is catered to both by \Verb+\nolig{auff}{auf|f}+ and by \Verb+\nolig{ffall}{f|fall}+. This redundancy is there by design, because not all words that might fit one pattern will also fit the other. Providing some redundancy of this type seems like a reasonable way to proceed.
+
+The arguments of the \cmmd{nolig} and \cmmd{keeplig} command are case-sensitive.
+
+\subsubsection{The \cmmd{keeplig} macro}
+\label{sec:keeplig}
+
+
+The instruction |\keeplig{<string>}| lets users override \cmmd{nolig} instructions selectively, i.e., words that contain fragment |<string>| will not see the corresponding \cmmd{nolig} instruction enforced. For a \cmmd{keeplig} macro to work properly, its argument must be a string that includes \emph{as a subset} a string treated by one or more \cmmd{nolig} instructions.
+
+Having the \cmmd{keeplig} macro is very useful because it permits the specification of simpler, i.e., less restrictive, \cmmd{nolig} instructions; any Type-II errors that may arise from having \cmmd{nolig} macros whose scope may be insufficiently restrictive can be fixed by providing judiciously chosen \cmmd{keeplig} macros.\footnote{In the present context, a Type-II error is the suppression of a ligature that is, in fact, valid for the word at hand.}
+
+Consider the following example: If the \opt{ngerman} option is set, the package uses the macro
+\begin{Verbatim}
+ \nolig{flich}{f|lich}
+\end{Verbatim}
+to break up the fl-ligature in words such as begrifflich, beruflich, brieflich, glimpflich, hilflich, höflich, käuflich, sträflich, tariflich, trefflich, unerschöpflich, and verwerflich (and quite a few more such words), which all contain the suffix |-lich| (a derivational morpheme). This particular \cmmd{nolig} instruction also catches the word \enquote{Lauflicht}, which contains the free morphemes |Lauf| and |licht|.
+
+It turns out that the scope of this \cmmd{nolig} rule is a bit too broad since it also catches certain words, such as \opt{Pflicht} and \opt{verpflichten}, for which the fl-ligature should \emph{not} be suppressed. However, rather than provide a large number of slightly more restrictive \cmmd{nolig} macros just to avoid including the Pflicht- and pflicht-words, the package provides the command
+\begin{Verbatim}
+ \keeplig{flicht}
+\end{Verbatim}
+This instruction tells \pkg{selnolig} to override the action of the \Verb+\nolig{flich}{f|lich}+ instruction for all words that contain the string \opt{flicht}. Most words affected by this \cmmd{keeplig} instruction happen to contain the strings \enquote{Pflicht} and \enquote{pflicht}. Interestingly, this instruction also serves to preserve the fl-ligature in words such as \enquote{flicht} and \enquote{anflicht} (the third-person-singular forms of the verbs flechten and anflechten).
+
+Probably somewhat surprisingly, at least at first glance, it is \emph{not necessarily} the case that ligatures contained in the argument of a \cmmd{keeplig} instruction will, in fact, be used in words that contain this search string. Why? It is because, as was noted above, \emph{more than one} \cmmd{nolig} instruction can apply to a given word. Consider, for instance, the aforementioned word \opt{Lauflicht}; it turns out to be the case that this word is caught by two \cmmd{nolig} rules and one \cmmd{keeplig} rule provided in the file \pkg{selnolig-german-patterns.sty}:
+\begin{Verbatim}
+ \nolig{aufl}{auf|l}
+ \nolig{flich}{f|lich}
+ \keeplig{flicht}
+\end{Verbatim}
+Observe that because the string |aufl| is \emph{not} a subset of the string |flicht|, the instruction |\keeplig{flicht}| does not undo the action of \Verb+\nolig{aufl}{auf|l}+. Hence, the word |Lauflicht| happily ends up being typeset as Lauflicht, i.e., \emph{without} an fl-ligature.
+
+Interestingly, the rule |\keeplig{flicht}| is itself a bit too broad since it also catches the word \opt{Sumpf\-licht}, for which the fl-ligature \emph{should} in fact be suppressed. To address this situation, the file \pkg{selnolig-german-patterns.sty} also provides the rule
+\Verb+\nolig{Sumpfl}{Sumpf|l}+. This rule suppresses the fl-ligature for Sumpflicht as well as for Sumpflabkraut and Sumpfleiche (and the plural forms of these nouns).
+
+
+
+\subsubsection{The \cmmd{breaklig} macro}
+\label{sec:breaklig}
+
+The macro \cmmd{breaklig}, which doesn't take an argument, is provided as a hopefully easy-to-remember version of the lower-level \LaTeX\ command \Verb+\-\hspace{0pt}+. As its name suggests, you should insert this macro in places where you want to break up a ligature on an ad-hoc basis (and also wish to permit hyphenation to occur). For instance, to suppress the {\ebg\emph{sk}} ligature in the word \Verb+groundskeeper+ on a one-off basis, one might enter it as \enquote{\Verb+grounds\textbackslash breaklig keeper+} to get \emph{\ebg groundskeeper} instead of \emph{\ebg ground\mbox{sk}eeper}.\footnote{To suppress the {\ebg \emph{sk}} ligature for this word, as well as for words such as \emph{\ebg greenskeeper} and \emph{\ebg miskeep}, everywhere in the document, one could issue the directive \Verb+\nolig{skeep}{s|keep}+. The \pkg{selnolig} package provides just such a rule.}
+
+
+The \pkg{selnolig} package does not provide a dedicated macro to override the action of a \cmmd{nolig} instruction on an ad~hoc basis, i.e., to \emph{require} the use of a typographic ligature on a one-off basis. The \LaTeX\ kernel command \Verb+\mbox{<string>}+ already provides this capability.
+
+
+\subsection{Further steps in the package's startup process}
+
+After the user commands of the \pkg{selnolig} have been set up, the remaining steps in the package's startup process depend on which language-related options are set:
+\begin{itemize}
+\item If \emph{no} language-specific options are in effect, the setup process terminates. Users may, of course, still provide their own \cmmd{nolig} and \cmmd{keeplig} rules and insert \cmmd{breaklig} instructions as they deem to be necessary.
+
+\item If the \opt{english} option (or one of its synonymous options) is set, the files \pkg{selnolig-english-patterns.sty} and \pkg{selnolig-english-hyphex.sty} are loaded. The former file contains a detailed list of \cmmd{nolig} and \cmmd{keeplig} rules adapted to English language typographic usage; \Cref{sec:eng-listing} provides a complete listing of these rules. The latter file contains a list of hyphenation exceptions, mainly for words that contain one or more potential non-ligation points and for which \TeX's hypenation algorithm either misses valid hyphenation points or selects invalid hyphenation points; see \cref{sec:addlhyph} below.
+
+\item If the \opt{ngerman} option (or one of its synonymous options) is set, the files \pkg{selnolig-german-patterns.sty} and \pkg{selnolig-german-hyphex.sty} are loaded. The former file contains ligature suppression rules appropriate for German typographic usage; \cref{sec:germ-listing} lists its contents. The latter file provides additional hyphenation rules for German-language words.
+
+\item If the user specifies both the \opt{english} and \opt{ngerman} options (or some of their synonymous options), \emph{both} language-specific style files will be loaded. Under normal circumstances, a user will probably want to load only one or the other set of language-specific files, but not both sets.
+\end{itemize}
+
+
+
+\section{Additional ligature-related matters}
+\label{sec:options}
+
+
+\subsection{The package's main language options}
+
+The \pkg{selnolig} package currently offers two main language-specific options:
+\begin{itemize}
+\item \opt{english}; synonyms: \opt{british}, \opt{ukenglish}, \opt{UKenglish}, \opt{amer\-ican}, \opt{usenglish}, \opt{USenglish}, \opt{cana\-dian}, \opt{australian}, and \opt{new\-zealand}.
+\item \opt{ngerman}; synonyms: \opt{german}, \opt{austrian}, \opt{naustrian}, \opt{swiss}, and \opt{swiss\-german}.
+\end{itemize}
+These language options may be used either individually or jointly. Indeed, this user guide was compiled with both the \opt{english} and \opt{ngerman} options set.
+
+The ligature suppression rules associated with English and German are listed in \cref{sec:eng-listing,sec:germ-listing}, respectively.\footnote{To give an admittedly imperfect impression of just how much more complex the task is to create ligature suppression rules for German rather than it is for English: As of the mid-May 2013 version of the package, the \enquote{basic} English f-ligature suppression rules consist of 32 \cmmd{nolig} and 17 \cmmd{keeplig} instructions. (Including the rules that are activated if the |broadf| and |hdlig| options are both activated, the tally rises to about 420 \cmmd{nolig} and 52 \cmmd{keeplig} instructions.) The file \pkg{selnolig-german-patterns.sty}, in contrast, contains about 700 \cmmd{nolig} and 335 \cmmd{keeplig} directives. Recall that the package currently provides rules only for a set of \enquote{basic} f-ligatures for German words.}
+
+
+
+\subsection[English language case: The broadf and hdlig options]{English language case: The \opt{broadf} and \opt{hdlig} options} \label{sec:eng-opt}
+
+The ligature suppression patterns for English language words, contained in the file \pkg{selnolig-english-patterns.sty} and listed in \cref{sec:eng-listing} below, are grouped into four parts. The first two parts concern the suppression of f-ligatures. Part~1 provides a fairly limited, or \enquote{basic}, set of patterns that will always be executed, and Part~2 contains a broader set of ligation suppression rules that will be executed if the \opt{broadf} option is specified.
+
+For English-language documents, only a fairly limited number of f-ligature suppression rules is enabled by default, i.e., if the \opt{broadf} option is not enabled. Eliminating \emph{all} f-ligatures that cross morpheme boundaries simply does not appear to be a major concern in English-language typography. Whereas many (maybe most?) people would agree that it's advisable not to use the ffi-ligature in words such as chaffinch and wolffish, and not to use the ffl-ligature in words such as scofflaw and offload, there appears to be far less of a perceived need to suppress the~fi (ffi) ligature in the far more commonly occurring words that end in~f (ff\,) followed by the particles -ing, -ish, -ier, -iest, -ily, and -iness.\footnote{Examples of such words are sur\mbox{fi}ng, oa\mbox{fi}sh, lea\mbox{fi}er, goo\mbox{fi}est, flu\mbox{ffi}ly, and goo\mbox{fi}ness.} The same goes for the~fl (ffl) ligature in words that end in~f (ff) followed by~-ly.\footnote{Examples are \mbox{aloofly} and \mbox{gruffly}.} That is why only a few f-ligature suppression macros are enabled by default if the \opt{english} option is set. To enable the broader set of f-ligature suppression rules, users must set the \opt{broadf} option explicitly.
+
+My choices regarding which f-ligature suppression rules belong to the \enquote{basic} and \enquote{broadf} groups are almost entirely pragmatic. They are certainly not based on any overriding English-language typographic principles (which, possibly, don't even exist). However, if anyone happens to have a strong view on whether either \emph{fewer} or \emph{more} f-ligature suppression macros should be included in the \enquote{basic} group\textemdash especially if you can provide references to such discussions in learned circles\textemdash I would love to hear from you.
+
+
+Part 3 of the file \pkg{selnolig-english-patterns.sty}, which is enabled if the \opt{hdlig} option is set, provides ligature suppression patterns involving the \mbox{ct}, \mbox{st}, and \mbox{sp} ligatures. Examples are words such as arctangent (rather than ar\mbox{ct}angent), painstaking (rather than pain\mbox{st}aking), and trespass (worse: tre\mbox{sp}ass). Furthermore, the~st and~sp ligatures are suppressed automatically for words of Greek roots that contain the \opt{sth} and \opt{sph} character triples, such as anaesthesia, isthmus, atmosphere and hemisphere. In such cases, I'd argue that using the distinctive-looking st and sp ligatures unnecessarily obscures the \opt{th} and \opt{ph} character pairs (which derive from the single Greek letters~$\theta$/$\vartheta$ and $\phi$/$\varphi$, respectively). Given that the \opt{ph} character pair is usually pronounced as~\enquote{\opt{f}}, the readability of the words that contain the character triple \opt{sph} would likely suffer if they were typeset \emph{with} an sp ligature, e.g., as atmo\mbox{sp}here and \mbox{sp}herical, say.
+
+Setting the \opt{hdlig} option also enables ligature suppression rules for additional discretionary ligatures such as \emph{th}, \emph{at}, and~\emph{et}. These ligatures might be deemed inappropriate for use in words such as \emph{ligh\mbox{th}ouse}, \emph{po\mbox{th}ole}, \emph{arom\mbox{at}herapy}, \emph{alb\mbox{at}ross}, \emph{nin\mbox{et}y}, and \emph{non\mbox{et}heless}; with the \opt{hdlig} option set, these words will be typeset as \emph{lighthouse}, \emph{pothole}, \emph{aromatherapy}, \emph{albatross}, \emph{ninety}, and \emph{nonetheless}. Ligature suppression rules are provided for the following discretionary ligatures, which occur only in the \emph{italic} font shape of the font family used in this document: \emph{th}, \emph{at}, \emph{et}, \emph{as}, \emph{is}, \emph{us}, {\ebg \emph{sk}}, \emph{ll}, and~\emph{fr}. Part~3 of \cref{sec:eng-listing} lists these rules.
+
+Part 4 of the file \pkg{selnolig-english-patterns.sty}, which is also processed if the \opt{hdlig} option is set, deals with cases where one discretionary typographic literature, say \emph{as}, might pre-empt the use of a more appropriate but trailing typographic ligature, say \emph{st} or~\emph{sp}, in words such as \emph{f\mbox{as}t}~$\to$ \emph{fa\mbox{st}} and \emph{cl\mbox{as}p}~$\to$ \emph{cla\mbox{sp}}. Note that the issue being addressed in this part is not that of a ligature improperly spanning a morpheme boundary; instead, it is the possibility that \TeX\ might pre-empt one typographic ligature with another ligature within one and the same morpheme. This issue is discussed in more detail in \cref{sec:preempt} below.
+
+\subsection{Composite words with ambiguous morphology}
+
+There may be pairs of composite words which look alike but are made up of two different pairs of morphemes. For instance, the German words \opt{Saufladen} and \opt{Wachstube} may be constructed as \opt{Sauf-laden}\slash \opt{Sau-fladen} and as \opt{Wachs-tube}\slash \opt{Wach-stube}, respectively. In one case, using the fl and st ligatures would be wrong; in the other, using the ligatures would help greatly in indicating the intended meaning of the composite words.
+For words such as these, software isn't smart enough to \enquote{discern} which possible meaning is intended.\footnote{It turns out that if the \opt{ngerman} option is set and the \pkg{babel} package is loaded as well, the \opt{selnolig} package will break up the fl ligature in \opt{Saufladen} but not the st ligature in \opt{Wachstube}, i.e., the words will be typeset as \enquote{Saufladen} and \enquote{Wachstube}, respectively. If that's \emph{not} what you want, you'll need to mark up the words explicitly, say as follows: \Verb+Sau\mbox{fl}aden+ and \Verb+Wachs\breaklig tube+. } Writers, of course, could (and should?) choose to insert explicit hyphen characters to indicate the intended meaning.
+
+The preceding two examples involve pairs of free morphemes in both cases. Here's a composite word where one case involves a free morpheme and an inflectional morpheme, whereas the other involves two free morphemes: \opt{Surftest}. Consider the questions, \enquote{Surftes\kern0pt t Du vergangene Woche in Hawaii?}, and \enquote{Hat die Athletin den Surf\breaklig tes\kern0pt t bes\kern0pt tanden?} Only in the second case is it clearly wrong to use the ft-ligature; in the first case, one could argue that the use of the ft-ligature actually helps establish the composite word's intended meaning\dots
+
+An even more complicated example is the word \opt{Chefinnenleben}, which contains three morphemes. This word can be deconstructed either as \opt{Chefinnen-leben} (\enquote{lives of female bosses}) \emph{or} as \opt{Chef-innenleben} (\enquote{inner life, or lives, of a boss}). Thus, the word's middle particle\textemdash\enquote{innen}\textemdash can function both as a suffix (in this case, an inflectional morpheme) to \enquote{Chef} and as a free morpheme that modifies the third morpheme, \enquote{Leben}. Software isn't smart enough yet to discern on its own which usage is intended.
+
+The macros of the \pkg{selnolig} package are set \emph{not} break up the fi-ligature in the shorter words Chefin and Chefinnen, in keeping with the principle that the fi-ligature is permitted for suffixes that start with an~\enquote{i}. In contrast, \pkg{selnolig} will break up the fi-ligature in the longer words Chefinnenleben and Chefinnenräume, because in these cases the working assumption is that \opt{innen} acts as a prefix of sorts to the third morpheme (Leben or Räume). If this is \emph{not} what you want, i.e., if you really do mean to refer to lives or spaces of female bosses, be sure to use \Verb+\mbox{fi}+ instructions to preserve the fi-ligatures. Better yet: write the words in question using explicit hyphens, i.e., as Chefinnen-Leben and Chefinnen-Räume. And, while you're at it, do consider writing the other forms as Chef-Innenleben and Chef-Innenräume. Your readers will thank you.
+
+Summing up: There are words for which it's not possible to decide without knowledge of the context within which the word is used whether or not a given ligature should be enabled or suppressed. The best advice I can give is to stay on the lookout for such words and to take corrective action if you believe \pkg{selnolig}'s choice is the wrong one.
+
+
+
+\subsection{How to provide additional ligature suppression patterns}
+
+As already noted, it's not possible to claim that the non-ligation search-and-insert patterns set up in \pkg{selnolig-english-patterns.sty} and \pkg{selnolig-german-patterns.sty} are complete or, for that matter, will \emph{ever} be complete. If you come across words containing ligatures that ought to be suppressed but aren't caught (yet) by the \pkg{selnolig} package, you could insert \cmmd{breaklig} instructions to suppress the ligatures on a case-by-case basis; conversely, if you discover an instance for which \pkg{selnolig} improperly breaks up a ligature, you could override that action by encasing the character pair (or triple) in an \cmmd{mbox} statement. Alternatively, you could create your owb \cmmd{nolig} and \cmmd{keeplig} rules to deal with the cases you've discovered on a document-wide basis.\footnote{A third option, naturally, is to bring this case to the attention of the maintainer of the \pkg{selnolig} package and ask him/her to update the package\dots}
+
+Suppose, say, that you've been tasked with preparing a special edition of Thomas Mann's novel \enquote{Der Tod in Venedig}. Suppose further that you have chosen to use an \enquote{Antiqua} (Roman) font to typeset the new edition, as fewer and fewer people nowadays can manage to read with ease text set in a {\blackletterfont period-appropriate blackletter font}. Moreover, the font you've chosen features a ligature for the ffl character triple. During these preparations, you happen to notice (i)~that the novel contains the word \opt{inbegriffleitend}\footnote{This word really does occur in the aforementioned novel! This novel may also be pretty much the \emph{only} place where the word inbegriffleitend is used. I performed a Google search for this word; the only occurrences of this word, apart from online editions of Thomas Mann's novel, are on sites of a couple of French bloggers who agonize over how this word might possibly be translated from German to French\dots} and (ii)~that the \pkg{selnolig} package does not (yet) appear to include a rule that suppresses the ffl-ligature for this word. To address this problem\textemdash while simultaneously creating a search pattern that also catches inappropriate ffl-ligatures in the (hopefully quite a bit more common!) words \opt{Jugendtreffleiter} and \opt{Kunststoffleitung}\textemdash you could add the following \Verb+\nolig+ rule to your document's preamble:
+\begin{Verbatim}
+ \nolig{ffleit}{ff|leit}
+\end{Verbatim}
+With this rule in place, the words will be typeset as inbegriffleitend, Jugendtreffleiter, and Kunststoffleitung, respectively. Just in case this discussion has made you curious: the file \pkg{selnolig-german-patterns.sty} actually provides the even more general (i.e., less restrictive) rule \Verb+\nolig{fleit}{f|leit}+.
+
+When designing your own \cmmd{nolig} and \cmmd{keeplig} rules, you would ideally create them in such a way that they're neither too specific and hence only apply to a very small set of words, nor too general and hence end up applying to words for which the rule isn't meant to apply at all. Consider, say, what would happen if you had come up with the rule
+\begin{Verbatim}
+ \nolig{flei}{f|lei}
+\end{Verbatim}
+This rule would certainly succeed in (correctly) breaking up the fl ligature in the words inbegriffleitend, Jugendtreffleiter, and Kunststoffleitung as well as in Laufleis\breaklig tung, Häuflein, Kreislaufleiden, Scherflein, and many more. However, this rule would also incorrectly break up the fl ligature in many other words as well, including f\kern0pt leissig\slash f\kern0pt leißig, f\kern0pt leischig, Hackf\kern0pt leisch, and Diplomf\kern0pt leißarbeit. When in doubt, try to err on the side of making the rules a bit too restrictive.
+
+
+
+\subsection[How to use the selnolig package to suppress certain ligatures globally]{How to use the \pkg{selnolig} package to suppress certain ligatures \emph{globally}}
+\label{sec:global-nolig}
+
+
+The main purpose of the \pkg{selnolig} package is, obviously, to disable certain ligatures selectively. However, it can also be used to suppress ligation globally for selected character pairs.\footnote{I first became aware of the potential need for such a feature from reading Frank Mittelbach's posting, \href{http://tex.stackexchange.com/q/61042/5001}{Suppress certain ligatures generally}, on \url{tex.stackexchange.com}. }
+
+For instance, suppose that you are typesetting a Turkish text. The Turkish alphabet features both a dotted~i and a dotless~\char"0131\ character. I understand that in Turkish typesetting practice, the fi and ffi ligatures should \emph{never} be employed, so as to avoid creating any doubts as to whether it's an~i or an~\char"0131\ character that follows the~\enquote{f} character. To satisfy the need of Turkish typography for global suppression of the fi and ffi ligatures, one could issue the command
+\begin{Verbatim}
+ \nolig{fi}{f|i}+
+\end{Verbatim}
+in the document's preamble.
+
+
+Or, suppose that you have a font that provides ligatures for the {\ebg \mbox{fb}, \mbox{fh}, \mbox{fj},} and {\ebg\mbox{fk}} character pairs (as well as, possibly, the {\ebg \mbox{ffb}, \mbox{ffh}, \mbox{ffj},} and {\ebg\mbox{ffk}} character triples). If you wanted to suppress the four former f-ligatures globally (and also break up the latter ligatures into ff\kern0pt b, ff\kern0pt h, ff\kern0pt j, and~ff\kern0pt k, respectively), you could do so by issuing the following commands:
+\begin{Verbatim}
+ \nolig{fb}{f|b}
+ \nolig{fh}{f|h}
+ \nolig{fj}{f|j}
+ \nolig{fk}{f|k}
+\end{Verbatim}
+In fact, these commands are activated automatically if the package's \opt{ngerman} or \opt{english} options are set. This is done because I was unable to come up with a single instance of a \emph{German} or \emph{English} language word involving these character combinations that doesn't also involve a morpheme boundary collision.
+
+Of course, your document may contain words \emph{not} of German or English origin that contain some of these character pairs and do not involve a morpheme boundary crossing. For such words, it is not desirable to suppress the corresponding ligatures. One such word is \opt{Kafka}: one may not wish to suppress the {\ebg\mbox{fk}}-ligature for this specific word. The \pkg{selnolig} package provides \cmmd{keeplig} macros to preserve the {\ebg\mbox{fk}}-ligature in names such as {\ebg Kafka, Safka, Piefke, Potrafke, Sprafke, Shirafkan,} and {\ebg Tirafkan}.\footnote{Aside: It was Felix Lehmann's desire to preserve the {\ebg\mbox{fk}} ligature when typesetting \enquote{{\ebg Kafka}} that stimulated the creation of the package's \cmmd{keeplig} macro. Of course, once the \cmmd{keeplig} macro was created, all kinds of further great uses for this macro were quickly discovered.}
+
+Your documents may also words of \emph{Nordic} origin that contain the \opt{fj} character pair, such as \opt{Sognefjord} and \opt{Dovrefjell}. Because the \opt{fj} character pair in these words does not span a morpheme boundary, the {\ebg\mbox{fj}}-ligature should not be broken up; i.e., the words should be typeset as {\ebg Sognefjord and Dovrefjell}, respectively. The package therefore provides \cmmd{keeplig} rules to take care of (a)~words that contain the particles {\ebg fjord, fjör, fjell, and fjäll} and (b)~names such as {\ebg Eefje, Sufjan, Prokofjew, and Astafjew}.
+
+A \enquote{rare} typographic ligature that may warrant global suppression, at least for English language documents, is~\mbox{\emph{ij}}.\footnote{In many fonts I'm familiar with, including the one used for this user guide, the |ij| character pair is available in the upright font shape as a \emph{digraph} rather than as a true, i.e., joined-up, ligature.} To the best of my knowledge, a morpheme boundary crossing occurs for all English language words that contain the~\opt{ij} character pair: \emph{antijam}, \emph{bijection}, \emph{demijohns}, and \emph{hijack}. By the logic set forth above, this ligature should therefore be suppressed for all of these words.\footnote{If this ligature weren't suppressed, the preceding words would be typeset as \emph{ant\mbox{ij}am}, \emph{b\mbox{ij}ection}, \emph{dem\mbox{ij}ohns}, and \emph{h\mbox{ij}ack}.} The \mbox{\emph{ij}} ligature also seems inappropriate for most words that came into English from languages such as French, Japanese, and Spanish, including \emph{bijou} (jewel), \emph{gaijin} (foreigner), \emph{jipijapa} (Panama hat), and \emph{marijuana} (Maryjane). (What?! Were you maybe thinking of a different meaning of this word? Why would you?!) The \mbox{\emph{ij}} ligature is therefore suppressed \emph{globally} by the \pkg{selnolig} package if the options \opt{english} and \opt{hdlig} are set.
+However, this ligature \emph{does} get used a lot in Dutch. Thus, the \pkg{selnolig} package issues various \cmmd{keeplig} directives so that this ligature isn't suppressed for some names and words of Dutch origin, such as \emph{de~Bruijn} and \emph{rijsttafel}.\footnote{The word \emph{rijsttafel}, incidentally, features three consecutive \enquote{rare} ligatures. Another word that contains three rare ligatures, though not consecutive ones, is \emph{\mbox{is}thmus}. }
+
+
+
+\subsection{What if one ligature pre-empts a trailing, more appropriate ligature?} \label{sec:preempt}
+
+If a font provides many discretionary ligatures, the likelihood is high that words will occur for whichthe use of a ligature for the first two characters of a character \emph{triple} might pre-empt the use of a more appropriate ligature for the last two characters of that triple. To be sure, the issue of ligature pre-emption is not limited to \enquote{discretionary} ligatures; it can also occur with \enquote{common} f-ligatures.\footnote{Suppose that a certain font provides ff, fi, and fl ligatures but no ffi and ffl ligatures, and consider how \TeX\ would typeset words containing \opt{ffi} and \opt{ffl} character triples. Left to its own devices, \TeX\ would let the leading ff-ligature pre-empt the trailing fi- and fl-ligatures, resulting in typographically incorrect outcomes for words such as wol\mbox{ff}ish (better: wolf\mbox{fi}sh), sa\mbox{ff}lower (safflower), au\mbox{ff}inden (auffinden), and Scha\mbox{ff}leisch (Schaffleisch). \label{fn:triple}}
+
+In this section, we examine the use of \cmmd{nolig} instructions to address this contingency, focusing on cases of~\emph{st}, \emph{sp}, \emph{th}, and~\emph{ta} character pairs being preceded by character pairs (for which the font provides ligatures) that end in~\emph{s} or~\emph{t}, respectively. This focus is dictated largely by the discretionary ligatures provided by the main text font used for this user guide (Garamond Premier Pro). Other ligature-rich fonts may provide further possibilities for one ligature inappropriately pre-empting that for a trailing character pair.\footnote{For the font Garamond Premier Pro, I've discovered the following preculiar exception to the general rule that \TeX\ always gives precedence to a ligature for the first two characters of a character triple: for the character triple \opt{fis} (as in \opt{fist} and \opt{fish}), \TeX\ gives preference to the trailing \emph{is} ligature over the preceding \emph{fi} ligature, causing these words to be typeset as \emph{f\mbox{is}h} and \emph{f\mbox{is}t}, respectively. I can't tell if this outcome is a conscious design feature or a bug. For now, \pkg{selnolig} is set to override this behavior, i.e., to always give preference to the leading \emph{fi} ligature over the trailing \emph{is} ligature for words that contain the strings \opt{fist} and \opt{fish}; hence, they'll be rendered as \emph{fist} and \emph{fish}, respectively.
+
+Note that if the \opt{broadf} option is set (as is the case for the document you're reading), this setting implies that words such as \emph{deafish, dwarfish, elfish, oafish, selfish, unselfish, wolfish, draffish, giraffish, gruffish, offish, raffish, sniffish, standoffish, stiffish, \emph{and} toffish}, as well as the associated adverbs ending in \emph{-ly}, will not feature an \emph{is} ligature.}
+
+
+
+\subsubsection*{Ligatures for \emph{as}, \emph{is}, and \emph{us} that pre-empt an \emph{st} ligature}
+
+Suppose that the text font in use provides ligatures for the \emph{as}, \emph{is}, and \emph{us} character pairs as well as for the \emph{st} character pair. By \TeX's rules for forming typographic ligatures, words that contain the character \emph{triples} \opt{ast}, \opt{ist}, or \opt{ust} will see the first two characters ligated, pre-empting the use of a typographic ligature for the trailing \emph{st} character pair. There are at least three distinct reasons why this outcome is not desirable.
+
+First, given the rather distinctive look of the \emph{st}~ligature, the word \opt{stochastic} may look a bit odd if the \emph{st} ligature is used only once\textemdash\emph{stoch\mbox{as}tic}\textemdash simply because the \emph{as} ligature pre-empts the second \emph{st} ligature; readers may prefer the look of \emph{stocha\mbox{st}ic}. Second, non-use of the st/\emph{st} ligature may be undesirable if the same word occurs twice and in close visual proximity, once set in the upright font shape\textemdash for which there are no ligatures for the \opt{as}, \opt{is}, and \opt{us} character pairs, and hence for which the issue of ligature pre-emption doesn't arise\textemdash and once in italics: must and \emph{m\mbox{us}t}; readers may prefer the look of must and \emph{mu\mbox{st}}. Or, consider the words \enquote{historian} and \enquote{history} when typesetting them in italics: I'd say it's much better to typeset them as \emph{historian} and \emph{history} rather than as \emph{h\mbox{is}torian} and \emph{h\mbox{is}tory}. Moreover, I suspect that Austrians\textemdash at least the ones who care about discretionary typographic ligatures\dots\textemdash may prefer to see the name of their country typeset as \emph{Austria} rather than as \emph{A\mbox{us}tria}. Finally, do you prefer the look of \emph{Do f\mbox{as}t festive f\mbox{is}ts foster f\mbox{us}tiness?} or that of \emph{Do fast festive fists foster fustiness?} You prefer the latter look too? Great!
+
+Third, there may be cases where an \emph{as} ligature not only pre-empts a subsequent \emph{st} ligature but also spans a morpheme boundary, as in the words \emph{infr\mbox{as}tructure} and \emph{se\mbox{as}trand}.\footnote{This case was already noted in \cref{fn:triple}. There, two words (\opt{wolffish} and \opt{Schaffleisch}) are mentioned for which the ff-ligature would improperly pre-empt fi- and fl-ligatures \emph{and} happen to span a morpheme boundary.} For such words, the \emph{as} ligature should probably be suppressed in any case to increase the words' legibility: \emph{infra\mbox{st}ructure} and \emph{sea\mbox{st}rand}.
+
+The \pkg{selnolig} package is set to give preference to the distinctive-looking \emph{st} ligature over \emph{as}, \emph{is}, and \emph{us} ligatures. To this end, the following \cmmd{nolig} rules are provided:\footnote{The second of these three commands, while correct for most words that contain the string \opt{ist}, unnecessarily suppresses the \emph{is} ligature for words for which the \emph{st} character pair crosses a morpheme boundary, e.g., words that start with \emph{dis-t\ldots}\textemdash e.g., \emph{distend, distribute, distrust, disturb}\textemdash or with \emph{mis-t\ldots}\textemdash e.g., \emph{mistake, mistranslate, mistype}. (Note that separate \cmmd{nolig} rules already suppress the st/\emph{st} ligature for these words.) At this time there are no plans to address this (overall hopefully minor?) issue.}
+\begin{Verbatim}
+ \nolig{ast}{a|st}
+ \nolig{ist}{i|st}
+ \nolig{ust}{u|st}
+\end{Verbatim}
+
+
+
+\subsubsection*{Ligatures for \emph{as}, \emph{is}, and \emph{us} that pre-empt an \emph{sp} ligature}
+
+The same three reasons for not letting \emph{as}, \emph{is}, and \emph{us} ligatures pre-empt an \emph{st} ligature also apply to the case of the equally distinctive-looking \emph{sp} ligature. The \pkg{selnolig} package therefore provides rules to ensure that the \emph{sp} ligature is used in words such as \emph{clasp}, \emph{hasp}, \emph{hispanic}, \emph{raspberry}, \emph{teaspoon}, \emph{wasp}, \emph{crisp}, \emph{lisp}, \emph{whisper}, and \emph{cusp}.
+
+
+
+\subsubsection*{Ligatures for \emph{at} and \emph{et} that pre-empt a \emph{th} ligature}
+
+Suppose that a font provides ligatures for the \emph{at}, \emph{et}, and \emph{th} character pairs. By \TeX's rules for forming ligatures, without special intervention the word \opt{mathematics} will be typeset as \emph{m\mbox{at}hematics} rather than as \emph{mathematics} because the first \emph{at} ligature pre-empts the \emph{th} ligature. The same happens for words such as \emph{b\mbox{at}h}, \emph{K\mbox{at}hryn}, and \emph{p\mbox{at}hology}.
+Given the commonness and the distinctive pronuciation of the \opt{th} character pair in the English language, as well as the high frequency of this character pair in words of Greek origin (for which the Latin-alphabet \opt{th} character pair derives from the single Greek character $\theta$/$\vartheta$), it seems undesirable to let the \emph{at}-ligature pre-empt the \emph{th} ligature for these words.
+
+Fixing the \emph{at}--\emph{th} ligature pre-emption issue globally\textemdash e.g., via \Verb+\nolig{ath}{a|th}+\textemdash is not completely innocuous, though, because doing so will also suppress the \emph{at} ligature for words such as \opt{boathook}, for which the \emph{th} ligature would span a morpheme boundary and thus shouldn't be employed anyway. For such words, then, there's no need to suppress the \emph{at} ligature. These cases are dealt with by providing specific \cmmd{keeplig} rules to re-enable the use of the \emph{at} ligature.
+
+Suppressing an \emph{et} ligature in favor of a subsequent \emph{th} ligature via \Verb+\nolig{eth}{e|th}+ is almost universally correct, either because the \emph{th} ligature \emph{should} take precedence\textemdash as in the words \emph{ethics}, \emph{methane}, and \emph{teeth}\textemdash or because the \emph{et} ligature would cross a morpheme boundary and hence shouldn't be used anyway, as in the words \emph{forethought} and \emph{rethink}.
+I say that it's \emph{almost} universally correct to do so; however, there are some words, such as \opt{Beethoven}, \opt{prophethood}, and \opt{sweetheart}, for which the \emph{th} ligature would be inappropriate anyway and for which the use of the \emph{et} ligature would hence be unproblematic. To address this issue, \cmmd{keeplig} rules are provided to override the rule \Verb+\nolig{eth}{e|th}+ for words such as \emph{Beethoven}, \emph{prophethood}, and \emph{sweetheart}.\footnote{Note that this method works if the font being used provides both \emph{et} and \emph{th} ligatures. If the text font you employ provides only the \emph{th} ligature but no \emph{et} ligature, these \cmmd{keeplig} rules should be disabled.}
+
+
+%\enlargethispage{1\baselineskip}
+
+\subsubsection*{Ligatures for \emph{at} and \emph{et} that pre-empt a \emph{ta} ligature}
+
+There seem to be very few English words for which an \emph{at} ligature might inappropriately pre-empt a \emph{ta} ligature. One such word is \opt{atap}, whose readability is enhanced if it's typeset as~\emph{atap} rather than as~\emph{\mbox{at}ap}.
+
+Virtually all words for which an \emph{et} ligature might inappropriately pre-empt the use of a trailing \emph{ta} ligature appear to be words for which the \emph{et} ligature crosses a morpheme boundary and should be suppressed. Examples are \emph{betake, betatter, bristletail, caretaker, detach, dovetail, foretaste, pretax, retable, retack, retard, retarget, timetable, \emph{and} wiretap}. The \emph{et}-related ligature suppression rules already put in place to deal with morpheme boundary crossing cases should therefore suffice to catch these cases as well. There may also be cases of persons' names which include the string |eta| for which the \emph{ta} ligature should not be pre-empted. For instance, the author of this package prefers to see his surname typeset as \emph{Loretan} rather than as \emph{Lor\mbox{et}an}\dots
+
+
+
+
+\section{Further issues}
+
+\subsection{Known bugs}
+
+\begin{enumerate}
+\item The \cmmd{nolig} directives don't work properly on the final word in the argument of certain \TeX\ macros, such as |\section{}|. For instance, the ff ligature in |Shelfful| isn't broken up if it's encountered in the instruction |\section{Shelfful}|.
+
+The proposed remedy is to insert either one or more space characters or the instruction \cmmd{kern0pt} between the final word of the command's argument and its closing curly brace. To wit, ligature suppression works as expected if the command given in the preceding paragraph is modified to |\section{Shelfful }|\textemdash observe the presence of whitespace.\footnote{In versions of \pkg{selnolig} prior to version 0.216, this bug also occurred at the end of the argument of \cmmd{footnote} instructions. That bug has fortunately been fixed; i.e., it's no longer necessary to insert a \cmmd{kern0pt} directive after the final word of the footnote and the command's closing curly brace.}
+
+\item The \cmmd{nolig} macros also don't operate correctly on words (including, if present, any trailing punctuation marks) that are followed \emph{immediately} by a |%| (comment) character.
+
+The best workaround in this case is to insert the instruction \cmmd{kern0pt} between the final word and the comment character.
+
+\item In \opt{itemize} or \opt{enumerate} environments, if the content of an \cmmd{item} directive \emph{ends} with a word (including an associated punctuation mark) that contains a ligature that should be suppressed \textemdash i.e., if it is followed immediately by either another \cmmd{item} directive or an \Verb+\end{itemize}+ or \Verb+\end{enumerate}+ statement\textemdash ligature, suppression fails yet again.
+
+The remedy I propose for these cases is to leave a blank line between the end of one \cmmd{item}'s content and the next \cmmd{item} instruction or the \Verb+\end{itemize}+ or \Verb+\end{enumerate}+ instruction. Inserting the instruction \cmmd{kern0pt} works too.
+
+\item If the final word (again, possibly, with an associated punctuation character) of a sentence which is followed immediately by an \opt{enumerate}, \opt{itemize}, or other such environment contains a ligature that should be suppressed, ligature suppression again will not work properly.
+
+I recommend leaving a blank line between that sentence and the start of the \opt{enumerate} or \opt{itemize} environment. Inserting the instruction \cmmd{kern0pt} also works.
+
+\end{enumerate}
+
+I'm not sure if the following matter constitutes a bug or \enquote{merely} a case of incompatibility between two \LaTeX\ packages. The \pkg{selnolig} package does not appear to interact well with the \LaTeX\ package \pkg{ngerman}. However, as was noted earlier, \pkg{selnolig} interacts nicely with the \pkg{babel} package with one of the options \opt{ngerman}, \opt{german}, \opt{austrian}, and \opt{naustrian} set. Unless someone can convince me that using the \pkg{ngerman} package is truly preferable to using the \pkg{babel} package along with one of the available German language options, I probably won't bother addressing this incompatibility.
+
+
+
+\subsection{Supplementary hyphenation exception patterns} \label{sec:addlhyph}
+
+\TeX's hyphenation algorithms are widely acknowledged to be very good. However, for the English language case at least, it tends to miss quite a few permissible hyphenation points when dealing with words that end in |-f-ing|, |-f-ier|, |-f-iest|, |-f-less|, |-f-like|, etc. Hyphenation exception lists are provided in the files \pkg{selnolig-english-hyphex.sty} and \pkg{selnolig-german-hyphex.sty}, respectively, for English and German words.
+
+The German-language hyphenation exception list is currently still the shorter of the two; however, this may change in the future. The German word list is shorter in part because it is assumed that writers of German-language documents use the \pkg{babel} package and select the option \opt{ngerman} (or one of the related options); doing so also loads specialized hyphenation patterns suitable for German text.\footnote{As was already noted earlier, the \pkg{selnolig} package is also compatible with the \pkg{hyphsubst} package.}
+
+It is possible to instruct \pkg{selnolig} \emph{not} to load the package's hyphenation exception lists. You may want to do so, say, if you must use UK-English hyphenation patterns and therefore mustn't make use of the US-English hyphenation patterns provided by the package. (To the best of my knowledge, though, most of the hyphenation patterns indicated in \pkg{selnolig-english-hyphex.sty} are common to UK and US English.) To skip loading the additional hyphenation patterns when invoking the \pkg{selnolig} package, you should specify the option \opt{noadditional\-hyphen\-a\-tion\-patterns}. (I am obviously not trying to make it too easy to invoke this option~\dots)
+
+As was already noted in \cref{sec:anythingelse}, if you use the \pkg{babel} package with, say, the \opt{ngerman} option, be sure to load \pkg{selnolig} package \emph{after} the \pkg{babel} package. That way, the \pkg{selnolig} package's additional hyphenation exception patterns won't be overridden by \pkg{babel}'s settings.
+
+Incidentally, if the files \pkg{selnolig-english-hyphex.sty} and \pkg{selnolig-german-hyphex.sty} are located in a directory that's in the search path of your TeX distribution, these packages may be loaded via the usual \cmmd{usepackage} statements without having to load the entire \pkg{selnolig} package.
+
+
+
+\subsection{Ancillary information about the package's activity} \label{sec:debugon}
+
+If you execute the command \cmmd{debugon}, detailed information about each \cmmd{nolig} and \cmmd{keeplig} pattern match that is encountered is written to the \opt{.log} file. (The package's default setting is \cmmd{debugoff}.)
+
+Because of the potential redundancy in some of the package's \cmmd{nolig} commands, it is possible that more than one pattern match will occur for a given word. E.g., for the verb \enquote{auffahren}, two separate \cmmd{nolig} commands apply simultaneously, \emph{viz.}, \Verb+\nolig{auff[aeiloruyäöü]}{auf|f}+ and \Verb+\nolig{ffahr}{f|fahr}+. For this word, the following information is written to the \opt{.log} file:
+\begin{Verbatim}
+ pattern match: auffahren - auff[aeiloruyäöü]
+ pattern match: auffahren - ffahr
+ Do ligature suppression for: auffahren
+ Inserting nolig whatsit before glyph: f
+ Last char: n
+\end{Verbatim}
+
+It is also possible that words are found with more than one ligature suppression point. For example, if the word \enquote{Auflaufform}\textemdash which happens to have both an fl- and an ff-ligature that should be suppressed\textemdash is encountered, the following lines are written to the \opt{.log} file; note that in this case, two separate \cmmd{nolig} commands \enquote{catch} the fl and ff ligatures:
+\begin{Verbatim}
+ pattern match: Auflaufform - flauf
+ pattern match: Auflaufform - Aufl[aeiouyäöü]
+ pattern match: Auflaufform - auff[aeiloruyäöü]
+ pattern match: Auflaufform - fform
+ Do ligature suppression for: Auflaufform
+ Inserting nolig whatsit before glyph: l
+ Inserting nolig whatsit before glyph: f
+ Last char: m
+\end{Verbatim}
+
+If \emph{both} a \cmmd{nolig} and a \cmmd{keeplig} command apply to a word\textemdash as is the case for \opt{fjord}, to which both \Verb+\nolig{fj}{f|j}+ and \Verb+\keeplig{fjord}+ apply\textemdash the following (mercifully short) bit of information is written to the \opt{.log} file:
+\begin{Verbatim}
+ pattern match nolig and keeplig: fjord - fj - fjord
+p\end{Verbatim}
+
+If more than one \cmmd{nolig} directive \emph{as well as} a \cmmd{keeplig} instruction apply to a given word, as is the case for the word \enquote{Streiflicht}, the following information is written to the \opt{.log} file:
+\begin{Verbatim}
+ pattern match nolig and keeplig: Streiflicht - flich - flicht
+ pattern match: Streiflicht - reifl
+ Do ligature suppression for: Streiflicht
+ Inserting nolig whatsit before glyph: l
+ Last char: t
+ \end{Verbatim}
+Observe that the first nolig rule's pattern, |flich|, is overridden by the keeplig rule's pattern |flicht|. The second nolig rule's pattern, |reifl|, is \emph{not} overridden, and it is the debugging-related information associated with the second \cmmd{nolig} pattern that ends up being written to the |.log| file.
+
+To terminate or suspend the writing of the debugging-related information to the \opt{.log} file, one may execute the command \cmmd{debugoff}. To restart the logging of this information, issue the command \cmmd{debugon}.
+
+
+
+\subsection[Suspending and restarting the operation of selnolig's macros]{Suspending and restarting the operation of \pkg{selnolig}'s macros}
+
+By default, \pkg{selnolig}'s macros are switched on (assuming, of course, that your document is compiled under \LuaLaTeX). If you want to suspend their operation, you should issue the command
+\begin{Verbatim}
+ \selnoligoff
+\end{Verbatim}
+at the desired point in your document. Conversely, if \pkg{selnolig}'s macros need to be switched back on, just issue the command
+\begin{Verbatim}
+ \selnoligon
+\end{Verbatim}
+
+
+\subsection{Lists of words that fit German and English non-ligation patterns}
+
+Extensive lists of German and English language words for which one or more ligatures should be suppressed are provided in the supplemental files \pkg{selnolig-german-test.pdf} and \pkg{selnolig-english-test.pdf}. I started the list of German language words with the examples provided by the \pkg{rmligs} script; I've added quite a few more words to that list in the meantime. Thanks to the great work of Felix Lehmann and Steffen Hildebrand, explained in more detail in \cref{sec:thanks}, the package's German language search patterns actually apply to a much larger number of words than those listed in \pkg{selnolig-german-test.pdf}. Naturally, suggestions for still more words to be de-ligated are always welcome.
+
+The files \pkg{selnolig-german-test.tex} and \pkg{selnolig-english-text.tex} are \enquote{driver programs} that load the \pkg{selnolig} package and then run it on the respective lists of German- and English-language words. To compile the driver programs, be sure to use \LuaLaTeX.
+
+\section{License and acknowledgments} \label{sec:thanks}
+
+The entire \pkg{selnolig} package is placed under the terms of the \LaTeX\ Project Public License, version~1.3 or later (\url{http://www.latex-project.org/lppl.txt}).
+It has the status \enquote{maintained}.
+
+I owe a huge intellectual and programming debt to Patrick Gundlach and Taco Hoekwater, who responded kindly and generously with detailed computer code to various queries I posted to \href{http://tex.stackexchange.com}{\texttt{tex.stackexchange.com}}.\footnote{See especially the questions \href{http://tex.stackexchange.com/q/37443/5001}{Any suggestions/requests for features for a new package that allows disabling ligatures for (pre)selected words?}, \href{http://tex.stackexchange.com/q/48516/5001}{How to suppress the operation of a luatex-defined macro on a string if the string is part of macro or a label}, and \href{http://tex.stackexchange.com/q/63005/5001}{Ligature suppression algorithm fails if the word in question contains an Umlaut (dieresis) before the ligature}.} Without their expertise in programming in Lua and interfacing the lua code with \LaTeX, this package would not exist. They certainly deserve most of the credit for the lua code used by the \pkg{selnolig} package.
+
+Felix Lehmann (a linguist and expert in morphology, i.e., the study of morphemes) and Steffen Hildebrandt (computer scientist extraordinaire) served as patient and careful testers of several early beta versions of this package, uncovering and fixing bugs, pointing out unclear passages in the user guide, writing scripts to automate the discovery of redundancies and syntax errors in the package's \cmmd{nolig} and \cmmd{keeplig} instructions, and providing many excellent suggestions for enhancements and other improvements. Steffen also provided crucial modifications to the package's lua code to make possible the \cmmd{keeplig} macro.
+
+Even more importantly, Felix and Steffen created scripts to test systematically and comprehensively the package's German \cmmd{nolig} and \cmmd{keeplig} search patterns for linguistic adequacy and (relative) completeness.
+They began with a corpus of almost 850 million [!] words, which they marked up with information on the morphological constituents of each word. From this huge word list, they extracted a set of 462,000 unique word forms containing potential f-ligatures.
+According to their analysis, an early version (ca.\ late October 2012) of the \pkg{selnolig} package already dealt correctly with 85 percent (394,000) of those word forms, while still generating 21,000 Type~I errors and 48,000 Type~II errors!\footnote{In the context of the \pkg{selnolig} package, a Type~I error is the failure to suppress a typographically inappropriate ligature, and a Type~II error is the improper suppression of a typographically valid ligature.}\textsuperscript{,}\footnote{1,000 words contained more than one potential f-ligature, hence the difference.}
+Fortunately (for me at least), they also discovered that a non-negligible part of the 69,000 errors wasn't real but, rather, the result of typos in the words included in the corpus and/or of incorrect morphological analysis. The detailed Type~I and~II error lists they generated were critical in helping me refine\textemdash and occasionally revise completely\textemdash the package's \cmmd{nolig} and \cmmd{keeplig} rules, rapidly bringing down the number of Type~I and~II errors.\footnote{For instance, after Steffen wrote the lua code that made possible the \cmmd{keeplig} macro, I was able to eliminate, in one fell swoop, more than 10,000~[!!] Type~II errors generated by the package's earlier, incorrect suppression of the fl-ligature in words that contain the morpheme \opt{pflicht}. } All major changes to the German language ligature suppression patterns are still being subjected to their testing algorithms to streamline the tasks of detecting what's left to improve and catching any newly introduced errors.
+
+Felix and Steffen started the automated testing of the package's |\nolig| and |\keeplig| rules as their finals project for the course \emph{Introduction to Computational Linguistics} at the University of Massachusetts at Amherst in the fall of 2012.\footnote{Their \href{https://github.com/SHildebrandt/selnolig-check}{code} and \href{https://github.com/SHildebrandt/selnolig-check/blob/master/selnolig-check-documentation.pdf?raw=true}{finals paper} is available online.} They wish to thank the Institut für Maschinelle Sprachverarbeitung at the Universität Stuttgart for granting them a license for the morphological analysis tool SMOR\footnote{Schmid, H., A. Fitschen, and U. Heid, 2004, \enquote{SMOR: A German Computational Morphology Covering Derivation, Composition, and Inflection}, \emph{Proceedings of the IVth International Conference on Language Resources and Evaluation (LREC)}, pp.~1263--1266, Lisbon, Portugal.} and, in particular, Helmut Schmid for his guidance. They also express their gratitude to the \emph{Web-as-Corpus kool ynitiative} (\emph{WaCky}) for letting them use the SDeWaC corpus,%
+\footnote{Baroni, M., S.~Bernardini, A.~Ferraresi, and E.~Zanchetta, 2009, \enquote{The WaCky Wide Web: A Collection of Very Large Linguistically Processed Web-Crawled Corpora}, \emph{Language Resources and Evaluation}, 43~(3), pp. 209--226.} as well as to Rajesh Bhatt (University of Massachusetts at Amherst), Miriam Butt (Universität Konstanz), and Sabine Schulte im~Walde (Universität Stuttgart) for helping them find the right resources for their project.
+
+The \href{http://www.ctan.org/tex-archive/support/rmligs}{\pkg{rmligs}} script lists hundreds of German language words for which various f\nobreak-liga\-tures should be suppressed. I created many of the initial German language ligature suppression rules of the \pkg{selnolig} package to treat the words listed in the \pkg{rmligs} package.\footnote{All versions of the \pkg{rmligs} package are archived at \url{http://www.j3e.de/ispell/igerman98/dict/}.}
+
+Matthias Vogel very kindly shared with me a set of regular-expression based ligature suppressing macros, named \href{http://www.winedt.org/Macros/LaTeX/Ligatures-German.php}{Ligatures-German}, he wrote for the WinEdt programmer's editor. Matthias' macros work by inserting \pkg{babel}-style (\Verb+"|+) ligature suppressing shortcut directives in the appropriate spots in the |.tex| file (which can then be compiled with pdf\LaTeX). These macros, and a file he sent me containing an extensive list of German words for which one or more f-ligatures should be suppressed, led me to thoroughly refine and extend the scope of the \pkg{selnolig} package's German language ligature suppressing rules.
+
+Barbara Beeton provided careful and incisive comments on an early version of the package's user guide and English language ligature suppression macros. (She also pointed out to me that my surname looks better if it's typeset as \emph{Loretan} rather than as \emph{Lor\mbox{et}an}!) A suggestion received from David Bellows led me to extend some of the \cmmd{nolig} rules in Part~2 (activated by setting the option |broadf|) of the file \pkg{selnolig-english-patterns.sty}. Other contributors to \url{tex.stackexchange.com} and \url{comp.text.tex}, too numerous to name individually, also helped guide and influence the genesis of this package. To all of you, I express my sincere thanks.
+
+The website \url{http://www.morewords.com} provides very convenient methods for searching English language words that may contain cases of ligature collisions across morpheme boundaries. For German words, the site \url{http://corpora.informatik.uni-leipzig.de/?dict=de} provides a similar resource.
+
+
+
+\clearpage
+\appendix
+\selnoligoff % turn off selnolig's macros
+
+\clubpenalty100
+\widowpenalty100
+
+\small % reduce font size by 1pt
+
+
+\section[English-language ligature suppression rules: selnolig-english-patterns.sty]{English-language ligature suppression rules: \\
+\pkg{selnolig-english-patterns.sty}}
+\label{sec:eng-listing}
+
+\begin{multicols}{2}
+\VerbatimInput{selnolig-english-patterns.sty}
+\end{multicols}
+
+\clearpage
+\section[German-language ligature suppression rules:
+selnolig-german-patterns.sty]{German-language ligature suppression rules: \\
+\pkg{selnolig-german-patterns.sty}}
+\label{sec:germ-listing}
+
+Introductory note: To accommodate the practice of Swiss-German writers of not using the \enquote{ß} character at akk (and using \enquote{ss} in its place), all search-and-insert strings that contain an \enquote{ß} character are duplicated with equivalent search-and-insert strings containing \enquote{ss}.
+
+\bigskip
+
+\begin{multicols}{2}
+\VerbatimInput{selnolig-german-patterns.sty}
+\end{multicols}
+
+\clearpage
+\section[The package's main style file: selnolig.sty]
+{The package's main style file: \pkg{selnolig.sty}}
+
+\VerbatimInput{selnolig.sty}
+
+\clearpage
+\section[The package's lua code: selnolig.lua]{The package's lua code: \pkg{selnolig.lua}}
+\label{sec:luacode}
+
+\VerbatimInput{selnolig.lua}
+
+
+\clearpage
+\section[Reporting bugs and other issues with the selnolig package: A suggested template]{Reporting bugs and other issues with the \pkg{selnolig} package:\\A suggested template} \label{sec:template}
+
+\VerbatimInput{selnolig-bugreport.tex}
+
+
+\end{document}
diff --git a/Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-hyphex.sty b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-hyphex.sty
new file mode 100644
index 00000000000..9d708ff7555
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-hyphex.sty
@@ -0,0 +1,206 @@
+% !TeX root = selnolig.tex
+% !TEX TS-program = lualatex
+
+\ProvidesPackage{selnolig-english-hyphex}%
+[2013/05/25]
+
+% This entire package is placed under the
+% terms of the LaTeX Project Public License,
+% version 1.3 or later
+% (http://www.latex-project.org/lppl.txt).
+% It has the status "maintained".
+%
+% Author: Mico Loretan
+% (loretan dot mico at gmail dot com)
+
+
+\hyphenation{re-roof re-roof-ing be-dwarf
+ be-dwarf-ing be-gulf be-gulf-ing feoff en-feoff in-feoff re-staff re-stuff
+ dam-sel dam-sel-fish dam-sel-fly dam-sel-flies dis-tel-fink but-ter-fin-ger
+ man-tel-shelf man-tel-shelf-ful man-tel-shelf-fuls
+ dwarf-ish elf-ish oaf-ish serf-ish un-self-ish wolf-ish draff-ish
+ gi-raff-ish raff-ish
+ dwarf-ish-ness elf-ish-ness oaf-ish-ness serf-ish-ness un-self-ish-ness
+ wolf-ish-ness
+ beef-i-est comf-i-est goof-i-est gulf-i-est leaf-i-est surf-i-est
+ turf-i-est
+ goof-i-ness
+ cuff-less turf-less
+ calf-like dwarf-like elf-like gulf-like hoof-like leaf-like roof-like
+ serf-like sheaf-like shelf-like surf-like turf-like waif-like wolf-like
+ cliff-like
+ half-life half-lives shelf-life shelf-lives half-line half-lines
+ roof-line roof-lines roof-tree roof-trees
+ leaf-let leaf-lets leaf-leted leaf-let-ing leaf-let-ting leaf-let-ted
+ leaf-le-teer pdf-latex
+ baff-ing chaff-ing coiff-ing daff-ing en-feoff-ing in-feoff-ing
+ feoff-ing gaff-ing piaff-ing quaff-ing re-staff-ing re-stuff-ing
+ sclaff-ing over-staff-ing un-der-staff-ing staff-ing waff-ing yaff-ing
+ buff-i-est chaff-i-est chuff-i-est cliff-i-est daff-i-est fluff-i-est
+ gruff-i-est huff-i-est iff-i-est miff-i-est puff-i-est scruff-i-est
+ sniff-i-est snuff-i-est spiff-i-est stuff-i-est
+ daff-i-ness fluff-i-ness gruff-i-ness huff-i-ness iff-i-ness puff-i-ness
+ scruff-i-ness sniff-i-ness snuff-i-ness spiff-i-ness stuff-i-ness
+ baff-ies biff-ies jiff-ies taff-ies toff-ies waff-ies
+ Pfaff-ian Wolff-ian Wulff-ian
+ scoff-law scoff-laws cuff-link cuff-links off-load off-loads
+ off-load-ing
+ off-line ruff-like
+ chaf-finch chaf-finches wolf-fish
+ fif-ties fif-ti-eth fif-ti-eths fif-ty-ish
+ half-tone half-tones roof-top roof-tops
+ bat-house boat-house cat-house proph-et-hood rat-hole boat-hook meat-hook pot-hook
+ foot-hold root-hold ant-hill foot-hill goat-herd neat-herd
+ boat-houses cat-houses rat-holes boat-hooks meat-hooks pot-hooks
+ foot-holds root-holds ant-hills foot-hills goat-herds neat-herds
+ apart-heid anti-apart-heid dust-heap dust-heaps
+ night-hawk night-hawks pot-hunt post-hu-mous wart-hog wart-hogs
+ watt-hour watt-hours kilo-watt-hour kilo-watt-hours
+ pot-hold-ers
+ pains-taker pains-tak-ing dogs-tail cross-talk gas-tight
+ off-key
+ blog-o-sphere arc-tan-gent co-arc-ta-tion ant-arc-tica ant-arc-tic
+ busi-ness-per-son con-gress-per-son crafts-per-son drafts-per-son
+ news-per-son spokes-per-son
+ dis-pir-its dis-pir-it-ing dis-pir-it-ed-ness
+ dis-pa-rate dis-pa-rate-ness dis-par-ag-ing
+ dis-pel-ling dis-pen-sa-ries dis-pen-sa-to-ries dis-pens-ers
+ dis-pers-ers dis-pers-ible dis-pit-eous dis-play-able
+ dis-pos-ers dis-plum-ing
+ dis-put-able dis-put-ably dis-put-ant dis-put-ants
+ mono-dis-perse non-dis-pers-ive
+ in-dis-put-able in-dis-put-ably in-dis-put-able-ness
+ un-dis-put-able wolf-hound
+ trans-pa-ci-fic ca-tas-tro-phe
+ tran-spond tran-spon-der co-respond trans-pla-cen-tal
+ leaf-hop-per leaf-hop-pers
+ al-a-bas-ter anti-pasto sea-strand sto-chas-tic
+ dis-trib-ute dis-trib-uted
+ be-thank be-thorn be-thought be-thump fire-thorn
+ flame-thrower none-the-less re-thread white-throat
+ nine-ti-eth nine-ti-eths Beet-hoven breth-ren
+ le-thal le-thar-gic meth-a-done non-eth-i-cal
+ cath-o-lic ca-thol-i-cism
+ name-tag name-tags re-table re-tab-les time-table
+ re-tie re-teach re-tile re-tint re-ti-tle
+ bud-get-ary di-et-ary pro-pri-e-tary
+ cov-et-able de-plet-able get-able in-ter-pret-able
+ mar-ket-able pock-et-able veg-e-ta-ble
+ cen-trip-e-tal pet-al skel-e-tal so-ci-e-tal
+ tris-kai-deka-pho-bia raths-kel-ler
+ mis-keep mis-kept mis-know
+ greens-keep-ers grounds-keep-ers
+ an-i-mal-like jew-el-like drive-train
+ in-tra-spe-cies
+ trans-pierce de-tick blue-tick
+ for-tune-tell-ing for-tune-tell-ers
+ pre-term pre-test pre-ti-tling
+ en-tire-ties sure-ties scho-las-tic scho-las-tics
+ mega-star meta-sta-ble
+ ca-thar-sis cath-e-ter mar-a-thon
+ tri-ath-lon tri-ath-lete eth-ane
+ an-ti-sag an-ti-slip in-fra-struc-ture me-tath-e-sis
+ mega-spore mega-spores tetra-spore tetra-spores
+ safe-ties ar-che-type ar-che-typ-al
+ or-tho-don-tist or-tho-don-tia
+ cliff-hang-ers cliff-jump cliff-jump-ers
+ pre-eth-i-cal teeth-ridge teeth-ridges
+ free-think-ers rijst-tafel
+ re-treat-ant re-treat-ants re-treat-ers
+ re-trourse retro re-trorse re-try re-try-ing
+ ret-ro-act ret-ro-acts ret-ro-ac-ted ret-ro-ac-ting
+ ret-ro-ac-tion ret-ro-ac-tions
+ ret-ro-ac-tive ret-ro-ac-tively
+ ret-ro-ac-ti-vi-ties ret-ro-ac-ti-vity
+ ret-ro-cede ret-ro-ceded ret-ro-cedes ret-ro-ced-ing
+ ret-ro-ces-sion ret-ro-ces-sions
+ ret-ro-dict ret-ro-dicts ret-ro-dicted ret-ro-dict-ing
+ ret-ro-dic-tion ret-ro-dic-tions ret-ro-dic-tive
+ ret-ro-fire ret-ro-fired ret-ro-fires ret-ro-fir-ing
+ ret-ro-fit ret-ro-fits ret-ro-fit-ted ret-ro-fit-ting
+ ret-ro-flec-tion ret-ro-flec-tions
+ ret-ro-flex ret-ro-flex-ion ret-ro-flex-ions
+ ret-ro-gra-da-tion ret-ro-gra-da-tions
+ ret-ro-grade ret-ro-graded
+ ret-ro-gress ret-ro-gress-ion ret-ro-gress-ions
+ ret-ro-gress-ive ret-ro-gress-ively
+ ret-ro-pack ret-ro-packs
+ ret-ro-pe-ri-ton-eal ret-ro-pe-ri-ton-e-ally
+ ret-ro-re-flec-tion ret-ro-re-flec-tions ret-ro-re-flec-tive
+ ret-ro-re-flec-tor ret-ro-re-flec-tors
+ ret-ro-rocket ret-ro-rockets
+ ret-ro-spect ret-ro-spects ret-ro-spected ret-ro-specting
+ ret-ro-spection ret-ro-spections
+ ret-ro-spective ret-ro-spectively ret-ro-spectives
+ ret-ro-version ret-ro-versions
+ ret-ro-viral ret-ro-virus ret-ro-viruses
+ re-twist re-twists re-twisted re-twist-ing
+ fore-tell-ers fore-tell-ing
+ pre-tele-vi-sion pre-the-ater
+ re-team re-teamed re-team-ing re-teams
+ re-tear re-tears re-tear-ing
+ re-test re-tests re-test-ing re-tests
+ re-tic-u-lo-en-do-the-lial re-tic-u-lum
+ re-tie re-ties re-tied
+ re-tighten re-tight-ened re-tight-en-ing re-tight-ens
+ re-tiled re-tiles re-til-ing
+ ret-ina ret-i-nae ret-i-nas ret-i-nal ret-i-nal
+ ret-ina-cula ret-ina-cu-lum ret-i-form
+}
+
+\ifnum\righthyphenmin=2
+ \hyphenation{beef-i-er cliff-i-er comf-i-er goof-i-er gulf-i-er
+ leaf-i-er surf-i-er turf-i-er
+ dwarf-ish-ly elf-ish-ly oaf-ish-ly serf-ish-ly un-self-ish-ly
+ wolf-ish-ly wolf-fish-ly
+ fif-ty
+ buff-i-er chaff-i-er chuff-i-er daff-i-er fluff-i-er gruff-i-er
+ huff-i-er iff-i-er miff-i-er puff-i-er scruff-i-er sniff-i-er
+ snuff-i-er spiff-i-er stuff-i-er
+ elf-in
+ sniff-i-ly snuff-i-ly spiff-i-ly stuff-i-ly
+ beef-i-ly goof-i-ly
+ cuff-less-ly
+ aloof-ly brief-ly chief-ly lief-ly
+ bluff-ly gruff-ly ruff-ly snuff-ly stiff-ly
+ draff-ish-ly gi-raff-ish-ly raff-ish-ly daff-i-ly fluff-i-ly
+ gruff-i-ly huff-i-ly puff-i-ly scruff-i-ly
+ pot-hold-er post-hu-mous-ly
+ off-hand-ed off-load-ed
+ rath-er slath-er
+ trans-per-son-al sphe-ric-i-ty cis-plat-in
+ dis-pir-it dis-pir-it-ed dis-pir-it-ed-ly dis-pir-it-ed-ness-es
+ dis-pa-rate-ly dis-par-ag-ing-ly dis-pa-rate-ness-es
+ dis-pen-sa-ry dis-pen-sa-to-ry dis-pens-er un-dis-put-ed
+ in-tra-spe-cif-ic in-fra-spe-cif-ic
+ cliff-hang-er cliff-jump-er
+ pleth-o-ra meth-od
+ greens-keep-er grounds-keep-er for-tune-tell-er
+ in-tra-tho-rac-ic aro-ma-ther-a-py
+ ar-che-typ-al free-think-er}
+\else
+ \hyphenation{beef-ier comf-ier goof-ier gulf-ier leaf-ier surf-ier
+ turf-ier
+ dwarf-ishly elf-ishly oaf-ishly serf-ishly un-self-ishly
+ wolfish-ly wolf-fishly
+ buff-ier chaff-ier chuff-ier cliff-ier daff-ier fluff-ier gruff-ier
+ huff-ier iff-ier miff-ier puff-ier scruff-ier sniff-ier snuff-ier
+ spiff-ier
+ stuff-ier sniff-ily snuff-ily spiff-ily stuff-ily
+ beef-ily goof-ily
+ cuff-lessly
+ draff-ishly gi-raff-ishly raff-ishly daff-ily fluff-ily gruff-ily
+ huff-ily puff-ily scruff-ily
+ pot-holder post-hu-mously
+ off-handed off-loaded
+ trans-per-sonal sphe-ric-ity cis-platin
+ dis-pirit dis-pir-ited dis-pir-it-edly dis-pir-it-ed-nesses
+ dis-pa-rately dis-par-ag-ingly dis-pa-rate-nesses
+ dis-pen-sary dis-pen-sa-tory dis-penser un-dis-puted
+ in-tra-spe-cific in-fra-spe-cific
+ pleth-ora
+ greens-keeper grounds-keeper for-tune-teller
+ in-tra-tho-racic aro-ma-ther-apy
+ ar-che-typal cliff-hanger cliff-jumper
+ free-thinker}
+\fi
diff --git a/Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-patterns.sty b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-patterns.sty
new file mode 100644
index 00000000000..6d1ae6ebe50
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-english-patterns.sty
@@ -0,0 +1,1092 @@
+% !TeX root = selnolig.tex
+% !TEX TS-program = lualatex
+
+\ProvidesPackage{selnolig-english-patterns}%
+[2013/05/25]
+
+% This entire package is placed under the
+% terms of the LaTeX Project Public License,
+% version 1.3 or later
+% (http://www.latex-project.org/lppl.txt).
+% It has the status "maintained".
+%
+% Author: Mico Loretan
+% (loretan dot mico at gmail dot com)
+
+
+% Part 1: "Basic" f-ligature patterns
+% ===================================
+
+% (a) ff -> f-f
+
+\nolig{lfful}{lf|ful}
+ % shelfful bookshelffuls -- TeXBook, p. 19
+
+
+% (b) fi -> f-i
+ % no cases in 'basic' group
+
+
+% (c) fl -> f-l
+
+\nolig{fless}{f|less}
+ % beefless leafless ...
+ % Also: cuffless stuffless
+
+\nolig{flike}{f|like}
+ % dwarflike elflike ...
+ % Also: rufflike clifflike
+
+\nolig{flife}{f|life}
+ % halflife shelflife
+
+\nolig{flive}{f|live}
+ % halflives shelflives
+
+\nolig{fline}{f|line}
+ % halfline roofline offline
+
+\nolig{eaflet}{eaf|let}
+ % leaflet(-s, -ed) leafleting
+ % leafletting leafletted
+ % leafleteer(s)
+
+\nolig{pdflatex}{pdf|latex}
+\nolig{Pdflatex}{Pdf|latex}
+ % better, though, to write 'pdf\LaTeX'
+
+\nolig{otfload}{otf|load}
+ % for the 'luaotfload' package...
+
+
+% (d) ffi -> ff-i
+
+\nolig{faffian}{faff|ian}
+ % Pfaffian
+ % (must avoid picking up 'affianced')
+
+\nolig{lffian}{lff|ian}
+ % Wolffian Wulffian
+
+
+% (e) ffl -> ff-l
+
+\nolig{fflaw}{ff|law}
+ % scofflaw scofflaws
+
+\nolig{fflink}{ff|link}
+ % cufflink cufflinks
+
+\nolig{ffload}{ff|load}
+ % offload offloads offloaded
+
+
+% (f) ffi -> f-fi
+
+\nolig{haffinch}{haf|finch}
+ % chaffinch(es)
+
+\nolig{lffish}{lf|fish}
+ % wolffish
+
+
+% (g) ffl -> f-fl
+
+\nolig{afflower}{af|flower}
+ % safflower
+
+
+% (h) ft -> f-t
+
+\nolig{ieftain}{ief|tain}
+\nolig{alftime}{alf|time}
+\nolig{alftone}{alf|tone}
+\nolig{ooftop}{oof|top}
+\nolig{ooftree}{oof|tree}
+ % chieftain halftime halftone
+ % rooftop rooftree
+
+\nolig{ifth}{if|th}
+ % fifth(s)
+\nolig{elfth}{elf|th}
+ % twelfth(s)
+
+\nolig{lftr}{lf|tr}
+ % wolftrap calftrap
+
+\nolig{eaftr}{eaf|tr}
+ % leaftrap
+
+\nolig{fftr}{ff|tr}
+ % offtrack
+
+
+% (i) fb, fh, fj, and fk ligatures
+
+% suppress these ligatures globally
+\nolig{fb}{f|b}
+\nolig{fh}{f|h}
+\nolig{fj}{f|j}
+\nolig{fk}{f|k}
+
+% But, make exceptions for fjord, fjell, etc
+ \keeplig{fjord} % Norwegian spelling
+ \keeplig{fjör} % Icelandic spelling, e.g., in
+ % Isafjördur and Ísafjörður
+ \keeplig{fjarð} % Ísafjarðarbær (in Iceland)
+ \keeplig{fjell} % Norwegian
+ \keeplig{fjall} % Swedish (?)
+ \keeplig{fjäll}
+ \keeplig{fjöll}
+
+ \keeplig{Prokofjew}
+ \keeplig{Sufjan} % Stevens
+ \keeplig{Eefje} % Dutch first name
+ \keeplig{Astafjew}
+ % Author (Wiktor) and soccer player (Maksim)
+
+% Further exceptions for Kafka, Safka, etc.
+ \keeplig{Kafka}
+ \keeplig{Safka}
+ \keeplig{Potrafke}
+ \keeplig{Sprafke}
+ \keeplig{Shirafkan}
+ \keeplig{Tirafkan}
+
+
+
+% Part 2: Additional f-ligature suppression
+% patterns if the 'broadf' option is set.
+% =========================================
+
+\if@broadfset
+
+% (a) ff -> f-f
+ % no cases in 'broad' group
+
+
+% (b) fi -> f-i
+
+\nolig{elfin}{elf|in}
+\nolig{Elfin}{Elf|in}
+ \keeplig{stelfink} % distelfink
+
+
+% For words ending in -f-ing, allow for
+% "colloquial" abbreviations (-f-in').
+\nolig{afing}{af|ing}
+\nolig{afin'}{af|in'}
+ % chafing leafing loafing sheafing
+ % strafing vouchsafing
+
+\nolig{eefing}{eef|ing}
+\nolig{eefin'}{eef|in'}
+% beefing reefing
+
+\nolig{iefing}{ief|ing}
+\nolig{iefin'}{ief|in'}
+% briefing debriefing
+
+\nolig{ifing}{if|ing}
+\nolig{ifin'}{if|in'}
+ % coifing fifing jackknifing knifing
+ % midwifing waifing wifing
+
+\nolig{oofing}{oof|ing}
+\nolig{oofin'}{oof|in'}
+ % goofing hoofing roofing ...
+
+\nolig{lfing}{lf|ing}
+\nolig{lfin'}{lf|in'}
+ % golfing rolfing selfing ...
+
+\nolig{rfing}{rf|ing}
+\nolig{rfin'}{rf|in'}
+ % barfing bedwarfing dwarfing...
+ % kerfing enserfing ...
+ % (wind-) surfing turfing
+ \keeplig{tterfinger} % butterfinger
+
+\nolig{rfism}{rf|ism}
+ % dwarfism
+
+\nolig{rfist}{rf|ist}
+ % dwarfist
+
+\nolig{deafish}{deaf|ish}
+\nolig{dwarfish}{dwarf|ish}
+\nolig{elfish}{elf|ish}
+ % elfish selfish unselfish, etc.
+ \keeplig{amselfish} % damselfish
+
+\nolig{oafish}{oaf|ish}
+\nolig{serfish}{serf|ish}
+\nolig{wolfish}{wolf|ish}
+
+\nolig{Deafish}{Deaf|ish}
+\nolig{Dwarfish}{Dwarf|ish}
+\nolig{Elfish}{Elf|ish}
+\nolig{Oafish}{Oaf|ish}
+\nolig{Serfish}{Serf|ish}
+\nolig{Wolfish}{Wolf|ish}
+
+\nolig{beefier}{beef|ier}
+\nolig{comfier}{comf|ier}
+\nolig{goofier}{goof|ier}
+\nolig{gulfier}{gulf|ier}
+\nolig{leafier}{leaf|ier}
+\nolig{reefier}{reef|ier}
+\nolig{surfier}{surf|ier}
+\nolig{turfier}{turf|ier}
+
+\nolig{Beefier}{Beef|ier}
+\nolig{Comfier}{Comf|ier}
+\nolig{Goofier}{Goof|ier}
+\nolig{Gulfier}{Gulf|ier}
+\nolig{Leafier}{Leaf|ier}
+\nolig{Reefier}{Reef|ier}
+\nolig{Surfier}{Surf|ier}
+\nolig{Turfier}{Turf|ier}
+ % (Mustn't perform 'fier -> f-ier'
+ % substitution because of words
+ % such as pacifier, reifier, etc.)
+
+\nolig{fiest}{f|iest}
+ \keeplig{fiesta}
+ % leafiest beefiest reefiest ...
+
+\nolig{fily}{f|ily}
+ % beefily goofily
+ % This rule also catches the
+ % ffily -> ff-ily case:
+ % daffily fluffily gruffily ...
+
+\nolig{oofiness}{oof|iness}
+ % goofiness
+ % (Mustn't do 'finess -> f-iness'
+ % substitution b/c of 'finesse')
+
+
+% (c) fl -> f-l
+
+\nolig{aloofly}{aloof|ly}
+\nolig{briefly}{brief|ly}
+\nolig{chiefly}{chief|ly}
+\nolig{deafly}{deaf|ly}
+\nolig{liefly}{lief|ly}
+
+\nolig{Aloofly}{Aloof|ly}
+\nolig{Briefly}{Brief|ly}
+\nolig{Chiefly}{Chief|ly}
+\nolig{Deafly}{Deaf|ly}
+\nolig{Liefly}{Lief|ly}
+ % (Mustn't perform 'fly -> f-ly' subst.
+ % b/c of 'fly' 'butterfly' ...)
+
+
+% (d) ffi -> ff-i
+
+\nolig{affish}{aff|ish}
+\nolig{offish}{off|ish}
+\nolig{iffish}{iff|ish}
+\nolig{uffish}{uff|ish}
+ % draffish offish sniffish gruffish
+
+\nolig{ffing}{ff|ing}
+\nolig{ffin'}{ff|in'}
+ % baffing biffing bluffing...
+
+\nolig{ffier}{ff|ier}
+ % buffier chaffier ...
+
+%\nolig{ffily}{ff|ily}
+ % Caught by 'fily -> f-ily' rule
+
+\nolig{ffiness}{ff|iness}
+ % fluffiness huffiness puffiness
+
+\nolig{ffies}{ff|ies}
+ % baffies biffies jiffies stuffies ...
+ % buffiest chaffiest ...
+
+
+% (e) ffl -> ff-l
+
+\nolig{ffly}{ff|ly}
+ % bluffly gruffly ruffly ...
+
+
+% (f) ffi -> f-fi
+ % nothing additional in 'broad' group
+
+
+% (g) ffl -> f-fl
+ % nothing additional in 'broad' group
+
+
+% (h) ft -> f-t
+
+\nolig{ifteen}{if|teen}
+ % fifteen fifteens fifteenth
+
+\nolig{fifti}{fif|ti}
+\nolig{Fifti}{Fif|ti}
+ % fifties fiftieth fiftieths
+
+\nolig{fifty}{fif|ty}
+\nolig{Fifty}{Fif|ty}
+ % fifty fiftyish
+
+\fi % end of \if@broadfset block
+
+
+
+
+% Part 3: Discretionary ligatures crossing
+% morpheme boundaries
+% st, ct, sp,
+% th, at, et, as, is, us, ta, ll, sk
+% ----------------------------------------
+
+\if@hdligset
+
+% (A) st -> s-t
+% -------------
+
+\nolig{osstalk}{oss|talk}
+ % crosstalk
+\nolig{gstai}{gs|tai}
+ % dogstail
+\nolig{nstak}{ns|tak}
+ % painstaker painstaking
+\nolig{stight}{s|tight}
+ % gastight
+\nolig{stooth}{s|tooth}
+ % houndstooth
+\nolig{steeth}{s|teeth}
+ % houndsteeth
+
+%%% dis-t... words
+\nolig{dista}{dis|ta}
+\nolig{Dista}{Dis|ta}
+ % distant distasteful
+\nolig{distem}{dis|tem}
+\nolig{Distem}{Dis|tem}
+ % distemperate
+\nolig{disten}{dis|ten}
+\nolig{Disten}{Dis|ten}
+ % distended
+\nolig{distil}{dis|til}
+\nolig{Distil}{Dis|til}
+ % distil distillation
+\nolig{distin}{dis|tin}
+\nolig{Distin}{Dis|tin}
+ % distinct distinguish
+\nolig{disto}{dis|to}
+\nolig{Disto}{Dis|to}
+ % distort distortion
+\nolig{distr}{dis|tr}
+\nolig{Distr}{Dis|tr}
+ % distract distribution distrust
+\nolig{distu}{dis|tu}
+\nolig{Distu}{Dis|tu}
+ % disturb
+
+%%% mis-t... words
+\nolig{mista}{mis|ta}
+\nolig{Mista}{Mis|ta}
+ % mistake mistaken mistaught unmistakable
+\nolig{mistea}{mis|tea}
+\nolig{Mistea}{Mis|tea}
+ % misteach
+\nolig{istend}{is|tend}
+ % mistend distend
+\nolig{isterm}{is|term}
+ % misterm misterms
+\nolig{isth}{is|th}
+ % misthink misthought misthrew misthrow
+ % isthmus calisthenic
+\nolig{istime}{is|time}
+ % mistime mistimed
+\nolig{istitl}{is|titl}
+ % mistitle
+\nolig{istook}{is|took}
+ % mistook
+\nolig{istouc}{is|touc}
+ % mistouch
+\nolig{mistrac}{mis|trac}
+\nolig{Mistrac}{Mis|trac}
+ % Mistrace
+\nolig{mistran}{mis|tran}
+\nolig{Mistran}{Mis|tran}
+ % Mistranscribe Mistranslate
+\nolig{istrea}{is|trea}
+ % mistreat mistreatment
+\nolig{mistru}{mis|tru}
+\nolig{Mistru}{Mis|tru}
+ % mistrust mistruth
+\nolig{istrys}{is|trys}
+ % mistryst
+\nolig{mistu}{mis|tu}
+\nolig{Mistu}{Mis|tu}
+ % mistune Mistutor
+\nolig{istyp}{is|typ}
+ % mistype
+
+\nolig{aastricht}{aas|tricht}
+ % Maastricht
+
+\nolig{sthes}{s|thes}
+ % anaesthesia synesthesia prosthesis
+\nolig{sthet}{s|thet}
+ % aesthetic esthetic unesthetic
+ % prosthetist
+
+
+% (B) ct -> c-t
+% -------------
+
+\nolig{rctan}{rc|tan}
+ % arctangent
+\nolig{rctat}{rc|tat}
+ % coarctation
+
+% (C) sp -> s-p
+% -------------
+
+\nolig{othesp}{othes|p}
+ % clothespin clothespress
+\nolig{speople}{s|people}
+ % business- congress- crafts-
+ % dis- news- sales- spokes-
+ % towns- trades- tribes- people
+\nolig{sperson}{s|person}
+ % business- congress- crafts- drafts-
+ % news- sales- spokes- person
+\nolig{espas}{es|pas}
+ % trespass trespassing
+\nolig{isplat}{is|plat}
+ % cisplatin (cis-platin, not cisp-latin!)
+
+\nolig{desp}{des|p}
+\nolig{Desp}{Des|p}
+ % despair desperado despot desperate
+ \keeplig{despond} % despondency despondent
+ \keeplig{Despond}
+ \keeplig{despirit}
+ \keeplig{Despirit}
+ \keeplig{despoil}
+ \keeplig{Despoil}
+ \keeplig{sidesp} % sidespin, sidesplitting
+ \keeplig{Sidesp}
+ \keeplig{widesp} % widespread
+ \keeplig{Widesp}
+ \keeplig{desprung} % gelandesprung
+
+\nolig{disp}{dis|p}
+\nolig{Disp}{Dis|p}
+ % disparage disparaging ...
+
+\nolig{misp}{mis|p}
+\nolig{Misp}{Mis|p}
+ % misplace misperception misprint
+
+\nolig{susp}{sus|p}
+\nolig{Susp}{Sus|p}
+ % suspend suspension suspicious
+\nolig{sph}{s|ph} % 'ph' from Greek 'phi'!
+ % atmosphere biosphere hemisphere
+ % spherical asphodel phosphorous phosphate
+ % blaspheme blasphemy
+
+\nolig{ranspa}{rans|pa}
+ % transparent transpacific
+\nolig{ranspe}{rans|pe}
+ % transpersonal
+\nolig{ranspie}{rans|pie}
+ % transpierce
+\nolig{ranspl}{rans|pl}
+ % transplant
+\nolig{ranspol}{rans|pol}
+ % transpolar
+\nolig{ranspor}{rans|por}
+ % transport transportation
+\nolig{ranspos}{rans|pos}
+ % transpose transposon
+
+\nolig{risprud}{ris|prud}
+ % jurisprudence
+\nolig{spiec}{s|piec}
+ % crosspiece frontispiece
+
+\nolig{ewspa}{ews|pa}
+ % newspaper
+\nolig{ewspr}{ews|pr}
+ % newsprint
+ % Don't suppress sp lig in "newspeak"!
+
+
+% (D) th -> t-h
+% -------------
+
+\nolig{eethov}{eet|hov}
+ % Beethoven
+\nolig{thook}{t|hook}
+ % boathook meathook pothook
+\nolig{thouse}{t|house}
+ % boathouse cathouse courthouse ...
+\nolig{othol}{ot|hol}
+ % foothold knothole potholder ...
+\nolig{lthol}{lt|hol}
+ % bolthole
+\nolig{sthol}{st|hol}
+ % posthole pesthole
+\nolig{rathol}{rat|hol}
+\nolig{Rathol}{Rat|hol}
+ % rathole
+\nolig{arthog}{art|hog}
+ % warthog
+\nolig{stha}{st|ha}
+ % firsthand postharvest posthaste
+\nolig{thawk}{t|hawk}
+ % nighthawk
+\nolig{horth}{hort|h}
+ % shorthair shorthand shorthorn
+\nolig{arthei}{art|hei}
+ % apartheid antiapartheid
+\nolig{thead}{t|head}
+ % bolthead cathead fathead ...
+\nolig{therd}{t|herd}
+ % goatherd neatherd
+\nolig{theap}{t|heap}
+ % dustheap
+\nolig{theart}{t|heart}
+ % fainthearted sweetheart ...
+\nolig{uthear}{ut|hear}
+ % outhear outheard
+\nolig{thill}{t|hill}
+ % anthill foothill
+\nolig{thood}{t|hood}
+ % adulthood knighthood ...
+\nolig{thunt}{t|hunt}
+ % pothunt outhunt
+\nolig{orthol}{ort|hol}
+ % porthole
+\nolig{sthum}{st|hum}
+ % posthumous
+\nolig{uthau}{ut|hau}
+ % outhaul
+\nolig{uthit}{ut|hit}
+ % outhit
+\nolig{uthom}{ut|hom}
+ % outhomer
+\nolig{uthow}{ut|how}
+ % outhowl
+\nolig{uthum}{ut|hum}
+ % outhumor
+\nolig{uthust}{ut|hust}
+ % outhustle
+\nolig{tthour}{tt|hour}
+ % watthour kilowatthour
+\nolig{sthm}{s|thm}
+ % asthma isthmus
+
+% (E) at -> a-t
+% -------------
+
+\nolig{lbatr}{lba|tr}
+ % albatross
+\nolig{atroop}{a|troop}
+ % paratrooper
+\nolig{eatra}{ea|tra}
+ % seatrain seatransport
+
+% (F) et -> e-t
+% -------------
+
+\nolig{ninet}{nine|t}
+\nolig{Ninet}{Nine|t}
+ % ninetieth ninetieths ninety nineteen nineties
+
+\nolig{ametag}{ame|tag}
+ % nametag
+\nolig{betat}{be|tat}
+\nolig{Betat}{Be|tat}
+ % betatter beta
+\nolig{betr}{be|tr}
+\nolig{Betr}{Be|tr}
+ % betray betroth
+
+\nolig{deta}{de|ta}
+ % detach detain detail
+\nolig{etect}{e|tect}
+ % detect undetectable detective
+\nolig{detent}{de|tent}
+\nolig{Detent}{De|tent}
+ % detent detention
+\nolig{detest}{de|test}
+\nolig{Detest}{De|test}
+ % detest
+\nolig{detr}{de|tr}
+\nolig{Detr}{De|tr}
+ % detract detrain detriment detritus
+
+\nolig{etail}{e|tail}
+ % bristletail detail dovetail horsetail
+\nolig{etah}{e|tah}
+ % cheetah chetah
+\nolig{etak}{e|tak}
+ % betake retake caretaker
+\nolig{etax}{e|tax}
+ % betax
+\nolig{eteach}{e|teach}
+ % reteach
+\nolig{etell}{e|tell}
+ % foretell fortunetelling
+\nolig{eterg}{e|terg}
+ % detergent
+\nolig{eterio}{e|terio}
+ % deteriorate
+\nolig{eterm}{e|term}
+ % determent determinant preterm
+\nolig{etext}{e|text}
+ % pretext retext teletext
+\nolig{ethink}{e|think}
+ % freethinking
+\nolig{ethrow}{e|throw}
+ % freethrow
+\nolig{etick}{e|tick}
+ % bluetick detick
+\nolig{etide}{e|tide}
+ % betide yuletide
+\nolig{etigh}{e|tigh}
+ % retighten
+\nolig{etime}{e|time}
+ % betime lifetime peacetime sometime
+\nolig{eetop}{ee|top}
+ % treetop
+\nolig{etrain}{e|train}
+ % detrain drivetrain housetrain retrain
+\nolig{etrap}{e|trap}
+ % firetrap livetrap mousetrap
+\nolig{etree}{e|tree}
+ % axletree saddletree shoetree
+
+\nolig{foret}{fore|t}
+\nolig{Foret}{Fore|t}
+ % foretaste foretell foretold foretime
+ % foretoken foretop foretopman
+\nolig{imetable}{ime|table}
+ % timetable
+
+\nolig{reteen}{re|teen}
+ % preteen
+\nolig{retend}{re|tend}
+ % pretend
+\nolig{retenc}{re|tenc}
+ % pretence
+\nolig{retens}{re|tens}
+ % pretense pretension
+\nolig{retent}{re|tent}
+\nolig{Retent}{Re|tent}
+ % pretentious retention retentive
+\nolig{retest}{re|test}
+\nolig{Retest}{Re|test}
+ % pretest retest
+
+\nolig{reta}{re|ta}
+\nolig{Reta}{Re|ta}
+ % retag retape retake
+ % foretaste caretaker
+ % pretaste pretape pretaxretain
+ % retain retake retaliate retard
+ % retarget retaste wiretap
+ \keeplig{pretable} % interpretable
+ \keeplig{cretar} % secretary
+
+\nolig{reteam}{re|team}
+\nolig{Reteam}{Re|team}
+ % reteam reteamed reteaming reteams
+\nolig{retear}{re|tear}
+\nolig{Retear}{Re|tear}
+ % retear retears
+\nolig{retemp}{re|temp}
+\nolig{Retemp}{Re|temp}
+ % retemper retempering
+
+\nolig{retie}{re|tie}
+\nolig{Retie}{Re|tie}
+ % retie entireties sureties
+\nolig{retil}{re|til}
+\nolig{Retil}{Re|til}
+ % retile
+\nolig{retim}{re|tim}
+\nolig{Retim}{Re|tim}
+ % retime beforetime
+\nolig{retint}{re|tint}
+\nolig{Retint}{Re|tint}
+ % retint
+\nolig{retir}{re|tir}
+\nolig{Retir}{Re|tir}
+ % retire retiring
+\nolig{retitl}{re|titl}
+\nolig{Retitl}{Re|titl}
+ % retitle pretitling
+
+\nolig{retold}{re|told}
+\nolig{Retold}{Re|told}
+ % retold
+\nolig{retoo}{re|too}
+\nolig{Retoo}{Re|too}
+ % retook retool
+\nolig{retor}{re|tor}
+\nolig{Retor}{Re|tor}
+ % retore retorn retort retorted
+\nolig{retou}{re|tou}
+\nolig{Retou}{Re|tou}
+ % retouch retouched
+\nolig{retra}{re|tra}
+\nolig{Retra}{Re|tra}
+ % retrace retrack retract retrans retransmit
+\nolig{retre}{re|tre}
+\nolig{Retre}{Re|tre}
+ % pretreat retread retreat retrench
+\nolig{retri}{re|tri}
+\nolig{Retri}{Re|tri}
+ % pretrim pretrial retrieve retribution
+ % retries retrim
+\nolig{etrors}{e|trors}
+ % retrorse
+\nolig{retrous}{re|trous}
+\nolig{Retrous}{Re|trous}
+ % retrousse
+\nolig{retry}{re|try}
+\nolig{Retry}{Re|try}
+ % retry retrying
+
+\nolig{retu}{re|tu}
+\nolig{Retu}{Re|tu}
+ % return retune unreturnable
+\nolig{retwi}{re|twi}
+\nolig{Retwi}{Re|twi}
+ % retwist retwisting
+
+\nolig{etooth}{e|tooth}
+ % bluetooth eyetooth snaggletoothed
+\nolig{eteeth}{e|teeth}
+ % snaggleteeth eyeteeth
+
+\nolig{deter}{de|ter}
+\nolig{Deter}{De|ter}
+ % deter determine deteriorate undeterred
+
+\nolig{ceties}{ce|ties}
+ % niceties
+\nolig{cety}{ce|ty}
+ % nicety
+
+\nolig{feties}{fe|ties}
+ % safeties unsafeties biosafeties
+\nolig{fety}{fe|ty}
+ % safety
+
+\nolig{leties}{le|ties}
+ % subtleties
+\nolig{lety}{le|ty}
+ % subtlety teletype teletypewriter
+
+\nolig{rety}{re|ty}
+ % surety entirety retype pretype
+
+\nolig{etelev}{e|telev}
+ % pretelevision
+\nolig{etyp}{e|typ}
+ % archetype archetypal retype pretype
+
+% (G) as -> a-s
+% -------------
+
+\nolig{eastran}{ea|stran}
+ % seastrand
+\nolig{aspore}{a|spore}
+ % diaspora megaspore tetraspore
+\nolig{aseps}{a|seps}
+ % asepsis
+\nolig{asept}{a|sept}
+ % aseptic aseptically
+\nolig{asund}{a|sund}
+\nolig{Asund}{A|sund}
+ % asunder
+\nolig{aspec}{a|spec}
+\nolig{Aspec}{A|spec}
+ % aspect infraspecific intraspecies
+ % intraspecific
+\nolig{infras}{infra|s}
+\nolig{Infras}{Infra|s}
+ % infrastructure infraspecific
+\nolig{megast}{mega|st}
+\nolig{Megast}{Mega|st}
+ % megastructure megastar
+\nolig{megasp}{mega|sp}
+\nolig{Megasp}{Mega|sp}
+ % megaspores megascopic
+\nolig{aspoon}{a|spoon}
+ % teaspoon
+
+% how to do 'asea'?
+
+% (H) is -> i-s
+% -------------
+
+% (a) not across morpheme boundaries
+% (The following may be a bug in fontspec)
+
+\nolig{fish}{fi|sh}
+\nolig{fist}{fi|st}
+\nolig{Fist}{Fi|st}
+
+% (b) across morpheme boundaries
+
+%% Mustn't do global \nolig{antis}{anti|s}
+%% because of words such as sycophantism,
+%% vigilantism, and mantissa.
+
+\nolig{antisa}{anti|sa}
+\nolig{Antisa}{Anti|sa}
+ % antisag antisatellite
+\nolig{antisc}{anti|sc}
+\nolig{Antisc}{Anti|sc}
+ % antiscience
+\nolig{antise}{anti|se}
+\nolig{Antise}{Anti|se}
+ % antisecrecy antisense antiseptic
+\nolig{antisha}{anti|sha}
+\nolig{Antisha}{Anti|sha}
+ % antishark antiship antishock
+\nolig{antishi}{anti|shi}
+\nolig{Antishi}{Anti|shi}
+ % antishark antiship antishock
+\nolig{antisho}{anti|sh}
+\nolig{Antisho}{Anti|sh}
+ % antishark antiship antishock
+\nolig{antisk}{anti|sk}
+\nolig{Antisk}{Anti|sk}
+ % antiskid
+\nolig{antisl}{anti|sl}
+\nolig{Antisl}{Anti|sl}
+ % antislavery antislip
+\nolig{antismo}{anti|smo}
+\nolig{Antismo}{Anti|smo}
+ % antismog antismoke
+\nolig{antismu}{anti|smu}
+\nolig{Antismu}{Anti|smu}
+ % antismuggling antismut
+\nolig{antisn}{anti|sn}
+\nolig{Antisn}{Anti|sn}
+ % antisnob
+\nolig{antiso}{anti|so}
+\nolig{Antiso}{Anti|so}
+ % antisocial antisolar
+\nolig{antisp}{anti|sp}
+\nolig{Antisp}{Anti|sp}
+ % antispasmodic antispeculative
+\nolig{antist}{anti|st}
+\nolig{Antist}{Anti|st}
+ % antistatic antistick antistress
+\nolig{antisu}{anti|su}
+\nolig{Antisu}{Anti|su}
+ % antisubmarine antisubversion
+\nolig{antisy}{anti|sy}
+\nolig{Antisy}{Anti|sy}
+ % antisymmetric antisyphilitics
+
+\nolig{multis}{multi|s}
+\nolig{Multis}{Multi|s}
+ % multiscreen multisense multisensory
+ % multiservice multisided multisite
+ % multisize multiskilled multisource
+ % multispecies multispectral multispeed
+ % multisport multistage multistate
+ % multistemmed multistep multistoried
+ % multistory multistranded multisyllabic
+ % multisystem
+
+\nolig{isph}{i|sph}
+ % hemisphere planisphere hemispheric
+
+% (I) us -> u-s
+% -------------
+
+% %% (no examples yet)
+
+
+% (J) sk -> s-k
+% (available in EB Garamond font)
+% -------------------------------
+
+\nolig{skeep}{s|keep}
+ % greenskeeper groundskeeper miskeep
+\nolig{iskai}{is|kai}
+ % triskaidekaphobia
+\nolig{thsk}{ths|k}
+ % rathskeller
+\nolig{misk}{mis|k}
+\nolig{Misk}{Mis|k}
+ % miskeep miskept miskick misknow
+\nolig{atskill}{ats|kill}
+ % Catskills Mountains, Catskill Park
+\nolig{eekskill}{eeks|kill}
+ % Peekskill % a town on the Hudson River
+
+
+% (K) ll -> l-l
+% -------------
+
+\nolig{llike}{l|like}
+ % animallike soullike
+\nolig{lless}{l|less}
+ % soulless tailless
+
+% (L) fr -> f-r
+% -------------
+
+\nolig{oofr}{oof|r}
+ % proofread proofroom proofrock
+
+
+% (M) ij -> i-j
+% -------------
+
+% The 'ij' ligature seems to have no good
+% use in English-language words -- incl.
+% words introduced to English from other
+% languages, such as marijuana, gaijin, and
+% bijou; the 'ij' ligature seems to span
+% morpheme boundaries in all of these cases.
+% Hence, we disable this ligature globally.
+% We do make exceptions for words of Dutch
+% origin, where the ij ligature does have
+% legitimate uses.
+
+\nolig{ij}{i|j}
+ \keeplig{ijs} % rijsttafel (Indonesian dish)
+ \keeplig{ijn} % de Bruijn
+
+
+
+% Part 4: Disabling one discretionary
+% ligature so that a subsequent, more
+% important one doesn't get pre-empted
+% ------------------------------------
+
+% (i) as, is, and us preceding st
+% ...............................
+
+\nolig{ast}{a|st}
+\nolig{ust}{u|st}
+\nolig{ist}{i|st}
+
+% (ii) as, is, and us preceding sp
+% .................--.............
+
+\nolig{aspar}{a|spar}
+\nolig{Aspar}{A|spar}
+ % asparagus Caspar aspartame asparkle
+\nolig{asper}{a|sper}
+\nolig{Asper}{A|sper}
+ % aspersion Casper Jasper exasperate
+\nolig{aspir}{a|spir}
+\nolig{Aspir}{A|spir}
+ % aspire aspirator aspirin
+\nolig{gasp}{ga|sp}
+\nolig{Gasp}{Ga|sp}
+ % gasp
+\nolig{hasp}{ha|sp}
+\nolig{Hasp}{Ha|sp}
+ % hasp
+\nolig{lasp}{la|sp}
+ % clasp unclasp beclasp enclasp
+\nolig{rasp}{ra|sp}
+\nolig{Rasp}{Ra|sp}
+ % grasp rasp raspberry
+\nolig{wasp}{wa|sp}
+\nolig{Wasp}{Wa|sp}
+ % wasp waspish
+
+\nolig{risp}{ri|sp}
+ % crisp
+\nolig{ispani}{i|spani}
+ % hispanic
+\nolig{lisp}{li|sp}
+\nolig{Lisp}{Li|sp}
+ % lisp lisping
+\nolig{whisp}{whi|sp}
+\nolig{Whisp}{Whi|sp}
+ % whisper
+\nolig{wisp}{wi|sp}
+\nolig{Wisp}{Wi|sp}
+ % wisp
+
+\nolig{cusp}{cu|sp}
+\nolig{Cusp}{Cu|sp}
+ % cusp bicuspid tricuspid
+\nolig{ausp}{au|sp}
+\nolig{Ausp}{Au|sp}
+ % auspicious inauspicious
+
+% (iii) at and et preceding th
+% ............................
+
+%% If you have 'at' and 'et' ligatures as
+%% well as the 'th' ligature (as is the
+%% case for the font "Garamond Premier Pro",
+%% and any other fonts?!) and want a
+%% trailing 'th' ligature to take precedence
+%% over any preceding 'at' or 'et' ligas,
+%% make sure the following macros are
+%% active (i.e., not commented out).
+
+\nolig{ath}{a|th}
+\nolig{eth}{e|th}
+
+
+% The preceding instructions are a bit too
+% broad, as they also suppress the 'at' ligature
+% for words such as boathook, flathead,
+% etc., and the 'et' ligature in words such as
+% Beethoven, prophethood, and sweetheart.
+% To address these cases, we provide \keeplig
+% macros:
+
+\keeplig{oathook} % boathook
+\keeplig{eathook} % meathook
+\keeplig{athouse} % bathouse boathouse cathouse
+%%\keeplig{rathole} % this will re-enable "th" liga
+%%\keeplig{Rathole} % if "at" liga doesn't exist...
+\keeplig{athead} % cathead fathead flathead meathead
+\keeplig{atherd} % goatherd neatherd
+\keeplig{eatheart} % greathearted sweetheart
+\keeplig{eetheart}
+
+\keeplig{Beethoven}
+\keeplig{ophethood}
+
+
+% (iv) at and et preceding ta
+% ...........................
+
+\nolig{atap}{a|tap}
+ \keeplig{catap} % catapult cataphoresis
+ \keeplig{Catap}
+ \keeplig{ratap} % rataplan
+ \keeplig{Ratap}
+
+
+\nolig{Loretan}{Lore|tan} % :-)
+
+% All other cases seem to involve 'at'
+% or 'et' crossing a ligature boundary.
+% As such, these cases should be dealt
+% with in Part 3 of this file.
+
+\fi %% end of \@ifhdligset
diff --git a/Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-hyphex.sty b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-hyphex.sty
new file mode 100644
index 00000000000..c09e58b614b
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-hyphex.sty
@@ -0,0 +1,501 @@
+% !TeX root = selnolig.tex
+% !TEX TS-program = lualatex
+
+\RequirePackage{ifluatex}
+\ProvidesPackage{selnolig-german-hyphex}%
+[2013/05/25]
+
+% This entire package is placed under the
+% terms of the LaTeX Project Public License,
+% version 1.3 or later
+% (http://www.latex-project.org/lppl.txt).
+% It has the status "maintained".
+%
+% Author: Mico Loretan
+% (loretan dot mico at gmail dot com)
+
+\hyphenation{
+ab-lauf-trich-ter ab-lauf-trich-tern
+ab-lauf-trich-ters
+ab-lauf-län-ge ab-lauf-län-gen ab-wurf-li-ni-en
+ab-tau-flüs-sig-keit ab-tau-flüs-sig-kei-ten
+ab-wurf-la-dung ab-wurf-la-dun-gen ab-wurf-last
+ab-wurf-li-nie ab-wurf-li-nie ab-wurf-lu-ke
+alu-flach-stab
+an-lauf-län-ge an-lauf-län-gen
+an-pfropf-te an-pfropf-ten an-pfropf-test
+ar-til-le-rie-flie-ger
+as-tro-treff-the-men
+auf-frisch-imp-fung auf-frisch-imp-fun-gen
+auf-isst
+auf-lö-sungs-chart auf-lö-sungs-charts
+auf-triebs-än-de-rung auf-triebs-än-de-run-gen
+aus-puff--ähn-lich aus-puff-ähn-li-che
+aus-puff-ähn-li-chem
+aus-puff-lack aus-puff-län-ge aus-puff-län-gen
+aus-puff-lärm aus-puff-lei-tung aus-puff-lei-tun-gen
+aus-puff-los aus-puff-luft
+auf-tau-flüs-sig-keit auf-tau-flüs-sig-kei-ten
+aus-wurf-leis-tung aus-wurf-leis-tun-gen
+bahn-hof-frei-ge-län-de
+ball-ein-wurf-loch
+bal-sam-pflan-ze bal-sam-pflan-zen
+bau-ern-hof-fahrt bau-ern-hof-fahr-ten
+bau-ern-hof-frei-zeit
+bau-flau-te bau-flau-ten
+bau-hof-fahr-zeug bau-hof-fahr-zeu-ge
+bau-ern-hof-lö-sung bau-ern-hof-lö-sun-gen
+be-ton-kopf-li-nie bi-ber-fla-den bio-pflas-ter
+bi-schof-fin-ger
+blatt-alu-mi-ni-um-auf-la-ge
+blatt-alu-mi-ni-um-auf-la-gen
+blatt-hälf-te blatt-hälf-ten
+blau-flau-schig blau-flau-schi-ge blau-flau-schi-gen
+blau-fle-ckig blau-fle-cki-ge blau-fle-ckig-keit
+blau-topf-lo-go bluff-leck brei-flo-cken
+brenn-stoff-ta-ges-tank
+brunft-schauf-ler
+brust-bein-hälf-te brust-bein-hälf-ten
+burg-graf-tum
+chef-in-nen-le-ben chef-in-nen-raum chef-in-nen-räu-me
+chef-li-mou-si-ne chef-li-mou-si-nen
+chi-na-fla-neur
+chip-auf-lö-sung chip-auf-lö-sun-gen
+dampf-fre-gat-te dampf-fre-gat-ten
+dampf-lam-pe dampf-lam-pen dampf-lan-ze dampf-lan-zen
+dau-er-spar-auf-trag dau-er-spar-auf-trags
+dau-er-spar-auf-tra-ges
+dau-er-stau-flä-che dau-er-stau-flä-chen
+de-mo-kra-tie-flau-te
+de-sign-auf-trag de-sign-auf-tra-ges de-sign-auf-trags
+di-rekt-ruf-te-le-fon di-rekt-ruf-te-le-fo-ne
+dis-ket-ten-zu-griff-lämp-chen
+dis-ket-ten-zu-griff-lämp-chens
+dop-pel-kopf-li-nie dop-pel-kopf-li-ni-en
+dorf-fas-nets-um-zug
+dorf-idyl-le dorf-idyl-len
+dorf-in-for-ma-ti-on dorf-in-for-ma-ti-o-nen
+dorf-in-nen-raum dorf-in-nen-rau-mes
+dorf-insti-tut dorf-insti-tu-te dorf-insti-tu-ten
+dorf-insti-tuts dorf-la-ge dorf-la-gen
+dorf-leit-plan dorf-lis-te dorf-lis-ten dovre-fjell
+duft-öl duft-öle dumpf-la-be-rer
+echo-flos-kel echo-flos-keln
+ein-lauf-trich-ter ein-lauf-trich-tern ein-lauf-trich-ters
+ein-propf-te ein-propf-ten ein-propf-test
+ein-wurf-lu-ke
+eis-lauf-in-stru-ment eis-lauf-in-stru-men-te
+eis-lauf-in-stru-men-ten
+en-er-gie-flau-te
+erb-hof-fa-mi-lie erb-hof-fa-mi-li-en
+fach-auf-lis-tung fach-auf-lis-tun-gen
+fan-ta-sie-flie-ger
+farb-stoff-tin-te
+fern-sprech-auf-trags-dienst
+fern-sprech-auf-trags-diens-te
+fern-sprech-auf-trags-diens-ten
+fern-sprech-auf-trags-diens-tes
+fisch-auf-lauf fisch-auf-läu-fe
+fleisch-auf-lauf fleisch-auf-läu-fe
+flä-chen-ta-rif-land-schaft
+flagg-schiff-la-den
+fjord-ähn-lich fjord-ar-tig
+fjord-ähn-li-che fjord-ar-ti-ge
+fjord-ähn-li-chen fjord-ar-ti-gen
+fünf-la-gig fünf-la-gi-ge fünf-la-gi-gem
+fünf-län-der fünf-län-der-kampf
+fünf-lap-pig fünf-lap-pi-ge fünf-lap-pi-gen
+fünf-läp-pig fünf-läp-pi-gen
+fünf-lei-ten
+fünf-lei-ter-netz fünf-lei-ter-net-ze fünf-lei-ter-net-zen
+fünf-lei-ter-net-zes
+fünf-li-ter fünf-li-tern fünf-li-ters
+fünf-li-ter-au-to fünf-li-ter-au-tos
+fünf-li-ter-be-hält-nis
+fünf-li-ter-fla-sche fünf-li-ter-fla-schen
+fünf-li-ter-ka-nis-ter
+fünf-lit-ri-gen fünf-lit-ri-ges
+fünf-loch-dü-sen
+fünf-löch-rig fünf-löch-ri-ges
+ge-mein-schaft-ate-lier
+ge-richts-hof-feind-lich ge-richts-hof-feind-li-chen
+glüh-strumpf-lam-pe glüh-strumpf-lam-pen
+gnu-fla-den
+gold-blech-auf-la-ge gold-blech-auf-la-gen
+gold-dampf-la-ser gold-dampf-la-sern
+gold-kopf-lö-wen-äff-chen gold-kopf-lö-wen-äff-chens
+golf-län-der golf-län-dern golf-la-sche golf-la-schen
+golf-latz golf-lät-ze golf-le-gen-de golf-le-gen-den
+golf-lek-tion golf-lek-tio-nen golf-lek-tü-re
+golf-len-ker golf-len-ke-rin golf-lieb-ha-ber
+golf-lieb-ha-be-rin golf-lieb-ha-bern golf-luft
+golf-traum golf-träu-me
+gra-nat-schleif-lei-nen
+grau-fle-cken-test
+grau-flei-schig grau-flei-schi-ge grau-flei-schi-gen
+griff-län-ge griff-län-gen griff-län-gen-tech-nik
+griff-la-sche griff-la-schen
+griff-loch griff-lo-ches griff-lochs
+griff-lü-cke griff-lü-cken
+griff-loch-zie-gel griff-loch-zie-geln griff-loch-zie-gels
+gruft-as-sel gruft-as-seln
+gum-mi-schleif-tel-ler gum-mi-schleif-tel-lern
+gum-mi-schleif-tel-lers ha-lo-gen-me-tall-dampf-lam-pen
+hack-fleisch-auf-lauf
+han-dels-schiff-raum han-dels-schiff-rau-mes
+haft-an-ord-nung haft-an-ord-nun-gen
+hanf-la-by-rinth hanf-la-den hanf-la-den-be-sit-zer
+hanf-la-den-be-trei-ber hanf-land hanf-lang
+hanf-le-bens-mit-tel hanf-le-bens-mit-teln
+hanf-le-ga-li-sie-rung hanf-lehm
+hanf-lei-ne hanf-lei-nen
+hanf-lieb-ha-ber hanf-lied hanf-li-te-ra-tur
+hanf-lob-by hanf-lob-by-is-ten hanf-lounge
+haupt-bahn-hof-funk-ti-on haupt-bahn-hof-funk-tio-nen
+herz-aus-wurf-leis-tung her-zens-hof-fahrt
+hilf-fonds
+hip-pie-flair
+hin-ter-hof-fa-brik
+hof-fahrt hof-fahrts-pflicht hof-fahrts-tag
+hof-fahrt-sucht hof-fak-tor hof-fak-to-rin hof-fa-mi-lie
+hof-fan hof-fans hof-fest-er-lös
+hof-fi-nanz hof-fi-nan-zen
+hof-fi-nan-zier hof-fi-nan-ziers
+hof-fi-nanz-mann
+hof-fisch-ross
+hof-frau hof-frau-en
+hof-frei hof-freie hof-frei-en
+hof-fremd hof-frem-de hof-frem-dem hof-frem-den
+hof-frem-der
+hof-fri-seur
+hof-front hof-fron-ten
+hof-früh-stück
+hof-in-ge-nieur hof-in-ge-nieu-re hof-in-ge-nieu-ren
+hof-in-ge-nieu-rin hof-in-ge-nieurs
+hof-in-stru-ment hof-in-stru-men-te hof-in-stru-men-ten
+hof-lä-cheln
+hof-lösch-ma-schi-ne hof-lösch-ma-schi-nen hof-lö-sung
+huf-far-be huf-far-ben
+hüft-ex-ar-ti-ku-liert hüft-ex-ar-ti-ku-lier-te
+hüft-ex-ar-ti-ku-lier-ten
+huf-trag-rand huf-trag-ran-des
+impf-la-bo-ra-to-ri-um impf-lan-zet-te impf-le-gen-de
+impf-lü-cke impf-lü-cken impf-lun-ge impf-lun-gen
+impf-lü-cken-schlies-sung
+in-dus-trie-flair in-dus-trie-flot-te in-dus-trie-flot-ten
+in-nen-hof-fries
+kampf-ideo-lo-gie kampf-ideo-lo-gi-en
+kampf-lä-cheln kampf-lan-ze kampf-lan-zen
+kampf-la-ser kampf-last kampf-las-ten
+kampf-las-tig kampf-las-ti-ges kampf-las-tig-keit
+kampf-lau-ne kampf-lau-te kampf-lek-tion kampf-lek-tio-nen
+kampf-len-kung kampf-les-be kampf-les-ben
+kampf-les-ben-ar-tig kampf-les-ben-ta-gung
+kampf-le-sen kampf-le-ser
+kampf-le-se-rin kampf-le-se-rin-nen
+kampf-le-vel kampf-le-vels
+kampf-lüs-tern kampf-lüs-ter-ne kampf-ly-rik
+kauf-in-dex kauf-in-de-xe kauf-in-de-xes
+kauf-in-di-ces kauf-in-di-zes
+kauf-in-ger kauf-in-ger-stra-ße
+kauf-läh-mung
+kehl-kopf-lip-pen
+kirch-weih-auf-takt kirch-weih-auf-tak-te
+kirch-weih-auf-tak-ten kirch-weih-auf-tak-tes
+kirsch-auf-lauf kirsch-auf-lau-fes
+kla-vier-schleif-lack-ober-flä-che
+kleb-stoff-tu-be kleb-stoff-tu-ben knoepff-ler
+kleie-flo-cken
+knie-fli-cken
+krampf-la-chen
+koh-len-stoff-te-tra-chlo-rid
+kopf-fleisch kopf-leer kopf-lee-re
+kopf-lin-de kopf-lin-den kopf-li-nie kopf-li-ni-en
+kopf-lin-ken kopf-lu-pe
+kopf-lymph-kno-ten kopf-lymph-kno-tens
+kreis-lauf-in-suf-fi-zi-enz kreis-lauf-in-suf-fi-zi-en-zen
+kreis-lauf-läh-mung kreis-lauf-läh-mun-gen
+kreuz-auf-fin-dung kreuz-auf-fin-dun-gen
+kuh-auf-trieb kuh-auf-trie-be kuh-auf-trie-ben kuh-auf-triebs
+kunst-stoff-ähn-lich kunst-stoff-ähn-li-che
+kunst-stoff-elle kunst-stoff-tu-be
+kup-fer-dampf-la-ser
+kraft-atom kraft-ato-me
+län-gen-auf-la-ge län-gen-auf-la-gen
+lang-sam-lauf-the-ra-pie
+lauf-in-dex lauf-in-de-xe lauf-in-de-xes
+lauf-in-di-ces lauf-in-di-zes
+lauf-län-ge lauf-län-gen
+lauf-län-gen-an-ga-be lauf-län-gen-an-ga-ben
+lauf-län-gen-co-die-rung lauf-län-gen-co-die-run-gen
+lauf-län-gen-ko-die-rung lauf-län-gen-ko-die-run-gen
+lauf-lärm lauf-lärm-pe-gel lauf-lärm-pe-geln
+lauf-the-ra-pie
+lauf-trom-mel
+licht-hof-frei licht-hof-freie licht-hof-frei-em
+licht-hof-frei-en licht-hof-frei-es
+lie-bes-auf-fas-sung lie-bes-auf-fas-sun-gen
+li-te-ra-tur-wis-sen-schaft-um-strit-ten
+live-auf-tritt live-auf-trit-te live-auf-trit-ten
+live-auf-tritts
+lösch-auf-trag lösch-auf-tra-ges lösch-auf-trags
+los-knüpf-te los-knüpf-ten los-knüpf-test
+luft-as-ket luft-as-ke-ten
+ly-ra-flos-sig ly-ra-flos-si-ge ly-ra-flos-si-ger
+kunst-stoff-tu-ben
+ma-gie-fla-sche ma-gie-fla-schen
+maul-wurf-lob-by-ist maul-wurf-lob-by-is-ten
+men-gen-auf-fas-sung men-gen-auf-fas-sun-gen
+men-gen-auf-trag men-gen-auf-tra-ges men-gen-auf-trags
+me-tall-dampf-lam-pe me-tall-dampf-lam-pen
+mit-sträf-ling mit-sträf-lin-ge mit-sträf-lin-gen
+mit-tel-schiff-län-ge
+mo-del-auf-tritt mo-del-auf-trit-te
+mo-dell-auf-füh-rung mo-dell-auf-füh-run-gen
+mo-tor-topf-fil-ter
+muff-lig muff-li-ge muff-li-gen muff-li-ger
+mu-si-cal-auf-füh-rung mu-si-cal-auf-füh-run-gen
+nah-kampf-las-tig nah-kampf-las-ti-gen
+nähr-stoff-li-mi-tiert nähr-stoff-li-mi-tier-te
+nähr-stoff-li-mi-tier-ten
+na-tri-um-dampf-lam-pe na-tri-um-dampf-lam-pen
+na-tri-um-dampf-leuch-te na-tri-um-dampf-leuch-ten
+neu-fünf-land neu-fünf-län-der
+ni-veau-flä-che ni-veau-flä-chen
+nos-tal-gie-fla-sche nos-tal-gie-fla-schen
+nos-tal-gie-floh-markt not-durft-röh-re
+null-auf-fül-lung null-auf-fül-lun-gen
+ober-hof-fak-tor ober-hof-fak-tors ober-hof-fak-to-ren
+pfeif-laut pfeif-lau-te pfeif-lau-ten
+pfiff-laut pfiff-lau-te pfiff-lau-ten
+plan-dampf-fahrt plan-dampf-fahr-ten
+po-lit-auf-trag po-lit-auf-trä-ge po-lit-auf-trä-gen
+pop-flair
+pro-pa-gan-da-flos-kel pro-pa-gan-da-flos-keln
+pro-fi-zweif-ler
+prüf-in-stanz prüf-in-stan-zen
+prüf-in-sti-tut prüf-in-sti-tu-te prüf-in-sti-tu-ten
+prüf-in-sti-tu-ti-on prüf-in-sti-tu-ti-nen
+prüf-in-stru-ment prüf-in-stru-men-te prüf-in-stru-men-ten
+psy-chi-a-trie psy-chi-a-trisch
+psy-chi-a-trie-flücht-ling psy-chi-a-trie-flücht-lin-ge
+quarz-dampf-lam-pe quarz-dampf-lam-pen
+queck-sil-ber-dampf-lam-pe queck-sil-ber-dampf-lam-pen
+quer-schiff-ach-se quer-schiff-ach-sen
+rad-dampf-fre-gat-te rad-dampf-fre-gat-ten
+raffles-hos-pi-tal
+raum-schiff-uhr raum-schiff-uh-ren
+rech-nungs-hof-lö-sung rech-nungs-hof-lö-sun-gen
+re-gel-auf-la-ge re-gel-auf-la-gen reif-län-der
+reif-land reif-land-schaf-ten
+re-ser-ve-kampf-trup-pe re-ser-ve-kampf-trup-pen
+re-tro-flex re-tro-fle-xe re-tro-fle-xem re-tro-fle-xem
+re-tro-fle-xer re-tro-fle-xes
+riff-ähn-lich riff-ähn-li-che riff-la-gu-ne riff-la-gu-nen
+riff-lat-scher riff-lat-schern
+roh-stoff-ähn-lich roh-stoff-ähn-li-che
+rot-stift-ak-ti-on
+rück-lauf-ther-mos-tat
+rück-ruf-trick rück-ruf-tricks
+ruf-far-be ruf-far-ben
+ruf-tra-di-tion ruf-tra-di-tio-nen
+rumpf-la-mi-nat rumpf-li-ga rumpf-li-nie rumpf-li-ni-en
+salz-uf-ler
+sat-tel-kopf-lift
+sau-er-stoff-li-mi-tiert sau-er-stoff-li-mi-tier-te
+sau-er-stoff-li-mi-tier-ten
+sauf-trot-tel
+schad-stoff-li-mi-tiert schad-stoff-li-mi-tier-te
+schad-stoff-li-mi-tier-ten
+schaf-in-sel schaf-in-seln
+schaf-läm-mer
+schaf-lämp-chen
+schaf-laus-flie-ge schaf-laus-flie-gen
+schaf-tals-grund
+schaf-teich schaf-tei-che
+schaf-trans-port schaf-trans-por-te schaf-trieb
+schaf-trift
+schaum-stoff-lösch-mo-ni-tor schaum-stoff-lösch-mo-ni-tors
+schaum-stoff-lösch-mo-ni-to-re
+schaum-stoff-lösch-mo-ni-to-ren
+schen-kel-klopf-lek-tü-re
+schif-fer-bart
+schiff-la-che
+schiff-la-dung schiff-la-dun-gen
+schiff-län-de schiff-lan-ge schiff-län-ge schiff-län-gen
+schiff-lau-be
+schiff-raum
+schilf-feld schilf-fel-der schilf-floss
+schilf-in-sel schilf-in-seln schilf-hüt-te schilf-hüt-ten
+schilf-flö-te schilf-flö-ten schilf-lü-cke schilf-lü-cken
+schimpf-lau-te schimpf-lau-ten
+schlacht-hof-fa-brik schlacht-hof-fa-bri-ken
+schlaf-far-be schlaf-far-ben
+schlaf-la-bor-taug-lich schlaf-la-bor-taug-li-che
+schlaf-la-bor-taug-li-ches
+schlaf-läh-mung schlaf-läh-mun-gen schlaf-län-ge
+schlaf-trank schlaf-tran-kes
+schlaf-trau-rig schlaf-trau-ri-ge schlaf-trau-ri-gen
+schlaf-trau-ri-ges
+schlaf-trieb schlaf-trie-be
+schleif-fleck schleif-fleck-lein
+schleif-lack schleif-la-cken schleif-lack-ehe-bett
+schleif-lack-mö-bel schleif-lack-mö-beln
+schleif-lack-rah-men schleif-lack-schlaf-zim-mer
+schleif-la-de schleif-la-den
+schleif-la-den-or-gel schleif-la-den-or-geln
+schleif-la-den-tech-nik schleif-la-den-or-ga-ni-sa-tion
+schreib-tisch-auf-la-ge schreib-tisch-auf-la-gen
+schlupf-lid schlupf-li-der schlupf-li-dern
+schlürf-lau-te schlürf-lau-ten
+schmor-topf-le-gen
+schmug-gel-auf-trag schmug-gel-auf-tra-ges
+schmug-gel-auf-trags
+schnüf-fel-dro-ge schnüf-fel-dro-gen
+schopf-li-lie schopf-li-li-en
+schrumpf-lack schrumpf-la-cke schrumpf-lo-tion
+schul-hof-fa-schis-mus schul-hof-lärm
+schürf-li-zenz schürf-li-zen-zen
+schürf-loch schürf-lö-cher schürf-lö-chern
+schwarz-kopf-lift
+schwarz-kopf-lö-wen-äff-chen schwarz-kopf-lö-wen-äff-chens
+schweif-län-ge schweif-län-gen
+se-gel-auf-trieb se-gel-auf-trie-be se-gel-auf-trie-ben
+se-gel-auf-triebs
+seif-lap-pen
+sei-ten-schiff-ähn-lich
+senf-fa-brik senf-fa-bri-ken
+senf-far-be senf-far-ben senf-far-be-ne
+senf-far-big senf-far-bi-gen
+senf-feld senf-fel-der senf-fleck senf-fle-cken
+senf-fon-due senf-frucht senf-früch-te senf-früch-ten
+senf-fül-lung senf-fuss-bad
+senf-la-den senf-läd-chen senf-le-ben senf-lieb-ha-ber
+se-sam-pflan-ze se-sam-pflan-zen
+shuf-fle-rhyth-mus shuf-fle-rhyth-me
+sogne-fjord
+speer-wurf-leis-tung
+staub-auf-fang-be-reich staub-auf-fang-be-rei-che
+staub-auf-fang-be-rei-chen staub-auf-fang-be-rei-ches
+staub-auf-fang-be-reichs
+staub-auf-la-ge staub-auf-la-gen
+staub-blatt-hälf-te staub-blatt-hälf-ten
+stein-wurf-län-ge
+stell-auf-trag stell-auf-tra-ges stell-auf-trags
+stoff-tra-di-ti-on stoff-tren-nung
+straf-in-sel straf-in-seln
+straf-in-stru-ment straf-in-stru-men-te
+straf-in-stru-men-ten
+straf-län-ge straf-län-gen
+straf-läs-sig
+straf-lü-cke straf-lü-cken
+straf-ta-xe straf-ta-xen straf-tritt straf-trit-te
+straf-tri-bu-nal
+straf-wurf-li-nie straf-wurf-li-ni-en
+stau-flüs-sig-keit stau-flüs-sig-kei-ten
+streif-la-cher streif-les-wald
+strumpf-in-du-strie strumpf-in-du-stri-en
+strumpf-lied strumpf-lie-der strumpf-lie-des
+stuf-trot-tel stumpf-li-la
+sturm-wurf-lö-cher sturm-wurf-lö-chern
+sturm-wurf-lü-cke sturm-wurf-lü-cken
+suff-lot
+sumpf-lab-kraut sumpf-la-by-rinth sumpf-la-che
+sumpf-lan-ze sumpf-lan-zen sumpf-le-gen-de
+sumpf-licht sumpf-lich-ter
+sumpf-lie-ben-de sumpf-lie-ben-der sumpf-li-lie
+sumpf-tro-cken-le-gung
+sup-pen-duft-as-so-zia-ti-on
+sup-pen-duft-as-so-zia-tio-nen
+surf-la-den surf-le-gen-de surf-le-gen-den
+surf-lei-den-schaft surf-lek-tü-ren surf-li-mit
+ta-rif-in-for-ma-ti-on ta-rif-in-for-ma-ti-o-nen
+ta-rif-län-gen-er-mitt-lung
+ta-rif-land-kar-te
+ta-rif-land-schaft ta-rif-land-schaf-ten
+ta-rif-las-ten ta-rif-lü-cke ta-rif-lü-cken
+tau-flüs-sig-keit tau-flüs-sig-kei-ten
+te-le-fon-auf-trags-dienst te-le-fon-auf-trags-diens-te
+te-le-fon-auf-trags-diens-ten
+te-le-fon-auf-trags-diens-tes
+te-le-fo-nie-flat-rate
+text-auf-lis-tung text-auf-lis-tun-gen
+theo-rie-fleck theo-rie-fle-cken
+the-ra-pie-flan-kie-rend the-ra-pie-flan-kie-ren-de
+the-ra-pie-flan-kie-ren-derx
+tief-lo-tend tief-lo-ten-de tief-lo-ten-den tief-lo-ten-der
+tief-luft-kurs tiel-luft-kur-se
+tief-tank tief-tanks
+tief-traum tief-traum-pha-se tief-traum-pha-sen
+tier-schau-flair
+to-ma-ten-saft-at-ta-cke torf-lie-fe-rant
+torf-tau-cher torf-tau-chern
+treff-lo-kal treff-lo-ka-len
+trep-pen-lauf-län-ge trep-pen-lauf-län-gen
+treu-flei-ßig treu-flei-ßi-ge treu-flei-ßi-gen treu-flei-ßi-ger
+tropf-le-cka-ge tropf-le-cka-gen
+tu-sche-fleck tu-sche-flor
+tüpf-li-scheis-ser tüpf-li-schies-ser
+über-lauf-trich-ter über-lauf-trich-tern
+über-lauf-trich-ters
+ul-tra-hoch-auf-lö-sung ul-tra-hoch-auf-lö-sun-gen
+va-ri-eté-auf-füh-rung va-ri-eté-auf-füh-run-gen
+ver-eins-auf-lö-sung ver-eins-auf-lö-sun-gen
+ver-kauf-the-ke ver-kauf-the-ken
+ver-nunft-ori-en-tiert ver-nunft-ori-en-tier-te
+ver-nunft-ori-en-tier-tes
+vor-hof-fre-quenz vor-hof-fre-quen-zen
+vor-hof-funk-ti-on vor-hof-funk-tio-nen
+vor-hof-lü-cke vor-hof-lü-cken
+vor-lauf-in-di-ka-tor vor-lauf-in-di-ka-to-ren
+vor-stau-flä-che vor-stau-flä-chen
+vor-wurf-li-te-ra-tur
+wahl-kampf-far-ce wahl-kampf-far-cen
+wahl-kampf-lek-tü-re wahl-kampf-lü-ge wahl-kampf-lü-gen
+wahl-kampf-ly-rik
+wahl-kampf-trick wahl-kampf-tricks
+wald-hof-fan wald-hof-fans
+was-ser-stoff-uhr was-ser-stoff-uh-ren
+web-auf-tritt web-auf-trit-te web-auf-trit-ten
+web-auf-tritts weg-werf-la-sche weg-werf-la-schen
+weg-werf-lek-tü-re weg-werf-lied weg-werf-lie-der
+weg-werf-li-te-ra-tur weg-werf-lo-gik
+weg-werf-tar-nung weg-werf-tar-nun-gen
+wein-bau-fle-cken
+werk-auf-füh-rung werk-auf-füh-run-gen
+werk-auf-trag werk-auf-tra-ges werk-auf-trags
+wett-kampf-las-tig wett-kampf-lü-cke
+wi-ckel-tisch-auf-la-ge wi-ckel-tisch-auf-la-gen
+wolf-last wölf-ling wölf-linge
+wolf-the-ma wer-wolf-the-ma-tik
+wurf-lau-ne wurf-län-der-kampf wurf-lan-ze wurf-lan-zen
+wurf-leis-tung wurf-leis-tun-gen
+wurf-li-nie wurf-li-ni-en
+zahn-fleisch-auf-la-ge zahn-fleisch-auf-la-gen
+zapf-loch zapf-lo-ches zapf-lochs
+zapf-lö-cher zapf-lö-chern
+zapf-luft zapf-luft-sys-tem zapf-luft-sys-tems
+zeichen-be-darf-la-den
+zeit-schrif-ten-kampf-le-sen
+zell-auf-lö-sung zell-auf-lö-sun-gen
+zunft-ord-nung zunft-ord-nun-gen
+zupf-fest zupf-fes-te zupf-fes-ten zupf-lei-er
+zwölf-far-ben-ma-schi-ne zwölf-far-ben-ma-schi-nen
+zwölf-far-big zwölf-far-bi-ge zwölf-far-bi-gen
+zwei-flu-tig
+zwei-rad-dampf-fre-gat-te zwei-rad-dampf-fre-gat-ten
+zwölf-fin-ger-darm-ar-te-rie zwölf-fin-ger-darm-ar-te-ri-en
+zwölf-li-ni-en-spiel zwölf-li-ni-en-spie-le
+zwölf-li-ni-en-spie-len zwölf-li-ni-en-spie-les
+zwölf-li-ni-en-spiels zwölf-li-ter-glas
+zwölf-ton-oper zwölf-ton-opern
+}
+
+\ifluatex
+ \hyphenation{
+ impf-lü-cken-schlie-ßung
+ tüpf-li-schei-ßer hof-fuß hof-fu-ßes
+ schilf-floß
+ senf-fuß-bad
+ }
+\fi
diff --git a/Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-patterns.sty b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-patterns.sty
new file mode 100644
index 00000000000..f27a54ca6fe
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/selnolig/selnolig-german-patterns.sty
@@ -0,0 +1,1957 @@
+% !TeX root = selnolig.tex
+% !TEX TS-program = lualatex
+
+\ProvidesPackage{selnolig-german-patterns}%
+[2013/05/25]
+
+% This entire package is placed under the
+% terms of the LaTeX Project Public License,
+% version 1.3 or later
+% (http://www.latex-project.org/lppl.txt).
+% It has the status "maintained".
+%
+% Author: Mico Loretan
+% (loretan dot mico at gmail dot com)
+
+
+% A note on the organization of the \nolig
+% macros in this file: They are grouped by
+% the f-ligature being suppressed: ff -> f-f;
+% fi -> f-i, fl -> f-l, etc. Within each of
+% these sections, the \nolig commands are
+% listed first for word-beginnings and
+% second by word-interior search strings,
+% alphabetically within each group.
+
+
+% 1. ff -> f-f
+% ------------
+
+\nolig{Auff[aeiloruyäöü]}{Auf|f}
+\nolig{auff[aeiloruyäöü]}{auf|f}
+ % Hundreds (thousands?!) of words that
+ % start with or contain [aA]uff-,
+ % [kK]auff-, [lL]auf- and don't end
+ % with "ff".
+ % We must provide a few \keeplig macros,
+ % though, to deal with some surnames and
+ % some words of French origin.
+ \keeplig{Lauffen}
+ \keeplig{Stauffach} % Stauffacher
+ \keeplig{Stauffen} % Stauffenbergattentat
+ \keeplig{stauffen}
+ \keeplig{Stauffer}
+ \keeplig{stauffer}
+ \keeplig{Stauffisch}
+ \keeplig{stauffisch}
+
+ \keeplig{chauffier}
+ \keeplig{Chauffier}
+ \keeplig{chauffeur}
+ \keeplig{Chauffeur}
+ \keeplig{chauffement} % Echauffement
+
+\nolig{Brieff}{Brief|f}
+\nolig{brieff}{brief|f}
+ % Brief-f... (viele Fälle!)
+\nolig{Cheff}{Chef|f}
+\nolig{cheff[aäeioöruü]}{chef|f}
+ % Cheffahrer Cheffront ...
+ \keeplig{cheffekt} % Lacheffekt Wischeffekt
+ \keeplig{Scheffel}
+ \keeplig{scheffel} % scheffeln
+ \keeplig{cheffizi} % hocheffizient
+ \keeplig{cheffé} % Scheffé (a statistician)
+\nolig{cheffl[aiou]}{chef|fl}
+\nolig{Dampff}{Dampf|f}
+\nolig{dampff}{dampf|f}
+ % (viele Fälle!)
+\nolig{Dorff[aäeiloöruü]}{Dorf|f}
+\nolig{dorff[aäeiloöruü]}{dorf|f}
+ % (viele Fälle!)
+\nolig{Hanff}{Hanf|f}
+\nolig{hanff}{hanf|f}
+ % Hanffasern Hanffeld
+\nolig{Hoff[aäiloöruü]}{Hof|f}
+ % (viele Fälle!)
+ \keeplig{Hoffacker}
+ \keeplig{Hoffart}
+ \keeplig{Hoffärt} % Hoffärtigkeit
+ \keeplig{Hoffricht} % Hoffrichter
+ \keeplig{Hoffranz} % Hoffranzen (?)
+
+\nolig{Golff}{Golf|f}
+\nolig{golff}{golf|f}
+ % (viele Fälle!)
+\nolig{Hoffern}{Hof|fern}
+\nolig{hoffern}{hof|fern}
+ % Hofferne hofferner
+\nolig{Hoffest}{Hof|fest}
+ % Hoffest Hoffesterlös Hoffestteam
+\nolig{Impff}{Impf|f}
+ % Impffurcht Impffortbildung
+\nolig{Kampff}{Kampf|f}
+\nolig{kampff}{kampf|f}
+ % kampffertig Kampffigur
+ % Kampffuchs Kampffüchse
+\nolig{Kopff[aäeoöruü]}{Kopf|f}
+\nolig{kopff[aäeoöruü]}{kopf|f}
+ % (viele Fälle!)
+ % [kK]opffi -> caught by pffi rule
+ % [kK]opffl -> caught by pffl rule
+\nolig{Klopff}{Klopf|f}
+\nolig{klopff}{klopf|f}
+ % Schenkelklopffrohsinn klopfrei
+\nolig{Prüff}{Prüf|f}
+\nolig{prüff}{prüf|f}
+ % (viele Fälle!)
+\nolig{Ruffach}{Ruf|fach}
+ % Ruffach
+\nolig{ruffach}{ruf|fach}
+ % Hausnotruffachberater beruffachlichen
+\nolig{Rumpff}{Rumpf|f}
+ % Rumpffassung
+\nolig{Schaffang}{Schaf|fang}
+\nolig{Schaffarm}{Schaf|farm}
+
+\nolig{Schilff}{Schilf|f}
+\nolig{schilff}{schilf|f}
+ % Schilffeld Schilfflöte Schilffloß
+\nolig{Senff}{Senf|f}
+\nolig{senffa}{senf|fa}
+ % Senffabrik senffarbig Senffleck
+\nolig{Sumpff}{Sumpf|f}
+\nolig{sumpff}{sumpf|f}
+ % (viele Fälle!)
+\nolig{Tariff}{Tarif|f}
+\nolig{tariff}{tarif|f}
+ % (viele Fälle!)
+\nolig{Tieff}{Tief|f}
+\nolig{tieff}{tief|f}
+ % (viele Fälle!)
+ \keeplig{tieffekt}
+ % Multieffekt Konfettieffekt
+ \keeplig{tieffiz}
+ % Antieffizienz
+
+
+\nolig{chaffron}{chaf|fron}
+ % Schaffron
+\nolig{eiffest}{eif|fest}
+ % reiffest
+
+\nolig{ffabrik}{f|fabrik}
+ % Strumpffabrik
+\nolig{ffacet}{f|facet}
+ % Relieffacetten
+\nolig{ffachl}{f|fachl}
+ % beruffachlich golffachlich
+\nolig{ffachm}{f|fachm}
+ % Huffachmann Wahlkampffachmann
+ % Golffachmesse Fünffachmord
+\nolig{ffäch}{f|fäch}
+ % Brieffächer Einwurffächer fünffächrig
+\nolig{ffaden}{f|faden}
+ % Einzelknopffaden Knüpffaden
+\nolig{ffäd}{f|fäd}
+ % Einzelknopffäden Tropffäden
+\nolig{ffähig}{f|fähig}
+ % hoffähig kampffähig lauffähig
+\nolig{ffahn}{f|fahn}
+ % Totenkopffahne Dorffahne Wahlkampffahnen
+\nolig{ffahr}{f|fahr}
+ % Schifffahrt Schleiffahrt Tariffahrplan
+\nolig{ffähr}{f|fähr}
+ % Dampffährdienst
+\nolig{ffaktor}{f|faktor}
+ % Hoffaktor Schlupffaktoren
+\nolig{ffakult}{f|fakult}
+ % Rumpffakultät
+\nolig{ffall}{f|fall}
+ % Anruffalle auffallen Straffall
+ % Tariffalle Streiffall Maulwurffalle
+ \keeplig{ffallee} % Oppenhoffallee
+ \keeplig{ffallerg} % Duftstoffallergie
+ \keeplig{ffallokat}% Rohstoffallokation
+\nolig{ffäll}{f|fäll}
+ % straffällig unauffällig
+\nolig{ffalt}{f|falt}
+ % Fünffaltigkeit Dickkopffalter
+ \keeplig{iffalt} % Segelschiffalter
+ \keeplig{offalt} % Kraftstoffalternativen
+\nolig{ffält}{f|fält}
+ % fünffältig
+\nolig{ffami}{f|fami}
+ % Zwölffamilienhäuser
+ \keeplig{Diffami} % Diffamierung
+ \keeplig{diffami} % diffamierend
+\nolig{ffanat}{f|fanat}
+ % Schärffanatiker
+\nolig{ffans}{f|fans}
+ % Waldhoffans
+ \keeplig{riffans} % Griffansätze
+ \keeplig{toffans} % Sprengstoffanschlag
+\nolig{ffanta}{f|fanta}
+ % Schlaffantasie Straffantasie
+\nolig{ffarb}{f|farb}
+ % Zwölffarbenmaschine zwölffarbig
+ \keeplig{ffarbeit}
+\nolig{ffärb}{f|färb}
+ % Kopffärbung
+\nolig{ffaschi}{f|faschi}
+ % Schulhoffaschismus
+\nolig{ffassad}{f|fassad}
+ % Innenhoffassade
+\nolig{ffäul}{f|fäul}
+ % Sumpffäulnis
+
+\nolig{ffecht}{f|fecht}
+ % Klopffechter
+\nolig{ffeder}{f|feder}
+ % -f-feder...
+\nolig{ffedr}{f|fedr}
+ % zwölffedrig
+\nolig{ffehl}{f|fehl}
+ % Schärffehler
+\nolig{ffeier}{f|feier}
+ % Hoffeierlichkeiten
+\nolig{ffeind[els]}{f|feind}
+ % -f-feinde -f-feindlich -f-feindschaft
+ \keeplig{ffeindealer} % Koffeindealer
+\nolig{ffeld}{f|feld}
+ % Prüffeld Schilffeld Kampffeld
+ \keeplig{Büffeld} % Büffeldecke
+ \keeplig{büffeld}
+ \keeplig{ffeldenk} % Scheffeldenkmal
+ \keeplig{Iffeld} % Iffeldorf
+ \keeplig{Löffeld} % Löffeldüngung
+ \keeplig{löffeld}
+ \keeplig{Müffeld} % Müffeldoktor
+ \keeplig{müffeld}
+ \keeplig{nüffeld} % Schnüffeldienst -droge
+ \keeplig{Riffeld} % Riffeldielen
+ \keeplig{taffeld} % Staffeldach -diplomatie
+ \keeplig{toffeld} % Kartoffeldruck -dieb
+ \keeplig{Trüffeld} % Trüffelduft -dorf
+ \keeplig{trüffeld}
+ \keeplig{Waffeld} % Waffelduft
+ \keeplig{waffeld}
+
+\nolig{ffell}{f|fell}
+ % Werwolffell Schaffell
+ \keeplig{ffelleck} % Waffelleckereien
+ \keeplig{ffellinde}% Scheffellinde
+ \keeplig{Muffell} % Muffellämmer
+ \keeplig{muffell} % muffellig
+ \keeplig{öffell}
+ % Löffellamm Kochlöffellängen
+ \keeplig{taffell} % Staffellauf -läufer
+ \keeplig{toffell}
+ % Kartoffellager -liebhaber
+ % Pantoffellarve Kunstoffelle
+ \keeplig{üffell} % Büffelleber -leder -leib
+ % Trüffelleidenschaft Schnüffellust
+\nolig{ffeile}{f|feile}
+ % Prüffeile
+\nolig{ffenster}{f|fenster}
+ % Hinterhoffenster Schlaf- Tarif-
+\nolig{fferien}{f|ferien}
+ % Reiterhofferien Bauernhofferien
+\nolig{ffernseh}{f|fernseh}
+ % Abruffernsehen
+\nolig{ffertig}{f|fertig}
+ % schlaffertig
+\nolig{ffestl}{f|festl}
+ % Straffestlegung
+\nolig{ffests}{f|fests}
+ % Straffestsetzung
+ % Hoffestspiele Dorffestspiel
+\nolig{ffetisch}{f|fetisch}
+ % Schaffetischisten
+\nolig{ffetus}{f|fetus}
+ % Schaffetus
+\nolig{ffett}{f|fett}
+ % Huffett Rumpffett Scharffetter
+ \keeplig{Buffett} % Buffettheke
+ \keeplig{Büffett}
+ \keeplig{buffett}
+ \keeplig{büffett} % Obstbüffett
+\nolig{ffetz}{f|fetz}
+ % Brieffetzen Stofffetzen
+ \keeplig{Buffetz} % Buffetzeit
+ \keeplig{Büffetz} % Büffetzusammenstellung
+\nolig{ffeud}{f|feud}
+ % Kasernenhoffeudalismus
+\nolig{ffeue}{f|feue}
+ % Dorffeuerwehr Torffeuer Lauffeuer
+
+\nolig{ffilet}{f|filet}
+ % Meerwolffilet
+\nolig{ffindung}{f|findung}
+ % Beruffindungsprozess
+\nolig{ffirm}{f|firm}
+ % Brieffirmen Tariffirmen
+ \keeplig{affirm}
+ \keeplig{Affirm}
+
+\nolig{ffolg}{f|folg}
+ % Impffolgen
+\nolig{ffoli}{f|foli}
+ % Relieffolien
+\nolig{ffolter}{f|folter}
+ % Tropffolter
+ \keeplig{Affoltern} % town near Zurich
+\nolig{ffond}{f|fond}
+ % Tariffondslösung
+\nolig{fforder}{f|forder}
+ % Tarifforderung Strafforderung
+\nolig{fförder}{f|förder}
+ % ruffördernd kreislauffördernd schlaffördernd
+\nolig{fforell}{f|forell}
+ % Werfforellen
+\nolig{fform}{f|form}
+ % Kopfform Gugelhupfform aufformen
+\nolig{fförm}{f|förm}
+ % reifförmig schweifförmig
+\nolig{fforsch}{f|forsch}
+ % Schlafforschung Impfforschung
+\nolig{fforen}{f|foren}
+ % Abrufforen
+\nolig{fforu}{f|foru}
+ % Schlafforum
+\nolig{ffoto}{f|foto}
+ % Schlaffotogalerie
+\nolig{fföt}{f|föt}
+ % Wolffötus
+
+\nolig{ffracht}{f|fracht}
+ % Dampffrachter
+\nolig{ffrag}{f|frag}
+ % Streiffragen
+ \keeplig{Suffrage} % Suffragette
+ \keeplig{suffrage}
+\nolig{ffrak}{f|frak}
+ % Rumpffraktion
+ \keeplig{toffrak} % Flüssigstoffrakete
+\nolig{ffrank}{f|frank}
+ % Fünffrankenstück
+\nolig{ffräs}{f|fräs}
+ % Baumstumpffräse
+\nolig{ffrau}{f|frau}
+ % Hoffrau Kauffrau
+ \keeplig{ffraum} % Sprengstoffraub
+ \keeplig{ffraub} % Treffraum
+ \keeplig{ffrausch} % Klebstoffrausch
+ \keeplig{ffraup} % Stoffraupe
+
+\nolig{ffreak}{f|freak}
+ % Surffreak
+ \keeplig{toffreak} % Schadstoffreaktionen
+\nolig{ffregat}{f|fregat}
+ % Kampffregatte Dampffregatte
+\nolig{ffrei}{f|frei}
+ % tariffrei Schlaffrei
+ \keeplig{chiffrei}% Schiffreise
+ \keeplig{toffrei} % stoffrein sauerstoffreich
+ \keeplig{uffreis} % Puffreis
+ \keeplig{luffrei} % schluffreich
+ \keeplig{iffreig} % Riffreigen
+\nolig{ffremd}{f|fremd}
+ % hoffremd
+\nolig{ffreq}{f|freq}
+ % Schlaffrequenz
+\nolig{ffreu}{f|freu}
+ % Straffreude Brieffreund
+
+\nolig{ffrisch}{f|frisch}
+ % Schaffrischkäse zapffrisch
+\nolig{ffried}{f|fried}
+ % Dorffrieden Hoffrieden
+\nolig{ffries}{f|fries}
+ % Relieffries
+ \keeplig{toffries} % Rohstoffriese
+\nolig{ffrist}{f|frist}
+ % Prüffrist Ablauffrist
+\nolig{ffrisur}{f|frisur}
+ % Schlaffrisur Topffrisur Zopffrisur
+
+\nolig{ffront}{f|front}
+ % Hoffront Kampffront
+ \keeplig{affront}
+ \keeplig{Affront}
+\nolig{ffrosch}{f|frosch}
+ % Pfeiffrosch
+\nolig{ffrösch}{f|frösch}
+ % Pfeiffrösche
+\nolig{ffrucht}{f|frucht}
+ % Rumtopffrucht
+\nolig{ffrücht}{f|frücht}
+ % Rumtopffrüchte
+
+\nolig{ffund}{f|fund}
+ % Brückenkopffundament
+ \keeplig{iffund} % diffundieren
+ \keeplig{toffund} % stoffundurchlässig
+\nolig{fführ}{f|führ}
+ % Kampffführung aufführen
+\nolig{ffunk}{f|funk}
+ % Brieffunktion Abruffunktion
+\nolig{ffühl}{f|fühl}
+ % Scharffühler
+\nolig{ffüll}{f|füll}
+ % Prüffüllgut Dampffüllung
+\nolig{ffürst}{f|fürst}
+ % -f-fürst
+\nolig{ffuß}{f|fuß}
+\nolig{ffuss}{f|fuss}
+\nolig{ffüß}{f|füß}
+\nolig{ffüss}{f|füss}
+ % Greiffuß Greiffüße
+ \keeplig{iffuss}
+ % Diffusschall -strahlung
+\nolig{ffutter}{f|futter}
+ % Prüffutter
+\nolig{ffütter}{f|fütter}
+ % Abruffütterung
+
+\nolig{hoffan}{hof|fan}
+ % Waldhoffan
+\nolig{hoffersch}{hof|fersch}
+ % Talhofferschen
+\nolig{hoffest}{hof|fest}
+ % Pfarrhoffest Hinterhoffest
+\nolig{hoffete}{hof|fete}
+ % Schneckenhoffete
+
+\nolig{lffach}{lf|fach}
+ % elffach zwölffach
+
+\nolig{offegen}{of|fegen}
+ % Hoffegen
+
+\nolig{pffach}{pf|fach}
+ % Strumpffach
+\nolig{pffern}{pf|fern}
+ % rumpffern
+\nolig{pffest}{pf|fest}
+ % Klopffestigkeit tropffester
+\nolig{pffels}{pf|fels}
+ % Hirschkopffelsen
+\nolig{pffont}{pf|font}
+ % Dampffontäne
+\nolig{pffüh}{pf|füh}
+ % Kampfführung
+
+\nolig{reiffern}{reif|fern}
+ % reiffern
+\nolig{rffan}{rf|fan}
+ % Surffan
+\nolig{rffeel}{rf|feel}
+ % Surffeeling
+\nolig{rffest}{rf|fest}
+ % Surffest
+\nolig{rffinn}{rf|finn}
+ % Surffinne
+\nolig{rffleck}{rf|fleck}
+ % Schorfflecken
+
+\nolig{straffern}{straf|fern}
+ \keeplig{rtstraffern} % Gurtstraffern
+ \keeplig{ssstraffern}
+ % Gurtschlossstraffern
+
+\nolig{ünff}{ünf|f}
+ % fünffarbig fünffingrig fünfflügelig
+ % Fünfflach fünfflammig fünffleckige
+
+\nolig{wurff[aäeiloöruü]}{wurf|f}
+ % Auswurffach Einwurffehler
+ % Hammerwurffinale
+
+
+% 2. fi -> f-i
+% ------------
+
+\nolig{Aufi}{Auf|i}
+\nolig{aufinstr}{auf|instr}
+ % aufinstruieren
+\nolig{aufirr}{auf|irr}
+ % hinaufirrte
+\nolig{aufisst}{auf|isst}
+
+\nolig{Briefi}{Brief|i}
+\nolig{briefi}{brief|i}
+ % Briefidiom Briefinhalt Pfandbriefinhaber
+
+\nolig{Chefi}{Chef|i}
+\nolig{chefi}{chef|i}
+ % Chefideologe Chefindianer
+ % Chefinformatiker
+ \keeplig{Chefin} % Chefin Chefinnen
+ \nolig{Chefin[a-mo-z]}{Chef|in}
+ % Chefinder -indianer -inspektor
+ % -inquisitor
+ \keeplig{chefin}
+ \nolig{chefind}{chef|ind}
+ \keeplig{chefibel} % Recherchefibel
+ \keeplig{chefiebe} % Recherchefieber
+ \keeplig{chefigur} % Nietzschefigur
+ \keeplig{chefilm} % Rachefilm
+ \keeplig{chefili} % Wäschefiliale
+ \keeplig{chefirm} % Geldwäschefirma
+ \keeplig{chefisch} % Wäschefische
+
+\nolig{Dorfi}{Dorf|i}
+\nolig{dorfi}{dorf|i}
+ % Dorfidylle -information -institute
+\nolig{Hofi}{Hof|i}
+ % (viele Fälle!)
+ \keeplig{Hofier} % Hofieren
+\nolig{Kampfi}{Kampf|i}
+\nolig{kampfi}{kampf|i}
+ % Kampfideologie Kampfinstrument
+\nolig{Kaufi}{Kauf|i}
+\nolig{kaufi}{kauf|i}
+ % Kaufidee kaufinteressiert Kaufimpuls
+\nolig{Laufi}{Lauf|i}
+\nolig{laufi}{lauf|i}
+ % Laufidol Kreislaufinsuffizienz
+ \keeplig{Laufig}
+ \keeplig{Blaufi}
+ % Blaufichte Blaufilter Blaufisch
+ \keeplig{laufilter} % Planetenblaufilter
+ \keeplig{laufiedr} % blaufiedrig
+\nolig{rüfi}{rüf|i}
+ % Prüfinhalt Prüfinstitution Prüfintervall
+\nolig{Rumpfi}{Rumpf|i}
+\nolig{rumpfi}{rumpf|i}
+ % Rumpfitalien Strumpfindustrie
+ \keeplig{rumpfig}
+
+\nolig{chafi}{chaf|i} % Schaf-i...
+ % Schafimperium Schafinnereien
+ \keeplig{schafigu} % Maharadschafigur
+\nolig{chlafi}{chlaf|i} % Schlaf-i-...
+ % Schlafiglu schlafinduzierend
+ \keeplig{chlafitt} % Schlafittchen
+
+\nolig{Strafi}{Straf|i}
+\nolig{strafi}{straf|i}
+ % strafisolierend Strafinstanz
+\nolig{Tarifi}{Tarif|i}
+\nolig{tarifi}{tarif|i}
+ % (viele Fälle!)
+ \keeplig{Tarifier} % Tarifierung
+ \keeplig{tarifier} % tarifierbar
+\nolig{Tiefinn}{Tief|inn}
+\nolig{tiefinn}{tief|inn}
+ % tiefinnen -innerste -innig -innerste
+
+\nolig{fidee}{f|idee}
+ % Kopfidee Luftschiffidee
+\nolig{fideol}{f|ideol}
+ % Tiefideologie
+\nolig{fidentif}{f|identif}
+ % Stoffidentifizierung
+\nolig{fidentit}{f|identit}
+ % Steppenwolfidentität Berufidentität
+\nolig{fidol}{f|idol}
+ % Golfidol
+\nolig{fidyll}{f|idyll}
+ % Bauernhofidyll
+\nolig{figel}{f|igel}
+ % Köpfigel Stoffigel
+ \keeplig{figelehrt} % Sufigelehrter
+\nolig{fikone}{f|ikone}
+ % Laufikone
+\nolig{fillus}{f|illus}
+ % Sumpfillusion
+\nolig{fimman}{f|imman}
+ % ablaufimmanente
+\nolig{fimmob}{f|immob}
+ % Kaufhofimmobilie
+\nolig{fimmun}{f|immun}
+ % Strafimmunität
+\nolig{fimp}{f|imp}
+ % Torfimporte Kaufimpuls aufimpft
+
+\nolig{findex}{f|index}
+ % Kaufindex Pfandbriefindex
+\nolig{findikat}{f|indikat}
+ % Impfindikation
+\nolig{findiv}{f|indiv}
+ % Hofindividualität
+\nolig{findiz}{f|indiz}
+ % Tarifindizes
+\nolig{findust}{f|indust}
+ % Golfindustrie
+\nolig{finfekt}{f|infekt}
+ % Dampfinfektion
+\nolig{finfiz}{f|infiz}
+ % Laufinfizierte
+\nolig{finfo}{f|info}
+ % Tarifinformation Telefoninformation
+ \keeplig{Delfinfo}
+ % Delfinforscher -foto
+\nolig{finfra}{f|infra}
+ % Hofinfrastruktur
+\nolig{finfus}{f|infus}
+ % Tropfinfusion
+\nolig{fingenieur}{f|ingenieur}
+ % Prüfingenieur Kaufingenieur
+\nolig{finhab}{f|inhab}
+ % Hofinhaber
+\nolig{finhalat}{f|inhalat}
+ % Kamilledampfinhalationen
+\nolig{finhalt}{f|inhalt}
+ % Begriffinhalte Kropfinhalt
+ \keeplig{Delfinhalt} % Delfinhaltung
+ \keeplig{raffinhalt} % Paraffinhaltig
+\nolig{finitia}{f|initia}
+ % Korallenriffinitiative
+\nolig{finjekt}{f|injekt}
+ % Dampfinjektionsverfahren
+\nolig{finkont}{f|inkont}
+ % Ueberlaufinkontinenz
+ \keeplig{Delfinkont} % Delfinkontakt
+
+\nolig{finnenaus}{f|innenaus}
+ % Schiffinnenausbau
+\nolig{finnenohr}{f|innenohr}
+ % Schafinnenohr
+\nolig{finnenfl}{f|innenfl}
+ % Hofinnenflächen
+\nolig{finnenl}{f|innenfl}
+ % Hofinnenleben
+\nolig{finnenraum}{f|innenraum}
+ % Kopfinnenraum
+\nolig{finnenräum}{f|innenräum}
+ % Schlafinnenräumen
+\nolig{finnens}{f|innens}
+ % Rumpfinnenseite
+
+\nolig{finner}{f|inner}
+ % tiefinnerlich Kopfinneres
+\nolig{finnig}{f|innig}
+ % tiefinnige
+\nolig{finnov}{f|innov}
+ % Tarifinnovationen
+\nolig{finsass}{f|insass}
+ % Raumschiffinsassen
+\nolig{finsekt}{f|insekt}
+ % Laufinsekt
+\nolig{finsel}{f|insel}
+ % Schafinsel Schilfinsel Saufinsel
+\nolig{finserat}{f|inserat}
+ % Titelkopfinserat
+\nolig{finsign}{f|insign}
+ % Knopfinsignien
+\nolig{finspek}{f|inspek}
+ % Kirchhofinspektor
+\nolig{finsta}{f|insta}
+ % Kunstriffinstallateur
+ % Schiffinstandsetzung
+ % Strafinstanz rumpfinstabil
+\nolig{finstinkt}{f|instinkt}
+ % Zupfinstinkt
+\nolig{finstitu}{f|institu}
+ % Strafinstitutionen
+\nolig{finstrukt[io]}{f|instrukt}
+ % Wurfinstruktion Chefinstruktor
+\nolig{finstrum}{f|instrum}
+ % Zupfinstrumente Schleif- Greif-
+\nolig{finsuff}{f|insuff}
+ % Kreislaufinsuffizienz
+\nolig{finszen}{f|inszen}
+ % Kopfinszenierung
+\nolig{fintars}{f|intars}
+ % Griffintarsien
+\nolig{fintell}{f|intell}
+ % Hofintellektueller
+\nolig{fintegr}{f|integr}
+ % Tarifintegration
+\nolig{fintens}{f|intens}
+ % eingriffintensiv
+\nolig{finter}{f|inter}
+ % Feuerschiffinteressierte
+ % Begriffinterpretationen
+ % Strafinterventionen Rufintervalle
+\nolig{finton}{f|inton}
+ % Tiefintonieren
+\nolig{fintrig}{f|intrig}
+ % Briefintrige Hofintrige
+\nolig{finvent}{f|invent}
+ % Laufinventar
+\nolig{finvest}{f|invest}
+ % Anlaufinvestitition
+
+\nolig{firis}{f|iris}
+ % Sumpfiris
+\nolig{fironi}{f|ironi}
+ % tiefironisch
+\nolig{firre}{f|irre}
+ % Dorfirre
+\nolig{firru}{f|irru}
+ % Werfirrung
+
+\nolig{fisolat}{f|isolat}
+ % Strafisolator Schaumstoffisolation
+\nolig{fisolie}{f|isolie}
+ % Griffisolierung
+
+\nolig{uffax}{uf|fax}
+ % Notruffax Abruffax
+
+
+
+% 3. fl -> f-l
+% ------------
+
+\nolig{Aufl[aeiouyäöü]}{Auf|l}
+ % Must avoid catching "Aufl.".
+\nolig{aufl}{auf|l}
+ % Hundreds (thousands?!) of words
+ % However, must allow for quite a few
+ % exceptions:
+ \keeplig{auflair} % Tierschauflair
+ \keeplig{aufläche}% Anbau- Grau- Kau- ...
+ % Niveau- Plateau- Schau- Staufläche
+ \keeplig{aufliegl}% Tauflieglein
+ \keeplig{auflüssig} % Tauflüssigkeit
+ \keeplig{baufl}
+ % Modellbauflieger Weinbauflecken
+ \keeplig{Baufl} % Bauflaute
+ \nolig{bauflösen}{bauf|lösen}
+ % grobauflösend
+ \keeplig{blaufl}% blaufleckig blauflauschig
+ \nolig{blaufloch}{blauf|loch}
+ % Ablaufloch
+ \nolig{blauflog}{blauf|log}
+ % Ablauflogik
+ \keeplig{Blaufl}% Blauflügel (Libelle)
+ \keeplig{fraufl}% Frauflüge
+ \keeplig{Fraufl}
+ \keeplig{gauflöte} % Rheingauflöte
+ \keeplig{graufl}% Graufleckentest
+ \keeplig{Graufl}
+ \keeplig{onauflo} % Donauflotte
+ \keeplig{onauflu} % Donauflut Donaufluss
+ \keeplig{Moskaufl} % Moskauflug
+ \keeplig{Schauflieg}% Schaufliegen
+ \keeplig{Schaufloß} % Schaufloßfahrten
+ \keeplig{schauflöß}
+ \keeplig{Schauflug}
+ \keeplig{Schauflüg} % Schauflüge
+ \keeplig{schauflieg}
+ \keeplig{schaufloß}
+ \keeplig{schauflöß} % Wahrschauflöße
+ \keeplig{schauflug}
+ \keeplig{schauflüg}
+
+
+\nolig{Briefl}{Brief|l}
+\nolig{briefl}{brief|l}
+ % lots and lots of words ...
+\nolig{Chefl}{Chef|l}
+\nolig{chefl}{chef|l}
+ % Cheflieferant -limousine -lobbyist -los
+ \keeplig{achefl}
+ % Rachefluch Einspracheflut
+ \keeplig{ichefl} % Speichefluss
+ \keeplig{schefl}
+ % Ascheflocken Tuschefleck
+ \keeplig{chefläche} % Bracheflächen
+\nolig{Dampfl}{Dampf|l}
+\nolig{dampfl}{dampf|l}
+ % Dampflanze Natriumdampflampe
+\nolig{Dorfl}{Dorf|l}
+\nolig{dorfl}{dorf|l}
+ % Dorfladen Dorflage Dorfleitplan
+ \keeplig{dorfliese} % Korridorfliesen
+ \keeplig{dorflüg} % Condorflüge
+\nolig{Fünfl}{Fünf|l}
+\nolig{fünfl}{fünf|l}
+ % fünflitrig Fünflochdüsen
+\nolig{Golfl}{Golf|l}
+\nolig{golfl}{golf|l}
+ % viele Faelle
+\nolig{Hanfl}{Hanf|l}
+\nolig{hanfl}{hanf|l}
+ % Hanfladen Hanfland Hanflegalisierung
+ \keeplig{thanflamm} % Methanflamme
+\nolig{Hofl}{Hof|l}
+\nolig{hofl}{hof|l}
+ % Hoflaborant Hoflieferant
+ \keeplig{hoflosk} % Echofloskeln
+\nolig{Huflatt}{Huf|latt}
+\nolig{huflatt}{huf|latt}
+ % Huflattich huflattichartig
+\nolig{Hufled}{Huf|led}
+\nolig{hufled}{huf|led}
+ % Huflederhautentzundung
+\nolig{Impfl}{Impf|l}
+\nolig{impfla}{impf|la}
+ % Schimpflaute
+ \keeplig{eimpflanz} % Keimpflanze
+\nolig{impfle}{impf|le}
+ % Impflegende
+ \keeplig{eimpfleg} % Heimpfleger
+ \keeplig{timpfleg} % Intimpflege
+\nolig{Kampfl}{Kampf|l}
+\nolig{kampfl}{kampf|l}
+ % Kampflegende kampflüstern
+ % Wahlkampflüge
+\nolig{Kopfl[äeioöuüy]}{Kopf|l}
+\nolig{kopfl[äeioöuüy]}{kopf|l}
+\nolig{Köpfl[aäioöuüy]}{Köpf|l}
+\nolig{köpfl[aäioöuüy]}{köpf|l}
+ % Dutzende (Hunderte?) von Worten...
+ % [kK]opfla -> caught by opfla rule
+ % [kK]öpfle -> caught by öpfle rule
+ \keeplig{kopflaster}% Ökopflaster
+ \keeplig{kopfleg} % Risikopflege
+ \keeplig{kopflaum} % Schokopflaumen
+\nolig{Pfeifl}{Pfeif|l}
+\nolig{pfeifl}{pfeif|l}
+ % Pfeiflaute
+\nolig{Prüfl}{Prüf|l}
+\nolig{prüfl}{prüf|l}
+ % Prüflabor Prüflast Prüflampe
+\nolig{Reliefl}{Relief|l}
+\nolig{reliefl}{relief|l}
+ % Relieflandschaft -lagen -landkarte
+ % relieflos
+\nolig{Rufl}{Ruf|l}
+\nolig{rufl}{ruf|l}
+ % viele Fälle, aber...
+ \keeplig{Durufl} % Duruflé
+ \keeplig{mbarufl} % Gambarufluss
+ \keeplig{ruflagge} % Peruflagge
+ \keeplig{rufleisch} % Kängurufleisch
+
+\nolig{Schafl}{Schaf|l}
+\nolig{schafl}{schaf|l}
+ % Schafleder Schaflaus Schafleber
+\nolig{Schiefl}{Schief|l}
+\nolig{schiefl}{schief|l}
+ % schieflachen Schieflage schieflaufen
+\nolig{Schilfl}{Schilf|l}
+\nolig{schilfl}{schilf|l}
+ % Schilflabyrinth Schilflieder
+\nolig{Schlafl}{Schlaf|l}
+\nolig{schlafl}{schlaf|l}
+ % lots and lots of words...
+\nolig{Schleifl}{Schleif|l}
+\nolig{schleifl}{schleif|l}
+ % Schleiflack Schleiflade
+\nolig{Schrumpfl}{Schrumpf|l}
+\nolig{schrumpfl}{schrumpf|l}
+ % Schrumpflack
+
+\nolig{Schweifl}{Schweif|l}
+\nolig{schweifl}{schweif|l}
+ % Schweiflecken
+\nolig{Senfl}{Senf|l}
+ % Senfladen Senfliebhaber
+\nolig{Steifl}{Steif|l}
+\nolig{steifl}{steif|l}
+ % steiflippig
+\nolig{Strafl}{Straf|l}
+\nolig{strafl}{straf|l}
+ % lots and lots of words..
+\nolig{Strumpfl}{Strumpf|l}
+\nolig{strumpfl}{strumpf|l}
+ % Strumpfladen Strumpfloch
+\nolig{Sumpfl}{Sumpf|l}
+ % Sumpflabkraut -leiche -licht
+
+\nolig{Surfl}{Surf|l}
+\nolig{surfl}{surf|l}
+ % Surflizenz Surflegende
+ \keeplig{surfleck}% Lasurfleck
+ \keeplig{surflüg} % Klausurflügel
+ \keeplig{surflüss}% Glasurflüssigkeit
+\nolig{Tarifl}{Tarif|l}
+\nolig{tarifl}{tarif|l}
+ % lots and lots of words...
+\nolig{Tiefl}{Tief|l}
+\nolig{tiefl}{tief|l}
+ % Tieflager stieflich
+ \keeplig{tiefläche} % Garantieflächen
+ \keeplig{atieflaute}% Demokratieflaute
+ \keeplig{atieflut} % Bürokratieflut
+
+\nolig{Topfl}{Topf|l}
+\nolig{topfl}{topf|l}
+ % Topflappen Topflumpen
+ \keeplig{Topflagg} % Topflaggen
+ \keeplig{Topflitz} % Topflitzer
+ \keeplig{Topflor} % Topflor
+ \keeplig{rtopfli} % portopflichtig
+ \keeplig{topfläch} % Biotopfläche
+ \keeplig{topfleg} % Autopflege
+ \nolig{rtopfleg}{rtopf|leg}
+ % Schmortopflegen
+ \keeplig{topflop} % Megatopflop
+ \keeplig{topflug} % Nonstopflug
+ \keeplig{topflüg} % Nonstopflüge
+
+\nolig{Torfl}{Torf|l}
+\nolig{torfl}{torf|l}
+ % Torflieferant Torfloch
+ \keeplig{Torflagge}
+ \keeplig{Torflügel}
+ \keeplig{Torflut}
+ \keeplig{torfläche} % Rotorfläche
+ \keeplig{torflasch} % Applikatorflasche
+ \keeplig{torflieg} % Motorfliegen
+ \keeplig{torflimm} % Monitorflimmern
+ \keeplig{torflitz} % Motorflitzer
+ \keeplig{torfloss} % Stabilisatorflossen
+ \keeplig{torflott} % Exploratorflotte
+ \keeplig{torfluch} % Auswärtstorfluch
+ \keeplig{torflug} % Simulatorflug
+ \keeplig{torflüg} % Motorflüge
+ \keeplig{torflüss} % Indikatorflüssigkeit
+ \keeplig{torfluss}
+ \keeplig{torfluß} % Motorflußschiff
+
+
+\nolig{Tropfl}{Tropf|l}
+\nolig{tropfl}{tropf|l}
+ % Tropfleckagen
+ \keeplig{tropflug} % Elektropflug
+
+\nolig{Wurfl}{Wurf|l}
+\nolig{wurfl}{wurf|l}
+ % Wurfluke Abwurfluke Einwurfluke
+\nolig{Würfl}{Würf|l}
+\nolig{würfl}{würf|l}
+ % Würflung würfle
+
+\nolig{aflied}{af|lied}
+ % Schlaflied
+\nolig{aflos}{af|los}
+ % straflos schlaflos
+ \keeplig{aflosk} % Propagandafloskel
+ \keeplig{rafloss} % lyraflossig
+\nolig{aflück}{af|lück}
+ % Straflücke
+\nolig{ampfl[aäou]}{ampf|l}
+ % Dampflokomotive
+ % Kampflärm Kampfluftschiff
+ \keeplig{ampfläch} % Campfläche
+ \keeplig{ampflanz} % Balsampflanzungen
+ \keeplig{ampfleg} % Teampflege
+\nolig{arflad}{arf|lad}
+ % Zeichenbedarfladen
+\nolig{äufle}{äuf|le}
+ % Häuflein träufle
+
+\nolig{eufle}{euf|le}
+ % verteufle
+ \keeplig{eufleiß} % treufleißig
+ \keeplig{eufleiss} % treufleissig
+
+\nolig{flaberer}{f|laberer}
+ % Dumpflaberer
+\nolig{flabor}{f|labor}
+ % Edelsteinprüflabor
+\nolig{flage}{f|lage}
+ % Rohstofflager Straflager Auflage
+ \keeplig{siflage} % Persiflage
+ \keeplig{ouflage} % Camouflage
+\nolig{flagun}{f|lagun}
+ % Rifflagune
+\nolig{flähm}{f|lähm}
+ % Kehlkopflähmung
+\nolig{flaminat}{f|laminat}
+ % Rumpflaminat
+\nolig{flamp}{f|lamp}
+ % Kompaktleuchtstofflampe Notruflampe
+\nolig{fland}{f|land}
+ % Hofland Kauf- Sumpf- Tief-
+ % Straflandesgericht Dorflandwirtschaft
+ % Iffland Rifflandschaft
+ % Altelfland Delfland
+ \keeplig{flandern} % Ostflandern
+ \keeplig{flandrisch}
+\nolig{fländ}{f|länd}
+ % hofländlich Sumpfländer Tiefländer
+\nolig{fläng}{f|läng}
+ % Straflänge Rumpflänge Lauflänge
+\nolig{flapp}{f|lapp}
+ % Seiflappen Topflappen
+\nolig{flärm}{f|lärm}
+ % Auspufflärm
+\nolig{fflatter}{f|flatter}
+ % Vorhofflattern aufflattert
+\nolig{flauf}{f|lauf}
+ % schieflaufen Auflauf Brieflauf
+\nolig{fläuf}{f|läuf}
+ % schiefläuft Hofläufer Strafläufe
+ % Prüfläufe Aufläufe Tiefläufer
+\nolig{flaun}{f|laun}
+ % Kauflaune Wurflaune Kampflaune
+
+\nolig{fleb}{f|leb}
+ % Hofleben Kopfleben
+ % Druckkopflebensdauer
+ \keeplig{huffleb} % shuffleboard
+\nolig{flehn}{f|lehn}
+ % steiflehnig
+\nolig{flehr}{f|lehr}
+ % Dorflehrer Eislauflehrerin
+\nolig{fleiden}{f|leiden}
+ % Kropfleidende
+\nolig{flein}{f|lein}
+ % Laufleine Scherflein Wölflein
+ % Köpflein Zöpflein
+\nolig{fleist}{f|leist}
+ % Dampfleistung Knopfleiste
+ % Kopfleiste Auswurfleistung
+ % Griffleiste Stoffleiste
+ % Abstreifleiste
+\nolig{fleit}{f|leit}
+ % Dampfleitung Hofleitung Baufhofleiter
+ % Kaufleitung Notrufleitung aufleiten
+ % inbegriffleitend Kraftstoffleitung
+ \keeplig{Kaltefleiter} % a surname...
+\nolig{flektür}{f|lektür}
+ % Schenkelklopflektüre
+\nolig{fler}{f|ler}
+ % Freiberufler Löffler Büffler Schnüffler
+\nolig{fleut}{f|leut}
+ % Hofleute
+
+\nolig{flich}{f|lich}
+ % tariflich reiflich glimpflich ...
+ % (many words!)
+ %% Vorsicht aber mit Pflicht und pflicht,
+ %% sowie mit einflicht, verflicht, etc.:
+ \keeplig{flicht}
+ \nolig{öpflicht}{öpf|licht}
+ % kröpflicht (??)
+
+\nolig{flieb}{f|lieb}
+ % freiberufliebend riffliebend
+\nolig{flief}{f|lief}
+ % schieflief Hoflieferant
+\nolig{flig}{f|lig}
+ % schweflig würflig knifflig mufflig
+ % zweigipflig fünfzipflig
+\nolig{flila}{f|lila}
+ % tieflila stumpflila
+\nolig{flinde}{f|linde}
+ % Dorflinde Wolflinde Ziegelhoflinde
+ % krampflindernd
+\nolig{fling}{f|ling}
+ % Prüfling Fünfling Sträfling Täufling
+\nolig{flini}{f|lini}
+ % Wurflinie Straflinie Rumpflinie
+\nolig{flinse}{f|linse}
+ % Fünflinser Wegwerflinsen
+\nolig{flisch}{f|lisch}
+ % teuflisch Tüpflischeißer
+\nolig{flist}{f|list}
+ % Prüfliste Rufliste Kaufliste
+\nolig{fliter}{f|liter}
+ % Hofliteratur Fünflitermotor
+\nolig{flizenz}{f|lizenz}
+ % Radfahrprüflizenz
+
+\nolig{flobby}{f|lobby}
+ % Maulwurflobbyisten
+\nolig{flöch}{f|löch}
+ % Sturmwurflöcher Knopflöcher
+ % Sufflöcher Grifflöcher
+ \keeplig{flöchte}
+\nolig{flöff}{f|löff}
+ % Tieflöffelbagger auflöffeln
+ % Schöpflöffel
+\nolig{flohn}{f|lohn}
+ % Tariflohn Tieflohnland
+ \keeplig{flohnetz} % Wasserflohnetz
+\nolig{flöhn}{f|löhn}
+ % Tariflöhne
+\nolig{flok}{f|lok}
+ % Dampflokomotive
+\nolig{flord}{f|lord}
+ % Wolflord
+\nolig{flösch}{f|lösch}
+ % Hoflöschmaschine
+\nolig{flösu}{f|lösu}
+ % Schmierseiflösung
+
+\nolig{fluft}{f|luft}
+ % Auspuffluft
+\nolig{flung}{f|lung}
+ % Verzweiflungsakt Verteuflung Stafflung
+\nolig{flust}{f|lust}
+ % Kampflust Impflust kauflustig Rauflust
+
+\nolig{Gipfle}{Gipf|le}
+\nolig{gipfle}{gipf|le}
+ % gipfle
+
+\nolig{chopfl}{chopf|l}
+ % Schopflilie Schopflavendel
+
+\nolig{lflady}{lf|lady}
+ % Golflady
+\nolig{lflast}{lf|last}
+ % Wolflast
+
+\nolig{lflos}{lf|los}
+ % hilflos
+ \keeplig{lfloss}
+ % Walflosse Kiel- Paddel-
+ \keeplig{lflosk}
+ % Moralfloskel Sozial- Spiel-
+\nolig{lürfl}{lürf|l}
+ % Schlürflaut
+
+\nolig{nflehm}{nf|lehm}
+ % Hanflehm
+
+\nolig{oflad}{of|lad}
+ % Biohofladen
+\nolig{ofläd}{of|läd}
+ % Biohofläden
+\nolig{oflück}{of|lück}
+ % Vorhoflücke
+
+\nolig{opfla}{opf|la}
+ % Topflappen Kopflaus kopflastig
+ \keeplig{gopflaum} % Mangopflaumen
+ \keeplig{iopflast} % Biopflaster
+ \keeplig{nopflaster}% Kinopflaster
+ \keeplig{opflair} % Popflair
+ \keeplig{opflanz}
+ % Kakaopflanzen Indigopflanzen
+\nolig{öpfle}{öpf|le}
+ % köpfle tröpfle Knöpfle
+\nolig{orflad}{orf|lad}
+ % Dorfladen
+
+\nolig{pflaut}{pf|laut}
+ % Kehlkopflaut
+\nolig{pfleier}{pf|leier}
+ % Zupfleier
+\nolig{pflehm}{pf|lehm}
+ % Stampflehm
+\nolig{pfleis}{pf|leis}
+ % Knopfleise
+\nolig{pfleu}{pf|leu}
+ % Natriumdampfleuchten Kopfleuchte
+\nolig{pflid}{pf|lid}
+ % Schlupflid
+\nolig{pflied}{pf|lied}
+ % Kampflied
+\nolig{pfloch}{pf|loch}
+ % Knopfloch
+\nolig{pflos}{pf|los}
+ % kampflos kopflos
+ \keeplig{pfloss} % Pappflossen
+\nolig{pflös}{pf|lös}
+ % krampflösend Hüftkopflösung
+\nolig{pflup}{pf|lup}
+ % Kopflupe
+\nolig{pflux}{pf|lux}
+ % Hüftkopfluxation
+
+\nolig{rfläd}{rf|läd}
+ % Dorfläden Surfläden Schulbedarfläden
+\nolig{rflück}{rf|lück}
+ % Sturmwurflücken
+\nolig{rfluke}{rf|luke}
+ % Abwurfluke Einwurfluke
+
+\nolig{reifl}{reif|l}
+ % Greiflippe Stegreiflieder Streiflacher
+ \keeplig{Breifl}
+ \keeplig{breifl}
+ \keeplig{Dreifl}
+ \keeplig{dreifl}
+ \keeplig{Freifl}
+ \keeplig{freifl}
+ \keeplig{eiereifl} % Meiereiflügel
+ \keeplig{reifläch} % Freiflächen
+ \keeplig{reiflagg} % Reedereiflagge
+ \keeplig{reiflamm} % dreiflammig
+ \keeplig{reiflasch}% Milchbreiflaschen
+ \keeplig{reiflies} % Fleischereifliesen
+ \keeplig{reiflock} % Breiflocken
+ \keeplig{reifloh} % Büchereiflohmarkt
+ \keeplig{reiflöhe} % Gießereiflöhe
+ \keeplig{reiflott} % Fischereiflotte
+
+\nolig{Tafle}{Taf|le}
+\nolig{tafle}{taf|le}
+ % tafle
+ \keeplig{tafleck} % Zahnpastaflecken
+ \keeplig{taflege} % Regattaflegel
+
+\nolig{urflad}{urf|lad}
+ % Surfladen
+\nolig{urfloch}{urf|loch}
+ % Balleinwurfloch
+
+\nolig{wafle}{waf|le}
+ % schwafle
+\nolig{wefle}{wef|le}
+ % schwefle
+\nolig{weifle}{weif|le}
+ % bezweifle verzweifle
+ \keeplig{weifleck} % zweifleckig
+\nolig{werfl}{werf|l}
+ % Wegwerflied
+ \keeplig{chwerfl}
+ % Schwerflugzeug schwerfließend
+ \keeplig{werflitz} % Powerflitzer
+
+
+
+
+% 4. ffi -> f-fi
+% --------------
+
+\nolig{affind}{af|find}
+ % Straffindung
+ \keeplig{araffind} % Paraffinduft
+
+\nolig{ffibel}{f|fibel}
+ % Zwiebelknopffibeln
+\nolig{ffieb}{f|fieb}
+ % Sumpffieber Wahlkampffieber
+\nolig{ffigu}{f|figu}
+ % Streiffigur
+\nolig{ffilm}{f|film}
+ % Werwolffilm
+\nolig{ffilter}{f|filter}
+ % Tropffilter Topffilter
+\nolig{ffinal}{f|final}
+ % Hammerwurffinale
+\nolig{ffinte}{f|finte}
+ % Sprungwurffinte
+ \keeplig{raffinte} % Paraffintest
+\nolig{ffinanz}{f|finanz}
+ % Hoffinanz Kauffinanzierung
+\nolig{ffistel}{f|fistel}
+ % Kropffistel
+\nolig{ffixier}{f|fixier}
+ % Dampffixiergerät
+
+\nolig{hoffing}{hof|fing}
+ % Bischoffinger
+
+\nolig{iffind}{if|find}
+ % Tariffindung
+
+\nolig{lffing}{lf|fing}
+ % Zwölffingerdarm
+\nolig{lffisch}{lf|fisch}
+ % Wolffisch
+
+\nolig{nffing}{nf|fing}
+ % fünffingrig Fünffingergebirge
+
+\nolig{pffi}{pf|fi}
+ % Kopffilm Wahlkampffinanzierung
+ % Schlangenkopffisch Kampffisch
+
+\nolig{reiffing}{reif|fing}
+ % Greiffinger
+
+
+
+% 5. ffi -> ff-i
+% --------------
+
+\nolig{Stoffi}{Stoff|i}
+\nolig{stoffi}{stoff|i}
+ % Rohstoffindustrieller -importe
+ % Baustoffingenieur Kunststoffingenieur
+ % Kohlenstoffisotope
+ \keeplig{stoffiz}
+ % Geheimdienstoffiziere
+ \keeplig{stoffig}
+ % permit ffi ligature for ff-ig suffix
+
+\nolig{ffinnen}{ff|innen}
+ % Schiffinnenraum Schiffinnenausbau
+
+
+% 6. ffl -> ff-l
+% --------------
+
+\nolig{Griffl}{Griff|l}
+\nolig{griffl}{griff|l}
+ % Grifflängen -laschen -leiste
+ % grifflos angrifflustig
+\nolig{Offline}{Off|line}
+\nolig{offline}{off|line}
+ % offline, Offline
+\nolig{Pfiffl}{Pfiff|l}
+ % Pfifflaute
+\nolig{Scheffle}{Scheff|le}
+\nolig{scheffle}{scheff|le}
+ % Scheffler Geldscheffler
+\nolig{Schiffl}{Schiff|l}
+\nolig{schiffl}{schiff|l}
+ % Schifflache Schiffladung Schifflinie
+\nolig{Stoffl}{Stoff|l}
+\nolig{stoffl}{stoff|l}
+ % lots of words...
+\nolig{Treffl}{Treff|l}
+\nolig{treffl}{treff|l}
+ % Trefflokal
+
+\nolig{afflu}{aff|lu}
+ % Gafflust
+
+\nolig{fflamell}{ff|lamell}
+ % Rafflamellen
+\nolig{fflast}{ff|last}
+ % Rohstofflastigkeit Treibstofflaster
+\nolig{fflatsch}{ff|latsch}
+ % Rifflatschern
+\nolig{ffloch}{ff|loch}
+ % Suffloch Griffloch Sauerstoffloch
+\nolig{fflos}{ff|los}
+ % auspufflos
+
+\nolig{ifflo}{iff|lo}
+ % Schifflogbuch grifflos Griffloch
+
+\nolig{offlad}{off|lad}
+ % Sprengstoffladung
+\nolig{öffle}{öff|le}
+ % löffle
+\nolig{offlo}{off|lo}
+ % wirkstofflos Sauerstoffloch
+ % offload
+
+\nolig{pufflack}{puff|lack}
+ % Auspufflack
+
+\nolig{taffle}{taff|le}
+ % staffle
+
+\nolig{ufflad}{uff|lad}
+ % Suffladen
+\nolig{uffläd}{uff|läd}
+ % Suffläden
+\nolig{luffleck}{luff|leck}
+ % Bluffleck
+\nolig{üffle}{üff|le}
+ % schnüffle büffle trüffle
+\nolig{ufflon}{uff|lon}
+ % Mufflon
+
+
+
+% 7. ffl -> f-fl
+% --------------
+
+\nolig{Auffl}{Auf|fl}
+\nolig{auffl}{auf|fl}
+ % aufflackern aufflammen Aufflickung
+ % Auffliegen
+
+\nolig{eiffleck}{eif|fleck}
+ % Schleifflecklein
+
+\nolig{ffläch}{f|fläch}
+ % Lauffläche Kampfflächen
+ % Zwölfflächner zwölfflächig
+\nolig{fflech}{f|flech}
+ % aufflechten
+\nolig{ffleisch}{f|fleisch}
+ % Schaffleisch Kopffleisch
+\nolig{fflexib}{f|flexib}
+ % Tarifflexibilitat
+\nolig{fflies}{f|flies}
+ % Relieffliesen
+\nolig{fflimm}{f|flimm}
+ % Vorhofflimmern
+\nolig{ffluch}{f|fluch}
+ % Tarifflucht Werwolffluch
+\nolig{fflüch}{f|flüch}
+ % Tarifflüchtling
+\nolig{fflug}{f|flug}
+ % Tiefflug Kampfflugzeug Chefflugleiter
+\nolig{fflüg}{f|flüg}
+ % Streifflüge zwölfflügelig Tiefflüge
+\nolig{fflur}{f|flur}
+ % Klosterhofflur
+\nolig{ffluss}{f|flus}
+ % Prüffluss
+\nolig{fflüs}{f|flüs}
+ % Schleifflüsigkeit}
+\nolig{fflut}{f|flut}
+ % Brieffluten Rückrufflut Anrufflut
+
+\nolig{iefflieg}{ief|flieg}
+ % tieffliegend
+\nolig{iefflog}{ief|flog}
+ % tiefflog
+
+\nolig{lfflach}{lf|flach}
+ % Zwölfflach
+
+\nolig{pffl}{pf|fl}
+ % Sumpffläche Sturzkampfflieger
+ % Totenkopfflagge Impfflüssigkeit
+ \keeplig{Knoepffl} % Knoepffler
+
+\nolig{rfflad}{rf|flad}
+ % Torffladen
+\nolig{rfflasch}{rf|flasch}
+ % Wegwerfflasche
+
+\nolig{ufflot}{uff|lot}
+ % Sufflot
+
+\nolig{wurfl}{wurf|l}
+ % Freiwurflinie Maulwurflobbyist
+
+
+
+
+% 8. ft -> f-t
+% ------------
+
+\nolig{Auft[aähioöruüy]}{Auf|t}
+\nolig{auft[aähioöruüy]}{auf|t}
+ % (viele viele Fälle; aber: ft-Ligatur wird
+ % doch verwendet für "Auft.")
+
+\nolig{Brieft}{Brief|t}
+\nolig{brieft}{brief|t}
+ % Brieftasche Brieftaube
+\nolig{Cheft}{Chef|t}
+\nolig{cheft[a-z]}{chef|t}
+ % Cheftheoretiker Cheftrainer
+ \keeplig{omicheft[ceg]}
+\nolig{Dorft}{Dorf|t}
+\nolig{dorft}{dorf|t}
+ % Dorftrottel -tratsch -tümpel
+\nolig{Elfte}{Elf|te}
+\nolig{elfte}{elf|te}
+ % elfte elftens
+ \keeplig{elfterfolg} % elfterfolgreichste
+
+\nolig{Fünft[aäehlroöuy]}{Fünf|t}% Fünftagewoche ...
+\nolig{fünft[aehlroöuy]}{fünf|t} % fünftens...
+ \keeplig{fünfterfolg} % fünfterfolgreichste
+ \keeplig{Fünfterfolg}
+ \keeplig{fünfthässl} % fünfthässlichste
+ \keeplig{Fünfthässl}
+ \keeplig{fünfthellst} % fünfthellste
+ \keeplig{Fünfthellst}
+ \keeplig{fünfthöchst} % fünfthöchste
+ \keeplig{Fünfthöchst}
+ \keeplig{fünftlängst} % fünftlängste
+ \keeplig{Fünftlängst}
+ \keeplig{fünftleichtest} % fünftleichteste
+ \keeplig{Fünftleichtest}
+ \keeplig{fünftletzt} % fünftletzte
+ \keeplig{Fünftletzt}
+ \keeplig{fünftrang} % fünftrangig
+ \keeplig{Fünftrang}
+ \keeplig{fünftreichst}% fünftreichste
+ \keeplig{Fünftreichst}
+ \keeplig{Fünftlig} % Fünftligaspiel
+ \keeplig{Fünftoper} % Fünftoperation
+ \keeplig{Fünftrund} % Fünftrunden
+ \keeplig{Fünftäon}
+
+\nolig{Golft}{Golf|t}
+\nolig{golft[hiruüy]}{golf|t}
+ % Golfträume -turnier -typ -talent
+
+\nolig{Greift[eio]}{Greif|t}
+ % Greiftest -tentakeln -tier -tor
+\nolig{Hanft}{Hanf|t}
+ % Hanftaler Hanftau
+\nolig{Hoft[aäehioäruüy]}{Hof|t}
+\nolig{hoft[aähioöruü]}{hof|t}
+ % Hoftor Klosterhoftor
+
+\nolig{Laufte}{Lauf|te}
+ % Lauftermin Lauftest Lauftext
+\nolig{Prüft[aähioäruüy]}{Prüf|t}
+\nolig{prüft[aähioöruü]}{prüf|t}
+ % Prüftheorie
+\nolig{Ruft[aäehioäruüy]}{Ruf|t}
+ % Ruftaxi Rufterz Rufton Ruftöne
+
+\nolig{Schaftal}{Schaf|tal}
+\nolig{Schaftor}{Schaf|tor}
+\nolig{Schaftreib}{Schaf|treib}
+
+\nolig{Schlaft}{Schlaf|t}
+\nolig{schlaft[aähioäruüy]}{schlaf|t}
+ % Schlaftablette
+\nolig{Schilft[äehiruüy]}{Schilf|t}
+\nolig{schilft[hiruüy]}{schilf|t}
+ % Schilfteich Schlilftümpel
+\nolig{Senft[aäehioäruy]}{Senf|t}
+ % Senftube
+ \keeplig{Senftenberg}
+\nolig{Straft[aähioöruüy]}{Straf|t}
+\nolig{straft[aähioöruüy]}{straf|t}
+ % (viele Fälle)
+ \keeplig{straftheit} % Unbestraftheit
+\nolig{Sufft}{Suff|t}
+ % Sufftest Sufftext
+\nolig{Surft[ähiöüy]}{Surf|t}
+ % Surfthema Surftipp
+\nolig{Tarift}{Tarif|t}
+\nolig{tarift}{tarif|t}
+ % Tarifthemen Tariftabelle
+\nolig{Tieft}{Tief|t}
+ % Tieftänzer -träumen -tresor -tunnel
+\nolig{Torft}{Torf|t}
+\nolig{torft}{torf|t}
+ % Torftabletten Torftaucher Torftoilette
+\nolig{Wurft}{Wurf|t}
+\nolig{wurft}{wurf|t}
+ % Wurftalent Wurftaler
+
+\nolig{fft[aähioöruüy]}{ff|t}
+ % Stofftasche Sauerstofftank Stofftheorie
+ % Stofftier Stofftiger Stofftischtuch
+ % Auspufftopf Kunststofftonne
+ % Stofftradition Stofftrennung
+ % Kunststofftube Stoffturnschuhe
+ % Stofftäschchen Auspufftöpfe
+ % Kunststofftöpfe Kunststofftüten
+
+%% Words that start with a capital letter
+%% and end in f-test
+\nolig{Abstreiftest}{Abstreif|test}
+\nolig{Ankauftest}{Ankauf|test}
+\nolig{Hörprüftest}{Hörprüf|test}
+\nolig{Hüpftest}{Hüpf|test}
+\nolig{Impftest}{Impf|test}
+\nolig{Kauftest}{Kauf|test}
+\nolig{Klopftest}{Klopf|test}
+\nolig{Kneiftest}{Kneif|test}
+\nolig{Lichtschweiftest}{Lichtschweif|test}
+\nolig{Rückruftest}{Rückruf|test}
+\nolig{Schnupftest}{Schnupf|test}
+\nolig{Sumpftest}{Sumpf|test}
+\nolig{Tropftest}{Tropf|test}
+\nolig{Wettkampftest}{Wettkampf|test}
+\nolig{tofftest}{toff|test}
+ % Impfstofftest Treibstofftests
+
+
+
+\nolig{aftee}{af|tee}
+ % Schlaftee
+\nolig{auftee}{auf|tee}
+ % Kreislauftee
+\nolig{lauftest}{lauf|test}
+ % Kreislauftest
+
+\nolig{eiftie}{eif|tie}
+ % Greiftiefe Steiftier
+\nolig{eiftit}{eif|tit}
+ % Eingreiftitel
+\nolig{eiftr}{eif|tr}
+ % Eingreiftruppe Nadelstreifträger
+ % Greiftrupp -tier -training
+\nolig{elieft}{elief|t}
+ % Relieftäfelchen -tropfen -türme
+\nolig{enftei}{enf|tei}
+ % Senfteig
+
+\nolig{ftabell}{f|tabell}
+ % Ruftabelle
+\nolig{ftablett}{f|tablett}
+ % Schlaftabletten
+\nolig{ftafel}{f|tafel}
+ % Pfeiftafel
+\nolig{ftag}{f|tag}
+ % Tauftag Fünftagewoche
+\nolig{ftäg}{f|täg}
+ % fünftägig elfftägig zwölftägig
+\nolig{ftalsg}{f|talsg}
+ % schaftalsgrundig
+\nolig{ftanz}{f|tanz}
+ % Kampftanz Schilftanz
+ \keeplig{ftanzahl} % Heftanzahl
+ \keeplig{ftanzeig} % Luftanzeige
+ \keeplig{ftanzieh} % Schwerkraftanziehung
+ \keeplig{ftanzüg} % Haftanzüge
+\nolig{ftänz}{f|tänz}
+ % Tieftänzer
+\nolig{ftari}{f|tari}
+ % Anruftarif
+ \keeplig{ftaristokr} % Zunftaristokratie
+\nolig{ftarn}{f|tarn}
+ % Wegwerftarnungen
+\nolig{ftasse}{f|tasse}
+ % Schürftasse
+ \keeplig{ftassel} % Gruftasseln
+\nolig{ftatb}{f|tatb}
+ % Straftatbestände
+\nolig{ftaten}{f|taten}
+ % Kampftaten Straftaten
+\nolig{ftätig}{f|tätig}
+ % Schürftätigkeit
+\nolig{ftauch}{f|tauch}
+ % Beruftaucher Kreislauftauchgerät
+\nolig{ftaugl}{f|taugl}
+ % prüftauglich
+\nolig{ftaume}{f|taume}
+ % Nachruftaumel
+\nolig{ftax}{f|tax}
+ % Ruftaxi
+
+\nolig{fteam}{f|team}
+ % Jugendtreffteam Impfteam
+ \keeplig{fteamt} % Streitkräfteamt
+\nolig{ftechn}{f|techn}
+ % Stampftechnik schlaftechnisch
+ % Kraftstofftechnologie Pfeiftechnik
+\nolig{ftedd}{f|tedd}
+ % Schlafteddy
+\nolig{fteich}{f|teich}
+ % Schilfteich Dorfteich
+ \keeplig{nfteich} % Zunfteiche
+ \keeplig{ifteich} % Schrifteiche
+\nolig{fteigw}{f|teigw}
+ % Dampfteigwaren
+\nolig{fteil}{f|teil}
+ % fünfteilig Friedhofteil
+ % Raumschiffteil Riffteil Stoffteil
+\nolig{ftelef}{f|telef}
+\nolig{fteleph}{f|teleph} % old spelling...
+ % Wegwerftelefon Notruftelefonnummern
+\nolig{fteller}{f|teller}
+ % Schiefteller
+\nolig{ftempel}{f|tempel}
+ % Kauftempel
+\nolig{ftemper}{f|temper}
+ % Schlaftemperatur
+\nolig{ftempo}{f|tempo}
+ % Dauerlauftempo
+\nolig{ftendenz}{f|tendenz}
+ % Klassenkampftendenz
+\nolig{ftentak}{f|tentak}
+ % Greiftentakeln
+\nolig{fteppi}{f|teppi}
+ % Schaumstoffteppich Knüpfteppich
+\nolig{ftermin}{f|termin}
+ % Anpfifftermin Passagierschiffterminal
+ \keeplig{fterminder}
+ % Gesellschafterminderheiten
+\nolig{ftermit}{f|termit}
+ % Kampftermiten
+ \keeplig{ftermitt} % Rauschgiftermittler
+\nolig{fterrain}{f|terrain}
+ % Kampfterrain
+\nolig{fterrass}{f|terrass}
+ % Tuffterrassen
+\nolig{fterrin}{f|terrin}
+ % Kohlkopfterrine
+\nolig{fterror}{f|terror}
+ % Schadstoffterror
+\nolig{ftestat}{f|testat}
+ % Prüftestate
+ \keeplig{ftestation}
+ % Streitkräftestationierung
+ \keeplig{ftestatist}
+ % Lehrkräftestatistik
+\nolig{fteuf}{f|teuf}
+ % Dorfteufel Saufteufel
+\nolig{ftext}{f|text}
+ % Betrefftext Stofftextur Stegreiftexte
+ \keeplig{ftextrakt} % Duftextrakt
+
+\nolig{ftheat}{f|theat}
+ % Stegreiftheater
+\nolig{fthem}{f|them}
+ % Wolfthema
+ \keeplig{fthemm} % Wirtschafthemmnis
+\nolig{ftheor}{f|theor}
+ % -f-theorie -f-theorien
+\nolig{ftherap}{f|therap}
+ % Impftherapie Wurftherapie
+ % Schröpftherapeut
+\nolig{ftick}{f|tick}
+ % Rückruftickets Diskuswurfticket
+\nolig{ftief}{f|tief}
+ % tieftief (?)
+ \keeplig{ftiefigur} % Softiefigur
+\nolig{ftier}{f|tier}
+ % Wegwerftier Huftier
+ \keeplig{haftier} % inhaftieren
+ \keeplig{Muftier} % Muftierben
+\nolig{ftipp}{f|tipp}
+ % Surftipp
+\nolig{ftirad}{f|tirad}
+ % Schimpftirade
+\nolig{ftisch}{f|tisch}
+ % Schleiftisch
+ \keeplig{stiftisch} % hochstiftisch
+ \keeplig{ünftisch} % zünftisch
+
+\nolig{ftod}{f|tod}
+ % Hanftod
+ \keeplig{ftodem} % Giftodem
+\nolig{fton}{f|ton}
+ % Pfeifton Zwölftonmusik Rufton
+\nolig{ftön}{f|tön}
+ % Pfeiftöne Ruftöne
+\nolig{ftool}{f|tool}
+ % Prüftool
+\nolig{ftopf}{f|topf}
+ % Schleiftopf Dampf- Auspuff- Schöpf-
+ \keeplig{ftopfer}
+ % Duftopfer Gift- Haft-
+\nolig{ftöpf}{f|töpf}
+ % Senftöpfchen Torftöpfchen
+ % Kunststofftöpfe
+\nolig{ftorig}{f|torig}
+ % schaftorig fünftorig
+\nolig{ftour}{f|tour}
+ % Streiftour
+
+\nolig{ftrader}{f|trader}
+ % Cheftrader
+\nolig{ftradition}{f|tradition}
+ % Ruftraditionen
+\nolig{fträg}{f|träg}
+ % Notrufträger
+\nolig{ftrain}{f|train}
+ % Lauftrainer
+\nolig{ftränk}{f|tränk}
+ % Rückruftränke Schaftränke
+\nolig{ftransp}{f|transp}
+ % Hilftransport Schaftransport
+\nolig{fträume}{f|träume}
+ % tiefträumend Tiefschlafträume
+ \keeplig{afträume} % Einzelhafträumen
+ \keeplig{äfträume} % Geschäfträumen
+ \keeplig{rifträume}% Schrifträume
+ \keeplig{ufträume} % Lufträumen
+\nolig{ftrauri}{f|traurig}
+ % tieftraurig
+\nolig{ftreff}{f|treff}
+ % Notruftreffen
+\nolig{ftresor}{f|tresor}
+ % Tieftresor
+ \keeplig{ftresorp} % Luftresorption
+\nolig{ftret}{f|tret}
+ % Mieftreter
+ \keeplig{ftrett} % Luftrettungsdienst
+ \keeplig{ftreturn}% Softreturn
+\nolig{ftrick}{f|trick}
+ % Rückruftricks
+\nolig{ftrieb}{f|trieb}
+ % auftriebte schaftriebig
+\nolig{ftrief}{f|trief}
+ % tieftriefend
+\nolig{ftrift}{f|trift}
+ % schaftriftig Schaftrift
+\nolig{ftrimest}{f|trimest}
+ % fünftrimestrig zwölftrimestrig
+\nolig{ftritt}{f|tritt}
+ % Huftritte
+ \keeplig{ftritter} % Kernkraftritter
+ \keeplig{Luftritt}
+\nolig{ftrott}{f|trott}
+ % Sauftrottel
+
+\nolig{ftrüb}{f|trüb}
+ % tieftrübe
+\nolig{ftrunk}{f|trunk}
+ % schlaftrunken
+\nolig{ftrupp}{f|trupp}
+ % Prüftruppe
+
+\nolig{ftuch}{f|tuch}
+ % Schnieftuch Kopftuch
+\nolig{ftüch}{f|tüch}
+ % Schnieftücher
+\nolig{ftürk}{f|türk}
+ % tieftürkis
+\nolig{fturm}{f|turm}
+ % Wolfturm
+\nolig{ftürm}{f|türm}
+ % Wolftürme
+
+\nolig{ftyp}{f|typ}
+ % Schifftyp Stofftyp waldorftypisch
+\nolig{ftyr}{f|tyr}
+ % Dorftyrann Hoftyrann
+\nolig{ftwist}{f|twist}
+ % Kopftwister
+
+\nolig{graftum}{graf|tum}
+ % Burggraftum Markgraftum
+\nolig{graftüm}{graf|tüm}
+ % Markgraftümer
+
+\nolig{hoftest}{hof|test}
+ % Schlachthoftest
+
+\nolig{iefta}{ief|ta}
+ % Tieftaucher Brieftasche Brieftaube
+\nolig{iefto}{ief|to}
+ % Stieftochter Tiefton
+\nolig{ieftö}{ief|tö}
+ % Stieftöchter tieftönend
+\nolig{ieftra}{ief|tra}
+ % Tieftraumphase
+
+\nolig{lfta}{lf|ta}
+ % elftausend zwölftausend Golftasche
+\nolig{lfto}{lf|to}
+ % Zwölftonmusik Elftonner Golftour
+\nolig{lftö}{lf|tö}
+ % zwölftönend
+\nolig{lftum}{lf|tum}
+ % Werwolftum
+
+\nolig{nftü}{nf|tü}
+ % fünftürig Senftüte
+ \keeplig{nftüb}
+ % Vernunftüberlegung zunftüblich
+ \nolig{nftübchen}{nf|tübchen}
+ % Senftübchen
+
+\nolig{ölfte}{ölf|te}
+ % zwölfte zwölftens
+
+\nolig{pft[aähioöruüy]}{pf|t}
+ % Wettkampftag -trubel -tauglich -töne
+ % Kampftaktik -truppe -tätigkeit -tänzer
+ % Schnupftabak -tuch -tücher -tüchlein
+ % Schimpftiraden Mehrkampftitel
+ % Stapftiefe Zopfträger
+ % Dampftopf Sumpftour Herzklopftöne
+ % Kopftreffer -tuch -tücher
+ % Impftabelle -tarif -tierarzt -tod
+ \keeplig{pftheit}
+ % Gedämpftheit Umkämpftheit
+\nolig{pftee}{pf|tee}
+ % Schlumpftee (?!)
+\nolig{pfteig}{pf|teig}
+ % Sumpfteig Hefetropfteig
+\nolig{pftender}{pf|tender}
+ % Heißdampftenderlok
+
+%\nolig{rftrag}{rf|trag}
+ % Wegwerftragtasche Dorftragödie
+
+\nolig{rftr}{rf|tr}
+ % Wurftraining Surftrip Freiwurftreffer
+ \keeplig{tdurftrö} % Notdurftröhre
+ \keeplig{Werftr} % Werftreparatur
+ \keeplig{werftr}
+ \nolig{werftrage}{werf|trage}
+ % Wegwerftragetasche
+\nolig{rftu}{rf|tu}
+ % Wurftuch
+ \keeplig{Werftu}
+ \keeplig{werftu}
+ % Werftumfeld Werftunternehmen
+
+\nolig{uftas}{uf|tas}
+ % Ruftaste Vorlauftaste Kauftasche
+ \keeplig{Duftas} % Duftaspekte
+ \keeplig{duftas}
+ \keeplig{Gruftas} % Gruftassel
+ \keeplig{gruftas}
+ \keeplig{Luftas} % Luftasket
+ \keeplig{luftas}
+ \keeplig{uftassoz}
+ % Duftassoziationen Schuftassoziationen
+
+\nolig{urfta}{urf|ta}
+ % Wurftalent Auswurftaste Surftalent
+ \keeplig{tdurfta} % Notdurftanlage
+\nolig{urfto}{urf|to}
+ % Freiwurftor Surftour
+
+\nolig{ünftor}{ünf|tor}
+ % fünftorig Fünftore-Vorsprung
+
+
+
+% 9. fb -> f-b, fh -> f-h, fk -> f-k
+% ----------------------------------
+
+% Disable these ligatures globally.
+% I can't think of a single *German* word
+% for which these ligatures would not
+% cross a morpheme boundary.
+
+\nolig{fb}{f|b}
+\nolig{fh}{f|h}
+\nolig{fk}{f|k}
+ % However, there are names of *non-German*
+ % origin for which the 'fk' ligature
+ % shouldn't be suppressed:
+ \keeplig{Kafka}
+ \keeplig{kafka}
+ \keeplig{Piefke}
+ \keeplig{piefkei} % Ostpiefkei
+ \keeplig{Safka}
+ \keeplig{Potrafke}
+ \keeplig{Sprafke}
+ \keeplig{Shirafkan}
+ \keeplig{Tirafkan}
+ \keeplig{Selfkant}
+
+
+% 10. fj -> f-j
+% -------------
+
+% Suppress this ligature globally. Words
+% of German origin seem to feature 'fj'
+% only across morpheme boundaries.
+
+\nolig{fj}{f|j}
+ % aufjauchzen aufjaulen fünfjährig Kampfjet
+ % Strafjustizgebäude Dorfjugend Kopfjäger ...
+
+ % Once more, though, there are some words of
+ % *non-German* (e.g., Nordic and Slavic)
+ % origin for which the 'fj' ligature should
+ % not be suppressed. Use \keeplig macros to
+ % treat such cases.
+ \keeplig{fjord} % Norwegian
+ \keeplig{fjör} % Icelandic, e.g.,
+ % Isafjördur and Ísafjörður
+ \keeplig{Ísafjarðarbær} % city in Iceland
+ \keeplig{fjell} % Norwegian
+ \keeplig{fjall} % Swedish (?)
+ \keeplig{fjäll}
+ \keeplig{fjöll}
+
+ \keeplig{Prokofjew}
+ \keeplig{Sufjan} % Stevens
+ \keeplig{Eefje} % Dutch first name
+ \keeplig{Astafjew}
+ % Author (Wiktor) and soccer player (Maksim)
+
+
+% 11. fff -> ff-f
+% ---------------
+ % Just in case there's a font that
+ % features a triple-f ligature:
+
+\nolig{fff}{ff|f}
+ % grifffest Stofffarbe Schifffahrt
+
+ % This macro will also break up any 'fffl'
+ % ligatures into 'ff' and 'fl' parts.
+ % Examples: Sauerstoffflasche Stofffleck
+ % Schlifffläche Kunststoffflügel
diff --git a/Master/texmf-dist/tex/lualatex/selnolig/selnolig.lua b/Master/texmf-dist/tex/lualatex/selnolig/selnolig.lua
new file mode 100644
index 00000000000..0b48951cc7e
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/selnolig/selnolig.lua
@@ -0,0 +1,197 @@
+-- Lua code for the selnolig package, to be loaded
+-- with an instruction such as
+-- \directlua{ require("selnolig.lua") }
+-- from a (Lua)LaTeX .sty file.
+--
+-- Author: Mico Loretan (loretan dot mico at gmail dot com)
+-- (with crucial contributions by Taco Hoekwater,
+-- Patrick Gundlach, and Steffen Hildebrandt)
+--
+-- The entire selnolig package is placed under the terms
+-- of the LaTeX Project Public License, version 1.3 or
+-- later. (http://www.latex-project.org/lppl.txt).
+-- It has the status "maintained".
+
+selnolig = { }
+selnolig.module = {
+ name = "selnolig",
+ version = "0.216",
+ date = "2013/05/25",
+ description = "Selective suppression of typographic ligatures",
+ author = "Mico Loretan",
+ copyright = "Mico Loretan",
+ license = "LPPL 1.3 or later"
+}
+
+-- Define variables corresponding to various text nodes
+-- (cf. section 8.1.2 of LuaTeX reference guide)
+local hlist = node.id('hlist')
+local vlist = node.id('vlist')
+local rule = node.id('rule')
+local ins = node.id('ins')
+local mark = node.id('mark')
+local adjust = node.id('adjust')
+local disc = node.id('disc')
+local math = node.id('math')
+local glue = node.id("glue") --
+local kern = node.id('kern')
+local penalty = node.id('penalty')
+local glyph = node.id('glyph') --
+local margin_kern = node.id('margin_kern')
+
+-- see section 8.1.4 for whatsit nodes:
+local whatsit = node.id("whatsit") --
+
+local userdefined
+
+for n,v in pairs ( node.whatsits() ) do
+ if v == 'user_defined' then userdefined = n end
+end
+
+local identifier = 123456 -- any unique identifier
+local noliga={}
+local keepliga={} -- String -> Boolean
+debug=false
+
+function debug_info(s)
+ if debug then
+ texio.write_nl(s)
+ end
+end
+
+local blocknode = node.new(whatsit, userdefined)
+blocknode.type = 100
+blocknode.user_id = identifier
+
+local prefix_length = function(word, byte)
+ return unicode.utf8.len( string.sub(word,0,byte) )
+end
+
+ -- Problem: string.find and unicode.utf8.find return
+ -- the byte-position at which the pattern is found
+ -- instead of the character-position. Fix this by
+ -- providing a dedicated string search function.
+
+local unicode_find = function(s, pattern, position)
+ -- Start by correcting the incoming position
+ if position ~= nil then
+ -- debug_info("Position: "..position)
+ sub = string.sub(s, 1, position)
+ position=position+string.len(sub) - unicode.utf8.len(sub)
+ -- debug_info("Corrected position: "..position)
+ end
+ -- Now execute find and fix it accordingly
+ byte_pos = unicode.utf8.find(s, pattern, position)
+ if byte_pos ~= nil then
+ -- "convert" byte_pos to "unicode_pos"
+ return unicode.utf8.len( string.sub(s, 1, byte_pos) )
+ else
+ return nil
+ end
+end
+
+function process_ligatures(nodes,tail)
+ local s={}
+ local current_node=nodes
+ local build_liga_table = function(strlen,t)
+ local p={}
+ for i = 1, strlen do
+ p[i]=0
+ end
+ for k,v in pairs(t) do
+ -- debug_info("Match: "..v[3])
+ local c= unicode_find(noliga[v[3]],"|")
+ local correction=1
+ while c~=nil do
+ --debug_info("Position "..(v[1]+c))
+ p[v[1]+c-correction] = 1
+ c = unicode_find(noliga[v[3]],"|",c+1)
+ correction = correction+1
+ end
+ end
+ --debug_info("Liga table: "..table.concat(p, ""))
+ return p
+ end
+ local apply_ligatures=function(head,ligatures)
+ local i=1
+ local hh=head
+ local last=node.tail(head)
+ for curr in node.traverse_id(glyph,head) do
+ if ligatures[i]==1 then
+ debug_info("Inserting nolig whatsit before glyph: " ..unicode.utf8.char(curr.char))
+ node.insert_before(hh,curr, node.copy(blocknode))
+ hh=curr
+ end
+ last=curr
+ if i==#ligatures then
+ -- debug_info("Leave node list on position: "..i)
+ break
+ end
+ i=i+1
+ end
+ if(last~=nil) then
+ debug_info("Last char: "..unicode.utf8.char(last.char))
+ end
+ end
+ for t in node.traverse(nodes) do
+ if t.id==glyph then
+ s[#s+1]=unicode.utf8.char(t.char)
+ -- Prior to version 0.216, the next instruction was
+ -- coded simply as "elseif (t.id==glue) then"
+ elseif ( t.id==glue or t.id==rule or t.id==kern ) then
+ local f=string.gsub(table.concat(s,""),"[\\?!,\\.]+","")
+ local throwliga={}
+ for k,v in pairs (noliga) do
+ local count=1
+ local match = string.find(f,k)
+ while match do
+ count = match
+ keep = false
+ debug_k1 = ""
+ for k1,v1 in pairs (keepliga) do
+ if v1 and string.find(f,k1) and string.find(k1,k) then
+ debug_k1=k1
+ keep=true
+ break
+ end
+ end
+ if not keep then
+ debug_info("pattern match: "..f .." - "..k)
+ local n = match + string.len(k) - 1
+ table.insert(throwliga,{prefix_length(f,match),n,k})
+ else
+ debug_info("pattern match nolig and keeplig: "..f .." - "..k.." - "..debug_k1)
+ end
+ match= string.find(f,k,count+1)
+ end
+ end
+ if #throwliga==0 then
+ -- debug_info("No ligature suppression for: "..f)
+ else
+ debug_info("Do ligature suppression for: "..f)
+ local ligabreaks = build_liga_table(f:len(),throwliga)
+ apply_ligatures(current_node,ligabreaks)
+ end
+ s = {}
+ current_node = t
+ end
+ end
+end -- end of function process_ligatures(nodes,tail)
+
+function suppress_liga(s,t)
+ noliga[s] = t
+end
+
+function always_keep_liga(s)
+ keepliga[s] = true
+end
+
+function enableselnolig()
+ luatexbase.add_to_callback( "ligaturing",
+ process_ligatures, "Suppress ligatures selectively", 1 )
+end
+
+function disableselnolig()
+ luatexbase.remove_from_callback( "ligaturing",
+ "Suppress ligatures selectively" )
+end
diff --git a/Master/texmf-dist/tex/lualatex/selnolig/selnolig.sty b/Master/texmf-dist/tex/lualatex/selnolig/selnolig.sty
new file mode 100644
index 00000000000..7d56624a157
--- /dev/null
+++ b/Master/texmf-dist/tex/lualatex/selnolig/selnolig.sty
@@ -0,0 +1,251 @@
+% !TeX root = selnolig.tex
+% !TEX TS-program = lualatex
+
+% This entire package is placed under the terms of the
+% LaTeX Project Public License, version 1.3 or later
+% (http://www.latex-project.org/lppl.txt).
+% It has the status "maintained".
+%
+% Author: Mico Loretan (loretan dot mico at gmail dot com)
+
+
+% Part 1: Preliminaries
+% ---------------------
+
+\def\selnoligpackagename{selnolig}
+\def\selnoligpackageversion{0.216}
+\def\selnoligpackagedate{2013/05/25}
+
+% Announce who we are. Issue warning message if we're
+% not running under LuaLaTeX.
+
+\typeout{=== Package \selnoligpackagename,
+ Version \selnoligpackageversion,
+ Date \selnoligpackagedate ===}
+\ProvidesPackage{selnolig}[\selnoligpackagedate]
+
+\RequirePackage{ifluatex}
+
+\ifluatex
+ \RequirePackage{luatexbase,luacode,expl3}
+\else
+ \typeout{ ======================================= }
+ \typeout{ WARNING WARNING WARNING }
+ \typeout{ --------------------------------------- }
+ \typeout{ The ligature suppression macros of the }
+ \typeout{ selnolig package *require* LuaLaTeX. }
+ \typeout{ Because you're NOT running this package }
+ \typeout{ under LuaLaTeX, ligature suppression }
+ \typeout{ *can not* be performed. }
+ \typeout{=========================================}
+\fi
+
+
+% If the 'fontspec' package isn't loaded by the time
+% the '\begin{document}' directive is encoutered, issue
+% an error message and exit.
+
+\AtBeginDocument{%
+\ifluatex
+ \@ifpackageloaded{fontspec}{}{%
+ \PackageError{selnolig}{%
+ ========================================== \MessageBreak
+ Error Alert Error Alert \MessageBreak
+ ------------------------------------------ \MessageBreak
+ The selnolig package *requires* the \MessageBreak
+ 'fontspec' package, but it hasn't been \MessageBreak
+ loaded. Exiting now. \MessageBreak
+ ===========================================}
+ }
+\fi
+}
+
+% Set up some fundamental Boolean variables, their
+% default values, and define the user options.
+
+% The main language options are 'english' and 'german'.
+% We provide the option 'otherlang' option just in case
+% a user wants to provide ligature suppression patterns
+% for languages other than English and German.
+
+\newif\if@english\@englishfalse
+\newif\if@german\@germanfalse
+\newif\if@otherlang\@otherlangfalse
+
+\DeclareOption{english}{\@englishtrue}
+% synonymous options:
+ \DeclareOption{usenglish}{\@englishtrue}
+ \DeclareOption{ukenglish}{\@englishtrue}
+ \DeclareOption{USenglish}{\@englishtrue}
+ \DeclareOption{UKenglish}{\@englishtrue}
+ \DeclareOption{american}{\@englishtrue}
+ \DeclareOption{british}{\@englishtrue}
+ \DeclareOption{canadian}{\@englishtrue}
+ \DeclareOption{australian}{\@englishtrue}
+ \DeclareOption{newzealand}{\@englishtrue}
+
+\DeclareOption{ngerman}{\@germantrue}
+% synonymous options:
+ \DeclareOption{german}{\@germantrue}
+ \DeclareOption{austrian}{\@germantrue}
+ \DeclareOption{naustrian}{\@germantrue}
+ \DeclareOption{swiss}{\@germantrue}
+ \DeclareOption{swissgerman}{\@germantrue}
+
+\DeclareOption{otherlang}{\@otherlangtrue}
+% synonymous option:
+ \DeclareOption{otherlanguage}{\@otherlangtrue}
+
+
+% For English, the default is to load only a fairly basic
+% set of non-ligation rules pertaining to f-ligatures.
+% Among them are the "standard five" (ff, fi, fl, ffi,
+% and ffl) ligatures as well as the ft ligature.
+%
+% Two options to override this "basic" setting:
+% - broadf Many more non-ligation rules for f-ligatures,
+% incl. fb, fh, fj, and fk character pairs.
+% - hdlig Additional ligature suppression rules for
+% 'historic' and/or 'discretionary' ligatures,
+% e.g., ct, sp, st, sk, th, as, is, us, fr,
+% ll, et, at, and ta.
+
+\newif\if@broadfset\@broadfsetfalse
+\DeclareOption{broadf}{\@broadfsettrue}
+
+\newif\if@hdligset\@hdligsetfalse
+\DeclareOption{hdlig}{\@hdligsettrue}
+
+
+% The package also provides hyphenation exception
+% patterns for English and German language words.
+% Loading these patterns is enabled by default. This
+% can be disabled by providing the option
+% 'noadditionalhyphenationpatterns'.
+
+\newif\if@addlhyph\@addlhyphtrue
+\DeclareOption{noadditionalhyphenationpatterns}{\@addlhyphfalse}
+
+
+% The 'basic' option automatically sets the preceding Booleans
+% to 'false', even if historic and/or rare ligatures are enabled
+
+\DeclareOption{basic}{\@broadfsetfalse\@hdligsetfalse}
+
+
+% Last but not least, an option to set all Boolean
+% variables (other than '@addlhyph') to 'true'
+% simultaneously.
+
+\DeclareOption{all}{%
+ \@englishtrue \@broadfsettrue \@hdligsettrue
+ \@germantrue \@otherlangtrue}
+
+% Finally, process all options
+\ProcessOptions\relax
+
+
+
+% Part 2: Load the lua code and set up the user macros
+% ----------------------------------------------------
+
+\ifluatex
+ % Load the lua code contained in 'selnolig.lua'.
+ \directlua{ require("selnolig.lua") }
+
+ % Commands to switch selnolig's routines on and off
+ \newcommand\selnoligon{
+ \directlua{ enableselnolig() }
+ }
+ \newcommand\selnoligoff{
+ \directlua{ disableselnolig() }
+ }
+
+ % By default, selnolig's macros are switched on
+ \selnoligon
+
+ % Record operations of selnolig package to the log
+ % file: Enabled via '\debugon' command
+ \newcommand\debugon{%
+ \directlua{ debug=true }
+ }
+ \newcommand\debugoff{%
+ \directlua{ debug=false }
+ }
+
+
+ % The first main user macro is called '\nolig':
+ \newcommand\nolig[2]{
+ \directlua{
+ suppress_liga( "\luatexluaescapestring{#1}",
+ "\luatexluaescapestring{#2}" )
+ }
+ }
+
+ % A second user macro allows global overriding of
+ % rules set by \nolig instructions:
+ \newcommand\keeplig[1]{
+ \directlua{
+ always_keep_liga( "\luatexluaescapestring{#1}" )
+ }
+ }
+
+\else
+ % If *not* running under LuaLaTeX, provide dummy
+ % definitions for package's user macros.
+ \newcommand{\nolig}[2]{}
+ \newcommand{\keeplig}[1]{}
+ \let\selnoligon\relax
+ \let\selnoligoff\relax
+ \let\debugon\relax
+ \let\debugoff\relax
+\fi
+
+
+% A third user macro: '\breaklig'. This is hopefully
+% easier to remember than having to type "\-\hspace{0pt}".
+% (It's defined outside the \ifluatex conditional since
+% it doesn't use any lua code.)
+
+\newcommand\breaklig{\-{\hspace{0pt}}}
+
+
+
+% Part 3: What to do if the 'english' option is set
+% -------------------------------------------------
+
+\if@english
+ % load English-language ligature suppression rules
+ \ifluatex
+ \RequirePackage{selnolig-english-patterns}
+ \fi
+
+ % load additional hyphenation exception patterns
+ \if@addlhyph
+ \RequirePackage{selnolig-english-hyphex}
+ \fi
+\fi
+
+
+% Part 4: What to do if the 'ngerman' option is set
+% -------------------------------------------------
+
+\if@german
+ % load German-language ligature suppression rules
+ \ifluatex
+ \RequirePackage{selnolig-german-patterns}
+ \fi
+
+ % load additional hyphenation exception patterns
+ \if@addlhyph
+ \RequirePackage{selnolig-german-hyphex}
+ \fi
+\fi
+
+
+% Part 5: What to do if the 'otherlang' option is set
+% ---------------------------------------------------
+
+\if@otherlang
+ % currently nothing included
+\fi
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index dde57b66b18..0ea9fbfe4d2 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -401,7 +401,7 @@ my @TLP_working = qw(
scale scalebar scalerel schemabloc schemata schulschriften schwalbe-chess
sciposter screenplay scrjrnl
sdrt
- secdot section sectionbox sectsty selectp semantic semaphor
+ secdot section sectionbox sectsty selectp selnolig semantic semaphor
seminar semioneside sepfootnotes sepnum seqsplit
serbian-apostrophe serbian-date-lat serbian-def-cyr serbian-lig
setdeck setspace seuthesis
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index e52ebf9a4da..4f6928457ef 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -542,6 +542,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'latex2rtf', "die 'skipping, no configure or requests, etc.'",
'latex3', "die 'skipping, use xpackages'",
'latexdb', "die 'skipping, needs sql, etc.'",
+ 'latexindent', "die 'skipping, requires data file in bindir'",
'latexmp', "&MAKEflatten",
'layaureo', "&MAKEflatten",
'lato', "&MAKEcopy",
@@ -886,12 +887,13 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'sagetex', "die 'skipping, omitted at author request (25 Jan 2010 19:50:16)'",
'sansmathaccent', "&MAKEflatten",
'sansmathfonts', "&MAKEflatten",
- 'schedule', "die 'skipping, noinfo license, too old to matter'",
- 'schulschriften', "&MAKEflatten",
+ 'schedule', "die 'skipping, noinfo license, too old to matter'",
+ 'schulschriften', "&MAKEflatten",
'scientifixpaper', "die 'skipping, noinfo license'",
'sciwordconv', "die 'skipping, for old versions of scientific word'",
'script', "die 'skipping, noinfo license, too old to matter'",
'scripttex', "die 'skipping, nosell license'",
+ 'selnolig', "&MAKEflatten",
'seminar', "&MAKEseminar",
'serbianc', "die 'skipping, use babel-serbianc'",
'serbianpart', "die 'skipping, await request'",
@@ -1505,6 +1507,7 @@ $standardtex='\.(.bx|cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$';
'ruhyphen', '\.tex',
'sa-tikz', 'tikzlib.*tex|' . $standardtex,
'sansmath', '^..[^s].*\.sty', # not miscdoc.sty
+ 'selnolig', '\.lua|' . $standardtex,
'seminar', '\.bug|\.bg2|\.cls|\.sty|2up.tex',
'shade', 'shade\.tex', # not description.tex
'shadethm', '\.sth|' . $standardtex,
@@ -1978,6 +1981,7 @@ $standardsource='\.(bat|c|drv|dtx|fea|fdd|ins|sfd)$|configure.*|install-sh';
'poetrytex', 'Makefile|' . $standardsource,
'rcs', 'rcs.el|src|' . $standardsource,
'ruhyphen', '^[^.]*$|README.ru|hyphen.rules',
+ 'selnolig', 'NULL', # not .fea
'thailatex', 'NULL', # no gain in splitting up
'translation-array-fr', 'NULL', # doc
'translation-chemsym-de', 'NULL', # doc
diff --git a/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc b/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc
index 4b8612e1449..918fcf0a4c7 100644
--- a/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc
@@ -28,5 +28,6 @@ depend luatexko
depend luatextra
depend luaxml
depend odsfile
+depend selnolig
depend showhyphens
depend spelling
diff --git a/Master/tlpkg/tlpsrc/selnolig.tlpsrc b/Master/tlpkg/tlpsrc/selnolig.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/selnolig.tlpsrc