4

i just updated my Linux distro (Linux Mint 17.3 -> Linux Mint 18) and from TeX Live 2014 to 2016. I have a (large) selfmade documentclass writte in LaTeX3.

Now I tried to compile a document using my class and get the following error:

LaTeX error: "kernel/property-unknown" 
The key property '.choice_code:n' is unknown. 
See the LaTeX3 documentation for further information.

I already searched the web, but the only hint was to update all packages, which I already did with no success.

Has anything changed at l3keys or any other LaTeX3 package, which could create this error?

Addition

I use the following code for generating keys:

\keys_define:nn {edu} {
    rmfont .choice_code:n = {
        \tl_gset:NV \g_edu_rmfont_tl \l_keys_choice_tl
    },
    rmfont .generate_choices:n = {
        computermodern, libertine, palatino
    },
    rmfont .initial:n = libertine
}
  • 2
    .choice_code:n has been removed from l3keys. You need to adapt your code to the changes in l3kernel. – cgnieder Jul 20 '16 at 20:13
  • Thanks for the answer. Is there a documentation, why it was removed or how to replace its functionality? – dawu Jul 20 '16 at 20:25
  • key .choice:, key / choice-a .code:n = code-a? – Henri Menke Jul 20 '16 at 20:37
  • It was removed in revision 5655 so you could check the repository log for information. – cfr Jul 20 '16 at 21:40
2
\keys_define:nn { edu }
 {
   rmfont .choices:nn =
    { computermodern, libertine, palatino }
    { \tl_gset:NV \g_edu_rmfont_tl \l_keys_choice_tl } ,
   rmfont .initial:n = libertine
 }
  • Thanks for your answer! I was a little bit to slow writing my own one. :-) – dawu Jul 24 '16 at 12:32
2

As clemens, Henri Menke and cfr already mentioned (thanks!!), .choice_code:n (as well as .generate_choices:n) were removed from l3keys in revision 5655 of latex3.

After rereading the LaTeX3 interfaces documentation (Section XX.3, pages 176-179), I was able to patch my problem. The example of the question can be adapted to the following:

\keys_define:nn {edu} {
  rmfont .choices:nn = {
    computermodern, libertine, palatino
  }
  {
    \tl_gset:NV \g_edu_rmfont_tl \l_keys_choice_tl
  },
  rmfont .initial:n = libertine
}

Finally, everything works again. Thanks a lot!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.