\documentclass[arabic-dz]{beamer-rl}
\usepackage{hologo} % pdflatex, xelatex, lualatex logos 
\usepackage{listings}
\usepackage{multicol}

\babelfont{alm}[Script=Arabic,Scale=.88]{ALM Fixed}

% Themes without Navigation Bars
%\mode<presentation>{\usetheme{default}}
%\mode<presentation>{\usetheme{boxes}}
%\mode<presentation>{\usetheme{Bergen}}
%\mode<presentation>{\usetheme{Boadilla}}
%\mode<presentation>{\usetheme{Madrid}}
%\mode<presentation>{\usetheme{AnnArbor}}
\mode<presentation>{\usetheme{CambridgeUS}}
%\mode<presentation>{\usetheme{EastLansing}}
%\mode<presentation>{\usetheme{Pittsburgh}}
%\mode<presentation>{\usetheme{Rochester}}

% Themes with a Tree-Like Navigation Bar
%\mode<presentation>{\usetheme{Antibes}}
%\mode<presentation>{\usetheme{JuanLesPins}}
%\mode<presentation>{\usetheme{Montpellier}}

% Themes with a Table of Contents Sidebar
%\mode<presentation>{\usetheme{Berkeley}}
%\mode<presentation>{\usetheme{PaloAlto}}
%\mode<presentation>{\usetheme{Goettingen}}
%\mode<presentation>{\usetheme{Hannover}}

% Themes with a Mini Frame Navigation
%\mode<presentation>{\usetheme{Berlin}}
%\mode<presentation>{\usetheme{Ilmenau}}
%\mode<presentation>{\usetheme{Dresden}}
%\mode<presentation>{\usetheme{Darmstadt}}
%\mode<presentation>{\usetheme{Frankfurt}}
%\mode<presentation>{\usetheme{Singapore}}
%\mode<presentation>{\usetheme{Szeged}}

% Themes with Section and Subsection Tables
%\mode<presentation>{\usetheme{Copenhagen}}
%\mode<presentation>{\usetheme{Luebeck}}
%\mode<presentation>{\usetheme{Malmoe}}
%\mode<presentation>{\usetheme{Warsaw}}

\usecolortheme{spruce}

\title{{\ttfamily beamer-rl} class}

\author{Salim Bou}

\institute[]{%
{\color{blue} Repository: } https://github.com/seloumi/beamer-rl \par 
{\color{blue} Bug tracker: } https://github.com/seloumi/beamer-rl/issues
}

\date{\today}

\setbeamercovered{transparent=10}

\def\cs#1{\babelsublr{\texttt{\textbackslash#1}}}

\lstset{language=TeX,basicstyle=\small\ttfamily,escapeinside={(*@}{@*)},aboveskip=3pt,belowskip=3pt}         

\lstnewenvironment{codeblock}{%
\selectlanguage{nil}
\smallskip\hfill%
\beamercolorbox[wd=\linewidth,sep=.2ex,dp=.5ex]{title}
}{%
\endbeamercolorbox
\hfill
\smallskip
%\end{verbatim}
}


\begin{document}

\parskip=6pt

\begin{frame}
\titlepage
\end{frame}

\begin{frame}
\frametitle{\contentsname}
\tableofcontents
\end{frame}

\section{مدخل}

\begin{frame}[fragile]
\frametitle{مدخل}
انشاء عرض بيمر عربي (اتجاه النص من اليمين لليسار) اعتمادا على 
 \hologo{pdfLaTeX} أو \hologo{XeLaTeX} 
 مازال يعترضه الكثير من المشاكل والمعوقات خاصة ما يتعلق بالألوان والروابط والتي لم يوجد لها حلولا~بعد. 

فريق  \hologo{LuaTeX} 
أوجد حلولا لهذه المشاكل، الشكر لهم ولـ 
\textit{Javier~Bezos}
لأعماله بالحزمة
\verb|babel| وخصوصا الكتابة بالاتجاهين (\verb|bidi| writing)    

هذه الفئة (class) تعدل في بعض اوامر وتعليمات beamer لغرض انشاء عروض من اليمين إلى اليسار (العربية على سبيل المثال)، الفئة تستدعي \verb|babel| ضمنيا مع الخيار \verb|bidi=basic| والمعالجة تتطلب استخدام 
\hologo{LuaLaTeX} 

\end{frame}

\section{كيفية استعمال الفئة}

\begin{frame}[fragile,allowframebreaks]
\frametitle{كيفية استعمال الفئة}

\begin{codeblock}
\documentclass{beamer-rl}

% import languages
\babelprovide[import, main]{arabic} 

\usetheme{CambridgeUS}

\begin{document}
...
\end{document}
\end{codeblock}

