josephwright / beamer

A LaTeX class for producing presentations and slides
Other
1.39k stars 141 forks source link

Declare pgf shadings at global scope #536

Open domenjoud opened 5 years ago

domenjoud commented 5 years ago

The code for \AtBeginDocument in beamerouterthemesmoothtree.sty and beamerouterthemesmoothbars.sty should define pgf shadings at global scope. Not assuming that shadings defined at local scope are actually defined at global scope will allow a coherent handling of shading declarations in pgf (see https://github.com/pgf-tikz/pgf/issues/510)

josephwright commented 5 years ago

Yeah, in principle ... but they will have to be 'smuggled' out of a group (which controls font/color settings). I guess I'll have to use the internals of pgf here.

domenjoud commented 5 years ago

I'm not sure to understand where the problem is. When I look at beamerouterthemesmoothtree.sty and beamerouterthemesmoothbars.sty, it seems that shadings are defined at the beginning of the document but inside a group. Why couldn't the definition simply be pulled out of this group?

josephwright commented 5 years ago

@domenjoud The group localises font/color settings (\usebeamercolor ...) which need to apply in the shading but not necessarily to the current context. So the shading has to be set up inside a group then exported out of it.

domenjoud commented 5 years ago

Ok. I missed this point. It requires some thinking.

GovertBijwaard commented 5 years ago

Can anybody explain, in layman terms, what I need to do to get beamer running again? I can't make any slides anymore (and I have a presentation soon!). Do I need to change some of the beamer.sty files? Or include a little program in the header of my LaTeX file?

samcarter commented 5 years ago

@GovertBijwaard Personally I went back to https://github.com/pgf-tikz/pgf/releases/tag/3.1.1 to work around this problem.

GovertBijwaard commented 5 years ago

Thanks for the suggestion. Unfortunately, Re-installing the old version creates new problems:

("..\MiKTeX\2.9\tex/latex/pgf/systemlayer\pgfsys.sty" ("...\MiKTeX\2.9\tex/latex/pgf/utilities\pgfrcs.sty" ("...\MiKTeX\2.9\tex/generic/pgf/utilities\pgfutil-common.tex" \pgfutil@everybye=\toks16 \pgfutil@tempdima=\dimen128 \pgfutil@tempdimb=\dimen129

("...\MiKTeX\2.9\tex/generic/pgf/utilities\pgfutil-common-lists.tex")) ("...\MiKTeX\2.9\tex/generic/pgf/utilities\pgfutil-latex.def" \pgfutil@abb=\box35

("...\MiKTeX\2.9\tex/latex/ms\everyshi.sty" Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS))) ("...\MiKTeX\2.9\tex/generic/pgf/utilities\pgfrcs.code.tex" ("...\MiKTeX\2.9\tex/generic/pgf\pgf.revision.tex") Package: pgfrcs 2019/04/04 v3.1.2 (3.1.2))) ("...\MiKTeX\2.9\tex/generic/pgf/systemlayer\pgfsys.code.tex" Package: pgfsys 2019/04/04 v3.1.2 (3.1.2)

("...\MiKTeX\2.9\tex/generic/pgf/utilities\pgfkeys.code.tex" \pgfkeys@pathtoks=\toks17 \pgfkeys@temptoks=\toks18

("...\MiKTeX\2.9\tex/generic/pgf/utilities\pgfkeysfiltered.code.tex" \pgfkeys@tmptoks=\toks19)) ! Undefined control sequence. \pgfkeyssetevalue ...emptoks =\pgfutil@scantokens \expandafter {\expandafter... l.17 \pgfkeys{/pgf/.is family}
?

What can I do next? I also tried to install the patches https://github.com/pgf-tikz/pgf/issues/510

samcarter commented 5 years ago

@GovertBijwaard It seems you are (at least in parts) still using the new version. e.g. 2019/04/04 v3.1.2 (3.1.2)

hmenke commented 5 years ago

I've just added \pgfutil@pushmacro and \pgfutil@popmacro from ConTeXt to PGF (https://github.com/pgf-tikz/pgf/commit/e846933f1497e23f0dee0554d2af8ba0d23aff34). That should be useful for smuggling.

hmenke commented 4 years ago

Just mentioning this to link the issues together: https://github.com/pgf-tikz/pgf/issues/650