randomwalk 软件包与 [frenchb]{babel} 发生冲突

randomwalk 软件包与 [frenchb]{babel} 发生冲突

程序包randomwalk按预期工作,除非\usepackage[frenchb]{babel}调用。无论是否\RandomWalk调用,! File ended while scanning use of \@for都会发生编译错误:。我尝试摆弄,\shorthandoff/on{@}因为我过去遇到的类似问题frenchb(涉及;字符)已用 修复\shorthandoff{;} ... \shorthandon{;},但无济于事。

\documentclass{article}
% RN. 17 March 2017
%=======================
\usepackage[check-declarations]{expl3}
\usepackage{xparse}
%\usepackage[frenchb]{babel}
\usepackage{randomwalk}
\begin{document}
\verb+\RandomWalk {number = 5000, length = {2pt, 8pt}}+\\
\RandomWalk {number = 1000, length = {2pt, 8pt}}
\end{document}

答案1

randomwalk使用 加载lcg包。由于您之前\AtBeginDocument正在加载,这意味着冒号已经处于活动状态,因此内部代码会中断。babelrandomwalklcg

\randomwalk我认为如果使用etoolbox\AtEndPreamble甚至更好的是,只需加载lcg而不使用选项并使用来设置所需的设置,那就更好了\reinitrand。通知作者。

您可以通过提前加载随机游走来解决该问题:

\documentclass{article}
\usepackage[check-declarations]{expl3}
\usepackage{xparse}
\usepackage{randomwalk}
\usepackage[frenchb]{babel}
\begin{document}
\RandomWalk {number = 1000, length = {2pt, 8pt}}
\end{document}

相关内容