阿拉伯语(或 polyglossia 包)投影仪中的 RTL 目录

阿拉伯语(或 polyglossia 包)投影仪中的 RTL 目录

我已阅读此链接(在 Beamer 中书写阿拉伯语的最佳方式) 并且我成功地使用了“selumi”在那里提出的代码。但现在我又遇到了一个新问题。我如何在该代码中编写 RTL 内容表??? 我已附加我的代码的导出。

\documentclass[10pt]{beamer}
\usetheme{Warsaw}
\usepackage{enumitem}
\usepackage{fontspec}
\usepackage{polyglossia}
\setbeamertemplate{section in toc}[circle]
\setbeamertemplate{frametitle continuation}{\gdef\beamer@frametitle{}} % framebreaks without numbering
\setbeamertemplate{frametitle}[default][right]% align the frametitle to the right
%\setdefaultlanguage{english}
\setmainlanguage{english}
\setotherlanguage{arabic}
\setmainfont{Times New Roman}
\setotherlanguage[calendar=gregorian,numerals=maghrib]{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1]{B Nazanin}%
\newfontfamily\arabicfontsf[Script=Arabic,Scale=1]{B Nazanin}%
\graphicspath{{pics/}}
%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\newcommand{\ar}{\textarabic} % to change the laguage in the section and frame title to persian
% This work as: \a{متن فارسی}
%~~~~~~~~~~~~~~~~define bullet for enumerate~~~~~~~~~~~~~
\newcommand{\myenum}[1]
{
\par\vspace{3pt}\LR{\hspace*{3pt}%
\begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
\usebeamercolor[fg]{item projected}
{\pgftransformscale{1.8}\pgftext{\normalsize \pgfuseshading{bigsphere}}}
{\pgftransformshift{\pgfpoint{0pt}{0.5pt}}
\pgftext{\usebeamerfont*{item projected}\textcolor{white}{#1}}}
\end{pgfpicture}%
\hspace{1pt}%
}}
%~~~~~~~~~~~~~~~~~~define bullet for itemize~~~~~~~~~~~~~~~
\newcommand{\myitem}{\par\vspace{3pt}\hspace{5mm}\LR{\hspace*{3pt}%
\begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
\usebeamercolor[fg]{item projected}
{\pgftransformscale{1.1}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
\end{pgfpicture}%
\hspace{1pt}%
}}
%~~~~~~~~~~~~~~~~~~~~~~~~~~
\newcommand{\myitemII}{\par\vspace{3pt}\hspace{5mm}\LR{\hspace*{3pt}%
\begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
\usebeamercolor[fg]{item projected}
{\pgftransformscale{1.8}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
\end{pgfpicture}%
\hspace{1pt}%
}}
%*************************************************************************
%\addtobeamertemplate{block begin}{}{\justifying} %new code
%~~~~~~~~~~~~~~~~~~~~~
\begin{document}
%\selectlanguage{arabic}
\title{\textarabic{بعنوان عنوان نعنوان }}
\author{AUTHOR}
\date{\today}
%
\frame{\titlepage}
%
\frame{
\frametitle{\textarabic{فهرست مطالب}}
\begin{minipage}{1.\textwidth}
\begin{Arabic}
\tableofcontents
\end{Arabic}
\end{minipage}
}
\section{\textarabic{مقدمه}}
\subsection{\textarabic{مایع }}
\subsubsection{\textarabic{مایع }}
\frame{
\frametitle{\textarabic{سیستمهای فرمیونی همبسته:مایع}}
\begin{minipage}{.95\textwidth}
%\begin{Arabic}% ----------------------here must be changed
%
\begin{itemize}[label=\protect\myitemII, rightmargin=0mm]
\item
\ar{متن فارسی .....}
\ar{متن فارسی .....}
\item
\ar{متن فارسی .....}
\item
\ar{متن فارسی .....}
\item
\ar{متن فارسی .....}
\end{itemize}

\ar{متن فارسی .....}

%\end{Arabic}
\end{minipage}
}
\end{document}

在此处输入图片描述

答案1

您必须使用pachage\setRTL中的命令更改 toc 中 section 、 subsection 、 subsubsection 的格式bidi

可以通过以下方式完成:

\setbeamertemplate{section in toc}{%
\setRTL \myenum{\inserttocsectionnumber}
  \inserttocsection\par
}

\setbeamertemplate{subsection in toc}{%
\setRTL \myitem
  \inserttocsubsection\par%
}

\setbeamertemplate{subsubsection in toc}{%
\setRTL \rightskip=3ex\myitem
  \inserttocsubsection\par%
}

你的最终代码变成

    \documentclass[10pt]{beamer}
    \usetheme{Warsaw}
    \usepackage{enumitem}
    \usepackage{fontspec}
    \usepackage{polyglossia}
    \setbeamertemplate{section in toc}[circle]
    \setbeamertemplate{frametitle continuation}{\gdef\beamer@frametitle{}} % framebreaks without numbering
    \setbeamertemplate{frametitle}[default][right]% align the frametitle to the right
    %\setdefaultlanguage{english}
    \setmainlanguage{english}
    \setotherlanguage{arabic}
    \setmainfont{Times New Roman}
    \setotherlanguage[calendar=gregorian,numerals=maghrib]{arabic}
    \newfontfamily\arabicfont[Script=Arabic,Scale=1]{B Nazanin}%
    \newfontfamily\arabicfontsf[Script=Arabic,Scale=1]{B Nazanin}%
    \graphicspath{{pics/}}
    %
    %~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    \newcommand{\ar}{\textarabic} % to change the laguage in the section and frame title to persian
    % This work as: \a{متن فارسی}
    %~~~~~~~~~~~~~~~~define bullet for enumerate~~~~~~~~~~~~~
    \newcommand{\myenum}[1]
    {
    \par\vspace{3pt}\LR{\hspace*{3pt}%
    \begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
    \usebeamercolor[fg]{item projected}
    {\pgftransformscale{1.8}\pgftext{\normalsize \pgfuseshading{bigsphere}}}
    {\pgftransformshift{\pgfpoint{0pt}{0.5pt}}
    \pgftext{\usebeamerfont*{item projected}\textcolor{white}{#1}}}
    \end{pgfpicture}%
    \hspace{1pt}%
    }}
    %~~~~~~~~~~~~~~~~~~define bullet for itemize~~~~~~~~~~~~~~~
    \newcommand{\myitem}{\par\vspace{3pt}\hspace{5mm}\LR{\hspace*{3pt}%
    \begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
    \usebeamercolor[fg]{item projected}
    {\pgftransformscale{1.1}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
    \end{pgfpicture}%
    \hspace{1pt}%
    }}
    %~~~~~~~~~~~~~~~~~~~~~~~~~~
    \newcommand{\myitemII}{\par\vspace{3pt}\hspace{5mm}\LR{\hspace*{3pt}%
    \begin{pgfpicture}{-1ex}{-0.65ex}{1ex}{1ex}
    \usebeamercolor[fg]{item projected}
    {\pgftransformscale{1.8}\pgftext{\normalsize\pgfuseshading{bigsphere}}}
    \end{pgfpicture}%
    \hspace{1pt}%
    }}
    %*************************************************************************
    %\addtobeamertemplate{block begin}{}{\justifying} %new code
    %*************************************************************************
    % change toc format ======================================================

    \setbeamertemplate{section in toc}{%
\setRTL \myenum{\inserttocsectionnumber}
  \inserttocsection\par
}

\setbeamertemplate{subsection in toc}{%
\setRTL \myitem
  \inserttocsubsection\par%
}

\setbeamertemplate{subsubsection in toc}{%
\setRTL \rightskip=3ex\myitem
  \inserttocsubsection\par%
}

    %=================================================================

    \begin{document}
    %\selectlanguage{arabic}
    \title{\textarabic{بعنوان عنوان نعنوان }}
    \author{AUTHOR}
    \date{\today}
    %
    \frame{\titlepage}
    %
    \frame{
    \frametitle{\textarabic{فهرست مطالب}}
    \begin{minipage}{1.\textwidth}
    \begin{Arabic}
    \tableofcontents
    \end{Arabic}
    \end{minipage}
    }
    \section{\textarabic{مقدمه}}
    \subsection{\textarabic{مایع }}
    \subsubsection{\textarabic{مایع }}
    \frame{
    \frametitle{\textarabic{سیستمهای فرمیونی همبسته:مایع}}
    \begin{minipage}{.95\textwidth}
    %\begin{Arabic}% ----------------------here must be changed
    %
    \begin{itemize}[label=\protect\myitemII, rightmargin=0mm]
    \item
    \ar{متن فارسی .....}
    \ar{متن فارسی .....}
    \item
    \ar{متن فارسی .....}
    \item
    \ar{متن فارسی .....}
    \item
    \ar{متن فارسی .....}
    \end{itemize}

    \ar{متن فارسی .....}

    %\end{Arabic}
    \end{minipage}
    }
    \end{document}

在此处输入图片描述

相关内容