![如果 RTL 语言没有 tikz 包、xelatex 引擎,beamer 中的框架为空](https://linux22.com/image/317535/%E5%A6%82%E6%9E%9C%20RTL%20%E8%AF%AD%E8%A8%80%E6%B2%A1%E6%9C%89%20tikz%20%E5%8C%85%E3%80%81xelatex%20%E5%BC%95%E6%93%8E%EF%BC%8Cbeamer%20%E4%B8%AD%E7%9A%84%E6%A1%86%E6%9E%B6%E4%B8%BA%E7%A9%BA.png)
我不明白为什么使用这个 MWE,投影仪演示的所有组件都没有显示(实际上是空帧)
\documentclass{beamer}
%\usepackage{tikz}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\newfontfamily\arabicfontsf[Script=Arabic]{Amiri}
\title{\textenglish{Title of presentation}}
\date{\today}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\end{document}
如果我们添加tikz
包,我们会获得令人满意的输出,这只有当我们将 RTL(从右到左)语言定义为主要语言时才会发生。
在我们获得%
之前移除标志时\usepackage{tikz}
有人能解释一下为什么会发生这种情况吗,谢谢。
答案1
这是因为版本(小于或等于 18.3)的bidi
软件包检查了如果pgf
软件包被加载,那么bidi
软件包会修改pgfpicture
环境;这就是用途tikzpicture
。但是,beamer
加载pgfcore
软件包,因此bidi
软件包更改未应用。
18.4
在软件包版本中,对和软件包bidi
进行了一些改进;软件包现在检查文件(其中定义)是否正确,并相应地更改定义。因此,使用您的最小示例(不加载软件包):pgf
tikz
bidi
pgfcorescopes.code.tex
pgfpicture
tikz
\documentclass{beamer}
\usepackage{polyglossia}
\setdefaultlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Times New Roman}
\newfontfamily\arabicfontsf[Script=Arabic]{Times New Roman}
\title{\textenglish{Title of presentation}}
\date{\today}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\end{document}
您将获得以下输出:
与您自己的图像完全相同(字体除外)。