![使用 beamer + polyglossia arabic 时,Multicol 列消失](https://linux22.com/image/444925/%E4%BD%BF%E7%94%A8%20beamer%20%2B%20polyglossia%20arabic%20%E6%97%B6%EF%BC%8CMulticol%20%E5%88%97%E6%B6%88%E5%A4%B1.png)
这是(毫无意义的)投影仪幻灯片
我使用以下最少的代码获得它:
\documentclass{beamer}
\usepackage{multicol}
\usepackage{polyglossia}
\setmainlanguage[variant=usmax]{english}%
%\setotherlanguage{arabic}
\begin{document}
\begin{frame}[fragile]
\frametitle{Uttering Words}
\begin{multicols}{2}
Blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \end{multicols}
\end{frame}
\end{document}
以下是当我通过取消注释代码中的第 5 行来加载阿拉伯语以实现多语种时发生的情况:
\documentclass{beamer}
\usepackage{multicol}
\usepackage{polyglossia}
\setmainlanguage[variant=usmax]{english}%
\setotherlanguage{arabic}
\begin{document}
\begin{frame}[fragile]
\frametitle{Uttering Words}
\begin{multicols}{2}
Blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla \end{multicols}
\end{frame}
\end{document}
它使左栏消失,尽管文档中没有一个阿拉伯单词。
这个例子的问题在于我在我的机器上遇到了这个问题(运行 XeTeX,版本 3.141592653-2.6-0.999993 和 TeX Live 2021),但我在 overleaf 上没有遇到这个问题(运行相同版本的 XeTeX 和 TeXlive)。
我比较了 overleaf 和我的机器上的日志文件,差异仅在于几个软件包版本略有不同(在 overleaf 上,multicol.sty 来自 2019 年,在我的计算机上是 2021 年,在 overleaf 上 LaTeX2e 是版本 LaTeX2e <2021-06-01> patch level 1,在我的计算机上是 LaTeX2e <2021-11-15> patch level 1,还有一些其他微小的差异)。我的文件版本系统上比 overleaf 上的更新。
问题出在哪里?为什么我的机器的 TeXlive 2021 出现此问题,而 overleaf 的 TeXlive 2021 没有出现此问题?您的机器上也有同样的问题吗?
答案1
在 Ulrike 的帮助下,我能够使用 Frank 的补丁解决这个问题,Ulrike 是 TeXers 遇险者的守护神,她值得一座雕像、一座纪念碑、一座神殿......
\makeatletter
\def\process@cols#1#2{\count@#1\relax
\loop
% add debug code
\typeout{Looking at box \the\count@}
#2%
\advance\count@\tw@
\ifnum\count@<\doublecol@number
\repeat}
\makeatother
在文档的序言中。我希望这个解决方案能够被纳入 TeXlive 2022,这样其他和我一样的可怜虫就可以远离危险、辛劳和陷阱了!