LaTeX3:l3keys 多选键和预定义选择整数变量的启动值

LaTeX3:l3keys 多选键和预定义选择整数变量的启动值

interface3文档中可以看到(以下内容并非逐字引用),变量\l_keys_choice_int可用作多项选择键的索引寄存器,其值从 开始0。尽管如此,根据我对以下代码的经验,起始值实际上是1

这是我的课程,在一个文件中有深刻的内涵myclass.cls

\RequirePackage{l3keys2e,xparse}
\ProvidesExplClass
    {myclass}
    {2013/08/25}
    {1.0}
    {myclass}

\bool_new:N  \g_myclass_enum_bool
\bool_new:N  \g_myclass_enumalt_bool

\NewDocumentCommand \SetTBool { m }
 {
    \bool_gset_true:c
     { g_myclass_\tl_trim_spaces:n {#1} _bool}
 }

\NewDocumentCommand \TypeBool { m }
 { \bool_if:cTF { g_myclass_#1_bool } { T } { F } }

\keys_define:nn { myclass }
 {
   alter .choice_code:n =
    {   
       \AtBeginDocument{Option ~ Index: ~ \int_use:N \l_keys_choice_int\par}    
       \int_compare:nNnTF { \l_keys_choice_int } =  { 1 }
        { \SetTBool { enum } }
        { \SetTBool { enumalt } }
    },
   alter .generate_choices:n = { enum, enumalt }
 }

\ProcessKeysOptions { myclass }

\LoadClass{memoir}

然后我有一个原名的文档文件,mydoc.tex内容如下:

\documentclass[alter = enum]{myclass}

\begin{document}
\TypeBool{enum}\par
\TypeBool{enumalt}
\end{document}

我在排版文档中得到的是1 T F,而根据文档我应该得到的是0 T F。此外,如果我设置类选项alter = enumalt,我得到的是2 F T。我是不是搞错了什么?

答案1

我怀疑您有 的旧版本interface3:我们不久前通常将索引从零改为索引从一。因此您的观察是正确的: 的索引\l_keys_choice_int从一开始。

相关内容