نحصل على نتيجة مماثلة باضافة اللغة الأساسية للعرض 
(لغة باتجاه كتابة من اليمين إلى اليسار)
 ضمن خيار الفئة كما يلي:

\begin{codeblock}
\documentclass[arabic]{beamer-rl}

\usetheme{CambridgeUS}

\begin{document}
...
\end{document}
\end{codeblock}

يمكن أيضا إضافة خيارات أكثر للغة والتي توفرها التعليمة 
{\textdir TLT \verb|\babelprovide|}
كما يلي:

\begin{codeblock}
\documentclass[arabic={mapdigits}]{beamer-rl}

% equivalent to
% \babelprovide[import,main,mapdigits]{arabic}

\end{codeblock}

الفئة تعرف  بنفس الطريقة الخيارات (اللغات المدعومة من الحزمة 
 \verb|babel|
 وتكتب من اليمين إلى اليسار) 
 
{\selectlanguage{nil} 
\begin{multicols}{3}
\verb|arabic|\\
\verb|arabic-dz|\\
\verb|arabic-tn|\\
\verb|arabic-ma|\\
\verb|arabic-eg|\\
\verb|arabic-sa|\\
\verb|arabic-iq|\\
\verb|arabic-sy|\\
\verb|arabic-lb|\\
\verb|arabic-ps|\\
\verb|arabic-jo|\\
\verb|centralkurdish|\\
\verb|hebrew|\\
\verb|kashmiri|\\
\verb|mazanderani|\\
\verb|malayalam|\\
\verb|northernkurdish-arab|\\
\verb|pashto|\\
\verb|persian|\\
\verb|punjabi-arab|\\
\verb|syriac|\\
\verb|urdu|\\
\verb|uyghur|\\
\verb|uzbek-arab|\\
\verb|yiddish|\\
\end{multicols}
}
\end{frame}

\section{بعض الملاحظات}

\begin{frame}[fragile,allowframebreaks]
\frametitle{بعض الملاحظات}

\begin{itemize}

\item
الفئة تعرف خط الأميري (\verb:Amiri:) ضمنيا كخط أساسي للكتابة 
\babelsublr{sans serif}، يمكن تغيير ذلك مع بداية الوثيقة باستعمال التعليمة 

\begin{codeblock}
\babelfont{sf}{<font name>}
\end{codeblock}

\item
الفئة تعرف  الخيار 
\verb|layout| 
الذي يمرر محتواه الى الحزمة 
\verb|bebel| 

\medskip 
 
\begin{codeblock}
\documentclass[layout={<babel layout>}]{beamer-rl}
\end{codeblock}

