3

I'm trying to add an Arabic paragraph in my English document. This was really a big issue for me for a long time since the other solutions doesn't work with other packages I have and if I change the compiler things get corrupted. The only solution worked with me is what mentioned in this question.

The Arabic paragraph has certain words in English so I can't use the approach in the question and if I used the second option the whole paragraph appears in one line.

How to solve this issue

ِA sample of the solution I tried:

    \documentclass[a4paper,10pt]{article}
%In the preamble section include the arabtex and utf8 packages
\usepackage{arabtex}
\usepackage{utf8}

\begin{document}
%start encoding to unicode
%Note that your layout must support arabic text when compiling
\setcode{utf8}
. (Naïve Bayes) \< و ناييف باييس > (SVM ) \< تتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت>
\end{document}

The output is:

enter image description here Thank you

Original paragraph:

اختبار تورنغ العام والأوتوماتيكي للتمييز بين الحاسب والإنسان (كابتشا) هو أحد أنظمة التحقق الهامة المستخدمة من قبل عدد كبير من مواقع الويب وخدمات الويب. وتهدف الكابتشا إلى حماية الخدمات الإلكترونية ومواقع الويب من الاختراق من قبل البرامج النصية الآلية والبرامج الضارة. تعد الكابتشا المستندة على النصوص وكذلك القائمة على الصوت من أقدم أنواع الكابتشا المقترحة التي ثبت أنها لاتعطي الأمان الكافي لحماية الأنظمة والخدمات. وقد تم اقتراح الكابتشا القائمة على الصور لمعالجة أوجه القصور في الكابتشا المقترحة مسبقاً. ويعرض هذا النوع من الكابتشا مهمة التعرف على الصور للتأكد ما إذا كان المستخدم إنسان حقيقي أم برنامج ضار. نظراً لأهميتها؛ فلابد من البحث عن التحديات الناجمة عن تطورات خوارزميات التعلم الآلي التي تواجه أمنها. يهدف هذا المشروع إلى استكشاف مدى قوة الكابتشا القائمةعلى الصور من خلال محاولة الكسر التلقائي للاختبارات المقدمة من قبل الكابتشا القائمة على الصور بأقل تدخل البشري ممكن. علاوة على ذلك، سيتم إجراء تحليل شامل باستخدام مقاييس الأداء وذلك من خلال المقارنة بين النماذج التي تم إنشاؤها بواسطة خوارزميات التعلم الآلي المحددة بما في ذلك الآلة متجهة الدعم (SVM) و ناييف باييس (Naïve Bayes).

even in the site the order is change, the following image clarify the right order of the words:

enter image description here

5
  • 2
    Please provide a full MWE. What things get corrupted if you change to xelatex? It will really be much easier if you can use xelatex instead of pdflatex. Commented Dec 27, 2017 at 9:44
  • @DavidPurton No if I choose xelatex the run is much much slower and with other solution it encodes the whole document. The question is updated
    – F 505
    Commented Dec 27, 2017 at 10:13
  • What's the output meant to look like? Your example compiles OK for me, but I'm not sure what you want exactly. Commented Dec 27, 2017 at 11:50
  • @DavidPurton I attached a sample of my document, the whole paragraph appears in one line. In the link of the solution I attached the question which is the only solution worked with me, the one who was asking used \begin{arabtext} and when I used it , it output the whole paragraph within the page which is great but the problem is that the English words in my paragraph decoded as Arabic letters. So I used the proposed solution in that question, but it solved the second issue but the whole paragraph appears in on line.
    – F 505
    Commented Dec 27, 2017 at 12:03
  • Ah, I see what you mean. What about using \RL{…} instead of \< … >? This works for me and allows line breaks. Commented Dec 27, 2017 at 12:11

3 Answers 3

2

Why not using transliteration mode of arabic letters https://en.wikipedia.org/wiki/ArabTeX

You can insert short english text inside arabtex environment with \LR{english text}

\documentclass[12pt]{article}
\usepackage{arabtex}

\novocalize

\begin{document}

english text 

\begin{arabtex}
AxtbAr twryn.g al-`Am wAl-'wtwmAtyky l|ltmy|yz byn al-.hAsb wAl-'insAn ( kAbt^sA ) 
hw '.hd 'n.zmT al-t.hq|q al-hAmT al-mstxdmT mn qbl `d|d kbyr mn ........


..... xwArzmyAt al-t`lm al-'Aly al-m.hd|dT bmA fy dlk al-'AlT mt.jhT al-d`m \LR{(SVM)} 
wnAy|yf bAy|ys \LR{(Naive Bayes)}
\end{arabtex}


