(define title-single-map '((#\x01C4 #\x01C5) ; LATIN CAPITAL LETTER DZ WITH CARON (#\x01C6 #\x01C5) ; LATIN SMALL LETTER DZ WITH CARON (#\x01C7 #\x01C8) ; LATIN CAPITAL LETTER LJ (#\x01C8 #\x01C8) ; LATIN CAPITAL LETTER L WITH SMALL LETTER J (#\x01C9 #\x01C8) ; LATIN SMALL LETTER LJ (#\x01CA #\x01CB) ; LATIN CAPITAL LETTER NJ (#\x01CC #\x01CB) ; LATIN SMALL LETTER NJ (#\x01F1 #\x01F2) ; LATIN CAPITAL LETTER DZ (#\x01F3 #\x01F2) ; LATIN SMALL LETTER DZ )) ;; Alist mapping characters to their multiple-letter titlecase equivalents (define title-multiple-map (append title-single-map '((#\x00DF #\x0053 #\x0073) ; LATIN SMALL LETTER SHARP S (#\xFB00 #\x0046 #\x0066) ; LATIN SMALL LIGATURE FF (#\xFB01 #\x0046 #\x0069) ; LATIN SMALL LIGATURE FI (#\xFB02 #\x0046 #\x006C) ; LATIN SMALL LIGATURE FL (#\xFB03 #\x0046 #\x0066 #\x0069) ; LATIN SMALL LIGATURE FFI (#\xFB04 #\x0046 #\x0066 #\x006C) ; LATIN SMALL LIGATURE FFL (#\xFB05 #\x0053 #\x0074) ; LATIN SMALL LIGATURE LONG S T (#\xFB06 #\x0053 #\x0074) ; LATIN SMALL LIGATURE ST (#\x0587 #\x0535 #\x0582) ; ARMENIAN SMALL LIGATURE ECH YIWN (#\xFB13 #\x0544 #\x0576) ; ARMENIAN SMALL LIGATURE MEN NOW (#\xFB14 #\x0544 #\x0565) ; ARMENIAN SMALL LIGATURE MEN ECH (#\xFB15 #\x0544 #\x056B) ; ARMENIAN SMALL LIGATURE MEN INI (#\xFB16 #\x054E #\x0576) ; ARMENIAN SMALL LIGATURE VEW NOW (#\xFB17 #\x0544 #\x056D) ; ARMENIAN SMALL LIGATURE MEN XEH (#\x0149 #\x02BC #\x004E) ; LATIN SMALL LETTER N PRECEDED BY APOSTROPHE (#\x0390 #\x0399 #\x0308 #\x0301) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS (#\x03B0 #\x03A5 #\x0308 #\x0301) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS (#\x01F0 #\x004A #\x030C) ; LATIN SMALL LETTER J WITH CARON (#\x1E96 #\x0048 #\x0331) ; LATIN SMALL LETTER H WITH LINE BELOW (#\x1E97 #\x0054 #\x0308) ; LATIN SMALL LETTER T WITH DIAERESIS (#\x1E98 #\x0057 #\x030A) ; LATIN SMALL LETTER W WITH RING ABOVE (#\x1E99 #\x0059 #\x030A) ; LATIN SMALL LETTER Y WITH RING ABOVE (#\x1E9A #\x0041 #\x02BE) ; LATIN SMALL LETTER A WITH RIGHT HALF RING (#\x1F50 #\x03A5 #\x0313) ; GREEK SMALL LETTER UPSILON WITH PSILI (#\x1F52 #\x03A5 #\x0313 #\x0300) ; GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA (#\x1F54 #\x03A5 #\x0313 #\x0301) ; GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA (#\x1F56 #\x03A5 #\x0313 #\x0342) ; GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI (#\x1FB6 #\x0391 #\x0342) ; GREEK SMALL LETTER ALPHA WITH PERISPOMENI (#\x1FC6 #\x0397 #\x0342) ; GREEK SMALL LETTER ETA WITH PERISPOMENI (#\x1FD2 #\x0399 #\x0308 #\x0300) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA (#\x1FD3 #\x0399 #\x0308 #\x0301) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA (#\x1FD6 #\x0399 #\x0342) ; GREEK SMALL LETTER IOTA WITH PERISPOMENI (#\x1FD7 #\x0399 #\x0308 #\x0342) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI (#\x1FE2 #\x03A5 #\x0308 #\x0300) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA (#\x1FE3 #\x03A5 #\x0308 #\x0301) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA (#\x1FE4 #\x03A1 #\x0313) ; GREEK SMALL LETTER RHO WITH PSILI (#\x1FE6 #\x03A5 #\x0342) ; GREEK SMALL LETTER UPSILON WITH PERISPOMENI (#\x1FE7 #\x03A5 #\x0308 #\x0342) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI (#\x1FF6 #\x03A9 #\x0342) ; GREEK SMALL LETTER OMEGA WITH PERISPOMENI (#\x1FB2 #\x1FBA #\x0345) ; GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI (#\x1FB4 #\x0386 #\x0345) ; GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI (#\x1FC2 #\x1FCA #\x0345) ; GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI (#\x1FC4 #\x0389 #\x0345) ; GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI (#\x1FF2 #\x1FFA #\x0345) ; GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI (#\x1FF4 #\x038F #\x0345) ; GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI (#\x1FB7 #\x0391 #\x0342 #\x0345) ; GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI (#\x1FC7 #\x0397 #\x0342 #\x0345) ; GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI (#\x1FF7 #\x03A9 #\x0342 #\x0345) ; GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI ))) ;; Alist mapping characters to their multiple-character lowercase equivalents (define lower-multiple-map '((#\x0130 #\x0069 #\x0307))) ; LATIN CAPITAL LETTER I WITH DOT ABOVE