يمكن الاطلاع على المزيد حول الموضوع من دليل الحزمة 
\verb|bebel| 
\href{http://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf}{\beamergotobutton{الرابط}}

\item
الفئة 
 \verb:beamer-rl: تقوم بتبادل لكل من التعليمتين  \cs{blacktriangleright} و   \cs{blacktriangleleft} في حالة نص من اليمين لليسار

\bigskip

{%
\renewcommand{\arraystretch}{1.3}
\centering
\begin{tabular}{ccc}
\hline
 &  \verb:\blacktriangleright: & \verb:\blacktriangleleft:   \\
\hline 
LTR context & \blacktriangleright & \blacktriangleleft \\
\hline
RTL context & \selectlanguage{nil}\blacktriangleright & \selectlanguage{nil}\blacktriangleleft \\
\hline
\end{tabular}
\par
}

\bigskip
 
\item
في بعض الحالات يمكن استعمال التعليمة 
 \cs{babelsublr} التي توفرها الحزمة  \verb:bebel: 
لادراج نص من اليسار لليمين (لاتيني) في وسط نص من اليمين لليسار،
 على سبيل المثال  في حال الحاجة إلى ادراج رسم  
 \verb:pspicture: ضمن نص من اليمين لليسار. 
 
\begin{codeblock}
\bebelsublr{LTR context ... }
\end{codeblock}

\end{itemize}

\end{frame}

\section{الحزمة pgfpages-rl}

\begin{frame}[fragile]
\frametitle{الحزمة pgfpages-rl}
الحزمة pgfpages-rl تضيف الى الحزمة pgfpages القدرة على دعم الصفحات من اليمين الى اليسار 
 (\verb:pagedir TRT:) 
 تتطلب المعالجة باستعمال 
\hologo{LuaLaTeX} 

يمكن استعمالها أيضا مع الفئات الأخرى عدا عن الفئة 
\verb:beamer-rl:

\begin{codeblock}
\documentclass[arabic]{beamer-rl}
\usetheme{Warsaw}
\usepackage{pgfpages-rl} % adapt pgfpages to TRT pagedir
\setbeamertemplate{note page}[]
\setbeameroption{show notes on second screen=right}
\begin{document}
...
\end{document}

\end{codeblock}


\end{frame}


\section{أمثلة}

\begin{frame}[plain]{}

\fontsize{70}{60}\selectfont\centerline{أمثـلة}

\end{frame}


\subsection{الإطارات}

\begin{frame}[fragile]
\frametitle{الإطارات}

\begin{codeblock}
\setbeamertemplate{blocks}[default]
\end{codeblock}

\setbeamertemplate{blocks}[default]

\begin{block}{أورستد}
  لاحظ هانز أورستد في 21 أبريل 1820 وهو يُعد أحد التجارب أن إبرة
  البوصلة تنحرف عن اتجاهها نحو الشمال عندما كان يغلق ويفتح التيار في
  دائرة كهربائية يُعدها.
\end{block}

\begin{codeblock}
\setbeamertemplate{blocks}[rounded][shadow=true]
\end{codeblock}

\setbeamertemplate{blocks}[rounded][shadow=true]

\begin{block}{أورستد}
  لاحظ هانز أورستد في 21 أبريل 1820 وهو يُعد أحد التجارب أن إبرة
  البوصلة تنحرف عن اتجاهها نحو الشمال عندما كان يغلق ويفتح التيار في
  دائرة كهربائية يُعدها.
\end{block}

\end{frame}

\subsection{القوائم}

\begin{frame}[fragile,allowframebreaks]
\frametitle{القوائم}

\begin{columns}[t,onlytextwidth]

\begin{column}{2cm}
\begin{enumerate}
\item أولا 
\item ثانيا 
\end{enumerate}
\end{column}
\begin{column}{9cm}
\begin{codeblock}
\setbeamertemplate{enumerate item}[ball]
\begin{enumerate}
\item (*@\almfamily  أولا @*)  
\item (*@\almfamily  ثانيا @*)
\end{enumerate}
\end{codeblock}
\end{column}

\end{columns}

\vfill
\setbeamertemplate{itemize item}[triangle]

\begin{columns}[t,onlytextwidth]

\begin{column}{2cm}
\begin{itemize}
\item أولا
\item ثانيا 
\end{itemize}
\end{column}
\begin{column}{9cm}
\begin{codeblock}
% in RTL context
\setbeamertemplate{itemize item}[triangle]
\begin{itemize}
\item (*@\almfamily  أولا @*)  
\item (*@\almfamily  ثانيا @*)  
\end{itemize}
\end{codeblock}
\end{column}

\end{columns}

\framebreak

\selectlanguage{nil}
\begin{columns}[t]
\begin{column}{2cm}
\begin{itemize}
\item First
\item Second 
\end{itemize}
\end{column}
\begin{column}{9cm}
\begin{codeblock}
% in LTR context 
\setbeamertemplate{itemize item}[triangle]
\begin{itemize}
\item First
\item Second 
\end{itemize}
\end{codeblock}
\end{column}
\end{columns}

\end{frame}

\subsection{الروابط}

\begin{frame}[fragile]
\frametitle{الروابط}
\begin{itemize}
\item<1-> العنصر الأول.
\item<2-> العنصر الثاني.
\end{itemize}
\hyperlink{jumptosecond}{\beamerreturnbutton{الرجوع إلى الشريحة الأولى}}
\hypertarget<1>{jumptosecond}{}

\pause

\begin{codeblock}
\hyperlink{jumptofirst}
{\beamergotobutton{(*@\almfamily الرجوع إلى الشريحة الأولى@*)}}
\hypertarget<1>{jumptofirst}{}
\end{codeblock}

\end{frame}

\subsection{النظريات}

\begin{frame}
\frametitle{النظريات}

\framesubtitle{The proof uses \textit{reductio ad absurdum}.}
\begin{theorem}
There is no largest prime number.
\end{theorem}
\begin{proof}
\begin{enumerate}[<+-| alert@+>]
\item Suppose $p$ were the largest prime number.
\item Let $q$ be the product of the first $p$ numbers.
\item Then $q+1$ is not divisible by any of them.
\item But $q + 1$ is greater than $1$, thus divisible by some prime
number not in the first $p$ numbers.\qedhere
\end{enumerate}
\end{proof}

\end{frame}

\subsection{التكبير}


\begin{frame}[fragile]
\frametitle{التكبير}

\framezoom<1><2>[border=2](1cm,1cm)(2cm,2cm)
\pgfimage[height=4cm]{example-image}

\begin{codeblock}
\framezoom<1><2>[border=2](1cm,1cm)(2cm,2cm)
% (1cm,1cm)=(<upper right x>,<upper right y>)
% (2cm,2cm)=(<zoom area width>,<zoom area depth>)
\pgfimage[height=5cm]{example-image}
\end{codeblock}

\end{frame}

\end{document}
