程序包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
正在加载,这意味着冒号已经处于活动状态,因此内部代码会中断。babel
randomwalk
lcg
\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}