# text.initials The initials of a personal name, for an avatar, a monogram or an audit column: "John Smith" is "JS", "Jean-Paul Sartre" is "JPS", "J.R.R. Tolkien" is "JRRT". ## The rules - Words are separated by whitespace (the Unicode White_Space set, listed explicitly so all three languages agree), and each word is split again at hyphens and full stops, so hyphenated forenames and dotted initials each contribute a letter. - Each part contributes its first character, upper-cased. Leading ASCII punctuation and typographic quotes are skipped first, so "(John)" gives "J" and "“Kit”" gives "K". An apostrophe inside a part is not a split: "O'Brien" gives "O", not "OB". - Name particles (van, von, de, da, di, del, della, der, den, des, du, la, le, ter, ten, dos, das, do, bin, ibn) are skipped when they are neither the first nor the last word: "Ludwig van Beethoven" is "LB", "José María de la Cruz" is "JMC". As the first word they count: "Van Morrison" is "VM". - The result has no spaces or full stops. Add them yourself ("J. S.") if the design wants them. There is no length cap: take the first two characters if your avatar only has room for two. ## Letters outside ASCII Upper-casing uses each language's own per-character mapping, and only when it maps to exactly one character, so "émile" gives "É" everywhere and "ß" stays "ß". A script without case contributes its first character as it is: "李 小龙" gives "李小". Those are the characters a Latin-script reader would expect; they are not necessarily how people who write in that script abbreviate names. Characters are code points: a letter written as a base letter plus a combining accent contributes only the base letter. The name must be a string; anything else is an error.