earth-asiaTypesetting non-Latin languages

The LaTeX and pdfLaTeX engines were originally intended for typesetting English and languages using Latin-based alphabets. Even though LaTeX and pdfLaTeX currently load \usepackage[utf8]{inputenc} as default, these engines still won't be able to support the full range of unicode characters, without the help of specific packages.

Therefore if you need to include some non-Latin languages in your LaTeX document, but are facing compile errors like "Unicode character xxxx not set up for use with LaTeX", you would need to load some specific packages and/or change your project compiler, so that the necessary fonts and language hyphenation modules can be loaded.

Greek, Polish, Vietnamese and Languages using Cyrillic Script (e.g. Russian, Bulgarian, Ukrainian, Serbian

pdfpdfLaTeX can still be used, if you load the babel package with the required language option, e.g. \usepackage[polish]{babel}. See our Babel documentationarrow-up-right for more details.

Other Non-Latin Languages and more control over fonts

For other non-Latin languages e.g. Arabic, Farsi, Hebrew, Indic languages (including Hindi, Tamil, etc), it is recommended to use the XeLaTeX or LuaLaTeXarrow-up-right compilers, together with the babelarrow-up-right or polyglossiaarrow-up-right packages. These packages also provide more control over the fonts that can be used with each language, and support modern OTF or TTF fonts.

For Chinesearrow-up-right, Japanesearrow-up-right and Koreanarrow-up-right languages, there are dedicated classes and packages that follow popular typesetting conventions in each language.

Last updated

Was this helpful?