بخش نخست
قرار گرفتن متن در محیط frame
بصورت ragged right
اگر یک متن ساده را در محیط frame
قرار دهیم:
\documentclass{beamer}
\usepackage{ptext}
\usefonttheme{serif}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\begin{frame}
\ptext[1-2]
\end{frame}
\end{document}
متن بصورت ragged right
قرار میگیرد. این مشکل به این خاطر وجود دارد که دستور \raggedright
در خط ۳۸۱ فایل beamer.cls
وجود دارد و مشکل با قرار دادن \raggedleft
(رونویسی \raggedright
ی که کلاس beamer
بصورت پیشفرض قرار میدهد) حل میشود:
\documentclass{beamer}
\usepackage{ptext}
\usefonttheme{serif}
\usepackage{xepersian}
\settextfont{Yas}
\raggedleft
\begin{document}
\begin{frame}
\ptext[1-2]
\end{frame}
\end{document}
قرار گرفتن \frametitle
و \framesubtitle
در سمت چپ در theme پیشفرض کلاس beamer
(Default
)
اگر از دستورات \frametitle
و \framesubtitle
برای قرار دادن عنوان و زیرعنوان یک frame استفاده کنیم:
\documentclass{beamer}
\usefonttheme{serif}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\begin{frame}
\frametitle{عنوان اسلاید}
\framesubtitle{زیر عنوان اسلاید}
\end{frame}
\end{document}
این عنوان و زیرعنوان در جای نامناسب (سمت چپ) قرار میگیرد. این مشکل با تغییر دادن مقدار \rightskip
با مقدار \leftskip
و بالاعکس حل میشود:
\documentclass{beamer}
\usefonttheme{serif}
\usepackage{xepersian}
\settextfont{Yas}
\makeatletter
\define@key{beamercolbox}{left}[0pt]{\def\beamer@colbox@rs{0pt}\def\beamer@colbox@ls{#1 plus1fill}}
\makeatother
\begin{document}
\begin{frame}
\frametitle{عنوان اسلاید}
\framesubtitle{زیر عنوان اسلاید}
\end{frame}
\end{document}
محیطهای list
مانند بصورت ragged right
قرار میگیرند
محیطهای list
مانند محیطهای itemize
، enumerate
و ... بصورت ragged right
چیده میشوند:
\documentclass{beamer}
\usefonttheme{serif}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\begin{frame}
\begin{enumerate}
\item
این یک متن است که در اینجا قرار میدهیم.
\end{enumerate}
\begin{itemize}
\item
این یک متن است که در اینجا قرار میدهیم.
\end{itemize}
\end{frame}
\end{document}
این مشکل با تغییر \raggedright
به \raggedleft
در این محیطها و همچنین تغییر \leftmargin
به \rightmargin
حل میشود:
\documentclass{beamer}
\usepackage{ptext}
\usefonttheme{serif}
\usepackage{xepersian}
\settextfont{Yas}
\makeatletter
\expandafter\let\csname beamer@@tmpop@itemize item@default\endcsname\relax
\expandafter\let\csname beamer@@tmpop@itemize subitem@default\endcsname\relax
\expandafter\let\csname beamer@@tmpop@itemize subsubitem@default\endcsname\relax
\defbeamertemplate*{itemize item}{default}{\scriptsize\raise1.25pt\hbox{\donotcoloroutermaths$\blacktriangleleft$}}
\defbeamertemplate*{itemize subitem}{default}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleleft$}}
\defbeamertemplate*{itemize subsubitem}{default}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleleft$}}
\bidi@patchcmd{\@listi}{\leftmargin}{\rightmargin}{}{}
\let\@listI\@listi
\bidi@patchcmd{\@listii}{\leftmargin}{\rightmargin}{}{}
\bidi@patchcmd{\@listiii}{\leftmargin}{\rightmargin}{}{}
\bidi@patchcmd{\beamer@enum@}{\raggedright}{\raggedleft}{}{}
\bidi@patchcmd{\@@description}{\raggedright}{\raggedleft}{}{}
\bidi@patchcmd{\@@description}{\leftmargin}{\rightmargin}{}{}
\renewcommand{\itemize}[1][]{%
\beamer@ifempty{#1}{}{\def\beamer@defaultospec{#1}}%
\ifnum \@itemdepth >2\relax\@toodeep\else
\advance\@itemdepth\@ne
\beamer@computepref\@itemdepth% sets \beameritemnestingprefix
\usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
\usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
\usebeamertemplate{itemize/enumerate \beameritemnestingprefix body begin}%
\list
{\usebeamertemplate{itemize \beameritemnestingprefix item}}
{\def\makelabel##1{%
{%
\hss\llap{{%
\usebeamerfont*{itemize \beameritemnestingprefix item}%
\usebeamercolor[fg]{itemize \beameritemnestingprefix item}##1}}%
}%
}%
}
\fi%
\beamer@cramped%
\raggedleft%
\beamer@firstlineitemizeunskip%
}
\makeatother
\raggedleft
\begin{document}
\begin{frame}
\ptext[1]
\begin{enumerate}
\item
این یک متن است که در اینجا قرار میدهیم این یک متن است که در اینجا قرار میدهیم. این یک متن است که در اینجا قرار میدهیم. این یک متن است که در اینجا قرار میدهیم.
\end{enumerate}
\begin{itemize}
\item
این یک متن است که در اینجا قرار میدهیم این یک متن است که در اینجا قرار میدهیم. این یک متن است که در اینجا قرار میدهیم. این یک متن است که در اینجا قرار میدهیم.
\end{itemize}
\begin{description}
\item[آزمایش]
این یک متن است که در اینجا قرار میدهیم این یک متن است که در اینجا قرار میدهیم. این یک متن است که در اینجا قرار میدهیم. این یک متن است که در اینجا قرار میدهیم.
\end{description}
\end{frame}
\end{document}
در این کد مثلثهای محیط itemize
نیز تغییر یافتهاند تا مناسب محیط راست به چپ باشند.