Arabic characters does not appear, arabi package

I am trying to write some Arabic using arabi package. Here is the code:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[LAE]{fontenc}
\usepackage[arabic]{babel}

\begin{document}
\selectlanguage{arabic}
مرحبا
\end{document}


I get a blank page with only Arabic number one at the bottom of the page.

My operating system is macOS Sierra, and I use xelatex from MikTex.

Output:

This is XeTeX, Version 3.14159265-2.6-0.99998 (MiKTeX 2.9.6500)
entering extended mode
(ara.tex
LaTeX2e <2017-04-15>
Babel <3.17> and hyphenation patterns for 1 language(s) loaded.
(/usr/local/share/miktex-texmf/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/share/miktex-texmf/tex/latex/base/size10.clo))
(/usr/local/share/miktex-texmf/tex/latex/base/inputenc.sty

Package inputenc Warning: inputenc package ignored with utf8 based engines.

) (/usr/local/share/miktex-texmf/tex/latex/base/fontenc.sty
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/laeenc.def)
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/laecmr.fd))
(/usr/local/share/miktex-texmf/tex/generic/babel/babel.sty
(/usr/local/share/miktex-texmf/tex/generic/babel/switch.def)
*************************************
* Local config file bblopts.cfg used
*
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/bblopts.cfg)
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/arabic.ldf
(/usr/local/share/miktex-texmf/tex/generic/babel/babel.def
(/usr/local/share/miktex-texmf/tex/generic/babel/switch.def)
(/usr/local/share/miktex-texmf/tex/generic/babel/xebabel.def
(/usr/local/share/miktex-texmf/tex/generic/babel/txtbabel.def)))

Package babel Warning: No hyphenation patterns were preloaded for
(babel)                the language Arabic' into the format.
(babel)                rebuild the format. Now I will use the patterns

(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/laeenc.def)
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/arabicore.sty
Arabi Core switching commands v1.0  2006/01/01   (may still change)  )
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/arabicfnt.sty
Arabic font switching commands v1.0  2006/01/01   (may still change)  )
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/arabnovowel.sty)
*************************************
* Local config file arabic.cfg used
*
(/Users/taha/.miktex/texmfs/install/tex/latex/arabi/arabic.cfg))) (ara.aux

LaTeX Font Warning: Font shape LAE/lmr/m/n' undefined
(Font)              using LAE/cmr/m/n' instead on input line 3.

) (/usr/local/share/miktex-texmf/tex/latex/base/ifthen.sty)
(/usr/local/share/miktex-texmf/tex/latex/lm/ot1lmr.fd) [1] (ara.aux)

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

)
(see the transcript file for additional information)
Output written on ara.pdf (1 page).
Transcript written on ara.log.

• arabi is for pdflatex, not for XeLaTeX. – egreg Feb 14 '18 at 0:21
• Welcome! You need to specify fonts which support Arabic. Also, don't load fontenc or inputenc. And probably not babel either. Instead, use fontspec, probably by loading polyglossia. – cfr Feb 14 '18 at 1:39
• With xetex, you should use arabxetex. There are many examples of its usage on this site, and there are sample files in the package documentation. – Thérèse Feb 14 '18 at 1:45
• @Thérèse Rather than polyglossia? That's a shame. – cfr Feb 14 '18 at 1:55
• polyglossia works better, thank you all. – Taha Feb 14 '18 at 1:55

Since you are compiling with XeTeX, don't load fontenc or inputenc. You want to use fontspec. Rather than babel, you probably want polyglossia.

Here's a very simple example. You need to specify a suitable font available on your system. On my system, Noto Naskh Arabic supports Arabic.

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{arabic}

• @Roboticist I wouldn't know. Is that what arabxetex does (mentioned in the comments)? – cfr Feb 14 '18 at 3:13
• These letters are connected where they should be. Whether the O.P. should use arabxetex or just this depends in part on the complexity of his document: arabxetex would be overkill if only stray Arabic words are needed. – Thérèse Feb 14 '18 at 3:32
• I’ve never seen hyphenation in Arabic (search for kashida on this site to see the lovely alternative solution for justification). But you can load polyglossia before arabxetex to get hyphenation in other languages used. – Thérèse Feb 14 '18 at 3:41
• @Roboticist I assumed polyglossia` would set the script, but apparently not (according to the manual). I guess adding it activates the feature responsible for the joining. – cfr Feb 14 '18 at 4:16