summaryrefslogtreecommitdiff
path: root/info/symbols/comprehensive/source/prune-idx-letters.toml
diff options
context:
space:
mode:
Diffstat (limited to 'info/symbols/comprehensive/source/prune-idx-letters.toml')
-rw-r--r--info/symbols/comprehensive/source/prune-idx-letters.toml742
1 files changed, 742 insertions, 0 deletions
diff --git a/info/symbols/comprehensive/source/prune-idx-letters.toml b/info/symbols/comprehensive/source/prune-idx-letters.toml
new file mode 100644
index 0000000000..e7367ff60f
--- /dev/null
+++ b/info/symbols/comprehensive/source/prune-idx-letters.toml
@@ -0,0 +1,742 @@
+##############################################
+# Categorize letters. #
+# Author: Scott Pakin <scott+clsl@pakin.org> #
+##############################################
+
+# --------------------------- Greek letters ----------------------------
+
+# This rule should appear early in this section.
+[[rewrite]]
+matches = "ddigamma"
+word = "digamma"
+continue = true
+
+# This rule should appear early in this section.
+[[rewrite]]
+regex = '^(.*)ohm(.*)$'
+word = '\1Omega\2'
+continue = true
+
+# This rule should appear early in this section.
+[[rewrite]]
+matches = "epsi"
+word = "epsilon"
+continue = true
+
+# Backward lowercase
+[[rewrite]]
+regex = '''
+^(?:up|text|ni|bb|baby)?(?:rev|back)\
+(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|\
+nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|\
+stigma|digamma|[ckq]oppa|sampi|heta)\
+(?:up)?$\
+'''
+item = ['\1', "lowercase backward"]
+
+# Variant lowercase
+[[rewrite]]
+regex = '''
+^(?:up|text|ni|bb|baby)?(?:var|varvar)\
+(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|\
+nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|\
+stigma|digamma|[ckq]oppa|sampi|heta)\
+(?:up)?$\
+'''
+item = ['\1', "lowercase variant"]
+
+[[rewrite]]
+matches = "Varsampi"
+item = ["sampi", "lowercase variant"]
+
+# ... Begin special cases ...
+
+[[rewrite]]
+matches = ["riota", "turnediota", "iota, upside-down"]
+item = ["iota", "lowercase, upside-down"]
+
+[[rewrite]]
+contains = "textinvomega"
+item = ["omega", "lowercase, upside-down"]
+
+[[rewrite]]
+matches = ["agemO", "mho", "textmho", "rotOmega"]
+item = ["omega", "uppercase, upside-down"]
+
+[[rewrite]]
+regex = 'closed?(?:ni)?(epsilon|omega)'
+item = ['\1', "lowercase closed"]
+
+[[rewrite]]
+matches = "first ordinal (omega)"
+item = ["omega", "lowercase"]
+
+[[rewrite]]
+regex = 'closed?revepsilon'
+item = ["epsilon", "lowercase reversed and closed"]
+
+[[rewrite]]
+contains = "hookepsilon"
+item = ["epsilon", "lowercase with hook"]
+
+[[rewrite]]
+contains = "hookrevepsilon"
+item = ["epsilon", "lowercase reversed with hook"]
+
+[[rewrite]]
+matches = "ipagamma"
+item = ["gamma", "lowercase IPA form"]
+
+[[rewrite]]
+contains = "tailgamma"
+item = ["gamma", "lowercase with tail"]
+
+[[rewrite]]
+matches = "textgrgamma"
+word = "gamma"
+continue = true
+
+[[rewrite]]
+matches = [
+ "barlambda",
+ "crossnilambda",
+ "lambdabar",
+ "lambdaslash",
+ "textcrlambda"
+]
+item = ["lambda", "lowercase with slash"]
+
+[[rewrite]]
+regex = '^text([Oo])mikron$'
+item = 'text\1micron'
+continue = true
+
+# Treat "increment" as uppercase delta.
+[[rewrite]]
+matches = "increment"
+item = ["delta", "uppercase"]
+
+# Index "micro" as an upright mu.
+[[rewrite]]
+matches = [
+ "micro",
+ "textmicro",
+ "textmugreek"
+]
+item = ["mu", "lowercase upright"]
+
+# ... End special cases ...
+
+# Uppercase
+[[rewrite]]
+regex = '''
+^(?:up|text|ni|bb|tc)?(?:baby)?\
+(Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|\
+Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|\
+Stigma|Digamma|[CKQ]oppa|Sampi|Heta)\
+(?:up)?$\
+'''
+item = ['\1', "uppercase"]
+lowercase_item = true
+
+# More uppercase
+[[rewrite]]
+regex = '''
+^(?:Up|textsc)\
+(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|\
+nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|\
+stigma|digamma|[ckq]oppa|sampi|heta)$\
+'''
+item = ['\1', "uppercase"]
+
+# Lowercase
+[[rewrite]]
+regex = '''
+^(?:up|text|ni|bb|tc)?(?:baby)?\
+(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|\
+nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|\
+stigma|digamma|[ckq]oppa|sampi|heta)\
+(?:up)?$\
+'''
+item = ['\1', "lowercase"]
+
+# -------------------------- assorted letters --------------------------
+
+# ... schwa ...
+
+[[rewrite]]
+matches = "textrhookschwa"
+item = ["schwa", "hooked"]
+
+[[rewrite]]
+contains = "schwa"
+not_render_contains = '\PHONFCtextschwa'
+item = "schwa"
+
+# This rule should precede the "rotated latters" rule.
+[[rewrite]]
+matches = "inve"
+item = "schwa"
+
+# ... variant letters ...
+
+# This rule should precede the following one.
+[[rewrite]]
+matches = "vari"
+item = ["i", "dotless"]
+
+[[rewrite]]
+render_matches = '\add@accent{127}{i}'
+item = ["i", "incorrectly accented"]
+word = 'incorrectly accented (\\add@accent{127}{i})'
+
+[[rewrite]]
+regex = '^var([A-Za-z])$'
+item = '\1'
+
+[[rewrite]]
+regex = '^(?:text)?script([A-Za-z])$'
+item = '\1'
+
+# ... barred letters ...
+
+[[rewrite]]
+regex = '^bar(?:sc)?([a-z])$'
+not_render_contains = '\faBars'
+item = ["barred letters", '\1']
+
+[[rewrite]]
+regex = '^([a-z])bar?$'
+item = ["barred letters", '\1']
+
+[[rewrite]]
+regex = '^text(?:cr|bar)([a-z])$'
+item = ["barred letters", '\1']
+
+[[rewrite]]
+matches = "planck"
+item = ["barred letters", "h"]
+
+[[rewrite]]
+regex = '^cross([a-z])$'
+item = ["barred letters", '\1']
+
+[[rewrite]]
+matches = "Zbar"
+item = ["barred letters", "Z"]
+
+[[rewrite]]
+matches = "dj"
+item = ["barred letters", "d"]
+
+[[rewrite]]
+matches = "DJ"
+item = ["barred letters", "D"]
+
+[[rewrite]]
+matches = "dlbari"
+item = ["barred letters", "i, dotless"]
+
+[[rewrite]]
+matches = ["textbardotlessj", "textObardotlessj"]
+item = ["barred letters", "j, dotless"]
+
+[[rewrite]]
+matches = "textdoublebaresh"
+item = ["barred letters", "esh, double"]
+
+# ... horned letters ...
+
+[[rewrite]]
+regex = '^([A-Z])HORN$'
+item = ["horned letters", '\1']
+
+[[rewrite]]
+regex = '^([a-z])horn$'
+not_matches = "thorn"
+item = ["horned letters", '\1']
+
+# ... hooked letters ...
+
+[[rewrite]]
+regex = '^hook([A-Za-z])$'
+item = ["hooked letters", '\1']
+
+[[rewrite]]
+regex = '^text(?:ht|lht|[lr]hook|frhook)([A-Za-z])(?:var)?$'
+item = ["hooked letters", '\1']
+
+[[rewrite]]
+regex = '^textlhtlong([A-Za-z])$'
+item = ["hooked letters", '\1, long']
+
+[[rewrite]]
+regex = '^texthtsc([A-Za-z])$'
+item = ["hooked letters", '\1, small caps']
+
+[[rewrite]]
+prefix = "texthtbardotlessj"
+item = ["hooked letters", "j, dotless, barred"]
+
+[[rewrite]]
+matches = "textrhookopeno"
+item = ["hooked letters", "o, open"]
+
+[[rewrite]]
+matches = "voicedh"
+item = ["hooked letters", "h"]
+
+# Let's count this as a hooked letter.
+[[rewrite]]
+matches = "textfrbarn"
+item = ["hooked letters", "n"]
+
+# I don't know why this is considered a schwa. It looks to me like a
+# hooked d.
+[[rewrite]]
+render_contains = '\PHONFCtextschwa'
+item = ["hooked letters", "d"]
+
+# ... tailed letters ...
+
+[[rewrite]]
+regex = '^(?:text[lr]|textcomma)?tail([a-z])$'
+item = ["tailed letters", '\1']
+
+[[rewrite]]
+regex = '^curly([a-z])$'
+item = ["tailed letters", '\1']
+
+[[rewrite]]
+regex = '^textct([a-z])(?:var)?$'
+item = ["tailed letters", '\1']
+
+[[rewrite]]
+matches = ["textctesh", "curlyesh"]
+item = ["tailed letters", "esh"]
+
+[[rewrite]]
+prefix = "textctstretchc"
+item = ["tailed letters", "c, stretched"]
+
+[[rewrite]]
+matches = "textctturnt"
+item = ["tailed letters", "t, inverted"]
+
+[[rewrite]]
+matches = "texthtrtaild"
+item = ["tailed letters", "d, with hook"]
+
+[[rewrite]]
+matches = "textrtailhth"
+item = ["tailed letters", "h, with hook"]
+
+[[rewrite]]
+matches = "roundz"
+item = ["z", "round"]
+
+# ... slashed letters ...
+
+[[rewrite]]
+regex = '^slash([a-z])$'
+item = ["slashed letters", '\1']
+
+[[rewrite]]
+render_contains = '(\O)'
+item = ["slashed letters", "O"]
+
+[[rewrite]]
+render_contains = '(\o)'
+item = ["slashed letters", "o"]
+
+# ... stroked letters ...
+
+[[rewrite]]
+matches = "hslash"
+item = ["stroked letters", "h"]
+
+[[rewrite]]
+render_contains = '+\L+'
+item = ["stroked letters", "L"]
+
+[[rewrite]]
+render_contains = '+\l+'
+item = ["stroked letters", "l"]
+
+# ... inverted letters ...
+
+[[rewrite]]
+matches = "textinvscripta"
+item = ["inverted letters", "a"]
+
+[[rewrite]]
+regex = '^(?:text)?invsc([A-Za-z])$'
+item = ["inverted letters", '\1, small caps']
+
+[[rewrite]]
+matches = "pwedge"
+item = ["inverted letters", "v"]
+
+# ... rotated letters ...
+
+[[rewrite]]
+regex = '^rot(?:var)?([a-z])$'
+item = ["rotated letters", '\1']
+
+[[rewrite]]
+regex = '^inv(?:script)?([A-Za-z])$'
+item = ["rotated letters", '\1']
+
+[[rewrite]]
+regex = '^textturn(?:var|script)?([a-z])$'
+item = ["rotated letters", '\1']
+
+[[rewrite]]
+regex = '^textturnsc([A-Za-z])$'
+item = ["rotated letters", '\1, small caps']
+
+[[rewrite]]
+matches = ["tailinvr", "textturnrrtail"]
+item = ["rotated letters", "r, with tail"]
+
+[[rewrite]]
+matches = "sansLturned"
+item = ["rotated letters", "L, sans serif"]
+
+[[rewrite]]
+matches = ["invlazys", "ac"]
+item = ["rotated letters", "s, inverted"]
+
+# ... reversed letters ...
+
+[[rewrite]]
+regex = '^(?:text)?rev([A-Za-z])$'
+item = ["reversed letters", '\1']
+
+[[rewrite]]
+regex = '^textrevsc([A-Za-z])$'
+item = ["reversed letters", '\1, small caps']
+
+[[rewrite]]
+matches = "sansLmirrored"
+item = ["reversed letters", "L, sans serif"]
+
+# ... long-legged letters ...
+
+[[rewrite]]
+regex = '^textlongleg([A-Za-z])$'
+item = ["long-legged letters", '\1']
+
+[[rewrite]]
+regex = '^text([A-Za-z])rleg$'
+item = ["long-legged letters", '\1']
+
+[[rewrite]]
+matches = "legr"
+item = ["long-legged letters", "r"]
+
+[[rewrite]]
+regex = '^textturnlongleg([A-Za-z])$'
+item = ["long-legged letters", '\1, rotated']
+
+[[rewrite]]
+regex = '^textturn([A-Za-z])rleg$'
+item = ["long-legged letters", '\1, rotated']
+
+[[rewrite]]
+matches = "legm"
+item = ["long-legged letters", "m, rotated"]
+
+[[rewrite]]
+matches = "invlegr"
+item = ["long-legged letters", "r, rotated"]
+
+# ... small-caps letters ...
+
+[[rewrite]]
+regex = '^(?:text)?sc([a-z])$'
+item = ["small caps letters", '\1']
+not_render_contains = '\textsf'
+
+# ... blackboard bold letters ...
+
+[[rewrite]]
+compare_lowercase = true
+matches = "complex"
+item = ["blackboard bold letters", "C"]
+
+[[rewrite]]
+matches = ["Natural", "NATURAL"]
+item = ["blackboard bold letters", "N"]
+
+[[rewrite]]
+matches = "Bbbk"
+item = ["blackboard bold letters", "k"]
+
+[[rewrite]]
+compare_lowercase = true
+matches = "rational"
+item = ["blackboard bold letters", "Q"]
+
+[[rewrite]]
+compare_lowercase = true
+matches = "real"
+item = ["blackboard bold letters", "R"]
+
+[[rewrite]]
+compare_lowercase = true
+matches = "integer"
+item = ["blackboard bold letters", "Z"]
+
+[[rewrite]]
+regex = '^sym([AOU])E$'
+item = ["blackboard bold letters", '\1, umlaut']
+
+[[rewrite]]
+matches = "symC"
+item = ["blackboard bold letters", "C"]
+
+# ... Hebrew letters ...
+
+[[rewrite]]
+matches = [
+ "aleph",
+ "beth",
+ "gimel",
+ "daleth"
+]
+item = '\1'
+
+# ... boko (Hausa) letters ...
+
+[[rewrite]]
+regex = '^hausa([A-Za-z])$'
+item = ["boko letters", '\1']
+
+# ... yogh ...
+
+[[rewrite]]
+matches = ["yogh", "textyogh"]
+item = "yogh"
+
+[[rewrite]]
+matches = "textbenttailyogh"
+item = ["yogh", "with bent tail"]
+
+[[rewrite]]
+matches = ["curlyyogh", "textctyogh"]
+item = ["yogh", "with curly tail"]
+
+[[rewrite]]
+matches = "textrevyogh"
+item = ["yogh", "reversed"]
+
+# ... thorn ...
+
+[[rewrite]]
+prefix = ["thorn", "textthorn"]
+item = ["thorn", "lowercase"]
+
+[[rewrite]]
+matches = "th"
+item = ["thorn", "lowercase"]
+
+[[rewrite]]
+matches = ["Thorn", "TH"]
+item = ["thorn", "uppercase"]
+
+# ... ligatures ...
+
+[[rewrite]]
+matches = "textheng"
+item = ["ligatures", "h-engma"]
+
+[[rewrite]]
+matches = ["tesh", "textteshlig"]
+item = ["ligatures", "t-esh"]
+
+[[rewrite]]
+regex = '^textO?([A-Za-z])yoghlig$'
+item = ["ligatures", '\1-yogh']
+
+[[rewrite]]
+matches = "texththeng"
+item = ["ligatures", "h-engma, hooked"]
+
+[[rewrite]]
+matches = "lz"
+item = ["ligatures", "l-z"]
+
+[[rewrite]]
+matches = "ae"
+item = ["ligatures", "a-e"]
+
+[[rewrite]]
+matches = "AE"
+item = ["ligatures", "A-E"]
+
+[[rewrite]]
+matches = "oe"
+item = ["ligatures", "o-e"]
+
+[[rewrite]]
+matches = "OE"
+item = ["ligatures", "O-E"]
+
+[[rewrite]]
+matches = "oo"
+item = ["ligatures", "o-o"]
+
+[[rewrite]]
+matches = "dz"
+item = ["ligatures", "d-z"]
+
+[[rewrite]]
+matches = "fj"
+item = ["ligatures", "f-j"]
+
+[[rewrite]]
+matches = "ij"
+item = ["ligatures", "i-j"]
+
+[[rewrite]]
+matches = "IJ"
+item = ["ligatures", "I-J"]
+
+[[rewrite]]
+matches = "hv"
+item = ["ligatures", "h-v"]
+
+# Is this supposed to be an l-r ligature?
+[[rewrite]]
+matches = "textlfishhookrlig"
+item = ["ligatures", "l-r"]
+
+[[rewrite]]
+matches = "textturncelig"
+item = ["ligatures", "c-e, with c rotated"]
+
+[[rewrite]]
+matches = ["textdctzlig", "textctdctzlig"]
+item = ["ligatures", "d-z, with tail"]
+
+[[rewrite]]
+matches = "texttctclig"
+item = ["ligatures", "t-c, with tail"]
+
+[[rewrite]]
+matches = "textcttctclig"
+item = ["ligatures", "t-c, both tailed"]
+
+[[rewrite]]
+matches = "hookheng"
+item = ["ligatures", "h-engma, hooked"]
+
+[[rewrite]]
+regex = '^textsc([A-Za-z])([A-Za-z])lig$'
+item = ["ligatures", '\1-\2, small caps']
+
+[[rewrite]]
+regex = '^text([A-Za-z])([A-Za-z])lig$'
+item = ["ligatures", '\1-\2']
+
+# ... Swedish Viby i and y ...
+
+[[rewrite]]
+regex = '^text(?:raise)?viby([iy])$'
+item = ['\1', "Lidingo/Viby"]
+word = 'Liding{\\"o}/Viby'
+
+# ... other letters ...
+
+[[rewrite]]
+matches = ["eng", "engma", "ng"]
+item = ["engma", "lowercase"]
+
+[[rewrite]]
+render_contains = '{\NG}'
+item = ["engma", "uppercase"]
+
+[[rewrite]]
+matches = "nj"
+item = "enya"
+
+[[rewrite]]
+matches = "labdentalnas"
+item = "emgma"
+
+[[rewrite]]
+matches = "ell"
+item = "l"
+
+[[rewrite]]
+matches = ["longs", "long s"]
+item = ["s", "long"]
+
+[[rewrite]]
+matches = ["eth", "dh"]
+item = ["eth", "lowercase"]
+
+[[rewrite]]
+matches = "DH"
+item = ["eth", "uppercase"]
+
+[[rewrite]]
+matches = "ss"
+item = ["sharp s", "lowercase"]
+
+[[rewrite]]
+matches = "SS"
+item = ["sharp s", "uppercase"]
+
+[[rewrite]]
+matches = "textg"
+item = "g"
+
+[[rewrite]]
+matches = "lito"
+item = "o"
+
+[[rewrite]]
+regex = '^text(hard|soft)sign$'
+item = '\1 sign'
+
+[[rewrite]]
+matches = "textwynn"
+item = "wynn"
+
+[[rewrite]]
+matches = "textesh"
+item = "esh"
+
+[[rewrite]]
+prefix = "textstretchc"
+item = ["c", "stretched"]
+
+[[rewrite]]
+matches = ["openo", "textopeno", "varopeno"]
+item = ["o", "open"]
+
+[[rewrite]]
+matches = "udesc"
+item = ["u", "descending"]
+
+[[rewrite]]
+matches = ["textbeltl", "latfric"]
+item = ["l", "with belt"]
+
+[[rewrite]]
+matches = ["textltilde", "tildel"]
+item = ["l", "with tilde"]
+
+[[rewrite]]
+matches = "textfishhookr"
+item = ["r", "fishhook"]
+
+[[rewrite]]
+matches = "textlooptoprevesh"
+item = ["esh", "reversed with loop"]
+
+[[rewrite]]
+matches = "vod"
+item = ["v", "ring under"]