![xepersian 与 beamer 结合使用时出现问题](https://linux22.com/image/316634/xepersian%20%E4%B8%8E%20beamer%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
我正在使用xepersian
和,但列表环境(例如和)beamer
存在问题。我无法将它们刷新到右侧(使它们右对齐)。正如您在 MWE 中看到的,我尝试过、和,但它们对幻灯片没有影响。itemize
enumerate
setRL
setRTL
flushright
\documentclass{beamer}
\usepackage{beamerthemesplit}
\usepackage{xepersian}
\settextfont{FreeFarsi}% http://sourceforge.net/projects/fpf/
\begin{document}
\begin{persian}
\begin{frame}{مشکل لیست}
\begin{flushright}
متن نمونه
\end{flushright}
\setRL
{
\begin{itemize}
\item مورد اول
\end{itemize}
}
\begin{flushright}
\begin{enumerate}
\item مورد اول
\end{enumerate}
\end{flushright}
\end{frame}
\end{persian}
\end{document}
PS 它可能正在推动它,但我可以做些什么让三角形itemize
指向左边吗?
答案1
在 beamer 中使用 RTL 语言时,文本对齐存在多个问题xelatex
,目前尚无全面的解决方案。
就我而言,我使用了一些技巧,我认为它对你有用:
- 要右对齐框架中的主文本,您可以使用
\everypar{\rightskip\rightmargin}
- 要在列表环境 put 开始后右对齐列表
\raggedleft
,您可以添加一个命令\RTlist
来控制项目右边距。 - 对于左侧的三角形要点,你可以看看我的问题在这里以及@GonzaloMedina 的详细解答。
这是您的 MWE 及其变化
\documentclass{beamer}
\usepackage{beamerthemesplit}
\usepackage{xepersian}
\settextfont{FreeFarsi}% http://sourceforge.net/projects/fpf/
\makeatletter
\newcommand{\RTList}{\raggedleft\rightskip\@totalleftmargin}
\makeatother
\setbeamertemplate{itemize item}{\scriptsize\raise1.25pt%
\hbox{\donotcoloroutermaths$\blacktriangleleft$}}
\setbeamertemplate{enumerate items}[ball] % or circle
\begin{document}
\begin{persian}
\everypar{\rightskip\rightmargin}
\begin{frame}{مشکل لیست}
متن نمونه
\begin{itemize}\RTList
\item مورد اول
\end{itemize}
\begin{enumerate}\RTList
\item مورد اول
\begin{enumerate}\RTList
\item مورد اول
\item مورد ثان
\end{enumerate}
\end{enumerate}
\end{frame}
\end{persian}
\end{document}