\end{document} 
4
  • Is there a tool that can generate the corresponding code of the Arabic text?
    – F 505
    Commented Dec 27, 2017 at 17:45
  • I do not think it exists
    – Salim Bou
    Commented Dec 27, 2017 at 18:30
  • Is it the only Arabic paragraph in your document?
    – Salim Bou
    Commented Dec 27, 2017 at 18:32
  • Brother it worked with me, I placed the Arabic text as is and used the \LR{} for the English words in it worked. Thanks a lot brother
    – F 505
    Commented Dec 27, 2017 at 18:43
2

I update my answer from here: https://tex.stackexchange.com/a/46627/12277

This is the new version with two small fixes*. It needs to run with LuaLaTeX (or as suggested with lualatexmk):

% !TEX TS-program = lualatexmk
\documentclass{article}
\usepackage{fontspec}

\setmainfont[Ligatures=TeX]{Times New Roman}
\newfontfamily\arabicfont
    [Script=Arabic,     % to get correct arabic shaping
    Scale=1.2]          % make the arabic font bigger, a matter of taste
        {Arial}         % whatever Arabic font you like

\newcommand{\textarabic}[1]     % Arabic inside LTR
    {\bgroup\textdir TRT\arabicfont #1\egroup}
\newcommand{\n}         [1]     % for digits inside Arabic text
    {\bgroup\textdir TLT #1\egroup}
\newcommand{\afootnote} [1]     % Arabic footnotes
    {\footnote{\textarabic{#1}}}
\newenvironment{Arabic}         % Arabic paragraph
    {\textdir TRT\pardir TRT\arabicfont}{}

\begin{document}

English text ``\textarabic{جملة عربية وسط جملة إنجليزية}'' with Arabic in
between. English paragraph left aligned English paragraph left aligned English
paragraph left aligned English paragraph left aligned English paragraph left
aligned English paragraph left aligned English paragraph left aligned English
paragraph left aligned English paragraph left aligned English paragraph left
aligned English paragraph left aligned.

\begin{Arabic}
فقرة عربية محاذاة إلى اليمين فقرة عربية محاذاة إلى اليمين \n{١٢٣٤٥} فقرة عربية
محاذاة إلى اليمين فقرة عربية محاذاة إلى اليمين فقرة عربية محاذاة إلى اليمين
فقرة عربية محاذاة إلى اليمين فقرة عربية محاذاة إلى اليمين فقرة عربية محاذاة إلى
اليمين فقرة عربية محاذاة إلى اليمين فقرة عربية محاذاة إلى
اليمين\afootnote{حاشية عربية.} فقرة عربية محاذاة إلى اليمين.
\end{Arabic}

\end{document}

[* The fixes were changing \luatextextdir to \textdir and \luatexpardir to \pardir]

2
  • The definition of \n and so \textarabic is wrong and badly broken. \n{\verb|\Hello|} does not work.
    – user118241
    Commented Jan 2, 2018 at 15:36
  • What’s so wrong with it? I’ve been using this for years now without problems and original got it from Khaled Hosny. Please expand. Commented Jan 2, 2018 at 15:40
0
\documentclass[14pt]{article}
\usepackage{lipsum}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[calendar=gregorian,numerals=maghrib]{arabic}
\newfontfamily\arabicfont
    [Script=Arabic,     % to get correct arabic shaping
    Scale=1]          % make the arabic font bigger, a matter of taste
        {Amiri}         % whatever Arabic font you like
\newcommand{\n}         [1]     % for digits inside Arabic text
    {\bgroup\textdir TLT #1\egroup}

    
\begin{document}

Examples:\\

Inserting Arabic in English paragraph:\\

\lipsum[66] English. Arabic \begin{Arabic} لوريم ايبسوم دولار سيت أميت \n{١٢٣٤٥٦٧٨٩٠} \end{Arabic} \lipsum[66]\\

Typing year 1995, 2015, and 2025 in Arabic:

\begin{Arabic}
\n{١٩٩٥}\\
\n{٢٠١٥}\\
\n{٢٠٢٥}\\
\end{Arabic}

Typing a full Arabic paragraph:\\

\begin{Arabic}
لوريم ايبسوم دولار سيت أميت،كونسيكتيتور أدايبا يسكينج أليايت، سيت دو أيوسمود تيمبور أنكايديد يونتيوت لابوري ات دولار ماجنا أليكيوا. يوت انيم أد مينيم فينايم، كيواس نوستريد أكسير سيتاشن يللأمكو لابورأس نيسي يت أليكيوب أكس أيا كوممودو كونسيكيوات. ديواس أيوتي أريري دولار إن ريبريهينديرأيت فوليوبتاتي فيلايت أيسسي كايلليوم دولار أيو فيجايت نيولا باراياتيور. أيكسسيبتيور ساينت أوككايكات كيوبايداتات نون بروايدينت، سيونت ان كيولبا كيو أوفيسيا ديسيريونتموليت انيم أيدي ايست لابوريوم.
\end{Arabic}

\end{document}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .