#################################################################
# Specify index entries to delete, generally due to redundancy. #
# Author: Scott Pakin <scott+clsl@pakin.org>                    #
#################################################################

[[delete]]
# Example: "1f468-1f3fb-200d-1f384"
regex = '^[-0-9a-f]{4,}$'
not_matches = ["babe", "deaf", "face"]

[[delete]]
# Example: "\usym{1F4D0}", which already is indexed by description.
prefix = ["usym{", "usymH", "usymW"]

[[delete]]
# Example: "\twemoji", which is covered on the same pages by "twemojis
# (package")".
matches = ["twemoji", "usym"]

[[delete]]
# Example: "twemoji{sun behind large cloud}"
regex = '^[A-Za-z]+\{[^\}]+\}$'
not_prefix = [
    "worldflag{",
    "usym{",
    "MoonPha{",
]
not_contains = [
    "square button",
    "{pi}"
]

[[delete]]
# Example: "\aiStackOverflow", which already is indexed under "StackOverflow"
regex = '^ai([A-Z]|iNaturalist|arXiv|bioRxiv|dblp)'

[[delete]]
# Example: "\fcDinosaurB", which already is indexed under "dinosaur"
regex = '^fc([A-Z]|hamburger|pink|sheet)'

[[delete]]
# Example: "\tiSocialGithub", which already is indexed under "GitHub"
regex = '^ti(Social|Vendor|Dropbox)'

[[delete]]
# Example: "\jBV"
regex = '^j[A-Z][A-Z]$'

[[delete]]
# Example: "\B" (but we preserve "\L" and "\O")
render_regex = 'verb\+\\[A-KMNP-Z]\+'

[[delete]]
# Example: "\Fanquantnn", which is subsumed by "Frege logic symbols"
regex = '^F[an]*(content|quant)'

[[delete]]
# Example 1: "\Pisymbol{nkarta}{38}"
# Example 2: "{\pigpenfont A}"
prefix = ["Pisymbol{", "pigpenfont"]
not_render_contains = '\Pisymbol{nkarta}{119}'  # hammer and sickle

[[delete]]
# Example 1: "\asapFemaleAtDrinkingFountain", which already is indexed
# under "female at drinking fountain"
# Example 2: "\mfMobilePhoneBroadcast", which already is indexed under
# "mobile phone"
# Example 3: "\tiPointOfInterestOutline", which is indexed already under
# "point of interest"
# Example 4: "\faBriefcase", which is indexed already under "briefcase"
# Example 5: "\staveXLVIII"
# Example 6: "lilyTimeSignature", which is subsumed by "musical symbols"
regex = '^(asap|mf|ti|fa|stave|lily)[A-Z]'
not_contains = [  # The following index entries will be rewritten later.
    "agon",
    "Angry",
    "Arrow",
    "Bomb",
    "Calendar",
    "Check",
    "Chess",
    "CircleArrow",
    "Copyright",
    "CreativeCommons",
    "Diamond",
    "Dizzy",
    "DownLong",
    "Equal",
    "Fast",
    "faUser",
    "Fist",
    "Frown",
    "Gauge",
    "Globe",
    "GraduationCap",
    "Greater",
    "Grin",
    "Hand",
    "Hat",
    "Hourglass",
    "Keyboard",
    "Kiss",
    "Laugh",
    "Leaf",
    "Less",
    "Media",
    "Meh",
    "Minus",
    "Peace",
    "Question",
    "Quote",
    "Sad",
    "Suitcase",
    "Stop",
    "Thumbs",
    "TimeC",
    "Times",
    "Trademark",
    "Tree",
    "UpLong",
    "Water"
]
not_prefix = ["tiPen", "faPen", "faHighlight", "faMarker", "faCircle"]

[[delete]]
# Example: "\adfflourishleftdouble", which already is indexed under
# "flourishes"
prefix = "adf"
not_contains = "leaf"

[[delete]]
# Example: "\APLboxupcaret", which is subsumed by "APL symbols"
prefix = "APL"
not_matches = ["APL", "APLcirc", "APLnot", "APLvert"]

[[delete]]
# Example: "\bcvaletcoeur", which is indexed already under "jack of
# hearts"
prefix = "bc"
not_matches = "bcontraction"

[[delete]]
# Example: "\hamrepeatfromstartseveral", which is subsumed by "Hamburg
# Notation System"
prefix = "ham"
render_contains = "verb"

[[delete]]
# Example: "\LBlackVerySmallLozenge", which already is indexed under
# "circles"
compare_lowercase = true
regex = '^(blk|wht|black|white|lblack|lwhite|dotted|filled)'
contains = ["lozenge", "pointer"]

