Commits

Joseph Wright  committed 4743193

Disable keyval errors for all options (see issue #236)

Till's code only deliberately targetted the class options but 'escaped'.
It's likely that the real target was other options, but as things stand
tightening up here will break code that relies on the old (incorrect)
approach. The best plan is to disable errors for all beamer options, but
not more generally (which is what was happening).

  • Participants
  • Parent commits 42d6237

Comments (2)

  1. Joseph Wright author

    Till's code disables the error from keyval and I think was intended to work with theme files, etc., as these are loaded in a layered way such that the 'outer' layer might not define the key names used. However, the way the code actually was did a check for the class extension and then killed the keyval error in all cases (for example, uses that are not linked to beamer). Ideally, rather than doing this a standard keyval option parser (such as kvoption) would have been used. But it's far too late to change that now, so I've patched such that the error message is disabled whenever processing options for beamer. So global options should still work.

  2. Takayuki Yato

    I’d like to have some questions about it.

    • It is common practive to treat as “global options” some kinds (e.g. drivers, languages) of options that are commonly interpreted by several packages.

      \documentclass[a4paper,dvips,ngerman]{article}
      \usepackage{graphicx,color}
      \usepackage{babel}
      \usepackage{varioref}
      

      Do you mean that this is bad practice and should be abolished?

    • Your previous revision

      -  \ifx\@currext\@clsextension\let\KV@errx=\@gobble\fi% never mind
      +  \ifx\@currext\@clsextension\else\let\KV@errx=\@gobble\fi% never mind
      

      really inverts condition and makes error check omitted only for packages. What is the intension of the change?

Files changed (1)

File base/beamerbaseoptions.sty

     \noexpand\setkeys{\@currname}{\@tempa\@ptionlist{\@currname.\@currext}}}%
   \let\beamer@origkverr\KV@errx%
   \let\beamer@origxkverr\XKV@err%
-  \ifx\@currext\@clsextension\else\let\KV@errx=\@gobble\fi% never mind
-  \ifx\@currext\@clsextension\else\let\XKV@err=\@gobble\fi% never mind
+  \let\KV@errx=\@gobble% never mind
+  \let\XKV@err=\@gobble% never mind
   \@tempa%
   \let\KV@errx\beamer@origkverr%
   \let\XKV@err\beamer@origxkverr%