1

I know, that I can define some of unicode characters with something like \DeclareUnicodeCharacter{3B5}{$\epsilon$}. However, it appears not necessarily to do that for some characters, which are already supported by the LaTeX engine, e.g. the ones listed in first line of the example below.

\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
List of some supported unicode characters:
é è ä ¿ … ß œ

List of some non-supported unicode characters%
\footnote{See source, they are not displayed of course!}:
% ε Ω ± −
\end{document}

So, is it possible to list all unicode characters supported by the LaTeX engine?

  • 3
    the list is not fixed. If you load e.g. the fontencoding LGR latex will load the corresponding dfu-file and then ε will be declared. But beside this you can look in T1enc.dfu, OT1end.dfu and TS1enc.dfu in latex/base. They contain the list of the default setup. – Ulrike Fischer Jul 10 at 9:18
4

As Ulrike commented the list is open and if you use fontenc to load a specific font encoding matching Unicode input declarations will be made if there is a matching .dfu file. Also specific packages for CJK scripts or arabic may define large ranges, however by default in the format itself definitions covering the T1 and OT1 and some of OMS encodings are included.

If you look at the for utf8enc.dfu file in the base latex directory, which (currently) has the following definitions then tha shows the definitions that are known to the core format but only the subsets t1enc.dfu, ot1enc.dfu and omsenc.dfu are loaded during format creation.

In comments you mention U+00B5 (micro) which is not supported by the default font set (so not supported by the default inputenc mappings) but if you load the TS1 encoding eg via the textcomp package, \textmu will be defined and ts1enc.dfu will be loaded:

\documentclass{article}

\usepackage{textcomp}
\begin{document}

[µ]
\end{document}

Note the log of the above file will show

/usr/local/texlive/2019/texmf-dist/tex/latex/base/ts1enc.dfu

The files input when making the format are:

ot1enc.dfu