[[delete]]
# Example: "blitzd", whch already is indexed under both "lightning"
# and "contradiction symbols"
prefix = "blitz"

[[delete]]
# Example: "alla breve...see musical symbols", as this is rendered when
# possible.
consider_all_entries = true
format_contains = "musical symbols"

[[delete]]
# Example 1: "\faListCheck", which already is indexed under both
# "checklist" and "tasks".
# Example 2: "\faCloudShowersWater", which is covered by "weather
# symbols".
matches = [
    "faCloudShowersWater",
    "faHouseFloodWater",
    "faListCheck",
    "faPlusMinus"
]

[[delete]]
# Example: "\faBridgeWater", which already is indexed under "bridge".
prefix = [
    "faBottleWater",
    "faBridge",
    "faCartFlatbedSuitcase",
    "faClipboardCheck",
    "faDiamondTurnRight",
    "faEnvelope",
    "faFileCircle",
    "faFolder",
    "faGlass",
    "faHandcuffs",
    "faHeartCircle",
    "faMagnifyingGlassMinus",
    "faPersonCircle",
    "faPlugCircleMinus",
    "faSquareMinus",
    "faTreeCity",
    "faTruckFast",
    "faWaterLadder"
]

[[delete]]
# Example 1: "dangerous bend symbols", which is redundant with
# individual "dangerous bend" entries
# Example 2: "fltns", which already is indexed under "polygons"
# Example 3: "bombs", which is redundant with individual "bomb" entries.
matches = ["dangerous bend symbols", "fltns", "bombs"]

[[delete]]
# Example: "\fgeleftB", which already is indexed under "Frege logic
# symbols"
prefix = "fge"
not_matches = ["fgerightarrow", "fgeleftarrow"]

[[delete]]
# Example: "\hat[cowboy]", which already is indexed under "cowboy hat"
contains = "hat["

[[delete]]
# Example: "\arnfamily"
regex = 'ar.family'

[[delete]]
# Example: "\partialvartlcirclerightint", which is used only to construct
# other symbols.
regex = '^partial.*int$'

[[delete]]
# Example: "\actuarial" and "\angl", which are subsumed by "actuarial symbols"
matches = ["actuarial", "angl", "angln", "anglr"]

[[delete]]
# Example: "smartctrbull=\textsf{smartctrbull} (\pkgname [index!=false]{bullcntr} package option)"
render_contains = "package option)"

[[delete]]
# Example: "\renderCLOCK{3}{f}", because it's unlikely anyone will care to
# use a clock without a frame.
render_regex = '\\renderCLOCK\{\d\}\{f\}'

[[delete]]
# Example: "\Arrowvert", because such symbols are arrow bodies without
# a head or tail.
compare_lowercase = true
matches = "arrowvert"

[[delete]]
# Example: "\bbslash", which is subsumed by "blackboard bold"
prefix = ["bb", "Bb"]
not_contains = [
    "package",
    "Bbbk",
    "bbdollar",
    "bbeuro"
]

[[delete]]
# Example: "\ClsBrknBracBar", which is subsumed by "delimiters"
prefix = "Cls"

[[delete]]
# Example: "\diceiv", which is subsumed by "dice"
regex = '^dice[iv]+$'

[[delete]]
# Example: "dot (__ or __)", which is subsumed by "accents>dot" and
# "accents>dot below".
matches = "dot"
render_contains = " or "

[[delete]]
# Example: "\rightevaw", which is a faked right symbol subsumed by
# "delimiters".
matches = ["rightevaw", "rightwave"]

[[delete]]
# Example: "\PAUSe", which is subsumed by "musical symbols".
render_contains = ['\MSXPAUSe', '\MSXPAuse', '\MSXpause']

[[delete]]
# Example: "stars>Jewish" and "stars>with crescent", which will be
# rewritten later.
top_matches = "stars"
matches = ["Jewish", "with crescent"]

[[delete]]
# Example "\Circle (O vs. o)", which is unnecessary to index.
render_contains = '\Circle+ (\trysym{'

[[delete]]
# Example: "see...does not exist", which will be replaced by actual symbols.
consider_all_entries = true
matches = ["does not divide", "does not exist"]

[[delete]]
# Example: "null set", which will be replaced with a reference to "empty set".
consider_all_entries = true
matches = "null set"

[[delete]]
# Example: "\dotsb", which already is indexed under both "ellipses
# (dots)" and "dots (ellipses)".
regex = '^dots[bcimo]?$'

[[delete]]
# Example: "ellipsis", which already is indexed under both "ellipses
# (dots)" and "dots (ellipses)".
matches = "ellipsis"
not_render_contains = '\lucideicon'

