XeTeX

XeTeX is an extension of TeX with built-in support for Unicode and OpenType. In this tutorial, we are going to learn how to typeset Malayalam using XeTeX. With some learning effort, we can produce high quality typesetting using XeTeX.

XeTeX is a Unicode TeX engine which can load system fonts directly using the HarfBuzz library, which is built in. To do this, the \font primitive is extended. In order to support these major concepts, a range of TeX primitives are extended. For most LaTeX end users, these subtleties are transparent, with the LaTeX kernel and fontspec package providing interfaces.

Like Knuthโ€™s TeX, it does not directly produce PDF output but rather works via an intermediate format, XDV (eXtended DVI). Unlike the classical DVI format produced by TeX, XDV files cannot be viewed directly, and are normally converted directly to PDF as part of the xetex run. (The conversion itself is carried out by xdvpdfmx.(reference)

Installing XeTeX

XeTeX is packaged for all famous GNU/Linux distros. The installation method depends your distro. For ease of installation and configuration, we suggest to use a TeXLive version 2012 or above โ€“ either standalone TeXLive distribution or install from your distributionโ€™s package manager. Windows and OSX versions are also available.

Following packages are required to install to get a working xetex environment in your computer. Note that these packages are relatively large in size and will take time and bandwidth.

  • texlive-xetex

  • texlive-latex-extra

  • texlive-lang-other or

    • texlive-lang-indic (in older distros)

You also need reasonably good unicode compatible Malayalam fonts. These fonts also comes with GNU/Linux distros. Search for malayalam fonts in your package manager and install if not already installed. Eg fonts: Meera, Rachana etc.

Creating documents using XeTeX

A simple document to learn usage of xetex is given below.

Using a text editor like gedit or kate, create a new file with .tex as file extension. Eg: example.tex. Copy the following content as the content for that file and save.

example.tex
\documentclass[11pt]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{malayalam}
\setmainfont[Script=Malayalam, HyphenChar="00AD]{Rachana}
\lefthyphenmin=3
\righthyphenmin=4
\linespread{1.2}
\widowpenalty=10000
\clubpenalty=10000
\raggedbottom
\sloppy
\title{\textbf{เดธเตเดตเตผเดฃเด‚}}
\author{เดฎเดฒเดฏเดพเดณเด‚ เดตเดฟเด•เตเด•เดฟเดชเต€เดกเดฟเดฏ}
\date{}
\begin{document}

\maketitle

\section{เดธเตเดตเตผเดฃเด‚}

เดฎเตƒเดฆเตเดตเตเด‚ เดคเดฟเดณเด•เตเด•เดฎเตเดณเตเดณเดคเตเดฎเดพเดฏ เดฎเดžเตเดžเดฒเต‹เดนเดฎเดพเดฃเต เดธเตเดตเตผเดฃเด‚. เดตเดฟเดฒเดฏเต‡เดฑเดฟเดฏ เดฒเต‹เดนเดฎเดพเดฏ เดธเตเดตเตผเดฃเด‚, เดจเดพเดฃเดฏเดฎเดพเดฏเตเด‚, เด†เดญเดฐเดฃเด™เตเด™เดณเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเดฒเตเด‚ เดจเต‚เดฑเตเดฑเดพเดฃเตเดŸเตเด•เดณเดพเดฏเดฟ เดฎเดจเตเดทเตเดฏเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเต‹เดฐเตเดจเตเดจเต. 
เดšเต†เดฑเดฟเดฏ เด•เดทเดฃเด™เตเด™เดณเตเด‚ เดคเดฐเดฟเด•เดณเตเดฎเดพเดฏเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐเดพเดตเดธเตเดฅเดฏเดฟเตฝเดคเตเดคเดจเตเดจเต† เดชเตเดฐเด•เตƒเดคเดฟเดฏเดฟเตฝ เดˆ เดฒเต‹เดนเด‚ เด•เดฃเตเดŸเตเดตเดฐเตเดจเตเดจเต. เดฒเต‹เดนเด™เตเด™เดณเดฟเตฝ เดตเดšเตเดšเต เดเดฑเตเดฑเดตเตเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดฐเต‚เดชเดญเต‡เดฆเด‚ เดตเดฐเตเดคเตเดคเดพเดตเตเดจเตเดจ เดฒเต‹เดนเดฎเดพเดฃเดฟเดคเต.
\footnote{http://www.webelements.com/webelements/elements/text/Au/key.html "Key properties of gold" (in เด‡เด‚เด—เตเดฒเต€เดทเต). เดถเต‡เด–เดฐเดฟเดšเตเดšเดคเต 2007-06-18.}

\section{เด—เตเดฃเด™เตเด™เตพ}
เดธเตเดตเตผเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด…เดฃเตเดธเด‚เด–เตเดฏ 79-เด‰เด‚ เดชเตเดฐเดคเต€เด•เด‚ Au เดŽเดจเตเดจเตเดฎเดพเดฃเต. เด”เดฑเด‚ เดŽเดจเตเดจ เดฒเดคเตเดคเต€เตป เดตเดพเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต Au เดŽเดจเตเดจ เดชเตเดฐเดคเต€เด•เด‚ เด‰เดฃเตเดŸเดพเดฏเดคเต.
เดเดฑเตเดฑเดตเตเด‚ เดจเดจเตเดจเดพเดฏเดฟ เดฐเต‚เดชเดญเต‡เดฆเด‚ เดตเดฐเตเดคเตเดคเดพเตป เดธเดพเดงเดฟเด•เตเด•เตเดจเตเดจ เดฒเต‹เดนเดฎเดพเดฃเต เดธเตเดตเตผเดฃเตเดฃเด‚. เด’เดฐเต เด—เตเดฐเดพเด‚ เดธเตเดตเตผเดฃเตเดฃเด‚ เด…เดŸเดฟเดšเตเดšเต เดชเดฐเดคเตเดคเดฟ เด’เดฐเต เดšเดคเตเดฐเดถเตเดฐเดฎเต€เดฑเตเดฑเตผ เดตเดฟเดธเตเดคเต€เตผเดฃเตเดฃเดฎเตเดณเตเดณ เด’เดฐเต เดคเด•เดฟเดŸเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดพเตป เดธเดพเดงเดฟเด•เตเด•เตเด‚. 
เด…เดคเดพเดฏเดคเต 0.000013 เดธเต†เดจเตเดฑเต€เดฎเต€เดฑเตเดฑเตผ เดตเดฐเต† เด‡เดคเดฟเดจเตเดฑเต† เด•เดจเด‚ เด•เตเดฑเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด…เดคเต เดชเต‹เดฒเต† เดตเต†เดฑเตเด‚ 29 เด—เตเดฐเดพเด‚ เดธเตเดตเตผเดฃเตเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต 100 เด•เดฟเดฒเต‹ เดฎเต€เดฑเตเดฑเตผ เดจเต€เดณเดฎเตเดณเตเดณ เด•เดฎเตเดชเดฟเดฏเตเดฃเตเดŸเดพเด•เตเด•เดพเดจเตเด‚ เดธเดพเดงเดฟเด•เตเด•เตเด‚. 

\section{เดšเดฐเดฟเดคเตเดฐเด‚}
เดšเดฐเดฟเดคเตเดฐเดพเดคเต€เดค เด•เดพเดฒเด‚ เดฎเตเดคเตฝเด•เตเด•เต‡ เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเตเดจเตเดจ เด…เดฎเต‚เดฒเตเดฏเดฒเต‹เดนเดฎเดพเดฃเตโ€Œ เดธเตเดตเตผเดฃเตเดฃเด‚. เด’เดฐเตเดชเด•เตเดทเต‡ เดฎเดจเตเดทเตเดฏเตป เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดฒเต‹เดนเดตเตเด‚ เด‡เดคเตเดคเดจเตเดจเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.
เดฌเดฟ.เดธเดฟ.เด‡. 2600 เดฒเต† เดˆเดœเดฟเดชเตเดทเตเดฏเตป เดนเต€เดฑเต‹เด—เตเดฒเดฟเดซเดฟเด•เตเดธเต เดฒเดฟเด–เดฟเดคเด™เตเด™เดณเดฟเตฝ เดˆเดœเดฟเดชเตเดคเดฟเตฝ เดธเตเดตเตผเดฃเตเดฃเด‚ เดธเตเดฒเดญเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต†เดจเตเดจเต เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต.
เดšเดฐเดฟเดคเตเดฐเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเดพเตฝ เดˆเดœเดฟเดชเตเดคเตเด‚ เดจเตเดฌเดฟเดฏเดฏเตเดฎเดพเดฃเตโ€Œ เดฒเต‹เด•เดคเตเดคเดฟเตฝ เดเดฑเตเดฑเดตเตเดฎเดงเดฟเด•เด‚ เดธเตเดตเตผเดฃเตเดฃเด‚ เด‰เดฒเตเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเตเดจเตเดจ เดฎเต‡เด–เดฒเด•เตพ. เดฌเตˆเดฌเดฟเดณเดฟเดฒเต† เดชเดดเดฏ เดจเดฟเดฏเดฎเดคเตเดคเดฟเตฝ เดธเตเดตเตผเดฃเตเดฃเดคเตเดคเต†เดชเตเดชเดฑเตเดฑเดฟ เดชเดฒเดตเดŸเตเดŸเด‚ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต.

\end{document}

Now you need to compile this document to generate PDF.

xelatex example.tex

Output of the above content should look like this:

The above tutorial is a very basic tutorial on using XeTeX with Malayalam. For detailed tutorial, please refer any tutorial available freely in internet. Example: https://en.wikibooks.org/wiki/LaTeX

Faux slanted text

To generate faux(artificial, fake) slanted text from a font that does not have it, following trick can be used:

\newfontfamily{\malayalamfont}[Script=Malayalam, AutoFakeSlant=0.4, HyphenChar="00AD]{Manjari}[
Path=fonts/,
UprightFont=Manjari-Regular.ttf,
BoldFont=Manjari-Bold.ttf
]

Last updated