비머의 RTL 멀티콜 목차

비머의 RTL 멀티콜 목차

아랍어 문서용 Beamer의 목차에 Multicol을 사용하고 싶습니다. 여기서 오른쪽 열이 아닌 왼쪽 열에서 시작하는 문제는 내 MWE입니다.

    % !TeX TS-program = xelatex
\documentclass[10pt]{beamer}
\usetheme{Warsaw}
\usepackage{multicol}%
\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]{Times New Roman}%
\newfontfamily\arabicfontsf[Script=Arabic,Scale=1]{Times New Roman}%
\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}%
}}
\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}
\begin{multicols}{2} 
\tableofcontents
\end{multicols}
\end{Arabic}
\end{minipage}
}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\frame{
\frametitle{\textarabic{سیستمهای فرمیونی همبسته:مایع}}
\begin{minipage}{.95\textwidth}
\begin{Arabic}
\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

중단점을 수동으로 지정해도 괜찮다면 다음을 수행할 수 있습니다.

    % !TeX TS-program = xelatex
\documentclass[10pt]{beamer}
\usetheme{Warsaw}
\usepackage{multicol}%
\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]{Times New Roman}%
\newfontfamily\arabicfontsf[Script=Arabic,Scale=1]{Times New Roman}%
\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}%
}}
\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}

\begin{frame}
\frametitle{\textarabic{فهرست مطالب}}
\begin{columns}[onlytextwidth]
    \begin{column}{.45\textwidth}
        \begin{Arabic}
            \flushright
            \tableofcontents[sections=5-]
        \end{Arabic}
    \end{column}
    \begin{column}{.45\textwidth}
        \begin{Arabic}
            \flushright
            \tableofcontents[sections=-4]
        \end{Arabic}
    \end{column}    
\end{columns}
\end{frame}

\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}

\begin{frame}
content...
\end{frame}
\end{document}

여기에 이미지 설명을 입력하세요

답변2

작동하지 않는다는 의견에도 불구하고 \RLmulticolcolumns작동합니다(적어도 어디서 실패하는지, 왜 실패하는지 알 수 없습니다). 당신이 해야 할 일은 목차가 있는 프레임에 그것을 추가하는 것입니다. 예를 들어,

\frame{
\frametitle{\textarabic{فهرست مطالب}}
\begin{minipage}{1.\textwidth}
\begin{Arabic}
\RLmulticolcolumns    % <--- here to act only in this frame
\begin{multicols}{2} 
\tableofcontents
\end{multicols}
\end{Arabic}
\end{minipage}
}

그런 다음 다음과 같은 출력을 얻습니다.

여기에 이미지 설명을 입력하세요

위의 출력을 얻기 위해 요청한 대로(TL 2017 사용) 사용한 전체 코드는 다음과 같습니다. 그러나 실제로는 한 줄만 추가한 원래 예제일 뿐입니다.

    % !TeX TS-program = xelatex
\documentclass[10pt]{beamer}
\usetheme{Warsaw}
\usepackage{multicol}%
\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]{Times New Roman}%
\newfontfamily\arabicfontsf[Script=Arabic,Scale=1]{Times New Roman}%
\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}%
}}
\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}
\RLmulticolcolumns
\begin{multicols}{2} 
\tableofcontents
\end{multicols}
\end{Arabic}
\end{minipage}
}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\section{Title}
\subsection{Title}
\subsubsection{Title}
\frame{
\frametitle{\textarabic{سیستمهای فرمیونی همبسته:مایع}}
\begin{minipage}{.95\textwidth}
\begin{Arabic}
\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}

관련 정보