[[delete]]
# Example: "CeltCross", which is redundant with "Celtic cross".
# Example: "menorahs", which is redundant with "menorah".
matches = ["CeltCross", "menorahs"]

[[delete]]
# Example: "keys, computer", which will be replaced by "see...keyboard symbols".
matches = ["keys, computer", "computer keys"]

[[delete]]
# Example: "clubs", which will be replaced with "club...see playing
# cards, club".
matches = ["clubs", "spades"]

[[delete]]
# Example: "hands", which will contain the glyphs.  "fists", "printer's
# fists", "manicules", and "pointing finger" will all point to "hand".
consider_all_entries = true
matches = ["hands", "pointing finger", "printer's fist"]

[[delete]]
# Example: "\textara" and other commands for which which readers are
# unlikely to search.
prefix = "text"
render_contains = 'verb+\text'
not_render_contains = "("

[[delete]]
# Example: "\mathbold" and other commands for which which readers are
# unlikely to search.
prefix = "math"
render_contains = 'verb+\math'
not_render_contains = "("

[[delete]]
# Example: "\DeclareFontFamily" and other commands for which which readers
# are unlikely to search.
compare_lowercase = true
prefix = "declare"
not_contains = "declaremathoperator"

[[delete]]
# Example: "\xleftwitchonbroom*", for which readers are unlikely to search.
regex = '^x(left|right).*(bat|broom|ghost|witch)'

[[delete]]
# Example: "tacks", which will be replaced with actual symbols.
matches = "tacks"

[[delete]]
# Example: "\Relbar", which is used only to construct extensible symbols.
compare_lowercase = true
matches = "relbar"

[[delete]]
# Example: "\resmes", which already is indexed under "restriction of a
# measure".
matches = "resmes"

[[delete]]
# Example: "\downparenthfill", which is unlikely to be a search term.
render_regex = '^\\(sp)?verb\+\\[A-Za-z]+fill\+$'

[[delete]]
# Example: "lightbulb10.2602gf (file)", which is unlikely to be a search term.
prefix = "lightbulb10"

[[delete]]
# Example: "\countriesofeuropefamily", which is unlikely to be a search term.
regex = 'family$'

[[delete]]
# Example: "\m", which is unlikely to be a search term.
render_contains = '+\m+'

[[delete]]
# Example: "transforms", which will be replaced with actual symbols".
consider_all_entries = true
matches = "transforms"

[[delete]]
# Example: "\BGconditional", which already is covered by
# "Begriffsschrift symbols".
prefix = "BG"

[[delete]]
# Example: "\RRelbar", which is unlikely to be a search term.
compare_lowercase = true
contains = "relbar"

[[delete]]
# Example: "space>visible", which will be replaced with actual symbols.
consider_all_entries = true
top_matches = "space"
matches = "visible"

[[delete]]
# Example: "playing card four of diamonds"
regex = '^playing card (ace|two|three|four|five|six|seven|eight|nine|ten|jack|queen|king|.*joker|knight|trump|fool|back)'

[[delete]]
# Example: "playing cards>backs"
top_matches = "playing cards"
matches = ["backs", "fool", "trump"]

[[delete]]
# Example: "\leftdbltail", which is used primarily to construct other
# symbols.
regex = '^(left|right)(dbl)?tail$'

[[delete]]
# Example: "\cos", which is an atomic math object, not a symbol.
matches = [
    "atan",
    "cos",
    "lcm",
    "lim",
    "liminf",
    "limsup",
    "log",
    "min",
    "varinjlim",
    "varprojlim"
]

[[delete]]
# Example: "\longrightPP".  I have no idea what this symbol represents
# or how to refer to it in the index.
regex = '^(long)?(left|right)PP$'

[[delete]]
# Example: "\textknit{=}", which is unlikely to be a search term.
prefix = "textknit"

[[delete]]
# Example 1: "\,", which already is indexed under "space, thin".
# Example 2: "\-", which already is indexed under "hyphen, discretionary".
# Example 3: "\\", which does not render a symbol.
render_contains = ['+\,+', '+\-+', '+\\+']

[[delete]]
# Example: "operators, logical...see logical operators", which is a
# dangling link.
consider_all_entries = true
top_matches = "operators"
matches = ["logical", "unary"]

[[delete]]
# Example: "mahjong tile white dragon"
render_regex = '1F0[01]'

[[delete]]
# Example: "mahjong tile autumn"
render_regex = '1F02[0-9AB]'

[[delete]]
# Example: "mahjong red dragon"
matches = "mahjong red dragon"

[[delete]]
# Example: "flower playing cards"
contains = "flower playing cards"