\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A3}{\textsterling}
\DeclareUnicodeCharacter{00AD}{\-}
\DeclareUnicodeCharacter{00B8}{\c\ }
\DeclareUnicodeCharacter{00BF}{\textquestiondown}
\DeclareUnicodeCharacter{00C5}{\r A}
\DeclareUnicodeCharacter{00C6}{\AE}
\DeclareUnicodeCharacter{00D8}{\O}
\DeclareUnicodeCharacter{00DF}{\ss}
\DeclareUnicodeCharacter{00E6}{\ae}
\DeclareUnicodeCharacter{00EC}{\@tabacckludge`\i}
\DeclareUnicodeCharacter{00ED}{\@tabacckludge'\i}
\DeclareUnicodeCharacter{00EE}{\^\i}
\DeclareUnicodeCharacter{00EF}{\"\i}
\DeclareUnicodeCharacter{00F8}{\o}
\DeclareUnicodeCharacter{0131}{\i}
\DeclareUnicodeCharacter{0141}{\L}
\DeclareUnicodeCharacter{0142}{\l}
\DeclareUnicodeCharacter{0152}{\OE}
\DeclareUnicodeCharacter{0153}{\oe}
\DeclareUnicodeCharacter{0174}{\^W}
\DeclareUnicodeCharacter{0175}{\^w}
\DeclareUnicodeCharacter{0176}{\^Y}
\DeclareUnicodeCharacter{0177}{\^y}
\DeclareUnicodeCharacter{0218}{\textcommabelow S}
\DeclareUnicodeCharacter{0219}{\textcommabelow s}
\DeclareUnicodeCharacter{021A}{\textcommabelow T}
\DeclareUnicodeCharacter{021B}{\textcommabelow t}
\DeclareUnicodeCharacter{0237}{\j}
\DeclareUnicodeCharacter{2013}{\textendash}
\DeclareUnicodeCharacter{2014}{\textemdash}
\DeclareUnicodeCharacter{2018}{\textquoteleft}
\DeclareUnicodeCharacter{2019}{\textquoteright}
\DeclareUnicodeCharacter{201C}{\textquotedblleft}
\DeclareUnicodeCharacter{201D}{\textquotedblright}

t1enc.dfu

\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A3}{\textsterling}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
\DeclareUnicodeCharacter{00AD}{\-}
\DeclareUnicodeCharacter{00BB}{\guillemotright}
\DeclareUnicodeCharacter{00BF}{\textquestiondown}
\DeclareUnicodeCharacter{00C0}{\@tabacckludge`A}
\DeclareUnicodeCharacter{00C1}{\@tabacckludge'A}
\DeclareUnicodeCharacter{00C2}{\^A}
\DeclareUnicodeCharacter{00C3}{\~A}
\DeclareUnicodeCharacter{00C4}{\"A}
\DeclareUnicodeCharacter{00C5}{\r A}
\DeclareUnicodeCharacter{00C6}{\AE}
\DeclareUnicodeCharacter{00C7}{\c C}
\DeclareUnicodeCharacter{00C8}{\@tabacckludge`E}
\DeclareUnicodeCharacter{00C9}{\@tabacckludge'E}
\DeclareUnicodeCharacter{00CA}{\^E}
\DeclareUnicodeCharacter{00CB}{\"E}
\DeclareUnicodeCharacter{00CC}{\@tabacckludge`I}
\DeclareUnicodeCharacter{00CD}{\@tabacckludge'I}
\DeclareUnicodeCharacter{00CE}{\^I}
\DeclareUnicodeCharacter{00CF}{\"I}
\DeclareUnicodeCharacter{00D0}{\DH}
\DeclareUnicodeCharacter{00D1}{\~N}
\DeclareUnicodeCharacter{00D2}{\@tabacckludge`O}
\DeclareUnicodeCharacter{00D3}{\@tabacckludge'O}
\DeclareUnicodeCharacter{00D4}{\^O}
\DeclareUnicodeCharacter{00D5}{\~O}
\DeclareUnicodeCharacter{00D6}{\"O}
\DeclareUnicodeCharacter{00D8}{\O}
\DeclareUnicodeCharacter{00D9}{\@tabacckludge`U}
\DeclareUnicodeCharacter{00DA}{\@tabacckludge'U}
\DeclareUnicodeCharacter{00DB}{\^U}
\DeclareUnicodeCharacter{00DC}{\"U}
\DeclareUnicodeCharacter{00DD}{\@tabacckludge'Y}
\DeclareUnicodeCharacter{00DE}{\TH}
\DeclareUnicodeCharacter{00DF}{\ss}
\DeclareUnicodeCharacter{00E0}{\@tabacckludge`a}
\DeclareUnicodeCharacter{00E1}{\@tabacckludge'a}
\DeclareUnicodeCharacter{00E2}{\^a}
\DeclareUnicodeCharacter{00E3}{\~a}
\DeclareUnicodeCharacter{00E4}{\"a}
\DeclareUnicodeCharacter{00E5}{\r a}
\DeclareUnicodeCharacter{00E6}{\ae}
\DeclareUnicodeCharacter{00E7}{\c c}
\DeclareUnicodeCharacter{00E8}{\@tabacckludge`e}
\DeclareUnicodeCharacter{00E9}{\@tabacckludge'e}
\DeclareUnicodeCharacter{00EA}{\^e}
\DeclareUnicodeCharacter{00EB}{\"e}
\DeclareUnicodeCharacter{00EC}{\@tabacckludge`\i}
\DeclareUnicodeCharacter{00ED}{\@tabacckludge'\i}
\DeclareUnicodeCharacter{00EE}{\^\i}
\DeclareUnicodeCharacter{00EF}{\"\i}
\DeclareUnicodeCharacter{00F0}{\dh}
\DeclareUnicodeCharacter{00F1}{\~n}
\DeclareUnicodeCharacter{00F2}{\@tabacckludge`o}
\DeclareUnicodeCharacter{00F3}{\@tabacckludge'o}
\DeclareUnicodeCharacter{00F4}{\^o}
\DeclareUnicodeCharacter{00F5}{\~o}
\DeclareUnicodeCharacter{00F6}{\"o}
\DeclareUnicodeCharacter{00F8}{\o}
\DeclareUnicodeCharacter{00F9}{\@tabacckludge`u}
\DeclareUnicodeCharacter{00FA}{\@tabacckludge'u}
\DeclareUnicodeCharacter{00FB}{\^u}
\DeclareUnicodeCharacter{00FC}{\"u}
\DeclareUnicodeCharacter{00FD}{\@tabacckludge'y}
\DeclareUnicodeCharacter{00FE}{\th}
\DeclareUnicodeCharacter{00FF}{\"y}
\DeclareUnicodeCharacter{0100}{\@tabacckludge=A}
\DeclareUnicodeCharacter{0101}{\@tabacckludge=a}
\DeclareUnicodeCharacter{0102}{\u A}
\DeclareUnicodeCharacter{0103}{\u a}
\DeclareUnicodeCharacter{0104}{\k A}
\DeclareUnicodeCharacter{0105}{\k a}
\DeclareUnicodeCharacter{0106}{\@tabacckludge'C}
\DeclareUnicodeCharacter{0107}{\@tabacckludge'c}
\DeclareUnicodeCharacter{0108}{\^C}
\DeclareUnicodeCharacter{0109}{\^c}
\DeclareUnicodeCharacter{010A}{\.C}
\DeclareUnicodeCharacter{010B}{\.c}
\DeclareUnicodeCharacter{010C}{\v C}
\DeclareUnicodeCharacter{010D}{\v c}
\DeclareUnicodeCharacter{010E}{\v D}
\DeclareUnicodeCharacter{010F}{\v d}
\DeclareUnicodeCharacter{0110}{\DJ}
\DeclareUnicodeCharacter{0111}{\dj}
\DeclareUnicodeCharacter{0112}{\@tabacckludge=E}
\DeclareUnicodeCharacter{0113}{\@tabacckludge=e}
\DeclareUnicodeCharacter{0114}{\u E}
\DeclareUnicodeCharacter{0115}{\u e}
\DeclareUnicodeCharacter{0116}{\.E}
\DeclareUnicodeCharacter{0117}{\.e}
\DeclareUnicodeCharacter{0118}{\k E}
\DeclareUnicodeCharacter{0119}{\k e}
\DeclareUnicodeCharacter{011A}{\v E}
\DeclareUnicodeCharacter{011B}{\v e}
\DeclareUnicodeCharacter{011C}{\^G}
\DeclareUnicodeCharacter{011D}{\^g}
\DeclareUnicodeCharacter{011E}{\u G}
\DeclareUnicodeCharacter{011F}{\u g}
\DeclareUnicodeCharacter{0120}{\.G}
\DeclareUnicodeCharacter{0121}{\.g}
\DeclareUnicodeCharacter{0122}{\c G}
\DeclareUnicodeCharacter{0123}{\c g}
\DeclareUnicodeCharacter{0124}{\^H}
\DeclareUnicodeCharacter{0125}{\^h}
\DeclareUnicodeCharacter{0128}{\~I}
\DeclareUnicodeCharacter{0129}{\~\i}
\DeclareUnicodeCharacter{012A}{\@tabacckludge=I}
\DeclareUnicodeCharacter{012B}{\@tabacckludge=\i}
\DeclareUnicodeCharacter{012C}{\u I}
\DeclareUnicodeCharacter{012D}{\u\i}
\DeclareUnicodeCharacter{012E}{\k I}
\DeclareUnicodeCharacter{012F}{\k\i}
\DeclareUnicodeCharacter{0130}{\.I}
\DeclareUnicodeCharacter{0131}{\i}
\DeclareUnicodeCharacter{0132}{\IJ}
\DeclareUnicodeCharacter{0133}{\ij}
\DeclareUnicodeCharacter{0134}{\^J}
\DeclareUnicodeCharacter{0135}{\^\j}
\DeclareUnicodeCharacter{0136}{\c K}
\DeclareUnicodeCharacter{0137}{\c k}
\DeclareUnicodeCharacter{0139}{\@tabacckludge'L}
\DeclareUnicodeCharacter{013A}{\@tabacckludge'l}
\DeclareUnicodeCharacter{013B}{\c L}
\DeclareUnicodeCharacter{013C}{\c l}
\DeclareUnicodeCharacter{013D}{\v L}
\DeclareUnicodeCharacter{013E}{\v l}
\DeclareUnicodeCharacter{0141}{\L}
\DeclareUnicodeCharacter{0142}{\l}
\DeclareUnicodeCharacter{0143}{\@tabacckludge'N}
\DeclareUnicodeCharacter{0144}{\@tabacckludge'n}
\DeclareUnicodeCharacter{0145}{\c N}
\DeclareUnicodeCharacter{0146}{\c n}
\DeclareUnicodeCharacter{0147}{\v N}
\DeclareUnicodeCharacter{0148}{\v n}
\DeclareUnicodeCharacter{014A}{\NG}
\DeclareUnicodeCharacter{014B}{\ng}
\DeclareUnicodeCharacter{014C}{\@tabacckludge=O}
\DeclareUnicodeCharacter{014D}{\@tabacckludge=o}
\DeclareUnicodeCharacter{014E}{\u O}
\DeclareUnicodeCharacter{014F}{\u o}
\DeclareUnicodeCharacter{0150}{\H O}
\DeclareUnicodeCharacter{0151}{\H o}
\DeclareUnicodeCharacter{0152}{\OE}
\DeclareUnicodeCharacter{0153}{\oe}
\DeclareUnicodeCharacter{0154}{\@tabacckludge'R}
\DeclareUnicodeCharacter{0155}{\@tabacckludge'r}
\DeclareUnicodeCharacter{0156}{\c R}
\DeclareUnicodeCharacter{0157}{\c r}
\DeclareUnicodeCharacter{0158}{\v R}
\DeclareUnicodeCharacter{0159}{\v r}
\DeclareUnicodeCharacter{015A}{\@tabacckludge'S}
\DeclareUnicodeCharacter{015B}{\@tabacckludge's}
\DeclareUnicodeCharacter{015C}{\^S}
\DeclareUnicodeCharacter{015D}{\^s}
\DeclareUnicodeCharacter{015E}{\c S}
\DeclareUnicodeCharacter{015F}{\c s}
\DeclareUnicodeCharacter{0160}{\v S}
\DeclareUnicodeCharacter{0161}{\v s}
\DeclareUnicodeCharacter{0162}{\c T}
\DeclareUnicodeCharacter{0163}{\c t}
\DeclareUnicodeCharacter{0164}{\v T}
\DeclareUnicodeCharacter{0165}{\v t}
\DeclareUnicodeCharacter{0168}{\~U}
\DeclareUnicodeCharacter{0169}{\~u}
\DeclareUnicodeCharacter{016A}{\@tabacckludge=U}
\DeclareUnicodeCharacter{016B}{\@tabacckludge=u}
\DeclareUnicodeCharacter{016C}{\u U}
\DeclareUnicodeCharacter{016D}{\u u}
\DeclareUnicodeCharacter{016E}{\r U}
\DeclareUnicodeCharacter{016F}{\r u}
\DeclareUnicodeCharacter{0170}{\H U}
\DeclareUnicodeCharacter{0171}{\H u}
\DeclareUnicodeCharacter{0172}{\k U}
\DeclareUnicodeCharacter{0173}{\k u}
\DeclareUnicodeCharacter{0174}{\^W}
\DeclareUnicodeCharacter{0175}{\^w}
\DeclareUnicodeCharacter{0176}{\^Y}
\DeclareUnicodeCharacter{0177}{\^y}
\DeclareUnicodeCharacter{0178}{\"Y}
\DeclareUnicodeCharacter{0179}{\@tabacckludge'Z}
\DeclareUnicodeCharacter{017A}{\@tabacckludge'z}
\DeclareUnicodeCharacter{017B}{\.Z}
\DeclareUnicodeCharacter{017C}{\.z}
\DeclareUnicodeCharacter{017D}{\v Z}
\DeclareUnicodeCharacter{017E}{\v z}
\DeclareUnicodeCharacter{01CD}{\v A}
\DeclareUnicodeCharacter{01CE}{\v a}
\DeclareUnicodeCharacter{01CF}{\v I}
\DeclareUnicodeCharacter{01D0}{\v \i}
\DeclareUnicodeCharacter{01D1}{\v O}
\DeclareUnicodeCharacter{01D2}{\v o}
\DeclareUnicodeCharacter{01D3}{\v U}
\DeclareUnicodeCharacter{01D4}{\v u}
\DeclareUnicodeCharacter{01E2}{\@tabacckludge=\AE}
\DeclareUnicodeCharacter{01E3}{\@tabacckludge=\ae}
\DeclareUnicodeCharacter{01E6}{\v G}
\DeclareUnicodeCharacter{01E7}{\v g}
\DeclareUnicodeCharacter{01E8}{\v K}
\DeclareUnicodeCharacter{01E9}{\v k}
\DeclareUnicodeCharacter{01EA}{\k O}
\DeclareUnicodeCharacter{01EB}{\k o}
\DeclareUnicodeCharacter{01F0}{\v\j}
\DeclareUnicodeCharacter{01F4}{\@tabacckludge'G}
\DeclareUnicodeCharacter{01F5}{\@tabacckludge'g}
\DeclareUnicodeCharacter{0218}{\textcommabelow S}
\DeclareUnicodeCharacter{0219}{\textcommabelow s}
\DeclareUnicodeCharacter{021A}{\textcommabelow T}
\DeclareUnicodeCharacter{021B}{\textcommabelow t}
\DeclareUnicodeCharacter{0232}{\@tabacckludge=Y}
\DeclareUnicodeCharacter{0233}{\@tabacckludge=y}
\DeclareUnicodeCharacter{0237}{\j}
\DeclareUnicodeCharacter{02D9}{\.{}}
\DeclareUnicodeCharacter{02DB}{\k{}}
\DeclareUnicodeCharacter{1E02}{\.B}
\DeclareUnicodeCharacter{1E03}{\.b}
\DeclareUnicodeCharacter{1E9E}{\SS}
\DeclareUnicodeCharacter{200C}{\textcompwordmark}
\DeclareUnicodeCharacter{2010}{-}
\DeclareUnicodeCharacter{2011}{\mbox{-}}
\DeclareUnicodeCharacter{2012}{\textendash}
\DeclareUnicodeCharacter{2013}{\textendash}
\DeclareUnicodeCharacter{2014}{\textemdash}
\DeclareUnicodeCharacter{2015}{\textemdash}
\DeclareUnicodeCharacter{2018}{\textquoteleft}
\DeclareUnicodeCharacter{2019}{\textquoteright}
\DeclareUnicodeCharacter{201A}{\quotesinglbase}
\DeclareUnicodeCharacter{201C}{\textquotedblleft}
\DeclareUnicodeCharacter{201D}{\textquotedblright}
\DeclareUnicodeCharacter{201E}{\quotedblbase}
\DeclareUnicodeCharacter{2030}{\textperthousand}
\DeclareUnicodeCharacter{2031}{\textpertenthousand}
\DeclareUnicodeCharacter{2039}{\guilsinglleft}
\DeclareUnicodeCharacter{203A}{\guilsinglright}
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
\DeclareUnicodeCharacter{1E20}{\@tabacckludge=G}
\DeclareUnicodeCharacter{1E21}{\@tabacckludge=g}

omsenc.dfu

\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00B6}{\textparagraph}
\DeclareUnicodeCharacter{00B7}{\textperiodcentered}
\DeclareUnicodeCharacter{2020}{\textdagger}
\DeclareUnicodeCharacter{2021}{\textdaggerdbl}
\DeclareUnicodeCharacter{2022}{\textbullet}

utf8enc.dfu includes all the definitions in the base format (but out of space to list here)

  • Very well. However, I still don't have e.g. micro sign, which is defined in the utf8enc.dfu file. I straced the execution of LaTeX to figure out where this file were loaded—but I found nothing. In particular, the .dfu file does not seem to be openned around the loading of inputenc.sty. Is it supposed to be read at all with the code snippet in the question? – ryolait Jul 10 at 11:47
  • @ryolait hopefully more accurate now – David Carlisle Jul 10 at 12:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.