这个问题是对如何添加和使用阿拉伯语词典翻译定理,例如,
beamer-rl
我有一个基于beamer
从右到左语言创建演示文稿的课程,以下是它的第一行
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{beamer-rl}
[2019/10/04 v1.3 LaTeX class to patch beamer for right to left presentation with babel]
\RequirePackage{kvoptions}
\RequirePackage{kvsetkeys}
\SetupKeyvalOptions{
family=beamer-rl,
prefix=beamer-rl@,
setkeys=\kvsetkeys,
}
% babel options:
\define@key{beamer-rl}{babel}{%
\PassOptionsToPackage{#1}{babel}%
}
\DeclareVoidOption{arab}{%
\PassOptionsToPackage{arabic}{translator}%
}
\DeclareDefaultOption{%
\PassOptionsToClass{\CurrentOption}{beamer}%
}
\ProcessKeyvalOptions*\relax
\RequirePackage{ifluatex}
\ifluatex
\else
\ClassError{beamer-rl}{beamer-rl require luatex}
\fi
\LoadClass[hyperref={unicode}]{beamer}
\RequirePackage[nil,bidi=basic-r]{babel}
我需要写入doocumentclass[arabic]{beamer-rl}
以将选项传递arabic
给包翻译器,而不将其传递给 babel,因为 babel 会因过时的 8 位 .ldf 文件而中断。
我使用了arab
选项,但我希望使用 arabic
选项来保持在 beamer 中调用语言的相同格式。
所以我的问题是如何定义arabic
选项而不将其传递给babel
包?
答案1
未经测试,下面的操作应该会从全局选项列表中删除一个选项。再次强调,我真的建议不要使用这个!
\@expandtwoargs\@removeelement\CurrentOption\@classoptionslist\@classoptionslist
\@expandtwoargs
和都\@removeelement
包含在 LaTeX2e 内核中。