[[delete]]
# Example: "boxed dashed bottom code"
prefix = "boxed dashed"
not_render_regex = '\\lucideicon\{square-dashed(|-bottom|-top-solid)\}'

[[delete]]
# Example: \logogeogebra
regex = '^logo(ctan|emacs|geo|scratch)'

[[delete]]
# Example: \logomiktek
regex = '^logo.*tex'

[[delete]]
# Example: \OGailm
regex = '^OG[a-z]+$'

[[delete]]
# Example: \celtictrefoilknotopen
prefix = "celtictrefoilknot"

[[delete]]
# Example: "trigram for thunder"
regex = '^(mono|di|tri)gram for'

[[delete]]
# Example: "white draughts king"
regex = '^(white|black) draughts'

[[delete]]
# Example: "turned white shogi piece"
contains = "shogi piece"

[[delete]]
# Example: "file symbols", as these can be found nearby under "file".
regex = '^(file|folder) symbols$'

[[delete]]
# Example: "ohm...see omega"
consider_all_entries = true
matches = "ohm"
format_contains = '\see'

[[delete]]
# Example 1: "dots (ellipses)", which will be replaced with various
# dot patterns.
# Example 2: "actuarial symbols", which is redundant with "actuarial angle".
# Example 3: "clothing", which is redundant with "clothes".
# Example 4: "Laplacian", which will be replaced with actual symbols.
# Example 5: "set operators>intersection", which is redundant with "set
# intersection".
# Example 6: "word balloons", which will be replaced with "see...speech
# bubble".
# Example 7: "Go board", which will be replaced with actual symbols.
# Example 8: "independence>statistical", which will be replaced with actual
# symbols.
# Example 9: "logical operators>xor", which follows all of the
# "logical _____" entries with symbols.
# Example 10: "lozenges...see rhombuses", which will be replaced with
# actual symbols.
# Example 11: "angles>measured", which already is indexed under
# "angle>measured".
# Example 11: "product integrals", which already is indexed under
# "integral>product".
# Example 12: "inequalities", which is less specific than "greater than"
# and "less than".
# Example 13: "hammer and sickle", which will be replaced with an actual
# symbol.
# Example 14: "quasi-quotation marks", which will be redirected to a
# rewritten symbol name
# Example 15: "Angstrom unit", which will be replaced with a "see..." to
# a non-control sequence.
# Example 16: "dominance", which will be replaced with "see..."s to
# non-control sequences.
consider_all_entries = true
top_matches = [
    "dots (ellipses)",
    "actuarial symbols",
    "clothing",
    "independence",
    "Laplacian",
    "logical operators",
    "lozenges",
    "set operators",
    "word balloons",
    "Go boards",
    "angles",
    "product integrals",
    "input",
    "inequalities",
    "hammer and sickle",
    "quasi-quotation marks",
    "Angstrom unit",
    "dominance"
]
not_render_contains = '\STIXangles'

[[delete]]
# Example: "\textRubikUa", which is unlikely to be a search term.
matches = [
    "acarc",
    "acbar",
    "accentset",
    "acontraction",
    "AffCarteJeu",
    "alternate one-way left way traffic",
    "ASC",
    "bahaistar",
    "barbbrevis",
    "BasicTree",
    "bcontraction",
    "Big",
    "big",
    "Bigg",
    "bigg",
    "black",
    "blackstone",
    "bm",
    "bmod",
    "boldmath",
    "boldsymbol",
    "braceld",
    "bracerd",
    "bracevert",
    "brevis",
    "bullenum",
    "changenotsign",
    "charts",
    "ClockFramefalse",
    "ClockFrametrue",
    "ClockStyle",
    "clocktime",
    "cloud genera symbols",
    "constvec",
    "CR",
    "cr",
    "crossedstaff",
    "dBar",
    "diatop",
    "diaunder",
    "does not imply",
    "double",
    "DSC",
    "faClipboardQuestion",
    "goddessasmoon",
    "Goofy",
    "graphs",
    "gvcropped",
    "heartctrbull",
    "hfil",
    "HH",
    "holter",
    "hpause",
    "ialign",
    "IC",
    "jack of hearts",
    "joinrel",
    "justice",
    "labvel",
    "land",
    "largectrbull",
    "left closed entry",
    "llangle",
    "LMex",
    "lor",
    "lsf",
    "ltriple",
    "mahjong",
    "makeatletter",
    "makeatother",
    "maya",
    "mbox",
    "MC",
    "metre",
    "moverlay",
    "musMeter",
    "NBSP",
    "newmetrics",
    "offinterlineskip",
    "oldstylenums",
    "ooalign",
    "overset",
    "p@",
    "parting",
    "pentam",
    "perfectcouple",
    "perfectcouplethirddegree",
    "pgfornament",
    "pmb",
    "pmod",
    "polter",
    "powergoingforth",
    "probabilistic independence",
    "relations",
    "reveject",
    "rockartgoddess",
    "rockarthorse",
    "rockets",
    "roshambo",
    "rrangle",
    "rtriple",
    "salute",
    "SavedStyle",
    "scooters",
    "scourge",
    "selectfont",
    "semidirect products",
    "septagons",
    "serpentimpaled",
    "setBold",
    "Shilling",      # I can find no evidence of this symbol representing a shilling.
    "showclock",
    "smallctrbull",
    "smartctrbull",
    "stackengine",
    "statistical independence",
    "Strichmaxerl",
    "SYN",
    "tabcolsep",
    "Takt",
    "textdblhyphenchar",
    "textRubikUa",
    "Thermo",
    "ThisStyle",
    "tone",
    "triple",
    "trucks",
    "underaccent",
    "underset",
    "upbar",
    "uplett",
    "usebox",
    "usepackage",
    "usf",
    "usfz",
    "varmathbb",
    "vcenter",
    "vrule",
    "white",
    "whitestone",
    "worldflag",
    "Zodiac"
]

[[delete]]
# Example: "bullseye...see \textbullseye", which will be replaced with
# actual symbols.
consider_all_entries = true
matches = [
    "absolute value",
    "abzuglich",
    "advancing",
    "alternative denial",
    "ampersand",
    "and",
    "asterisks",
    "better",
    "biconditional",
    "blank",
    "born",
    "bullseye",
    "cardinality",
    "caret",
    "carriage return",
    "Cartesian product",
    "centigrade",
    "cents",
    "congruent",
    "conjunction, logical",
    "converse implication",
    "converse nonimplication",
    "cross ratio",
    "curly pi",
    "cutoff subtraction",
    "d'Alembert operator",
    "dasharrow",
    "degrees",
    "Deleatur",
    "derivative, partial",
    "Descartes's equal sign",
    "diamonds",
    "died",
    "differential, inexact",
    "discount",
    "disjunction",
    "ditto marks",
    "division times",
    "divorced",
    "doublecap",
    "doublecup",
    "element of",
    "entails",
    "equilibrium",
    "equivalence",
    "estimated",
    "eszett",
    "evaluated at",
    "exclusive disjunction",
    "ezh",
    "falsum",
    "feet",
    "fish hook",
    "florin",
    "gaffing hook",
    "ge",
    "gets",
    "gggtr",
    "greater-than signs",
    "greatest lower bound",
    "Green Dot",
    "Grune Punkt",
    "guillemotleft",
    "guillemotright",
    "hash mark",
    "iff",
    "impliedby",
    "implies",
    "inches",
    "inexact differential",
    "infimum",
    "interior",
    "intersection",
    "joint denial",
    "Kronecker product",
    "Kronecker sum",
    "land",
    "le",
    "leaf",
    "less-than signs",
    "llless",
    "lnot",
    "lor",
    "lowering",
    "lrJoin",
    "lsemantic",
    "married",
    "material biconditional",
    "material conditional",
    "material equivalence",
    "material implication",
    "material nonimplication",
    "Maxwell-Stefan diffusion coefficient",
    "membership",
    "micro",
    "millesimal sign",
    "minus, double-dotted",
    "monus",
    "multiplicative disjunction",
    "ne",
    "negation",
    "nibar",
    "norm",
    "not",
    "notowns",
    "nuclear power plant",
    "number sign",
    "or",
    "orthogonal to",
    "owns",
    "par",
    "paragraph mark",
    "parallel lines, slanted",
    "parts per thousand",
    "percent sign",
    "pilcrow",
    "pipe",
    "plus-or-minus sign",
    "pomega",
    "power set",
    "proper subset/superset",
    "Quine corners",
    "raising",
    "rationalized Planck constant",
    "recipe",
    "reduced quadrupole moment",
    "retracting",
    "reverse solidus",
    "ring equal to",
    "ring in equal to",
    "ring sum",
    "rsemantic",
    "satisfies",
    "seagull",
    "section mark",
    "set interior",
    "stochastic independence",
    "strict implication",
    "supremum",
    "swung dash",
    "tailed z",
    "tautology",
    "tensor product",
    "thousandths",
    "to",
    "transversal intersection",
    "union",
    "vinculum",
    "Weierstrass p function",
    "won",
    "xor"
]
format_contains = ["hyperindexformat", "hyperxindexformat"]
